Просмотр исходного кода

Merge branch 'dev' of http://gogs.gzzzyd.com/xiaowenhua/vueDataV into dev

wll8 5 месяцев назад
Родитель
Сommit
80c46b311c

+ 1 - 1
babel.config.js

@@ -1,5 +1,5 @@
 module.exports = {
-  presets: [`@vue/cli-plugin-babel/preset`, [`es2015`, { modules: false }]],
+  presets: [`@vue/cli-plugin-babel/preset`, [`@babel/env`, { modules: false }]],
   plugins: [
     [
       `component`,

+ 1 - 0
package.json

@@ -13,6 +13,7 @@
   "dependencies": {
     "@amap/amap-jsapi-loader": "^1.0.1",
     "axios": "^1.7.7",
+    "babel-plugin-component": "^1.1.1",
     "core-js": "^3.6.4",
     "dayjs": "^1.11.13",
     "element-ui": "^2.15.14",

+ 11 - 25
src/components/Customize/HorizontalHistogram.vue

@@ -1,21 +1,15 @@
 <!-- 横向柱状图 -->
 <template>
-  <div class="wrap-container sn-container">
-    <div class="sn-content">
-      <div class="sn-title title">
-        <div class="titleZn">{{ title }}</div>
-        <div class="titleEn">{{ titleEn }}</div>
-      </div>
-      <div class="sn-body">
-        <div class="wrap-container">
-          <div class="chartsdom" id="Horizontal"></div>
-        </div>
-      </div>
+  <div>
+    <boxTop :title="title" />
+    <div class="histogramBox">
+      <div class="chartsdom" id="Horizontal"></div>
     </div>
   </div>
 </template>
 
 <script>
+import boxTop from '@/components/boxTop/index.vue'
 export default {
   data() {
     return {
@@ -23,6 +17,9 @@ export default {
       information: {},
     }
   },
+  components: {
+    boxTop,
+  },
   props: {
     barWidth: {
       type: Number,
@@ -278,21 +275,10 @@ export default {
 }
 </script>
 
-<style lang="scss" scoped>
-.sn-container {
+<style lang="less" scoped>
+.histogramBox {
   width: 401px;
-  height: 300px;
-  .title {
-    display: flex;
-    justify-content: space-between;
-    .titleEn {
-      width: 120px;
-      font-size: 8px;
-      text-align: right;
-      word-break: break-all;
-      line-height: 1;
-    }
-  }
+  height: 290px;
   .chartsdom {
     width: 100%;
     height: 100%;

+ 93 - 111
src/components/Customize/cake.vue

@@ -1,58 +1,48 @@
-<!-- 地图 -->
+<!-- 饼图统计 -->
 <template>
-  <div class="wrap-container sn-container">
-    <div class="sn-content">
-      <div class="sn-title title">
-        <div class="titleZn">{{ title }}</div>
-        <div class="titleEn">{{ titleEn }}</div>
-      </div>
-      <div class="sn-body">
-        <div class="wrap-container flex">
-          <div class="chartsdom" id="cake"></div>
-          <div class="panel">
-            <div class="panelitem flex space_around">
-              <div>
-                <div class="number">{{ data.年移栽数量 }}</div>
-                <div class="text">
-                  <img
-                    class="img1"
-                    src="../../assets/img/rectangle.png"
-                    alt=""
-                  />
-                  年移栽数量
-                </div>
-              </div>
-              <div>
-                <div class="number">{{ data.年移栽面积 }}</div>
-                <div class="text">
-                  <img
-                    class="img1"
-                    src="../../assets/img/rectangle.png"
-                    alt=""
-                  />年移栽面积
-                </div>
-              </div>
+  <div>
+    <boxTop :title="title" />
+    <div class="cakeBox flex">
+      <div class="chartsdom" id="cake"></div>
+      <div class="panel">
+        <div class="panelitem flex space_around">
+          <div v-if="data.年移栽数量">
+            <div class="number">{{ data.年移栽数量 }}</div>
+            <div class="text">
+              <img class="img1" src="../../assets/img/rectangle.png" alt="" />
+              年移栽数量
             </div>
-            <div class="panelitem">
-              <div class="flex space_between secondItem">
-                <img class="img" src="../../assets/img/tree.png" alt="" />
-                <div>移栽区域数</div>
-                <div>{{ data.移栽区域数 }}</div>
-              </div>
-              <div class="flex space_between secondItem">
-                <img class="img" src="../../assets/img/head.png" alt="" />
-                <div>烟农数量</div>
-                <div>{{ data.烟农数量 }}</div>
-              </div>
+          </div>
+          <div v-if="data.年移栽面积">
+            <div class="number">{{ data.年移栽面积 }}</div>
+            <div class="text">
+              <img
+                class="img1"
+                src="../../assets/img/rectangle.png"
+                alt=""
+              />年移栽面积
             </div>
           </div>
         </div>
+        <div class="panelitem">
+          <div v-if="data.移栽区域数" class="flex space_between secondItem">
+            <img class="img" src="../../assets/img/tree.png" alt="" />
+            <div>移栽区域数</div>
+            <div>{{ data.移栽区域数 }}</div>
+          </div>
+          <div v-if="data.烟农数量" class="flex space_between secondItem">
+            <img class="img" src="../../assets/img/head.png" alt="" />
+            <div>烟农数量</div>
+            <div>{{ data.烟农数量 }}</div>
+          </div>
+        </div>
       </div>
     </div>
   </div>
 </template>
 
 <script>
+import boxTop from '@/components/boxTop/index.vue'
 export default {
   data() {
     return {
@@ -60,6 +50,9 @@ export default {
       information: {},
     }
   },
+  components: {
+    boxTop,
+  },
   props: {
     data: {
       type: Object,
@@ -99,7 +92,7 @@ export default {
           textStyle: {
             rich: {
               a: {
-                fontSize: 42,
+                fontSize: 36,
                 color: `#fff`,
               },
               b: {
@@ -121,8 +114,8 @@ export default {
             type: `pie`,
             radius: [`84%`, `70%`],
             silent: true,
-            clockwise: true,
-            startAngle: -35,
+            clockwise: false,
+            startAngle: 90,
             z: 0,
             zlevel: 0,
             data: [
@@ -226,76 +219,65 @@ export default {
 }
 </script>
 
-<style lang="scss" scoped>
-.sn-container {
+<style lang="less" scoped>
+.cakeBox {
   width: 401px;
-  height: 300px;
-  .title {
-    display: flex;
-    justify-content: space-between;
-    .titleEn {
-      width: 120px;
-      font-size: 8px;
-      text-align: right;
-      word-break: break-all;
-      line-height: 1;
-    }
-  }
+  height: 234px;
   .chartsdom {
     width: 80%;
-    height: 80%;
+    height: 90%;
   }
-  .flex {
-    display: flex;
-    .panel {
-      width: 80%;
-      height: 80%;
-
-      .panelitem {
-        border-top: 2px solid #646464;
-        box-sizing: border-box;
-        height: 50%;
-        margin: 0 10px;
-        .secondItem {
-          margin: 21px 0;
-        }
+  .panel {
+    width: 80%;
+    height: 80%;
+    .panelitem {
+      border-top: 2px solid rgba(255, 255, 255, 0.3);
+      box-sizing: border-box;
+      height: 50%;
+      margin: 0 10px;
+      .secondItem {
+        font-size: 16px;
+        margin: 21px 0;
       }
     }
   }
-  .img {
-    height: 25px;
-    margin-right: 3px;
-  }
-  .img1 {
-    height: 17px;
-    width: 3px;
-    margin-right: 3px;
-  }
-  .l-height {
-    line-height: 100%;
-  }
-  .space_around {
-    justify-content: space-around;
-    align-items: center;
-  }
-  .space_between {
-    justify-content: space-between;
-    align-items: center;
-  }
-  .number {
-    font-size: 22px;
-    padding: 4px 0;
-    margin: 3px 0;
-  }
-  .text {
-    font-size: 14px;
-    color: #888888;
-    display: flex;
-    justify-content: center;
-    align-items: center;
-  }
-  .column_reverse {
-    flex-direction: column-reverse;
-  }
+}
+.flex {
+  display: flex;
+}
+.img {
+  height: 25px;
+  margin-right: 3px;
+}
+.img1 {
+  height: 17px;
+  width: 3px;
+  margin-right: 3px;
+}
+.l-height {
+  line-height: 100%;
+}
+.space_around {
+  justify-content: space-around;
+  align-items: center;
+}
+.space_between {
+  justify-content: space-between;
+  align-items: center;
+}
+.number {
+  font-size: 22px;
+  padding: 4px 0;
+  margin: 3px 0;
+}
+.text {
+  font-size: 14px;
+  color: #888888;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+.column_reverse {
+  flex-direction: column-reverse;
 }
 </style>

+ 11 - 29
src/components/Customize/cylindricalHistogram.vue

@@ -1,21 +1,15 @@
 <!-- 圆柱柱状图 -->
 <template>
-  <div class="wrap-container sn-container">
-    <div class="sn-content">
-      <div class="sn-title title">
-        <div class="titleZn">{{ title }}</div>
-        <div class="titleEn">{{ titleEn }}</div>
-      </div>
-      <div class="sn-body">
-        <div class="wrap-container">
-          <div class="chartsdom" id="cylindrical"></div>
-        </div>
-      </div>
+  <div>
+    <boxTop :title="title" />
+    <div class="oblongBox">
+      <div class="chartsdom" id="cylindrical"></div>
     </div>
   </div>
 </template>
 
 <script>
+import boxTop from '@/components/boxTop/index.vue'
 export default {
   data() {
     return {
@@ -23,6 +17,9 @@ export default {
       information: {},
     }
   },
+  components: {
+    boxTop,
+  },
   props: {
     barWidth: {
       type: Number,
@@ -37,10 +34,6 @@ export default {
       type: String,
       default: ``,
     },
-    titleEn: {
-      type: String,
-      default: `Tongren Tobacco Planting Digital Management Platform`,
-    },
     unit: {
       type: String,
     },
@@ -239,21 +232,10 @@ export default {
 }
 </script>
 
-<style lang="scss" scoped>
-.sn-container {
+<style lang="less" scoped>
+.oblongBox {
   width: 401px;
-  height: 300px;
-  .title {
-    display: flex;
-    justify-content: space-between;
-    .titleEn {
-      width: 120px;
-      font-size: 8px;
-      text-align: right;
-      word-break: break-all;
-      line-height: 1;
-    }
-  }
+  height: 275px;
   .chartsdom {
     width: 100%;
     height: 100%;

+ 13 - 34
src/components/Customize/map/index.vue

@@ -1,13 +1,7 @@
 <!-- 地图 -->
 <template>
-  <div class="wrap-container sn-container">
-    <div class="sn-content">
-      <div class="sn-body">
-        <div class="wrap-container">
-          <div class="chartsdom" id="3DMap"></div>
-        </div>
-      </div>
-    </div>
+  <div class="mapBox">
+    <div class="chartsdom" id="3DMap"></div>
   </div>
 </template>
 
@@ -48,19 +42,16 @@ export default {
         {
           name: `印江土家族苗族自治县`,
           value: 0.5,
-          fdl: `99%`,
-          tds: 1,
-          fds: 101,
         },
-        { name: `石阡县`, value: 0.5, fdl: `99%`, tds: 1, fds: 101 },
-        { name: `江口县`, value: 0.5, fdl: `99%`, tds: 1, fds: 101 },
-        { name: `玉屏侗族自治县`, value: 0.5, fdl: `99%`, tds: 1, fds: 101 },
-        { name: `思南县`, value: 0.5, fdl: `99%`, tds: 1, fds: 101 },
-        { name: `德江县`, value: 0.5, fdl: `99%`, tds: 1, fds: 101 },
-        { name: `沿河土家族自治县`, value: 0.5, fdl: `99%`, tds: 1, fds: 101 },
-        { name: `松桃苗族自治县`, value: 0.5, fdl: `99%`, tds: 1, fds: 101 },
-        { name: `碧江区`, value: 0.5, fdl: `99%`, tds: 1, fds: 101 },
-        { name: `万山区`, value: 0.5, fdl: `99%`, tds: 1, fds: 101 },
+        { name: `石阡县`, value: 0.5 },
+        { name: `江口县`, value: 0.5 },
+        { name: `玉屏侗族自治县`, value: 0.5 },
+        { name: `思南县`, value: 0.5 },
+        { name: `德江县`, value: 0.5 },
+        { name: `沿河土家族自治县`, value: 0.5 },
+        { name: `松桃苗族自治县`, value: 0.5 },
+        { name: `碧江区`, value: 0.5 },
+        { name: `万山区`, value: 0.5 },
       ]
       echarts.registerMap(`guangdong`, uploadedDataURL, {})
       this.option = {
@@ -400,7 +391,7 @@ export default {
       myChart.setOption(this.option)
       myChart.on(`click`, function (params) {
         const idx = params.dataIndex
-        console.log(idx, params.name, params.value)
+        console.log(params)
         // to do
       })
     },
@@ -409,21 +400,9 @@ export default {
 </script>
 
 <style lang="scss" scoped>
-.sn-container {
+.chartsdom {
   width: 980px;
   height: 760px;
-
-  .title {
-    display: flex;
-    justify-content: space-between;
-    .titleEn {
-      width: 120px;
-      font-size: 8px;
-      text-align: right;
-      word-break: break-all;
-      line-height: 1;
-    }
-  }
   .chartsdom {
     width: 100%;
     height: 100%;

+ 12 - 29
src/components/Customize/wavyLineChart.vue

@@ -1,21 +1,16 @@
 <!-- 面积图 -->
+<!-- 必须传入 ID  area dataArray-->
 <template>
-  <div class="wrap-container sn-container">
-    <div class="sn-content">
-      <div class="sn-title title">
-        <div class="titleZn">{{ title }}</div>
-        <div class="titleEn">{{ titleEn }}</div>
-      </div>
-      <div class="sn-body">
-        <div class="wrap-container">
-          <div class="chartsdom" :id="id"></div>
-        </div>
-      </div>
+  <div>
+    <boxTop :title="title" />
+    <div class="wavylineBox">
+      <div class="chartsdom" :id="id"></div>
     </div>
   </div>
 </template>
 
 <script>
+import boxTop from '@/components/boxTop/index.vue'
 export default {
   data() {
     return {
@@ -23,6 +18,9 @@ export default {
       information: {},
     }
   },
+  components: {
+    boxTop,
+  },
   props: {
     id: {
       type: String,
@@ -45,10 +43,6 @@ export default {
       type: String,
       default: ``,
     },
-    titleEn: {
-      type: String,
-      default: `Tongren Tobacco Planting Digital Management Platform`,
-    },
     unit: {
       type: String,
       default: ``,
@@ -217,21 +211,10 @@ export default {
 }
 </script>
 
-<style lang="scss" scoped>
-.sn-container {
+<style lang="less" scoped>
+.wavylineBox {
   width: 401px;
-  height: 300px;
-  .title {
-    display: flex;
-    justify-content: space-between;
-    .titleEn {
-      width: 120px;
-      font-size: 8px;
-      text-align: right;
-      word-break: break-all;
-      line-height: 1;
-    }
-  }
+  height: 266px;
   .chartsdom {
     width: 100%;
     height: 100%;

+ 12 - 29
src/components/Customize/weatherForecast.vue

@@ -1,21 +1,15 @@
 <!-- 温度折线图 -->
 <template>
-  <div class="wrap-container sn-container">
-    <div class="sn-content">
-      <div class="sn-title title">
-        <div class="titleZn">{{ title }}</div>
-        <div class="titleEn">{{ titleEn }}</div>
-      </div>
-      <div class="sn-body">
-        <div class="wrap-container">
-          <div class="chartsdom" id="weather"></div>
-        </div>
-      </div>
+  <div>
+    <boxTop :title="title" />
+    <div class="weatherBox">
+      <div class="chartsdom" id="weather"></div>
     </div>
   </div>
 </template>
 
 <script>
+import boxTop from '@/components/boxTop/index.vue'
 export default {
   data() {
     return {
@@ -34,10 +28,6 @@ export default {
       type: String,
       default: ``,
     },
-    titleEn: {
-      type: String,
-      default: `Tongren Tobacco Planting Digital Management Platform`,
-    },
     unit: {
       type: String,
     },
@@ -46,6 +36,9 @@ export default {
       default: 100,
     },
   },
+  components: {
+    boxTop,
+  },
   mounted() {
     this.getEchart()
   },
@@ -173,21 +166,11 @@ export default {
 }
 </script>
 
-<style lang="scss" scoped>
-.sn-container {
+<style lang="less" scoped>
+.weatherBox {
   width: 401px;
-  height: 300px;
-  .title {
-    display: flex;
-    justify-content: space-between;
-    .titleEn {
-      width: 120px;
-      font-size: 8px;
-      text-align: right;
-      word-break: break-all;
-      line-height: 1;
-    }
-  }
+  height: 234px;
+
   .chartsdom {
     width: 100%;
     height: 100%;

+ 1 - 1
src/components/boxTop/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="containerBox">
-    <div class="sn-title title">
+    <div class="title">
       <div class="titleZn">{{ title }}</div>
       <div class="titleEn">{{ titleEn }}</div>
     </div>

+ 2 - 2
src/views/Login.vue

@@ -94,7 +94,7 @@ export default {
     login() {
       if (this.userName == `admin` && this.userPwd == `123456`) {
         this.$router.push({
-          path: `/home`,
+          path: `/page1`,
         })
       } else {
         this.$Toast({
@@ -112,7 +112,7 @@ export default {
 }
 </script>
 
-<style lang="scss" scoped>
+<style lang="less" scoped>
 .login-container {
   .layer {
     position: absolute;

+ 20 - 19
src/views/page1/index.vue

@@ -1,20 +1,24 @@
 <template>
   <bgBox :tabChange="tabChange" class="bgBox" :tabIndex="0">
+    <cake
+      style="position: absolute; top: 115px; left: 50px"
+      title="实时统计"
+      :data="statisticsData"
+      v-if="isCake"
+    ></cake>
     <cylindricalHistogram
-      style="left: 50px; top: 345px"
+      style="position: absolute; left: 50px; top: 430px"
       v-if="isGetData"
       :unit="`公斤/产量`"
       title="各区域移栽产量分析"
-      titleEn="Tongren Tobacco Planting Digital Management Platform"
       :area="Transplantarea"
       :dataArray="TransplantdataArray"
     ></cylindricalHistogram>
     <weatherForecast
       :unit="`摄氏度`"
-      style="left: 50px; top: 670px"
+      style="position: absolute; left: 50px; top: 760px"
       v-if="isWeather"
       title="天气预报"
-      titleEn="Tongren Tobacco Planting Digital Management Platform"
       :area="Weatherarea"
       :dataArray="WeatherdataArray"
       :alertValue="30"
@@ -23,7 +27,7 @@
     <wavyLineChart
       :unit="`平方米/面积`"
       id="`wavyLineChart`"
-      style="left: 1470px; top: 25px"
+      style="position: absolute; right: 50px; top: 115px"
       v-if="isWavyLine"
       title="各区域移栽面积"
       :area.sync="wavyLineArea"
@@ -32,7 +36,7 @@
     >
     </wavyLineChart>
     <HorizontalHistogram
-      style="left: 1470px; top: 345px"
+      style="position: absolute; right: 50px; top: 430px"
       v-if="isHorizontal"
       title="移栽情况分析"
       :area="HorizontalArea"
@@ -40,7 +44,7 @@
     ></HorizontalHistogram>
     <wavyLineChart
       id="`移栽趋势分析`"
-      style="left: 1470px; top: 670px"
+      style="position: absolute; right: 50px; top: 760px"
       v-if="isWavyLine"
       title="移栽趋势分析"
       :area="trendarea"
@@ -52,16 +56,11 @@
         position: absolute;
         top: 50%;
         left: 50%;
-        transform: translate(-50%, 0%);
+        transform: translate(-55%, 20%);
       "
       v-if="hasGetJson"
       :getJson="getJson"
     ></threeMap>
-    <cake
-      title="实时统计"
-      :data="statisticsData"
-      style="left: 50px; top: 25px"
-    ></cake>
   </bgBox>
 </template>
 
@@ -146,6 +145,7 @@ const apiLists = [
     key: `statistics`,
     fn(data, arg) {
       this.statisticsData = data
+      this.isCake = true
     },
   },
   {
@@ -208,6 +208,7 @@ export default {
       isHorizontal: false,
       isTrend: false,
       hasGetJson: false,
+      isCake: false,
     }
   },
   computed: {},
@@ -222,10 +223,10 @@ export default {
     // this.$http.get(`https://httpbin.org/get`)
   },
   mounted() {
-    this.getAnalysisOfTransplantYieldInVariousRegions()
-    this.getWeatherForecast()
-    this.getTransplantAreaInEachRegion()
-    this.getAnalysisOfTransplantingSituation()
+    // this.getAnalysisOfTransplantYieldInVariousRegions()
+    // this.getWeatherForecast()
+    // this.getTransplantAreaInEachRegion()
+    // this.getAnalysisOfTransplantingSituation()
     screenSize(this.$refs.editor)
   },
   beforeDestroy() {
@@ -285,13 +286,13 @@ export default {
       })
     },
     async getJSON() {
+      console.log(`获取JSOn`)
       this.getJson = await this.$http.get(
         `/datav/areas_v3/bound/geojson?code=520600_full`
       )
+      console.log(this.getJson)
       this.hasGetJson = true
     },
   },
 }
 </script>
-
-<style lang="less" scoped></style>

+ 30 - 1
yarn.lock

@@ -159,6 +159,14 @@
     "@babel/traverse" "^7.25.9"
     "@babel/types" "^7.25.9"
 
+"@babel/helper-module-imports@7.0.0-beta.35":
+  version "7.0.0-beta.35"
+  resolved "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0-beta.35.tgz#308e350e731752cdb4d0f058df1d704925c64e0a"
+  integrity sha512-vaC1KyIZSuyWb3Lj277fX0pxivyHwuDU4xZsofqgYAbkDxNieMg2vuhzP5AgMweMY7fCQUMTi+BgPqTLjkxXFg==
+  dependencies:
+    "@babel/types" "7.0.0-beta.35"
+    lodash "^4.2.0"
+
 "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.24.7", "@babel/helper-module-imports@^7.25.9":
   version "7.25.9"
   resolved "https://registry.npmmirror.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz#e7f8d20602ebdbf9ebbea0a0751fb0f2a4141715"
@@ -916,6 +924,15 @@
     debug "^4.3.1"
     globals "^11.1.0"
 
+"@babel/types@7.0.0-beta.35":
+  version "7.0.0-beta.35"
+  resolved "https://registry.npmmirror.com/@babel/types/-/types-7.0.0-beta.35.tgz#cf933a9a9a38484ca724b335b88d83726d5ab960"
+  integrity sha512-y9XT11CozHDgjWcTdxmhSj13rJVXpa5ZXwjjOiTedjaM0ba5ItqdS02t31EhPl7HtOWxsZkYCCUNrSfrOisA6w==
+  dependencies:
+    esutils "^2.0.2"
+    lodash "^4.2.0"
+    to-fast-properties "^2.0.0"
+
 "@babel/types@^7.25.6", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0":
   version "7.26.0"
   resolved "https://registry.npmmirror.com/@babel/types/-/types-7.26.0.tgz#deabd08d6b753bc8e0f198f8709fb575e31774ff"
@@ -3072,6 +3089,13 @@ babel-loader@^8.2.2:
     make-dir "^3.1.0"
     schema-utils "^2.6.5"
 
+babel-plugin-component@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.npmmirror.com/babel-plugin-component/-/babel-plugin-component-1.1.1.tgz#9b023a23ff5c9aae0fd56c5a18b9cab8c4d45eea"
+  integrity sha512-WUw887kJf2GH80Ng/ZMctKZ511iamHNqPhd9uKo14yzisvV7Wt1EckIrb8oq/uCz3B3PpAW7Xfl7AkTLDYT6ag==
+  dependencies:
+    "@babel/helper-module-imports" "7.0.0-beta.35"
+
 babel-plugin-dynamic-import-node@^2.3.3:
   version "2.3.3"
   resolved "https://registry.npmmirror.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3"
@@ -7098,7 +7122,7 @@ lodash.uniq@^4.5.0:
   resolved "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
   integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==
 
-lodash@4, lodash@^4.0.0, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21:
+lodash@4, lodash@^4.0.0, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.2.0:
   version "4.17.21"
   resolved "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
   integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
@@ -10373,6 +10397,11 @@ to-arraybuffer@^1.0.0:
   resolved "https://registry.npmmirror.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
   integrity sha512-okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==
 
+to-fast-properties@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
+  integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
+
 to-object-path@^0.3.0:
   version "0.3.0"
   resolved "https://registry.npmmirror.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"