Procházet zdrojové kódy

增加空调节电平台

zhangW před 1 rokem
rodič
revize
44fcf4e7c5
21 změnil soubory, kde provedl 1078 přidání a 118 odebrání
  1. 6 0
      energyManagement/package-lock.json
  2. 1 0
      energyManagement/package.json
  3. binární
      energyManagement/src/assets/img/energyIcon/device_bg.png
  4. binární
      energyManagement/src/assets/img/energyIcon/icon_company.png
  5. binární
      energyManagement/src/assets/img/energyIcon/icon_cop.png
  6. binární
      energyManagement/src/assets/img/energyIcon/icon_device.png
  7. binární
      energyManagement/src/assets/img/energyIcon/icon_dianliang.png
  8. binární
      energyManagement/src/assets/img/energyIcon/icon_erey.png
  9. binární
      energyManagement/src/assets/img/energyIcon/icon_over_view.png
  10. binární
      energyManagement/src/assets/img/energyIcon/icon_ratio2.png
  11. binární
      energyManagement/src/assets/img/energyIcon/icon_ratio_title.png
  12. binární
      energyManagement/src/assets/img/energyIcon/icon_summary.png
  13. binární
      energyManagement/src/assets/img/energyIcon/title_bg.png
  14. 120 0
      energyManagement/src/views/refrigeration/energySavingPlatform/dataOverView.vue
  15. 159 0
      energyManagement/src/views/refrigeration/energySavingPlatform/deviceMonitor.vue
  16. 219 0
      energyManagement/src/views/refrigeration/energySavingPlatform/energyAnalyze.vue
  17. 94 0
      energyManagement/src/views/refrigeration/energySavingPlatform/energyEfficiencyRatio.vue
  18. 140 0
      energyManagement/src/views/refrigeration/energySavingPlatform/index.vue
  19. 58 0
      energyManagement/src/views/refrigeration/energySavingPlatform/label.vue
  20. 163 0
      energyManagement/src/views/refrigeration/energySavingPlatform/projectSummary.vue
  21. 118 118
      operationSupport/package-lock.json

+ 6 - 0
energyManagement/package-lock.json

@@ -10215,6 +10215,12 @@
         "ajv-keywords": "^3.5.2"
       }
     },
+    "screenfull": {
+      "version": "5.1.0",
+      "resolved": "https://registry.npmjs.org/screenfull/-/screenfull-5.1.0.tgz",
+      "integrity": "sha512-dYaNuOdzr+kc6J6CFcBrzkLCfyGcMg+gWkJ8us93IQ7y1cevhQAugFsaCdMHb6lw8KV3xPzSxzH7zM1dQap9mA==",
+      "dev": true
+    },
     "scss-tokenizer": {
       "version": "0.2.3",
       "resolved": "https://registry.nlark.com/scss-tokenizer/download/scss-tokenizer-0.2.3.tgz",

+ 1 - 0
energyManagement/package.json

@@ -35,6 +35,7 @@
     "@vue/cli-service": "^3.9.0",
     "esri-loader": "^2.16.0",
     "postcss-pxtorem": "^5.1.1",
+    "screenfull": "^5.1.0",
     "style-vw-loader": "^1.0.2",
     "vue-template-compiler": "^2.6.10"
   }

binární
energyManagement/src/assets/img/energyIcon/device_bg.png


binární
energyManagement/src/assets/img/energyIcon/icon_company.png


binární
energyManagement/src/assets/img/energyIcon/icon_cop.png


binární
energyManagement/src/assets/img/energyIcon/icon_device.png


binární
energyManagement/src/assets/img/energyIcon/icon_dianliang.png


binární
energyManagement/src/assets/img/energyIcon/icon_erey.png


binární
energyManagement/src/assets/img/energyIcon/icon_over_view.png


binární
energyManagement/src/assets/img/energyIcon/icon_ratio2.png


binární
energyManagement/src/assets/img/energyIcon/icon_ratio_title.png


binární
energyManagement/src/assets/img/energyIcon/icon_summary.png


binární
energyManagement/src/assets/img/energyIcon/title_bg.png


+ 120 - 0
energyManagement/src/views/refrigeration/energySavingPlatform/dataOverView.vue

@@ -0,0 +1,120 @@
+<template>
+    <div class="date-over-wrap">
+        <Label label="数据总览" :icon="icon" />
+        <div class="list-wrap">
+            <div class="list-item-wrap" :style="{background : `${item.background}`}" v-for="(item, index) in list" :key="index">
+                <div class="list-item-value">
+                    {{ item.value }}
+                    <div class="list-item-unit">{{ item.unit }}</div>
+                </div>
+                <div class="list-item-label">{{ item.label }}</div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+import Label from './label.vue';
+export default {
+    name: 'DataOverView',
+    components: {
+        Label
+    },
+    data() {
+        return {
+            icon: require('../../../assets/img/energyIcon/icon_over_view.png'),
+            list: [
+                {
+                    label: '年度累积用电量',
+                    value: '50.52',
+                    unit : '万kw.h',
+                    icon: require('@assets/img/energyIcon/icon_cop.png'),
+                    background : 'linear-gradient(270deg, #04bce9 0%, #52c1de 100%)'
+                },
+                {
+                    label: '年度累计冷量',
+                    value: '232.88',
+                    unit : '万kwh',
+                    icon: require('@assets/img/energyIcon/icon_ratio2.png'),
+                    background : 'linear-gradient(270deg, #44B6FB 100%, #4D9BFF 0%)'
+                },
+                {
+                    label: '年度累计节电量',
+                    value: '27.13',
+                    unit : '万kw.h',
+                    icon: require('@assets/img/energyIcon/icon_cop.png'),
+                    background : 'linear-gradient(270deg, #F49153 100%, #F27762 0%)'
+                },
+                {
+                    label: '年度累计节碳量',
+                    value: '73.78',
+                    unit : '吨',
+                    icon: require('@assets/img/energyIcon/icon_ratio2.png'),
+                    background : 'linear-gradient(270deg, #44B6FB 100%, #4D9BFF 0%)'
+                },
+                {
+                    label: '年度累计节电费',
+                    value: '32.56',
+                    unit : '万元',
+                    icon: require('@assets/img/energyIcon/icon_ratio2.png'),
+                    background : 'linear-gradient(270deg, #D260CD 100%, #914FD1 0%)'
+                }
+            ]
+        };
+    },
+
+    mounted() {},
+
+    methods: {}
+};
+</script>
+
+<style lang="scss" scoped>
+
+.date-over-wrap {
+    height: 100%;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    margin : 0 20px 0 20px
+}
+.list-wrap {
+    margin-top: 2%;
+    display: grid;
+    grid-gap: 1%;
+    grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
+    height: 50%;
+}
+
+.list-item-wrap {
+    background: linear-gradient(270deg, #04bce9 0%, #52c1de 100%);
+    border-radius: 4px;
+
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    padding-left: 15px;
+}
+
+.list-item-value {
+    font-size: 34px;
+    font-family: PingFangSC;
+    font-weight: 600;
+    color: #ffffff;
+
+    display: flex;
+    align-items:baseline; 
+
+}
+
+.list-item-unit {
+    font-size: 25px;
+}
+
+.list-item-label {
+    font-size: 17px;
+    font-family: PingFang SC;
+    font-weight: bold;
+    color: #ffffff;
+}
+</style>

+ 159 - 0
energyManagement/src/views/refrigeration/energySavingPlatform/deviceMonitor.vue

@@ -0,0 +1,159 @@
+<template>
+    <div class="monitor-wrap">
+        <Label label="设备监测" :icon="icon" />
+        <div class="list-wrap">
+            <div class="list-item-wrap">
+                <div class="list-item-name title-color">设备名称</div>
+                <div class="list-item-name title-color">功率(kw)</div>
+                <div class="list-item-name title-color">状态</div>
+            </div>
+            <div v-for="(item, index) in list" :key="index" style="position: relative">
+                <img class="list-item-img" src="../../../assets/img/energyIcon/device_bg.png" v-if="index % 2 == 0" />
+                <div class="list-item-wrap">
+                    <div class="list-item-name">{{ item.name }}</div>
+                    <div class="list-item-name">{{ item.value }}</div>
+                    <div class="list-item-name" :class="item.state == '离线' ? 'off-color' : ''">{{ item.state }}</div>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+import Label from './label.vue';
+export default {
+    name: 'DeviceMonitor',
+    components: {
+        Label
+    },
+    data() {
+        return {
+            icon: require('../../../assets/img/energyIcon/icon_device.png'),
+            list: [
+                {
+                    name: '主机',
+                    value: '340',
+                    state: '在线'
+                },
+                {
+                    name: '主机2',
+                    value: '340',
+                    state: '离线'
+                },
+                {
+                    name: '冷冻泵1',
+                    value: '18.5',
+                    state: '在线'
+                },
+                {
+                    name: '冷冻泵2',
+                    value: '18.5',
+                    state: '在线'
+                },
+                {
+                    name: '冷冻泵3',
+                    value: '18.5',
+                    state: '离线'
+                },
+                {
+                    name: '冷冻泵4',
+                    value: '18.5',
+                    state: '在线'
+                },
+                {
+                    name: '冷冻泵5',
+                    value: '18.5',
+                    state: '离线'
+                },
+                {
+                    name: '风机1',
+                    value: '30',
+                    state: '在线'
+                },
+                {
+                    name: '风机2',
+                    value: '30',
+                    state: '在线'
+                },
+                {
+                    name: '风机3',
+                    value: '30',
+                    state: '在线'
+                },
+                {
+                    name: '风机4',
+                    value: '30',
+                    state: '在线'
+                }
+            ]
+        };
+    },
+
+    mounted() {},
+
+    methods: {
+        getBg(index) {
+            if (index == 0) {
+                return '../../../assets/img/energyIcon/device_bg.png'; //'linear-gradient(270deg, #182324 0%, #7f52C1DE 50%,  #182324 100%)'
+            } else {
+                return '';
+            }
+        }
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+.monitor-wrap {
+    margin: 20px;
+    height: 100%;
+}
+.list-wrap {
+    margin: 20px 30px 0 30px;
+    height: 82%;
+
+    overflow-x: hidden;
+    overflow-y: auto;
+    scrollbar-width: none;
+    -ms-overflow-style: none;
+
+    &::-webkit-scrollbar{
+        width: 0;
+    }
+
+    ::-ms-scrollbar {
+      width: 0;
+    }
+}
+
+
+.list-item-wrap {
+    display: flex;
+    align-items: center;
+    height: 45px;
+}
+
+.list-item-name {
+    font-size: 18px;
+    font-family: PingFang SC;
+    font-weight: 500;
+    color: #ffffff;
+
+    flex: 1;
+    text-align: center;
+}
+
+.list-item-img {
+    position: absolute;
+    height: 100%;
+    width: 100%;
+}
+
+.title-color {
+    color: #52c1de;
+}
+
+.off-color {
+    color: #ff9e21;
+}
+</style>

+ 219 - 0
energyManagement/src/views/refrigeration/energySavingPlatform/energyAnalyze.vue

@@ -0,0 +1,219 @@
+<template>
+    <div class="any-wrap">
+        <Label :label="label" :icon="icon" />
+        <div class="chart-wrap">
+            <zz-echart :option="options" class="chart"></zz-echart>
+        </div>
+    </div>
+</template>
+
+<script>
+import Label from './label.vue';
+export default {
+    name: 'EnergyAnalyze',
+    components: {
+        Label
+    },
+    props: {
+        type: {
+            type: String,
+            default: '1'
+        }
+    },
+    data() {
+        return {
+            label: '月度能效趋势',
+            icon: require('../../../assets/img/energyIcon/icon_over_view.png'),
+            options: {
+                tooltip: {
+                    trigger: 'axis',
+                    axisPointer: {
+                        type: 'cross',
+                        label: {
+                            backgroundColor: '#283b56'
+                        }
+                    }
+                },
+                legend: {
+                    data: [],
+                    itemHeight: 1,
+                    itemWidth: 20,
+                    textStyle: {
+                        color: 'rgba(255, 255, 255, 0.5)'
+                    }
+                },
+                grid: {
+                    top: 30,
+                    left: 0,
+                    bottom: 0,
+                    right: 0,
+                    containLabel: true
+                },
+                xAxis: [
+                    {
+                        type: 'category',
+                        data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月'],
+                        axisLine: {
+                            show: true, // 不显示坐标轴
+                            lineStyle: {
+                                color: 'rgba(255, 255, 255, 0.5)'
+                            }
+                        },
+                        axisTick: {
+                            show: false // 不显示坐标轴刻度
+                        },
+                        axisLabel: {
+                            color: 'rgba(255, 255, 255, 0.5)',
+                            margin: 15
+                        }
+                    }
+                ],
+                yAxis: [
+                    {
+                        type: 'value',
+                        name: 'kw.h',
+                        min: 0,
+                        axisLabel: {
+                            formatter: '{value} kw.h'
+                        },
+                        axisLine: {
+                            show: true, //y轴线消失
+                            lineStyle: {
+                                color: 'rgba(255, 255, 255, 0.5)'
+                            }
+                        },
+                        splitLine: {
+                            lineStyle: {
+                                type: 'dashed' //虚线
+                            },
+                            show: false //隐藏
+                        },
+                        axisTick: {
+                            show: false // 不显示坐标轴刻度
+                        },
+                        axisLabel: {
+                            color: 'rgba(255, 255, 255, 0.5)',
+                            margin: 15
+                        }
+                    }
+                ],
+                series: []
+            }
+        };
+    },
+
+    created() {
+        this.setData();
+    },
+
+    mounted() {
+        let that = this;
+        window.addEventListener('resize', function () {
+            that.setData();
+        });
+    },
+
+    methods: {
+        setData() {
+            if (this.type == 1) {
+                this.label = '月度能效趋势';
+                this.icon = require('../../../assets/img/energyIcon/icon_erey.png');
+                this.options.legend.data = ['月能效', '基准值'];
+                this.options.series = [
+                    {
+                        name: '月能效',
+                        type: 'line',
+                        smooth: true,
+                        lineStyle: {
+                            color: '#E33BF7'
+                        },
+                        itemStyle: {
+                            color: '#E33BF7'
+                        },
+                        tooltip: {
+                            valueFormatter: function (value) {
+                                return value + ' kw.h';
+                            }
+                        },
+                        symbol: 'none',
+                        data: [4.28, 4.36, 4.69, 5.0, 4.88, 4.5, 4.6, 4.8],
+                        markLine: {
+                            symbol: 'none',
+                            data: [
+                                {
+                                    name: '基准值',
+                                    yAxis: 3.15,
+                                    lineStyle: {
+                                        color: '#27EA83'
+                                    }
+                                }
+                            ],
+                            label: {
+                                show: false
+                            }
+                        }
+                    },
+                    {
+                        type: 'line',
+                        symbol: 'none',
+                        name: '基准值',
+                        itemStyle: {
+                            color: '#27EA83'
+                        }
+                    }
+                ];
+            } else if (this.type == '2') {
+                this.label = '月度电量分析';
+                this.icon = require('../../../assets/img/energyIcon/icon_dianliang.png');
+                this.options.legend.data = ['用电量', '基准用电量'];
+                this.options.series = [
+                    {
+                        name: '用电量',
+                        type: 'line',
+                        lineStyle: {
+                            color: '#27EA83'
+                        },
+                        itemStyle: {
+                            color: '#27EA83'
+                        },
+                        symbol: 'circle',
+                        tooltip: {
+                            valueFormatter: function (value) {
+                                return value + ' kw.h';
+                            }
+                        },
+                        data: [14118, 31750, 55630, 92420, 104200, 108420, 93800, 98600]
+                    },
+                    {
+                        type: 'line',
+                        symbol: 'none',
+                        name: '基准用电量',
+                        lineStyle: {
+                            type: 'dashed'
+                        },
+                        itemStyle: {
+                            color: '#FF9E21'
+                        },
+                        data: [18824, 45357, 79471, 128361, 157870, 180700, 148888, 159032]
+                    }
+                ];
+            }
+        }
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+.any-wrap {
+    height: 100%;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    margin: 0 20px 0 20px;
+}
+
+.chart-wrap {
+    height: 70%;
+    margin-top: 5%;
+}
+</style>

+ 94 - 0
energyManagement/src/views/refrigeration/energySavingPlatform/energyEfficiencyRatio.vue

@@ -0,0 +1,94 @@
+<template>
+    <div class="ratio-wrap">
+        <Label label="能效比" :icon="icon" />
+        <div class="list-wrap">
+            <div class="ratio-item-wrap" v-for="(item, index) in list" :key="index">
+                <img class="ratio-item-img" :src="item.icon" />
+                <div class="ratio-item-value-wrap">
+                    <div class="ratio-item-value">{{ item.value }}</div>
+                    <div class="ratio-item-label">{{ item.label }}</div>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+import Label from './label.vue';
+export default {
+    name: 'EnergyEfficiencyRatio',
+    components: {
+        Label
+    },
+    data() {
+        return {
+            icon: require('../../../assets/img/energyIcon/icon_ratio_title.png'),
+            list: [
+                {
+                    label: 'COP值',
+                    value: '4.61',
+                    icon: require('@assets/img/energyIcon/icon_cop.png')
+                },
+                {
+                    label: '节能率',
+                    value: '34.94%',
+                    icon: require('@assets/img/energyIcon/icon_ratio2.png')
+                }
+            ]
+        };
+    },
+
+    mounted() {},
+
+    methods: {}
+};
+</script>
+
+<style lang="scss" scoped>
+
+.ratio-wrap {
+    height:100%;
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    margin : 0 20px 0 20px
+}
+
+.list-wrap {
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    align-items: center;
+    margin-top: 7%;
+}
+
+.ratio-item-wrap {
+    display: flex;
+    align-items: center;
+}
+
+.ratio-item-img {
+    height: 50%;
+    width: 50%;
+}
+
+.ratio-item-value-wrap {
+    display: flex;
+    flex-direction: column;
+    margin-left: 20px;
+}
+
+.ratio-item-value {
+    font-size: 28px;
+    font-family: PingFangSC;
+    font-weight: 600;
+    color: #2398fa;
+}
+
+.ratio-item-label {
+    font-size: 19px;
+    font-family: PingFangSC;
+    font-weight: 400;
+    color: #ffffff;
+}
+</style>

+ 140 - 0
energyManagement/src/views/refrigeration/energySavingPlatform/index.vue

@@ -0,0 +1,140 @@
+<!--
+ * @Author: zhangW
+ * @Date: 2023-09-05 09:40:25
+ * @LastEditors: zhangW
+ * @LastEditTime: 2023-09-05 16:48:08
+ * @Description: file content
+-->
+<template>
+    <div class="energy-wrap" ref="fullRef">
+        <div class="item0">
+            <div class="title-wrap">
+                <img class="title-bg" src="@/assets/img/energyIcon/title_bg.png"/>
+                <div class="title-text-wrap">
+                    <div />
+                    <div class="title-text" @click="full">空调节能智慧监管平台</div>
+                    <div />
+                </div>
+            </div>
+        </div>
+        <div class="item1 item-wrap">
+            <ProjectSummary />
+        </div>
+        <div class="item2 item-wrap">
+            <EnergyEfficiencyRatio />
+        </div>
+        <div class="item3 item-wrap">
+            <DataOverView />
+        </div>
+        <div class="item4 item-wrap">
+            <DeviceMonitor />
+        </div>
+        <div class="item-wrap">
+            <EnergyAnalyze type="1" />
+        </div>
+        <div class="item-wrap">
+            <EnergyAnalyze type="2" />
+        </div>
+    </div>
+</template>
+
+<script>
+import DataOverView from './dataOverView.vue';
+import DeviceMonitor from './deviceMonitor.vue';
+import EnergyAnalyze from './energyAnalyze.vue';
+import EnergyEfficiencyRatio from './energyEfficiencyRatio.vue';
+import ProjectSummary from './projectSummary.vue';
+import screenfull from 'screenfull';
+
+export default {
+    components: {
+        ProjectSummary,
+        EnergyEfficiencyRatio,
+        DataOverView,
+        DeviceMonitor,
+        EnergyAnalyze
+    },
+    data() {
+        return {};
+    },
+    mounted() {
+        this.full();
+    },
+    methods: {
+        full() {
+            if (screenfull.isEnabled) {
+                screenfull.request(this.$refs.fullRef);
+            }
+        }
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+.energy-wrap {
+    display: grid;
+    height: 100%;
+    min-height: rem(800);
+    padding: 10px;
+    grid-gap: 10px;
+    grid-template-columns: 1.3fr 1.3fr 1fr;
+    grid-template-rows: 0.5fr 1.2fr 1fr 2fr;
+    background-color: #182324;
+}
+
+.item-wrap {
+    border: 1px solid #395252;
+    border-radius: 4px;
+}
+
+.item0 {
+    grid-column: 1/4;
+    width: 100%;
+}
+
+.item1 {
+    grid-column: 1/3;
+}
+
+.item2 {
+    // height: 120px;
+}
+
+.item3 {
+    grid-column: 1/3;
+}
+
+.item4 {
+    grid-row: 3/5;
+    grid-column: 3/4;
+}
+
+.title-wrap {
+    position: relative;
+    width: 100%;
+    height: 80px;
+    margin-top: 1%;
+}
+
+.title-bg {
+    height: 100%;
+    width: 100%;
+    position: absolute;
+}
+
+.title-text-wrap {
+    position: absolute;
+    width: 100%;
+    height: 100%;
+    display: flex;
+    justify-content:space-between;
+    align-items: center;
+}
+
+.title-text {
+    font-size: 35px;
+    font-family: PingFangSC;
+    font-weight: 500;
+    color: #d3c9b3;
+}
+</style>

+ 58 - 0
energyManagement/src/views/refrigeration/energySavingPlatform/label.vue

@@ -0,0 +1,58 @@
+<!--
+ * @Author: zhangW
+ * @Date: 2023-09-05 15:47:20
+ * @LastEditors: zhangW
+ * @LastEditTime: 2023-09-05 16:04:16
+ * @Description: file content
+-->
+<template>
+    <div class="label-wrap">
+        <img class="label-img" :src="icon" />
+        <div class="label-text">{{ label }}</div>
+    </div>
+</template>
+
+<script>
+export default {
+    name: 'Label',
+
+    props: {
+        label: {
+            type: String,
+            default: ''
+        },
+        icon: {
+            type: String,
+            default: ''
+        }
+    },
+
+    data() {
+        return {};
+    },
+
+    mounted() {},
+
+    methods: {}
+};
+</script>
+
+<style lang="scss" scoped>
+.label-wrap {
+    display: flex;
+    align-items: center;
+}
+
+.label-img {
+    height: 30px;
+    width: 30px;
+}
+
+.label-text {
+    font-size: 26px;
+    font-family: PingFang SC;
+    font-weight: 800;
+    color: #d3c9b3;
+    margin-left: 15px;
+}
+</style>

+ 163 - 0
energyManagement/src/views/refrigeration/energySavingPlatform/projectSummary.vue

@@ -0,0 +1,163 @@
+<!--
+ * @Author: zhangW
+ * @Date: 2023-09-05 11:10:06
+ * @LastEditors: zhangW
+ * @LastEditTime: 2023-09-05 16:43:35
+ * @Description: file content
+-->
+<template>
+    <div class="project-wrap">
+        <img class="project-img" src="https://img2.baidu.com/it/u=1356439018,2198935144&fm=253&fmt=auto&app=138&f=JPEG?w=640&h=426" />
+        <div style="width: 100%; margin: 0 40px">
+            <div class="project-space-wrap">
+                <Label label="项目概括" :icon="icon" />
+                <div class="time-text">{{ time }}</div>
+            </div>
+            <div class="project-company-text">南方科技大学生物楼</div>
+            <div class="project-space-wrap">
+                <div class="item-wrap" v-for="(item, index) in list" :key="index">
+                    <div class="item-value">
+                        {{ item.value }}
+                        <div class="item-value-unit">{{ item.unit }}</div>
+                    </div>
+                    <div class="item-label">{{ item.label }}</div>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+import Label from './label.vue';
+export default {
+    name: 'ProjectSummary',
+    components: {
+        Label
+    },
+    data() {
+        return {
+            icon: require('../../../assets/img/energyIcon/icon_summary.png'),
+            time : this.getTime(),
+            list: [
+                {
+                    label: '管控面积',
+                    value: '3815',
+                    unit : '㎡'
+                },
+                {
+                    label: '装机数量',
+                    value: '45',
+                    unit : '台'
+                },
+                {
+                    label: '装机总制冷量',
+                    value: '2124',
+                    unit : 'kw'
+                },
+                {
+                    label: '装机总功率',
+                    value: '1910',
+                    unit : 'kw'
+                },
+                {
+                    label: '环境温度',
+                    value: '36',
+                    unit : '°C'
+                },
+                {
+                    label: '室内平均温度',
+                    value: '23',
+                    unit : '°C'
+                }
+            ]
+        };
+    },
+
+    mounted() {},
+
+    methods: {
+        getTime() {
+            let date = new Date();
+            let weeks = ['星期日','星期一','星期二','星期三','星期四','星期五','星期六']
+            let week = weeks[date.getDay()]
+            return this.$moment(date).format('YYYY-MM-DD') + ' ' + week   
+        }
+    }
+};
+</script>
+
+<style lang="scss" scoped>
+.project-wrap {
+    display: flex;
+    height: 100%;
+    align-items: center;
+}
+
+.project-img {
+    width: 15%;
+    height: 80%;
+    margin-left: 25px;
+    border-radius: 4px;
+}
+
+.project-space-wrap {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+}
+
+.project-company-text {
+    font-size: 22px;
+    font-family: PingFang SC;
+    font-weight: bold;
+    color: #ffffff;
+    margin-top: 2%;
+
+    &::before {
+        height: 26px;
+        width: 26px;
+        margin-right: 10px;
+        content: '';
+        display: inline-block;
+        vertical-align: middle;
+        background: url('../../../assets/img/energyIcon/icon_company.png');
+        background-size: cover;
+    }
+}
+
+.time-text {
+    font-size: 22px;
+    font-family: PingFang SC;
+    font-weight: 500;
+    color: #ffffff;
+}
+
+.item-wrap {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    margin-top: 2%;
+}
+
+.item-value {
+    font-size: 34px;
+    font-family: PingFangSC;
+    font-weight: 600;
+    color: #52c1de;
+
+    display: flex;
+    align-items:baseline;
+}
+
+.item-value-unit {
+    font-size: 25px;
+}
+
+.item-label {
+    font-size: 19px;
+    font-family: PingFangSC;
+    font-weight: 400;
+    color: #ffffff;
+    margin-top: 5px;
+}
+</style>

+ 118 - 118
operationSupport/package-lock.json

@@ -2355,8 +2355,8 @@
     },
     "amdefine": {
       "version": "1.0.1",
-      "resolved": "https://registry.nlark.com/amdefine/download/amdefine-1.0.1.tgz",
-      "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
+      "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
+      "integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg=="
     },
     "ansi-colors": {
       "version": "3.2.4",
@@ -2410,8 +2410,8 @@
     },
     "are-we-there-yet": {
       "version": "1.1.7",
-      "resolved": "https://registry.nlark.com/are-we-there-yet/download/are-we-there-yet-1.1.7.tgz",
-      "integrity": "sha1-sVR0qTKtq0/4pQ2a36fk6SbyEUY=",
+      "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
+      "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==",
       "requires": {
         "delegates": "^1.0.0",
         "readable-stream": "^2.0.6"
@@ -2445,8 +2445,8 @@
     },
     "array-find-index": {
       "version": "1.0.2",
-      "resolved": "https://registry.nlark.com/array-find-index/download/array-find-index-1.0.2.tgz",
-      "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E="
+      "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
+      "integrity": "sha512-M1HQyIXcBGtVywBt8WVdim+lrNaK7VHp99Qt5pSNziXznKHViIBbXWtfRTpEFpF/c4FdfxNAsCCwPp5phBYJtw=="
     },
     "array-flatten": {
       "version": "1.1.1",
@@ -2555,8 +2555,8 @@
     },
     "async-foreach": {
       "version": "0.1.3",
-      "resolved": "https://registry.nlark.com/async-foreach/download/async-foreach-0.1.3.tgz",
-      "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI="
+      "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
+      "integrity": "sha512-VUeSMD8nEGBWaZK4lizI1sf3yEC7pnAQ/mrI7pC2fBz2s/tq5jWWEngTwaf0Gruu/OoXRGLGg1XFqpYBiGTYJA=="
     },
     "async-limiter": {
       "version": "1.0.1",
@@ -2890,8 +2890,8 @@
     },
     "block-stream": {
       "version": "0.0.9",
-      "resolved": "https://registry.nlark.com/block-stream/download/block-stream-0.0.9.tgz",
-      "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
+      "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
+      "integrity": "sha512-OorbnJVPII4DuUKbjARAe8u8EfqOmkEEaSFIyoQ7OjTHn6kafxWl0wLgoZ2rXaYd7MyLcDaU4TmhfxtwgcccMQ==",
       "requires": {
         "inherits": "~2.0.0"
       }
@@ -3333,13 +3333,13 @@
     },
     "camelcase": {
       "version": "2.1.1",
-      "resolved": "https://registry.npmmirror.com/camelcase/download/camelcase-2.1.1.tgz?cache=0&sync_timestamp=1636945151239&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase%2Fdownload%2Fcamelcase-2.1.1.tgz",
-      "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
+      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+      "integrity": "sha512-DLIsRzJVBQu72meAKPkWQOLcujdXT32hwdfnkI1frSiSRMK1MofjKHf+MEx0SB6fjEFXL8fBDv1dKymBlOp4Qw=="
     },
     "camelcase-keys": {
       "version": "2.1.0",
-      "resolved": "https://registry.npmmirror.com/camelcase-keys/download/camelcase-keys-2.1.0.tgz?cache=0&sync_timestamp=1633332959770&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcamelcase-keys%2Fdownload%2Fcamelcase-keys-2.1.0.tgz",
-      "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
+      "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
+      "integrity": "sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==",
       "requires": {
         "camelcase": "^2.0.0",
         "map-obj": "^1.0.0"
@@ -3779,8 +3779,8 @@
     },
     "code-point-at": {
       "version": "1.1.0",
-      "resolved": "https://registry.npmmirror.com/code-point-at/download/code-point-at-1.1.0.tgz",
-      "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
+      "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+      "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA=="
     },
     "codemirror": {
       "version": "5.65.1",
@@ -3932,8 +3932,8 @@
     },
     "console-control-strings": {
       "version": "1.1.0",
-      "resolved": "https://registry.npm.taobao.org/console-control-strings/download/console-control-strings-1.1.0.tgz",
-      "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
+      "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+      "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
     },
     "consolidate": {
       "version": "0.15.1",
@@ -4137,8 +4137,8 @@
     },
     "cross-spawn": {
       "version": "3.0.1",
-      "resolved": "https://registry.nlark.com/cross-spawn/download/cross-spawn-3.0.1.tgz",
-      "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
+      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
+      "integrity": "sha512-eZ+m1WNhSZutOa/uRblAc9Ut5MQfukFrFMtPSm3bZCA888NmMd5AWXWdgRZ80zd+pTk1P2JrGjg9pUPTvl2PWQ==",
       "requires": {
         "lru-cache": "^4.0.1",
         "which": "^1.2.9"
@@ -4484,8 +4484,8 @@
     },
     "currently-unhandled": {
       "version": "0.4.1",
-      "resolved": "https://registry.npm.taobao.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz",
-      "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
+      "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
+      "integrity": "sha512-/fITjgjGU50vjQ4FH6eUoYu+iUoUKIXws2hL15JJpIR+BbTxaXQsMuuyjtNh2WqsSBS5nsaZHFsFecyw5CCAng==",
       "requires": {
         "array-find-index": "^1.0.1"
       }
@@ -4787,8 +4787,8 @@
     },
     "delegates": {
       "version": "1.0.0",
-      "resolved": "https://registry.nlark.com/delegates/download/delegates-1.0.0.tgz",
-      "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
+      "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+      "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
     },
     "depd": {
       "version": "1.1.2",
@@ -5736,8 +5736,8 @@
     },
     "find-up": {
       "version": "1.1.2",
-      "resolved": "https://registry.npmmirror.com/find-up/download/find-up-1.1.2.tgz",
-      "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
+      "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
+      "integrity": "sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA==",
       "requires": {
         "path-exists": "^2.0.0",
         "pinkie-promise": "^2.0.0"
@@ -5850,8 +5850,8 @@
     },
     "fstream": {
       "version": "1.0.12",
-      "resolved": "https://registry.npm.taobao.org/fstream/download/fstream-1.0.12.tgz",
-      "integrity": "sha1-Touo7i1Ivk99DeUFRVVI6uWTIEU=",
+      "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
+      "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
       "requires": {
         "graceful-fs": "^4.1.2",
         "inherits": "~2.0.0",
@@ -5866,8 +5866,8 @@
     },
     "gauge": {
       "version": "2.7.4",
-      "resolved": "https://registry.npmmirror.com/gauge/download/gauge-2.7.4.tgz?cache=0&sync_timestamp=1636989413004&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fgauge%2Fdownload%2Fgauge-2.7.4.tgz",
-      "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+      "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+      "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==",
       "requires": {
         "aproba": "^1.0.3",
         "console-control-strings": "^1.0.0",
@@ -5881,8 +5881,8 @@
     },
     "gaze": {
       "version": "1.1.3",
-      "resolved": "https://registry.npmmirror.com/gaze/download/gaze-1.1.3.tgz",
-      "integrity": "sha1-xEFzPhO5J6yMD/C0w7Az8ogSkko=",
+      "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
+      "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
       "requires": {
         "globule": "^1.0.0"
       }
@@ -5915,8 +5915,8 @@
     },
     "get-stdin": {
       "version": "4.0.1",
-      "resolved": "https://registry.nlark.com/get-stdin/download/get-stdin-4.0.1.tgz",
-      "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4="
+      "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
+      "integrity": "sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw=="
     },
     "get-stream": {
       "version": "4.1.0",
@@ -6000,19 +6000,19 @@
       }
     },
     "globule": {
-      "version": "1.3.3",
-      "resolved": "https://registry.nlark.com/globule/download/globule-1.3.3.tgz",
-      "integrity": "sha1-gRkZ7qwatzROkF8uO+gKE0R5c8I=",
+      "version": "1.3.4",
+      "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.4.tgz",
+      "integrity": "sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg==",
       "requires": {
         "glob": "~7.1.1",
-        "lodash": "~4.17.10",
+        "lodash": "^4.17.21",
         "minimatch": "~3.0.2"
       },
       "dependencies": {
         "glob": {
           "version": "7.1.7",
-          "resolved": "https://registry.npmmirror.com/glob/download/glob-7.1.7.tgz",
-          "integrity": "sha1-Oxk+kjPwHULQs/eClLvutBj5SpA=",
+          "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
+          "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
           "requires": {
             "fs.realpath": "^1.0.0",
             "inflight": "^1.0.4",
@@ -6115,8 +6115,8 @@
     },
     "has-unicode": {
       "version": "2.0.1",
-      "resolved": "https://registry.nlark.com/has-unicode/download/has-unicode-2.0.1.tgz",
-      "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
+      "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+      "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="
     },
     "has-value": {
       "version": "1.0.0",
@@ -6795,13 +6795,13 @@
     },
     "in-publish": {
       "version": "2.0.1",
-      "resolved": "https://registry.nlark.com/in-publish/download/in-publish-2.0.1.tgz",
-      "integrity": "sha1-lIsaU1yAMFYc6lIvc/ePS+NX4Aw="
+      "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz",
+      "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ=="
     },
     "indent-string": {
       "version": "2.1.0",
-      "resolved": "https://registry.nlark.com/indent-string/download/indent-string-2.1.0.tgz?cache=0&sync_timestamp=1622604582006&other_urls=https%3A%2F%2Fregistry.nlark.com%2Findent-string%2Fdownload%2Findent-string-2.1.0.tgz",
-      "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
+      "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
+      "integrity": "sha512-aqwDFWSgSgfRaEwao5lg5KEcVd/2a+D1rvoG7NdilmYz0NwRk6StWpWdz/Hpk34MKPpx7s8XxUqimfcQK6gGlg==",
       "requires": {
         "repeating": "^2.0.0"
       }
@@ -7084,13 +7084,13 @@
     },
     "is-finite": {
       "version": "1.1.0",
-      "resolved": "https://registry.npmmirror.com/is-finite/download/is-finite-1.1.0.tgz",
-      "integrity": "sha1-kEE1x3+0LAZB1qobzbxNqo2ggvM="
+      "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz",
+      "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w=="
     },
     "is-fullwidth-code-point": {
       "version": "1.0.0",
-      "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz",
-      "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+      "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
       "requires": {
         "number-is-nan": "^1.0.0"
       }
@@ -7222,8 +7222,8 @@
     },
     "is-utf8": {
       "version": "0.2.1",
-      "resolved": "https://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz",
-      "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
+      "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
+      "integrity": "sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q=="
     },
     "is-weakref": {
       "version": "1.0.1",
@@ -7280,8 +7280,8 @@
     },
     "js-base64": {
       "version": "2.6.4",
-      "resolved": "https://registry.npmmirror.com/js-base64/download/js-base64-2.6.4.tgz",
-      "integrity": "sha1-9OaGxd4eofhn28rT1G2WlCjfmMQ="
+      "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz",
+      "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ=="
     },
     "js-levenshtein": {
       "version": "1.1.6",
@@ -7498,8 +7498,8 @@
     },
     "load-json-file": {
       "version": "1.1.0",
-      "resolved": "https://registry.nlark.com/load-json-file/download/load-json-file-1.1.0.tgz",
-      "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
+      "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
+      "integrity": "sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A==",
       "requires": {
         "graceful-fs": "^4.1.2",
         "parse-json": "^2.2.0",
@@ -7649,8 +7649,8 @@
     },
     "loud-rejection": {
       "version": "1.6.0",
-      "resolved": "https://registry.nlark.com/loud-rejection/download/loud-rejection-1.6.0.tgz",
-      "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
+      "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
+      "integrity": "sha512-RPNliZOFkqFumDhvYqOaNY4Uz9oJM2K9tC6JWsJJsNdhuONW4LQHRBpb0qf4pJApVffI5N39SwzWZJuEhfd7eQ==",
       "requires": {
         "currently-unhandled": "^0.4.1",
         "signal-exit": "^3.0.0"
@@ -7696,8 +7696,8 @@
     },
     "map-obj": {
       "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/map-obj/download/map-obj-1.0.1.tgz?cache=0&sync_timestamp=1634552719803&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmap-obj%2Fdownload%2Fmap-obj-1.0.1.tgz",
-      "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0="
+      "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+      "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg=="
     },
     "map-visit": {
       "version": "1.0.0",
@@ -7780,8 +7780,8 @@
     },
     "meow": {
       "version": "3.7.0",
-      "resolved": "https://registry.npmmirror.com/meow/download/meow-3.7.0.tgz?cache=0&sync_timestamp=1637477569022&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmeow%2Fdownload%2Fmeow-3.7.0.tgz",
-      "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
+      "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
+      "integrity": "sha512-TNdwZs0skRlpPpCUK25StC4VH+tP5GgeY1HQOOGP+lQ2xtdkN2VtT/5tiX9k3IWpkBPV9b3LsAWXn4GGi/PrSA==",
       "requires": {
         "camelcase-keys": "^2.0.0",
         "decamelize": "^1.1.2",
@@ -8161,8 +8161,8 @@
     },
     "node-gyp": {
       "version": "3.8.0",
-      "resolved": "https://registry.npmmirror.com/node-gyp/download/node-gyp-3.8.0.tgz?cache=0&sync_timestamp=1637570177658&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fnode-gyp%2Fdownload%2Fnode-gyp-3.8.0.tgz",
-      "integrity": "sha1-VAMEJhwzDoDQ1e3OJTpoyzlkIYw=",
+      "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
+      "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
       "requires": {
         "fstream": "^1.0.0",
         "glob": "^7.0.3",
@@ -8180,8 +8180,8 @@
       "dependencies": {
         "semver": {
           "version": "5.3.0",
-          "resolved": "https://registry.nlark.com/semver/download/semver-5.3.0.tgz?cache=0&sync_timestamp=1622604551741&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fsemver%2Fdownload%2Fsemver-5.3.0.tgz",
-          "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8="
+          "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+          "integrity": "sha512-mfmm3/H9+67MCVix1h+IXTpDwL6710LyHuk7+cWC9T1mE0qz4iHhh6r4hU2wrIT9iTsAAC2XQRvfblL028cpLw=="
         }
       }
     },
@@ -8243,8 +8243,8 @@
     },
     "node-sass": {
       "version": "4.14.1",
-      "resolved": "https://registry.npmmirror.com/node-sass/download/node-sass-4.14.1.tgz",
-      "integrity": "sha1-mch+wu+3BH7WOPtMnbfzpC4iF7U=",
+      "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz",
+      "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==",
       "requires": {
         "async-foreach": "^0.1.3",
         "chalk": "^1.1.1",
@@ -8267,8 +8267,8 @@
     },
     "nopt": {
       "version": "3.0.6",
-      "resolved": "https://registry.npm.taobao.org/nopt/download/nopt-3.0.6.tgz",
-      "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
+      "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
+      "integrity": "sha512-4GUt3kSEYmk4ITxzB/b9vaIDfUVWN/Ml1Fwl11IlnIG2iaJ9O6WXZ9SrYM9NLI8OCBieN2Y8SWC2oJV0RQ7qYg==",
       "requires": {
         "abbrev": "1"
       }
@@ -8318,8 +8318,8 @@
     },
     "npmlog": {
       "version": "4.1.2",
-      "resolved": "https://registry.npmmirror.com/npmlog/download/npmlog-4.1.2.tgz?cache=0&sync_timestamp=1637085007288&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fnpmlog%2Fdownload%2Fnpmlog-4.1.2.tgz",
-      "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=",
+      "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+      "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
       "requires": {
         "are-we-there-yet": "~1.1.2",
         "console-control-strings": "~1.1.0",
@@ -8354,8 +8354,8 @@
     },
     "number-is-nan": {
       "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/number-is-nan/download/number-is-nan-1.0.1.tgz",
-      "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
+      "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+      "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ=="
     },
     "oauth-sign": {
       "version": "0.9.0",
@@ -8620,18 +8620,18 @@
     },
     "os-homedir": {
       "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz",
-      "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
+      "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+      "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ=="
     },
     "os-tmpdir": {
       "version": "1.0.2",
-      "resolved": "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz",
-      "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
+      "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+      "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g=="
     },
     "osenv": {
       "version": "0.1.5",
-      "resolved": "https://registry.nlark.com/osenv/download/osenv-0.1.5.tgz",
-      "integrity": "sha1-hc36+uso6Gd/QW4odZK18/SepBA=",
+      "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+      "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
       "requires": {
         "os-homedir": "^1.0.0",
         "os-tmpdir": "^1.0.0"
@@ -8725,8 +8725,8 @@
     },
     "parse-json": {
       "version": "2.2.0",
-      "resolved": "https://registry.npmmirror.com/parse-json/download/parse-json-2.2.0.tgz",
-      "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
+      "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
+      "integrity": "sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==",
       "requires": {
         "error-ex": "^1.2.0"
       }
@@ -8780,8 +8780,8 @@
     },
     "path-exists": {
       "version": "2.1.0",
-      "resolved": "https://registry.nlark.com/path-exists/download/path-exists-2.1.0.tgz",
-      "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
+      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
+      "integrity": "sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ==",
       "requires": {
         "pinkie-promise": "^2.0.0"
       }
@@ -8821,8 +8821,8 @@
     },
     "path-type": {
       "version": "1.1.0",
-      "resolved": "https://registry.nlark.com/path-type/download/path-type-1.1.0.tgz",
-      "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
+      "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
+      "integrity": "sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg==",
       "requires": {
         "graceful-fs": "^4.1.2",
         "pify": "^2.0.0",
@@ -8861,8 +8861,8 @@
     },
     "pify": {
       "version": "2.3.0",
-      "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz",
-      "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
+      "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+      "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="
     },
     "pinkie": {
       "version": "2.0.4",
@@ -10067,8 +10067,8 @@
     },
     "read-pkg": {
       "version": "1.1.0",
-      "resolved": "https://registry.nlark.com/read-pkg/download/read-pkg-1.1.0.tgz",
-      "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
+      "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
+      "integrity": "sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ==",
       "requires": {
         "load-json-file": "^1.0.0",
         "normalize-package-data": "^2.3.2",
@@ -10077,8 +10077,8 @@
     },
     "read-pkg-up": {
       "version": "1.0.1",
-      "resolved": "https://registry.npmmirror.com/read-pkg-up/download/read-pkg-up-1.0.1.tgz",
-      "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
+      "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
+      "integrity": "sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A==",
       "requires": {
         "find-up": "^1.0.0",
         "read-pkg": "^1.0.0"
@@ -10110,8 +10110,8 @@
     },
     "redent": {
       "version": "1.0.0",
-      "resolved": "https://registry.nlark.com/redent/download/redent-1.0.0.tgz",
-      "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
+      "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
+      "integrity": "sha512-qtW5hKzGQZqKoh6JNSD+4lfitfPKGz42e6QwiRmPM5mmKtR0N41AbJRYu0xJi7nhOJ4WDgRkKvAk6tw4WIwR4g==",
       "requires": {
         "indent-string": "^2.1.0",
         "strip-indent": "^1.0.1"
@@ -10299,8 +10299,8 @@
     },
     "repeating": {
       "version": "2.0.1",
-      "resolved": "https://registry.nlark.com/repeating/download/repeating-2.0.1.tgz?cache=0&sync_timestamp=1622605325095&other_urls=https%3A%2F%2Fregistry.nlark.com%2Frepeating%2Fdownload%2Frepeating-2.0.1.tgz",
-      "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
+      "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
+      "integrity": "sha512-ZqtSMuVybkISo2OWvqvm7iHSWngvdaW3IpsT9/uP8v4gMi591LY6h35wdOfvQdWCKFWZWm2Y1Opp4kV7vQKT6A==",
       "requires": {
         "is-finite": "^1.0.0"
       }
@@ -10512,8 +10512,8 @@
     },
     "sass-graph": {
       "version": "2.2.5",
-      "resolved": "https://registry.nlark.com/sass-graph/download/sass-graph-2.2.5.tgz",
-      "integrity": "sha1-qYHIdEa4MZ2W3OBnHkh4eb0kwug=",
+      "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz",
+      "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==",
       "requires": {
         "glob": "^7.0.0",
         "lodash": "^4.0.0",
@@ -10578,8 +10578,8 @@
     },
     "scss-tokenizer": {
       "version": "0.2.3",
-      "resolved": "https://registry.nlark.com/scss-tokenizer/download/scss-tokenizer-0.2.3.tgz",
-      "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
+      "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
+      "integrity": "sha512-dYE8LhncfBUar6POCxMTm0Ln+erjeczqEvCJib5/7XNkdw1FkUGgwMPY360FY0FgPWQxHWCx29Jl3oejyGLM9Q==",
       "requires": {
         "js-base64": "^2.1.8",
         "source-map": "^0.4.2"
@@ -11046,8 +11046,8 @@
     },
     "source-map": {
       "version": "0.4.4",
-      "resolved": "https://registry.nlark.com/source-map/download/source-map-0.4.4.tgz",
-      "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
+      "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
+      "integrity": "sha512-Y8nIfcb1s/7DcobUz1yOO1GSp7gyL+D9zLHDehT7iRESqGSxjJ448Sg7rvfgsRJCnKLdSl11uGf0s9X80cH0/A==",
       "requires": {
         "amdefine": ">=0.0.4"
       }
@@ -11275,8 +11275,8 @@
     },
     "stdout-stream": {
       "version": "1.4.1",
-      "resolved": "https://registry.npm.taobao.org/stdout-stream/download/stdout-stream-1.4.1.tgz",
-      "integrity": "sha1-WsF0zdXNcmEEqgwLK9g4FdjVNd4=",
+      "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
+      "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
       "requires": {
         "readable-stream": "^2.0.1"
       }
@@ -11334,8 +11334,8 @@
     },
     "string-width": {
       "version": "1.0.2",
-      "resolved": "https://registry.npmmirror.com/string-width/download/string-width-1.0.2.tgz?cache=0&sync_timestamp=1632420968947&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fstring-width%2Fdownload%2Fstring-width-1.0.2.tgz",
-      "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+      "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+      "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==",
       "requires": {
         "code-point-at": "^1.0.0",
         "is-fullwidth-code-point": "^1.0.0",
@@ -11402,8 +11402,8 @@
     },
     "strip-bom": {
       "version": "2.0.0",
-      "resolved": "https://registry.nlark.com/strip-bom/download/strip-bom-2.0.0.tgz",
-      "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
+      "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
+      "integrity": "sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==",
       "requires": {
         "is-utf8": "^0.2.0"
       }
@@ -11422,8 +11422,8 @@
     },
     "strip-indent": {
       "version": "1.0.1",
-      "resolved": "https://registry.nlark.com/strip-indent/download/strip-indent-1.0.1.tgz?cache=0&sync_timestamp=1620053310624&other_urls=https%3A%2F%2Fregistry.nlark.com%2Fstrip-indent%2Fdownload%2Fstrip-indent-1.0.1.tgz",
-      "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
+      "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
+      "integrity": "sha512-I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==",
       "requires": {
         "get-stdin": "^4.0.1"
       }
@@ -11622,8 +11622,8 @@
     },
     "tar": {
       "version": "2.2.2",
-      "resolved": "https://registry.nlark.com/tar/download/tar-2.2.2.tgz?cache=0&sync_timestamp=1629994598621&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftar%2Fdownload%2Ftar-2.2.2.tgz",
-      "integrity": "sha1-DKiEhWLHKZuLRG/2pNYM27I+3EA=",
+      "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz",
+      "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==",
       "requires": {
         "block-stream": "*",
         "fstream": "^1.0.12",
@@ -11926,13 +11926,13 @@
     },
     "trim-newlines": {
       "version": "1.0.0",
-      "resolved": "https://registry.nlark.com/trim-newlines/download/trim-newlines-1.0.0.tgz?cache=0&sync_timestamp=1623341510447&other_urls=https%3A%2F%2Fregistry.nlark.com%2Ftrim-newlines%2Fdownload%2Ftrim-newlines-1.0.0.tgz",
-      "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM="
+      "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
+      "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw=="
     },
     "true-case-path": {
       "version": "1.0.3",
-      "resolved": "https://registry.nlark.com/true-case-path/download/true-case-path-1.0.3.tgz",
-      "integrity": "sha1-+BO1qMhrQNpZYGcisUTjIleZ9H0=",
+      "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
+      "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==",
       "requires": {
         "glob": "^7.1.2"
       }
@@ -13482,8 +13482,8 @@
     },
     "wide-align": {
       "version": "1.1.5",
-      "resolved": "https://registry.npmmirror.com/wide-align/download/wide-align-1.1.5.tgz",
-      "integrity": "sha1-3x1MIGhUNp7PPJpImPGyP72dFdM=",
+      "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
+      "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
       "requires": {
         "string-width": "^1.0.2 || 2 || 3 || 4"
       }