From 4be1f58b940da6c5239e2fcf78f6b1180f66f555 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期六, 14 九月 2024 13:54:22 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
admin/src/views/task/visSubDetail.vue | 5
admin/src/views/system/dict.vue | 4
h5/pages/staffLogin/login.vue | 2
h5/pages/appointmentDetails/appointmentDetails.vue | 8
admin/src/views/business/reportRecord.vue | 13
h5/pages/staff/task/visitorReport.vue | 24
admin/src/views/business/visits.vue | 10
h5/pages/staff/index.vue | 6
admin/src/components/system/dict/OperaDictDataWindow.vue | 6
h5/pages/applicationRecord/applicationRecord.vue | 7
admin/src/components/business/OperaCarDriverWindow.vue | 2
h5/pages/staff/task/visitorApprove.vue | 4
h5/pages/staff/task/index.vue | 2
admin/src/components/system/dict/OperaDictWindow.vue | 4
h5/api/staff.js | 8
h5/pages/staff/vehicle/applePeo.vue | 95 +
h5/pages/staff/task/vDangetAppr.vue | 2710 ++++++++++++++++++++++++++----------------------------
17 files changed, 1,421 insertions(+), 1,489 deletions(-)
diff --git a/admin/src/components/business/OperaCarDriverWindow.vue b/admin/src/components/business/OperaCarDriverWindow.vue
index 72cd9a5..8e2963e 100644
--- a/admin/src/components/business/OperaCarDriverWindow.vue
+++ b/admin/src/components/business/OperaCarDriverWindow.vue
@@ -101,7 +101,7 @@
},
loadCars () {
carList({
- type: 1 //鍏姟杞�
+ type: 0 //鍏姟杞�
})
.then(res => {
this.carList = res
diff --git a/admin/src/components/system/dict/OperaDictDataWindow.vue b/admin/src/components/system/dict/OperaDictDataWindow.vue
index e4b331a..3681a95 100644
--- a/admin/src/components/system/dict/OperaDictDataWindow.vue
+++ b/admin/src/components/system/dict/OperaDictDataWindow.vue
@@ -7,17 +7,17 @@
>
<el-form :model="form" ref="form" :rules="rules">
<el-form-item label="鏁版嵁璇存槑" prop="label" required>
- <el-input v-model="form.remark" placeholder="璇疯緭鍏ユ暟鎹鏄�" v-trim maxlength="50"/>
+ <el-input v-model="form.remark" placeholder="璇疯緭鍏ユ暟鎹鏄�" v-trim/>
</el-form-item>
<el-form-item label="鏁版嵁鏍囩" prop="label" required>
- <el-input v-model="form.label" placeholder="璇疯緭鍏ユ暟鎹爣绛�" v-trim maxlength="50"/>
+ <el-input v-model="form.label" placeholder="璇疯緭鍏ユ暟鎹爣绛�" v-trim/>
</el-form-item>
<el-form-item label="鏄惁瀵屾枃鏈�" prop="istext" >
<el-switch v-model="form.istext" :active-value="true" :inactive-value="false"/>
<span class="status-text">{{form.istext | disabledText1}}</span>
</el-form-item>
<el-form-item label="鏁版嵁鍊�" prop="code" required>
- <el-input v-if="!form.istext" v-model="form.code" placeholder="璇疯緭鍏ユ暟鎹��" v-trim maxlength="50"/>
+ <el-input v-if="!form.istext" v-model="form.code" placeholder="璇疯緭鍏ユ暟鎹��" v-trim/>
<RichEditor v-else :richData="form.code" :styleEditor="styleEditor" @getWangedditor="getWangedditor" :readonly="false"/>
</el-form-item>
<el-form-item label="鐘舵��" prop="disabled" required class="form-item-status">
diff --git a/admin/src/components/system/dict/OperaDictWindow.vue b/admin/src/components/system/dict/OperaDictWindow.vue
index 59e02d4..2124d48 100644
--- a/admin/src/components/system/dict/OperaDictWindow.vue
+++ b/admin/src/components/system/dict/OperaDictWindow.vue
@@ -7,10 +7,10 @@
>
<el-form :model="form" ref="form" :rules="rules">
<el-form-item label="瀛楀吀缂栫爜" prop="code" required>
- <el-input v-model="form.code" placeholder="璇疯緭鍏ュ瓧鍏哥紪鐮�" v-trim maxlength="50"/>
+ <el-input v-model="form.code" placeholder="璇疯緭鍏ュ瓧鍏哥紪鐮�" v-trim />
</el-form-item>
<el-form-item label="瀛楀吀鍚嶇О" prop="name" required>
- <el-input v-model="form.name" placeholder="璇疯緭鍏ュ瓧鍏稿悕绉�" v-trim maxlength="50"/>
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ュ瓧鍏稿悕绉�" v-trim />
</el-form-item>
<el-form-item label="澶囨敞" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="璇疯緭鍏ュ娉�" :rows="3" v-trim maxlength="500"/>
diff --git a/admin/src/views/business/reportRecord.vue b/admin/src/views/business/reportRecord.vue
index 82a650f..0c1c06b 100644
--- a/admin/src/views/business/reportRecord.vue
+++ b/admin/src/views/business/reportRecord.vue
@@ -59,6 +59,7 @@
prop="status"
fixed="right"
label="鐘舵��"
+ align="center"
min-width="100"
>
<template slot-scope="{ row }">
@@ -66,21 +67,21 @@
>寰呮彁浜ゅ鎵�</span
>
<span v-if="row.status === 1" style="color: rgba(245, 154, 35, 0.996)"
- >瀹℃壒涓�</span
+ >澶勭悊涓�</span
>
<span v-if="row.status === 2" style="color: rgba(245, 154, 35, 0.996)"
- >瀹℃牳閫氳繃</span
+ >宸插悓鎰�</span
>
- <span style="color: gray" v-if="row.status === 3">瀹℃牳涓嶉�氳繃</span>
+ <span style="color: gray" v-if="row.status === 3">宸叉嫆缁�</span>
<span v-if="row.status === 4" style="color: gray">鍙栨秷</span>
- <span v-if="row.status === 5" style="color: green">棰勭害鎴愬姛</span>
- <span v-if="row.status === 6" style="color: gray">棰勭害澶辫触</span>
+ <span v-if="row.status === 5" style="color: green">涓嬪彂鎴愬姛</span>
+ <span v-if="row.status === 6" style="color: gray">涓嬪彂澶辫触</span>
<span v-if="row.status === 7" style="color: green">鎷滆涓�</span>
<span v-if="row.status === 8" style="color: red">宸茬绂�</span>
<span v-if="row.status === 9" style="color: gray">宸插け鏁�</span>
</template>
</el-table-column>
- <el-table-column label="鎿嶄綔" width="100" fixed="right">
+ <el-table-column label="鎿嶄綔" align="center" width="100" fixed="right">
<template slot-scope="{ row }">
<el-button
type="text"
diff --git a/admin/src/views/business/visits.vue b/admin/src/views/business/visits.vue
index 6078b76..6673066 100644
--- a/admin/src/views/business/visits.vue
+++ b/admin/src/views/business/visits.vue
@@ -78,12 +78,12 @@
<el-table-column prop="status" fixed="right" label="鐘舵��" min-width="100px">
<template slot-scope="{row}">
<span style="color: rgba(245, 154, 35, 0.996);" v-if="row.status === 0">寰呮彁浜ゅ鎵�</span>
- <span v-if="row.status === 1" style="color: rgba(245, 154, 35, 0.996);">瀹℃壒涓�</span>
- <span v-if="row.status === 2" style="color: rgba(245, 154, 35, 0.996);">瀹℃牳閫氳繃</span>
- <span style="color: gray;" v-if="row.status === 3" >瀹℃牳涓嶉�氳繃</span>
+ <span v-if="row.status === 1" style="color: rgba(245, 154, 35, 0.996);">澶勭悊涓�</span>
+ <span v-if="row.status === 2" style="color: rgba(245, 154, 35, 0.996);">宸插悓鎰�</span>
+ <span style="color: gray;" v-if="row.status === 3" >宸叉嫆缁�</span>
<span v-if="row.status === 4" style="color: gray">鍙栨秷</span>
- <span v-if="row.status === 5" style="color: green">棰勭害鎴愬姛</span>
- <span v-if="row.status === 6" style="color: gray">棰勭害澶辫触</span>
+ <span v-if="row.status === 5" style="color: green">涓嬪彂鎴愬姛</span>
+ <span v-if="row.status === 6" style="color: gray">涓嬪彂澶辫触</span>
<span v-if="row.status === 7" style="color: green">鎷滆涓�</span>
<span v-if="row.status === 8" style="color: red">宸茬绂�</span>
<span v-if="row.status === 9" style="color: gray">宸插け鏁�</span>
diff --git a/admin/src/views/system/dict.vue b/admin/src/views/system/dict.vue
index 5c67584..c1a6e61 100644
--- a/admin/src/views/system/dict.vue
+++ b/admin/src/views/system/dict.vue
@@ -3,10 +3,10 @@
<!-- 鎼滅储琛ㄥ崟 -->
<el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
<el-form-item label="瀛楀吀缂栫爜" prop="code">
- <el-input v-model="searchForm.code" v-trim placeholder="璇疯緭鍏ュ瓧鍏哥紪鐮�" @keypress.enter.native="search"/>
+ <el-input v-model="searchForm.code" placeholder="璇疯緭鍏ュ瓧鍏哥紪鐮�" @keypress.enter.native="search"/>
</el-form-item>
<el-form-item label="瀛楀吀鍚嶇О" prop="name">
- <el-input v-model="searchForm.name" v-trim placeholder="璇疯緭鍏ュ瓧鍏稿悕绉�" @keypress.enter.native="search"/>
+ <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ュ瓧鍏稿悕绉�" @keypress.enter.native="search"/>
</el-form-item>
<section>
<el-button type="primary" @click="search">鎼滅储</el-button>
diff --git a/admin/src/views/task/visSubDetail.vue b/admin/src/views/task/visSubDetail.vue
index 1ad582e..cb47f45 100644
--- a/admin/src/views/task/visSubDetail.vue
+++ b/admin/src/views/task/visSubDetail.vue
@@ -231,11 +231,6 @@
2: '宸插悓鎰�',
3: '宸叉嫆缁�',
4: '宸插彇娑�',
- 5: '棰勭害鎴愬姛',
- 6: '棰勭害澶辫触',
- 7: '鎷滆涓�',
- 8: '宸茬绂�',
- 9: '宸插け鏁�'
},
cateList: {
0: '璁垮鐢宠',
diff --git a/h5/api/staff.js b/h5/api/staff.js
index d32ffdc..dd2f307 100644
--- a/h5/api/staff.js
+++ b/h5/api/staff.js
@@ -116,6 +116,14 @@
data
})
}
+// 闅愭偅 娴佺▼鍒楄〃
+export const findListFlowDanger = (data) => {
+ return http({
+ url: 'visitsAdmin/cloudService/business/hiddenDangerLog/findList',
+ method: 'post',
+ data
+ })
+}
// 杞﹁締 鍒楄〃
export const getCarsList = (data) => {
return http({
diff --git a/h5/pages/applicationRecord/applicationRecord.vue b/h5/pages/applicationRecord/applicationRecord.vue
index 3cac6b9..6a17869 100644
--- a/h5/pages/applicationRecord/applicationRecord.vue
+++ b/h5/pages/applicationRecord/applicationRecord.vue
@@ -90,13 +90,16 @@
status: '',
statusMap: {
- 0: '寰呭鏍�',
- 1: '宸叉彁浜�',
+ 0: '寰呭鎵�',
+ 1: '瀹℃壒涓�',
2: '瀹℃牳閫氳繃',
3: '瀹℃牳椹冲洖',
4: '鍙栨秷',
5: '涓嬪彂鎴愬姛',
6: '涓嬪彂澶辫触',
+ 7: '鎷滆涓�',
+ 8: '宸茬绂�',
+ 9: '宸插け鏁�',
}
}
},
diff --git a/h5/pages/appointmentDetails/appointmentDetails.vue b/h5/pages/appointmentDetails/appointmentDetails.vue
index 4577ecd..2413308 100644
--- a/h5/pages/appointmentDetails/appointmentDetails.vue
+++ b/h5/pages/appointmentDetails/appointmentDetails.vue
@@ -14,10 +14,18 @@
<view class="h1">璁垮棰勭害寰呭鏍�</view>
<view class="h2">鎮ㄧ殑棰勭害鍗曞凡鎻愪氦瀹℃牳锛岃绛夊緟琚浜哄鏍�</view>
</view>
+ <view class="head_wrap head_padding" v-if="info.status == 1">
+ <view class="h1">璁垮棰勭害瀹℃壒涓�</view>
+ <view class="h2">鎮ㄧ殑鏉ヨ鐢宠姝e湪瀹℃牳</view>
+ </view>
<view class="head_wrap head_error" v-if="info.status == 3">
<view class="h1">璁垮棰勭害瀹℃牳涓嶉�氳繃</view>
<view class="h2">鎮ㄧ殑鏉ヨ鐢宠宸茶椹冲洖锛屽鏈夌枒闂紝鍙仈绯昏璁夸汉</view>
</view>
+ <view class="head_wrap head_error" v-if="info.status == 9">
+ <view class="h1">璁垮棰勭害宸插け鏁�</view>
+ <view class="h2">鎮ㄧ殑鏉ヨ鐢宠宸插け鏁堬紝璇烽噸鏂扮敵璇�</view>
+ </view>
<view class="box_list">
<view class="box_list_label">鎷滆淇℃伅</view>
<!-- <view class="box_list_tips" v-if="info.status == 6 || info.status == 3"
diff --git a/h5/pages/staff/index.vue b/h5/pages/staff/index.vue
index aeac657..bc60368 100644
--- a/h5/pages/staff/index.vue
+++ b/h5/pages/staff/index.vue
@@ -63,8 +63,8 @@
<image class="img" src="@/static/staff/ic_renwuzhongxin.png"></image>
<view class="h1">浠诲姟涓績</view>
<view class="h2">TASK CENTER</view>
- <view class="task_num" v-if="taskInfo.noticeWaitNum && taskInfo.noticeCopyNum">{{
- taskInfo.noticeWaitNum + taskInfo.noticeCopyNum
+ <view class="task_num">{{
+ taskInfo
}}</view>
</view>
<view class="img_wrap" @click="jump('/pages/staff/meetingCalendar')">
@@ -170,7 +170,7 @@
stagingHead({
isDetail: '1'
}).then(res => {
- this.taskInfo = res.data || ''
+ this.taskInfo = res.data.noticeWaitNum + res.data.noticeCopyNum
})
},
}
diff --git a/h5/pages/staff/task/index.vue b/h5/pages/staff/task/index.vue
index cad451d..8ee559c 100644
--- a/h5/pages/staff/task/index.vue
+++ b/h5/pages/staff/task/index.vue
@@ -70,7 +70,7 @@
>
<view class="box_list_item_head">
<view class="df_ac">
- <text v-if="item.readed == 0" class="readed"></text>
+ <text v-if="item.readed == 0 && search.queryType === 3" class="readed"></text>
<text class="tt">{{ item.title }}</text>
</view>
<view class="info" :class="{ loading: search.queryType === 0 }">{{ item.info }}</view>
diff --git a/h5/pages/staff/task/vDangetAppr.vue b/h5/pages/staff/task/vDangetAppr.vue
index 4341304..a389fb6 100644
--- a/h5/pages/staff/task/vDangetAppr.vue
+++ b/h5/pages/staff/task/vDangetAppr.vue
@@ -1,1408 +1,1302 @@
-<template>
- <view class="main_app">
- <view class="status_wrap">
- <view class="name">{{ info.categoryName }}</view>
- <view v-if="info.status == '0'" class="status">{{
- statusMap[info.status]
- }}</view>
- <image
- v-if="info.status == '1'"
- src="@/static/ic_yizhenggai.png"
- mode="widthFix"
- class="status_img"
- ></image>
- <image
- v-if="info.status == '2'"
- src="@/static/ic_yituihui-1.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>{{ info.content }}</view>
- <view class="file_list">
- <view
- class="img_wrap"
- v-for="item in info.submitFileList"
- :key="item.id"
- >
- <image
- v-if="item.type == 0"
- :src="item.fileurlFull"
- @click="priviewImage(item.fileurlFull)"
- mode="widthFix"
- class="img"
- />
- <video
- v-if="item.type == 1"
- :src="item.fileurlFull"
- class="video"
- controls
- />
- </view>
- </view>
- <view class="text_wrap">
- <view class="line">
- <text class="label">闅愭偅鍖哄煙锛�</text>
- <text>{{ info.areaName }}</text>
- </view>
- <view class="line">
- <text class="label">鎻愭姤浜猴細</text>
- <text>{{ info.memberName }} {{ info.memberPhone }}</text>
- </view>
- </view>
- </view>
- <!-- -->
- <view class="emyty"></view>
- <view v-if="info.status == 1" class="module_list">
- <view class="item">
- <view class="label">澶勭悊缁撴灉</view>
- <view class="value primaryColor">{{ statusMap[info.status] }}</view>
- </view>
- <view class="item">
- <view class="label">鏁存敼鍓�</view>
- <view class="value">
- <view
- class="adduser_list_item_ipt1_upload"
- v-for="(item, i) in info.dealBeforeFileList"
- :key="i"
- ><image
- v-if="item.type == 0"
- :src="item.fileurlFull"
- mode="widthFix"
- ></image
- ><video v-if="item.type == 1" :src="item.fileurlFull"></video
- ></view>
- </view>
- </view>
- <view class="item">
- <view class="label">鏁存敼鍚�</view>
- <view class="value">
- <view
- class="adduser_list_item_ipt1_upload"
- v-for="(item, i) in info.dealAfterFileList"
- :key="i"
- ><image
- v-if="item.type == 0"
- :src="item.fileurlFull"
- mode="widthFix"
- ></image
- ><video v-if="item.type == 1" :src="item.fileurlFull"></video
- ></view>
- </view>
- </view>
- <view class="item">
- <view class="label">鏁存敼璇存槑</view>
- <view class="value">{{ info.checkInfo }}</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
- 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"
- />
- </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>
- <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
- v-if="
- info.approveDateVO != null &&
- info.approveDateVO.canBeApproved != null &&
- info.approveDateVO.canBeApproved == 1 &&
- info.status == 0
- "
- class="main_footer"
- >
- <view class="btn" @click="handleBack">閫�鍥�</view>
- <view class="btn transfer" @click="handleTransfer">杞氦</view>
- <view class="btn handle" @click="handleOpen">澶勭悊</view>
- </view>
-
- <!-- 閫�鍥� -->
- <u-popup
- :show="isShowBack"
- :round="10"
- :safeAreaInsetBottom="true"
- mode="bottom"
- @close="isShowBack = false"
- >
- <view class="appr_modal">
- <view class="title">闅愭偅閫�鍥�</view>
- <view class="df_sb">
- <view>閫�鍥炴椂闂�</view>
- <view
- class="df_ac"
- @click="isShowBackDate = true"
- v-if="backParam.dealTime"
- >{{ backParam.dealTime }}<u-icon name="arrow-right"></u-icon
- ></view>
- <view @click="isShowBackDate = true" v-else class="placeholder9 df_ac"
- >璇烽�夋嫨<u-icon name="arrow-right"></u-icon
- ></view>
- </view>
-
- <view class="label">鍥剧墖/瑙嗛</view>
- <view class="upload_wrap">
- <view class="adduser_list_item_ipt1_upload" @click="showUpload = true"
- ><u-icon name="plus" color="rgb(153, 153, 153)" size="28"></u-icon>
- <view class="mt6">鍥剧墖/瑙嗛</view>
- </view>
- <view
- class="adduser_list_item_ipt1_upload"
- v-for="(item, i) in submitFileList"
- :key="i"
- >
- <u-icon
- class="close"
- size="20"
- name="close-circle-fill"
- color="red"
- @click="fileDel('submitFileList', i)"
- ></u-icon>
- <image
- v-if="item.type == 0"
- :src="item.fileurlFull"
- mode="widthFix"
- ></image
- ><video v-if="item.type == 1" :src="item.fileurlFull"></video
- ></view>
- </view>
- <view class="label">閫�鍥炶鏄�</view>
- <textarea
- v-model="backParam.checkInfo"
- placeholder="璇疯缁嗘弿杩扮幇鍦烘儏鍐碉紝涓嶅皯浜�10涓瓧"
- placeholder-class="placeholder9"
- />
- <view class="back_footer">
- <view class="btn" @click="isShowBack = false">鍙栨秷</view>
- <view class="btn agree" @click="onSubBack">鎻愪氦</view>
- </view>
- </view>
- </u-popup>
- <!-- 澶勭悊 -->
- <u-popup
- :show="isShowHandle"
- :round="10"
- :safeAreaInsetBottom="true"
- mode="bottom"
- @close="isShowHandle = false"
- >
- <view class="appr_modal">
- <view class="title">闅愭偅鏁存敼</view>
- <view class="df_sb">
- <view>鏁存敼鏃堕棿</view>
- <view
- class="df_ac"
- @click="isShowHandleDate = true"
- v-if="handleParam.dealTime"
- >{{ handleParam.dealTime }}
- <u-icon name="arrow-right"></u-icon>
- </view>
- <view
- @click="isShowHandleDate = true"
- v-else
- class="placeholder9 df_ac"
- >璇烽�夋嫨<u-icon name="arrow-right"></u-icon
- ></view>
- </view>
-
- <view class="label"><text>*</text>鏁存敼鍓�</view>
- <view class="upload_wrap">
- <view
- class="adduser_list_item_ipt1_upload"
- @click="showUploadBe = true"
- ><u-icon name="plus" color="rgb(153, 153, 153)" size="28"></u-icon>
- <view class="mt6">鍥剧墖/瑙嗛</view>
- </view>
- <view
- class="adduser_list_item_ipt1_upload"
- v-for="(item, i) in dealBeforeFileList"
- :key="i"
- >
- <u-icon
- class="close"
- size="20"
- name="close-circle-fill"
- color="red"
- @click="fileDel('dealBeforeFileList', i)"
- ></u-icon>
- <image
- v-if="item.type == 0"
- :src="item.fileurlFull"
- mode="widthFix"
- ></image
- ><video v-if="item.type == 1" :src="item.fileurlFull"></video
- ></view>
- </view>
- <view class="label"><text>*</text>鏁存敼鍚�</view>
- <view class="upload_wrap">
- <view
- class="adduser_list_item_ipt1_upload"
- @click="showUploadAf = true"
- ><u-icon name="plus" color="rgb(153, 153, 153)" size="28"></u-icon>
- <view class="mt6">鍥剧墖/瑙嗛</view></view
- >
- <view
- class="adduser_list_item_ipt1_upload"
- v-for="(item, i) in dealAfterFileList"
- :key="i"
- >
- <u-icon
- class="close"
- size="20"
- name="close-circle-fill"
- color="red"
- @click="fileDel('dealAfterFileList', i)"
- ></u-icon>
- <image
- v-if="item.type == 0"
- :src="item.fileurlFull"
- mode="widthFix"
- ></image
- ><video v-if="item.type == 1" :src="item.fileurlFull"></video
- ></view>
- </view>
- <view class="label">鏁存敼璇存槑</view>
- <textarea
- v-model="handleParam.checkInfo"
- placeholder="璇疯缁嗘弿杩扮幇鍦烘儏鍐碉紝涓嶅皯浜�10涓瓧"
- placeholder-class="placeholder9"
- />
- <view class="back_footer">
- <view class="btn" @click="isShowHandle = false">鍙栨秷</view>
- <view class="btn agree" @click="onSubmit">鎻愪氦</view>
- </view>
- </view>
- </u-popup>
- <!-- 涓婁紶 -->
- <u-popup :show="showUpload" @close="showUpload = false" closeOnClickOverlay>
- <view class="sel_upload_wrap">
- <view class="btn" @click="uploadImage">閫夋嫨鍥剧墖</view>
- <view class="btn" @click="uploadVideo">閫夋嫨瑙嗛</view>
- </view>
- </u-popup>
- <u-popup
- :show="showUploadBe"
- @close="showUploadBe = false"
- closeOnClickOverlay
- >
- <view class="sel_upload_wrap">
- <view class="btn" @click="uploadBeImage">閫夋嫨鍥剧墖</view>
- <view class="btn" @click="uploadBeVideo">閫夋嫨瑙嗛</view>
- </view>
- </u-popup>
- <u-popup
- :show="showUploadAf"
- @close="showUploadAf = false"
- closeOnClickOverlay
- >
- <view class="sel_upload_wrap">
- <view class="btn" @click="uploadAfImage">閫夋嫨鍥剧墖</view>
- <view class="btn" @click="uploadAfVideo">閫夋嫨瑙嗛</view>
- </view>
- </u-popup>
- <!-- 杞氦 -->
- <u-popup
- :show="isShowTransfer"
- :round="10"
- safeAreaInsetBottom
- mode="bottom"
- @close="isShowTransfer = false"
- >
- <view class="appr_modal">
- <view class="title">閫夋嫨鍛樺伐</view>
- <view class="search_inp df_ac">
- <image
- class="mr12 search"
- src="@/static/ic_search@2x.png"
- mode="widthFix"
- ></image>
- <input
- v-model="transferModel.name"
- @blur="getMemList()"
- type="text"
- placeholder="鎼滅储閮ㄩ棬/浜哄憳"
- placeholder-style="color: #999999;"
- />
- </view>
- <view class="member_list">
- <view class="mt24 placeholder6">鍏眥{ memberList.length }}鏉℃暟鎹�</view>
- <view v-for="item in memberList" :key="item.id" class="line">
- <image
- :src="
- item.faceImgFull
- ? item.faceImgFull
- : require('@/static/meeting/common/default_user@2x.png')
- "
- class="avatar"
- mode=""
- ></image>
- <view class="content">
- <view class="info">
- <text class="name">{{ item.name }}</text>
- <!-- <text class="tag">tag</text> -->
- </view>
- <view class="depart">{{ item.companyName }}</view>
- </view>
- <image
- @click="changeMem(item)"
- v-if="transferParam.id == item.id"
- src="@/static/meeting/icon/ic_choose_sel@2x.png"
- mode="widthFix"
- class="checked"
- ></image>
- <image
- @click="changeMem(item)"
- v-else
- src="@/static/meeting/icon/ic_choose@2x.png"
- mode="widthFix"
- class="checked"
- ></image>
- <text></text>
- </view>
- <view class="empty"></view>
- </view>
- <view class="Transfer_footer">
- <view class="btn" @click="isShowTransfer = fales">鍙栨秷</view>
- <view class="btn active" @click="enterTransfer">纭杞氦</view>
- </view>
- </view>
- </u-popup>
- <!-- 閫�鍥炴椂闂� -->
- <u-datetime-picker
- :show="isShowBackDate"
- @confirm="confirmBackDate"
- @cancel="isShowBackDate = false"
- mode="datetime"
- ></u-datetime-picker>
-
- <u-datetime-picker
- :minDate="new Date().getTime()"
- :show="isShowHandleDate"
- @confirm="confirmHandleDate"
- @cancel="isShowHandleDate = false"
- mode="datetime"
- ></u-datetime-picker>
- </view>
-</template>
-
-<script>
-import {
- hiddenDangerDetail,
- uploadUrl,
- findHiddenAreaMemberList,
- dealHiddenDanger,
- transferHiddenDanger
-} from '@/api'
-import dayjs from 'dayjs'
-export default {
- data() {
- return {
- isShowBack: 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: '浠栦汉鎷掔粷',
- },
-
-
- showUpload: false,
- isShowBackDate: false,
- submitFileList: [],
- backParam: {},
-
- isShowHandle: false,
- handleParam: {},
- isShowHandleDate: false,
- showUploadBe: false,
- showUploadAf: false,
- dealBeforeFileList: [],
- dealAfterFileList: [],
-
- isShowTransfer: false,
- transferParam: {},
- transferModel: {},
- pagination: {
- page: 1,
- capacity: 50
- },
- memberList: []
- }
- },
- onLoad(op) {
- this.id = op.id
- this.type = op.objType
- this.getDetail()
- },
- methods: {
- priviewImage(url) {
- uni.previewImage({
- urls: [url]
- })
- },
- handleOpen() {
- this.isShowHandle = true
- console.log('info', this.info)
- this.dealBeforeFileList = [...this.info.submitFileList]
- this.$set(this.handleParam, 'dealTime', dayjs().format('YYYY-MM-DD HH:mm:ss'))
- },
- handleBack() {
- this.isShowBack = true
- this.submitFileList = [...this.info.submitFileList]
- this.$set(this.backParam, 'dealTime', dayjs().format('YYYY-MM-DD HH:mm:ss'))
- },
- getDetail() {
- const { id } = this
- hiddenDangerDetail(id).then(res => {
- this.info = res.data
- })
- },
- onSubmit() {
- const { dealBeforeFileList, dealAfterFileList, handleParam } = this
- if (dealBeforeFileList.length === 0) return uni.showToast({
- title: '璇蜂笂浼犳暣鏀瑰墠鍥剧墖鎴栬棰�',
- icon: 'none'
- })
- if (dealAfterFileList.length === 0) return uni.showToast({
- title: '璇蜂笂浼犳暣鏀瑰悗鍥剧墖鎴栬棰�',
- icon: 'none'
- })
- dealHiddenDanger({
- ...handleParam,
- dealBeforeFileList: dealBeforeFileList,
- dealAfterFileList: dealAfterFileList,
- status: 1,
- id: this.id
- }).then(res => {
- if (res.code === 200) {
- this.isShowHandle = false
- setTimeout(() => {
- uni.showToast({
- title: '鎿嶄綔鎴愬姛',
- icon: 'success'
- })
- })
- uni.navigateBack()
- }
- })
- },
- enterTransfer() {
- const { transferParam, id } = this
- if (!transferParam.id) return uni.showToast({
- title: '璇烽�夋嫨浜哄憳',
- icon: 'none'
- })
- transferHiddenDanger({
- checkUserId: transferParam.id,
- id
- }).then(res => {
- if (res.code === 200) {
- this.isShowTransfer = false
- setTimeout(() => {
- uni.showToast({
- title: '鎿嶄綔鎴愬姛',
- icon: 'success'
- })
- })
- uni.navigateBack()
- }
- })
- },
- changeMem(e) {
- this.transferParam = e
- },
- handleTransfer() {
- this.isShowTransfer = true
- this.getMemList()
- },
- getMemList() {
- findHiddenAreaMemberList({
- model: {
- ...this.transferModel,
- id: this.info.areaId
- },
- ...this.pagination,
- }).then(res => {
- this.memberList = res.data || []
- })
- },
- confirmBackDate(e) {
- this.$set(this.backParam, 'dealTime', dayjs(e.value).format('YYYY-MM-DD HH:mm:ss'))
- this.isShowBackDate = false
- },
- confirmHandleDate(e) {
- this.$set(this.handleParam, 'dealTime', dayjs(e.value).format('YYYY-MM-DD HH:mm:ss'))
- this.isShowHandleDate = false
- },
- onSubBack() {
- const { submitFileList, backParam } = this
- dealHiddenDanger({
- ...backParam,
- dealBeforeFileList: submitFileList,
- status: 2,
- id: this.id
- }).then(res => {
- if (res.code === 200) {
- this.isShowBack = false
- setTimeout(() => {
- uni.showToast({
- title: '鎿嶄綔鎴愬姛',
- icon: 'success'
- })
- })
- uni.navigateBack()
- }
- })
- },
- fileDel(str, i) {
- this[str].splice(i, 1)
- },
- uploadBeImage() {
- this.showUploadBe = false
- let token = uni.getStorageSync('token') || ''
- uni.chooseImage({
- count: 4,
- success: (chooseImageRes) => {
- uni.showLoading({ title: '涓婁紶涓�', mask: true })
- const tempFilePaths = chooseImageRes.tempFilePaths
- let imgs = tempFilePaths.map((value, index) => {
- return {
- name: 'file',
- uri: value
- }
- })
- uni.uploadFile({
- url: `${uploadUrl}`,
- files: imgs,
- name: 'file',
- formData: {
- folder: 'HIDDEN_DANGER_FILE'
- },
- header: {
- Dm_user_token: token
- },
- success: (uploadFileRes) => {
- let res = JSON.parse(uploadFileRes.data)
- let obj = {
- type: '0'
- }
- if (res.data && res.data.length > 0) {
- res.data.forEach(i => {
- i.type = 0
- i.fileurl = i.imgaddr
- i.fileurlFull = i.url
- this.dealBeforeFileList.push(i)
- })
- }
- },
- fail(err) {
- console.log('err', err)
- },
- complete() {
- uni.hideLoading()
- // if (i === chooseImageRes.tempFilePaths.length - 1) {
- // uni.hideLoading()
- // }
- }
- })
- }
- })
- },
- uploadBeVideo() {
- this.showUploadBe = false
- let token = uni.getStorageSync('token') || ''
- uni.chooseVideo({
- success: (chooseImageRes) => {
- uni.showLoading({ title: '涓婁紶涓�', mask: true })
- uni.uploadFile({
- url: `${uploadUrl}`,
- filePath: chooseImageRes.tempFilePath,
- header: {
- Dm_user_token: token
- },
- name: 'file',
- formData: {
- folder: 'HIDDEN_DANGER_FILE'
- },
- success: (uploadFileRes) => {
- let res = JSON.parse(uploadFileRes.data)
- if (res.data && res.data.length > 0) {
- res.data.forEach(i => {
- i.type = 1
- i.fileurl = i.imgaddr
- i.fileurlFull = i.url
- this.dealBeforeFileList.push(i)
- })
- }
- },
- complete() {
- uni.hideLoading()
- }
- })
- }
- })
- },
- uploadAfImage() {
- this.showUploadAf = false
- let token = uni.getStorageSync('token') || ''
- uni.chooseImage({
- count: 4,
- success: (chooseImageRes) => {
- uni.showLoading({ title: '涓婁紶涓�', mask: true })
- const tempFilePaths = chooseImageRes.tempFilePaths
- let imgs = tempFilePaths.map((value, index) => {
- return {
- name: 'file',
- uri: value
- }
- })
- uni.uploadFile({
- url: `${uploadUrl}`,
- files: imgs,
- name: 'file',
- formData: {
- folder: 'HIDDEN_DANGER_FILE'
- },
- header: {
- Dm_user_token: token
- },
- success: (uploadFileRes) => {
- let res = JSON.parse(uploadFileRes.data)
- if (res.data && res.data.length > 0) {
- res.data.forEach(i => {
- i.type = 0
- i.fileurl = i.imgaddr
- i.fileurlFull = i.url
- this.dealAfterFileList.push(i)
- })
- }
- },
- fail(err) {
- console.log('err', err)
- },
- complete() {
- uni.hideLoading()
- // if (i === chooseImageRes.tempFilePaths.length - 1) {
- // uni.hideLoading()
- // }
- }
- })
- }
- })
- },
- uploadAfVideo() {
- this.showUploadAf = false
- let token = uni.getStorageSync('token') || ''
- uni.chooseVideo({
- success: (chooseImageRes) => {
- uni.showLoading({ title: '涓婁紶涓�', mask: true })
- uni.uploadFile({
- url: `${uploadUrl}`,
- filePath: chooseImageRes.tempFilePath,
- header: {
- Dm_user_token: token
- },
- name: 'file',
- formData: {
- folder: 'HIDDEN_DANGER_FILE'
- },
- success: (uploadFileRes) => {
- let res = JSON.parse(uploadFileRes.data)
- if (res.data && res.data.length > 0) {
- res.data.forEach(i => {
- i.type = 1
- i.fileurl = i.imgaddr
- i.fileurlFull = i.url
- this.dealAfterFileList.push(i)
- })
- }
- },
- complete() {
- uni.hideLoading()
- }
- })
- }
- })
- },
- uploadImage() {
- this.showUpload = false
- let token = uni.getStorageSync('token') || ''
- uni.chooseImage({
- count: 4,
- success: (chooseImageRes) => {
- uni.showLoading({ title: '涓婁紶涓�', mask: true })
- const tempFilePaths = chooseImageRes.tempFilePaths
- let imgs = tempFilePaths.map((value, index) => {
- return {
- name: 'file',
- uri: value
- }
- })
- uni.uploadFile({
- url: `${uploadUrl}`,
- files: imgs,
- name: 'file',
- formData: {
- folder: 'HIDDEN_DANGER_FILE'
- },
- header: {
- Dm_user_token: token
- },
- success: (uploadFileRes) => {
- let res = JSON.parse(uploadFileRes.data)
- if (res.data && res.data.length > 0) {
- res.data.forEach(i => {
- i.type = 0
- i.fileurl = i.imgaddr
- i.fileurlFull = i.url
- this.submitFileList.push(i)
- })
- }
- },
- fail(err) {
- console.log('err', err)
- },
- complete() {
- uni.hideLoading()
- // if (i === chooseImageRes.tempFilePaths.length - 1) {
- // uni.hideLoading()
- // }
- }
- })
- }
- })
- },
- uploadVideo() {
- this.showUpload = false
- let token = uni.getStorageSync('token') || ''
- uni.chooseVideo({
- success: (chooseImageRes) => {
- uni.showLoading({ title: '涓婁紶涓�', mask: true })
- uni.uploadFile({
- url: `${uploadUrl}`,
- filePath: chooseImageRes.tempFilePath,
- header: {
- Dm_user_token: token
- },
- name: 'file',
- formData: {
- folder: 'HIDDEN_DANGER_FILE'
- },
- success: (uploadFileRes) => {
- let res = JSON.parse(uploadFileRes.data)
- if (res.data && res.data.length > 0) {
- res.data.forEach(i => {
- i.type = 1
- i.fileurl = i.imgaddr
- i.fileurlFull = i.url
- this.submitFileList.push(i)
- })
- }
- },
- complete() {
- uni.hideLoading()
- }
- })
- }
- })
- },
- },
-}
-</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: 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;
- }
- }
- }
- }
- }
- .adduser_list_item_ipt1_upload {
- width: 120rpx;
- height: 120rpx;
- margin-right: 24rpx;
- border: 2rpx solid #e5e5e5;
- background: #f7f7f7;
- color: #666666;
- font-size: 22rpx;
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- position: relative;
- .close {
- position: absolute;
- right: -20rpx;
- top: -20rpx;
- z-index: 9999;
- }
- image {
- width: 100%;
- height: 100%;
- }
- video {
- width: 100%;
- max-height: 120rpx;
- }
- }
-
- .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: 600;
- font-size: 32rpx;
- margin-bottom: 20rpx;
- color: $uni-color-primary;
- }
-
- .desc {
- font-size: 26rpx;
- color: #ed4545;
- }
- .gray {
- color: #999999;
- }
- .file_list {
- display: flex;
- margin-bottom: 20rpx;
- overflow-x: auto;
- .img_wrap {
- margin-top: 24rpx;
- min-width: 160rpx;
- height: 160rpx;
- border: 2rpx solid #e5e5e5;
- background: #f7f7f7;
- color: #666666;
- font-size: 22rpx;
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- position: relative;
- margin-right: 16rpx;
- flex-shrink: 0;
- }
- .img {
- width: 100%;
- max-height: 100%;
- }
- .video {
- height: 160rpx;
- }
- }
- .text_wrap {
- padding: 20rpx;
- background-color: #f8f7f7;
- border-radius: 8rpx;
- margin-top: 20rpx;
- .line {
- margin-bottom: 12rpx;
- display: flex;
- font-size: 24rpx;
- .label {
- color: #999999;
- width: 140rpx;
- }
- }
- }
-
- .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 {
- position: fixed;
- bottom: 0;
- width: 100%;
- left: 0;
- padding: 30rpx 10rpx 60rpx;
- display: flex;
- justify-content: space-between;
- background: #ffffff;
- .btn {
- flex: 1;
- height: 88rpx;
- line-height: 88rpx;
- background: #ffffff;
- border-radius: 44rpx;
- border: 1rpx solid #999999;
- font-size: 32rpx;
- text-align: center;
- margin: 16rpx 8rpx;
- }
- .transfer {
- color: $uni-color-primary;
- border: 1rpx solid $uni-color-primary;
- }
-
- .handle {
- flex: 2;
- background: $uni-color-primary;
- color: #fff;
- border: 1rpx solid $uni-color-primary;
- }
- }
-
- .appr_modal {
- padding: 36rpx 30rpx 0;
- .title {
- font-weight: 600;
- font-size: 32rpx;
- color: #222222;
- margin-bottom: 40rpx;
- text-align: center;
- }
- .label {
- text {
- color: #ed4545;
- }
- }
- .df_sb {
- display: flex;
- justify-content: space-between;
- align-items: center;
- height: 90rpx;
- border-bottom: 1rpx solid #e4e4e4;
- margin-bottom: 30rpx;
- }
- .back_footer {
- display: flex;
- .btn {
- flex: 1;
- height: 88rpx;
- line-height: 88rpx;
- background: #ffffff;
- border-radius: 44rpx;
- border: 1rpx solid #999999;
- font-size: 32rpx;
- text-align: center;
- margin: 16rpx 8rpx;
- }
- .agree {
- background: $uni-color-primary;
- color: #fff;
- border: 1rpx solid $uni-color-primary;
- }
- }
- textarea {
- box-sizing: border-box;
- width: 690rpx;
- min-height: 200rpx;
- background-color: #f7f7f7;
- font-size: 28rpx;
- color: #333333;
- padding: 24rpx;
- border-radius: 8rpx;
- margin-bottom: 30rpx;
- }
- .upload_wrap {
- display: flex;
- flex-wrap: wrap;
- margin-bottom: 30rpx;
- }
- .adduser_list_item_ipt1_upload {
- margin-top: 24rpx;
- width: 120rpx;
- height: 120rpx;
- margin-right: 24rpx;
- border: 2rpx solid #e5e5e5;
- background: #f7f7f7;
- color: #666666;
- font-size: 22rpx;
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- position: relative;
- .close {
- position: absolute;
- right: -20rpx;
- top: -20rpx;
- z-index: 9999;
- }
- image {
- width: 100%;
- height: 100%;
- }
- video {
- width: 100%;
- max-height: 120rpx;
- }
- }
- }
-
- .emyty {
- width: 750rpx;
- height: 20rpx;
- background-color: #f7f7f7;
- margin: 0 -30rpx;
- }
-}
-.sel_upload_wrap {
- width: 100%;
- border-top: 1px solid #333333;
- box-shadow: 0 1 1 #333333;
- .btn {
- height: 90rpx;
- line-height: 90rpx;
- text-align: center;
- }
-}
-.member_list {
- height: 920rpx;
- overflow: auto;
- .line {
- display: flex;
- align-items: center;
- border-bottom: 1rpx solid #e5e5e5;
- padding: 30rpx 0;
- .avatar {
- width: 64rpx;
- height: 64rpx;
- border-radius: 50%;
- overflow: hidden;
- margin-right: 20rpx;
- }
- .content {
- flex: 1;
- .depart {
- font-size: 24rpx;
- color: #666666;
- }
- .info {
- display: flex;
- margin-bottom: 16rpx;
- .name {
- font-size: 30rpx;
- }
- .tag {
- font-size: 24rpx;
- border-radius: 4rpx;
- border: 1rpx solid #f62710;
- color: #f62710;
- padding: 0rpx 6rpx;
- margin-left: 8rpx;
- }
- }
- }
- .checked {
- width: 48rpx;
- }
- }
- .empty {
- width: 100%;
- height: 280rpx;
- }
-}
-.search_inp {
- height: 72rpx;
- background: #f7f7f7;
- border-radius: 4rpx;
- padding-left: 16rpx;
- .search {
- width: 28rpx;
- }
- input {
- flex: 1;
- font-size: 28rpx;
- color: #333333;
- }
-}
-.Transfer_footer {
- display: flex;
- .btn {
- flex: 1;
- height: 88rpx;
- line-height: 88rpx;
- background: #ffffff;
- border-radius: 44rpx;
- border: 1rpx solid #999999;
- font-size: 32rpx;
- text-align: center;
- margin: 16rpx 8rpx;
- }
- .active {
- background: $uni-color-primary;
- color: #fff;
- border: 1rpx solid $uni-color-primary;
- }
-}
-</style>
+<template>
+ <view class="main_app">
+ <view class="status_wrap">
+ <view class="name">{{ info.categoryName }}</view>
+ <view v-if="info.status == '0'" class="status">{{ statusMap[info.status] }}</view>
+ <image v-if="info.status == '1'" src="@/static/ic_yizhenggai.png" mode="widthFix" class="status_img"></image>
+ <image v-if="info.status == '2'" src="@/static/ic_yituihui-1.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>{{ info.content }}</view>
+ <view class="file_list">
+ <view class="img_wrap" v-for="item in info.submitFileList" :key="item.id">
+ <image v-if="item.type == 0" :src="item.fileurlFull" @click="priviewImage(item.fileurlFull)" mode="widthFix"
+ class="img" />
+ <video v-if="item.type == 1" :src="item.fileurlFull" class="video" controls />
+ </view>
+ </view>
+ <view class="text_wrap">
+ <view class="line">
+ <text class="label">闅愭偅鍖哄煙锛�</text>
+ <text>{{ info.areaName }}</text>
+ </view>
+ <view class="line">
+ <text class="label">鎻愭姤浜猴細</text>
+ <text>{{ info.memberName }} {{ info.memberPhone }}</text>
+ </view>
+ </view>
+ </view>
+ <!-- -->
+ <view class="emyty"></view>
+ <view v-if="info.status == 1" class="module_list">
+ <view class="item">
+ <view class="label">澶勭悊缁撴灉</view>
+ <view class="value primaryColor">{{ statusMap[info.status] }}</view>
+ </view>
+ <view class="item">
+ <view class="label">鏁存敼鍓�</view>
+ <view class="value">
+ <view class="adduser_list_item_ipt1_upload" v-for="(item, i) in info.dealBeforeFileList" :key="i">
+ <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
+ <video v-if="item.type == 1" :src="item.fileurlFull"></video>
+ </view>
+ </view>
+ </view>
+ <view class="item">
+ <view class="label">鏁存敼鍚�</view>
+ <view class="value">
+ <view class="adduser_list_item_ipt1_upload" v-for="(item, i) in info.dealAfterFileList" :key="i">
+ <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
+ <video v-if="item.type == 1" :src="item.fileurlFull"></video>
+ </view>
+ </view>
+ </view>
+ <view class="item">
+ <view class="label">鏁存敼璇存槑</view>
+ <view class="value">{{ info.checkInfo }}</view>
+ </view>
+ </view>
+ <!-- 娴佺▼ -->
+ <view class="flow_wrap">
+ <view class="flow_title">澶勭悊娴佺▼</view>
+ <view class="list">
+ <view class="item" v-for="(item, index) in flowList" :key="item.id">
+ <view class="separate"></view>
+ <view class="avatar">
+ <image src="@/static/staff/liucheng_success@2x.png" class="status"
+ v-if="info.status == 1 || index < flowList.length - 1" />
+ <image src="@/static/staff/liucheng_fail@2x.png" class="status"
+ v-if="info.status == 2 && index == flowList.length - 1" />
+ <image v-if="item.avatar != null && item.avatar != ''" :src="item.avatar" class="img" alt="" />
+ <!-- <image v-else src="@/static/default_avatar.png" class="img" mode=""></image> -->
+ <span v-if="item.avatar == null || item.avatar == ''"
+ class="img_name">{{ item.createUserName && item.createUserName.slice(0, 1) }}</span>
+ </view>
+ <view class="content">
+ <view class="head">
+ <view class="event">{{ item.title }}</view>
+ <view class="time">{{ item.createDate }}</view>
+ </view>
+ <view class="line">
+ <view class="company">
+ {{ item.createUserName }} {{ item.companyName }}
+ <view style="display: inline" v-if="index == flowList.length - 1">
+ 锛�
+ <span v-if="info.status == 1">宸插悓鎰�</span>
+ <span class="status-green" v-if="info.status == 0">寰呭鐞�</span>
+ <span class="status-red" v-if="info.status == 2">宸查��鍥�</span>
+ 锛�
+ </view>
+ </view>
+ </view>
+ </view>
+
+ </view>
+ </view>
+ </view>
+ <view class="emyty"></view>
+ <view class="main_footer">
+ <view v-if="info.status==0&& info.checkUserId == userInfo.memberId" class="btn" @click="handleBack">閫�鍥�</view>
+ <view v-if="info.status==0 && info.checkUserId == userInfo.memberId" class="btn transfer" @click="handleTransfer">杞氦</view>
+ <view v-if="info.status==0&& info.checkUserId == userInfo.memberId" class="btn handle" @click="handleOpen">澶勭悊</view>
+ </view>
+
+ <!-- 閫�鍥� -->
+ <u-popup :show="isShowBack" :round="10" :safeAreaInsetBottom="true" mode="bottom" @close="isShowBack = false">
+ <view class="appr_modal">
+ <view class="title">闅愭偅閫�鍥�</view>
+ <view class="df_sb">
+ <view>閫�鍥炴椂闂�</view>
+ <view class="df_ac" @click="isShowBackDate = true" v-if="backParam.dealTime">
+ {{ backParam.dealTime }}
+ <u-icon name="arrow-right"></u-icon>
+ </view>
+ <view @click="isShowBackDate = true" v-else class="placeholder9 df_ac">
+ 璇烽�夋嫨
+ <u-icon name="arrow-right"></u-icon>
+ </view>
+ </view>
+
+ <view class="label">鍥剧墖/瑙嗛</view>
+ <view class="upload_wrap">
+ <view class="adduser_list_item_ipt1_upload" @click="showUpload = true">
+ <u-icon name="plus" color="rgb(153, 153, 153)" size="28"></u-icon>
+ <view class="mt6">鍥剧墖/瑙嗛</view>
+ </view>
+ <view class="adduser_list_item_ipt1_upload" v-for="(item, i) in submitFileList" :key="i">
+ <u-icon class="close" size="20" name="close-circle-fill" color="red"
+ @click="fileDel('submitFileList', i)"></u-icon>
+ <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
+ <video v-if="item.type == 1" :src="item.fileurlFull"></video>
+ </view>
+ </view>
+ <view class="label">閫�鍥炶鏄�</view>
+ <textarea v-model="backParam.checkInfo" placeholder="璇疯缁嗘弿杩扮幇鍦烘儏鍐碉紝涓嶅皯浜�10涓瓧" placeholder-class="placeholder9" />
+ <view class="back_footer">
+ <view class="btn" @click="isShowBack = false">鍙栨秷</view>
+ <view class="btn agree" @click="onSubBack">鎻愪氦</view>
+ </view>
+ </view>
+ </u-popup>
+ <!-- 澶勭悊 -->
+ <u-popup :show="isShowHandle" :round="10" :safeAreaInsetBottom="true" mode="bottom" @close="isShowHandle = false">
+ <view class="appr_modal">
+ <view class="title">闅愭偅鏁存敼</view>
+ <view class="df_sb">
+ <view>鏁存敼鏃堕棿</view>
+ <view class="df_ac" @click="isShowHandleDate = true" v-if="handleParam.dealTime">
+ {{ handleParam.dealTime }}
+ <u-icon name="arrow-right"></u-icon>
+ </view>
+ <view @click="isShowHandleDate = true" v-else class="placeholder9 df_ac">
+ 璇烽�夋嫨
+ <u-icon name="arrow-right"></u-icon>
+ </view>
+ </view>
+
+ <view class="label">
+ <text>*</text>
+ 鏁存敼鍓�
+ </view>
+ <view class="upload_wrap">
+ <view class="adduser_list_item_ipt1_upload" @click="showUploadBe = true">
+ <u-icon name="plus" color="rgb(153, 153, 153)" size="28"></u-icon>
+ <view class="mt6">鍥剧墖/瑙嗛</view>
+ </view>
+ <view class="adduser_list_item_ipt1_upload" v-for="(item, i) in dealBeforeFileList" :key="i">
+ <u-icon class="close" size="20" name="close-circle-fill" color="red"
+ @click="fileDel('dealBeforeFileList', i)"></u-icon>
+ <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
+ <video v-if="item.type == 1" :src="item.fileurlFull"></video>
+ </view>
+ </view>
+ <view class="label">
+ <text>*</text>
+ 鏁存敼鍚�
+ </view>
+ <view class="upload_wrap">
+ <view class="adduser_list_item_ipt1_upload" @click="showUploadAf = true">
+ <u-icon name="plus" color="rgb(153, 153, 153)" size="28"></u-icon>
+ <view class="mt6">鍥剧墖/瑙嗛</view>
+ </view>
+ <view class="adduser_list_item_ipt1_upload" v-for="(item, i) in dealAfterFileList" :key="i">
+ <u-icon class="close" size="20" name="close-circle-fill" color="red"
+ @click="fileDel('dealAfterFileList', i)"></u-icon>
+ <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
+ <video v-if="item.type == 1" :src="item.fileurlFull"></video>
+ </view>
+ </view>
+ <view class="label">鏁存敼璇存槑</view>
+ <textarea v-model="handleParam.checkInfo" placeholder="璇疯缁嗘弿杩扮幇鍦烘儏鍐碉紝涓嶅皯浜�10涓瓧" placeholder-class="placeholder9" />
+ <view class="back_footer">
+ <view class="btn" @click="isShowHandle = false">鍙栨秷</view>
+ <view class="btn agree" @click="onSubmit">鎻愪氦</view>
+ </view>
+ </view>
+ </u-popup>
+ <!-- 涓婁紶 -->
+ <u-popup :show="showUpload" @close="showUpload = false" closeOnClickOverlay>
+ <view class="sel_upload_wrap">
+ <view class="btn" @click="uploadImage">閫夋嫨鍥剧墖</view>
+ <view class="btn" @click="uploadVideo">閫夋嫨瑙嗛</view>
+ </view>
+ </u-popup>
+ <u-popup :show="showUploadBe" @close="showUploadBe = false" closeOnClickOverlay>
+ <view class="sel_upload_wrap">
+ <view class="btn" @click="uploadBeImage">閫夋嫨鍥剧墖</view>
+ <view class="btn" @click="uploadBeVideo">閫夋嫨瑙嗛</view>
+ </view>
+ </u-popup>
+ <u-popup :show="showUploadAf" @close="showUploadAf = false" closeOnClickOverlay>
+ <view class="sel_upload_wrap">
+ <view class="btn" @click="uploadAfImage">閫夋嫨鍥剧墖</view>
+ <view class="btn" @click="uploadAfVideo">閫夋嫨瑙嗛</view>
+ </view>
+ </u-popup>
+ <!-- 杞氦 -->
+ <u-popup :show="isShowTransfer" :round="10" safeAreaInsetBottom mode="bottom" @close="isShowTransfer = false">
+ <view class="appr_modal">
+ <view class="title">閫夋嫨鍛樺伐</view>
+ <view class="search_inp df_ac">
+ <image class="mr12 search" src="@/static/ic_search@2x.png" mode="widthFix"></image>
+ <input v-model="transferModel.name" @blur="getMemList()" type="text" placeholder="鎼滅储閮ㄩ棬/浜哄憳"
+ placeholder-style="color: #999999;" />
+ </view>
+ <view class="member_list">
+ <view class="mt24 placeholder6">鍏眥{ memberList.length }}鏉℃暟鎹�</view>
+ <view v-for="item in memberList" :key="item.id" class="line">
+ <image :src="item.faceImgFull ? item.faceImgFull : require('@/static/meeting/common/default_user@2x.png')"
+ class="avatar" mode=""></image>
+ <view class="content">
+ <view class="info">
+ <text class="name">{{ item.name }}</text>
+ <!-- <text class="tag">tag</text> -->
+ </view>
+ <view class="depart">{{ item.companyName }}</view>
+ </view>
+ <image @click="changeMem(item)" v-if="transferParam.id == item.id"
+ src="@/static/checkbox_sel@2x.png" mode="widthFix" class="checked"></image>
+ <image @click="changeMem(item)" v-else src="@/static/video@2x.png" mode="widthFix"
+ class="checked"></image>
+ <text></text>
+ </view>
+ <view class="empty"></view>
+ </view>
+ <view class="Transfer_footer">
+ <view class="btn" @click="isShowTransfer = fales">鍙栨秷</view>
+ <view class="btn active" @click="enterTransfer">纭杞氦</view>
+ </view>
+ </view>
+ </u-popup>
+ <!-- 閫�鍥炴椂闂� -->
+ <u-datetime-picker :show="isShowBackDate" @confirm="confirmBackDate" @cancel="isShowBackDate = false"
+ mode="datetime"></u-datetime-picker>
+
+ <u-datetime-picker :minDate="new Date().getTime()" :show="isShowHandleDate" @confirm="confirmHandleDate"
+ @cancel="isShowHandleDate = false" mode="datetime"></u-datetime-picker>
+ </view>
+</template>
+
+<script>
+ import {
+ hiddenDangerDetail,
+ uploadUrl,
+ findHiddenAreaMemberList,
+ dealHiddenDanger,
+ transferHiddenDanger,
+ findListFlowDanger
+ } from '@/api';
+ import dayjs from 'dayjs';
+ export default {
+ data() {
+ return {
+ isShowBack: false,
+ param: {},
+ info: {},
+ userInfo: this.$store.state.userInfo,
+ flowList: [],
+
+ 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: '浠栦汉鎷掔粷'
+ },
+
+ showUpload: false,
+ isShowBackDate: false,
+ submitFileList: [],
+ backParam: {},
+
+ isShowHandle: false,
+ handleParam: {},
+ isShowHandleDate: false,
+ showUploadBe: false,
+ showUploadAf: false,
+ dealBeforeFileList: [],
+ dealAfterFileList: [],
+
+ isShowTransfer: false,
+ transferParam: {},
+ transferModel: {},
+ pagination: {
+ page: 1,
+ capacity: 50
+ },
+ memberList: []
+ };
+ },
+ onLoad(op) {
+ this.id = op.id;
+ this.type = op.objType;
+ this.getDetail();
+ },
+ methods: {
+ priviewImage(url) {
+ uni.previewImage({
+ urls: [url]
+ });
+ },
+ handleOpen() {
+ this.isShowHandle = true;
+ console.log('info', this.info);
+ this.dealBeforeFileList = [...this.info.submitFileList];
+ this.$set(this.handleParam, 'dealTime', dayjs().format('YYYY-MM-DD HH:mm:ss'));
+ },
+ handleBack() {
+ this.isShowBack = true;
+ this.submitFileList = [...this.info.submitFileList];
+ this.$set(this.backParam, 'dealTime', dayjs().format('YYYY-MM-DD HH:mm:ss'));
+ },
+ getDetail() {
+ const {
+ id
+ } = this;
+ hiddenDangerDetail(id).then(res => {
+ this.info = res.data;
+ });
+ findListFlowDanger({
+ hiddenDangerId: id
+ }).then(res => {
+ this.flowList = res.data;
+ });
+ },
+ onSubmit() {
+ const {
+ dealBeforeFileList,
+ dealAfterFileList,
+ handleParam
+ } = this;
+ if (dealBeforeFileList.length === 0)
+ return uni.showToast({
+ title: '璇蜂笂浼犳暣鏀瑰墠鍥剧墖鎴栬棰�',
+ icon: 'none'
+ });
+ if (dealAfterFileList.length === 0)
+ return uni.showToast({
+ title: '璇蜂笂浼犳暣鏀瑰悗鍥剧墖鎴栬棰�',
+ icon: 'none'
+ });
+ dealHiddenDanger({
+ ...handleParam,
+ dealBeforeFileList: dealBeforeFileList,
+ dealAfterFileList: dealAfterFileList,
+ status: 1,
+ id: this.id
+ }).then(res => {
+ if (res.code === 200) {
+ this.isShowHandle = false;
+ setTimeout(() => {
+ uni.showToast({
+ title: '鎿嶄綔鎴愬姛',
+ icon: 'success'
+ });
+ });
+ uni.navigateBack();
+ }
+ });
+ },
+ enterTransfer() {
+ const {
+ transferParam,
+ id
+ } = this;
+ if (!transferParam.id)
+ return uni.showToast({
+ title: '璇烽�夋嫨浜哄憳',
+ icon: 'none'
+ });
+ transferHiddenDanger({
+ checkUserId: transferParam.id,
+ id
+ }).then(res => {
+ if (res.code === 200) {
+ this.isShowTransfer = false;
+ setTimeout(() => {
+ uni.showToast({
+ title: '鎿嶄綔鎴愬姛',
+ icon: 'success'
+ });
+ });
+ uni.navigateBack();
+ }
+ });
+ },
+ changeMem(e) {
+ this.transferParam = e;
+ },
+ handleTransfer() {
+ this.isShowTransfer = true;
+ this.getMemList();
+ },
+ getMemList() {
+ findHiddenAreaMemberList({
+ model: {
+ ...this.transferModel,
+ id: this.info.areaId
+ },
+ ...this.pagination
+ }).then(res => {
+ this.memberList = res.data || [];
+ });
+ },
+ confirmBackDate(e) {
+ this.$set(this.backParam, 'dealTime', dayjs(e.value).format('YYYY-MM-DD HH:mm:ss'));
+ this.isShowBackDate = false;
+ },
+ confirmHandleDate(e) {
+ this.$set(this.handleParam, 'dealTime', dayjs(e.value).format('YYYY-MM-DD HH:mm:ss'));
+ this.isShowHandleDate = false;
+ },
+ onSubBack() {
+ const {
+ submitFileList,
+ backParam
+ } = this;
+ dealHiddenDanger({
+ ...backParam,
+ dealBeforeFileList: submitFileList,
+ status: 2,
+ id: this.id
+ }).then(res => {
+ if (res.code === 200) {
+ this.isShowBack = false;
+ setTimeout(() => {
+ uni.showToast({
+ title: '鎿嶄綔鎴愬姛',
+ icon: 'success'
+ });
+ });
+ uni.navigateBack();
+ }
+ });
+ },
+ fileDel(str, i) {
+ this[str].splice(i, 1);
+ },
+ uploadBeImage() {
+ this.showUploadBe = false;
+ let token = uni.getStorageSync('token') || '';
+ uni.chooseImage({
+ count: 4,
+ success: chooseImageRes => {
+ uni.showLoading({
+ title: '涓婁紶涓�',
+ mask: true
+ });
+ const tempFilePaths = chooseImageRes.tempFilePaths;
+ let imgs = tempFilePaths.map((value, index) => {
+ return {
+ name: 'file',
+ uri: value
+ };
+ });
+ uni.uploadFile({
+ url: `${uploadUrl}`,
+ files: imgs,
+ name: 'file',
+ formData: {
+ folder: 'HIDDEN_DANGER_FILE'
+ },
+ header: {
+ Dm_user_token: token
+ },
+ success: uploadFileRes => {
+ let res = JSON.parse(uploadFileRes.data);
+ let obj = {
+ type: '0'
+ };
+ if (res.data && res.data.length > 0) {
+ res.data.forEach(i => {
+ i.type = 0;
+ i.fileurl = i.imgaddr;
+ i.fileurlFull = i.url;
+ this.dealBeforeFileList.push(i);
+ });
+ }
+ },
+ fail(err) {
+ console.log('err', err);
+ },
+ complete() {
+ uni.hideLoading();
+ // if (i === chooseImageRes.tempFilePaths.length - 1) {
+ // uni.hideLoading()
+ // }
+ }
+ });
+ }
+ });
+ },
+ uploadBeVideo() {
+ this.showUploadBe = false;
+ let token = uni.getStorageSync('token') || '';
+ uni.chooseVideo({
+ success: chooseImageRes => {
+ uni.showLoading({
+ title: '涓婁紶涓�',
+ mask: true
+ });
+ uni.uploadFile({
+ url: `${uploadUrl}`,
+ filePath: chooseImageRes.tempFilePath,
+ header: {
+ Dm_user_token: token
+ },
+ name: 'file',
+ formData: {
+ folder: 'HIDDEN_DANGER_FILE'
+ },
+ success: uploadFileRes => {
+ let res = JSON.parse(uploadFileRes.data);
+ if (res.data && res.data.length > 0) {
+ res.data.forEach(i => {
+ i.type = 1;
+ i.fileurl = i.imgaddr;
+ i.fileurlFull = i.url;
+ this.dealBeforeFileList.push(i);
+ });
+ }
+ },
+ complete() {
+ uni.hideLoading();
+ }
+ });
+ }
+ });
+ },
+ uploadAfImage() {
+ this.showUploadAf = false;
+ let token = uni.getStorageSync('token') || '';
+ uni.chooseImage({
+ count: 4,
+ success: chooseImageRes => {
+ uni.showLoading({
+ title: '涓婁紶涓�',
+ mask: true
+ });
+ const tempFilePaths = chooseImageRes.tempFilePaths;
+ let imgs = tempFilePaths.map((value, index) => {
+ return {
+ name: 'file',
+ uri: value
+ };
+ });
+ uni.uploadFile({
+ url: `${uploadUrl}`,
+ files: imgs,
+ name: 'file',
+ formData: {
+ folder: 'HIDDEN_DANGER_FILE'
+ },
+ header: {
+ Dm_user_token: token
+ },
+ success: uploadFileRes => {
+ let res = JSON.parse(uploadFileRes.data);
+ if (res.data && res.data.length > 0) {
+ res.data.forEach(i => {
+ i.type = 0;
+ i.fileurl = i.imgaddr;
+ i.fileurlFull = i.url;
+ this.dealAfterFileList.push(i);
+ });
+ }
+ },
+ fail(err) {
+ console.log('err', err);
+ },
+ complete() {
+ uni.hideLoading();
+ // if (i === chooseImageRes.tempFilePaths.length - 1) {
+ // uni.hideLoading()
+ // }
+ }
+ });
+ }
+ });
+ },
+ uploadAfVideo() {
+ this.showUploadAf = false;
+ let token = uni.getStorageSync('token') || '';
+ uni.chooseVideo({
+ success: chooseImageRes => {
+ uni.showLoading({
+ title: '涓婁紶涓�',
+ mask: true
+ });
+ uni.uploadFile({
+ url: `${uploadUrl}`,
+ filePath: chooseImageRes.tempFilePath,
+ header: {
+ Dm_user_token: token
+ },
+ name: 'file',
+ formData: {
+ folder: 'HIDDEN_DANGER_FILE'
+ },
+ success: uploadFileRes => {
+ let res = JSON.parse(uploadFileRes.data);
+ if (res.data && res.data.length > 0) {
+ res.data.forEach(i => {
+ i.type = 1;
+ i.fileurl = i.imgaddr;
+ i.fileurlFull = i.url;
+ this.dealAfterFileList.push(i);
+ });
+ }
+ },
+ complete() {
+ uni.hideLoading();
+ }
+ });
+ }
+ });
+ },
+ uploadImage() {
+ this.showUpload = false;
+ let token = uni.getStorageSync('token') || '';
+ uni.chooseImage({
+ count: 4,
+ success: chooseImageRes => {
+ uni.showLoading({
+ title: '涓婁紶涓�',
+ mask: true
+ });
+ const tempFilePaths = chooseImageRes.tempFilePaths;
+ let imgs = tempFilePaths.map((value, index) => {
+ return {
+ name: 'file',
+ uri: value
+ };
+ });
+ uni.uploadFile({
+ url: `${uploadUrl}`,
+ files: imgs,
+ name: 'file',
+ formData: {
+ folder: 'HIDDEN_DANGER_FILE'
+ },
+ header: {
+ Dm_user_token: token
+ },
+ success: uploadFileRes => {
+ let res = JSON.parse(uploadFileRes.data);
+ if (res.data && res.data.length > 0) {
+ res.data.forEach(i => {
+ i.type = 0;
+ i.fileurl = i.imgaddr;
+ i.fileurlFull = i.url;
+ this.submitFileList.push(i);
+ });
+ }
+ },
+ fail(err) {
+ console.log('err', err);
+ },
+ complete() {
+ uni.hideLoading();
+ // if (i === chooseImageRes.tempFilePaths.length - 1) {
+ // uni.hideLoading()
+ // }
+ }
+ });
+ }
+ });
+ },
+ uploadVideo() {
+ this.showUpload = false;
+ let token = uni.getStorageSync('token') || '';
+ uni.chooseVideo({
+ success: chooseImageRes => {
+ uni.showLoading({
+ title: '涓婁紶涓�',
+ mask: true
+ });
+ uni.uploadFile({
+ url: `${uploadUrl}`,
+ filePath: chooseImageRes.tempFilePath,
+ header: {
+ Dm_user_token: token
+ },
+ name: 'file',
+ formData: {
+ folder: 'HIDDEN_DANGER_FILE'
+ },
+ success: uploadFileRes => {
+ let res = JSON.parse(uploadFileRes.data);
+ if (res.data && res.data.length > 0) {
+ res.data.forEach(i => {
+ i.type = 1;
+ i.fileurl = i.imgaddr;
+ i.fileurlFull = i.url;
+ this.submitFileList.push(i);
+ });
+ }
+ },
+ complete() {
+ uni.hideLoading();
+ }
+ });
+ }
+ });
+ }
+ }
+ };
+</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: 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;
+ }
+ }
+
+ .line{
+ .company{
+ font-size: 26rpx;
+ color: #777777;
+ }
+ .status-green{
+ color: $uni-color-primary;
+ }
+ .status-red{
+ color: red;
+ }
+ }
+
+ .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;
+ }
+ }
+ }
+ }
+ }
+
+ .adduser_list_item_ipt1_upload {
+ width: 120rpx;
+ height: 120rpx;
+ margin-right: 24rpx;
+ border: 2rpx solid #e5e5e5;
+ background: #f7f7f7;
+ color: #666666;
+ font-size: 22rpx;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+
+ .close {
+ position: absolute;
+ right: -20rpx;
+ top: -20rpx;
+ z-index: 9999;
+ }
+
+ image {
+ width: 100%;
+ height: 100%;
+ }
+
+ video {
+ width: 100%;
+ max-height: 120rpx;
+ }
+ }
+
+ .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: 600;
+ font-size: 32rpx;
+ margin-bottom: 20rpx;
+ color: $uni-color-primary;
+ }
+
+ .desc {
+ font-size: 26rpx;
+ color: #ed4545;
+ }
+
+ .gray {
+ color: #999999;
+ }
+
+ .file_list {
+ display: flex;
+ margin-bottom: 20rpx;
+ overflow-x: auto;
+
+ .img_wrap {
+ margin-top: 24rpx;
+ min-width: 160rpx;
+ height: 160rpx;
+ border: 2rpx solid #e5e5e5;
+ background: #f7f7f7;
+ color: #666666;
+ font-size: 22rpx;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+ margin-right: 16rpx;
+ flex-shrink: 0;
+ }
+
+ .img {
+ width: 100%;
+ max-height: 100%;
+ }
+
+ .video {
+ height: 160rpx;
+ }
+ }
+
+ .text_wrap {
+ padding: 20rpx;
+ background-color: #f8f7f7;
+ border-radius: 8rpx;
+ margin-top: 20rpx;
+
+ .line {
+ margin-bottom: 12rpx;
+ display: flex;
+ font-size: 24rpx;
+
+ .label {
+ color: #999999;
+ width: 140rpx;
+ }
+ }
+ }
+
+ .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 {
+ position: fixed;
+ bottom: 0;
+ width: 100%;
+ left: 0;
+ padding: 30rpx 10rpx 60rpx;
+ display: flex;
+ justify-content: space-between;
+ background: #ffffff;
+
+ .btn {
+ flex: 1;
+ height: 88rpx;
+ line-height: 88rpx;
+ background: #ffffff;
+ border-radius: 44rpx;
+ border: 1rpx solid #999999;
+ font-size: 32rpx;
+ text-align: center;
+ margin: 16rpx 8rpx;
+ }
+
+ .transfer {
+ color: $uni-color-primary;
+ border: 1rpx solid $uni-color-primary;
+ }
+
+ .handle {
+ flex: 2;
+ background: $uni-color-primary;
+ color: #fff;
+ border: 1rpx solid $uni-color-primary;
+ }
+ }
+
+ .appr_modal {
+ padding: 36rpx 30rpx 0;
+
+ .title {
+ font-weight: 600;
+ font-size: 32rpx;
+ color: #222222;
+ margin-bottom: 40rpx;
+ text-align: center;
+ }
+
+ .label {
+ text {
+ color: #ed4545;
+ }
+ }
+
+ .df_sb {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ height: 90rpx;
+ border-bottom: 1rpx solid #e4e4e4;
+ margin-bottom: 30rpx;
+ }
+
+ .back_footer {
+ display: flex;
+
+ .btn {
+ flex: 1;
+ height: 88rpx;
+ line-height: 88rpx;
+ background: #ffffff;
+ border-radius: 44rpx;
+ border: 1rpx solid #999999;
+ font-size: 32rpx;
+ text-align: center;
+ margin: 16rpx 8rpx;
+ }
+
+ .agree {
+ background: $uni-color-primary;
+ color: #fff;
+ border: 1rpx solid $uni-color-primary;
+ }
+ }
+
+ textarea {
+ box-sizing: border-box;
+ width: 690rpx;
+ min-height: 200rpx;
+ background-color: #f7f7f7;
+ font-size: 28rpx;
+ color: #333333;
+ padding: 24rpx;
+ border-radius: 8rpx;
+ margin-bottom: 30rpx;
+ }
+
+ .upload_wrap {
+ display: flex;
+ flex-wrap: wrap;
+ margin-bottom: 30rpx;
+ }
+
+ .adduser_list_item_ipt1_upload {
+ margin-top: 24rpx;
+ width: 120rpx;
+ height: 120rpx;
+ margin-right: 24rpx;
+ border: 2rpx solid #e5e5e5;
+ background: #f7f7f7;
+ color: #666666;
+ font-size: 22rpx;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+
+ .close {
+ position: absolute;
+ right: -20rpx;
+ top: -20rpx;
+ z-index: 9999;
+ }
+
+ image {
+ width: 100%;
+ height: 100%;
+ }
+
+ video {
+ width: 100%;
+ max-height: 120rpx;
+ }
+ }
+ }
+
+ .emyty {
+ width: 750rpx;
+ height: 20rpx;
+ background-color: #f7f7f7;
+ margin: 0 -30rpx;
+ }
+ }
+
+ .sel_upload_wrap {
+ width: 100%;
+ border-top: 1px solid #333333;
+ box-shadow: 0 1 1 #333333;
+
+ .btn {
+ height: 90rpx;
+ line-height: 90rpx;
+ text-align: center;
+ }
+ }
+
+ .member_list {
+ height: 920rpx;
+ overflow: auto;
+
+ .line {
+ display: flex;
+ align-items: center;
+ border-bottom: 1rpx solid #e5e5e5;
+ padding: 30rpx 0;
+
+ .avatar {
+ width: 64rpx;
+ height: 64rpx;
+ border-radius: 50%;
+ overflow: hidden;
+ margin-right: 20rpx;
+ }
+
+ .content {
+ flex: 1;
+
+ .depart {
+ font-size: 24rpx;
+ color: #666666;
+ }
+
+ .info {
+ display: flex;
+ margin-bottom: 16rpx;
+
+ .name {
+ font-size: 30rpx;
+ }
+
+ .tag {
+ font-size: 24rpx;
+ border-radius: 4rpx;
+ border: 1rpx solid #f62710;
+ color: #f62710;
+ padding: 0rpx 6rpx;
+ margin-left: 8rpx;
+ }
+ }
+ }
+
+ .checked {
+ width: 48rpx;
+ }
+ }
+
+ .empty {
+ width: 100%;
+ height: 280rpx;
+ }
+ }
+
+ .search_inp {
+ height: 72rpx;
+ background: #f7f7f7;
+ border-radius: 4rpx;
+ padding-left: 16rpx;
+
+ .search {
+ width: 28rpx;
+ }
+
+ input {
+ flex: 1;
+ font-size: 28rpx;
+ color: #333333;
+ }
+ }
+
+ .Transfer_footer {
+ display: flex;
+
+ .btn {
+ flex: 1;
+ height: 88rpx;
+ line-height: 88rpx;
+ background: #ffffff;
+ border-radius: 44rpx;
+ border: 1rpx solid #999999;
+ font-size: 32rpx;
+ text-align: center;
+ margin: 16rpx 8rpx;
+ }
+
+ .active {
+ background: $uni-color-primary;
+ color: #fff;
+ border: 1rpx solid $uni-color-primary;
+ }
+ }
+</style>
\ No newline at end of file
diff --git a/h5/pages/staff/task/visitorApprove.vue b/h5/pages/staff/task/visitorApprove.vue
index 2ab2606..f9eb139 100644
--- a/h5/pages/staff/task/visitorApprove.vue
+++ b/h5/pages/staff/task/visitorApprove.vue
@@ -68,6 +68,10 @@
<view class="label">鏉ヨ浜嬬敱</view>
<view class="value">{{ info.visitReason }}</view>
</view>
+ <view v-if="info.constructionReason" class="item">
+ <view class="label">鏂藉伐鍐呭</view>
+ <view class="value">{{ info.constructionReason }}</view>
+ </view>
</view>
<!-- 娴佺▼ -->
<view class="flow_wrap">
diff --git a/h5/pages/staff/task/visitorReport.vue b/h5/pages/staff/task/visitorReport.vue
index 368508b..1308a5f 100644
--- a/h5/pages/staff/task/visitorReport.vue
+++ b/h5/pages/staff/task/visitorReport.vue
@@ -2,14 +2,18 @@
<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="desc"
+ :class="{
+ gray: info.businessStatus == '2' || info.businessStatus == '3' || info.businessStatus == '4',
+ }"
+ >{{ infoStatus }}</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>
<!-- -->
@@ -127,6 +131,7 @@
id: '',
type: '',
+ infoStatus: '',
cateList: [
{ name: '璁垮鐢宠', id: 0 },
{ name: '璁垮鎶ュ', id: 1 },
@@ -140,14 +145,13 @@
2: '宸查�氳繃',
3: '宸叉嫆缁�',
4: '宸插彇娑�',
- 5: '浠栦汉鎴栫',
- 6: '浠栦汉鎷掔粷',
}
}
},
onLoad(op) {
this.id = op.id
this.type = op.objType
+ this.infoStatus = op.info
this.getDetail()
},
methods: {
diff --git a/h5/pages/staff/vehicle/applePeo.vue b/h5/pages/staff/vehicle/applePeo.vue
index ec74350..42e4a0e 100644
--- a/h5/pages/staff/vehicle/applePeo.vue
+++ b/h5/pages/staff/vehicle/applePeo.vue
@@ -57,7 +57,7 @@
<text v-for="(item, i) in selList" :key="i">{{ item.name }}锛�</text>
</view>
<image
- @click="isShowSelMem = true"
+ @click="openSeleter"
class="open_icon"
src="@/static/staff/renyuan_ic_open.png"
mode=""
@@ -74,28 +74,30 @@
>
<view class="modal">
<view class="modal_header">
- <text class="status">宸查�夋嫨锛歿{ selList.length }}浜�</text>
+ <text class="status">宸查�夋嫨锛歿{ selList.filter(i => i.checkedTemp).length }}浜�</text>
<text class="btn" @click="subSelMem">纭</text>
</view>
<view class="modal_mem_list">
- <view class="line" v-for="(item, i) in selList" :key="i">
- <image
- :src="
- item.faceImgFull
- ? item.faceImgFull
- : require('@/static/logo@2x.png')
- "
- class="avatar"
- mode=""
- ></image>
- <view class="content">
- <view class="info">
- <text class="name">{{ item.name }}</text>
- </view>
- <view class="depart">{{ item.componey }}</view>
- </view>
- <view class="btn" @click="handleRemove(i)">绉婚櫎</view>
- </view>
+ <template v-for="(item, i) in selList">
+ <view class="line" v-if="item.checkedTemp" :key="i">
+ <image
+ :src="
+ item.faceImgFull
+ ? item.faceImgFull
+ : require('@/static/logo@2x.png')
+ "
+ class="avatar"
+ mode=""
+ ></image>
+ <view class="content">
+ <view class="info">
+ <text class="name">{{ item.name }}</text>
+ </view>
+ <view class="depart">{{ item.componey }}</view>
+ </view>
+ <view class="btn" @click="handleRemove(i)">绉婚櫎</view>
+ </view>
+ </template>
</view>
</view>
</u-popup>
@@ -151,7 +153,8 @@
}).then(res => {
this.memberList = res.data || []
this.memberList.forEach(i => {
- i.checked = false
+ const index = this.selList.findIndex(ite => ite.id === i.id)
+ i.checked = index > -1
})
})
},
@@ -163,23 +166,6 @@
this.$eventBus.$emit('applePeo', this.selList)
uni.navigateBack()
},
- closeModal() {
- this.selList = this.memberList.filter(i => i.checked)
- this.isShowSelMem = false
- },
- subSelMem() {
- const { selList, memberList } = this
- memberList.forEach(ite => {
- ite.checked = false
- selList.forEach(item => {
- if (ite.id === item.id) {
- ite.checked = true
- } else { }
- })
- })
- this.isShowSelMem = false
- this.$forceUpdate()
- },
changeMem(item, index) {
// this.memberList.forEach(mem => {
// if(item.id === mem.id){
@@ -187,11 +173,40 @@
// }
// })
item.checked = !item.checked
- this.selList = this.memberList.filter(i => i.checked)
+ const i = this.selList.findIndex(a => a.id === item.id)
+ if(item.checked && i === -1){
+ this.selList.push(item)
+ }else{
+ this.selList.splice(i, 1)
+ }
this.$forceUpdate()
},
+ openSeleter() {
+ this.isShowSelMem = true
+ this.selList.forEach(item => {
+ item.checkedTemp = true
+ })
+ this.$forceUpdate()
+ },
+ subSelMem() {
+ const { memberList } = this
+ this.selList = this.selList.filter(i => i.checkedTemp)
+ console.log('selList', this.selList);
+ memberList.forEach(ite => {
+ const index = this.selList.findIndex(i => i.id === ite.id)
+ ite.checked = index > -1
+ })
+ this.isShowSelMem = false
+ this.$forceUpdate()
+ },
+ closeModal() {
+ this.selList.forEach(item => {
+ item.checkedTemp = true
+ })
+ this.isShowSelMem = false
+ },
handleRemove(i) {
- this.selList.splice(i, 1)
+ this.selList[i].checkedTemp = false
this.$forceUpdate()
},
}
diff --git a/h5/pages/staffLogin/login.vue b/h5/pages/staffLogin/login.vue
index 6ab5bd1..8cc4c30 100644
--- a/h5/pages/staffLogin/login.vue
+++ b/h5/pages/staffLogin/login.vue
@@ -71,7 +71,7 @@
data() {
return {
form: {
- username: '13996529050',
+ username: '13956044505',
password: '123456',
code: 1
},
--
Gitblit v1.9.3