From ac45194a5ff830a0f355a76a202e1d4f1d15a35b Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期四, 26 九月 2024 13:07:15 +0800
Subject: [PATCH] #

---
 zy-asrs-admin/src/views/HomeView.vue |  126 ++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 121 insertions(+), 5 deletions(-)

diff --git a/zy-asrs-admin/src/views/HomeView.vue b/zy-asrs-admin/src/views/HomeView.vue
index 42278e5..db2e818 100644
--- a/zy-asrs-admin/src/views/HomeView.vue
+++ b/zy-asrs-admin/src/views/HomeView.vue
@@ -1,5 +1,5 @@
 <script setup>
-import { getCurrentInstance, ref, onMounted } from 'vue';
+import { getCurrentInstance, ref, onMounted, reactive } from 'vue';
 import { get, post } from '@/utils/request.js'
 import * as echarts from "echarts";
 const context = getCurrentInstance()?.appContext.config.globalProperties;
@@ -107,8 +107,6 @@
         ]
       }
 
-      console.log(lineOptions);
-      
       chartLine.setOption(lineOptions);
 
     }
@@ -129,10 +127,46 @@
   })
 }
 
+const information = reactive({
+  inCount: 0,
+  outCount: 0,
+  totalCount: 0,
+  matCount: 0,
+});
+function getInformation() {
+  post('/api/charts/information', {}).then(resp => {
+    let result = resp.data;
+    if (result.code == 200) {
+      let data = result.data;
+      information.inCount = data.inCount;
+      information.outCount = data.outCount;
+      information.totalCount = data.totalCount;
+      information.matCount = data.matCount;
+    }
+  })
+}
+
+const informationTop = reactive({
+  topIn: [],
+  topOut: [],
+});
+function getInformationTop() {
+  post('/api/charts/information/top', {}).then(resp => {
+    let result = resp.data;
+    if (result.code == 200) {
+      let data = result.data;
+      informationTop.topIn = data.topIn;
+      informationTop.topOut = data.topOut;
+    }
+  })
+}
+
 onMounted(() => {
   initChart()
   getPieOptions()
   getLineOptions()
+  getInformation()
+  getInformationTop()
 })
 
 </script>
@@ -145,8 +179,90 @@
 
 <template>
   <div style="display: flex;">
-    <div ref="chartPieContainer" style="width: 49%;height: 400px;"></div>
-    <div ref="chartLineContainer" style="width: 49%;height: 400px;"></div>
+    <div style="width: 24%;margin-right: 20px;">
+      <a-card>
+        <a-statistic title="浠婃棩鍏ュ嚭搴�" :value="information.totalCount" :value-style="{ color: '#3f8600' }"
+          style="margin-right: 50px">
+          <template #prefix>
+            <!-- <arrow-up-outlined /> -->
+          </template>
+        </a-statistic>
+      </a-card>
+    </div>
+    <div style="width: 24%;margin-right: 20px;">
+      <a-card>
+        <a-statistic title="浠婃棩鍏ュ簱" :value="information.inCount" :value-style="{ color: '#3f8600' }"
+          style="margin-right: 50px">
+          <template #prefix>
+            <!-- <arrow-up-outlined /> -->
+          </template>
+        </a-statistic>
+      </a-card>
+    </div>
+    <div style="width: 24%;margin-right: 20px;">
+      <a-card>
+        <a-statistic title="浠婃棩鍑哄簱" :value="information.outCount" :value-style="{ color: '#3f8600' }"
+          style="margin-right: 50px">
+          <template #prefix>
+            <!-- <arrow-up-outlined /> -->
+          </template>
+        </a-statistic>
+      </a-card>
+    </div>
+    <div style="width: 24%;margin-right: 20px;">
+      <a-card>
+        <a-statistic title="鍟嗗搧鎬绘暟" :value="information.matCount" :value-style="{ color: '#3f8600' }"
+          style="margin-right: 50px">
+          <template #prefix>
+            <!-- <arrow-up-outlined /> -->
+          </template>
+        </a-statistic>
+      </a-card>
+    </div>
+  </div>
+  <div style="display: flex;margin-top: 20px;">
+    <div style="width: 49%;margin-right: 20px;">
+      <a-card title="浠婃棩鍏ュ簱Top10">
+        <div v-if="informationTop.topIn.length == 0">
+          <a-empty />
+        </div>
+        <div v-else v-for="(item, index) in informationTop.topIn" :key="index"
+          style="display: flex;justify-content: space-between;margin-top: 10px;">
+          <div>{{ item.matnr }} - {{ item.maktx }}</div>
+          <div>
+            <a-tag v-if="index == 0" color="#87d068">{{ item.count }}</a-tag>
+            <a-tag v-else color="#2db7f5">{{ item.count }}</a-tag>
+          </div>
+        </div>
+      </a-card>
+    </div>
+    <div style="width: 49%;margin-right: 20px;">
+      <a-card title="浠婃棩鍑哄簱Top10">
+        <div v-if="informationTop.topOut.length == 0">
+          <a-empty />
+        </div>
+        <div v-else v-for="(item, index) in informationTop.topOut" :key="index"
+          style="display: flex;justify-content: space-between;margin-top: 10px;">
+          <div>{{ item.matnr }} - {{ item.maktx }}</div>
+          <div>
+            <a-tag v-if="index == 0" color="#87d068">{{ item.count }}</a-tag>
+            <a-tag v-else color="#2db7f5">{{ item.count }}</a-tag>
+          </div>
+        </div>
+      </a-card>
+    </div>
+  </div>
+  <div style="display: flex;margin-top: 20px;">
+    <div style="width: 49%;margin-right: 20px;">
+      <a-card>
+        <div ref="chartPieContainer" style="width: 100%;height: 400px;"></div>
+      </a-card>
+    </div>
+    <div style="width: 49%;">
+      <a-card>
+        <div ref="chartLineContainer" style="width: 90%;height: 400px;"></div>
+      </a-card>
+    </div>
     <!-- <EChartView ref="chartChild2" /> -->
   </div>
 </template>

--
Gitblit v1.9.1