From 51e18e190dafdec70dc1f4a3a9ecd76fb2116726 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期六, 12 十月 2024 16:25:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
h5/pages/staff/task/visitorReport.vue | 177 +++++++++++++++++++++++++++-------------------------------
1 files changed, 82 insertions(+), 95 deletions(-)
diff --git a/h5/pages/staff/task/visitorReport.vue b/h5/pages/staff/task/visitorReport.vue
index 024544b..1308a5f 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(0, 16) }} 鑷�
- {{ info.endtime.slice(0, 16) }}</view
- >
+ <view class="label">棰勮鍏�/绂诲洯鏃堕棿</view>
+ <view class="value" v-if="info.starttime">{{ info.starttime.slice(5, 16) }} 鑷�
+ {{ info.endtime.slice(5, 16) }}</view>
</view>
<view class="emyty"></view>
@@ -58,6 +43,10 @@
<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.reason }}</view>
</view>
@@ -65,32 +54,19 @@
<!-- 娴佺▼ -->
<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
- class="status"
- src="@/static/staff/liucheng_success@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">
@@ -98,31 +74,18 @@
<view class="time">{{ item.checkDate }}</view>
</view>
<view class="name_wrap">
- <text
- >{{ item.memberName
- }}<text class="status" v-if="item.statusInfo"
- >({{ item.statusInfo }})</text
- ></text
- >
+ <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 v-if="item.approveType == 1" 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>
@@ -131,27 +94,20 @@
</view>
</view>
<view class="emyty"></view>
- <view 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>
@@ -175,6 +131,7 @@
id: '',
type: '',
+ infoStatus: '',
cateList: [
{ name: '璁垮鐢宠', id: 0 },
{ name: '璁垮鎶ュ', id: 1 },
@@ -185,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: {
@@ -203,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,
@@ -251,7 +225,7 @@
padding: 30rpx 0;
.flow_title {
- font-weight: 500;
+ font-weight: 600;
font-size: 32rpx;
color: #222222;
margin-bottom: 24rpx;
@@ -262,6 +236,7 @@
display: flex;
margin-bottom: 48rpx;
position: relative;
+
.separate {
position: absolute;
width: 4rpx;
@@ -271,6 +246,7 @@
transform: translate(-50%, 0);
top: 80rpx;
}
+
.avatar {
width: 80rpx;
height: 80rpx;
@@ -319,16 +295,20 @@
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;
@@ -347,26 +327,31 @@
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;
@@ -422,7 +407,7 @@
padding: 30rpx 0;
.name {
- font-weight: 500;
+ font-weight: 600;
font-size: 32rpx;
margin-bottom: 20rpx;
color: #222222;
@@ -432,6 +417,7 @@
font-size: 26rpx;
color: #ed4545;
}
+
.gray {
color: #999999;
}
@@ -447,6 +433,7 @@
background-color: #e9edff;
color: $uni-color-primary;
}
+
.status_img {
position: absolute;
right: 0rpx;
@@ -461,10 +448,10 @@
justify-content: space-between;
width: 100%;
left: 0;
- padding: 30rpx 10rpx 60rpx;
display: flex;
justify-content: space-between;
background: #ffffff;
+
.btn {
width: 336rpx;
height: 88rpx;
@@ -488,7 +475,7 @@
padding: 36rpx 30rpx 0;
.title {
- font-weight: 500;
+ font-weight: 600;
font-size: 32rpx;
color: #222222;
margin-bottom: 40rpx;
--
Gitblit v1.9.3