From 14e02654e0545ee69456d64aef2f35c7c219d708 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Fri, 07 May 2021 11:26:49 +0800
Subject: [PATCH] 地图模式设备状态修改

---
 src/views/parcel/parcelKind.vue |  188 +++++++++++++++++++++++++++++++++++++---------
 1 files changed, 149 insertions(+), 39 deletions(-)

diff --git a/src/views/parcel/parcelKind.vue b/src/views/parcel/parcelKind.vue
index 0c29048..98481e5 100644
--- a/src/views/parcel/parcelKind.vue
+++ b/src/views/parcel/parcelKind.vue
@@ -1,5 +1,5 @@
 <template>
-  <basic-container>
+    <basic-container>
     <avue-crud :option="option"
                :table-loading="loading"
                :data="data"
@@ -8,9 +8,11 @@
                :before-open="beforeOpen"
                v-model="form"
                ref="crud"
+               :row-style="rowStyle"
                @row-update="rowUpdate"
                @row-save="rowSave"
                @row-del="rowDel"
+               @row-click="rowClick"
                @search-change="searchChange"
                @search-reset="searchReset"
                @selection-change="selectionChange"
@@ -18,19 +20,64 @@
                @size-change="sizeChange"
                @refresh-change="refreshChange"
                @on-load="onLoad">
+      <!-- <template slot-scope="{ type, size, row }" slot="menu">
+        <el-button
+          v-if="row.imgUrl != null || row.imgUrl != ''"
+          icon="el-icon-view"
+          :size="size"
+          :type="type"
+          @click.stop="handleParcelPic(row)"
+          >查看包裹图片
+        </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>
+      <div>
+        <el-image-viewer
+                     class="img"
+                     v-if="showViewer"
+                     :on-close="closeViewer"
+                     :url-list="['data:image/png;base64,'+imgUrl]" />
+      </div>
+    </template>
+    </basic-container>
+
 </template>
 
+
 <script>
-  import {getKindList, getDetail} from "@/api/parcel/parcel";
+  import {getKindList, getParcelPic} from "@/api/parcel/parcel";
   import {mapGetters} from "vuex";
+  import Vue from 'vue';
+  import ElementUI from 'element-ui'
+  import 'element-ui/lib/theme-chalk/index.css'
+  import ElImageViewer from 'element-ui/packages/image/src/image-viewer'
+  Vue.use(ElementUI)
+
 
   export default {
+    name:'index',
+    components: { ElImageViewer },
     data() {
       return {
         form: {},
         query: {},
+        showViewer: false, // 显示查看器
+        imgUrl:'',
         loading: true,
         page: {
           pageSize: 10,
@@ -39,13 +86,15 @@
         },
         selectionList: [],
         option: {
+          menu:false,
           height:'auto',
-          calcHeight: 30,
+          calcHeight: 54,
           tip: false,
           searchShow: true,
           searchMenuSpan: 4,
-          menuWidth:120,
-          border: true,
+          menuWidth:150,
+          border: false,
+          stripe:true,
           index: true,
           viewBtn: true,
           selection: true,
@@ -67,10 +116,6 @@
               },
             },
             {
-              label: "安检机名称",
-              prop: "checkMachineName",
-            },
-            {
               label: "包裹ID",
               prop: "packageId",
             },
@@ -80,16 +125,17 @@
               hide:true
             },
             {
-              label: "过机时间",
-              prop: "samplingTime",
+              label: "安检时间",
+              prop: "createTime",
             },
             {
-              label: "过机时间",
+              label: "安检时间",
               prop: "dateTime",
               type: "datetime",
               format: "yyyy-MM-dd HH:mm:ss",
               valueFormat: "yyyy-MM-dd HH:mm:ss",
               searchRange: true,
+              searchValue: [this.getStartTime(),this.getEndTime()],
               searchSpan: 8,
               hide: true,
               addDisplay: false,
@@ -104,25 +150,25 @@
                 }
               ]
             },
-            {
-              label: "违禁类型",
-              search: true,
-              searchLabelWidth: 120,
-              searchSpan: 4,
-              hide: true,
-              prop: "decisioDiagramResult",
-              type: "select",
-              dicData: [
-                {
-                  label: "是",
-                  value: "contraband"
-                },
-                {
-                  label: "否",
-                  value: "normal"
-                },
-              ]
-            },
+            // {
+            //   label: "违禁类型",
+            //   search: true,
+            //   searchLabelWidth: 120,
+            //   searchSpan: 4,
+            //   hide: true,
+            //   prop: "decisioDiagramResult",
+            //   type: "select",
+            //   dicData: [
+            //     {
+            //       label: "是",
+            //       value: "contraband"
+            //     },
+            //     {
+            //       label: "否",
+            //       value: "normal"
+            //     },
+            //   ]
+            // },
             {
               label: '违禁品名称',
               prop: 'objName'
@@ -143,7 +189,8 @@
             }
           ]
         },
-        data: []
+        data: [],
+        flag: false
       };
     },
     computed: {
@@ -151,7 +198,7 @@
       permissionList() {
         return {
           addBtn: this.vaildData(null, false),
-          viewBtn: this.vaildData(this.permission.parcel_pic_view, true),
+          viewBtn: this.vaildData(null, false),
           delBtn: this.vaildData(null, false),
           editBtn: this.vaildData(null, false)
         };
@@ -166,15 +213,14 @@
     },
     methods: {
       beforeOpen(done, type) {
-        if (["edit", "view"].includes(type)) {
-          getDetail(this.form.id).then(res => {
-            this.form = res.data.data;
-          });
-        }
+
         done();
       },
       searchReset() {
+        //清空搜索框中的内容
         this.query = {};
+        //清空this.$route.query
+        this.$router.push({ query: {} });
         this.onLoad(this.page);
       },
       searchChange(params, done) {
@@ -190,6 +236,13 @@
         this.selectionList = [];
         this.$refs.crud.toggleSelection();
       },
+      rowClick(row){
+        var that=this;
+        getParcelPic(row.imgUrl).then(res => {
+            that.imgUrl = res.data.data.imgBase64;
+            this.showViewer = true
+          });
+      },
       currentChange(currentPage){
         this.page.currentPage = currentPage;
       },
@@ -198,6 +251,44 @@
       },
       refreshChange() {
         this.onLoad(this.page, this.query);
+      },
+      getStartTime(){
+           if (this.$route.query.startTime != undefined && this.$route.query.startTime != null && this.$route.query.startTime != "" ) {
+             return this.$route.query.startTime
+           }
+           return '';
+      },
+      getEndTime(){
+           if (this.$route.query.endTime != undefined && this.$route.query.endTime != null && this.$route.query.endTime != "" ) {
+             return this.$route.query.endTime
+           }
+           return '';
+      },
+      //给行加颜色
+      rowStyle({row, column, rowIndex}){
+        return {
+          color:"#fe1515"
+        }
+      },
+      //数据导出
+      handleExport() {
+        this.$confirm("是否导出违禁品数据?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(() => {
+          window.open(`/api/blade-jfpts/parcel/parcel/export-parcelKind?startTime=${this.$route.query.startTime}&endTime=${this.$route.query.endTime}&decisioDiagramResult=${this.$route.query.decisioDiagramResult}&timeDesc=${this.$route.query.timeDesc}`);
+        });
+      },
+      //数据报表导出
+      handleExportStatis() {
+          let startTime = this.$route.query.startTime==undefined? '':this.$route.query.startTime;
+          let endTime = this.$route.query.endTime==undefined? '':this.$route.query.endTime;
+          let decisioDiagramResult = this.$route.query.decisioDiagramResult==undefined? '':this.$route.query.decisioDiagramResult;
+          let timeDesc = this.$route.query.timeDesc;
+          //window.open(`http://localhost:8108/ureport/excel?_u=blade-parcelKind.statis.ureport.xml&startTime=${startTime}&endTime=${endTime}&decisioDiagramResult=${decisioDiagramResult}&timeDesc=${timeDesc}`);
+          //window.open(`http://localhost:8108/ureport/preview?_u=blade-parcelKind.statis.ureport.xml&startTime=${startTime}&endTime=${endTime}&decisioDiagramResult=${decisioDiagramResult}&timeDesc=${timeDesc}`);
+          window.open(`https://web.byisf.com/api/blade-report/ureport/preview?_u=blade-parcelKind.statis.ureport.xml&startTime=${startTime}&endTime=${endTime}&decisioDiagramResult=${decisioDiagramResult}&timeDesc=${timeDesc}`);
       },
       onLoad(page, params = {}) {
         const { dateTime } = this.query;
@@ -236,6 +327,14 @@
           };
         }
 
+        if (this.$route.query.timeDesc) {
+          values = {
+            ...params,
+            timeDesc: this.$route.query.timeDesc,
+            ...this.query,
+          };
+        }
+
         this.loading = true;
         getKindList(page.currentPage, page.pageSize,values).then(res => {
           const data = res.data.data;
@@ -244,7 +343,18 @@
           this.loading = false;
           this.selectionClear();
         });
+      },
+      // 关闭查看器
+      closeViewer() {
+        this.showViewer = false
       }
     }
   };
 </script>
+<style lang="scss">
+    .img {
+      .el-icon-circle-close {
+        color: white;
+      }
+    }
+</style>

--
Gitblit v1.9.3