From 7298d5354963a88643a543b51b90192dc9fc934c Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 11 九月 2025 18:43:14 +0800
Subject: [PATCH] 最新版本541200007

---
 h5/pages/staff/task/visitorReport.vue |  342 ++++++++++++++++++++++++++++++++------------------------
 1 files changed, 197 insertions(+), 145 deletions(-)

diff --git a/h5/pages/staff/task/visitorReport.vue b/h5/pages/staff/task/visitorReport.vue
index 1308a5f..b9c62cd 100644
--- a/h5/pages/staff/task/visitorReport.vue
+++ b/h5/pages/staff/task/visitorReport.vue
@@ -1,13 +1,13 @@
 <template>
   <view class="main_app">
     <view class="status_wrap">
-      <view class="name">{{ info.createMemberName }}鎻愪氦鐨剓{ cateList[type].name }}</view>
+      <view class="name">{{ info.createMemberName }}鎻愪氦鐨勮瀹㈡姤澶�</view>
       <view
         class="desc"
         :class="{
           gray: info.businessStatus == '2' || info.businessStatus == '3' || info.businessStatus == '4',
         }"
-        >{{ infoStatus }}</view
+        >{{ info.info }}</view
       >
       <view v-if="info.businessStatus == '0' || info.businessStatus == '1'" class="status">{{
         statusMap[info.businessStatus]
@@ -44,7 +44,7 @@
       </view>
       <view class="item">
         <view class="label">璁垮鍗曚綅</view>
-        <view class="value">{{ info.companyName }}浜�</view>
+        <view class="value">{{ info.companyName }}</view>
       </view>
       <view class="item">
         <view class="label">鏉ヨ浜嬬敱</view>
@@ -63,6 +63,7 @@
             <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" />
+						<image v-else-if="item.faceImg" :src="item.faceImg" class="img"></image>
             <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" />
@@ -99,7 +100,10 @@
       info.approveDateVO.canBeApproved != null &&
       info.approveDateVO.canBeApproved == 1
     " class="main_footer">
+	  <view class="btn" @click="cancelShow = true" v-if="checkAuth('business:visits:cancel') && [0,1,2,5].includes(info.status)">鍙栨秷棰勭害</view>
+	  <view style="width: 30rpx; height: 100%;"></view>
       <view class="btn" @click="handleSub(3)">鎷掔粷</view>
+	  <view style="width: 30rpx; height: 100%;"></view>
       <view class="btn agree" @click="handleSub(2)">鍚屾剰</view>
     </view>
 
@@ -110,17 +114,27 @@
           " placeholder-class="placeholder9" />
         <view class="main_footer">
           <view class="btn" @click="showApprModal = false">鍙栨秷</view>
+		  <view style="width: 30rpx; height: 100%;"></view>
           <view class="btn agree" @click="onSubmit">鎻愪氦</view>
         </view>
       </view>
     </u-popup>
+	<!-- 鍙栨秷棰勭害寮圭獥 -->
+	<u-modal
+		:show="cancelShow"
+		:showCancelButton="true"
+		title="绯荤粺鎻愮ず"
+		content='纭畾鍙栨秷褰撳墠棰勭害鍚楋紵'
+		@cancel="cancelShow = false"
+		@confirm="cancel" />
   </view>
 </template>
 
 <script>
 import {
   getVisitedReDetail, // 璁垮棰勭害璇︽儏
-  carUseBookAppr
+  carUseBookAppr,
+  visitsCancel
 } from '@/api'
 export default {
   data() {
@@ -128,6 +142,9 @@
       showApprModal: false,
       param: {},
       info: {},
+	  userInfo: uni.getStorageSync('userInfo') || {
+	  	permissions: []
+	  },
 
       id: '',
       type: '',
@@ -145,16 +162,27 @@
         2: '宸查�氳繃',
         3: '宸叉嫆缁�',
         4: '宸插彇娑�',
-      }
+      },
+	  cancelShow: false
     }
   },
   onLoad(op) {
+		uni.setStorageSync('ywinfo',{})
     this.id = op.id
-    this.type = op.objType
-    this.infoStatus = op.info
     this.getDetail()
   },
   methods: {
+	  checkAuth(str) {
+	  	const permissions = this.userInfo.permissions || []
+	  	return permissions.indexOf(str) > -1
+	  },
+	  // 鍙栨秷棰勭害
+	  cancel() {
+	  	visitsCancel(this.id).then(res => {
+	  		this.cancelShow = false
+	  		this.getDetail()
+	  	})
+	  },
     getDetail() {
       const { id } = this
       getVisitedReDetail({ id }).then(res => {
@@ -222,143 +250,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;
-							font-size: 26rpx;
-							color: #777777;
-              .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 {
@@ -453,7 +504,8 @@
     background: #ffffff;
 
     .btn {
-      width: 336rpx;
+      // width: 336rpx;
+	  flex: 1;
       height: 88rpx;
       line-height: 88rpx;
       background: #ffffff;

--
Gitblit v1.9.3