qa-regulatory-gwj-app/pages/key-project-management/penalty-management/viewHidden.vue

329 lines
12 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<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" v-show="hiddenData.STATE==='2'||hiddenData.STATE==='4'">
<view class="view-title">
<u--text text="隐患整改"></u--text>
</view>
</view>
<u-cell v-show="hiddenData.STATE==='2'||hiddenData.STATE==='4'">
<view slot="title" class="title">整改期限</view>
<view slot="value">
<text>{{ hiddenData.RECTIFICATIONDEADLINE }}</text>
</view>
</u-cell>
<u-cell v-show="hiddenData.STATE==='2'||hiddenData.STATE==='4'">
<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 v-show="hiddenData.STATE==='2'||hiddenData.STATE==='4'">
<view slot="title" class="title">整改时间</view>
<view slot="value">
<text>{{ hiddenData.RECTIFICATIONTIME }}</text>
</view>
</u-cell>
<u-cell v-show="hiddenData.STATE==='2'||hiddenData.STATE==='4'">
<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="hiddenData.STATE==='4'">
<view class="view-title">
<u--text text="验收信息"></u--text>
</view>
</view>
<u-cell v-show="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-show="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="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-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;
}
console.log(this.$store.state.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;
},
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>