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

会议管理,文印管理,公车管理成本趋势图表修改

Bella 2 лет назад
Родитель
Сommit
cd09f6cd5e

+ 168 - 1
package-lock.json

@@ -14,6 +14,7 @@
         "echarts": "^5.4.1",
         "echarts-liquidfill": "^3.1.0",
         "element-resize-detector": "^1.2.4",
+        "file-saver": "^2.0.5",
         "hikvs-web": "^1.0.4",
         "moment": "^2.29.4",
         "pinia": "^2.0.16",
@@ -21,7 +22,8 @@
         "qs": "^6.11.0",
         "three": "^0.151.2",
         "vue": "^2.7.14",
-        "vue-router": "^3.5.4"
+        "vue-router": "^3.5.4",
+        "xlsx": "^0.18.5"
       },
       "devDependencies": {
         "@antfu/eslint-config": "^0.34.1",
@@ -1072,6 +1074,14 @@
         "object-assign": "4.x"
       }
     },
+    "node_modules/adler-32": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz",
+      "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==",
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
     "node_modules/ajv": {
       "version": "6.12.6",
       "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
@@ -1412,6 +1422,18 @@
       "dev": true,
       "peer": true
     },
+    "node_modules/cfb": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz",
+      "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
+      "dependencies": {
+        "adler-32": "~1.3.0",
+        "crc-32": "~1.2.0"
+      },
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
     "node_modules/chalk": {
       "version": "4.1.2",
       "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
@@ -1535,6 +1557,14 @@
         "node": ">=12"
       }
     },
+    "node_modules/codepage": {
+      "version": "1.15.0",
+      "resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz",
+      "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==",
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
     "node_modules/color-convert": {
       "version": "2.0.1",
       "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
@@ -1637,6 +1667,17 @@
       "integrity": "sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w==",
       "hasInstallScript": true
     },
+    "node_modules/crc-32": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz",
+      "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
+      "bin": {
+        "crc32": "bin/crc32.njs"
+      },
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
     "node_modules/cross-spawn": {
       "version": "7.0.3",
       "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -3045,6 +3086,11 @@
         "node": "^10.12.0 || >=12.0.0"
       }
     },
+    "node_modules/file-saver": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz",
+      "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA=="
+    },
     "node_modules/fill-range": {
       "version": "7.0.1",
       "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz",
@@ -3157,6 +3203,14 @@
         "node": ">= 6"
       }
     },
+    "node_modules/frac": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz",
+      "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==",
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
     "node_modules/fs-extra": {
       "version": "10.1.0",
       "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz",
@@ -5395,6 +5449,17 @@
       "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==",
       "dev": true
     },
+    "node_modules/ssf": {
+      "version": "0.11.2",
+      "resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz",
+      "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
+      "dependencies": {
+        "frac": "~1.1.2"
+      },
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
     "node_modules/statuses": {
       "version": "1.5.0",
       "resolved": "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz",
@@ -6349,6 +6414,22 @@
         "node": ">= 0.4"
       }
     },
+    "node_modules/wmf": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz",
+      "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==",
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
+    "node_modules/word": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmmirror.com/word/-/word-0.3.0.tgz",
+      "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==",
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
     "node_modules/word-wrap": {
       "version": "1.2.3",
       "resolved": "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.3.tgz",
@@ -6378,6 +6459,26 @@
       "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
       "dev": true
     },
+    "node_modules/xlsx": {
+      "version": "0.18.5",
+      "resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz",
+      "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==",
+      "dependencies": {
+        "adler-32": "~1.3.0",
+        "cfb": "~1.2.1",
+        "codepage": "~1.15.0",
+        "crc-32": "~1.2.1",
+        "ssf": "~0.11.2",
+        "wmf": "~1.0.1",
+        "word": "~0.3.0"
+      },
+      "bin": {
+        "xlsx": "bin/xlsx.njs"
+      },
+      "engines": {
+        "node": ">=0.8"
+      }
+    },
     "node_modules/xml-name-validator": {
       "version": "4.0.0",
       "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz",
@@ -7304,6 +7405,11 @@
         "object-assign": "4.x"
       }
     },
+    "adler-32": {
+      "version": "1.3.1",
+      "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz",
+      "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A=="
+    },
     "ajv": {
       "version": "6.12.6",
       "resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
@@ -7595,6 +7701,15 @@
       "dev": true,
       "peer": true
     },
+    "cfb": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz",
+      "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
+      "requires": {
+        "adler-32": "~1.3.0",
+        "crc-32": "~1.2.0"
+      }
+    },
     "chalk": {
       "version": "4.1.2",
       "resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
@@ -7696,6 +7811,11 @@
         "wrap-ansi": "^7.0.0"
       }
     },
+    "codepage": {
+      "version": "1.15.0",
+      "resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz",
+      "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA=="
+    },
     "color-convert": {
       "version": "2.0.1",
       "resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
@@ -7787,6 +7907,11 @@
       "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.27.2.tgz",
       "integrity": "sha512-9ashVQskuh5AZEZ1JdQWp1GqSoC1e1G87MzRqg2gIfVAQ7Qn9K+uFj8EcniUFA4P2NLZfV+TOlX1SzoKfo+s7w=="
     },
+    "crc-32": {
+      "version": "1.2.2",
+      "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz",
+      "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ=="
+    },
     "cross-spawn": {
       "version": "7.0.3",
       "resolved": "https://registry.npmmirror.com/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -8798,6 +8923,11 @@
         "flat-cache": "^3.0.4"
       }
     },
+    "file-saver": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz",
+      "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA=="
+    },
     "fill-range": {
       "version": "7.0.1",
       "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz",
@@ -8889,6 +9019,11 @@
         "mime-types": "^2.1.12"
       }
     },
+    "frac": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz",
+      "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
+    },
     "fs-extra": {
       "version": "10.1.0",
       "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-10.1.0.tgz",
@@ -10674,6 +10809,14 @@
       "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==",
       "dev": true
     },
+    "ssf": {
+      "version": "0.11.2",
+      "resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz",
+      "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
+      "requires": {
+        "frac": "~1.1.2"
+      }
+    },
     "statuses": {
       "version": "1.5.0",
       "resolved": "https://registry.npmmirror.com/statuses/-/statuses-1.5.0.tgz",
@@ -11393,6 +11536,16 @@
         "is-typed-array": "^1.1.10"
       }
     },
+    "wmf": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz",
+      "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw=="
+    },
+    "word": {
+      "version": "0.3.0",
+      "resolved": "https://registry.npmmirror.com/word/-/word-0.3.0.tgz",
+      "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA=="
+    },
     "word-wrap": {
       "version": "1.2.3",
       "resolved": "https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.3.tgz",
@@ -11416,6 +11569,20 @@
       "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
       "dev": true
     },
+    "xlsx": {
+      "version": "0.18.5",
+      "resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz",
+      "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==",
+      "requires": {
+        "adler-32": "~1.3.0",
+        "cfb": "~1.2.1",
+        "codepage": "~1.15.0",
+        "crc-32": "~1.2.1",
+        "ssf": "~0.11.2",
+        "wmf": "~1.0.1",
+        "word": "~0.3.0"
+      }
+    },
     "xml-name-validator": {
       "version": "4.0.0",
       "resolved": "https://registry.npmmirror.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz",

+ 3 - 1
package.json

@@ -14,6 +14,7 @@
     "echarts": "^5.4.1",
     "echarts-liquidfill": "^3.1.0",
     "element-resize-detector": "^1.2.4",
+    "file-saver": "^2.0.5",
     "hikvs-web": "^1.0.4",
     "moment": "^2.29.4",
     "pinia": "^2.0.16",
@@ -21,7 +22,8 @@
     "qs": "^6.11.0",
     "three": "^0.151.2",
     "vue": "^2.7.14",
-    "vue-router": "^3.5.4"
+    "vue-router": "^3.5.4",
+    "xlsx": "^0.18.5"
   },
   "devDependencies": {
     "@antfu/eslint-config": "^0.34.1",

+ 19 - 7
src/components/common/card.vue

@@ -1,10 +1,18 @@
 <template>
   <div class="ioc-card">
     <div class="card_title">
-      <slot name="title">{{ title }}</slot>
+      <slot name="title"
+        ><span :style="{ fontSize: mainTitleSize }">{{ title }}</span></slot
+      >
       <span style="float: right">
         <slot name="title-extra"></slot>
       </span>
+      <span
+        style="position: absolute; left: 31px; top: 50px"
+        v-if="moduleType === '智慧办公'"
+      >
+        <slot name="sub-title"></slot>
+      </span>
     </div>
     <slot v-if="show"></slot>
   </div>
@@ -14,6 +22,11 @@
 export default {
   props: {
     title: String,
+    moduleType: String,
+    mainTitleSize: {
+      type: String,
+      default: "16px",
+    },
   },
   data() {
     return {
@@ -21,10 +34,10 @@ export default {
     };
   },
   mounted() {
-    this.$nextTick(()=>{
+    this.$nextTick(() => {
       this.show = true;
-    })
-  }
+    });
+  },
 };
 </script>
 
@@ -36,9 +49,8 @@ export default {
   .card_title {
     padding: 10px 0px 10px 15px;
     font-size: 16px;
-    font-family: PingFangSC-Bold,serif;
+    font-family: PingFangSC-Bold, serif;
     color: #333333;
   }
 }
-
-</style>
+</style>

+ 1 - 0
src/components/dashboard/more/carbonOverviewChart.vue

@@ -27,6 +27,7 @@ export default {
         },
         yAxis: [
           {
+            name:"碳配额(tCO2e)",
             type: 'value',
             nameTextStyle: {
               padding: [10, 0, 10, -20]

+ 2 - 4
src/components/dashboard/more/pv/pvPowerProfitChart.vue

@@ -7,9 +7,7 @@ export default {
       dataIndexes: ["subsidy", "saving","earning"],
       option: {
         tooltip: {
-          formatter:function(params){
-            return params.seriesName + " :  " + params.value + '元';
-          }
+          trigger: 'item',
         },
         legend: {
           bottom: "8%",
@@ -21,7 +19,7 @@ export default {
             name: "金额",
             type: "pie",
             unit:"元",
-            radius: "60",
+            radius: "55%",
             center: ["50%", "40%"],
             data: [
               { value: 0, name: "补贴金额" },

+ 2 - 2
src/components/dashboard/more/pv/pvPowerSummaryChart.vue

@@ -8,7 +8,7 @@ export default {
       option: {
         legend: {
           data: [
-            '实时发电',
+            '发电',
           ]
         },
         grid: {
@@ -52,7 +52,7 @@ export default {
         },
         series: [
           {
-            name: '实时发电',
+            name: '发电',
             data: [],
             type: 'line',
             smooth: true,

+ 2 - 2
src/components/dashboard/more/pvPowerChart.vue

@@ -22,7 +22,7 @@ export default {
 
 <template>
   <div class="dashboard-pvPower">
-    <Card title="光伏发电量">
+    <Card title="光伏发电量: kWh">
       <div style="height: 200px">
         <PvPowerSummaryChart
           :height="220"
@@ -34,7 +34,7 @@ export default {
       </div>
     </Card>
 
-    <Card title="光伏盈利">
+    <Card title="光伏盈利: 元">
       <div style="width: 90%; margin: 0 auto; padding: 15px">
         <PvPowerProfitChart
           :height="200"

+ 16 - 11
src/components/report/data/reportDataRestaurant.vue

@@ -8,9 +8,13 @@
       <Card title="报告预览">
         <template #title-extra>
           <div style="padding-right: 20px">
-            <span style="color: #B2B2B2;font-size: 12px">支持 pdf,word,excel</span>
-            <a-button type="link" size="small">导出</a-button>
-            <a-button type="link" size="small" >打印</a-button>
+            <span style="color: #b2b2b2; font-size: 12px"
+              >支持 pdf,word,excel</span
+            >
+            <a-button type="link" size="small" @click="exportFunc"
+              >导出</a-button
+            >
+            <a-button type="link" size="small">打印</a-button>
           </div>
         </template>
         <reportDataTable />
@@ -28,17 +32,18 @@ export default {
   components: {
     Card,
     ReportQuery,
-    reportDataTable
+    reportDataTable,
   },
   data() {
-    return {}
-  },
-  mounted() {
+    return {};
   },
+  mounted() {},
   methods: {
-
-  }
-}
+    exportFunc() {
+      console.log("打印报告");
+    },
+  },
+};
 </script>
 
 <style lang="less" scoped>
@@ -56,4 +61,4 @@ export default {
     background-color: #ffffff;
   }
 }
-</style>
+</style>

+ 4 - 1
src/components/report/table/reportTableCustom.vue

@@ -9,7 +9,7 @@
         <template #title-extra>
           <div style="padding-right: 20px">
             <span style="color: #B2B2B2;font-size: 12px">支持 pdf,word,excel</span>
-            <a-button type="link" size="small">导出</a-button>
+            <a-button type="link" size="small" @click="exportFunc">导出</a-button>
             <a-button type="link" size="small" >打印</a-button>
           </div>
         </template>
@@ -131,6 +131,9 @@ export default {
     this.search();
   },
   methods: {
+    exportFunc(){
+      console.log("打印报表");
+    },
     getRandom(m,n) {
       let val = Math.random()*(m-n)+n
       return Math.ceil(val);

+ 1 - 1
src/components/work/bus/component/workBusChart.vue

@@ -31,7 +31,7 @@ export default {
         },
         yAxis: [
           {
-            name: '出车次数',
+            name: '出车次数(次)',
             type: 'value',
             position: 'left',
             max: 5,

+ 69 - 56
src/components/work/bus/component/workBusTrend.vue

@@ -6,112 +6,125 @@ export default {
     return {
       option: {
         legend: {
-          data: [
-            '成本',
-          ]
+          top: "10%",
+          data: ["成本"],
         },
         grid: {
-          left: '6%', //默认10%
-          right: '10%', //默认10%
-          bottom: '20px', //默认60
-          top: '60px',
-          containLabel: true
+          left: "2%", //默认10%
+          right: "3%", //默认10%
+          bottom: "20px", //默认60
+          top: "25%",
+          containLabel: true,
           //grid区域是否包含坐标轴的刻度标签
         },
         xAxis: {
-          data: []
+          data: [],
         },
         yAxis: [
           {
-            name: '%',
-            type: 'value',
+            name: "金额(元)",
+            type: "value",
             nameTextStyle: {
-              padding: [10, 0, 10, -12]
+              padding: [10, 0, 10, -12],
             },
           },
         ],
         dataZoom: this.$constant.ECHARTS_OPTION_DATAZOOM,
         tooltip: {
-          trigger: 'axis',
+          trigger: "axis",
           axisPointer: {
-            type: 'shadow'
+            type: "shadow",
           },
           textStyle: {
-            color: '#fff',
-            align: 'left',
-            fontSize: 14
+            color: "#fff",
+            align: "left",
+            fontSize: 14,
           },
-          axisLine: {//x坐标轴轴线
+          axisLine: {
+            //x坐标轴轴线
             show: true,
-            lineStyle: {//x坐标轴轴线样式
-              color: '#000',//'#ccc' | 'rgb(128, 128, 128)' | 'rgba(128, 128, 128, 0.5)',设置标签颜色
-            }
+            lineStyle: {
+              //x坐标轴轴线样式
+              color: "#000", //'#ccc' | 'rgb(128, 128, 128)' | 'rgba(128, 128, 128, 0.5)',设置标签颜色
+            },
           },
-          backgroundColor: 'rgba(0,0,0,0.8)',
+          backgroundColor: "rgba(0,0,0,0.8)",
         },
         series: [
           {
-            name: '成本',
+            name: "成本",
             data: [],
-            type: 'line',
-            stack: 'x',
+            type: "line",
+            stack: "x",
             smooth: true,
-            showSymbol:false,
+            showSymbol: false,
             areaStyle: {
-              color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
-                offset: 0,
-                color: '#B0E5CB' // 0% 处的颜色
-              }, {
-                offset: 0.8,
-                color: '#ffffff' // 100% 处的颜色
-              }], false),
+              color: new this.$echarts.graphic.LinearGradient(
+                0,
+                0,
+                0,
+                1,
+                [
+                  {
+                    offset: 0,
+                    color: "#B0E5CB", // 0% 处的颜色
+                  },
+                  {
+                    offset: 0.8,
+                    color: "#ffffff", // 100% 处的颜色
+                  },
+                ],
+                false
+              ),
             },
             lineStyle: {
               color: "#62CC97",
               width: 1,
             },
             itemStyle: {
-              color: '#62CC97'
+              color: "#62CC97",
             },
             emphasis: {
-              scale:1.5
-            }
+              scale: 1.5,
+            },
           },
-        ]
+        ],
       },
-    }
+    };
   },
   props: {
     height: Number,
-    queryData: Object
+    queryData: Object,
   },
   mounted() {
-    this.$nextTick(()=>{
-      this.init()
-    })
+    this.$nextTick(() => {
+      this.init();
+    });
   },
   methods: {
     init() {
-      let chart = this.$echarts.init(this.$refs.myChart)
+      let chart = this.$echarts.init(this.$refs.myChart);
       this.chart = chart;
       this.$util.chartsResize(this.chart);
-      chart.setOption(this.option)
-      this.getData()
+      chart.setOption(this.option);
+      this.getData();
     },
     getData() {
-      return ApiWorkBus.getBusCostTrend(this.queryData).then(res=>{
-        let data = this.$util.dataUtil.covertDataToEcharts(res, ['cost'])
-        this.$util.dataUtil.refreshEchartsData(this.chart, this.option, data)
-      })
-    }
-  }
-}
+      return ApiWorkBus.getBusCostTrend(this.queryData).then((res) => {
+        let data = this.$util.dataUtil.covertDataToEcharts(res, ["cost"]);
+        this.$util.dataUtil.refreshEchartsData(this.chart, this.option, data);
+      });
+    },
+  },
+};
 </script>
 
 <template>
-  <div style="width: 100%" :style="{height: height+'px'}" ref="myChart"></div>
+  <div
+    style="width: 100%"
+    :style="{ height: height + 'px' }"
+    ref="myChart"
+  ></div>
 </template>
 
-<style lang="less" scoped>
-
-</style>
+<style lang="less" scoped></style>

+ 15 - 6
src/components/work/bus/workBus.vue

@@ -19,7 +19,7 @@
       </card>
     </div>
     <a-row :style="{ marginTop: '15px' }">
-      <a-col :span="18">
+      <a-col :span="24">
         <div class="left ioc-card-content">
           <card :title="'公车分析'">
             <WorkBusChart
@@ -30,14 +30,23 @@
           </card>
         </div>
       </a-col>
-      <a-col :span="6">
+      <a-col :span="24" style="margin-top: 12px">
         <div class="right ioc-card-content">
-          <card :title="'成本趋势'">
+          <card
+            :title="'成本趋势'"
+            :moduleType="'智慧办公'"
+            :mainTitleSize="'20px'"
+          >
+            <template #sub-title>
+              <div style="font-size: 16px; color: #4d4d4d; margin-top: 10px">
+                成本趋势: 增速10%
+              </div>
+            </template>
             <div style="padding: 0 15px">
               <WorkBusTrend
                 ref="WorkBusTrend"
                 :query-data="queryData"
-                :height="450"
+                :height="400"
               />
             </div>
           </card>
@@ -152,12 +161,12 @@ export default {
 
 <style lang="less" scoped>
 .left {
-  margin-right: 6px;
+  // margin-right: 6px;
   padding-bottom: 15px;
 }
 
 .right {
-  margin-left: 6px;
+  // margin-left: 6px;
   background-color: #ffffff;
   padding-bottom: 15px;
 }

+ 6 - 0
src/components/work/meeting/component/workMeetingCostTrend.vue

@@ -133,6 +133,11 @@ export default {
           formatter: (name) => {
             return `{a|${name}} `;
           },
+          selected:{
+            "智慧院":false,
+            "业务一部":false,
+            "其他部门":false
+          },
           textStyle: {
             color: "#999999",
             fontSize: 12,
@@ -187,6 +192,7 @@ export default {
         },
         yAxis: [
           {
+            name:"使用时长(h)",
             min: 0,
             splitLine: {
               show: false,

+ 9 - 9
src/components/work/meeting/workMeeting.vue

@@ -22,7 +22,7 @@
 
     <div style="margin-top: 12px">
       <a-row>
-        <a-col :span="18">
+        <a-col :span="24">
           <div class="workMeeting-left ioc-card-content">
             <card title="会议分析">
               <a-row>
@@ -207,12 +207,12 @@
             </card>
           </div>
         </a-col>
-        <a-col :span="6">
+        <a-col :span="24" style="margin-top:12px;">
           <div class="workMeeting-right ioc-card-content">
-            <card title="成本趋势">
-              <template #title-extra>
-                <div style="font-size: 18px; color: #4d4d4d; margin-top: 3px">
-                  成本集中
+            <card title="成本趋势" moduleType="智慧办公" mainTitleSize="20px">
+              <template #sub-title>
+                <div style="font-size: 16px; color: #4d4d4d; margin-top: 10px">
+                  成本趋势: 成本集中
                 </div>
               </template>
               <div class="cben" style="margin-bottom: 15px">
@@ -225,7 +225,7 @@
             </card>
           </div>
         </a-col>
-        <a-col :span="18">
+        <a-col :span="24" style="margin-top:12px;">
           <div
             class="workMeeting-left ioc-card-content"
             style="margin-bottom: 15px"
@@ -535,7 +535,7 @@ export default {
     background-color: #ffffff;
     padding: 2px 15px;
     border-radius: 4px;
-    margin-right: 6px;
+    // margin-right: 6px;
     .ant-col-3 {
       .week-box {
         height: 60px;
@@ -589,7 +589,7 @@ export default {
     background-color: #ffffff;
     padding: 2px 15px;
     border-radius: 4px;
-    margin-left: 6px;
+    // margin-left: 6px;
   }
 }
 </style>

+ 5 - 4
src/components/work/print/component/workPrintTrend.vue

@@ -6,15 +6,16 @@ export default {
     return {
       option: {
         legend: {
+          top:"10%",
           data: [
             '成本',
           ]
         },
         grid: {
-          left: '6%', //默认10%
-          right: '10%', //默认10%
+          left: '2%', //默认10%
+          right: '3%', //默认10%
           bottom: '20px', //默认60
-          top: '60px',
+          top: '25%',
           containLabel: true
           //grid区域是否包含坐标轴的刻度标签
         },
@@ -23,7 +24,7 @@ export default {
         },
         yAxis: [
           {
-            name: '%',
+            name: '金额(元)',
             type: 'value',
             nameTextStyle: {
               padding: [10, 0, 10, -12]

+ 15 - 6
src/components/work/print/workPrint.vue

@@ -20,7 +20,7 @@
       </card>
     </div>
     <a-row :style="{ marginTop: '12px' }">
-      <a-col :span="18">
+      <a-col :span="24">
         <div class="left ioc-card-content">
           <card :title="'文印分析'">
             <WorkPrintChart
@@ -31,14 +31,23 @@
           </card>
         </div>
       </a-col>
-      <a-col :span="6">
+      <a-col :span="24" style="margin-top: 12px">
         <div class="right ioc-card-content">
-          <card :title="'成本趋势'">
+          <card
+            :title="'成本趋势'"
+            :moduleType="'智慧办公'"
+            :mainTitleSize="'20px'"
+          >
+            <template #sub-title>
+              <div style="font-size: 16px; color: #4d4d4d; margin-top: 10px">
+                成本趋势: 增速10%
+              </div>
+            </template>
             <div style="padding: 0 15px">
               <WorkPrintTrend
                 ref="WorkPrintTrend"
                 :query-data="queryData"
-                :height="450"
+                :height="400"
               />
             </div>
           </card>
@@ -171,13 +180,13 @@ export default {
 
 <style lang="less" scoped>
 .left {
-  margin-right: 6px;
+  // margin-right: 6px;
   padding-bottom: 15px;
 }
 
 .right {
   background-color: #ffffff;
-  margin-left: 6px;
+  // margin-left: 6px;
   padding-bottom: 15px;
 }
 </style>