qa-prevention-xgf-app/safetyEnvirSubPackages/pages/initiate/detail.vue

955 lines
38 KiB
Vue
Raw Permalink Normal View History

<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="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 @click="showTree('tkitree')">{{
disabled ? form.INSPECTED_DEPARTMENT_NAME : form.INSPECTED_DEPARTMENT_NAME || '请选择' }}</text>
<tki-tree ref="tkitree" :range="inspectedDepartmentTreeList" rangeKey="name" selectParent
@confirm="confirmTree($event, 'inspectedSiteuserColumns')" />
</view>
</u-cell>
<u-cell v-show="form.INSPECTED_DEPARTMENT_NAME">
<view slot="title" class="title required">被检查单位现场负责人</view>
<view slot="value">
<text @click="disabled ? null : inspectedSiteuserShow = true">{{ form.INSPECTED_SITEUSER_NAME || '请选择'
}}</text>
<u-picker :show="inspectedSiteuserShow" :columns="inspectedSiteuserColumns" keyName="NAME"
@cancel="inspectedSiteuserShow = false" @confirm="inspectedSiteuserConfirmPicker"></u-picker>
</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="disabled"></u--input>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">检查类型</view>
<view slot="value">
<text @click="showTree('tkitree1')">{{ form.INSPECTION_TYPE_NAME || '' }}</text>
<tki-tree ref="tkitree1" :range="inspectionTypeTreeList" rangeKey="name" selectParent children-name="nodes"
@confirm="confirmTree($event, 'inspectionTypeTreeList')" />
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">检查开始时间</view>
<view slot="value">
<text @click="disabled ? null : inspectionTimeStartShow = true">{{ form.INSPECTION_TIME_START || '请选择'
}}</text>
<u-datetime-picker :show="inspectionTimeStartShow" :value="form.INSPECTION_TIME_START"
@cancel="inspectionTimeStartShow = false" @confirm="inspectionTimeStartConfirm"></u-datetime-picker>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">检查结束时间</view>
<view slot="value">
<text @click="disabled ? null : inspectionTimeEndShow = true">{{ form.INSPECTION_TIME_END || '请选择' }}</text>
<u-datetime-picker :show="inspectionTimeEndShow" :value="form.INSPECTION_TIME_END"
@cancel="inspectionTimeEndShow = false" @confirm="inspectionTimeEndConfirm"></u-datetime-picker>
</view>
</u-cell>
<u-cell v-if="disabled">
<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>
<view slot="value">
<u-button type="primary" text="添加" size="mini" class="bth-mini" @click="addSituation"
v-if="!disabled"></u-button>
</view>
</u-cell>
<u-cell class="flex-none">
<view slot="value">
<view class="pr mt-10" v-for="(item, index) in form.situationList" :key="item.id">
<u--textarea v-model="item.SITUATION" placeholder="请输入检查情况" :disabled="disabled"></u--textarea>
<u-badge value="X" type="error" :offset="[-9, -10]" absolute @click.native="removeSituation(item, index)"
v-if="!disabled"></u-badge>
</view>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">检查人员</view>
<view slot="value">
<u-button type="primary" text="添加" size="mini" class="bth-mini" @click="addInspector"
v-if="!disabled"></u-button>
</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 @click="showTree('tkitreeInspector' + index, 'arr')">{{ item.INSPECTION_DEPARTMENT_NAME ||
'请选择' }}</text>
<tki-tree :ref="'tkitreeInspector' + index" :range="inspectionDepartmentTreeList" rangeKey="name"
selectParent @confirm="confirmTree($event, 'inspectorList', index)" />
</view>
</u-cell>
<u-cell class="title-show" :border="false" v-show="item.INSPECTION_DEPARTMENT_NAME">
<view slot="title">{{ index + 1 }}.检查人员</view>
<view slot="value">
<text @click="inspectionUserShowPicker(index)">{{ item.INSPECTION_USER_NAME || '' }}</text>
<u-picker :show="item.inspectionUserShow" :columns="[inspectorList[0][index]]" keyName="NAME"
@cancel="item.inspectionUserShow = false"
@confirm="inspectionUserConfirmPicker($event, index)"></u-picker>
</view>
</u-cell>
</u-cell-group>
<u-badge value="X" type="error" :offset="[-9, -10]" absolute @click.native="removeInspector(item, index)"
v-if="!disabled"></u-badge>
</view>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">发现问题</view>
<view slot="value">
<u-button type="primary" text="添加" size="mini" class="bth-mini" @click="addHidden"
v-if="!disabled"></u-button>
</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>
<u-icon name="trash-fill" class="ml-10" @tap="removeHidden(item, index)" v-if="!disabled"></u-icon>
</view>
</uni-td>
</uni-tr>
</uni-table>
</view>
</u-cell>
<template v-for="item in form.inspectorVerifyList" v-if="!type || !(type === 'add' || type === 'edit')">
<u-cell class="flex-none" v-show="item.INSPECTION_USER_OPINION">
<view slot="title" class="title">检查人意见</view>
<view slot="value" class="mt-10">
<u--textarea v-model="item.INSPECTION_USER_OPINION" disabled placeholder="请输入检查人意见"></u--textarea>
</view>
</u-cell>
<u-cell class="flex-none" v-show="item.INSPECTION_USER_SIGN_IMG">
<view slot="title" class="title">签字</view>
<view slot="value" class="mt-10">
<u--image :showLoading="true" :src="$store.state.filePath + item.INSPECTION_USER_SIGN_IMG" width="100%"
height="80px" mode="scaleToFill"
@click="previewImage($store.state.filePath + item.INSPECTION_USER_SIGN_IMG)"></u--image>
</view>
</u-cell>
</template>
<template v-if="!type || !(type === 'add' || type === 'edit')">
<u-cell class="flex-none" v-show="form.INSPECTED_SITEUSER_SIGN_IMG">
<view slot="title" class="title">被检查人意见</view>
</u-cell>
<u-cell class="flex-none" v-show="form.INSPECTED_SITEUSER_SIGN_IMG">
<view slot="title" class="title">签字</view>
<view slot="value" class="mt-10">
<u--image :showLoading="true" :src="$store.state.filePath + form.INSPECTED_SITEUSER_SIGN_IMG" width="100%"
height="80px" mode="scaleToFill"
@click="previewImage($store.state.filePath + form.INSPECTED_SITEUSER_SIGN_IMG)"></u--image>
</view>
</u-cell>
</template>
<template v-if="type && (type === 'add' || type === 'edit')">
<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 v-if="form.INSPECTION_USER_OPINION" 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>
</template>
<u-cell class="flex-none" :border="false">
<view slot="value">
2024-09-03 16:47:06 +08:00
<u-button type="primary" text="提交" class="bth" @click="$u.debounce(fnSubmit, 1000, true)" v-if="!disabled"></u-button>
</view>
</u-cell>
</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="popupDisabled" :deletable="!popupDisabled" uploadIcon="plus"
:fileList="hiddenForm.hiddenImgs" @afterRead="afterRead" @delete="deletePic" multiple
:maxCount="popupDisabled ? hiddenForm.hiddenImgs.length : 4"></u-upload>
</view>
</u-cell>
<u-cell class="flex-none" v-if="!(popupDisabled && hiddenForm.hiddenVideos.length === 0)">
<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="popupDisabled" :deletable="!popupDisabled" accept="video" uploadIcon="plus"
:fileList="hiddenForm.hiddenVideos" @afterRead="afterRead1" @delete="deletePic1" 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="popupDisabled"></u--textarea>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title">隐患部位</view>
<view slot="value">
<text @click="showTree('tkitree2')">{{
hiddenForm.HIDDENPART_NAME ? hiddenForm.HIDDENPART_NAME : hiddenForm.HIDDENPART || '请选择' }}</text>
<tki-tree ref="tkitree2" :range="hiddenRegionTreeList" rangeKey="name" selectParent children-name="nodes"
@confirm="confirmTree($event, 'hiddenRegionTreeList')" />
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">隐患级别</view>
<view slot="value">
<text @click="showTree('tkitree3')">{{ hiddenForm.HIDDENLEVEL_NAME || '' }}</text>
<tki-tree ref="tkitree3" :range="hiddenLevelTreeList" rangeKey="name" selectParent children-name="nodes"
@confirm="confirmTree($event, 'hiddenLevelTreeList')" />
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">隐患类型</view>
<view slot="value">
<text @click="showTree('tkitree4')">{{ hiddenForm.HIDDENTYPE_NAME || '' }}</text>
<tki-tree ref="tkitree4" :range="hiddenTypeTreeList" rangeKey="name" children-name="nodes"
@confirm="confirmTree($event, 'hiddenTypeTreeList')" />
</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="disabled">
<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 @click="popupDisabled ? null : discoveryTimeShow = true">{{ hiddenForm.DISCOVERYTIME || '请选择'
}}</text>
<u-datetime-picker :show="discoveryTimeShow" :value="hiddenForm.DISCOVERYTIME" :minDate="Number(1970)"
@cancel="discoveryTimeShow = false" @confirm="discoveryTimeConfirm"></u-datetime-picker>
</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="showMapModal"
v-if="!popupDisabled"></u-button>
</view>
<view slot="value" class="mt-10" v-if="hiddenForm.LONGITUDE && hiddenForm.LATITUDE">
<view>经度:{{ hiddenForm.LONGITUDE }}</view>
<view>纬度:{{ hiddenForm.LATITUDE }}</view>
</view>
</u-cell>
<u-cell class="flex-none">
<view slot="title" class="title">隐患位置描述</view>
<view slot="value" class="mt-10">
<u--textarea v-model="hiddenForm.POSITIONDESC" placeholder="请输入隐患位置描述"
:disabled="popupDisabled"></u--textarea>
</view>
</u-cell>
<u-cell>
<view slot="title" class="title required">隐患发现人</view>
<view slot="value">
<text @click="popupDisabled ? null : creatorShow = true">{{ hiddenForm.CREATOR_NAME || '请选择' }}</text>
<u-picker :show="creatorShow" :columns="creatorList" keyName="NAME" @cancel="creatorShow = false"
@confirm="creatorConfirmPicker"></u-picker>
</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>
<u-button type="primary" text="保存" class="bth ml-10" @click="popupSave" v-if="!popupDisabled"></u-button>
</view>
</u-cell>
</u-cell-group>
</view>
</u-popup>
</view>
</template>
<script>
import {
getDeptUser,
getHiddenLevel,
getHiddenRegion,
getHiddenType,
getInspectedDepartment,
getInspectionDepartment,
getInspectionType,
getInspectors,
getSafetyenvironmentalGoEdit,
setImgFilesAdd,
setSafetyenvironmentalAdd, setSafetyenvironmentalAdd_plus,
setSafetyenvironmentalEdit, setSafetyenvironmentalEdit_plus,
setVideoAdd
} from "../../api";
export default {
data() {
return {
form: {
INSPECTION_SUBJECT: '',
INSPECTED_DEPARTMENT_NAME: '',
INSPECTED_CORPINFO_ID_NAME: '',
INSPECTED_DEPARTMENT_ID: '',
INSPECTED_SITEUSER_NAME: '',
INSPECTED_SITEUSER_ID: '',
INSPECTION_PLACE: '',
INSPECTION_TYPE_NAME: '',
INSPECTION_TYPE_OTHER: '',
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'),
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: [],
CREATTIME: '',
INSPECTION_USER_OPINION: '',
INSPECTION_USER_SIGN_IMG: '',
CONFIRM_MESSAGE: ''
},
rules: {
'INSPECTION_SUBJECT': { required: true, message: '请选择检查题目' },
'INSPECTED_DEPARTMENT_NAME': { required: true, message: '请选择被检查单位' },
'INSPECTED_SITEUSER_NAME': { required: true, message: '请选择被检查单位现场负责人' },
'INSPECTION_PLACE': { required: true, message: '请输入检查场所' },
'INSPECTION_TYPE_NAME': { required: true, message: '请选择检查类型' },
'INSPECTION_TIME_START': { required: true, message: '请选择检查开始时间' },
'INSPECTION_TIME_END': { required: true, message: '请选择检查结束时间' },
},
inspectedDepartmentTreeList: [],
inspectionDepartmentTreeList: [],
inspectionTypeTreeList: [],
inspectedSiteuserShow: false,
inspectionTimeStartShow: false,
inspectionTimeEndShow: false,
inspectedSiteuserColumns: [
[]
],
inspectorList: [[]],
INSPECTION_ID: '',
vector: '',
disabled: false,
delSituations: [],
delInspectors: [],
popupShow: false,
popupDisabled: false,
hiddenForm: {
id: Math.random(),
ISRELEVANT: '2',//隐患类型
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: '',
POSITIONDESC: '',
SOURCE: '4',
CORPINFO_ID: '',
HIDDENFINDDEPT: ''
},
hiddenFormRules: {
'hiddenImgs': { required: true, message: '请上传隐患照片' },
'HIDDENDESCR': { required: true, message: '请输入隐患描述' },
'HIDDENLEVEL_NAME': { required: true, message: '请选择隐患级别' },
'HIDDENTYPE_NAME': { required: true, message: '请选择隐患类型' },
'DISCOVERYTIME': { required: true, message: '请选择隐患发现时间' },
'CREATOR_NAME': { required: true, message: '请选择隐患发现人' },
},
hiddenRegionTreeList: [],
hiddenLevelTreeList: [
{ id: 'hiddenLevel1004', name: '轻微隐患' },
{ id: 'hiddenLevel1002', name: '一般隐患' },
],
hiddenTypeTreeList: [],
creatorList: [],
delHiddens: [],
delHiddenFiles: [],
discoveryTimeShow: false,
creatorShow: false,
modalShow: false,
videoUrl: '',
signShow: false,
type: ''
}
},
async onLoad(event) {
this.INSPECTION_ID = event.INSPECTION_ID
this.vector = event.vector
this.disabled = !(event.type === 'add' || event.type === 'edit');
if (this.INSPECTION_ID) {
await this.fnGetSafetyenvironmentalGoEdit()
}
this.type = event.type
if (event.type === 'add' || event.type === 'edit') {
await this.fnGetInspectedDepartment(this.userInfo.CORPINFO_ID)
await this.fnGetInspectionDepartment(this.userInfo.CORPINFO_ID)
await this.fnGetInspectionType()
await this.fnGetHiddenRegion()
await this.fnGetHiddenType()
// this.fnGetHiddenLevel()
}
},
computed: {
userInfo() {
return this.$store.getters.getUserInfo
}
},
methods: {
async fnGetInspectedDepartment() {
console.log(this.userInfo.CORPINFO_ID)
let resData = await getInspectedDepartment(this.userInfo.CORPINFO_ID);
this.inspectedDepartmentTreeList = JSON.parse(resData.zTreeNodes);
},
async fnGetInspectionDepartment() {
let resData = await getInspectionDepartment(this.userInfo.CORPINFO_ID);
this.inspectionDepartmentTreeList = JSON.parse(resData.zTreeNodes);
},
async fnGetHiddenRegion(id) {
if (!id) {
id = { parentId: '0', DEPARTMENT_ID: this.form.INSPECTED_DEPARTMENT_ID }
}
let resData = await getHiddenRegion(id);
this.hiddenRegionTreeList = JSON.parse(resData.zTreeNodes);
},
async fnGetHiddenType() {
let resData = await getHiddenType();
this.hiddenTypeTreeList = JSON.parse(resData.zTreeNodes);
},
async fnGetHiddenLevel() {
let resData = await getHiddenLevel();
this.hiddenLevelTreeList = JSON.parse(resData.zTreeNodes);
},
async fnGetInspectionType(detpId) {
let resData = await getInspectionType({ 'DEPARTMENT_ID': detpId });
this.inspectionTypeTreeList = JSON.parse(resData.zTreeNodes);
},
async fnGetDeptUser(detpId) {
let resData = await getDeptUser({ 'DEPARTMENT_ID': detpId });
return resData.userList;
},
async fnGetInspectors(detpId) {
console.log(this.form.INSPECTED_DEPARTMENT_ID)
console.info(detpId)
let resData = await getInspectors({ 'DEPARTMENT_ID': detpId });
return resData.userList;
},
async fnGetSafetyenvironmentalGoEdit() {
let resData = await getSafetyenvironmentalGoEdit({ INSPECTION_ID: this.INSPECTION_ID })
console.info(resData)
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
}
}
console.log(resData.pd.inspectorVerifyList)
this.form = resData.pd
},
showTree(ref, type) {
if (this.popupDisabled) return;
if (this.disabled) return;
if (type === 'arr') this.$refs[ref][0]._show();
else this.$refs[ref]._show()
},
confirmTree(e, list, index) {
if (list === 'inspectedSiteuserColumns') {
this.form.INSPECTED_DEPARTMENT_ID = e[0].id
this.form.INSPECTED_DEPARTMENT_NAME = e[0].name
this.form.INSPECTED_SITEUSER_NAME = ''
this.form.INSPECTED_SITEUSER_ID = ''
this.fnGetHiddenRegion({ parentId: '0', DEPARTMENT_ID: e[0].id })
this.fnGetDeptUser(e[0].id).then(res => {
this.$set(this.inspectedSiteuserColumns, 0, res)
})
}
if (list === 'inspectionTypeTreeList') {
this.form.INSPECTION_TYPE = e[0].id
this.form.INSPECTION_TYPE_NAME = e[0].name
}
if (list === 'inspectorList') {
this.form.inspectorList[index].INSPECTION_DEPARTMENT_ID = e[0].id
this.form.inspectorList[index].INSPECTION_DEPARTMENT_NAME = e[0].name
this.form.inspectorList[index].INSPECTION_USER_NAME = ''
this.form.inspectorList[index].INSPECTION_USER_ID = ''
this.fnGetInspectors(e[0].id).then(res => {
this.$set(this.inspectorList[0], index, res)
})
}
if (list === 'hiddenRegionTreeList') {
this.hiddenForm.HIDDENPART = e[0].id
this.hiddenForm.HIDDENPART_NAME = e[0].name
}
if (list === 'hiddenLevelTreeList') {
this.hiddenForm.HIDDENLEVEL = e[0].id
this.hiddenForm.HIDDENLEVEL_NAME = e[0].name
}
if (list === 'hiddenTypeTreeList') {
this.hiddenForm.HIDDENTYPE = e[0].id
this.hiddenForm.HIDDENTYPE_NAME = e[0].name
}
},
inspectedSiteuserConfirmPicker(e) {
this.form.INSPECTED_SITEUSER_NAME = e.value[0].NAME
this.form.INSPECTED_SITEUSER_ID = e.value[0].USER_ID
this.inspectedSiteuserShow = false;
},
inspectionTimeStartConfirm(e) {
this.form.INSPECTION_TIME_START = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM')
this.inspectionTimeStartShow = false;
},
inspectionTimeEndConfirm(e) {
this.form.INSPECTION_TIME_END = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM')
this.inspectionTimeEndShow = false;
},
addSituation() {
this.form.situationList.push({ id: Math.random(), INSPECTION_SITUATION_ID: '', SITUATION: '' })
},
removeSituation(item, index) {
uni.showModal({
title: '提示',
cancelText: '确认',
confirmText: '取消',
content: '确定删除检查情况吗?',
success: (res) => {
if (res.cancel) {
this.form.situationList.splice(index, 1)
if (item.INSPECTION_SITUATION_ID) {
this.delSituations.push(item.INSPECTION_SITUATION_ID)
}
}
}
});
},
addInspector() {
this.form.inspectorList.push(
{
id: Math.random(),
inspectionUserShow: false,
INSPECTION_INSPECTOR_ID: '',
INSPECTION_DEPARTMENT_ID: '',
INSPECTION_DEPARTMENT_NAME: '',
INSPECTION_USER_ID: '',
INSPECTION_USER_INDEX: '',
INSPECTION_USER_NAME: ''
}
)
console.info(this.form.inspectorList)
},
removeInspector(item, index) {
uni.showModal({
title: '提示',
cancelText: '确认',
confirmText: '取消',
content: '确定移除检查人员吗?',
success: (res) => {
if (res.cancel) {
this.form.inspectorList.splice(index, 1);
if (item.INSPECTION_INSPECTOR_ID) {
this.delInspectors.push(item.INSPECTION_INSPECTOR_ID)
}
}
}
});
},
inspectionUserShowPicker(index) {
if (this.disabled) return;
this.form.inspectorList[index].inspectionUserShow = true
},
inspectionUserConfirmPicker(e, index) {
this.form.inspectorList[index].INSPECTION_USER_ID = e.value[0].USER_ID
this.form.inspectorList[index].INSPECTION_USER_NAME = e.value[0].NAME
this.form.inspectorList[index].inspectionUserShow = false
this.form.inspectorList[index].USER_SIDE = e.value[0].USER_SIDE
},
async fnSubmit() {
for (const key in this.rules) {
if (!this.form[key]) {
uni.showToast({
title: this.rules[key].message,
icon: "none"
})
return;
}
}
for (let i = 0; i < this.form.situationList.length; i++) {
if (!this.form.situationList[i].SITUATION) {
uni.showToast({
title: `请填写第${i + 1}项检查情况`,
icon: 'none'
})
return
}
}
for (let i = 0; i < this.form.inspectorList.length; i++) {
if (!this.form.inspectorList[i].INSPECTION_USER_NAME) {
uni.showToast({
title: `请选择第${i + 1}项检查人员`,
icon: 'none'
})
return
}
}
if (this.form.INSPECTION_USER_OPINION) {
if (!this.form.INSPECTION_USER_SIGN_IMG) {
uni.showToast({
title: `您还未签字`,
icon: 'none'
})
return
}
}
let vector = 0
for (let x in this.form.inspectorList) {
vector = 0
for (let y in this.form.inspectorList) {
if (this.form.inspectorList[y].INSPECTION_USER_ID === this.form.inspectorList[x].INSPECTION_USER_ID) vector++
}
if (vector > 1) {
uni.showToast({
title: '检查人重复!请检查数据',
icon: "none"
})
return
}
}
uni.showLoading({
title: '加载中'
});
let index = this.form.inspectorList.findIndex(item => { return item.INSPECTION_USER_ID === this.userInfo.USER_ID })
if (index < 0) {
this.form.inspectorList.push(
{
INSPECTION_INSPECTOR_ID: '', //检查人员主键
INSPECTION_DEPARTMENT_ID: this.userInfo.DEPARTMENT_ID, //检查人员部门ID
INSPECTION_DEPARTMENT_NAME: this.userInfo.DEPARTMENT_NAME,
INSPECTION_USER_ID: this.userInfo.USER_ID, //检查人员ID
INSPECTION_USER_INDEX: '',
INSPECTION_USER_NAME: this.userInfo.NAME
}
)
}
let resData
if (this.form.INSPECTION_USER_SIGN_IMG) {
let params = {
filePath: this.form.INSPECTION_USER_SIGN_IMG,
name: 'FFILE',
formData: {
...this.form,
INSPECTION_ORIGINATOR_ID: this.userInfo.USER_ID,
CORPINFO_ID: this.userInfo.CORPINFO_ID,
INSPECTION_STATUS: '1',
delInspectors: this.delInspectors.join(','),
delSituations: this.delSituations.join(','),
delHiddens: this.delHiddens.join(','),
delHiddenFiles: this.delHiddenFiles.join(','),
INSPECTORJSON: JSON.stringify(this.form.inspectorList),
SITUATIONJSON: JSON.stringify(this.form.situationList),
HIDDENJSON: JSON.stringify(this.form.hiddenList),
loading: false
}
}
resData = this.INSPECTION_ID ? await setSafetyenvironmentalEdit_plus(params) : await setSafetyenvironmentalAdd_plus(params)
} else {
let params = {
...this.form,
INSPECTION_ORIGINATOR_ID: this.userInfo.USER_ID,
INSPECTION_STATUS: '1',
delInspectors: this.delInspectors.join(','),
delSituations: this.delSituations.join(','),
delHiddens: this.delHiddens.join(','),
delHiddenFiles: this.delHiddenFiles.join(','),
INSPECTORJSON: JSON.stringify(this.form.inspectorList),
SITUATIONJSON: JSON.stringify(this.form.situationList),
HIDDENJSON: JSON.stringify(this.form.hiddenList),
loading: false
}
resData = this.INSPECTION_ID ? await setSafetyenvironmentalEdit(params) : await setSafetyenvironmentalAdd(params)
}
let PromiseArr = []
for (let i = 0; i < resData.pd.hiddenList.length; i++) {
for (let j = 0; j < this.form.hiddenList[i].hiddenImgs.length; j++) {
let imgFiles = []
imgFiles.push({
uri: this.form.hiddenList[i].hiddenImgs[j].url,
FFILE: this.form.hiddenList[i].hiddenImgs[j].url,
})
PromiseArr.push(this.fnSetImgFilesAdd(imgFiles, resData.pd.hiddenList[i].HIDDEN_ID))
}
for (let j = 0; j < this.form.hiddenList[i].hiddenVideos.length; j++) {
PromiseArr.push(this.fnSetVideoAdd(this.form.hiddenList[i].hiddenVideos[j].url, resData.pd.hiddenList[i].HIDDEN_ID))
}
}
Promise.all(PromiseArr).then(() => {
uni.hideLoading()
uni.showToast({
title: this.INSPECTION_ID ? '修改成功' : '添加成功',
})
if (this.vector !== 'list') {
uni.$u.route({
type: 'navigateBack'
})
} else {
uni.$u.route({
type: 'navigateBack',
delta: 2
})
}
}).catch((e) => {
uni.showToast({
title: '添加失败!',
icon: 'error',
duration: 2000
});
})
},
async fnSetImgFilesAdd(imgFiles, FOREIGN_KEY) {
if (imgFiles[0].uri.indexOf('qgqy.qhdsafety.com') > 0) {
return await function () {
console.log('ok')
}
}
return await setImgFilesAdd({
files: imgFiles,
formData: {
FOREIGN_KEY,
TYPE: '3'
},
loading: false
})
},
async fnSetVideoAdd(filePath, FOREIGN_KEY) {
if (filePath && filePath.indexOf('qgqy.qhdsafety.com') > 0) {
return await function () {
console.log('ok')
}
}
return await setVideoAdd({
filePath,
name: 'FFILE',
formData: {
FOREIGN_KEY,
TYPE: 102,
CORPINFO_ID: this.userInfo.CORPINFO_ID,
},
loading: false
})
},
addHidden() {
this.clearHiddenForm()
this.creatorList = [[{ NAME: this.userInfo.NAME, USER_ID: this.userInfo.USER_ID }]]
this.form.inspectorList.forEach(item => {
let index = this.creatorList[0].findIndex(items => items.USER_ID === item.INSPECTION_USER_ID)
if (index < 0) {
this.creatorList[0].push({
USER_ID: item.INSPECTION_USER_ID,
NAME: item.INSPECTION_USER_NAME,
DEPARTMENT_ID: item.INSPECTION_DEPARTMENT_ID
})
}
})
this.popupShow = true
this.popupDisabled = false
},
showHidden(item) {
this.clearHiddenForm()
this.creatorList = [[]]
this.form.inspectorList.forEach(item => {
this.creatorList[0].push({ USER_ID: item.INSPECTION_USER_ID, NAME: item.INSPECTION_USER_NAME, DEPARTMENT_ID: item.INSPECTION_DEPARTMENT_ID })
})
this.hiddenForm = item
this.popupShow = true
this.popupDisabled = true
},
clearHiddenForm() {
this.hiddenForm = {
id: Math.random(),
ISRELEVANT: '2',//隐患类型
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: '',
POSITIONDESC: '',
SOURCE: '4'
}
},
removeHidden(item, index) {
uni.showModal({
title: '提示',
cancelText: '确认',
confirmText: '取消',
content: '确定移除发现问题吗?',
success: (res) => {
if (res.cancel) {
this.form.hiddenList.splice(index, 1);
if (item.HIDDEN_ID) {
this.delHiddens.push(item.HIDDEN_ID)
}
}
}
});
},
afterRead(event) {
this.hiddenForm.hiddenImgs = [...this.hiddenForm.hiddenImgs, ...event.file]
},
deletePic(event) {
if (this.hiddenForm.hiddenImgs[event.index].IMGFILES_ID) {
this.delHiddenFiles.push(this.hiddenForm.hiddenImgs[event.index].FILEPATH)
}
this.hiddenForm.hiddenImgs = this.hiddenForm.hiddenImgs.filter(item => item.url !== event.file.url)
},
afterRead1(event) {
this.hiddenForm.hiddenVideos = [...this.hiddenForm.hiddenVideos, ...event.file]
},
deletePic1(event) {
this.hiddenForm.hiddenVideos = this.hiddenForm.hiddenVideos.filter(item => item.url !== event.file.url)
},
discoveryTimeConfirm(e) {
this.hiddenForm.DISCOVERYTIME = uni.$u.timeFormat(e.value, 'yyyy-mm-dd hh:MM')
this.discoveryTimeShow = false;
},
showMapModal() {
let _this = this
uni.navigateTo({
url: '/pages/map/mapPro',
events: {
acceptDataFromOpenedPage: function (e) {
_this.hiddenForm.LONGITUDE = e.data.longitue;
_this.hiddenForm.LATITUDE = e.data.latitude;
}
},
success: function (res) {
res.eventChannel.emit('acceptDataFromOpenerPage', { data: { title: '安全环保检查发起' } })
}
})
},
creatorConfirmPicker(e) {
this.hiddenForm.CREATOR = e.value[0].USER_ID
this.hiddenForm.CREATOR_NAME = e.value[0].NAME
this.hiddenForm.HIDDENFINDDEPT = e.value[0].DEPARTMENT_ID
this.creatorShow = false;
},
popupClose() {
this.popupShow = false
},
popupSave() {
for (const key in this.hiddenFormRules) {
if (!this.hiddenForm[key]) {
uni.showToast({
title: this.hiddenFormRules[key].message,
icon: "none"
})
return;
}
}
this.hiddenForm.SOURCE = 4
this.form.hiddenList.push(this.hiddenForm)
this.popupClose()
},
previewImage(current) {
if (false) {
uni.previewImage({
urls: [current],
current
});
}
},
previewVideo(videoUrl) {
this.modalShow = true;
this.videoUrl = videoUrl;
},
signConfirm(signImg) {
this.form.INSPECTION_USER_SIGN_IMG = signImg.filePath
this.form.CONFIRM_MESSAGE = '1'
},
},
}
</script>
<style scoped lang="scss"></style>