330 lines
11 KiB
Vue
330 lines
11 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 class="flex-none">
|
|||
|
<view slot="title" class="title">隐患照片:</view>
|
|||
|
<view slot="value" class="mt-10">
|
|||
|
<u-row>
|
|||
|
<u-col span="3" v-for="(item,index) in hiddenData.hiddenImgs" :key="index">
|
|||
|
<u--image :showLoading="true" :src="item.url"
|
|||
|
width="80px" height="80px" @click="previewImage(hiddenData.hiddenImgs,item.url)"></u--image>
|
|||
|
</u-col>
|
|||
|
</u-row>
|
|||
|
</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 class="flex-none">
|
|||
|
<view slot="title" class="title">隐患描述:</view>
|
|||
|
<view slot="value" 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 class="flex-none">
|
|||
|
<view slot="title" class="title">整改照片:</view>
|
|||
|
<view slot="value" class="mt-10">
|
|||
|
<u-row>
|
|||
|
<u-col span="3" v-for="(item,index) in hiddenData.zgImgs" :key="index">
|
|||
|
<u--image :showLoading="true" :src="item.url"
|
|||
|
width="80px" height="80px" @click="previewImage(hiddenData.zgImgs,item.url)"></u--image>
|
|||
|
</u-col>
|
|||
|
</u-row>
|
|||
|
</view>
|
|||
|
</u-cell>
|
|||
|
<view class="card">
|
|||
|
<view class="view-title">
|
|||
|
<u--text text="隐患验收"></u--text>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<u-cell>
|
|||
|
<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 class="flex-none">
|
|||
|
<view slot="title" class="title required">验收图片:</view>
|
|||
|
<view slot="value" 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 class="flex-none" v-if="punishForm.HANLDE_TIME">
|
|||
|
<view slot="title" class="title">罚款缴纳单:</view>
|
|||
|
<view slot="value" class="mt-10">
|
|||
|
<u--image :showLoading="true" :src="punishForm.HANDLE_IMG"
|
|||
|
width="80px" height="80px" @click="previewImage(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 class="flex-none" :border="false" v-if="type === 'acceptance'">
|
|||
|
<view slot="value" class="flex-between">
|
|||
|
<u-button type="primary" text="验收" class="bth" @click="fnSubmit"></u-button>
|
|||
|
</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
|
|||
|
},
|
|||
|
previewVideo(videoUrl){
|
|||
|
this.modalShow = true;
|
|||
|
this.videoUrl = videoUrl;
|
|||
|
},
|
|||
|
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>
|