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 | 362 +++++++++++++++++++++++++++++---------------------
1 files changed, 209 insertions(+), 153 deletions(-)
diff --git a/h5/pages/staff/task/visitorReport.vue b/h5/pages/staff/task/visitorReport.vue
index 368508b..b9c62cd 100644
--- a/h5/pages/staff/task/visitorReport.vue
+++ b/h5/pages/staff/task/visitorReport.vue
@@ -1,15 +1,19 @@
<template>
<view class="main_app">
<view class="status_wrap">
- <view class="name">{{ info.createMemberName }}鎻愪氦鐨剓{ cateList[type].name }}</view>
- <view class="desc" :class="{
- gray: info.status == '2' || info.status == '5' || info.status == '4',
- }">{{ statusMap[info.status] }}</view>
- <view v-if="info.status == '0'" class="status">{{
- statusMap[info.status]
- }}</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"
+ <view class="name">{{ info.createMemberName }}鎻愪氦鐨勮瀹㈡姤澶�</view>
+ <view
+ class="desc"
+ :class="{
+ gray: info.businessStatus == '2' || info.businessStatus == '3' || info.businessStatus == '4',
+ }"
+ >{{ info.info }}</view
+ >
+ <view v-if="info.businessStatus == '0' || info.businessStatus == '1'" class="status">{{
+ statusMap[info.businessStatus]
+ }}</view>
+ <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>
<!-- -->
@@ -40,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>
@@ -59,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" />
@@ -95,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>
@@ -106,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() {
@@ -124,9 +142,13 @@
showApprModal: false,
param: {},
info: {},
+ userInfo: uni.getStorageSync('userInfo') || {
+ permissions: []
+ },
id: '',
type: '',
+ infoStatus: '',
cateList: [
{ name: '璁垮鐢宠', id: 0 },
{ name: '璁垮鎶ュ', id: 1 },
@@ -140,17 +162,27 @@
2: '宸查�氳繃',
3: '宸叉嫆缁�',
4: '宸插彇娑�',
- 5: '浠栦汉鎴栫',
- 6: '浠栦汉鎷掔粷',
- }
+ },
+ cancelShow: false
}
},
onLoad(op) {
+ uni.setStorageSync('ywinfo',{})
this.id = op.id
- this.type = op.objType
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 => {
@@ -218,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 {
@@ -449,7 +504,8 @@
background: #ffffff;
.btn {
- width: 336rpx;
+ // width: 336rpx;
+ flex: 1;
height: 88rpx;
line-height: 88rpx;
background: #ffffff;
--
Gitblit v1.9.3