From b62578f8b43f15be89b3d14f463f11aed03e6fb9 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期四, 09 五月 2024 18:57:25 +0800
Subject: [PATCH] 最新版本

---
 admin/src/components/business/OperaVisitsDesWindow.vue |  127 +++++++++++++++++++++++++++++++++++++----
 1 files changed, 113 insertions(+), 14 deletions(-)

diff --git a/admin/src/components/business/OperaVisitsDesWindow.vue b/admin/src/components/business/OperaVisitsDesWindow.vue
index 9cf9b28..45149da 100644
--- a/admin/src/components/business/OperaVisitsDesWindow.vue
+++ b/admin/src/components/business/OperaVisitsDesWindow.vue
@@ -1,35 +1,58 @@
 <template>
     <GlobalWindow
         :title="title"
-        width="60%"
+        width="70%"
         :visible.sync="visible"
+        append-to-body
         :confirm-working="isWorking"
         @confirm="confirm"
     >
         <div class="list">
             <div class="list_item">
                 <div class="list_item_label">鎷滆淇℃伅</div>
-                <div class="list_item_val" v-if="info">
+                <div class="list_item_val" v-if="info" style="display: inline-block">
                     <div class="list_item_val_item">鎷滆瀵规柟锛歿{info.receptMemberName}} - {{info.receptMemberDepartment}}</div>
-                    <div class="list_item_val_item">鎷滆鏃堕棿锛歿{info.starttime}} 鑷� {{info.endtime}}</div>
+                    <div class="list_item_val_item">棰勭害鏃堕棿锛歿{info.starttime}} 鑷� {{info.endtime}}</div>
+                    <div class="list_item_val_item" v-if="info.inDate && info.outDate">绛惧埌鏃堕棿锛歿{info.inDate}} 鑷� {{info.outDate}}</div>
+                    <div class="list_item_val_item" v-else>绛惧埌鏃堕棿锛�-</div>
                     <div class="list_item_val_item">鎷滆浜嬬敱锛歿{info.reason}}</div>
                     <div class="list_item_val_item">鐢宠浜哄憳锛歿{info.name}} {{info.companyName}}</div>
-                    <div class="list_item_val_item">鐢宠闂ㄧ锛歿{info.deviceList ? info.deviceList.map(item => item.name).join(',') : ''}}</div>
+                    <div class="list_item_val_item">鐢宠闂ㄧ锛歿{info.deviceRoleList ? info.deviceRoleList.map(item => item.name).join(' | ') : '-'}}</div>
                     <div class="list_item_val_item">鍒涘缓鏃堕棿锛歿{info.createDate}}</div>
                 </div>
-            </div>
+                <div class="list_item_val" v-if="info" style="display: inline-block;float: right">
+                  <div class="list_item_val_item"   id="qrcode2" ref="qrcode2"></div>
+                </div>
+              </div>
             <div class="list_item">
                 <div class="list_item_label">璁垮淇℃伅</div>
-                <div class="list_item_info" v-if="info">闅忚杞﹁締锛歿{info.carNos}}</div>
                 <div class="list_item_table" v-if="info">
                     <el-table
-                        :data="info.lwWithUserList ? info.lwWithUserList : []"
+                        :data="info.withUserList ? info.withUserList : []"
                         border
                         :header-cell-style="{background: '#dcdde2', color: 'rgb(51, 51, 51)'}"
                         style="width: 100%">
+                      <el-table-column prop="status"   label="鐘舵��" min-width="100px">
+                        <template slot-scope="{row}">
+                          <span style="color: rgba(245, 154, 35, 0.996);" v-if="row.status === 0">寰呮彁浜ゅ鎵�</span>
+                          <span v-if="row.status === 1">瀹℃壒涓�</span>
+                          <span v-if="row.status === 2">瀹℃牳閫氳繃</span>
+                          <span style="color: red;" v-if="row.status === 3">瀹℃牳涓嶉�氳繃</span>
+                          <span v-if="row.status === 4">鍙栨秷</span>
+                          <span v-if="row.status === 5">棰勭害鎴愬姛</span>
+                          <span v-if="row.status === 6">棰勭害澶辫触</span>
+                          <span v-if="row.status === 7">鎷滆涓�</span>
+                          <span v-if="row.status === 8">宸茬绂�</span>
+                          <span v-if="row.status === 9">宸插け鏁�</span>
+                        </template>
+                      </el-table-column>
                         <el-table-column
-                            prop="name"
+                            width="150"
                             label="濮撳悕">
+                            <template slot-scope="{row}">
+                                <span>{{row.name}}</span>
+                                <span style="border-radius: 5px; padding: 2px 5px; box-sizing: border-box; border: 1px solid #0d68ff; color: #0d68ff; margin-left: 5px;" v-if="info.memberId === row.memberId">鐢宠浜�</span>
+                            </template>
                         </el-table-column>
                         <el-table-column
                             label="鎬у埆">
@@ -41,8 +64,12 @@
                         <el-table-column
                             prop="birthday"
                             label="骞撮緞">
+                            <template slot-scope="{row}">
+                                <span>{{getAge(row.birthday)}}</span>
+                            </template>
                         </el-table-column>
                         <el-table-column
+                            width="150"
                             prop="phone"
                             label="鎵嬫満鍙�">
                         </el-table-column>
@@ -55,20 +82,50 @@
                             </template>
                         </el-table-column>
                         <el-table-column
-                            prop="idcardNo"
+                            width="160"
+                            prop="idcardDecode"
                             label="韬唤璇佸彿鐮�">
                         </el-table-column>
                         <el-table-column
+                            width="150"
                             prop="companyName"
                             label="鍏徃">
                         </el-table-column>
                         <el-table-column
-                            prop="faceImg"
-                            label="浜鸿劯鐓х墖">
+                            width="150"
+                            prop="carNos"
+                            label="闅忚杞﹁締">
                         </el-table-column>
                         <el-table-column
-                            prop="imgurl"
+                            width="150"
+                            label="璁垮浜岀淮鐮�">
+                            <template slot-scope="{row}">
+                              <div   :id="`qrcode${row.id}`" :ref="`qrcode${row.id}`"></div>
+                            </template>
+                        </el-table-column>
+                        <el-table-column
+                            width="150"
+                            label="浜鸿劯鐓х墖">
+                            <template slot-scope="{row}">
+                                <el-image
+                                    v-if="row.faceImg"
+                                    style="width: 100px; height: 100px"
+                                    :src="info.prefixUrl + row.faceImg"
+                                    :preview-src-list="[info.prefixUrl + row.faceImg]">
+                                </el-image>
+                            </template>
+                        </el-table-column>
+                        <el-table-column
+                            width="150"
                             label="鍋ュ悍璇�">
+                            <template slot-scope="{row}">
+                                <el-image
+                                    v-if="row.imgurl"
+                                    style="width: 100px; height: 100px"
+                                    :src="info.prefixUrl + row.imgurl"
+                                    :preview-src-list="[info.prefixUrl + row.imgurl]">
+                                </el-image>
+                            </template>
                         </el-table-column>
                     </el-table>
                 </div>
@@ -95,6 +152,7 @@
 import BaseOpera from '@/components/base/BaseOpera'
 import GlobalWindow from '@/components/common/GlobalWindow'
 import { queryById } from '@/api/business/visits'
+import QRCode from "qrcodejs2";
 export default {
   name: 'OperaVisitsWindow',
   extends: BaseOpera,
@@ -102,10 +160,37 @@
   data () {
     return {
       list: [],
-      info: null
+      info: null,
+      innerVisible:false
     }
   },
+  created () {
+  },
   methods: {
+    getAge (val) {
+      if (!val) return ''
+      const currentYear = new Date().getFullYear() // 褰撳墠鐨勫勾浠�
+      const calculationYear = new Date(val).getFullYear() // 璁$畻鐨勫勾浠�
+      const wholeTime = currentYear + val.substring(4) // 鍛ㄥ瞾鏃堕棿
+      const calculationAge = currentYear - calculationYear // 鎸夌収骞翠唤璁$畻鐨勫勾榫�
+      // 鍒ゆ柇鏄惁杩囦簡鐢熸棩
+      if (new Date().getTime() > new Date(wholeTime).getTime()) {
+        return calculationAge
+      } else {
+        return calculationAge - 1
+      }
+    },
+    crateQrcodeShow (div,qrcode1) {
+      if(qrcode1 ==null ||qrcode1 ==''){
+        return;
+      }
+      this.qr = new QRCode(div, {
+        width: 90,
+        height: 90,
+        text: qrcode1
+      })
+    },
+
     open (title, id) {
       this.title = title
       this.visible = true
@@ -113,12 +198,26 @@
         .then(res => {
           console.log(res)
           this.info = res
+          this.$nextTick(() => {
+            // this.$refs.qrcode2.innerHTML = ''
+            // this.crateQrcodeShow('qrcode2',res.qrcode)
+            if(this.info.withUserList ){
+              this.info.withUserList.forEach(row => {
+                this.$refs['qrcode'+row.id].innerHTML = ''
+                this.crateQrcodeShow('qrcode'+row.id,row.qrcode)
+              })
+            }
+          })
         })
     }
   }
 }
 </script>
-
+<style>
+    .el-image-viewer__wrapper {
+        z-index: 3000 !important;
+    }
+</style>
 <style lang="scss" scoped>
     .list {
         width: 100%;

--
Gitblit v1.9.3