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] 代码初始化

---
 h5/pages/staff/task/visitorReport.vue |  465 ++++++++++++++++++++++++++++-----------------------------
 1 files changed, 229 insertions(+), 236 deletions(-)

diff --git a/h5/pages/staff/task/visitorReport.vue b/h5/pages/staff/task/visitorReport.vue
index 566fe2c..15e713a 100644
--- a/h5/pages/staff/task/visitorReport.vue
+++ b/h5/pages/staff/task/visitorReport.vue
@@ -1,47 +1,32 @@
 <template>
   <view class="main_app">
     <view class="status_wrap">
-      <view class="name"
-        >{{ info.createMemberName }}鎻愪氦鐨剓{ cateList[type].name }}</view
-      >
+      <view class="name">{{ info.createMemberName }}鎻愪氦鐨剓{ cateList[type].name }}</view>
       <view
         class="desc"
         :class="{
-          gray: info.status == '2' || info.status == '5' || info.status == '4',
+          gray: info.businessStatus == '2' || info.businessStatus == '3' || info.businessStatus == '4',
         }"
-        >{{ statusMap[info.status] }}</view
+        >{{ infoStatus }}</view
       >
-      <view v-if="info.status == '0'" class="status">{{
-        statusMap[info.status]
+      <view v-if="info.businessStatus == '0' || info.businessStatus == '1'" class="status">{{
+        statusMap[info.businessStatus]
       }}</view>
-      <image
-        v-if="info.status == '2'"
-        src="@/static/ic_passed@2x.png"
-        mode="widthFix"
-        class="status_img"
-      ></image>
-      <image
-        v-if="info.status == '3' || info.status == '6'"
-        src="@/static/ic_refused@2x.png"
-        mode="widthFix"
-        class="status_img"
-      ></image>
+      <image v-if="info.businessStatus == '2'" src="@/static/ic_passed@2x.png" mode="widthFix" class="status_img"></image>
+      <image v-if="info.businessStatus == '3' || info.businessStatus == '6'" src="@/static/ic_refused@2x.png" mode="widthFix"
+        class="status_img"></image>
     </view>
     <!--  -->
     <view class="emyty"></view>
     <view class="module_list">
       <view class="item">
         <view class="label">琚浜�</view>
-        <view class="value"
-          >{{ info.receptMemberName }} {{ info.receptMemberDepartment }}</view
-        >
+        <view class="value">{{ info.receptMemberName }} {{ info.receptMemberDepartment }}</view>
       </view>
       <view class="item">
         <view class="label">棰勮鍏�/绂诲洯鏃堕棿</view>
-        <view class="value" v-if="info.starttime"
-          >{{ info.starttime.slice(5, 16) }} 鑷�
-          {{ info.endtime.slice(5, 16) }}</view
-        >
+        <view class="value" v-if="info.starttime">{{ info.starttime.slice(5, 16) }} 鑷�
+          {{ info.endtime.slice(5, 16) }}</view>
       </view>
       <view class="emyty"></view>
 
@@ -57,10 +42,10 @@
         <view class="label">闅忚溅浜烘暟</view>
         <view class="value">{{ info.memberNum }}浜�</view>
       </view>
-			<view class="item">
-			  <view class="label">璁垮鍗曚綅</view>
-			  <view class="value">{{ info.companyName }}浜�</view>
-			</view>
+      <view class="item">
+        <view class="label">璁垮鍗曚綅</view>
+        <view class="value">{{ info.companyName }}浜�</view>
+      </view>
       <view class="item">
         <view class="label">鏉ヨ浜嬬敱</view>
         <view class="value">{{ info.reason }}</view>
@@ -69,71 +54,38 @@
     <!-- 娴佺▼ -->
     <view class="flow_wrap">
       <view class="flow_title">娴佺▼</view>
-      <view
-        class="list"
-        v-if="
-          info.approveDateVO != null && info.approveDateVO.approveList != null
-        "
-      >
-        <view
-          class="item"
-          v-for="(item, index) in info.approveDateVO.approveList"
-          :key="item.id"
-        >
+      <view class="list" v-if="
+        info.approveDateVO != null && info.approveDateVO.approveList != null
+      ">
+        <view class="item" v-for="(item, index) in info.approveDateVO.approveList" :key="item.id">
           <view class="separate"></view>
           <view class="avatar">
-            <image
-              class="img"
-              :src="
-                item.faceImg
-                  ? item.faceImg
-                  : require('@/static/meeting/common/default_user@2x.png')
-              "
-            />
-            <image
-							v-if="item.status == 1"
-              class="status"
-              src="@/static/staff/liucheng_success@2x.png"
-              mode="widthFix"
-            />
-						<image
-							v-if="item.status == 2"
-						  class="status"
-						  src="@/static/staff/liucheng_fail@2x.png"
-						  mode="widthFix"
-						/>
+            <image v-if="item.type == 1" class="img" src="@/static/staff/ic_chaosong@2x.png" />
+            <image v-else-if="item.approveType == 1 || item.approveType == 0" class="img"
+              src="@/static/staff/ic_shenpiren@2x.png" />
+            <span v-else class="img_name">{{ item.memberName && item.memberName.slice(0, 1) }}</span>
+            <image v-if="item.status == 2" class="status" src="@/static/staff/liucheng_success@2x.png"
+              mode="widthFix" />
+            <image v-if="item.status == 3" class="status" src="@/static/staff/liucheng_fail@2x.png" mode="widthFix" />
           </view>
           <view class="content">
             <view class="head">
               <view class="event">{{ item.title }}</view>
-              <view class="time" v-if="item.createDate">{{ item.createDate.slice(0, 16) }}</view>
+              <view class="time">{{ item.checkDate }}</view>
             </view>
-            <view class="name_wrap" v-if="item.type == 0">
-              <text
-                >{{ item.memberName
-                }}<text class="status" v-if="item.statusInfo"
-                  >({{ item.statusInfo }})</text
-                ></text
-              >
+            <view class="name_wrap">
+              <text>{{ item.memberName
+                }}<text :class="{ status: item.statusInfo == '澶勭悊涓�' || item.status == '1' }" v-if="item.statusInfo">({{
+                  item.statusInfo }})</text></text>
             </view>
             <view v-if="item.checkInfo" class="remark">{{
               item.checkInfo
-            }}</view>
+              }}</view>
             <!-- 鎶勯�佷汉 -->
-            <view class="children">
-              <view
-                class="child"
-                v-for="child in item.approveList"
-                :key="child.id"
-              >
-                <image
-                  class="child_img"
-                  :src="
-                    child.faceImg
-                      ? child.faceImg
-                      : require('@/static/meeting/common/default_user@2x.png')
-                  "
-                />
+            <view v-if="item.approveType == 0 || item.type == 1 || item.approveType == 1" class="children">
+              <view class="child" v-for="child in item.approveList" :key="child.id">
+                <image v-if="child.faceImg" class="child_img" :src="child.faceImg" />
+                <view v-else class="child_name">{{ child.memberName && child.memberName.slice(0, 1) }}</view>
                 <view>{{ child.memberName }}</view>
               </view>
             </view>
@@ -142,34 +94,20 @@
       </view>
     </view>
     <view class="emyty"></view>
-    <view
-      v-if="
-        info.approveDateVO != null &&
-        info.approveDateVO.canBeApproved != null &&
-        info.approveDateVO.canBeApproved == 1
-      "
-      class="main_footer"
-    >
+    <view v-if="
+      info.approveDateVO != null &&
+      info.approveDateVO.canBeApproved != null &&
+      info.approveDateVO.canBeApproved == 1
+    " class="main_footer">
       <view class="btn" @click="handleSub(3)">鎷掔粷</view>
       <view class="btn agree" @click="handleSub(2)">鍚屾剰</view>
     </view>
 
-    <u-popup
-      :show="showApprModal"
-      :round="10"
-      :safeAreaInsetBottom="true"
-      mode="bottom"
-      @close="showApprModal = false"
-    >
+    <u-popup :show="showApprModal" :round="10" :safeAreaInsetBottom="true" mode="bottom" @close="showApprModal = false">
       <view class="appr_modal">
         <view class="title">{{ param.status == 2 ? "鍚屾剰" : "鎷掔粷" }}</view>
-        <textarea
-          v-model="param.checkInfo"
-          :placeholder="
-            param.status == 2 ? '鍚屾剰璇存槑锛岄潪蹇呭~' : '鎷掔粷璇存槑锛屽繀濉�'
-          "
-          placeholder-class="placeholder9"
-        />
+        <textarea v-model="param.checkInfo" :placeholder="param.status == 2 ? '鍚屾剰璇存槑锛岄潪蹇呭~' : '鎷掔粷璇存槑锛屽繀濉�'
+          " placeholder-class="placeholder9" />
         <view class="main_footer">
           <view class="btn" @click="showApprModal = false">鍙栨秷</view>
           <view class="btn agree" @click="onSubmit">鎻愪氦</view>
@@ -193,6 +131,7 @@
 
       id: '',
       type: '',
+      infoStatus: '',
       cateList: [
         { name: '璁垮鐢宠', id: 0 },
         { name: '璁垮鎶ュ', id: 1 },
@@ -203,17 +142,16 @@
       statusMap: {
         0: '寰呭鎵�',
         1: '瀹℃壒涓�',
-        2: '瀹℃壒閫氳繃',
-        3: '瀹℃壒鏈�氳繃',
+        2: '宸查�氳繃',
+        3: '宸叉嫆缁�',
         4: '宸插彇娑�',
-        5: '浠栦汉鎴栫',
-        6: '浠栦汉鎷掔粷',
       }
     }
   },
   onLoad(op) {
     this.id = op.id
     this.type = op.objType
+    this.infoStatus = op.info
     this.getDetail()
   },
   methods: {
@@ -221,10 +159,28 @@
       const { id } = this
       getVisitedReDetail({ id }).then(res => {
         this.info = res.data
+        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.status = item.approveList[0].status
+              item.approveList = []
+            }
+          })
+        }
       })
     },
     onSubmit() {
       const { param, info } = this
+      if (param.status == '3' && !param.checkInfo) {
+        return uni.showToast({
+          title: '璇疯緭鍏ユ嫆缁濊鏄�',
+          icon: 'none'
+        })
+      }
       carUseBookAppr({
         status: param.status,
         objType: 2,
@@ -266,132 +222,166 @@
   padding-bottom: 0;
 
   .flow_wrap {
-    padding: 30rpx 0;
-
-    .flow_title {
-      font-weight: 600;
-      font-size: 32rpx;
-      color: #222222;
-      margin-bottom: 24rpx;
-    }
-
-    .list {
-      .item {
-        display: flex;
-        margin-bottom: 48rpx;
-        position: relative;
-        .separate {
-          position: absolute;
-          width: 4rpx;
-          height: 100%;
-          background-color: #eeeeee;
-          left: 40rpx;
-          transform: translate(-50%, 0);
-          top: 80rpx;
-        }
-        .avatar {
-          width: 80rpx;
-          height: 80rpx;
-          position: relative;
-          margin-right: 20rpx;
-
-          .img {
-            width: 80rpx;
-            height: 80rpx;
-            border-radius: 50%;
-          }
-
-          .status {
-            width: 28rpx;
-            height: 28rpx;
-            border-radius: 50%;
-            position: absolute;
-            right: 0;
-            bottom: 0;
-          }
-        }
-
-        .content {
-          flex: 1;
-
-          .head {
-            display: flex;
-            justify-content: space-between;
-            margin-bottom: 4rpx;
-
-            .event {
-              font-size: 30rpx;
-            }
-
-            .time {
-              font-size: 26rpx;
-              color: #999999;
-            }
-          }
-
-          .name_wrap {
-            font-size: 26rpx;
-            color: #777777;
-
-            .status {
-              color: $uni-color-primary;
-            }
-          }
-          .children {
-            display: flex;
-            flex-wrap: wrap;
-            margin-top: 12rpx;
-            .child {
-              display: flex;
-              flex-direction: column;
-              justify-content: center;
-              align-items: center;
-              margin-right: 12rpx;
-              .child_img {
-                width: 48rpx;
-                height: 48rpx;
-                border-radius: 50%;
-              }
-            }
-          }
-
-          .remark {
-            margin-top: 12rpx;
-            background-color: #f7f7f7;
-            padding: 14rpx 20rpx;
-            border-radius: 8rpx;
-            font-size: 26rpx;
-            color: #666666;
-            line-height: 36rpx;
-          }
-        }
-        .carbon {
-          display: flex;
-          width: 590rpx;
-          overflow-x: auto;
-          margin-top: 12rpx;
-          .carbon_item {
-            text-align: center;
-            flex-shrink: 0;
-            width: 100rpx;
-            image {
-              width: 60rpx;
-              height: 60rpx;
-              margin: 0 auto;
-            }
-            view {
-              font-size: 26rpx;
-              color: #777777;
-            }
-          }
-        }
-        &:nth-last-child(1) {
-          .separate {
-            height: 0;
-          }
-        }
-      }
-    }
+  	padding: 30rpx 0;
+  
+  	.flow_title {
+  		font-weight: 600;
+  		font-size: 32rpx;
+  		color: #222222;
+  		margin-bottom: 24rpx;
+  	}
+  
+  	.list {
+  		.item {
+  			display: flex;
+  			margin-bottom: 48rpx;
+  			position: relative;
+  
+  			.separate {
+  				position: absolute;
+  				width: 4rpx;
+  				height: 100%;
+  				background-color: #eeeeee;
+  				left: 40rpx;
+  				transform: translate(-50%, 0);
+  				top: 80rpx;
+  			}
+  
+  			.avatar {
+  				width: 80rpx;
+  				height: 80rpx;
+  				position: relative;
+  				margin-right: 20rpx;
+  				display: flex;
+  				align-items: center;
+  				justify-content: center;
+  
+  				.img {
+  					width: 80rpx;
+  					height: 80rpx;
+  					border-radius: 50%;
+  				}
+  
+  				.img_name {
+  					font-size: 32rpx;
+  					color: #FFFFFF;
+  				}
+  
+  				.status {
+  					width: 28rpx;
+  					height: 28rpx;
+  					border-radius: 50%;
+  					position: absolute;
+  					right: 0;
+  					bottom: 0;
+  				}
+  			}
+  
+  			.content {
+  				flex: 1;
+  
+  				.head {
+  					display: flex;
+  					justify-content: space-between;
+  					margin-bottom: 4rpx;
+  
+  					.event {
+  						font-size: 30rpx;
+  					}
+  
+  					.time {
+  						font-size: 26rpx;
+  						color: #999999;
+  					}
+  				}
+  
+  				.name_wrap {
+  					font-size: 26rpx;
+  					color: #777777;
+  
+  					.status {
+  						color: $uni-color-primary;
+  					}
+  				}
+  
+  				.children {
+  					display: flex;
+  					flex-wrap: wrap;
+  					margin-top: 12rpx;
+  
+  					.child {
+  						display: flex;
+  						flex-direction: column;
+  						justify-content: center;
+  						align-items: center;
+  						margin-right: 12rpx;
+  						font-size: 26rpx;
+  						color: #777777;
+  
+  						.child_img {
+  							width: 48rpx;
+  							height: 48rpx;
+  							border-radius: 50%;
+  							margin-bottom: 2rpx;
+  						}
+  
+  						.child_name {
+  							margin-bottom: 2rpx;
+  							width: 48rpx;
+  							height: 48rpx;
+  							text-align: center;
+  							justify-content: center;
+  							padding-top: 4rpx;
+  							font-size: 28rpx;
+  							border-radius: 50%;
+  							color: #FFFFFF;
+  							background-color: $uni-color-primary;
+  						}
+  					}
+  				}
+  
+  				.remark {
+  					margin-top: 12rpx;
+  					background-color: #f7f7f7;
+  					padding: 14rpx 20rpx;
+  					border-radius: 8rpx;
+  					font-size: 26rpx;
+  					color: #666666;
+  					line-height: 36rpx;
+  				}
+  			}
+  
+  			.carbon {
+  				display: flex;
+  				width: 590rpx;
+  				overflow-x: auto;
+  				margin-top: 12rpx;
+  
+  				.carbon_item {
+  					text-align: center;
+  					flex-shrink: 0;
+  					width: 100rpx;
+  
+  					image {
+  						width: 60rpx;
+  						height: 60rpx;
+  						margin: 0 auto;
+  					}
+  
+  					view {
+  						font-size: 26rpx;
+  						color: #777777;
+  					}
+  				}
+  			}
+  
+  			&:nth-last-child(1) {
+  				.separate {
+  					height: 0;
+  				}
+  			}
+  		}
+  	}
   }
 
   .module_list {
@@ -450,6 +440,7 @@
       font-size: 26rpx;
       color: #ed4545;
     }
+
     .gray {
       color: #999999;
     }
@@ -465,6 +456,7 @@
       background-color: #e9edff;
       color: $uni-color-primary;
     }
+
     .status_img {
       position: absolute;
       right: 0rpx;
@@ -482,6 +474,7 @@
     display: flex;
     justify-content: space-between;
     background: #ffffff;
+
     .btn {
       width: 336rpx;
       height: 88rpx;

--
Gitblit v1.9.3