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'
---
h5/pages/staff/task/vDangetAppr.vue | 2710 ++++++++++++++++++++++++++++------------------------------
1 files changed, 1,302 insertions(+), 1,408 deletions(-)
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
--
Gitblit v1.9.3