From b9346c0dad8727fce46482c5ed29009717a902d0 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期三, 25 九月 2024 14:20:39 +0800
Subject: [PATCH] 标线调整

---
 src/views/system/check/result/index.vue |  180 ++++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 152 insertions(+), 28 deletions(-)

diff --git a/src/views/system/check/result/index.vue b/src/views/system/check/result/index.vue
index e261e84..4551ab5 100644
--- a/src/views/system/check/result/index.vue
+++ b/src/views/system/check/result/index.vue
@@ -1,13 +1,70 @@
 <template>
   <div id="warp">
-    <div>
-      <el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect"
-        style="margin-bottom: 10px">
-        <el-menu-item index="0">鐪佸巺鏈堝害</el-menu-item>
-        <el-menu-item index="2">鐪佸巺瀛e害</el-menu-item>
-        <el-menu-item index="1">甯傚眬鏈堝害</el-menu-item>
-        <el-menu-item index="3">甯傚眬瀛e害</el-menu-item>
-      </el-menu>
+    <div style="display: flex;position: relative">
+      <div style="width: 100%">
+        <el-menu :default-active="activeIndex" class="el-menu-demo" mode="horizontal" @select="handleSelect"
+                 style="margin-bottom: 10px">
+          <el-menu-item index="0">鐪佸巺鏈堝害</el-menu-item>
+          <el-menu-item index="1">鐪佸巺瀛e害</el-menu-item>
+          <el-menu-item index="2">鍖哄幙鏈堝害</el-menu-item>
+          <el-menu-item index="3">鍖哄幙瀛e害</el-menu-item>
+          <el-menu-item index="4">鍏畨閮ㄦ湀搴�</el-menu-item>
+          <el-menu-item index="5">鍏畨閮ㄥ搴�</el-menu-item>
+        </el-menu>
+      </div>
+      <!-- 瀵煎嚭鎸夐挳 -->
+      <div style="position: absolute;top:10px; right: 5px;z-index: 2" v-hasPermi="['check:result:export']">
+        <el-popover
+          placement="left"
+          width="300px"
+          trigger="click">
+          <span style="font-weight: bold;font-size: 16px">瀵煎嚭</span>
+
+          <el-form ref="exportForm" :model="exportForm" :rules="exportRules" label-width="100px">
+            <el-form-item label="鑰冩牳鏃堕棿" prop="quarter" required>
+              <el-date-picker
+                :clearable="false"
+                v-model="exportForm.quarter"
+                type="monthrange"
+                format="yyyy-MM"
+                value-format="yyyy-MM"
+                unlink-panels
+                range-separator="鑷�"
+                start-placeholder="寮�濮嬫湀浠�"
+                end-placeholder="缁撴潫鏈堜唤"
+                :picker-options="pickerOptions">
+              </el-date-picker>
+            </el-form-item>
+            <el-form-item label="鍖哄幙" prop="deptIds">
+              <el-select v-model="exportForm.deptIds" multiple clearable>
+                <el-option v-for="dept in areaList"
+                           :value="dept.id"
+                           :key="dept.value"
+                           :label="dept.value"/>
+              </el-select>
+            </el-form-item>
+            <el-form-item label="鑰冩牳鏍囩" prop="examineTags">
+              <el-checkbox-group v-model="exportForm.examineTags">
+                <el-checkbox
+                  v-for="item in tagOptions"
+                  :key="item.value"
+                  :label="item.value"
+                >{{ item.label }}
+                </el-checkbox>
+              </el-checkbox-group>
+            </el-form-item>
+            <el-form-item label="璁$畻骞冲潎鍊�" prop="average">
+              <el-switch
+                v-model="exportForm.average"
+              >
+              </el-switch>
+            </el-form-item>
+            <el-button type="primary" size="small" style="width: 400px" @click="handleExport">瀵煎嚭</el-button>
+          </el-form>
+          <el-button slot="reference" type="primary" size="mini" plain>瀵煎嚭</el-button>
+        </el-popover>
+      </div>
+
     </div>
 
     <div class="data-chart-container">
@@ -45,7 +102,8 @@
                 </div>
               </div>
               <div class="bottom-publish">
-                <el-button v-hasPermi="['check:score:publish']" size="medium" :type="isAnyUnpublished(city) ? 'success' : 'danger'" @click="publish(city)">
+                <el-button v-hasPermi="['check:score:publish']" size="medium"
+                           :type="isAnyUnpublished(city) ? 'success' : 'danger'" @click="publish(city)">
                   {{ isAnyUnpublished(city) ? '鍙戝竷' : '鍙栨秷' }}
                 </el-button>
                 <el-button size="medium" @click="jumpDetail(index)" type="primary">璇︽儏</el-button>
@@ -60,24 +118,70 @@
 </template>
 
 <script>
-import { areaSelect } from '@/api/system/dept';
-import { listScore, getScore, delScore, addScore, updateScore, publishScore } from "@/api/platform/check-score";
+import {areaSelect} from '@/api/system/dept';
+import {listScore, publishScore} from "@/api/platform/check-score";
 import * as echarts from 'echarts';
+
 let observer = null;
 let chart = null;
 export default {
   name: 'index',
   data() {
     return {
+      tagOptions: [
+        {value: 0, label: '鐪佸巺'},
+        {value: 1, label: '鍖哄幙'},
+        {value: 2, label: '鍏畨閮�'}
+      ],
+      pickerOptions: {
+        shortcuts: [{
+          text: '绗竴瀛e害',
+          onClick(picker) {
+            picker.$emit('pick', [new Date(new Date().getFullYear() + "-01"), new Date(new Date().getFullYear() + "-03")]);
+          }
+        },
+          {
+            text: '绗簩瀛e害',
+            onClick(picker) {
+              picker.$emit('pick', [new Date(new Date().getFullYear() + "-04"), new Date(new Date().getFullYear() + "-06")]);
+            }
+          },
+          {
+            text: '绗笁瀛e害',
+            onClick(picker) {
+              picker.$emit('pick', [new Date(new Date().getFullYear() + "-07"), new Date(new Date().getFullYear() + "-09")])
+            }
+          },
+          {
+            text: '绗洓瀛e害',
+            onClick(picker) {
+              picker.$emit('pick', [new Date(new Date().getFullYear() + "-10"), new Date(new Date().getFullYear() + "-12")])
+            }
+          }]
+      },
       province: {
         id: [],
         publish: null,
+      },
+      // 瀵煎嚭琛ㄥ崟楠岃瘉
+      exportRules: {
+        quarter: [
+          { type: 'array', required: true, message: '璇烽�夋嫨鏃堕棿', trigger: 'change' }
+        ],
       },
       checkScoreList: [],
       areaList: [],
       activeIndex: '0',
       date: '',
       company: '',
+      // 瀵煎嚭
+      exportForm: {
+        quarter: [],
+        deptIds: [],
+        examineTags: [],
+        examineCategories: [],
+        average: null,
+      },
       // 鏌ヨ鍙傛暟
       queryParams: {
         examineTag: null,
@@ -89,10 +193,9 @@
   },
   mounted() {
     this.queryParams.examineTag = this.activeIndex
-    this.getList();
-    this.areaSelect();
     chart = echarts.init(this.$refs.barChart);
-    this.setChartOption(this.checkScoreList);
+    this.areaSelect()
+    // this.setChartOption(this.checkScoreList);
   },
   methods: {
     jumpDetail(index) {
@@ -122,8 +225,7 @@
         tooltip: {},
         xAxis: {
           type: 'category',
-          axisLabel: {
-          },
+          axisLabel: {},
           data: this.dataList.name
         },
         yAxis: {
@@ -192,8 +294,7 @@
         tooltip: {},
         xAxis: {
           type: 'category',
-          axisLabel: {
-          },
+          axisLabel: {},
           data: nameArray
 
         },
@@ -234,18 +335,18 @@
     },
     filterData(mapData, tag) {
       if (!mapData) return;
-      if(!Array.isArray(mapData)) return;
+      if (!Array.isArray(mapData)) return;
       const tempArray = [];
       mapData.forEach((item) => {
-        if(item.data.length) {
+        if (item.data.length) {
           let flag = false;
           item.data.forEach((examine) => {
-            if(examine.examineCategory === tag) {
+            if (examine.examineCategory === tag) {
               flag = true
               tempArray.push(examine.score);
             }
           })
-          if(!flag){
+          if (!flag) {
             tempArray.push(0);
           }
         }
@@ -256,10 +357,12 @@
     areaSelect() {
       areaSelect().then(res => {
         this.areaList = res.data;
+        this.getList();
       })
     },
     translateDeptId(deptId) {
       const department = this.areaList.find(dept => dept.id === deptId);
+      console.log(deptId,this.areaList)
       return department ? department.value : '鏈煡';
     },
 
@@ -302,17 +405,21 @@
       // 鑾峰彇褰撳墠鏃ユ湡
       const today = new Date();
 
-      // 璁$畻鏄ㄥぉ鐨勬棩鏈�
-      const yesterday = new Date(today);
-      yesterday.setDate(today.getDate() - 1);
+      // 灏嗘棩鏈熷噺鍘讳竴澶�
+      const yesterday = new Date(today.getTime() - 24 * 60 * 60 * 1000);
 
-      // 灏嗘槰澶╃殑鏃ユ湡鏍煎紡鍖栦负瀛楃涓诧紝杩欓噷鍋囪鍚庣鏈熸湜鐨勬槸ISO 8601鏍煎紡
-      this.queryParams.createTime = yesterday.toISOString().split('T')[0];
+      // 鑾峰彇骞淬�佹湀銆佹棩
+      const year = yesterday.getFullYear();
+      let month = (yesterday.getMonth() + 1).toString().padStart(2, '0'); // 鏈堜唤鏄粠0寮�濮嬬殑锛屾墍浠ュ姞1
+      let day = yesterday.getDate().toString().padStart(2, '0');
+
+      // 鎷兼帴鎴� yyyy-MM-dd 鏍煎紡
+      this.queryParams.createTime = `${year}-${month}-${day}`
 
       console.log(this.queryParams);
       listScore(this.queryParams).then(response => {
         this.checkScoreList = response.data;
-        console.log(this.checkScoreList);
+
         this.setChartOption(this.checkScoreList);
         this.loading = false;
       });
@@ -334,6 +441,23 @@
           // 閿欒澶勭悊閫昏緫
         });
     },
+    // clickItem(value) {
+    //   value === this.exportForm.examineTag ? this.exportForm.examineTag = null : this.exportForm.examineTag = value
+    // },
+    /** 瀵煎嚭鎸夐挳鎿嶄綔 */
+    handleExport() {
+      this.$refs['exportForm'].validate((valid) => {
+        if (valid) {
+          this.download(
+            "/check/score/export",
+            {
+              ...this.exportForm,
+            },
+            `鑰冩牳鎸囨爣_${new Date().getTime()}.xlsx`
+          );
+        }
+      })
+    },
   },
 }
 </script>

--
Gitblit v1.8.0