From 17efddc6a667670dca682bf36b51a43e99615e6d Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期三, 16 十月 2024 15:59:38 +0800
Subject: [PATCH] 代码初始化

---
 admin/src/views/task/visSubDetail.vue |  371 +++++++++++++++++++++++------------------------------
 1 files changed, 161 insertions(+), 210 deletions(-)

diff --git a/admin/src/views/task/visSubDetail.vue b/admin/src/views/task/visSubDetail.vue
index 57a70bd..db8dd9b 100644
--- a/admin/src/views/task/visSubDetail.vue
+++ b/admin/src/views/task/visSubDetail.vue
@@ -1,13 +1,21 @@
 <template>
-  <GlobalWindow :title="title" :visible.sync="isShowModal" @confirm="confirm">
+  <GlobalWindow :title="title" :visible.sync="isShowModal" @close="close" @confirm="confirm">
     <div class="modal_wrap">
       <div class="modal_content">
         <div class="header">
+          <img v-if="info.businessStatus == '3'" class="head_bg"
+            src="@/assets/task/bg_shenhe_fail@2x.png" alt="">
+          <img v-else-if="info.businessStatus == '2'" class="head_bg"
+            src="@/assets/task/bg_shenhe_pass@2x.png" alt="">
+          <img v-else-if="info.businessStatus == '4'" class="head_bg" src="@/assets/task/bg_shenhe_chexiao@2x.png" alt="">
+          <img v-else class="head_bg" src="@/assets/task/bg_shenhe@2x.png" alt="">
           <div class="left">
             <div class="h1">{{ cateList[type] }}</div>
             <div class="time">鎻愪氦鏃堕棿锛歿{ info.createTime }}</div>
           </div>
-          <div class="right">{{ statusMap[info.status] }}</div>
+          <div class="right"
+            :class="{ scs: info.businessStatus == '2', msg: info.businessStatus == '3' }">{{
+              statusMap[info.businessStatus] }}</div>
         </div>
         <div class="info">
           <div class="title">璁垮棰勭害淇℃伅</div>
@@ -44,15 +52,10 @@
             <el-table-column label="濮撳悕" prop="" min-width="150">
               <template slot-scope="{ row }">
                 <div class="name_wrap">
-                  <image
-                    :src="
-                      row.prefix
-                        ? row.prefix
-                        : require('@/assets/avatar/man.png')
-                    "
-                    class="avatar"
-                    mode=""
-                  />
+                  <image :src="row.prefix
+                    ? row.prefix
+                    : require('@/assets/avatar/man.png')
+                    " class="avatar" mode="" />
                   <div class="content">
                     <div class="line">
                       <div class="name">{{ row.name }}</div>
@@ -64,30 +67,18 @@
               </template>
             </el-table-column>
             <!-- <el-table-column label="鎬у埆" prop="" min-width="40" /> -->
-            <el-table-column
-              label="璇佷欢绫诲瀷"
-              prop="idcardTypeName"
-              min-width="80"
-            >
+            <el-table-column label="璇佷欢绫诲瀷" prop="idcardTypeName" min-width="80">
               <template slot-scope="{ row }">
                 <span v-if="row.idcardType == 0">韬唤璇�</span>
                 <span v-if="row.idcardType == 1">娓境璇佷欢</span>
                 <span v-if="row.idcardType == 2">鎶ょ収</span>
               </template>
             </el-table-column>
-            <el-table-column
-              label="璇佷欢鍙风爜"
-              prop="idCardDecode"
-              min-width="120"
-            />
-            <el-table-column
-              label="鍏徃鍚嶇О"
-              prop="companyName"
-              min-width="120"
-            />
+            <el-table-column label="璇佷欢鍙风爜" prop="idCardDecode" min-width="120" />
+            <el-table-column label="鍏徃鍚嶇О" prop="companyName" min-width="120" />
             <el-table-column label="浜鸿劯鐓х墖" prop="" min-width="80">
               <template slot-scope="{ row }">
-                <el-image :src="row.prefix + row.faceImg" :preview-src-list="[row.prefix + row.faceImg]">
+                <el-image v-if="row.prefix && row.faceImg" :src="row.prefix + row.faceImg" :preview-src-list="[row.prefix + row.faceImg]">
                 </el-image>
               </template>
             </el-table-column>
@@ -96,69 +87,24 @@
       </div>
       <div class="side">
         <div class="side_title">瀹℃壒娴佺▼</div>
-        <div
-          class="list"
-          v-if="
-            info.approveDateVO != null && info.approveDateVO.approveList != null
-          "
-        >
-          <div
-            class="item"
-            v-for="(item, index) in info.approveDateVO.approveList"
-            :key="item.id"
-          >
-            <div
-              class="separate"
-              v-if="index < info.approveDateVO.approveList.length - 1"
-            ></div>
+        <div class="list" v-if="
+          info.approveDateVO != null && info.approveDateVO.approveList != null
+        ">
+          <div class="item" v-for="(item, index) in info.approveDateVO.approveList" :key="item.id">
+            <div class="separate" v-if="index < info.approveDateVO.approveList.length - 1"></div>
             <div class="info">
-              <img
-                src="@/assets/icons/ic_tongguo.png"
-                class="iconnew"
-                v-if="item.status == 2"
-              />
-              <img
-                src="@/assets/icons/ic_dangqian.png"
-                class="iconnew"
-                v-if="item.status == 1"
-              />
-              <img
-                src="@/assets/icons/ic_jujue.png"
-                class="iconnew"
-                v-if="item.status == 3"
-              />
-              <img
-                src="@/assets/icons/ic_grey.png"
-                class="iconnew"
-                v-if="item.status == null || item.status == 0"
-              />
+              <img src="@/assets/icons/ic_tongguo.png" class="iconnew" v-if="item.status == 2" />
+              <img src="@/assets/icons/ic_dangqian.png" class="iconnew" v-if="item.status == 1" />
+              <img src="@/assets/icons/ic_jujue.png" class="iconnew" v-if="item.status == 3" />
+              <img src="@/assets/icons/ic_grey.png" class="iconnew" v-if="item.status == null || item.status == 0" />
               <div style="display: inline" v-if="item.approveType != 1">
-                <img
-                  v-if="item.faceImg != null && item.faceImg != ''"
-                  :src="item.faceImg"
-                  class="avatar"
-                  alt=""
-                />
-                <img
-                  v-if="item.faceImg == null || item.faceImg == ''"
-                  src="@/assets/avatar/man.png"
-                  class="avatar"
-                  alt=""
-                />
+                <img v-if="item.faceImg != null && item.faceImg != ''" :src="item.faceImg" class="avatar" alt="" />
+                <img v-if="item.faceImg == null || item.faceImg == ''" src="@/assets/avatar/man.png" class="avatar"
+                  alt="" />
               </div>
               <div style="display: inline" v-if="item.approveType == 1">
-                <img
-                  v-if="item.type != 1"
-                  src="@/assets/icons/ic_duoren.png"
-                  class="avatar"
-                  alt=""
-                />
-                <img
-                  v-if="item.type == 1"
-                  src="@/assets/icons/ic_chaosong.png"
-                  class="avatar"
-                  alt=""
-                />
+                <img v-if="item.type != 1" src="@/assets/icons/ic_duoren.png" class="avatar" alt="" />
+                <img v-if="item.type == 1" src="@/assets/icons/ic_chaosong.png" class="avatar" alt="" />
               </div>
               <div class="content">
                 <div class="line">
@@ -168,47 +114,27 @@
                 <div class="line">
                   <div class="company">
                     {{ item.memberName }}
-                    <div
-                      style="display: inline"
-                      v-if="item.statusInfo != null && item.statusInfo != ''"
-                    >
-                      锛�<span class="status-green">{{
+                    <div style="display: inline" v-if="item.statusInfo != null && item.statusInfo != ''">
+                      锛�<span :class="{ padding: item.statusInfo == '澶勭悊涓�' || item.status == '1' }">{{
                         item.statusInfo || ""
-                      }}</span
-                      >锛�
+                        }}</span>锛�
                     </div>
                   </div>
                 </div>
               </div>
             </div>
-            <div
-              v-if="
-                item.approveType != 1 &&
-                item.checkInfo != null &&
-                item.checkInfo != ''
-              "
-              class="remark"
-            >
+            <div v-if="
+              item.approveType != 1 &&
+              item.checkInfo != null &&
+              item.checkInfo != ''
+            " class="remark">
               {{ item.checkInfo || "" }}
             </div>
             <div v-if="item.approveType == 1" class="childList">
-              <div
-                class="m_content company"
-                v-for="item1 in item.approveList"
-                :key="item1.id"
-              >
-                <img
-                  v-if="item1.faceImg != null && item1.faceImg != ''"
-                  :src="item1.faceImg"
-                  class="avatar"
-                  alt=""
-                />
-                <img
-                  v-if="item1.faceImg == null || item1.faceImg == ''"
-                  src="@/assets/avatar/man.png"
-                  class="avatar"
-                  alt=""
-                />
+              <div class="m_content company" v-for="item1 in item.approveList" :key="item1.id">
+                <img v-if="item1.faceImg != null && item1.faceImg != ''" :src="item1.faceImg" class="avatar" alt="" />
+                <img v-if="item1.faceImg == null || item1.faceImg == ''" src="@/assets/avatar/man.png" class="avatar"
+                  alt="" />
                 <span> {{ item1.memberName }}</span>
               </div>
             </div>
@@ -218,46 +144,24 @@
     </div>
     <!--  -->
     <template v-slot:footer>
-      <el-button
-        @click="handleAppr(2)"
-        type="primary"
-        class="status-red"
-        v-if="
-          info.approveDateVO != null &&
-          info.approveDateVO.canBeApproved != null &&
-          info.approveDateVO.canBeApproved == 1
-        "
-        >鍚屾剰</el-button
-      >
-      <el-button
-        @click="handleAppr(3)"
-        type="danger"
-        v-if="
-          info.approveDateVO != null &&
-          info.approveDateVO.canBeApproved != null &&
-          info.approveDateVO.canBeApproved == 1
-        "
-        >鎷掔粷</el-button
-      >
-      <el-button @click="isShowModal = false">杩斿洖</el-button>
+      <el-button @click="handleAppr(2)" type="primary" class="status-red" v-if="
+        info.approveDateVO != null &&
+        info.approveDateVO.canBeApproved != null &&
+        info.approveDateVO.canBeApproved == 1
+      ">鍚屾剰</el-button>
+      <el-button @click="handleAppr(3)" type="danger" v-if="
+        info.approveDateVO != null &&
+        info.approveDateVO.canBeApproved != null &&
+        info.approveDateVO.canBeApproved == 1
+      ">鎷掔粷</el-button>
+      <el-button @click="close">杩斿洖</el-button>
     </template>
     <!--  鍚屾剰/鎷掔粷 -->
-    <el-dialog
-      append-to-body
-      :title="param.status == 2 ? '鍚屾剰' : '鎷掔粷'"
-      :visible.sync="isShowAppr"
-      width="480px"
-    >
+    <el-dialog append-to-body :title="param.status == 2 ? '鍚屾剰' : '鎷掔粷'" :visible.sync="isShowAppr" width="480px">
       <el-form :model="param" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
         <el-form-item :prop="param.status == 3 ? 'checkInfo' : ''" :label="param.status == 2 ? '鍚屾剰璇存槑' : '鎷掔粷璇存槑'">
-          <el-input
-            type="textarea"
-            :placeholder="
-              param.status == 2 ? '鍚屾剰璇存槑锛岄潪蹇呭~' : '鎷掔粷璇存槑蹇呭~'
-            "
-            :rows="4"
-            v-model="param.checkInfo"
-          />
+          <el-input type="textarea" :placeholder="param.status == 2 ? '鍚屾剰璇存槑锛岄潪蹇呭~' : '鎷掔粷璇存槑蹇呭~'
+            " :rows="4" v-model="param.checkInfo" />
         </el-form-item>
       </el-form>
       <span slot="footer" class="dialog-footer">
@@ -266,32 +170,16 @@
       </span>
     </el-dialog>
     <!-- 闅愭偅 -->
-    <el-dialog
-      append-to-body
-      title="闅愭偅"
-      :visible.sync="isShowProblem"
-      width="480px"
-    >
+    <el-dialog append-to-body title="闅愭偅" :visible.sync="isShowProblem" width="480px">
       <el-form :model="param" :rules="rules" ref="ruleForm" label-width="100px">
         <el-form-item label="閫�鍥炴椂闂�">
-          <el-date-picker
-            class="w300"
-            value-format="yyyy-MM-dd"
-            type="date"
-            placeholder="閫夋嫨鏃ユ湡"
-            v-model="param.date"
-          />
+          <el-date-picker class="w300" value-format="yyyy-MM-dd" type="date" placeholder="閫夋嫨鏃ユ湡" v-model="param.date" />
         </el-form-item>
         <el-form-item label="鏁存敼鍓�">
           <div class="df_ac">
             <img src="@/assets/avatar/man.png" />
-            <el-upload
-              class="avatar-uploader"
-              action="https://jsonplaceholder.typicode.com/posts/"
-              :show-file-list="false"
-              :on-success="handleAvatarSuccess"
-              :before-upload="beforeAvatarUpload"
-            >
+            <el-upload class="avatar-uploader" action="https://jsonplaceholder.typicode.com/posts/"
+              :show-file-list="false" :on-success="handleAvatarSuccess" :before-upload="beforeAvatarUpload">
               <img v-if="param.url" :src="param.url" class="avatar" />
               <div v-else class="upload_box">
                 <el-icon class="el-icon-plus icon" />
@@ -301,19 +189,12 @@
           </div>
         </el-form-item>
         <el-form-item label="閫�鍥炶鏄�">
-          <el-input
-            type="textarea"
-            placeholder="璇峰~鍐欒鏄�"
-            :rows="4"
-            v-model="param.explain"
-          />
+          <el-input type="textarea" placeholder="璇峰~鍐欒鏄�" :rows="4" v-model="param.explain" />
         </el-form-item>
       </el-form>
       <span slot="footer" class="dialog-footer">
         <el-button @click="isShowProblem = false">鍙栨秷</el-button>
-        <el-button type="primary" @click="isShowProblem = false"
-          >纭畾</el-button
-        >
+        <el-button type="primary" @click="isShowProblem = false">纭畾</el-button>
       </span>
     </el-dialog>
   </GlobalWindow>
@@ -327,7 +208,7 @@
 } from '@/api'
 export default {
   components: { GlobalWindow },
-  data () {
+  data() {
     return {
       id: '',
       type: '',
@@ -345,16 +226,11 @@
         checkInfo: [{ required: true, message: '璇疯緭鍏�', trigger: 'blur' }]
       },
       statusMap: {
-        0: '寰呭鎵�',
-        1: '瀹℃壒涓�',
-        2: '瀹℃壒閫氳繃',
-        3: '瀹℃壒鏈�氳繃',
+        0: '寰呭鏍�',
+        1: '澶勭悊涓�',
+        2: '宸插悓鎰�',
+        3: '宸叉嫆缁�',
         4: '宸插彇娑�',
-        5: '棰勭害鎴愬姛',
-        6: '棰勭害澶辫触',
-        7: '鎷滆涓�',
-        8: '宸茬绂�',
-        9: '宸插け鏁�'
       },
       cateList: {
         0: '璁垮鐢宠',
@@ -366,7 +242,7 @@
     }
   },
   methods: {
-    onSubAppr () {
+    onSubAppr() {
       this.$refs.ruleForm.validate((valid) => {
         if (!valid) {
           return
@@ -384,6 +260,8 @@
                 this.subLoading = false
                 this.$tip.apiSuccess('澶勭悊鎴愬姛')
                 this.getDetail()
+                this.$emit('success')
+                this.$emit('close')
                 this.isShowAppr = false
               })
               .finally(() => {
@@ -392,41 +270,58 @@
           })
       })
     },
-    getDetail () {
+    close(){
+      this.isShowModal = false
+      this.$emit('close')
+    },
+    getDetail() {
       const { id, type } = this
       console.log(id, type)
       switch (type) {
-      case 0:
-        getVisitedDetail({ id }).then(res => {
-          this.info = res
-        })
-        break
+        case 0:
+          getVisitedDetail({ id }).then(res => {
+            this.info = res
+            if (this.info.approveDateVO && this.info.approveDateVO.approveList.length > 0) {
+              this.info.approveDateVO.approveList.forEach(item => {
+                if (item.approveList && item.approveList.length == 1 && item.type !== 1) {
+                  item.title = item.approveList[0].title
+                  item.faceImg = item.approveList[0].faceImg
+                  item.memberName = item.approveList[0].memberName
+                  item.statusInfo = item.approveList[0].statusInfo
+                  item.approveList = []
+                }
+              })
+            }
+          })
+          break
 
-      default:
-        break
+        default:
+          break
       }
     },
-    handleAppr (val) {
+    handleAppr(val) {
       this.$set(this.param, 'status', val)
       this.isShowAppr = true
       this.$nextTick(() => {
         this.$refs.ruleForm.clearValidate()
       })
     },
-    confirm () {
+    confirm() {
       console.log('--')
     },
-    handleTransfer () {
+    handleTransfer() {
       this.isShowProblem = true
     },
-    reject () { },
-    handleAvatarSuccess () { },
-    beforeAvatarUpload () { }
+    reject() { },
+    handleAvatarSuccess() { },
+    beforeAvatarUpload() { }
   }
 }
 </script>
 
 <style lang="scss" scoped>
+@import "@/assets/style/variables.scss";
+
 .upload_box {
   width: 84px;
   height: 84px;
@@ -438,13 +333,16 @@
   align-items: center;
   color: #999999;
   border: 1px solid #e4e4e4;
+
   .icon {
     font-size: 24px;
   }
+
   .text {
     font-size: 12px;
   }
 }
+
 .side_title {
   font-weight: 600;
   font-size: 18px;
@@ -453,9 +351,11 @@
   margin-left: 20px;
   margin-top: 20px;
 }
+
 .modal_wrap {
   display: flex;
   height: 100%;
+
   .modal_content {
     flex: 1;
     padding: 0px 30px;
@@ -470,6 +370,7 @@
       margin-bottom: 20px;
       margin-top: 30px;
     }
+
     .info {
       .list {
         display: flex;
@@ -479,6 +380,7 @@
           display: flex;
           width: 40%;
           margin-bottom: 20px;
+
           &:nth-of-type(2n) {
             width: 60%;
           }
@@ -502,7 +404,16 @@
       padding: 20px 30px;
       margin: 0 -30px;
       border-radius: 8px 8px 0 0;
-      background: linear-gradient(to right, #f2f6fe, #cadffa);
+      position: relative;
+
+      .head_bg {
+        position: absolute;
+        width: 100%;
+        height: 100%;
+        left: 0;
+        top: 0;
+        z-index: 9;
+      }
 
       .h1 {
         font-weight: 600;
@@ -525,22 +436,36 @@
         background: #207ff7;
         box-shadow: 4px 4px 0px 0px rgba(32, 127, 247, 0.16);
         border-radius: 16px 0px 16px 0px;
+        position: relative;
+        z-index: 99;
+      }
+
+      .scs {
+        background-color: #00BA67;
+      }
+
+      .msg {
+        background-color: #ED4545;
       }
     }
+
     .table_info {
       .name_wrap {
         display: flex;
         align-items: center;
+
         .avatar {
           width: 40px;
           height: 40px;
           border-radius: 50%;
           margin-right: 12px;
         }
+
         .content {
           .line {
             display: flex;
           }
+
           .tag {
             color: #b2cbf9;
             border: 1px solid #b2cbf9;
@@ -558,17 +483,20 @@
     width: 420px;
     background: #ffffff;
     border-left: 20px solid #f7f7f7;
+
     .list {
       .item {
         padding: 8px 0;
         position: relative;
+
         .separate {
           position: absolute;
           border-left: 2px dashed #cccccc;
           left: 31px;
-          height: calc(100% - 36px);
+          height: calc(100% - 30px);
           top: 49px;
         }
+
         .avatar {
           width: 40px;
           height: 40px;
@@ -576,18 +504,22 @@
           margin: 0 12px 0 16px;
           //border: 1px solid;
         }
+
         .childList {
           display: flex;
           flex-wrap: wrap;
           margin-left: 100px;
         }
+
         .company {
           font-size: 13px;
           color: #888888;
+
           .status {
             color: #00ba67;
           }
         }
+
         .m_content {
           display: flex;
           flex-direction: column;
@@ -595,56 +527,75 @@
           justify-content: center;
           margin-bottom: 4px;
         }
+
         .info {
           display: flex;
           align-items: center;
           margin-left: 20px;
+
           .icon {
             position: relative;
             z-index: 11;
             color: #53b76f;
             font-size: 24px;
           }
+
           .icon1 {
             position: relative;
             z-index: 11;
             color: deepskyblue;
             font-size: 24px;
           }
+
           .icon2 {
             position: relative;
             z-index: 11;
             color: #dc362e;
             font-size: 24px;
           }
+
           .iconnew {
             width: 24px;
             height: 24px;
           }
+
           .icon3 {
             position: relative;
             z-index: 11;
             color: gray;
             font-size: 24px;
           }
+
           .content {
             flex: 1;
+
             .line {
               display: flex;
               justify-content: space-between;
               align-content: center;
               margin-bottom: 6px;
+
+              .status {
+                color: #888888;
+              }
+
+              .padding {
+                color: $primaryColor;
+              }
+
               .name {
                 font-weight: 600;
                 font-size: 16px;
                 color: #111111;
               }
+
               .time {
                 color: #888888;
               }
             }
           }
         }
+
         .remark {
           background: #f7f7f7;
           border-radius: 4px;

--
Gitblit v1.9.3