415 lines
16 KiB
Vue
415 lines
16 KiB
Vue
<template>
|
||
<view class="content">
|
||
<view class="card">
|
||
<u-cell-group :border="false">
|
||
<u-cell>
|
||
<view slot="title" class="title required">检查题目:</view>
|
||
<view slot="value">
|
||
<u-radio-group v-model="form.INSPECTION_SUBJECT" placement="row" disabled>
|
||
<u-radio label="安全" name="安全"></u-radio>
|
||
<u-radio label="环保" name="环保" class="ml-10"></u-radio>
|
||
<u-radio label="综合" name="综合" class="ml-10"></u-radio>
|
||
</u-radio-group>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell>
|
||
<view slot="title" class="title required">被检查单位:</view>
|
||
<view slot="value">
|
||
<text>{{ form.INSPECTED_CORPINFO_ID_NAME }}</text>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell>
|
||
<view slot="title" class="title required">被检查单位现场负责人:</view>
|
||
<view slot="value">
|
||
<text>{{ form.INSPECTED_SITEUSER_NAME }}</text>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell>
|
||
<view slot="title" class="title required">检查场所:</view>
|
||
<view slot="value">
|
||
<u--input v-model="form.INSPECTION_PLACE" border="none" placeholder="请输入检查场所" inputAlign="right"
|
||
disabled></u--input>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell>
|
||
<view slot="title" class="title required">检查类型:</view>
|
||
<view slot="value">
|
||
<text>{{ form.INSPECTION_TYPE_NAME }}</text>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell>
|
||
<view slot="title" class="title required">检查开始时间:</view>
|
||
<view slot="value">
|
||
<text>{{ form.INSPECTION_TIME_START }}</text>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell>
|
||
<view slot="title" class="title required">检查结束时间:</view>
|
||
<view slot="value">
|
||
<text>{{ form.INSPECTION_TIME_END }}</text>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell>
|
||
<view slot="title" class="title required">记录填写时间:</view>
|
||
<view slot="value">
|
||
<text>{{ form.CREATTIME }}</text>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell>
|
||
<view slot="title" class="title">检查情况:</view>
|
||
</u-cell>
|
||
<u-cell class="flex-none">
|
||
<view slot="value">
|
||
<view class="pr mt-10" v-for="(item) in form.situationList" :key="item.id">
|
||
<u--textarea v-model="item.SITUATION" placeholder="请输入检查情况" disabled></u--textarea>
|
||
</view>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell>
|
||
<view slot="title" class="title">检查人员:</view>
|
||
</u-cell>
|
||
<u-cell class="title-none">
|
||
<view slot="value" style="flex: 1">
|
||
<view class="pr mt-10" v-for="(item, index) in form.inspectorList" :key="item.id">
|
||
<u-cell-group :border="false" class="border">
|
||
<u-cell class="title-show">
|
||
<view slot="title">{{ index + 1 }}.检查人员单位</view>
|
||
<view slot="value">
|
||
<text>{{ item.INSPECTION_DEPARTMENT_NAME }}</text>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell class="title-show" :border="false">
|
||
<view slot="title">{{ index + 1 }}.检查人员</view>
|
||
<view slot="value">
|
||
<text>{{ item.INSPECTION_USER_NAME }}</text>
|
||
</view>
|
||
</u-cell>
|
||
</u-cell-group>
|
||
</view>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell>
|
||
<view slot="title" class="title">发现问题:</view>
|
||
</u-cell>
|
||
<u-cell class="title-none">
|
||
<view slot="value" style="flex: 1">
|
||
<uni-table border stripe emptyText="暂无更多数据">
|
||
<uni-tr>
|
||
<uni-th align="center">序号</uni-th>
|
||
<uni-th align="center">隐患部位</uni-th>
|
||
<uni-th align="center">隐患描述</uni-th>
|
||
<uni-th align="center">操作</uni-th>
|
||
</uni-tr>
|
||
<uni-tr v-for="(item, index) in form.hiddenList" :key="item.HIDDEN_ID || item.id">
|
||
<uni-td>{{ index + 1 }}</uni-td>
|
||
<uni-td>{{ item.HIDDENPART_NAME ? item.HIDDENPART_NAME : item.HIDDENPART }}</uni-td>
|
||
<uni-td>{{ item.HIDDENDESCR }}</uni-td>
|
||
<uni-td>
|
||
<view class="flex-between">
|
||
<u-icon name="eye-fill" @tap="showHidden(item, index)"></u-icon>
|
||
</view>
|
||
</uni-td>
|
||
</uni-tr>
|
||
</uni-table>
|
||
</view>
|
||
</u-cell>
|
||
<template v-if="type === 'verify'">
|
||
<u-cell class="flex-none">
|
||
<view slot="title" class="title">检查人意见:</view>
|
||
<view slot="value" class="mt-10">
|
||
<u--textarea v-model="form.INSPECTION_USER_OPINION" placeholder="请输入检查人意见"></u--textarea>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell class="flex-none">
|
||
<view slot="title" class="title flex-between">
|
||
签字:
|
||
<u-button type="primary" text="手写添加" size="mini" class="bth-mini" @click="signShow = true"></u-button>
|
||
</view>
|
||
<view slot="value" class="mt-10">
|
||
<u--image v-show="form.INSPECTION_USER_SIGN_IMG" :showLoading="true" :src="form.INSPECTION_USER_SIGN_IMG"
|
||
width="100%" height="80px" mode="scaleToFill"
|
||
@click="previewImage(form.INSPECTION_USER_SIGN_IMG)"></u--image>
|
||
<sign v-if="signShow" :signShow.sync="signShow" @confirm="signConfirm"></sign>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell class="flex-none" :border="false">
|
||
<view slot="value" class="flex-between">
|
||
<u-button type="primary" class="bth" text="通过" @click="$u.debounce(fnSubmit(1), 1000, true)"></u-button>
|
||
<u-button type="error" class="bth ml-10" text="不通过"
|
||
@click="$u.debounce(fnSubmit(-1), 1000, true)"></u-button>
|
||
</view>
|
||
</u-cell>
|
||
</template>
|
||
<view v-for="(item, index) in esipList" :key="index">
|
||
<template v-if="item.INSPECTION_USER_SIGN_IMG">
|
||
<u-cell class="flex-none">
|
||
<view slot="title" class="title">检查人意见:</view>
|
||
<view slot="value" class="mt-10">
|
||
<text>{{ item.INSPECTION_USER_OPINION }}</text>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell class="flex-none">
|
||
<view slot="title" class="title">签字:</view>
|
||
<view slot="value" class="mt-10">
|
||
<u--image :showLoading="true" mode="scaleToFill"
|
||
:src="$store.state.filePath + item.INSPECTION_USER_SIGN_IMG" width="100%" height="80px"
|
||
@click="previewImage($store.state.filePath + item.INSPECTION_USER_SIGN_IMG)"></u--image>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell>
|
||
<view slot="title" class="title">审核状态:</view>
|
||
<view slot="value"><text>同意</text></view>
|
||
</u-cell>
|
||
</template>
|
||
</view>
|
||
</u-cell-group>
|
||
</view>
|
||
<u-popup :show="popupShow" @close="popupShow = false" mode="right" :closeOnClickOverlay="false"
|
||
:customStyle="{ width: '85vw', overflowY: 'auto' }">
|
||
<view class="card">
|
||
<u-cell-group :border="false">
|
||
<u-cell class="flex-none">
|
||
<view slot="title" class="title required">隐患照片:</view>
|
||
<view slot="value" class="mt-10">
|
||
<u-upload disabled deletable uploadIcon="plus" :fileList="hiddenForm.hiddenImgs" multiple
|
||
:maxCount="4"></u-upload>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell class="flex-none">
|
||
<view slot="title" class="title flex-between">
|
||
隐患视频:
|
||
<u-icon v-if="hiddenForm.hiddenVideos.length !== 0 && hiddenForm.hiddenVideos[0].url"
|
||
name="play-circle-fill" size="30" @click="previewVideo(hiddenForm.hiddenVideos[0].url)"></u-icon>
|
||
</view>
|
||
<view slot="value" class="mt-10">
|
||
<u-upload disabled deletable accept="video" uploadIcon="plus" :fileList="hiddenForm.hiddenVideos" multiple
|
||
:maxCount="1"></u-upload>
|
||
<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>
|
||
<u-cell class="flex-none">
|
||
<view slot="title" class="title required">隐患描述:</view>
|
||
<view slot="value" class="mt-10">
|
||
<u--textarea v-model="hiddenForm.HIDDENDESCR" placeholder="请输入隐患描述" disabled></u--textarea>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell>
|
||
<view slot="title" class="title required">隐患部位:</view>
|
||
<view slot="value">
|
||
<text>{{ hiddenForm.HIDDENPART_NAME ? hiddenForm.HIDDENPART_NAME : hiddenForm.HIDDENPART }}</text>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell>
|
||
<view slot="title" class="title required">隐患级别:</view>
|
||
<view slot="value">
|
||
<text>{{ hiddenForm.HIDDENLEVEL_NAME }}</text>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell>
|
||
<view slot="title" class="title required">是否是相关方:</view>
|
||
<view slot="value">
|
||
<u-radio-group v-model="hiddenForm.ISRELEVANT" placement="row" disabled="false">
|
||
<u-radio label="是" name="1" class="ml-10"></u-radio>
|
||
<u-radio label="否" name="2" class="ml-10"></u-radio>
|
||
</u-radio-group>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell>
|
||
<view slot="title" class="title required">隐患类型:</view>
|
||
<view slot="value">
|
||
<text>{{ hiddenForm.HIDDENTYPE_NAME }}</text>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell>
|
||
<view slot="title" class="title required">隐患发现时间:</view>
|
||
<view slot="value">
|
||
<text>{{ hiddenForm.DISCOVERYTIME }}</text>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell class="flex-none">
|
||
<view slot="title" class="title required">隐患上报位置:</view>
|
||
<view slot="value" class="mt-10">
|
||
<view>经度:{{ hiddenForm.LONGITUDE }}</view>
|
||
<view>纬度:{{ hiddenForm.LATITUDE }}</view>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell class="flex-none">
|
||
<view slot="title" class="title required">隐患位置描述:</view>
|
||
<view slot="value" class="mt-10">
|
||
<u--textarea v-model="hiddenForm.POSITIONDESC" placeholder="请输入隐患位置描述" disabled></u--textarea>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell>
|
||
<view slot="title" class="title required">隐患发现人:</view>
|
||
<view slot="value">
|
||
<text>{{ hiddenForm.CREATOR_NAME }}</text>
|
||
</view>
|
||
</u-cell>
|
||
<u-cell class="flex-none" :border="false">
|
||
<view slot="value" class="flex-between">
|
||
<u-button type="info" text="取消" class="bth" @click="popupClose"></u-button>
|
||
</view>
|
||
</u-cell>
|
||
</u-cell-group>
|
||
</view>
|
||
</u-popup>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import { getSafetyenvironmentalGoEdit, setSafetyenvironmentalVerify } from "../../api";
|
||
import sign from "../../../components/sign/sign";
|
||
|
||
export default {
|
||
components: {
|
||
sign,
|
||
},
|
||
data() {
|
||
return {
|
||
form: {
|
||
INSPECTION_SUBJECT: '',
|
||
INSPECTED_DEPARTMENT_NAME: '',
|
||
INSPECTED_DEPARTMENT_ID: '',
|
||
INSPECTED_SITEUSER_NAME: '',
|
||
INSPECTED_SITEUSER_ID: '',
|
||
INSPECTION_PLACE: '',
|
||
INSPECTION_TYPE_NAME: '',
|
||
INSPECTION_TIME_START: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'),
|
||
INSPECTION_TIME_END: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'),
|
||
CREATTIME: '',
|
||
situationList: [{ id: Math.random(), INSPECTION_SITUATION_ID: '', SITUATION: '' }],
|
||
inspectorList: [{
|
||
id: Math.random(),
|
||
inspectionUserShow: false,
|
||
INSPECTION_INSPECTOR_ID: '',
|
||
INSPECTION_DEPARTMENT_ID: '',
|
||
INSPECTION_DEPARTMENT_NAME: '',
|
||
INSPECTION_USER_ID: '',
|
||
INSPECTION_USER_NAME: ''
|
||
}],
|
||
hiddenList: [],
|
||
INSPECTION_USER_OPINION: '',
|
||
INSPECTION_USER_SIGN_IMG: ''
|
||
},
|
||
rules: {
|
||
'INSPECTION_USER_OPINION': { required: true, message: '请输入检查人意见' },
|
||
'INSPECTION_USER_SIGN_IMG': { required: true, message: '请签字' },
|
||
},
|
||
INSPECTION_ID: '',
|
||
type: '',
|
||
INSPECTION_USER_ID: '',
|
||
INSPECTION_INSPECTOR_ID: '',
|
||
popupShow: false,
|
||
hiddenForm: {
|
||
hiddenImgs: [],
|
||
hiddenVideos: [],
|
||
HIDDENDESCR: '',
|
||
HIDDENPART_NAME: '',
|
||
HIDDENPART: '',
|
||
HIDDENLEVEL_NAME: '',
|
||
HIDDENLEVEL: '',
|
||
HIDDENTYPE_NAME: '',
|
||
HIDDENTYPE: '',
|
||
DISCOVERYTIME: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'),
|
||
LONGITUDE: '',
|
||
LATITUDE: '',
|
||
CREATOR_NAME: '',
|
||
CREATOR: '',
|
||
},
|
||
signShow: false,
|
||
modalShow: false,
|
||
videoUrl: '',
|
||
esipList: [] //审核过成意见
|
||
}
|
||
},
|
||
onLoad(event) {
|
||
this.INSPECTION_ID = event.INSPECTION_ID
|
||
this.type = event.type
|
||
this.INSPECTION_INSPECTOR_ID = event.INSPECTION_INSPECTOR_ID
|
||
this.INSPECTION_USER_ID = event.INSPECTION_USER_ID
|
||
if (this.INSPECTION_ID) {
|
||
this.fnGetSafetyenvironmentalGoEdit()
|
||
}
|
||
},
|
||
computed: {
|
||
userInfo() {
|
||
return this.$store.getters.getUserInfo
|
||
}
|
||
},
|
||
methods: {
|
||
async fnGetSafetyenvironmentalGoEdit() {
|
||
let resData = await getSafetyenvironmentalGoEdit({ INSPECTION_ID: this.INSPECTION_ID })
|
||
for (let i = 0; i < resData.pd.hiddenList.length; i++) {
|
||
for (let j = 0; j < resData.pd.hiddenList[i].hiddenImgs.length; j++) {
|
||
resData.pd.hiddenList[i].hiddenImgs[j].url = this.$store.state.filePath + resData.pd.hiddenList[i].hiddenImgs[j].FILEPATH
|
||
}
|
||
for (let j = 0; j < resData.pd.hiddenList[i].hiddenVideos.length; j++) {
|
||
resData.pd.hiddenList[i].hiddenVideos[j].url = this.$store.state.filePath + resData.pd.hiddenList[i].hiddenVideos[j].FILEPATH
|
||
}
|
||
}
|
||
this.form = resData.pd
|
||
this.esipList = resData.esipList
|
||
},
|
||
async fnSubmit(INSPECTION_STATUS) {
|
||
for (const key in this.rules) {
|
||
if (!this.form[key]) {
|
||
uni.showToast({
|
||
title: this.rules[key].message,
|
||
icon: "none"
|
||
})
|
||
return;
|
||
}
|
||
}
|
||
await setSafetyenvironmentalVerify({
|
||
filePath: this.form.INSPECTION_USER_SIGN_IMG,
|
||
name: 'FFILE',
|
||
formData: {
|
||
INSPECTION_STATUS,
|
||
INSPECTION_ID: this.INSPECTION_ID,
|
||
INSPECTION_INSPECTOR_ID: this.INSPECTION_INSPECTOR_ID,
|
||
INSPECTION_USER_ID: this.INSPECTION_USER_ID,
|
||
INSPECTION_USER_OPINION: this.form.INSPECTION_USER_OPINION,
|
||
INSPECTION_USER_SIGN_TIME: uni.$u.timeFormat(new Date(), 'yyyy-mm-dd hh:MM'),
|
||
ACTION_USER_ID: this.userInfo.USER_ID,
|
||
ACTION_ID: this.userInfo.USER_ID,
|
||
},
|
||
})
|
||
uni.showToast({
|
||
title: '核查成功',
|
||
})
|
||
uni.$u.route({
|
||
type: 'navigateBack'
|
||
})
|
||
},
|
||
showHidden(item) {
|
||
this.hiddenForm = item
|
||
this.popupShow = true
|
||
},
|
||
popupClose() {
|
||
this.popupShow = false
|
||
},
|
||
signConfirm(signImg) {
|
||
this.form.INSPECTION_USER_SIGN_IMG = signImg.filePath
|
||
},
|
||
previewImage(current) {
|
||
if (false) {
|
||
uni.previewImage({
|
||
urls: [current],
|
||
current
|
||
});
|
||
}
|
||
},
|
||
previewVideo(videoUrl) {
|
||
this.modalShow = true;
|
||
this.videoUrl = videoUrl;
|
||
}
|
||
},
|
||
}
|
||
</script>
|
||
|
||
<style></style>
|