From 8aa3edd56c279100c9053576f3e90fa55459fe77 Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Mon, 16 Jan 2023 16:15:55 +0800
Subject: [PATCH] 修改

---
 src/views/healthcode/healthcode.vue |  234 +++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 204 insertions(+), 30 deletions(-)

diff --git a/src/views/healthcode/healthcode.vue b/src/views/healthcode/healthcode.vue
index 3140694..973b5e4 100644
--- a/src/views/healthcode/healthcode.vue
+++ b/src/views/healthcode/healthcode.vue
@@ -8,6 +8,8 @@
                :before-open="beforeOpen"
                v-model="form"
                ref="crud"
+               :row-style="rowStyle"
+               :search.sync="search"
                @row-update="rowUpdate"
                @row-save="rowSave"
                @row-del="rowDel"
@@ -21,24 +23,39 @@
         <template slot="menuLeft">
           <el-button
             v-bind:class="activeClass == 0 ? 'btn-color' : ''"
-            size="medium "
+            size="small "
             @click="getHealthcodeData(0)"
             >本日
           </el-button>
           <el-button
             v-bind:class="activeClass == 1 ? 'btn-color' : ''"
-            size="medium "
+            size="small "
             @click="getHealthcodeData(1)"
             >本周
           </el-button>
           <el-button
             v-bind:class="activeClass == 2 ? 'btn-color' : ''"
-            size="medium "
+            size="small "
             @click="getHealthcodeData(2)"
             >本月
           </el-button>
         </template>
-      
+
+        <template slot="menuLeft">
+          <el-button type="warning"
+                      size="small"
+                      plain
+                      icon="el-icon-download"
+                      @click="handleExport">导出
+          </el-button>
+          <el-button type="warning"
+                      size="small"
+                      plain
+                      icon="el-icon-pie-chart"
+                      @click="handleExportStatis">导出报表
+          </el-button>
+        </template>
+
     </avue-crud>
   </basic-container>
 </template>
@@ -52,7 +69,9 @@
       return {
         form: {},
         query: {},
+        search:{},
         loading: true,
+        activeClass: 0,
         page: {
           pageSize: 10,
           currentPage: 1,
@@ -62,12 +81,12 @@
         option: {
           menu:false,
           height:'auto',
-          calcHeight: 30,
+          calcHeight: 54,
+          border: false,
+          stripe:true,
           tip: false,
           searchShow: true,
           searchMenuSpan: 6,
-          activeClass: 3,
-          border: true,
           index: true,
           viewBtn: true,
           selection: true,
@@ -102,6 +121,7 @@
               format: "yyyy-MM-dd",
               valueFormat: "yyyy-MM-dd",
               searchRange: true,
+              searchValue:[this.getStartTime(),this.getEndTime()],
               searchSpan: 5,
               hide: true,
               addDisplay: false,
@@ -119,7 +139,7 @@
             {
               label: '省份',
               prop: 'province',
-              search: true,
+              //search: true,
               searchSpan: 3,
               type: 'select',
               props: {
@@ -135,7 +155,7 @@
               prop: 'city',
               type: 'select',
               searchSpan: 3,
-              search: true,
+              //search: true,
               props: {
                 label: 'name',
                 value: 'name'
@@ -146,7 +166,7 @@
             {
               label: '区县',
               searchSpan: 3,
-              search: true,
+              //search: true,
               prop: 'district',
               type: 'select',
               props: {
@@ -159,9 +179,10 @@
             {
               label: "健康码颜色",
               search: true,
-              searchLabelWidth:100,
+              searchLabelWidth:120,
               prop: "type",
-              searchSpan: 3,
+              searchSpan: 4,
+              searchValue: this.getHealthcodeType(),
               width:210,
               type: "select",
               dicData: [
@@ -181,8 +202,13 @@
             }
           ]
         },
-        data: []
+        data: [],
+        isActive: false,
+        recorder: null,
       };
+    },
+    mounted(){
+
     },
     computed: {
       ...mapGetters(["permission"]),
@@ -202,15 +228,20 @@
         return ids.join(",");
       }
     },
-
     methods: {
       beforeOpen(done, type) {
       },
       searchReset() {
+        //清空搜索框中的内容
         this.query = {};
+        //清空this.$route.query
+        this.$router.push({ query: {} });
+        this.activeClass=0;
         this.onLoad(this.page);
       },
       searchChange(params, done) {
+        //清空this.$route.query
+        this.$router.push({ query: {} });
         this.query = params;
         this.page.currentPage = 1;
         this.onLoad(this.page, params);
@@ -232,51 +263,179 @@
       refreshChange() {
         this.onLoad(this.page, this.query);
       },
+      rowStyle({row, column, rowIndex}){
+         if(row.type=="3"){
+           return {
+             color:"#fe1515"
+           }
+         }
+      },
+      getStartTime(){
+           if (this.$route.query.startTime != undefined && this.$route.query.startTime != null && this.$route.query.startTime != "" ) {
+             return this.$route.query.startTime
+           }
+           // 当前时间
+          var date = new Date();
+          //年
+          var Y = date.getFullYear();
+          //月
+          var M = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
+          //日
+          var D = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
+           return Y + "-" + M + "-" + D;
+      },
+      getEndTime(){
+           if (this.$route.query.endTime != undefined && this.$route.query.endTime != null && this.$route.query.endTime != "" ) {
+             return this.$route.query.endTime
+           }
+            // 当前时间
+            var date = new Date();
+            //年
+            var Y = date.getFullYear();
+            //月
+            var M = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
+            //日
+            var D = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
+            return Y + "-" + M + "-" + D;
+      },
+      getHealthcodeType(){
+          if (this.$route.query.type != undefined) {
+              var type = this.$route.query.type+"";
+              //this.$route.query = {};
+              return type;
+          }
+      },
       getHealthcodeData(e) {
-        this.activeClass = e;
+        var that = this;
+        this.query={};
+        this.$router.push({ query: {} });
+        that.activeClass = e;
         //status 0:本日  1:本月  2:本年   type: 1:绿色   2:黄色  3:红色
-        var params = {
+        var today = new Date();
+        var params ={};
+        if(e==0){
+          //修改搜索框中的值
+          this.search.releaseTimeRange=[this.showToDay(today)+" 00:00:00",this.showToDay(today)+" 23:59:59"]
+        }
+        if(e==1){
+          //修改搜索框中的值
+          this.search.releaseTimeRange=[this.showWeekFirstDay(today)+" 00:00:00",this.showToDay(today)+" 23:59:59"]
+        }
+        if(e==2){
+          //修改搜索框中的值
+          this.search.releaseTimeRange=[this.showMonthFirstDay(today)+" 00:00:00",this.showToDay(today)+" 23:59:59"]
+        }
+        params = {
+          ... params,
           status: e
         };
-        this.query = params;
+        if(this.search.type){
+          params = {
+            ... params,
+            type: this.search.type
+          };
+        }
+        this.query=params;
         this.page.currentPage = 1;
         this.onLoad(this.page, params);
       },
-      onLoad(page, params = {}) {
+      //本日
+      showToDay(Nowdate){
+        var M=Number(Nowdate.getMonth())+1;
+        if(M<10){
+          M="0"+M;
+        }
+        var day = Nowdate.getDate();
+        if(day<10){
+          day = "0"+day;
+        }
+        return Nowdate.getFullYear()+"-"+M+"-"+day;
+      },
+
+      //本周第一天
+      showWeekFirstDay(Nowdate){
+        var WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);
+        var M=Number(WeekFirstDay.getMonth())+1;
+        if(M<10){
+          M="0"+M;
+        }
+        var day = WeekFirstDay.getDate();
+        if(day<10){
+          day = "0"+day;
+        }
+        return WeekFirstDay.getFullYear()+"-"+M+"-"+day;
+      },
+
+      //本月第一天
+      showMonthFirstDay(Nowdate){
+        var MonthFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth(),1);
+        var M=Number(MonthFirstDay.getMonth())+1;
+        if(M<10){
+          M="0"+M;
+        }
+        return MonthFirstDay.getFullYear()+"-"+M+"-"+"0"+MonthFirstDay.getDate();
+      },
+      //数据导出
+      handleExport() {
+        this.$confirm("是否导出健康码数据?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          window.open(`/api/blade-jfpts/healthcode/healthcode/export-healthcode?begTime=${this.$route.query.startTime}&endTime=${this.$route.query.endTime}&type=${this.$route.query.type}&timeDesc=${this.$route.query.timeDesc}`);
+        });
+      },
+      //数据报表导出
+      handleExportStatis() {
+          let begTime = this.$route.query.startTime==undefined? '':this.$route.query.startTime;
+          let endTime = this.$route.query.endTime==undefined? '':this.$route.query.endTime;
+          let type = this.$route.query.type==undefined? '':this.$route.query.type;
+          let timeDesc = this.$route.query.timeDesc==undefined? '':this.$route.query.timeDesc;
+          //window.open(`http://localhost:8108/ureport/excel?_u=blade-healthcode.statis.xml.ureport.xml&begTime=${begTime}&endTime=${endTime}&type=${type}&timeDesc=${timeDesc}`);
+          window.open(`https://web.byisf.com/api/blade-report/ureport/preview?_u=blade-healthcode.statis.xml.ureport.xml&begTime=${begTime}&endTime=${endTime}&type=${type}&timeDesc=${timeDesc}`);
+      },
+      onLoad(page, params={}) {
         const { dateTime } = this.query;
         let values = {
           ...params,
         };
-
-        if (this.$route.query.status && this.$route.query != undefined && this.$route.query != null && this.$route.query != "" ) {
-            if (this.$route.query.type != undefined && this.$route.query.type != null && this.$route.query.type != "" ) {
-              this.activeClass = this.$route.query.status;
+        if (this.$route.query.status!=undefined && this.$route.query != undefined && this.$route.query != null && this.$route.query != "" ) {
+            if (this.$route.query.type != undefined) {
               this.page.currentPage = 1;
               params = {
                 status:this.$route.query.status,
                 type:this.$route.query.type
               }
             } else {
-              this.activeClass = 0;
               this.page.currentPage = 1;
               params = {
                 type:this.$route.query.status
               };
             }
-        }else if(this.$route.query.type != undefined && this.$route.query.type != null && this.$route.query.type != "" ){
+            this.activeClass =4;
+        }else if(this.$route.query.type != undefined){
           params = {
             type: this.$route.query.type,
-            beginTime: this.$route.query.startTime,
+            begTime: this.$route.query.startTime,
             endTime: this.$route.query.endTime
           }
-        }else{
-            params = {
-                status:this.$route.query.status,
-                type:this.$route.query.type
-            }
+          this.activeClass =4;
+        }
+        // else{
+        //   params = {
+        //       status:this.$route.query.status,
+        //       type:this.$route.query.type
+        //   }
+        // }
+
+        if(this.activeClass == 0 && this.query.dateTime==null){
+          params = {
+              status:this.activeClass,
+          }
         }
 
         if (dateTime) {
+          this.activeClass =4;
           values = {
             ...params,
             begTime: dateTime[0],
@@ -287,6 +446,14 @@
         } else {
           values = {
             ...params,
+            ...this.query,
+          };
+        }
+
+        if (this.$route.query.timeDesc) {
+          values = {
+            ...params,
+            timeDesc: this.$route.query.timeDesc,
             ...this.query,
           };
         }
@@ -303,3 +470,10 @@
     }
   };
 </script>
+<style scoped>
+  .el-button.btn-color {
+    color: rgb(255, 255, 255);
+    background-color: rgb(64, 158, 255);
+    border-color: rgb(64, 158, 255);
+  }
+</style>

--
Gitblit v1.9.3