342 lines
12 KiB
Vue
342 lines
12 KiB
Vue
<template>
|
||
<view class="content">
|
||
<view class="card">
|
||
<u-cell-group :border="false">
|
||
<template v-if="hiddenData.hiddenImgs !== undefined && hiddenData.hiddenImgs.length>0">
|
||
<u-cell>
|
||
<view slot="title" class="title">隐患照片:</view>
|
||
<view slot="label" class="mt-10">
|
||
<view style="display: flex;flex-wrap: wrap">
|
||
<view v-for="(item,index) in hiddenData.hiddenImgs" :key="index" class="ml-10 mt-10">
|
||
<u--image :showLoading="true" :src="item.url"
|
||
width="80px" height="80px" @click="previewImage(hiddenData.hiddenImgs,item.url)"></u--image>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</u-cell>
|
||
</template>
|
||
<template v-if=" hiddenData.hiddenVideos !== undefined && hiddenData.hiddenVideos.length>0">
|
||
<u-cell>
|
||
<view slot="title" class="title">
|
||
隐患视频:
|
||
</view>
|
||
<view slot="value">
|
||
<u-icon v-if="hiddenData.hiddenVideos.length !== 0 && hiddenData.hiddenVideos[0].url"
|
||
name="play-circle-fill" size="30" @click="previewVideo(hiddenData.hiddenVideos[0].url)"></u-icon>
|
||
<u-modal :show="modalShow" title="视频播放" confirmText="关闭" @confirm="modalShow = false">
|
||
<view>
|
||
<video v-if="modalShow" :src="videoUrl" :autoplay="true"></video>
|
||
</view>
|
||
</u-modal>
|
||
</view>
|
||
</u-cell>
|
||
</template>
|
||
<u-cell>
|
||
<view slot="title" class="title">隐患描述:</view>
|
||
<view slot="label" class="mt-10">{{hiddenData.HIDDENDESCR}}</view>
|
||
</u-cell>
|
||
<u-cell>
|
||
<view slot="title" class="title">隐患部位:</view>
|
||
<view slot="value">{{hiddenData.HIDDENPART}}</view>
|
||
</u-cell>
|
||
<u-cell>
|
||
<view slot="title" class="title">隐患级别:</view>
|
||
<view slot="value">
|
||
<text>{{ hiddenData.HIDDENLEVEL_NAME }}</text>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell>
|
||
<view slot="title" class="title">隐患类型:</view>
|
||
<view slot="value">
|
||
<text>{{ hiddenData.HIDDENTYPE_NAME }}</text>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell>
|
||
<view slot="title" class="title">隐患处置:</view>
|
||
<view slot="value">限期整改</view>
|
||
</u-cell>
|
||
<view class="card">
|
||
<view class="view-title">
|
||
<u--text text="隐患整改"></u--text>
|
||
</view>
|
||
</view>
|
||
<u-cell>
|
||
<view slot="title" class="title">整改期限:</view>
|
||
<view slot="value">
|
||
<text>{{ hiddenData.RECTIFICATIONDEADLINE }}</text>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell>
|
||
<view slot="title" class="title">整改部门:</view>
|
||
<view slot="value">
|
||
<text>{{ hiddenData.RECTIFICATIONDEPT_NAME }}</text>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell>
|
||
<view slot="title" class="title">整改人:</view>
|
||
<view slot="value">
|
||
<text>{{ hiddenData.RECTIFICATIONOR_NAME }}</text>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell>
|
||
<view slot="title" class="title">整改时间:</view>
|
||
<view slot="value">
|
||
<text>{{ hiddenData.RECTIFICATIONTIME }}</text>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell>
|
||
<view slot="title" class="title">整改照片:</view>
|
||
<view slot="label" class="mt-10">
|
||
<view style="display: flex;flex-wrap: wrap">
|
||
<view v-for="(item,index) in hiddenData.zgImgs" :key="index" class="ml-10 mt-10">
|
||
<u--image :showLoading="true" :src="item.url"
|
||
width="80px" height="80px" @click="previewImage(hiddenData.zgImgs,item.url)"></u--image>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</u-cell>
|
||
<view class="card" v-show="type === 'acceptance'||hiddenData.STATE==='4'">
|
||
<view class="view-title">
|
||
<u--text text="验收信息"></u--text>
|
||
</view>
|
||
</view>
|
||
<u-cell v-if="type === 'acceptance'||hiddenData.STATE==='4'">
|
||
<view slot="title" class="title required">验收时间:</view>
|
||
<view slot="value">
|
||
<text @click="type === 'view' ? null : timeShow = true">{{ CHECKTIME || '请选择' }}</text>
|
||
<u-datetime-picker :show="timeShow" :value="CHECKTIME"
|
||
:minDate="Number(1970)"
|
||
@cancel="timeShow = false"
|
||
@confirm="timeConfirm"></u-datetime-picker>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell v-if="type === 'acceptance'||hiddenData.STATE==='4'">
|
||
<view slot="title" class="title required">验收图片:</view>
|
||
<view slot="label" class="mt-10">
|
||
<u-upload
|
||
:disabled="type === 'view'"
|
||
:deletable="type === 'acceptance'"
|
||
uploadIcon="plus"
|
||
:fileList="form.ysImgs"
|
||
@afterRead="afterRead"
|
||
@delete="deletePic"
|
||
multiple
|
||
:maxCount="4"
|
||
></u-upload>
|
||
</view>
|
||
</u-cell>
|
||
<view class="card" v-show="punishForm">
|
||
<view class="view-title">
|
||
<u--text text="处罚信息"></u--text>
|
||
</view>
|
||
</view>
|
||
<u-cell v-if="punishForm">
|
||
<view slot="title" class="title">处罚原因:</view>
|
||
<view slot="value">{{ punishForm.REASON }}</view>
|
||
</u-cell>
|
||
<u-cell v-if="punishForm">
|
||
<view slot="title" class="title">处罚金额:</view>
|
||
<view slot="value">{{ punishForm.AMOUT }}元</view>
|
||
</u-cell>
|
||
<u-cell v-if="punishForm">
|
||
<view slot="title" class="title">被处罚单位:</view>
|
||
<view slot="value">{{ punishForm.UNITS_NAME }}</view>
|
||
</u-cell>
|
||
<u-cell v-if="punishForm">
|
||
<view slot="title" class="title">被处罚人:</view>
|
||
<view slot="value">{{ punishForm.PERSON_NAME }}</view>
|
||
</u-cell>
|
||
<u-cell v-if="punishForm">
|
||
<view slot="title" class="title">下发人:</view>
|
||
<view slot="value">{{punishForm.CREATOR_NAME}}</view>
|
||
</u-cell>
|
||
<u-cell v-if="punishForm">
|
||
<view slot="title" class="title">下发处罚时间:</view>
|
||
<view slot="value">{{punishForm.DATE}}</view>
|
||
</u-cell>
|
||
<template v-if="punishForm">
|
||
<u-cell v-if="punishForm.HANLDE_TIME">
|
||
<view slot="title" class="title">罚款缴纳单:</view>
|
||
<view slot="label" class="mt-10">
|
||
<u--image :showLoading="true" :src="punishForm.HANDLE_IMG"
|
||
width="80px" height="80px" @click="previewImagePunish(punishForm.HANDLE_IMG)"></u--image>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell v-if="punishForm.HANLDE_TIME">
|
||
<view slot="title" class="title">处罚处理人:</view>
|
||
<view slot="value">{{punishForm.PERSON_NAME}}</view>
|
||
</u-cell>
|
||
<u-cell v-if="punishForm.HANLDE_TIME">
|
||
<view slot="title" class="title">处罚处理时间:</view>
|
||
<view slot="value">{{punishForm.HANLDE_TIME}}</view>
|
||
</u-cell>
|
||
</template>
|
||
<u-cell :border="false" v-if="type === 'acceptance'">
|
||
<view slot="label" class="flex-between">
|
||
<view class="flex1">
|
||
<u-button type="primary" text="验收" @click="fnSubmit"></u-button>
|
||
</view>
|
||
</view>
|
||
</u-cell>
|
||
</u-cell-group>
|
||
</view>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import {getKeyProjectsCheckCheck, getKeyProjectsCheckHiddenView, setImgFilesAdd} from "../../../api";
|
||
|
||
export default {
|
||
data() {
|
||
return {
|
||
HIDDEN_ID: '',
|
||
type:'',
|
||
hiddenData: {
|
||
hiddenVideos:[]
|
||
},
|
||
modalShow:false,
|
||
videoUrl:'',
|
||
form:{
|
||
CHECKTIME:uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'),
|
||
ysImgs:[],
|
||
ISPUNISH:''
|
||
},
|
||
timeShow:false,
|
||
CHECKTIME: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'),
|
||
punishForm: {},
|
||
}
|
||
},
|
||
onLoad(e) {
|
||
this.HIDDEN_ID = e.HIDDEN_ID
|
||
this.type = e.type
|
||
this.fnGetData()
|
||
},
|
||
methods: {
|
||
async fnGetData() {
|
||
let resData = await getKeyProjectsCheckHiddenView({
|
||
HIDDEN_ID: this.HIDDEN_ID,
|
||
})
|
||
for (let j = 0; j < resData.pd.hiddenImgs.length; j++) {
|
||
resData.pd.hiddenImgs[j].url =
|
||
this.$store.state.filePath + resData.pd.hiddenImgs[j].FILEPATH;
|
||
}
|
||
for (let j = 0; j < resData.pd.hiddenVideos.length; j++) {
|
||
resData.pd.hiddenVideos[j].url =
|
||
this.$store.state.filePath + resData.pd.hiddenVideos[j].FILEPATH;
|
||
}
|
||
for (let j = 0; j < resData.pd.zgImgs.length; j++) {
|
||
resData.pd.zgImgs[j].url =
|
||
this.$store.state.filePath + resData.pd.zgImgs[j].FILEPATH;
|
||
}
|
||
for (let j = 0; j < resData.pd.ysImgs.length; j++) {
|
||
resData.pd.ysImgs[j].url =
|
||
this.$store.state.filePath + resData.pd.ysImgs[j].FILEPATH;
|
||
}
|
||
this.hiddenData = resData.pd;
|
||
this.form.ysImgs = resData.pd.ysImgs
|
||
this.form.CHECKTIME = resData.pd.CHECKTIME
|
||
this.form.ISPUNISH = resData.pd.ISPUNISH
|
||
this.punishForm = resData.pd.punishForm
|
||
if(this.punishForm){
|
||
this.punishForm.HANDLE_IMG = this.$store.state.filePath +this.punishForm.HANDLE_IMG;
|
||
}
|
||
},
|
||
previewVideo(videoUrl){
|
||
this.modalShow = true;
|
||
this.videoUrl = videoUrl;
|
||
},
|
||
previewImagePunish(e) {
|
||
let urls = []
|
||
urls.push(e)
|
||
uni.previewImage({
|
||
urls
|
||
});
|
||
},
|
||
previewImage(list,current) {
|
||
let urls = []
|
||
for (let i = 0; i < list.length; i++) {
|
||
urls.push(list[i].url)
|
||
}
|
||
uni.previewImage({
|
||
urls,
|
||
current
|
||
});
|
||
},
|
||
timeConfirm(e){
|
||
this.CHECKTIME = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM')
|
||
this.timeShow = false;
|
||
},
|
||
afterRead(event) {
|
||
this.form.ysImgs = [...this.form.ysImgs, ...event.file]
|
||
},
|
||
deletePic(event) {
|
||
this.form.ysImgs = this.form.ysImgs.filter(item => item.url !== event.file.url)
|
||
},
|
||
async fnSubmit(){
|
||
if(!this.CHECKTIME){
|
||
uni.showToast({
|
||
title: `请选择验收时间`,
|
||
icon: 'none'
|
||
})
|
||
return
|
||
}
|
||
this.$set(this.form, 'CHECKTIME', this.CHECKTIME)
|
||
// if(this.form.ysImgs.length === 0){
|
||
// uni.showToast({
|
||
// title: `请上传验收图片`,
|
||
// icon: 'none'
|
||
// })
|
||
// return
|
||
// }
|
||
if(!this.form.ISPUNISH){
|
||
this.form.ISPUNISH=''
|
||
}
|
||
await getKeyProjectsCheckCheck({
|
||
...this.form,
|
||
HIDDEN_ID:this.HIDDEN_ID
|
||
})
|
||
let PromiseArr = []
|
||
for (let j = 0; j < this.form.ysImgs.length; j++) {
|
||
let imgFiles = []
|
||
imgFiles.push({
|
||
uri: this.form.ysImgs[j].url,
|
||
FFILE: this.form.ysImgs[j].url,
|
||
})
|
||
PromiseArr.push(this.fnSetImgFilesAdd(imgFiles, this.HIDDEN_ID,'5'))
|
||
}
|
||
Promise.all(PromiseArr).then((data) => {
|
||
console.log(data)
|
||
uni.hideLoading()
|
||
uni.showToast({
|
||
title: '添加成功',
|
||
})
|
||
uni.$u.route({
|
||
type: 'navigateBack'
|
||
})
|
||
}).catch((data) => {
|
||
console.log(data)
|
||
uni.showToast({
|
||
title: '添加失败!',
|
||
icon: 'error',
|
||
duration: 2000
|
||
});
|
||
})
|
||
},
|
||
async fnSetImgFilesAdd(imgFiles, FOREIGN_KEY,TYPE) {
|
||
return await setImgFilesAdd({
|
||
files: imgFiles,
|
||
formData: {
|
||
FOREIGN_KEY,
|
||
TYPE
|
||
},
|
||
loading:false
|
||
})
|
||
},
|
||
},
|
||
}
|
||
</script>
|
||
|
||
<style scoped>
|
||
|
||
</style>
|