| | |
| | | <view class="main_app">
|
| | | <view class="info">
|
| | | <view class="head">
|
| | | <view class="">巡检点</view>
|
| | | <view class="status">已巡检</view>
|
| | | <view class="">{{ info.pointName }}</view>
|
| | | <view class="status" :class="{primaryColor: info.status == 0}">{{ info.status == 1 ? '已巡检' : '待巡检' }}</view>
|
| | | </view>
|
| | | <template v-if="false">
|
| | | <template v-if="info.status == 1">
|
| | | <view class="line">
|
| | | <div class="la">巡检结果:</div>
|
| | | <div class="val">正常</div>
|
| | | <div class="val primaryColor" :class="{red: info.dealStatus == 1}">{{ info.dealStatus == 0 ? '正常' : '异常' }}</div>
|
| | | </view>
|
| | | <view class="line">
|
| | | <div class="la">巡检时间:</div>
|
| | | <div class="val">2022</div>
|
| | | <div class="val">{{ info.dealDate }}</div>
|
| | | </view>
|
| | | </template>
|
| | | <template v-else>
|
| | | <view class="desc">
|
| | | 巡检内容
|
| | | {{ info.content }}
|
| | | </view>
|
| | | </template>
|
| | | </view>
|
| | | <!-- -->
|
| | | <view v-if="false" class="content">
|
| | | <view class="title">巡检记录</view>
|
| | | <view class="desc">已经更换灯泡</view>
|
| | | <view v-if="info.status == 1" class="content">
|
| | | <view class="title">巡检记录</view> |
| | | <view class="files"> |
| | | <view class="adduser_list_item_ipt1_upload" v-for="(item, i) in info.multifileList" :key="i"> |
| | | <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image> |
| | | <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video> |
| | | </view> |
| | | </view>
|
| | | <view class="desc">{{ info.dealInfo }}</view>
|
| | | <view class="line line_s">
|
| | | <view class="la">巡检人:</view>
|
| | | <view class="val">xxx</view>
|
| | | <view class="val">{{ info.realname }}</view>
|
| | | </view>
|
| | | <view class="line line_s">
|
| | | <view class="la">巡检时间:</view>
|
| | | <view class="val">xxx</view>
|
| | | <view class="val">{{ info.dealDate }}</view>
|
| | | </view>
|
| | | </view>
|
| | | <view v-else class="content">
|
| | | <view class="title">巡检处理</view>
|
| | | <view class="appr_modal">
|
| | | <view class="df_sb">
|
| | | <view>处理时间</view>
|
| | | <view class="df_ac" @click="isShowHandleDate = true" v-if="handleParam.dealTime">
|
| | | {{ handleParam.dealTime }}
|
| | | <view><text class="red">*</text>处理时间</view>
|
| | | <view class="df_ac" @click="isShowHandleDate = true" v-if="handleParam.dealDate">
|
| | | {{ handleParam.dealDate }}
|
| | | <u-icon name="arrow-right"></u-icon>
|
| | | </view>
|
| | | <view @click="isShowHandleDate = true" v-else class="placeholder9 df_ac">
|
| | |
| | | </view>
|
| | |
|
| | | <view class="label">
|
| | | <text>*</text>
|
| | | 上传图片/视频
|
| | | </view>
|
| | | <view class="upload_wrap">
|
| | |
| | | <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 dealFileList" :key="i">
|
| | | <view class="adduser_list_item_ipt1_upload" v-for="(item, i) in fileList" :key="i">
|
| | | <u-icon class="close" size="20" name="close-circle-fill" color="red"
|
| | | @click="fileDel('dealBeforeFileList', i)"></u-icon>
|
| | | @click="fileDel('fileList', i)"></u-icon>
|
| | | <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image>
|
| | | <video v-if="item.type == 1" :src="item.fileurlFull" :controls="false"></video>
|
| | | </view>
|
| | | </view>
|
| | |
|
| | | <view class="label">处理说明</view>
|
| | | <textarea v-model="handleParam.checkInfo" placeholder="请填写处理说明" placeholder-class="placeholder9" />
|
| | | <textarea v-model="handleParam.dealInfo" placeholder="请填写处理说明" placeholder-class="placeholder9" />
|
| | | </view>
|
| | | </view> |
| | | <view class="sub_btn">确认巡检</view>
|
| | | <view class="sub_btn" @click="onSubmit">确认巡检</view>
|
| | | <!-- -->
|
| | | <u-popup :show="showUpload" @close="showUpload = false" closeOnClickOverlay>
|
| | | <view class="sel_upload_wrap">
|
| | |
| | |
|
| | | <script>
|
| | | import {
|
| | | uploadUrl
|
| | | uploadUrl, |
| | | ywPatrolPointDetail, |
| | | patrolData
|
| | | } from '@/api'
|
| | | import dayjs from 'dayjs';
|
| | | export default {
|
| | | data() {
|
| | | return {
|
| | | return { |
| | | id: '', |
| | | info: {},
|
| | | showUpload: false,
|
| | | isShowHandle: false,
|
| | | isShowHandleDate: false,
|
| | | handleParam: {},
|
| | | dealFileList: []
|
| | | handleParam: { |
| | | dealStatus: 1 |
| | | },
|
| | | fileList: []
|
| | | };
|
| | | }, |
| | | onLoad(option) { |
| | | this.id = option.id |
| | | this.getDetail() |
| | | this.$set(this.handleParam, 'dealDate', dayjs().format('YYYY-MM-DD HH:mm:ss')) |
| | | },
|
| | | methods: {
|
| | | onSubmit() {
|
| | |
|
| | | onSubmit() { |
| | | const { handleParam, fileList, id } = this
|
| | | patrolData({ |
| | | ...handleParam, |
| | | multifileList: fileList, |
| | | id, |
| | | }).then(res => { |
| | | this.showToast('操作成功') |
| | | uni.navigateBack() |
| | | })
|
| | | }, |
| | | getDetail(){ |
| | | const { id } = this |
| | | ywPatrolPointDetail(id).then(res => { |
| | | this.info = res.data |
| | | }) |
| | | },
|
| | | callPhone() {
|
| | | uni.makePhoneCall({
|
| | |
| | | });
|
| | | },
|
| | | confirmHandleDate(e) {
|
| | | this.$set(this.handleParam, 'dealTime', dayjs(e.value).format('YYYY-MM-DD HH:mm:ss'));
|
| | | this.$set(this.handleParam, 'dealDate', dayjs(e.value).format('YYYY-MM-DD HH:mm:ss'));
|
| | | this.isShowHandleDate = false;
|
| | | },
|
| | | fileDel(str, i) {
|
| | |
| | | files: imgs,
|
| | | name: 'file',
|
| | | formData: {
|
| | | folder: 'HIDDEN_DANGER_FILE'
|
| | | folder: 'YW_PATROL'
|
| | | },
|
| | | header: {
|
| | | Dm_user_token: token
|
| | |
| | | i.type = 0;
|
| | | i.fileurl = i.imgaddr;
|
| | | i.fileurlFull = i.url;
|
| | | this.submitFileList.push(i);
|
| | | this.fileList.push(i);
|
| | | });
|
| | | }
|
| | | },
|
| | |
| | | },
|
| | | name: 'file',
|
| | | formData: {
|
| | | folder: 'HIDDEN_DANGER_FILE'
|
| | | folder: 'YW_PATROL'
|
| | | },
|
| | | success: uploadFileRes => {
|
| | | let res = JSON.parse(uploadFileRes.data);
|
| | |
| | | i.type = 1;
|
| | | i.fileurl = i.imgaddr;
|
| | | i.fileurlFull = i.url;
|
| | | this.submitFileList.push(i);
|
| | | this.fileList.push(i);
|
| | | });
|
| | | }
|
| | | },
|
| | |
| | | margin-bottom: 30rpx;
|
| | | }
|
| | |
|
| | | .adduser_list_item_ipt1_upload {
|
| | | margin-top: 24rpx;
|
| | | width: 156rpx;
|
| | | height: 156rpx;
|
| | | 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%;
|
| | | height: 100%;
|
| | | }
|
| | | }
|
| | | } |
| | | .files{ |
| | | display: flex; |
| | | margin-bottom: 20rpx; |
| | | } |
| | | .adduser_list_item_ipt1_upload { |
| | | margin-top: 24rpx; |
| | | width: 156rpx; |
| | | height: 156rpx; |
| | | 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%; |
| | | height: 100%; |
| | | } |
| | | }
|
| | | </style> |