| | |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业申请单位" prop="depIdList"> |
| | | <el-cascader style="width: 100%" v-model="form.depIdList" :options="lists.departList2" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/> |
| | | <el-cascader style="width: 100%" v-model="form.depIdList" :options="lists.departList" :props="props1" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业负责人" prop="headUids"> |
| | | <el-select v-model="form.headUids" multiple filterable @change="getStartEndIds" clearable> |
| | | <el-select v-model="form.headUids" multiple :multiple-limit="1" filterable @change="getStartEndIds" clearable> |
| | | <el-option |
| | | v-for="item in lists.workerList" |
| | | :key="item.uid" |
| | |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="作业人" prop="operatorUids"> |
| | | <el-select v-model="form.operatorUids" filterable multiple clearable> |
| | | <el-option |
| | | v-for="item in zyList" |
| | | :key="item.uid" |
| | | :label="item.realName" |
| | | :value="item.uid" |
| | | /> |
| | | </el-select> |
| | | <!-- <el-cascader style="width: 100%" v-model="form.operatorUids" :options="lists.spList.opList" :props="cas2Props" @change="singleSelect($event,'作业人')" filterable :show-all-levels="false"/>--> |
| | | <!-- <el-select v-model="form.operatorUids" filterable multiple clearable>--> |
| | | <!-- <el-option--> |
| | | <!-- v-for="item in zyList"--> |
| | | <!-- :key="item.uid"--> |
| | | <!-- :label="item.realName"--> |
| | | <!-- :value="item.uid"--> |
| | | <!-- />--> |
| | | <!-- </el-select>--> |
| | | <el-cascader style="width: 100%" v-model="form.operatorUids" :options="zyList?zyList:lists.spList.opList" :props="cas2Props" @change="singleSelect($event,'作业人')" filterable :show-all-levels="false"/> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="绑定执法仪" prop="cameraIds"> |
| | | <el-form-item label="绑定执法仪"> |
| | | <el-select v-model="form.cameraIds" multiple clearable> |
| | | <el-option |
| | | v-for="item in lists.deviceList" |
| | |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="完工验收" prop="acceptUid"> |
| | | <el-select v-model="form.acceptUid" filterable clearable> |
| | | <el-form-item label="完工验收" prop="acceptUids"> |
| | | <el-select v-model="form.acceptUids" filterable multiple clearable> |
| | | <el-option |
| | | v-for="item in lists.workerList" |
| | | :key="item.uid" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="最终审批人" prop="lastApprover"> |
| | | <el-select v-model="form.lastApprover" filterable clearable> |
| | | <el-option |
| | | v-for="item in lists.workerList" |
| | | :key="item.uid" |
| | | :label="item.username" |
| | | :value="item.uid" |
| | | /> |
| | | </el-select> |
| | | <!-- <el-row>--> |
| | | <!-- <el-col :span="12">--> |
| | | <!-- <el-form-item label="最终审批人" prop="lastApprover">--> |
| | | <!-- <el-select v-model="form.lastApprover" filterable clearable>--> |
| | | <!-- <el-option--> |
| | | <!-- v-for="item in lists.workerList"--> |
| | | <!-- :key="item.uid"--> |
| | | <!-- :label="item.username"--> |
| | | <!-- :value="item.uid"--> |
| | | <!-- />--> |
| | | <!-- </el-select>--> |
| | | <!-- <el-cascader style="width: 100%" v-model="form.lastApprover" :options="lists.workerList" :props="cas4Props" filterable :show-all-levels="false"/>--> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <!-- </el-form-item>--> |
| | | <!-- </el-col>--> |
| | | <!-- </el-row>--> |
| | | </div> |
| | | </el-form> |
| | | <div class="applyBtn"> |
| | |
| | | </template> |
| | | |
| | | <script lang="ts"> |
| | | import { toRefs, reactive, defineComponent, ref, defineAsyncComponent, onMounted, onUpdated } from 'vue'; |
| | | import {toRefs, reactive, defineComponent, ref, defineAsyncComponent, onMounted, onUpdated, nextTick} from 'vue'; |
| | | import { storeToRefs } from 'pinia'; |
| | | import { initBackEndControlRoutes } from '/@/router/backEnd'; |
| | | import {useUserInfo} from "/@/stores/userInfo"; |
| | |
| | | involveOtherWork: [], |
| | | safetyMeasureUids: [], |
| | | approvalDepBasicList: [], |
| | | acceptUid: null, |
| | | acceptUids: [], |
| | | lastApprover: null, |
| | | startOrEndUids: [], |
| | | cameraIds: [], |
| | |
| | | } |
| | | }, |
| | | cas2Props: { |
| | | expandTrigger: 'hover', |
| | | value: 'uid', |
| | | label: 'realName', |
| | | multiple: true, |
| | | checkStrictly: false, |
| | | lazy: true, |
| | | async lazyLoad(node, resolve){ |
| | | const { value, level } = node |
| | | let nodes = [] |
| | | if(level == 0){ |
| | | nodes = props.lists.spList.opList |
| | | }else{ |
| | | let res = await userApi().getCtf({uid: value}) |
| | | if(res.data.code == 200){ |
| | | nodes = res.data.data |
| | | }else{ |
| | | ElMessage({ |
| | | type: 'warning', |
| | | message: res.data.msg |
| | | }) |
| | | } |
| | | } |
| | | nodes=nodes.map(item => ({ |
| | | uid: item.certNo +','+ item.certExpiredAt+','+item.certTypeName, |
| | | realName: node.label + '(' +item.certTypeName +' ' + item.certExpiredAt + ')', |
| | | leaf: level >= 1 |
| | | })) |
| | | resolve(nodes) |
| | | } |
| | | checkStrictly: true, |
| | | children: 'certList' |
| | | }, |
| | | cas3Props: { |
| | | expandTrigger: 'hover', |
| | |
| | | } |
| | | } |
| | | nodes=nodes.map(item => ({ |
| | | uid: item.certNo +','+ item.certExpiredAt+','+item.certTypeName, |
| | | realName: node.label + '(' +item.certTypeName +' ' + item.certExpiredAt + ')', |
| | | uid: item.certNo +','+ item.certExpiredAt, |
| | | realName: '(' +item.certTypeName +' ' + item.certExpiredAt + ')', |
| | | leaf: level >= 1 |
| | | })) |
| | | resolve(nodes) |
| | |
| | | analystUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | guardianUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | riskIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | expStartTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | expEndTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | safetyMeasureUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | acceptUid: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | acceptUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | lastApprover: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | startOrEndUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | | "workDetail.methodList": [{ required: true, message: '该内容不能为空', trigger: 'blur' }], |
| | |
| | | getBasicData() |
| | | }) |
| | | |
| | | |
| | | onUpdated(()=>{ |
| | | console.log('false loading') |
| | | }) |
| | | |
| | | const getWorkerList = (val)=>{ |
| | | const filteredList = props.lists.spList.opList.filter(i => state.form.workDepIds.includes(i.depId)); |
| | | const getWorkerList = ()=>{ |
| | | let idList:Array<any> = [] |
| | | for(let i of state.form.workDepIds){ |
| | | idList = idList.concat(getListFromDep(getIdListsFormDepId(props.lists.departList,i))) |
| | | } |
| | | const depLists = [...new Set(idList)] |
| | | const filteredList = props.lists.spList.opList.filter(i => depLists.includes(i.depId)); |
| | | if(filteredList && filteredList.length>0){ |
| | | state.zyList = filteredList |
| | | }else{ |
| | | state.zyList = props.lists.spList.opList |
| | | } |
| | | } |
| | | |
| | | const getListFromDep = (dep) =>{ |
| | | let depIds = [] |
| | | depIds.push(dep.depId) |
| | | if (Array.isArray(dep.children)) { |
| | | for (let child of dep.children) { |
| | | depIds = depIds.concat(getListFromDep(child)); |
| | | } |
| | | } |
| | | return depIds; |
| | | } |
| | | |
| | | const getIdListsFormDepId=(DepList:Array<any>,id:number)=>{ |
| | | for(const i of DepList){ |
| | | if(i.depId === id){ |
| | | return i |
| | | } |
| | | if(Array.isArray(i.children)){ |
| | | const node:any = getIdListsFormDepId(i.children,id) |
| | | if(node){ |
| | | return node |
| | | } |
| | | } |
| | | } |
| | | return null |
| | | } |
| | | |
| | | const openWorkSelect = ()=>{ |
| | |
| | | return arr.map((i)=>{ |
| | | return { |
| | | uid: i[0], |
| | | certificate: i[1].split(',')[0], |
| | | certExpiredAt: i[1].split(',')[1], |
| | | certTypeName: i[1].split(',')[2] |
| | | certificate: i[1]?i[1].split(',')[0]:'', |
| | | certExpiredAt: i[1]?i[1].split(',')[1]:'', |
| | | certTypeName: '' |
| | | } |
| | | }) |
| | | } |
| | |
| | | temp.push(i) |
| | | } |
| | | } |
| | | if(type == '作业人'){state.form.operatorUids = temp} |
| | | if(type == '作业人'){state.form.operatorUids = JSON.parse(JSON.stringify(temp))} |
| | | // if(type == '分析人'){state.form.analystUids = temp} |
| | | if(type == '监护人'){state.form.guardianUids = temp} |
| | | if(type == '确认人'){state.form.safetyMeasureUids = temp} |
| | | if(type == '结束人'){state.form.startOrEndUids = temp} |
| | | console.log(value,state.form.operatorUids,55) |
| | | } |
| | | } |
| | | |
| | | const submitForm = async (formEl: FormInstance | undefined) => { |
| | | console.log(state.form.operatorUids,666) |
| | | if (!formEl) return |
| | | await formEl.validate(async (valid, fields) => { |
| | | if (valid) { |
| | |
| | | return item |
| | | }) |
| | | data.workDetail.workMethod = data.workDetail.methodList.join(',') |
| | | data.operatorUids = transform2Arr(data.operatorUids) |
| | | // data.operatorUids = transform2Arr(data.operatorUids) |
| | | data.operatorUids = transformArr(data.operatorUids) |
| | | data.headUids = transform2Arr(data.headUids) |
| | | // data.analystUids = transformArr(data.analystUids) |
| | | data.guardianUids = transform2Arr(data.guardianUids) |
| | | data.safetyMeasureUids = transform2Arr(data.safetyMeasureUids) |
| | | data.startOrEndUids = transform2Arr(data.startOrEndUids) |
| | | data.acceptUid = transform2EObj(data.acceptUid) |
| | | data.acceptUids = transform2Arr(data.acceptUids) |
| | | data.lastApprover = transform2EObj(data.lastApprover) |
| | | const res = await workApplyApi().submitFireApply(data) |
| | | if (res.data.code === '200') { |