From 73af3ed9fbcc616cdecc739fc4307163c19c5764 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 07 六月 2024 14:35:42 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
h5/pages/staff/task/visitorReport.vue | 517 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 517 insertions(+), 0 deletions(-)
diff --git a/h5/pages/staff/task/visitorReport.vue b/h5/pages/staff/task/visitorReport.vue
new file mode 100644
index 0000000..b877e17
--- /dev/null
+++ b/h5/pages/staff/task/visitorReport.vue
@@ -0,0 +1,517 @@
+<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"
+ 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>
+ <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>
+ <view class="emyty"></view>
+
+ <view class="item">
+ <view class="label">鑱旂郴浜轰俊鎭�</view>
+ <view class="value">{{ info.name }} {{ info.phone }}</view>
+ </view>
+ <view class="item">
+ <view class="label">鍏ュ洯杞﹁締</view>
+ <view class="value">{{ info.carNos }}</view>
+ </view>
+ <view class="item">
+ <view class="label">闅忚溅浜烘暟</view>
+ <view class="value">{{ info.memberNum }}浜�</view>
+ </view>
+ <view class="item">
+ <view class="label">鏉ヨ浜嬬敱</view>
+ <view class="value">{{ info.reason }}</view>
+ </view>
+ </view>
+ <!-- 娴佺▼ -->
+ <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="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"
+ />
+ </view>
+ <view class="content">
+ <view class="head">
+ <view class="event">{{ item.title }}</view>
+ <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
+ >
+ </view>
+ <view v-if="item.checkInfo" class="remark">{{
+ item.checkInfo
+ }}</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>{{ child.memberName }}</view>
+ </view>
+ </view>
+ </view>
+ </view>
+ </view>
+ </view>
+ <view class="emyty"></view>
+ <view 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"
+ >
+ <view class="appr_modal">
+ <view class="title">{{ param.status == 2 ? "鍚屾剰" : "鎷掔粷" }}</view>
+ <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>
+ </view>
+ </view>
+ </u-popup>
+ </view>
+</template>
+
+<script>
+import {
+ getVisitedReDetail, // 璁垮棰勭害璇︽儏
+ carUseBookAppr
+} from '@/api'
+export default {
+ data() {
+ return {
+ showApprModal: false,
+ param: {},
+ info: {},
+
+ id: '',
+ type: '',
+ cateList: [
+ { name: '璁垮鐢宠', id: 0 },
+ { name: '璁垮鎶ュ', id: 1 },
+ { name: '鐢ㄨ溅鐢宠', id: 2 },
+ { name: '闅愭偅闅忔墜鎷�', id: 3 },
+ { name: '鐗╂祦杞︾敵璇�', id: 4 },
+ ],
+ statusMap: {
+ 0: '寰呭鎵�',
+ 1: '瀹℃壒涓�',
+ 2: '瀹℃壒閫氳繃',
+ 3: '瀹℃壒鏈�氳繃',
+ 4: '宸插彇娑�',
+ 5: '浠栦汉鎴栫',
+ 6: '浠栦汉鎷掔粷',
+ }
+ }
+ },
+ onLoad(op) {
+ this.id = op.id
+ this.type = op.objType
+ this.getDetail()
+ },
+ methods: {
+ getDetail() {
+ const { id } = this
+ getVisitedReDetail({ id }).then(res => {
+ this.info = res.data
+ })
+ },
+ onSubmit() {
+ const { param, info } = this
+ carUseBookAppr({
+ status: param.status,
+ objType: 2,
+ objId: this.id,
+ // driverId: param.driverId,
+ checkInfo: param.checkInfo
+ }).then(res => {
+ if (res.code === 200) {
+ this.showApprModal = false
+ setTimeout(() => {
+ uni.showToast({
+ title: '鎿嶄綔鎴愬姛',
+ icon: 'success'
+ })
+ })
+ uni.navigateBack()
+ }
+ })
+ },
+ handleSub(status) {
+ // this.param.flag =
+ this.param = {
+ status
+ }
+ this.showApprModal = true
+ this.showApprModal = true
+ },
+ },
+}
+</script>
+<style>
+page {
+ background-color: #f7f7f7;
+}
+</style>
+<style lang="scss">
+.main_app {
+ background-color: #fff;
+ padding-bottom: 0;
+
+ .flow_wrap {
+ padding: 30rpx 0;
+
+ .flow_title {
+ font-weight: 500;
+ 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;
+ }
+ }
+ }
+ }
+ }
+
+ .module_list {
+ .item {
+ padding: 30rpx 0;
+ border-bottom: 1rpx solid #e5e5e5;
+
+ .label {
+ font-size: 26rpx;
+ color: #666666;
+ margin-bottom: 20rpx;
+ }
+
+ .value {
+ font-size: 30rpx;
+ display: flex;
+ align-items: center;
+
+ .avatar {
+ margin-right: 20rpx;
+ width: 120rpx;
+ height: 120rpx;
+ border-radius: 8rpx;
+ border: 2rpx solid #e5e5e5;
+ }
+
+ .info {
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ justify-content: space-between;
+ font-size: 26rpx;
+ color: #666666;
+
+ .name {
+ font-size: 30rpx;
+ color: #333333;
+ }
+ }
+ }
+ }
+ }
+
+ .status_wrap {
+ position: relative;
+ padding: 30rpx 0;
+
+ .name {
+ font-weight: 500;
+ font-size: 32rpx;
+ margin-bottom: 20rpx;
+ color: #222222;
+ }
+
+ .desc {
+ font-size: 26rpx;
+ color: #ed4545;
+ }
+ .gray {
+ color: #999999;
+ }
+
+ .status {
+ position: absolute;
+ right: -30rpx;
+ top: 0;
+ height: 60rpx;
+ line-height: 60rpx;
+ padding: 0 32rpx;
+ border-radius: 0rpx 0rpx 0rpx 30rpx;
+ background-color: #e9edff;
+ color: $uni-color-primary;
+ }
+ .status_img {
+ position: absolute;
+ right: 0rpx;
+ top: 20rpx;
+ width: 120rpx;
+ }
+ }
+
+ .main_footer {
+ padding-bottom: 64rpx;
+ display: flex;
+ 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;
+ line-height: 88rpx;
+ background: #ffffff;
+ border-radius: 44rpx;
+ border: 1rpx solid #999999;
+ font-size: 32rpx;
+ text-align: center;
+ margin: 16rpx 0;
+ }
+
+ .agree {
+ background: $uni-color-primary;
+ color: #fff;
+ border: 1rpx solid $uni-color-primary;
+ }
+ }
+
+ .appr_modal {
+ padding: 36rpx 30rpx 0;
+
+ .title {
+ font-weight: 500;
+ font-size: 32rpx;
+ color: #222222;
+ margin-bottom: 40rpx;
+ text-align: center;
+ }
+
+ textarea {
+ box-sizing: border-box;
+ width: 690rpx;
+ background-color: #f7f7f7;
+ font-size: 28rpx;
+ color: #333333;
+ padding: 24rpx;
+ border-radius: 8rpx;
+ margin-bottom: 30rpx;
+ }
+ }
+
+ .emyty {
+ width: 750rpx;
+ height: 20rpx;
+ background-color: #f7f7f7;
+ margin: 0 -30rpx;
+ }
+}
+</style>
--
Gitblit v1.9.3