| | |
| | | <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 || info.status == 2" class="module_list">
|
| | | <view class="item">
|
| | | <view class="label">å¤çç»æ</view>
|
| | | <view class="value primaryColor" :class="{ red: info.status == 2 }">{{ statusMap[info.status] }}</view>
|
| | | </view>
|
| | | <view class="item">
|
| | | <view class="label">{{info.status == '1' ? 'æ´æ¹å' : 'è§é¢/å¾ç'}}</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" v-if="info.dealAfterFileList && info.dealAfterFileList.length > 0">
|
| | | <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="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">éå说æ</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;
|
| | | const submitFileList = this.info.submitFileList || [] |
| | | this.submitFileList = [...submitFileList];
|
| | | this.$set(this.handleParam, 'dealTime', dayjs().format('YYYY-MM-DD HH:mm:ss'));
|
| | | },
|
| | | handleBack() {
|
| | | this.isShowBack = true; |
| | | // const submitFileList = this.info.submitFileList || []
|
| | | // this.submitFileList = [...submitFileList]; |
| | | this.dealBeforeFileList = []
|
| | | 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 {
|
| | | dealBeforeFileList,
|
| | | backParam
|
| | | } = this;
|
| | | dealHiddenDanger({
|
| | | ...backParam,
|
| | | dealBeforeFileList,
|
| | | 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> |