From 15315b1772036eb5168792aac0121f6e9005b11e Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期一, 08 一月 2024 10:16:26 +0800
Subject: [PATCH] Default Changelist
---
src/layout/navBars/breadcrumb/user.vue | 12
src/views/newSpecialWorkSystem/workTicket/wdsq/index.vue | 10
src/views/system/personShiftManage/scheduleManage/schedule/index.vue | 65 +
src/views/newSpecialWorkSystem/workTicket/zysq/index.vue | 119 ++-
src/utils/toolsValidate.ts | 5
src/views/system/user/component/dialogCertificate.vue | 1
src/views/newSpecialWorkSystem/workTicket/zysq/components/broken.vue | 224 +++--
src/views/newSpecialWorkSystem/workTicket/zysq/components/fire.vue | 249 ++++--
src/views/newSpecialWorkSystem/workTicket/zysq/components/height.vue | 218 +++--
src/views/newSpecialWorkSystem/workerManage/guardianBase/index.vue | 2
src/views/system/user/component/userDialog.vue | 15
src/i18n/pages/login/zh-cn.ts | 4
src/views/newSpecialWorkSystem/workerManage/aqyBase/index.vue | 2
src/views/specialWorkSystem/specialIndex/index.vue | 40
src/views/newSpecialWorkSystem/workTicket/zysq/components/hoist.vue | 221 +++--
src/views/newSpecialWorkSystem/workTicket/zysq/components/plate.vue | 223 +++--
src/views/newSpecialWorkSystem/workTicket/zysq/components/space.vue | 242 +++--
src/views/loginPage/component/accountLogin.vue | 37
src/views/newSpecialWorkSystem/workTicket/zysq/components/power.vue | 245 +++--
src/views/newSpecialWorkSystem/workTicket/zysq/components/ground.vue | 228 +++--
src/views/newSpecialWorkSystem/workerManage/operatorBase/index.vue | 2
21 files changed, 1,306 insertions(+), 858 deletions(-)
diff --git a/src/i18n/pages/login/zh-cn.ts b/src/i18n/pages/login/zh-cn.ts
index 3367b53..96714be 100644
--- a/src/i18n/pages/login/zh-cn.ts
+++ b/src/i18n/pages/login/zh-cn.ts
@@ -9,8 +9,8 @@
two4: '友情链接',
},
account: {
- accountPlaceholder1: '用户名 admin 或不输均为 common',
- accountPlaceholder2: '密码:123456',
+ accountPlaceholder1: '请输入用户名',
+ accountPlaceholder2: '请输入密码',
accountPlaceholder3: '请输入验证码',
accountBtnText: '登 录',
},
diff --git a/src/layout/navBars/breadcrumb/user.vue b/src/layout/navBars/breadcrumb/user.vue
index b838098..6d8e1e8 100644
--- a/src/layout/navBars/breadcrumb/user.vue
+++ b/src/layout/navBars/breadcrumb/user.vue
@@ -1,7 +1,7 @@
<template>
<div class="layout-navbars-breadcrumb-user pr15" :style="{ flex: layoutUserFlexNum }">
<div class="logo">
- <img @click="toHome" src="../../../assets/menu/companyLogo.png" />
+ <img src="../../../assets/menu/companyLogo.png" />
<span>{{ systemName }}</span>
</div>
<div style="display: flex; align-items: center; padding-right: 5px">
@@ -268,9 +268,9 @@
console.log(routeList);
});
};
- const toHome = () => {
- router.push({ path: 'newMenu' });
- };
+ // const toHome = () => {
+ // router.push({ path: 'newMenu' });
+ // };
// 页面加载时
onMounted(() => {
if (Local.get('themeConfig')) {
@@ -282,7 +282,6 @@
return {
userInfos,
backToMenu,
- toHome,
onLayoutSetingClick,
onHandleCommandClick,
onScreenfullClick,
@@ -302,7 +301,6 @@
.logo{
img {
height: 100%;
- cursor: pointer;
}
span{
font-size: 32px;
@@ -327,7 +325,6 @@
.logo{
img {
height: 90%;
- cursor: pointer;
}
span{
font-size: 28px;
@@ -353,7 +350,6 @@
img {
width: 60%;
height: auto;
- cursor: pointer;
}
span{
font-size: 22px;
diff --git a/src/utils/toolsValidate.ts b/src/utils/toolsValidate.ts
index 434466e..485fd04 100644
--- a/src/utils/toolsValidate.ts
+++ b/src/utils/toolsValidate.ts
@@ -256,9 +256,10 @@
* @param val 当前值字符串
* @returns 返回 true: 强密码正确
*/
-export function verifyPasswordPowerful(val: string) {
+
+export function verifyPwd(val: string) {
// false: 强密码不正确
- if (!/^(?![a-zA-z]+$)(?!\d+$)(?![!@#$%^&\.*]+$)(?![a-zA-z\d]+$)(?![a-zA-z!@#$%^&\.*]+$)(?![\d!@#$%^&\.*]+$)[a-zA-Z\d!@#$%^&\.*]{6,16}$/.test(val)) return false;
+ if (!/^(?![a-zA-Z]+$)(?!\d+$)(?![!@#$%^&\.*]+$)(?![a-zA-Z\d]+$)(?![a-zA-Z!@#$%^&\.*]+$)(?![\d!@#$%^&\.*]+$)[a-zA-Z\d!@#$%^&\.*\-_]{6,16}$/.test(val)) return false;
// true: 强密码正确
else return true;
}
diff --git a/src/views/loginPage/component/accountLogin.vue b/src/views/loginPage/component/accountLogin.vue
index 167d6b1..cbe9579 100644
--- a/src/views/loginPage/component/accountLogin.vue
+++ b/src/views/loginPage/component/accountLogin.vue
@@ -85,7 +85,7 @@
import { useUserInfo } from '/@/stores/userInfo';
import type { FormInstance, FormRules } from 'element-plus'
import {workApplyApi} from "/@/api/specialWorkSystem/workApply";
-import {verifyPhone,verifyIdCard} from "/@/utils/toolsValidate"
+import {verifyPhone,verifyIdCard,verifyPwd} from "/@/utils/toolsValidate"
import { Base64 } from 'js-base64'
export default defineComponent({
name: 'accountLogin',
@@ -150,18 +150,31 @@
}else callback();
}, 400)
}
- // 修改密码
- const validatePass = (rule: any, value: any, callback: any) => {
- if (value === '') {
- callback(new Error('该内容不能为空'))
- } else {
- if (state.identity.rePassword !== '') {
- if (!identifyRef.value) return
- identifyRef.value.validateField('rePassword', () => null)
- }
- callback()
+
+ let validatePwd = (rule: any, value: any, callback: any)=>{
+ if(value === ''){
+ callback(new Error('请输入密码'))
+ }else{
+ if(!verifyPwd(value)){
+ callback(new Error('密码须包含字母、数字、特殊字符,长度在6-16之间'))
+ }else{
+ callback()
}
+ }
}
+
+ // 修改密码
+ // const validatePass = (rule: any, value: any, callback: any) => {
+ // if (value === '') {
+ // callback(new Error('该内容不能为空'))
+ // } else {
+ // if (state.identity.rePassword !== '') {
+ // if (!identifyRef.value) return
+ // identifyRef.value.validateField('rePassword', () => null)
+ // }
+ // callback()
+ // }
+ // }
const validatePass2 = (rule: any, value: any, callback: any) => {
if (value === '') {
callback(new Error('该内容不能为空'))
@@ -175,7 +188,7 @@
realName: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
identify: [{ required: true, validator: checkCode, trigger: 'blur'}],
phone: [{ required: true, validator: checkPhone, trigger: 'blur' }],
- password: [{ required: true, validator: validatePass, trigger: 'blur' }],
+ password: [{ required: true, validator: validatePwd, trigger: 'blur' }],
rePassword: [{ required: true, validator: validatePass2, trigger: 'blur' }]
});
diff --git a/src/views/newSpecialWorkSystem/workTicket/wdsq/index.vue b/src/views/newSpecialWorkSystem/workTicket/wdsq/index.vue
index 7798f8d..5eee2f8 100644
--- a/src/views/newSpecialWorkSystem/workTicket/wdsq/index.vue
+++ b/src/views/newSpecialWorkSystem/workTicket/wdsq/index.vue
@@ -44,6 +44,7 @@
<el-row class="cardTop">
<el-col :span="12" class="mainCardBtn">
<el-button type="primary" :icon="Plus" size="default" @click="toApply()">申请</el-button>
+ <el-button type="primary" :icon="Download" size="default" @click="exportSheet()">导出当日记录</el-button>
</el-col>
<el-button type="primary" :icon="Refresh" size="default" @click="reLoadData()" />
</el-row>
@@ -482,15 +483,15 @@
}
// 导出方法
- const downLoadRecord = async (data: any) => {
+ const exportSheet = async () => {
// let res = await workApplyApi().postPrinting(data);
- axios.post(import.meta.env.VITE_API_URL + `/work/apply/printingPdf`,data,{headers:{'Content-Type': 'application/json','Authorization': `${Cookies.get('token')}`,'uid':`${Cookies.get('uid')}`},responseType: 'blob'}).then(res=>{
+ axios.post(import.meta.env.VITE_API_URL + `/specialwork9step/work/export/excel`,{},{headers:{'Content-Type': 'application/json','Authorization': `${Cookies.get('token')}`,'uid':`${Cookies.get('uid')}`},responseType: 'blob'}).then(res=>{
if (res) {
const link = document.createElement('a')
- let blob = new Blob([res.data],{type: 'application/pdf'})
+ let blob = new Blob([res.data],{type: 'application/excel'})
link.style.display = "none";
link.href = URL.createObjectURL(blob); // 创建URL
- link.setAttribute("download", state.downLoadName + "作业证.pdf");
+ link.setAttribute("download", "作业申报记录.xlsx");
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
@@ -559,6 +560,7 @@
viewStatus,
abortRecordBtn,
downLoadBtn,
+ exportSheet,
getListByPage,
handleSizeChange1,
handleCurrentChange1,
diff --git a/src/views/newSpecialWorkSystem/workTicket/zysq/components/broken.vue b/src/views/newSpecialWorkSystem/workTicket/zysq/components/broken.vue
index fb4cbf7..f54fabe 100644
--- a/src/views/newSpecialWorkSystem/workTicket/zysq/components/broken.vue
+++ b/src/views/newSpecialWorkSystem/workTicket/zysq/components/broken.vue
@@ -4,20 +4,20 @@
<div class="homeCard">
<el-row>
<el-col :span="12">
- <el-form-item label="作业申请单位" prop="applyDepId">
- <el-cascader style="width: 100%" v-model="form.applyDepId" :options="departList2" :props="props" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
+ <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-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="作业单位" prop="workDepId">
- <el-cascader style="width: 100%" v-model="form.workDepId" :props="depProps" :options="departList" :show-all-levels="false"/>
+ <el-cascader style="width: 100%" v-model="form.workDepId" :props="depProps" :options="lists.departList" :show-all-levels="false"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="涉及相关单位(部门)" prop="workDetail.involvedDepIds">
- <el-cascader style="width: 100%" v-model="form.workDetail.involvedDepIds" :props="depProps2" :options="departList" :show-all-levels="false"/>
+ <el-cascader style="width: 100%" v-model="form.workDetail.involvedDepIds" :props="depProps2" :options="lists.departList" :show-all-levels="false"/>
</el-form-item>
</el-col>
</el-row>
@@ -64,22 +64,22 @@
<!-- :value="item.uid"-->
<!-- />-->
<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.guardianUids" :options="spList.jhList" :props="cas3Props" filterable @change="singleSelect($event,'监护人')" :show-all-levels="false"/>
+ <el-cascader style="width: 100%" v-model="form.guardianUids" :options="lists.spList.jhList" :props="cas3Props" filterable @change="singleSelect($event,'监护人')" :show-all-levels="false"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="作业负责人" prop="headUids">
-<!-- <el-select v-model="form.headUids" filterable multiple @change="getStartEndIds" clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.headUids" :options="workerList" :props="casProps" @change="getStartEndIds" filterable :show-all-levels="false"/>
+ <el-select v-model="form.headUids" filterable multiple @change="getStartEndIds" 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.headUids" :options="lists.workerList" :props="casProps" @change="getStartEndIds" filterable :show-all-levels="false"/>-->
</el-form-item>
</el-col>
<el-col :span="12">
@@ -92,7 +92,7 @@
<!-- :value="item.uid"-->
<!-- />-->
<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.operatorUids" :options="spList.opList" :props="cas2Props" @change="singleSelect($event,'作业人')" filterable :show-all-levels="false"/>
+ <el-cascader style="width: 100%" v-model="form.operatorUids" :options="lists.spList.opList" :props="cas2Props" @change="singleSelect($event,'作业人')" filterable :show-all-levels="false"/>
</el-form-item>
</el-col>
</el-row>
@@ -108,7 +108,7 @@
<!-- />-->
<!-- </el-select>-->
<el-select v-model="form.involveOtherWork" multiple clearable :teleported="false" @click="openWorkSelect">
- <el-option v-for="item in otherWorks" :key="item.workApplyId" :label="item.workContent" :value="item.workApplyId">
+ <el-option v-for="item in lists.otherWorks" :key="item.workApplyId" :label="item.workContent" :value="item.workApplyId">
</el-option>
</el-select>
</el-form-item>
@@ -117,7 +117,7 @@
<el-form-item label="绑定执法仪" prop="cameraIds">
<el-select v-model="form.cameraIds" multiple clearable>
<el-option
- v-for="item in deviceList"
+ v-for="item in lists.deviceList"
:key="item.id"
:label="item.name"
:value="item.id"
@@ -208,7 +208,7 @@
</el-col>
</el-row>
<el-row style="display: flex;justify-content: center">
- <el-table :data="safetyMeasureBasicList" style="width: 90%" border>
+ <el-table :data="safetyMeasureBasicList" style="width: 90%" border v-loading="tabLoading">
<el-table-column type="index" label="序号" width="100px" align="center"/>
<el-table-column prop="measureContent" label="安全措施"/>
<!-- <el-table-column prop="address" label="确认人">-->
@@ -226,15 +226,15 @@
<el-row>
<el-col :span="12">
<el-form-item label="安全措施确认人" prop="safetyMeasureUids">
-<!-- <el-select v-model="form.safetyMeasureUids" filterable multiple clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.safetyMeasureUids" :options="workerList" :props="casProps" filterable @change="singleSelect($event,'确认人')" :show-all-levels="false"/>
+ <el-select v-model="form.safetyMeasureUids" filterable multiple 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.safetyMeasureUids" :options="lists.workerList" :props="casProps" filterable @change="singleSelect($event,'确认人')" :show-all-levels="false"/>-->
</el-form-item>
</el-col>
</el-row>
@@ -259,7 +259,7 @@
<!-- </el-col>-->
<!-- </el-row>-->
<el-row style="display: flex;justify-content: center">
- <el-table :data="form.approvalDepBasicList" style="width: 90%" border>
+ <el-table :data="form.approvalDepBasicList" style="width: 90%" border v-loading="tabLoading">
<el-table-column prop="content" label="审批签字项目" align="center"/>
<el-table-column prop="approvalType" label="是否必签" align="center">
<template #default="scope">
@@ -276,7 +276,7 @@
<template #default="scope">
<el-select v-model="scope.row.approvalUids" filterable multiple :disabled="isFirstRow(scope.$index)" clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in lists.workerList"
:key="item.uid"
:label="item.username"
:value="item.uid"
@@ -289,28 +289,28 @@
<el-row>
<el-col :span="12">
<el-form-item label="完工验收" prop="acceptUid">
-<!-- <el-select v-model="form.acceptUid" filterable clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.acceptUid" :options="workerList" :props="cas4Props" filterable :show-all-levels="false"/>
+ <el-select v-model="form.acceptUid" 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.acceptUid" :options="lists.workerList" :props="cas4Props" filterable :show-all-levels="false"/>-->
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="现场开始结束确认人" prop="startOrEndUids">
-<!-- <el-select v-model="form.startOrEndUids" filterable multiple clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.startOrEndUids" :options="workerList" :props="casProps" filterable @change="singleSelect($event,'结束人')" :show-all-levels="false"/>
+ <el-select v-model="form.startOrEndUids" filterable multiple 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.startOrEndUids" :options="lists.workerList" :props="casProps" filterable @change="singleSelect($event,'结束人')" :show-all-levels="false"/>-->
</el-form-item>
</el-col>
</el-row>
@@ -319,12 +319,25 @@
<el-form-item label="签字人" prop="workDetail.signUid">
<el-select v-model="form.workDetail.signUid" filterable clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in lists.workerList"
:key="item.uid"
:label="item.username"
:value="item.uid"
/>
</el-select>
+ </el-form-item>
+ </el-col>
+ <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>
@@ -354,7 +367,7 @@
interface stateType {
form: Object,
equipmentDialog: boolean,
- props:{},
+ props1:{},
depProps:{},
depProps2:{},
casProps:{}
@@ -365,6 +378,7 @@
fileList: Array<file>,
uploadUrl: string,
dialogVisible: Boolean,
+ tabLoading: Boolean,
dialogImageUrl: string | null,
imgLimit: number,
}
@@ -374,16 +388,18 @@
export default defineComponent({
name: 'brokenForm',
components: {workSelect},
- props:['departList','departList2','workerList','deviceList','otherWorks','spList'],
+ props:['lists'],
setup(props: any, context: any) {
const userInfo = useUserInfo()
const { userInfos } = storeToRefs(userInfo);
const state = reactive<stateType>({
+ tabLoading: false,
equipmentDialog: false,
safetyMeasureBasicList: [],
form: {
workType: 5,
workLevel: 0,
+ depIdList: [],
applyDepId: null,
seDepId: null,
expStartTime: '',
@@ -400,6 +416,7 @@
safetyMeasureUids: [],
approvalDepBasicList: [],
acceptUid: null,
+ lastApprover: null,
startOrEndUids: [],
cameraIds: [],
workDetail: {
@@ -410,11 +427,10 @@
signUid: null
}
},
- props:{
+ props1:{
expandTrigger: 'hover',
label: 'depName',
- value: 'depId',
- emitPath: false
+ value: 'depId'
},
depProps:{
expandTrigger: 'hover',
@@ -432,6 +448,7 @@
multiple: true
},
casProps: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'username',
multiple: true,
@@ -439,8 +456,8 @@
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.workerList
+ if(level == 0){
+ nodes = props.lists.workerList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -461,6 +478,7 @@
}
},
cas2Props: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'realName',
multiple: true,
@@ -469,8 +487,8 @@
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.spList.opList
+ if(level == 0){
+ nodes = props.lists.spList.opList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -491,6 +509,7 @@
}
},
cas3Props: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'realName',
multiple: true,
@@ -498,8 +517,8 @@
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.spList.jhList
+ if(level == 0){
+ nodes = props.lists.spList.jhList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -520,14 +539,15 @@
}
},
cas4Props: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'username',
lazy: true,
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.workerList
+ if(level == 0){
+ nodes = props.lists.workerList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -555,7 +575,7 @@
});
const ruleFormRef = ref<FormInstance>()
const applyRules = reactive<FormRules>({
- applyDepId: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+ depIdList: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workLevel: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
@@ -570,6 +590,7 @@
expEndTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
safetyMeasureUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
acceptUid: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+ lastApprover: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
startOrEndUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
"workDetail.involvedDepIds": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
"workDetail.bcReason": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
@@ -580,6 +601,7 @@
const workSelectRef = ref()
// 页面载入时执行方法
onMounted(() => {
+ getBasicData()
});
const openWorkSelect = ()=>{
workSelectRef.value.openDialog(state.form.involveOtherWork)
@@ -589,12 +611,13 @@
state.form.involveOtherWork = workSelectRef.value.selected
}
const findParent = ()=>{
- state.form.seDepId = findNearestDepLevel2DepId(props.departList2,state.form.applyDepId)
- console.log(state.form.seDepId,'state.form.seDepId')
+ state.form.applyDepId = state.form.depIdList[state.form.depIdList.length - 1]
+ state.form.seDepId = state.form.depIdList[0]
}
// 获取基础数据
const getBasicData = async ()=>{
+ state.tabLoading = true
const res = await workApplyApi().getFormData(5)
if (res.data.code === '200') {
state.safetyMeasureBasicList = JSON.parse(JSON.stringify(res.data.data.safetyMeasureBasicList))
@@ -614,24 +637,27 @@
message: res.data.msg
});
}
+ state.tabLoading = false
};
const getStartEndIds = (value)=>{
- let selected = value
- if(selected.length>1){
- const temp = []
- for(let i of selected){
- const index = temp.findIndex(item => item[0] === i[0]);
- if (index !== -1) {
- temp[index] = i
- }else{
- temp.push(i)
- }
- }
- state.form.headUids = temp
- }
+ // let selected = value
+ // if(selected.length>1){
+ // const temp = []
+ // for(let i of selected){
+ // const index = temp.findIndex(item => item[0] === i[0]);
+ // if (index !== -1) {
+ // temp[index] = i
+ // }else{
+ // temp.push(i)
+ // }
+ // }
+ // state.form.headUids = temp
+ // }
+ // state.form.startOrEndUids = state.form.headUids
+ // state.form.approvalDepBasicList[0].approvalUids = [...new Set(state.form.headUids.map((i)=>i[0]))]
state.form.startOrEndUids = state.form.headUids
- state.form.approvalDepBasicList[0].approvalUids = [...new Set(state.form.headUids.map((i)=>i[0]))]
+ state.form.approvalDepBasicList[0].approvalUids = state.form.headUids
}
const getSafetyIds = ()=>{
@@ -653,12 +679,23 @@
})
}
- const transform2Obj = (arr: Array<any>)=>{
+ const transform2Arr = (arr: Array<any>)=>{
+ return arr.map((i)=>{
+ return {
+ uid: i,
+ certificate: '',
+ certExpiredAt: '',
+ certTypeName: ''
+ }
+ })
+ }
+
+ const transform2Obj = (id: any)=>{
return {
- uid: arr[0],
- certificate: arr[1].split(',')[0],
- certExpiredAt: arr[1].split(',')[1],
- certTypeName: arr[1].split(',')[2]
+ uid: id,
+ certificate: '',
+ certExpiredAt: '',
+ certTypeName: ''
}
}
@@ -694,18 +731,19 @@
return
}
}
- if(Array.isArray(state.form.involveOtherWork)){
- state.form.involveOtherWork = state.form.involveOtherWork.join(',')
- }
+ // if(Array.isArray(state.form.involveOtherWork)){
+ // state.form.involveOtherWork = state.form.involveOtherWork.join(',')
+ // }
state.form.workDetail.involvedDepIds = state.form.workDetail.involvedDepIds.join(',')
state.form.workDetail.bcPath = state.form.workDetail.bcPath.join(',')
- const data = state.form
+ const {depIdList,...data} = state.form
data.operatorUids = transformArr(data.operatorUids)
- data.headUids = transformArr(data.headUids)
+ data.headUids = transform2Arr(data.headUids)
data.guardianUids = transformArr(data.guardianUids)
- data.safetyMeasureUids = transformArr(data.safetyMeasureUids)
- data.startOrEndUids = transformArr(data.startOrEndUids)
+ data.safetyMeasureUids = transform2Arr(data.safetyMeasureUids)
+ data.startOrEndUids = transform2Arr(data.startOrEndUids)
data.acceptUid = transform2Obj(data.acceptUid)
+ data.lastApprover = transform2Obj(data.lastApprover)
const res = await workApplyApi().submitBrokenApply(data)
if (res.data.code === '200') {
ElMessage({
@@ -713,6 +751,8 @@
message: '提交成功!'
});
formEl.resetFields()
+ state.form.guardianUids = []
+ state.form.involveOtherWork = []
getBasicData()
state.form.workDetail.bcPath = []
state.fileList = []
@@ -727,6 +767,10 @@
}
} else {
console.log('error submit!', fields)
+ ElMessage({
+ type: 'warning',
+ message: '有表单内容未完成,请再次检查完善'
+ })
}
})
}
diff --git a/src/views/newSpecialWorkSystem/workTicket/zysq/components/fire.vue b/src/views/newSpecialWorkSystem/workTicket/zysq/components/fire.vue
index ec18d58..36c0196 100644
--- a/src/views/newSpecialWorkSystem/workTicket/zysq/components/fire.vue
+++ b/src/views/newSpecialWorkSystem/workTicket/zysq/components/fire.vue
@@ -4,8 +4,8 @@
<div class="homeCard">
<el-row>
<el-col :span="12">
- <el-form-item label="作业申请单位" prop="applyDepId">
- <el-cascader style="width: 100%" v-model="form.applyDepId" :options="departList2" :props="props" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
+ <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-form-item>
</el-col>
<el-col :span="12">
@@ -64,48 +64,48 @@
<!-- :value="item.uid"-->
<!-- />-->
<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.operatorUids" :options="spList.opList" :props="cas2Props" @change="singleSelect($event,'作业人')" filterable :show-all-levels="false"/>
+ <el-cascader style="width: 100%" v-model="form.operatorUids" :options="lists.spList.opList" :props="cas2Props" @change="singleSelect($event,'作业人')" filterable :show-all-levels="false"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="作业单位" prop="workDepId">
- <el-cascader style="width: 100%" v-model="form.workDepId" :props="depProps" :options="departList" :show-all-levels="false"/>
+ <el-cascader style="width: 100%" v-model="form.workDepId" :props="depProps" :options="lists.departList" :show-all-levels="false"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="作业负责人" prop="headUids">
-<!-- <el-select v-model="form.headUids" multiple filterable @change="getStartEndIds" clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.headUids" :options="workerList" :props="casProps" @change="getStartEndIds" filterable :show-all-levels="false"/>
+ <el-select v-model="form.headUids" multiple filterable @change="getStartEndIds" 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.headUids" :options="lists.workerList" :props="casProps" @change="getStartEndIds" filterable :show-all-levels="false"/>-->
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="分析人" prop="analystUids">
-<!-- <el-select v-model="form.analystUids" filterable multiple clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.analystUids" :options="workerList" :props="casProps" filterable @change="singleSelect($event,'分析人')" :show-all-levels="false"/>
+ <el-select v-model="form.analystUids" filterable multiple 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.analystUids" :options="lists.workerList" :props="casProps" filterable @change="singleSelect($event,'分析人')" :show-all-levels="false"/>-->
</el-form-item>
</el-col>
<el-col :span="12" class="valueSelect">
<el-form-item label="关联其他特殊作业">
<el-select v-model="form.involveOtherWork" multiple clearable :teleported="false" @click="openWorkSelect">
- <el-option v-for="item in otherWorks" :key="item.workApplyId" :label="item.workContent" :value="item.workApplyId">
+ <el-option v-for="item in lists.otherWorks" :key="item.workApplyId" :label="item.workContent" :value="item.workApplyId">
</el-option>
</el-select>
</el-form-item>
@@ -122,14 +122,14 @@
<!-- :value="item.uid"-->
<!-- />-->
<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.guardianUids" :options="spList.jhList" :props="cas3Props" filterable @change="singleSelect($event,'监护人')" :show-all-levels="false"/>
+ <el-cascader style="width: 100%" v-model="form.guardianUids" :options="lists.spList.jhList" :props="cas3Props" filterable @change="singleSelect($event,'监护人')" :show-all-levels="false"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="绑定执法仪" prop="cameraIds">
<el-select v-model="form.cameraIds" multiple clearable>
<el-option
- v-for="item in deviceList"
+ v-for="item in lists.deviceList"
:key="item.id"
:label="item.name"
:value="item.id"
@@ -198,7 +198,7 @@
</el-col>
</el-row>
<el-row style="display: flex;justify-content: center">
- <el-table :data="safetyMeasureBasicList" style="width: 90%" border>
+ <el-table :data="safetyMeasureBasicList" style="width: 90%" border v-loading="tabLoading">
<el-table-column type="index" label="序号" width="100px" align="center"/>
<el-table-column prop="measureContent" label="安全措施"/>
<!-- <el-table-column prop="address" label="确认人">-->
@@ -216,15 +216,15 @@
<el-row>
<el-col :span="12">
<el-form-item label="安全措施确认人" prop="safetyMeasureUids">
-<!-- <el-select v-model="form.safetyMeasureUids" filterable multiple clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.safetyMeasureUids" :options="workerList" :props="casProps" filterable @change="singleSelect($event,'确认人')" :show-all-levels="false"/>
+ <el-select v-model="form.safetyMeasureUids" filterable multiple 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.safetyMeasureUids" :options="lists.workerList" :props="casProps" filterable @change="singleSelect($event,'确认人')" :show-all-levels="false"/>-->
</el-form-item>
</el-col>
</el-row>
@@ -249,7 +249,7 @@
<!-- </el-col>-->
<!-- </el-row>-->
<el-row style="display: flex;justify-content: center">
- <el-table :data="form.approvalDepBasicList" style="width: 90%" border>
+ <el-table :data="form.approvalDepBasicList" style="width: 90%" border v-loading="tabLoading">
<el-table-column prop="content" label="审批签字项目" align="center"/>
<el-table-column prop="approvalType" label="是否必签" align="center">
<template #default="scope">
@@ -266,7 +266,7 @@
<template #default="scope">
<el-select v-model="scope.row.approvalUids" filterable multiple :disabled="isFirstRow(scope.$index)" clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in lists.workerList"
:key="item.uid"
:label="item.username"
:value="item.uid"
@@ -279,42 +279,57 @@
<el-row>
<el-col :span="12">
<el-form-item label="完工验收" prop="acceptUid">
-<!-- <el-select v-model="form.acceptUid" filterable clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.acceptUid" :options="workerList" :props="cas4Props" filterable :show-all-levels="false"/>
+ <el-select v-model="form.acceptUid" 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.acceptUid" :options="lists.workerList" :props="cas4Props" filterable :show-all-levels="false"/>-->
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="现场开始结束确认人" prop="startOrEndUids">
-<!-- <el-select v-model="form.startOrEndUids" filterable multiple clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.startOrEndUids" :options="workerList" :props="casProps" filterable @change="singleSelect($event,'结束人')" :show-all-levels="false"/>
+ <el-select v-model="form.startOrEndUids" filterable multiple 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.startOrEndUids" :options="lists.workerList" :props="casProps" filterable @change="singleSelect($event,'结束人')" :show-all-levels="false"/>-->
+ </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-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>
</div>
</el-form>
<div class="applyBtn">
- <el-button type="primary" size="large" plain @click="submitForm(ruleFormRef)">提交申报</el-button>
+ <el-button type="primary" size="large" plain v-throttle @click="submitForm(ruleFormRef)">提交申报</el-button>
</div>
<work-select ref="workSelectRef" @refreshWorks="getSelected()"></work-select>
</div>
</template>
<script lang="ts">
- import { toRefs, reactive, defineComponent, ref, defineAsyncComponent, onMounted } from 'vue';
+ import { toRefs, reactive, defineComponent, ref, defineAsyncComponent, onMounted, onUpdated } from 'vue';
import { storeToRefs } from 'pinia';
import { initBackEndControlRoutes } from '/@/router/backEnd';
import {useUserInfo} from "/@/stores/userInfo";
@@ -329,7 +344,8 @@
form: Object,
workLevelList: Array<any>,
equipmentDialog: boolean,
- props:{}
+ tabLoading: boolean
+ props1:{}
depProps:{}
casProps:{}
cas2Props: {}
@@ -340,16 +356,18 @@
export default defineComponent({
name: 'fireForm',
components: {workSelect},
- props:['departList','departList2','workerList','deviceList','otherWorks','spList'],
+ props:['lists'],
setup(props: any, context: any) {
const userInfo = useUserInfo()
const { userInfos } = storeToRefs(userInfo);
const state = reactive<stateType>({
+ tabLoading: false,
equipmentDialog: false,
safetyMeasureBasicList: [],
form: {
workType: 1,
workLevel: null,
+ depIdList: [],
applyDepId: null,
seDepId: null,
expStartTime: '',
@@ -366,6 +384,7 @@
safetyMeasureUids: [],
approvalDepBasicList: [],
acceptUid: null,
+ lastApprover: null,
startOrEndUids: [],
cameraIds: [],
workDetail: {
@@ -387,6 +406,7 @@
}
],
casProps: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'username',
multiple: true,
@@ -394,8 +414,8 @@
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.workerList
+ if(level == 0){
+ nodes = props.lists.workerList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -416,6 +436,7 @@
}
},
cas2Props: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'realName',
multiple: true,
@@ -424,8 +445,8 @@
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.spList.opList
+ if(level == 0){
+ nodes = props.lists.spList.opList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -446,6 +467,7 @@
}
},
cas3Props: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'realName',
multiple: true,
@@ -453,8 +475,8 @@
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.spList.jhList
+ if(level == 0){
+ nodes = props.lists.spList.jhList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -475,14 +497,15 @@
}
},
cas4Props: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'username',
lazy: true,
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.workerList
+ if(level == 0){
+ nodes = props.lists.workerList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -502,11 +525,10 @@
resolve(nodes)
}
},
- props:{
+ props1:{
expandTrigger: 'hover',
label: 'depName',
- value: 'depId',
- emitPath: false
+ value: 'depId'
},
depProps:{
expandTrigger: 'hover',
@@ -518,7 +540,7 @@
});
const ruleFormRef = ref<FormInstance>()
const applyRules = reactive<FormRules>({
- applyDepId: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+ depIdList: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workLevel: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
@@ -533,6 +555,7 @@
expEndTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
safetyMeasureUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
acceptUid: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+ lastApprover: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
startOrEndUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
"workDetail.workMethod": [{ required: true, message: '该内容不能为空', trigger: 'blur' }]
});
@@ -541,6 +564,10 @@
// 页面载入时执行方法
onMounted(() => {
getBasicData()
+ })
+
+ onUpdated(()=>{
+ console.log('false loading')
})
const openWorkSelect = ()=>{
@@ -552,12 +579,14 @@
}
const findParent = ()=>{
- state.form.seDepId = findNearestDepLevel2DepId(props.departList2,state.form.applyDepId)
- console.log(state.form.seDepId,'state.form.seDepId')
+ state.form.applyDepId = state.form.depIdList[state.form.depIdList.length - 1]
+ state.form.seDepId = state.form.depIdList[0]
+ // state.form.seDepId = findNearestDepLevel2DepId(props.lists.departList2,state.form.applyDepId)
}
// 获取基础数据
const getBasicData = async ()=>{
+ state.tabLoading = true
const res = await workApplyApi().getFormData(1)
if (res.data.code === '200') {
state.safetyMeasureBasicList = JSON.parse(JSON.stringify(res.data.data.safetyMeasureBasicList))
@@ -577,24 +606,27 @@
message: res.data.msg
});
}
+ state.tabLoading = false
};
const getStartEndIds = (value)=>{
- let selected = value
- if(selected.length>1){
- const temp = []
- for(let i of selected){
- const index = temp.findIndex(item => item[0] === i[0]);
- if (index !== -1) {
- temp[index] = i
- }else{
- temp.push(i)
- }
- }
- state.form.headUids = temp
- }
+ // let selected = value
+ // if(selected.length>1){
+ // const temp = []
+ // for(let i of selected){
+ // const index = temp.findIndex(item => item[0] === i[0]);
+ // if (index !== -1) {
+ // temp[index] = i
+ // }else{
+ // temp.push(i)
+ // }
+ // }
+ // state.form.headUids = temp
+ // }
+ // state.form.startOrEndUids = state.form.headUids
+ // state.form.approvalDepBasicList[0].approvalUids = [...new Set(state.form.headUids.map((i)=>i[0]))]
state.form.startOrEndUids = state.form.headUids
- state.form.approvalDepBasicList[0].approvalUids = [...new Set(state.form.headUids.map((i)=>i[0]))]
+ state.form.approvalDepBasicList[0].approvalUids = state.form.headUids
}
const getSafetyIds = ()=>{
@@ -616,12 +648,22 @@
})
}
- const transform2Obj = (arr: Array<any>)=>{
+ const transform2Arr = (arr: Array<any>)=>{
+ return arr.map((i)=>{
+ return {
+ uid: i,
+ certificate: '',
+ certExpiredAt: '',
+ certTypeName: ''
+ }
+ })
+ }
+ const transform2EObj = (id: any)=>{
return {
- uid: arr[0],
- certificate: arr[1].split(',')[0],
- certExpiredAt: arr[1].split(',')[1],
- certTypeName: arr[1].split(',')[2]
+ uid: id,
+ certificate: '',
+ certExpiredAt: '',
+ certTypeName: ''
}
}
@@ -638,7 +680,7 @@
}
}
if(type == '作业人'){state.form.operatorUids = temp}
- if(type == '分析人'){state.form.analystUids = 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}
@@ -661,14 +703,15 @@
// if(Array.isArray(state.form.involveOtherWork)){
// state.form.involveOtherWork = state.form.involveOtherWork.join(',')
// }
- const data = state.form
+ const {depIdList,...data} = state.form
data.operatorUids = transformArr(data.operatorUids)
- data.headUids = transformArr(data.headUids)
- data.analystUids = transformArr(data.analystUids)
+ data.headUids = transform2Arr(data.headUids)
+ // data.analystUids = transformArr(data.analystUids)
data.guardianUids = transformArr(data.guardianUids)
- data.safetyMeasureUids = transformArr(data.safetyMeasureUids)
- data.startOrEndUids = transformArr(data.startOrEndUids)
- data.acceptUid = transform2Obj(data.acceptUid)
+ data.safetyMeasureUids = transform2Arr(data.safetyMeasureUids)
+ data.startOrEndUids = transform2Arr(data.startOrEndUids)
+ data.acceptUid = transform2EObj(data.acceptUid)
+ data.lastApprover = transform2EObj(data.lastApprover)
const res = await workApplyApi().submitFireApply(data)
if (res.data.code === '200') {
ElMessage({
@@ -676,16 +719,22 @@
message: '提交成功!'
});
formEl.resetFields()
+ state.form.guardianUids = []
+ state.form.involveOtherWork = []
getBasicData()
} else {
ElMessage({
type: 'warning',
message: res.data.msg
- });
+ })
// state.form.involveOtherWork = state.form.involveOtherWork.split(',')
}
} else {
console.log('error submit!', fields)
+ ElMessage({
+ type: 'warning',
+ message: '有表单内容未完成,请再次检查完善'
+ })
}
})
}
diff --git a/src/views/newSpecialWorkSystem/workTicket/zysq/components/ground.vue b/src/views/newSpecialWorkSystem/workTicket/zysq/components/ground.vue
index e1d3000..399eec3 100644
--- a/src/views/newSpecialWorkSystem/workTicket/zysq/components/ground.vue
+++ b/src/views/newSpecialWorkSystem/workTicket/zysq/components/ground.vue
@@ -4,8 +4,8 @@
<div class="homeCard">
<el-row>
<el-col :span="12">
- <el-form-item label="作业申请单位" prop="applyDepId">
- <el-cascader style="width: 100%" v-model="form.applyDepId" :options="departList2" :props="props" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
+ <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-form-item>
</el-col>
</el-row>
@@ -24,33 +24,33 @@
<el-form-item label="作业人" prop="operatorUids">
<!-- <el-select v-model="form.operatorUids" multiple clearable>-->
<!-- <el-option-->
-<!-- v-for="item in spList.opList"-->
+<!-- v-for="item in lists.spList.opList"-->
<!-- :key="item.uid"-->
<!-- :label="item.realName"-->
<!-- :value="item.uid"-->
<!-- />-->
<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.operatorUids" :options="spList.opList" :props="cas2Props" @change="singleSelect($event,'作业人')" filterable :show-all-levels="false"/>
+ <el-cascader style="width: 100%" v-model="form.operatorUids" :options="lists.spList.opList" :props="cas2Props" @change="singleSelect($event,'作业人')" filterable :show-all-levels="false"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="作业单位" prop="workDepId">
- <el-cascader style="width: 100%" v-model="form.workDepId" :props="depProps" :options="departList" :show-all-levels="false"/>
+ <el-cascader style="width: 100%" v-model="form.workDepId" :props="depProps" :options="lists.departList" :show-all-levels="false"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="作业负责人" prop="headUids">
-<!-- <el-select v-model="form.headUids" multiple filterable @change="getStartEndIds" clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.headUids" :options="workerList" :props="casProps" @change="getStartEndIds" filterable :show-all-levels="false"/>
+ <el-select v-model="form.headUids" multiple filterable @change="getStartEndIds" 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.headUids" :options="lists.workerList" :props="casProps" @change="getStartEndIds" filterable :show-all-levels="false"/>-->
</el-form-item>
</el-col>
</el-row>
@@ -76,7 +76,7 @@
<!-- />-->
<!-- </el-select>-->
<el-select v-model="form.involveOtherWork" multiple clearable :teleported="false" @click="openWorkSelect">
- <el-option v-for="item in otherWorks" :key="item.workApplyId" :label="item.workContent" :value="item.workApplyId">
+ <el-option v-for="item in lists.otherWorks" :key="item.workApplyId" :label="item.workContent" :value="item.workApplyId">
</el-option>
</el-select>
</el-form-item>
@@ -87,20 +87,20 @@
<el-form-item label="监护人" prop="guardianUids">
<!-- <el-select v-model="form.guardianUids" filterable multiple @change="getSafetyIds" clearable>-->
<!-- <el-option-->
-<!-- v-for="item in spList.jhList"-->
+<!-- v-for="item in lists.spList.jhList"-->
<!-- :key="item.uid"-->
<!-- :label="item.realName"-->
<!-- :value="item.uid"-->
<!-- />-->
<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.guardianUids" :options="spList.jhList" :props="cas3Props" filterable @change="singleSelect($event,'监护人')" :show-all-levels="false"/>
+ <el-cascader style="width: 100%" v-model="form.guardianUids" :options="lists.spList.jhList" :props="cas3Props" filterable @change="singleSelect($event,'监护人')" :show-all-levels="false"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="绑定执法仪" prop="cameraIds">
<el-select v-model="form.cameraIds" multiple clearable>
<el-option
- v-for="item in deviceList"
+ v-for="item in lists.deviceList"
:key="item.id"
:label="item.name"
:value="item.id"
@@ -191,7 +191,7 @@
</el-col>
</el-row>
<el-row style="display: flex;justify-content: center">
- <el-table :data="safetyMeasureBasicList" style="width: 90%" border>
+ <el-table :data="safetyMeasureBasicList" style="width: 90%" border v-loading="tabLoading">
<el-table-column type="index" label="序号" width="100px" align="center"/>
<el-table-column prop="measureContent" label="安全措施"/>
<!-- <el-table-column prop="address" label="确认人">-->
@@ -209,15 +209,15 @@
<el-row>
<el-col :span="12">
<el-form-item label="安全措施确认人" prop="safetyMeasureUids">
-<!-- <el-select v-model="form.safetyMeasureUids" filterable multiple clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.safetyMeasureUids" :options="workerList" :props="casProps" filterable @change="singleSelect($event,'确认人')" :show-all-levels="false"/>
+ <el-select v-model="form.safetyMeasureUids" filterable multiple 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.safetyMeasureUids" :options="lists.workerList" :props="casProps" filterable @change="singleSelect($event,'确认人')" :show-all-levels="false"/>-->
</el-form-item>
</el-col>
</el-row>
@@ -242,7 +242,7 @@
<!-- </el-col>-->
<!-- </el-row>-->
<el-row style="display: flex;justify-content: center">
- <el-table :data="form.approvalDepBasicList" style="width: 90%" border>
+ <el-table :data="form.approvalDepBasicList" style="width: 90%" border v-loading="tabLoading">
<el-table-column prop="content" label="审批签字项目" align="center"/>
<el-table-column prop="approvalType" label="是否必签" align="center">
<template #default="scope">
@@ -259,7 +259,7 @@
<template #default="scope">
<el-select v-model="scope.row.approvalUids" filterable multiple :disabled="isFirstRow(scope.$index)" clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in lists.workerList"
:key="item.uid"
:label="item.username"
:value="item.uid"
@@ -272,28 +272,28 @@
<el-row>
<el-col :span="12">
<el-form-item label="完工验收" prop="acceptUid">
-<!-- <el-select v-model="form.acceptUid" filterable clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.acceptUid" :options="workerList" :props="cas4Props" filterable :show-all-levels="false"/>
+ <el-select v-model="form.acceptUid" 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.acceptUid" :options="lists.workerList" :props="cas4Props" filterable :show-all-levels="false"/>-->
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="现场开始结束确认人" prop="startOrEndUids">
-<!-- <el-select v-model="form.startOrEndUids" filterable multiple clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.startOrEndUids" :options="workerList" :props="casProps" filterable @change="singleSelect($event,'结束人')" :show-all-levels="false"/>
+ <el-select v-model="form.startOrEndUids" filterable multiple 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.startOrEndUids" :options="lists.workerList" :props="casProps" filterable @change="singleSelect($event,'结束人')" :show-all-levels="false"/>-->
</el-form-item>
</el-col>
</el-row>
@@ -302,12 +302,25 @@
<el-form-item label="签字人" prop="workDetail.signUid">
<el-select v-model="form.workDetail.signUid" filterable clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in lists.workerList"
:key="item.uid"
:label="item.username"
:value="item.uid"
/>
</el-select>
+ </el-form-item>
+ </el-col>
+ <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>
@@ -339,7 +352,7 @@
interface stateType {
form: Object,
equipmentDialog: boolean,
- props:{},
+ props1:{},
depProps:{},
casProps:{}
cas2Props: {}
@@ -350,7 +363,8 @@
uploadUrl: string,
dialogVisible: Boolean,
dialogImageUrl: string | null,
- imgLimit: number,
+ imgLimit: number
+ tabLoading: boolean
}
interface file {
url: string;
@@ -358,16 +372,18 @@
export default defineComponent({
name: 'groundForm',
components: {workSelect},
- props:['departList','departList2','workerList','deviceList','otherWorks','spList'],
+ props:['lists'],
setup(props: any, context: any) {
const userInfo = useUserInfo()
const { userInfos } = storeToRefs(userInfo);
const state = reactive<stateType>({
+ tabLoading: false,
equipmentDialog: false,
safetyMeasureBasicList: [],
form: {
workType: 4,
workLevel: 0,
+ depIdList: [],
applyDepId: null,
seDepId: null,
expStartTime: '',
@@ -383,6 +399,7 @@
safetyMeasureUids: [],
approvalDepBasicList: [],
acceptUid: null,
+ lastApprover: null,
startOrEndUids: [],
cameraIds: [],
workDetail: {
@@ -391,11 +408,10 @@
signUid: null
}
},
- props:{
+ props1:{
expandTrigger: 'hover',
label: 'depName',
- value: 'depId',
- emitPath: false
+ value: 'depId'
},
depProps:{
expandTrigger: 'hover',
@@ -405,6 +421,7 @@
emitPath: false
},
casProps: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'username',
multiple: true,
@@ -412,8 +429,8 @@
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.workerList
+ if(level == 0){
+ nodes = props.lists.workerList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -434,6 +451,7 @@
}
},
cas2Props: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'realName',
multiple: true,
@@ -442,8 +460,8 @@
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.spList.opList
+ if(level == 0){
+ nodes = props.lists.spList.opList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -464,6 +482,7 @@
}
},
cas3Props: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'realName',
multiple: true,
@@ -471,8 +490,8 @@
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.spList.jhList
+ if(level == 0){
+ nodes = props.lists.spList.jhList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -493,14 +512,15 @@
}
},
cas4Props: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'username',
lazy: true,
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.workerList
+ if(level == 0){
+ nodes = props.lists.workerList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -528,7 +548,7 @@
});
const ruleFormRef = ref<FormInstance>()
const applyRules = reactive<FormRules>({
- applyDepId: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+ depIdList: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workLevel: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
@@ -542,6 +562,7 @@
expEndTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
safetyMeasureUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
acceptUid: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+ lastApprover: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
startOrEndUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
"workDetail.gbDesc": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
"workDetail.gbPath": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
@@ -550,6 +571,7 @@
const workSelectRef = ref()
// 页面载入时执行方法
onMounted(() => {
+ getBasicData()
});
const openWorkSelect = ()=>{
workSelectRef.value.openDialog(state.form.involveOtherWork)
@@ -559,12 +581,13 @@
state.form.involveOtherWork = workSelectRef.value.selected
}
const findParent = ()=>{
- state.form.seDepId = findNearestDepLevel2DepId(props.departList2,state.form.applyDepId)
- console.log(state.form.seDepId,'state.form.seDepId')
+ state.form.applyDepId = state.form.depIdList[state.form.depIdList.length - 1]
+ state.form.seDepId = state.form.depIdList[0]
}
// 获取基础数据
const getBasicData = async ()=>{
+ state.tabLoading = true
const res = await workApplyApi().getFormData(4)
if (res.data.code === '200') {
state.safetyMeasureBasicList = JSON.parse(JSON.stringify(res.data.data.safetyMeasureBasicList))
@@ -584,24 +607,27 @@
message: res.data.msg
});
}
+ state.tabLoading = false
};
const getStartEndIds = (value)=>{
- let selected = value
- if(selected.length>1){
- const temp = []
- for(let i of selected){
- const index = temp.findIndex(item => item[0] === i[0]);
- if (index !== -1) {
- temp[index] = i
- }else{
- temp.push(i)
- }
- }
- state.form.headUids = temp
- }
+ // let selected = value
+ // if(selected.length>1){
+ // const temp = []
+ // for(let i of selected){
+ // const index = temp.findIndex(item => item[0] === i[0]);
+ // if (index !== -1) {
+ // temp[index] = i
+ // }else{
+ // temp.push(i)
+ // }
+ // }
+ // state.form.headUids = temp
+ // }
+ // state.form.startOrEndUids = state.form.headUids
+ // state.form.approvalDepBasicList[0].approvalUids = [...new Set(state.form.headUids.map((i)=>i[0]))]
state.form.startOrEndUids = state.form.headUids
- state.form.approvalDepBasicList[0].approvalUids = [...new Set(state.form.headUids.map((i)=>i[0]))]
+ state.form.approvalDepBasicList[0].approvalUids = state.form.headUids
}
const getSafetyIds = ()=>{
@@ -623,12 +649,23 @@
})
}
- const transform2Obj = (arr: Array<any>)=>{
+ const transform2Arr = (arr: Array<any>)=>{
+ return arr.map((i)=>{
+ return {
+ uid: i,
+ certificate: '',
+ certExpiredAt: '',
+ certTypeName: ''
+ }
+ })
+ }
+
+ const transform2Obj = (id: any)=>{
return {
- uid: arr[0],
- certificate: arr[1].split(',')[0],
- certExpiredAt: arr[1].split(',')[1],
- certTypeName: arr[1].split(',')[2]
+ uid: id,
+ certificate: '',
+ certExpiredAt: '',
+ certTypeName: ''
}
}
@@ -664,17 +701,18 @@
return
}
}
- if(Array.isArray(state.form.involveOtherWork)){
- state.form.involveOtherWork = state.form.involveOtherWork.join(',')
- }
+ // if(Array.isArray(state.form.involveOtherWork)){
+ // state.form.involveOtherWork = state.form.involveOtherWork.join(',')
+ // }
state.form.workDetail.gbPath = state.form.workDetail.gbPath.join(',')
- const data = state.form
+ const {depIdList,...data} = state.form
data.operatorUids = transformArr(data.operatorUids)
- data.headUids = transformArr(data.headUids)
+ data.headUids = transform2Arr(data.headUids)
data.guardianUids = transformArr(data.guardianUids)
- data.safetyMeasureUids = transformArr(data.safetyMeasureUids)
- data.startOrEndUids = transformArr(data.startOrEndUids)
+ data.safetyMeasureUids = transform2Arr(data.safetyMeasureUids)
+ data.startOrEndUids = transform2Arr(data.startOrEndUids)
data.acceptUid = transform2Obj(data.acceptUid)
+ data.lastApprover = transform2Obj(data.lastApprover)
const res = await workApplyApi().submitGroundApply(data)
if (res.data.code === '200') {
ElMessage({
@@ -682,6 +720,8 @@
message: '提交成功!'
});
formEl.resetFields()
+ state.form.guardianUids = []
+ state.form.involveOtherWork = []
getBasicData()
state.form.workDetail.gbPath = []
state.fileList = []
@@ -695,6 +735,10 @@
}
} else {
console.log('error submit!', fields)
+ ElMessage({
+ type: 'warning',
+ message: '有表单内容未完成,请再次检查完善'
+ })
}
})
}
diff --git a/src/views/newSpecialWorkSystem/workTicket/zysq/components/height.vue b/src/views/newSpecialWorkSystem/workTicket/zysq/components/height.vue
index 48bf616..e8815a0 100644
--- a/src/views/newSpecialWorkSystem/workTicket/zysq/components/height.vue
+++ b/src/views/newSpecialWorkSystem/workTicket/zysq/components/height.vue
@@ -4,8 +4,8 @@
<div class="homeCard">
<el-row>
<el-col :span="12">
- <el-form-item label="作业申请单位" prop="applyDepId">
- <el-cascader style="width: 100%" v-model="form.applyDepId" :options="departList2" :props="props" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
+ <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-form-item>
</el-col>
<el-col :span="12">
@@ -63,27 +63,27 @@
<!-- :value="item.uid"-->
<!-- />-->
<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.operatorUids" :options="spList.opList" :props="cas2Props" @change="singleSelect($event,'作业人')" filterable :show-all-levels="false"/>
+ <el-cascader style="width: 100%" v-model="form.operatorUids" :options="lists.spList.opList" :props="cas2Props" @change="singleSelect($event,'作业人')" filterable :show-all-levels="false"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="作业单位" prop="workDepId">
- <el-cascader style="width: 100%" v-model="form.workDepId" :props="depProps" :options="departList" :show-all-levels="false"/>
+ <el-cascader style="width: 100%" v-model="form.workDepId" :props="depProps" :options="lists.departList" :show-all-levels="false"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="作业负责人" prop="headUids">
-<!-- <el-select v-model="form.headUids" filterable multiple @change="getStartEndIds" clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.headUids" :options="workerList" :props="casProps" @change="getStartEndIds" filterable :show-all-levels="false"/>
+ <el-select v-model="form.headUids" filterable multiple @change="getStartEndIds" 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.headUids" :options="lists.workerList" :props="casProps" @change="getStartEndIds" filterable :show-all-levels="false"/>-->
</el-form-item>
</el-col>
</el-row>
@@ -92,13 +92,13 @@
<el-form-item label="监护人" prop="guardianUids">
<!-- <el-select v-model="form.guardianUids" filterable multiple @change="getSafetyIds" clearable>-->
<!-- <el-option-->
-<!-- v-for="item in spList.jhList"-->
+<!-- v-for="item in lists.spList.jhList"-->
<!-- :key="item.uid"-->
<!-- :label="item.realName"-->
<!-- :value="item.uid"-->
<!-- />-->
<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.guardianUids" :options="spList.jhList" :props="cas3Props" filterable @change="singleSelect($event,'监护人')" :show-all-levels="false"/>
+ <el-cascader style="width: 100%" v-model="form.guardianUids" :options="lists.spList.jhList" :props="cas3Props" filterable @change="singleSelect($event,'监护人')" :show-all-levels="false"/>
</el-form-item>
</el-col>
<el-col :span="12" class="valueSelect">
@@ -112,7 +112,7 @@
<!-- />-->
<!-- </el-select>-->
<el-select v-model="form.involveOtherWork" multiple clearable :teleported="false" @click="openWorkSelect">
- <el-option v-for="item in otherWorks" :key="item.workApplyId" :label="item.workContent" :value="item.workApplyId">
+ <el-option v-for="item in lists.otherWorks" :key="item.workApplyId" :label="item.workContent" :value="item.workApplyId">
</el-option>
</el-select>
</el-form-item>
@@ -123,7 +123,7 @@
<el-form-item label="绑定执法仪" prop="cameraIds">
<el-select v-model="form.cameraIds" multiple clearable>
<el-option
- v-for="item in deviceList"
+ v-for="item in lists.deviceList"
:key="item.id"
:label="item.name"
:value="item.id"
@@ -179,7 +179,7 @@
</el-col>
</el-row>
<el-row style="display: flex;justify-content: center">
- <el-table :data="safetyMeasureBasicList" style="width: 90%" border>
+ <el-table :data="safetyMeasureBasicList" style="width: 90%" border v-loading="tabLoading">
<el-table-column type="index" label="序号" width="100px" align="center"/>
<el-table-column prop="measureContent" label="安全措施"/>
</el-table>
@@ -187,20 +187,20 @@
<el-row>
<el-col :span="12">
<el-form-item label="安全措施确认人" filterable prop="safetyMeasureUids">
-<!-- <el-select v-model="form.safetyMeasureUids" multiple clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.safetyMeasureUids" :options="workerList" :props="casProps" filterable @change="singleSelect($event,'确认人')" :show-all-levels="false"/>
+ <el-select v-model="form.safetyMeasureUids" multiple 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.safetyMeasureUids" :options="lists.workerList" :props="casProps" filterable @change="singleSelect($event,'确认人')" :show-all-levels="false"/>-->
</el-form-item>
</el-col>
</el-row>
<el-row style="display: flex;justify-content: center">
- <el-table :data="form.approvalDepBasicList" style="width: 90%" border>
+ <el-table :data="form.approvalDepBasicList" style="width: 90%" border v-loading="tabLoading">
<el-table-column prop="content" label="审批签字项目" align="center"/>
<el-table-column prop="approvalType" label="是否必签" align="center">
<template #default="scope">
@@ -217,7 +217,7 @@
<template #default="scope">
<el-select v-model="scope.row.approvalUids" multiple :disabled="isFirstRow(scope.$index)" clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in lists.workerList"
:key="item.uid"
:label="item.username"
:value="item.uid"
@@ -230,28 +230,43 @@
<el-row>
<el-col :span="12">
<el-form-item label="完工验收" prop="acceptUid">
-<!-- <el-select v-model="form.acceptUid" clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.acceptUid" :options="workerList" :props="cas4Props" filterable :show-all-levels="false"/>
+ <el-select v-model="form.acceptUid" 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.acceptUid" :options="lists.workerList" :props="cas4Props" filterable :show-all-levels="false"/>-->
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="现场开始结束确认人" filterable prop="startOrEndUids">
-<!-- <el-select v-model="form.startOrEndUids" multiple clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.startOrEndUids" :options="workerList" :props="casProps" filterable @change="singleSelect($event,'结束人')" :show-all-levels="false"/>
+ <el-select v-model="form.startOrEndUids" multiple 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.startOrEndUids" :options="lists.workerList" :props="casProps" filterable @change="singleSelect($event,'结束人')" :show-all-levels="false"/>-->
+ </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" 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>
@@ -280,27 +295,30 @@
form: Object,
workLevelList: Array<any>,
equipmentDialog: boolean,
- props:{},
+ props1:{},
depProps:{},
casProps:{}
cas2Props: {}
cas3Props: {}
cas4Props: {}
safetyMeasureBasicList: []
+ tabLoading: boolean
}
export default defineComponent({
name: 'heightForm',
components: {workSelect},
- props:['departList','departList2','workerList','deviceList','otherWorks','spList'],
+ props:['lists'],
setup(props: any, context: any) {
const userInfo = useUserInfo()
const { userInfos } = storeToRefs(userInfo);
const state = reactive<stateType>({
+ tabLoading: false,
equipmentDialog: false,
safetyMeasureBasicList: [],
form: {
workType: 6,
workLevel: null,
+ depIdList: [],
applyDepId: null,
seDepId: null,
expStartTime: '',
@@ -316,6 +334,7 @@
safetyMeasureUids: [],
approvalDepBasicList: [],
acceptUid: null,
+ lastApprover: null,
startOrEndUids: [],
cameraIds: [],
workDetail: {
@@ -340,13 +359,13 @@
value: 7
}
],
- props:{
+ props1:{
expandTrigger: 'hover',
label: 'depName',
- value: 'depId',
- emitPath: false
+ value: 'depId'
},
casProps: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'username',
multiple: true,
@@ -354,8 +373,8 @@
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.workerList
+ if(level == 0){
+ nodes = props.lists.workerList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -376,6 +395,7 @@
}
},
cas2Props: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'realName',
multiple: true,
@@ -384,8 +404,8 @@
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.spList.opList
+ if(level == 0){
+ nodes = props.lists.spList.opList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -406,6 +426,7 @@
}
},
cas3Props: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'realName',
multiple: true,
@@ -413,8 +434,8 @@
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.spList.jhList
+ if(level == 0){
+ nodes = props.lists.spList.jhList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -435,14 +456,15 @@
}
},
cas4Props: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'username',
lazy: true,
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.workerList
+ if(level == 0){
+ nodes = props.lists.workerList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -472,7 +494,7 @@
});
const ruleFormRef = ref<FormInstance>()
const applyRules = reactive<FormRules>({
- applyDepId: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+ depIdList: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workLevel: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
@@ -486,13 +508,14 @@
expEndTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
safetyMeasureUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
acceptUid: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+ lastApprover: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
startOrEndUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
"workDetail.hight": [{ required: true, message: '该内容不能为空', trigger: 'blur' }]
});
const workSelectRef = ref()
// 页面载入时执行方法
onMounted(() => {
-
+ getBasicData()
});
const openWorkSelect = ()=>{
workSelectRef.value.openDialog(state.form.involveOtherWork)
@@ -502,11 +525,13 @@
state.form.involveOtherWork = workSelectRef.value.selected
}
const findParent = ()=>{
- state.form.seDepId = findNearestDepLevel2DepId(props.departList2,state.form.applyDepId)
+ state.form.applyDepId = state.form.depIdList[state.form.depIdList.length - 1]
+ state.form.seDepId = state.form.depIdList[0]
}
// 获取基础数据
const getBasicData = async ()=>{
+ state.tabLoading = true
const res = await workApplyApi().getFormData(6)
if (res.data.code === '200') {
state.safetyMeasureBasicList = JSON.parse(JSON.stringify(res.data.data.safetyMeasureBasicList))
@@ -526,24 +551,27 @@
message: res.data.msg
});
}
+ state.tabLoading = false
};
const getStartEndIds = (value)=>{
- let selected = value
- if(selected.length>1){
- const temp = []
- for(let i of selected){
- const index = temp.findIndex(item => item[0] === i[0]);
- if (index !== -1) {
- temp[index] = i
- }else{
- temp.push(i)
- }
- }
- state.form.headUids = temp
- }
+ // let selected = value
+ // if(selected.length>1){
+ // const temp = []
+ // for(let i of selected){
+ // const index = temp.findIndex(item => item[0] === i[0]);
+ // if (index !== -1) {
+ // temp[index] = i
+ // }else{
+ // temp.push(i)
+ // }
+ // }
+ // state.form.headUids = temp
+ // }
+ // state.form.startOrEndUids = state.form.headUids
+ // state.form.approvalDepBasicList[0].approvalUids = [...new Set(state.form.headUids.map((i)=>i[0]))]
state.form.startOrEndUids = state.form.headUids
- state.form.approvalDepBasicList[0].approvalUids = [...new Set(state.form.headUids.map((i)=>i[0]))]
+ state.form.approvalDepBasicList[0].approvalUids = state.form.headUids
}
const getSafetyIds = ()=>{
@@ -565,12 +593,23 @@
})
}
- const transform2Obj = (arr: Array<any>)=>{
+ const transform2Arr = (arr: Array<any>)=>{
+ return arr.map((i)=>{
+ return {
+ uid: i,
+ certificate: '',
+ certExpiredAt: '',
+ certTypeName: ''
+ }
+ })
+ }
+
+ const transform2Obj = (id: any)=>{
return {
- uid: arr[0],
- certificate: arr[1].split(',')[0],
- certExpiredAt: arr[1].split(',')[1],
- certTypeName: arr[1].split(',')[2]
+ uid: id,
+ certificate: '',
+ certExpiredAt: '',
+ certTypeName: ''
}
}
@@ -609,13 +648,14 @@
// if(Array.isArray(state.form.involveOtherWork)){
// state.form.involveOtherWork = state.form.involveOtherWork.join(',')
// }
- const data = state.form
+ const {depIdList,...data} = state.form
data.operatorUids = transformArr(data.operatorUids)
- data.headUids = transformArr(data.headUids)
+ data.headUids = transform2Arr(data.headUids)
data.guardianUids = transformArr(data.guardianUids)
- data.safetyMeasureUids = transformArr(data.safetyMeasureUids)
- data.startOrEndUids = transformArr(data.startOrEndUids)
+ data.safetyMeasureUids = transform2Arr(data.safetyMeasureUids)
+ data.startOrEndUids = transform2Arr(data.startOrEndUids)
data.acceptUid = transform2Obj(data.acceptUid)
+ data.lastApprover = transform2Obj(data.lastApprover)
const res = await workApplyApi().submitHeightApply(data)
if (res.data.code === '200') {
ElMessage({
@@ -623,6 +663,8 @@
message: '提交成功!'
});
formEl.resetFields()
+ state.form.guardianUids = []
+ state.form.involveOtherWork = []
getBasicData()
} else {
ElMessage({
@@ -633,6 +675,10 @@
}
} else {
console.log('error submit!', fields)
+ ElMessage({
+ type: 'warning',
+ message: '有表单内容未完成,请再次检查完善'
+ })
}
})
}
diff --git a/src/views/newSpecialWorkSystem/workTicket/zysq/components/hoist.vue b/src/views/newSpecialWorkSystem/workTicket/zysq/components/hoist.vue
index e17cd1a..d3a2e52 100644
--- a/src/views/newSpecialWorkSystem/workTicket/zysq/components/hoist.vue
+++ b/src/views/newSpecialWorkSystem/workTicket/zysq/components/hoist.vue
@@ -4,8 +4,8 @@
<div class="homeCard">
<el-row>
<el-col :span="12">
- <el-form-item label="作业申请单位" prop="applyDepId">
- <el-cascader style="width: 100%" v-model="form.applyDepId" :options="departList2" :props="props" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
+ <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-form-item>
</el-col>
<el-col :span="12">
@@ -73,27 +73,27 @@
<!-- :value="item.uid"-->
<!-- />-->
<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.operatorUids" :options="spList.opList" :props="cas2Props" @change="singleSelect($event,'作业人')" filterable :show-all-levels="false"/>
+ <el-cascader style="width: 100%" v-model="form.operatorUids" :options="lists.spList.opList" :props="cas2Props" @change="singleSelect($event,'作业人')" filterable :show-all-levels="false"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="作业单位" prop="workDepId">
- <el-cascader style="width: 100%" v-model="form.workDepId" :props="depProps" :options="departList" :show-all-levels="false"/>
+ <el-cascader style="width: 100%" v-model="form.workDepId" :props="depProps" :options="lists.departList" :show-all-levels="false"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="作业负责人" prop="headUids">
-<!-- <el-select v-model="form.headUids" multiple filterable @change="getStartEndIds" clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.headUids" :options="workerList" :props="casProps" @change="getStartEndIds" filterable :show-all-levels="false"/>
+ <el-select v-model="form.headUids" multiple filterable @change="getStartEndIds" 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.headUids" :options="lists.workerList" :props="casProps" @change="getStartEndIds" filterable :show-all-levels="false"/>-->
</el-form-item>
</el-col>
</el-row>
@@ -102,7 +102,7 @@
<el-form-item label="司索人" prop="workDetail.solicitorUids">
<el-select v-model="form.workDetail.solicitorUids" filterable multiple clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in lists.workerList"
:key="item.uid"
:label="item.username"
:value="item.uid"
@@ -121,7 +121,7 @@
<!-- />-->
<!-- </el-select>-->
<el-select v-model="form.involveOtherWork" multiple clearable :teleported="false" @click="openWorkSelect">
- <el-option v-for="item in otherWorks" :key="item.workApplyId" :label="item.workContent" :value="item.workApplyId">
+ <el-option v-for="item in lists.otherWorks" :key="item.workApplyId" :label="item.workContent" :value="item.workApplyId">
</el-option>
</el-select>
</el-form-item>
@@ -132,20 +132,20 @@
<el-form-item label="监护人" prop="guardianUids">
<!-- <el-select v-model="form.guardianUids" filterable multiple @change="getSafetyIds" clearable>-->
<!-- <el-option-->
-<!-- v-for="item in spList.jhList"-->
+<!-- v-for="item in lists.spList.jhList"-->
<!-- :key="item.uid"-->
<!-- :label="item.realName"-->
<!-- :value="item.uid"-->
<!-- />-->
<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.guardianUids" :options="spList.jhList" :props="cas3Props" filterable @change="singleSelect($event,'监护人')" :show-all-levels="false"/>
+ <el-cascader style="width: 100%" v-model="form.guardianUids" :options="lists.spList.jhList" :props="cas3Props" filterable @change="singleSelect($event,'监护人')" :show-all-levels="false"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="绑定执法仪" prop="cameraIds">
<el-select v-model="form.cameraIds" multiple clearable>
<el-option
- v-for="item in deviceList"
+ v-for="item in lists.deviceList"
:key="item.id"
:label="item.name"
:value="item.id"
@@ -214,7 +214,7 @@
</el-col>
</el-row>
<el-row style="display: flex;justify-content: center">
- <el-table :data="safetyMeasureBasicList" style="width: 90%" border>
+ <el-table :data="safetyMeasureBasicList" style="width: 90%" border v-loading="tabLoading">
<el-table-column type="index" label="序号" width="100px" align="center"/>
<el-table-column prop="measureContent" label="安全措施"/>
<!-- <el-table-column prop="address" label="确认人">-->
@@ -232,15 +232,15 @@
<el-row>
<el-col :span="12">
<el-form-item label="安全措施确认人" prop="safetyMeasureUids">
-<!-- <el-select v-model="form.safetyMeasureUids" filterable multiple clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.safetyMeasureUids" :options="workerList" :props="casProps" filterable @change="singleSelect($event,'确认人')" :show-all-levels="false"/>
+ <el-select v-model="form.safetyMeasureUids" filterable multiple 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.safetyMeasureUids" :options="lists.workerList" :props="casProps" filterable @change="singleSelect($event,'确认人')" :show-all-levels="false"/>-->
</el-form-item>
</el-col>
</el-row>
@@ -265,7 +265,7 @@
<!-- </el-col>-->
<!-- </el-row>-->
<el-row style="display: flex;justify-content: center">
- <el-table :data="form.approvalDepBasicList" style="width: 90%" border>
+ <el-table :data="form.approvalDepBasicList" style="width: 90%" border v-loading="tabLoading">
<el-table-column prop="content" label="审批签字项目" align="center"/>
<el-table-column prop="approvalType" label="是否必签" align="center">
<template #default="scope">
@@ -282,7 +282,7 @@
<template #default="scope">
<el-select v-model="scope.row.approvalUids" filterable multiple :disabled="isFirstRow(scope.$index)" clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in lists.workerList"
:key="item.uid"
:label="item.username"
:value="item.uid"
@@ -295,28 +295,43 @@
<el-row>
<el-col :span="12">
<el-form-item label="完工验收" prop="acceptUid">
-<!-- <el-select v-model="form.acceptUid" filterable clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.acceptUid" :options="workerList" :props="cas4Props" filterable :show-all-levels="false"/>
+ <el-select v-model="form.acceptUid" 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.acceptUid" :options="lists.workerList" :props="cas4Props" filterable :show-all-levels="false"/>-->
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="现场开始结束确认人" prop="startOrEndUids">
-<!-- <el-select v-model="form.startOrEndUids" filterable multiple clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.startOrEndUids" :options="workerList" :props="casProps" filterable @change="singleSelect($event,'结束人')" :show-all-levels="false"/>
+ <el-select v-model="form.startOrEndUids" filterable multiple 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.startOrEndUids" :options="lists.workerList" :props="casProps" filterable @change="singleSelect($event,'结束人')" :show-all-levels="false"/>-->
+ </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-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>
@@ -345,27 +360,30 @@
form: Object,
workLevelList: Array<any>,
equipmentDialog: boolean,
- props:{},
+ props1:{},
depProps:{},
casProps:{}
cas2Props: {}
cas3Props: {}
cas4Props: {}
safetyMeasureBasicList: []
+ tabLoading: boolean
}
export default defineComponent({
name: 'hoistForm',
components: {workSelect},
- props:['departList','departList2','workerList','deviceList','otherWorks','spList'],
+ props:['lists'],
setup(props: any, context: any) {
const userInfo = useUserInfo()
const { userInfos } = storeToRefs(userInfo);
const state = reactive<stateType>({
+ tabLoading: false,
equipmentDialog: false,
safetyMeasureBasicList: [],
form: {
workType: 3,
workLevel: null,
+ depIdList: [],
applyDepId: null,
seDepId: null,
expStartTime: '',
@@ -382,6 +400,7 @@
safetyMeasureUids: [],
approvalDepBasicList: [],
acceptUid: null,
+ lastApprover: null,
startOrEndUids: [],
cameraIds: [],
workDetail: {
@@ -404,11 +423,10 @@
value: 10
}
],
- props:{
+ props1:{
expandTrigger: 'hover',
label: 'depName',
- value: 'depId',
- emitPath: false
+ value: 'depId'
},
depProps:{
expandTrigger: 'hover',
@@ -418,6 +436,7 @@
emitPath: false
},
casProps: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'username',
multiple: true,
@@ -425,8 +444,8 @@
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.workerList
+ if(level == 0){
+ nodes = props.lists.workerList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -447,6 +466,7 @@
}
},
cas2Props: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'realName',
multiple: true,
@@ -455,8 +475,8 @@
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.spList.opList
+ if(level == 0){
+ nodes = props.lists.spList.opList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -477,6 +497,7 @@
}
},
cas3Props: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'realName',
multiple: true,
@@ -484,8 +505,8 @@
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.spList.jhList
+ if(level == 0){
+ nodes = props.lists.spList.jhList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -506,14 +527,15 @@
}
},
cas4Props: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'username',
lazy: true,
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.workerList
+ if(level == 0){
+ nodes = props.lists.workerList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -536,7 +558,7 @@
});
const ruleFormRef = ref<FormInstance>()
const applyRules = reactive<FormRules>({
- applyDepId: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+ depIdList: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workLevel: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
@@ -551,6 +573,7 @@
expEndTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
safetyMeasureUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
acceptUid: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+ lastApprover: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
startOrEndUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
"workDetail.hoistingToolName": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
"workDetail.weightMass": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
@@ -559,7 +582,7 @@
const workSelectRef = ref()
// 页面载入时执行方法
onMounted(() => {
-
+ getBasicData()
});
const openWorkSelect = ()=>{
workSelectRef.value.openDialog(state.form.involveOtherWork)
@@ -569,12 +592,13 @@
state.form.involveOtherWork = workSelectRef.value.selected
}
const findParent = ()=>{
- state.form.seDepId = findNearestDepLevel2DepId(props.departList2,state.form.applyDepId)
- console.log(state.form.seDepId,'state.form.seDepId')
+ state.form.applyDepId = state.form.depIdList[state.form.depIdList.length - 1]
+ state.form.seDepId = state.form.depIdList[0]
}
// 获取基础数据
const getBasicData = async ()=>{
+ state.tabLoading = true
const res = await workApplyApi().getFormData(3)
if (res.data.code === '200') {
state.safetyMeasureBasicList = JSON.parse(JSON.stringify(res.data.data.safetyMeasureBasicList))
@@ -594,24 +618,27 @@
message: res.data.msg
});
}
+ state.tabLoading = false
};
const getStartEndIds = (value)=>{
- let selected = value
- if(selected.length>1){
- const temp = []
- for(let i of selected){
- const index = temp.findIndex(item => item[0] === i[0]);
- if (index !== -1) {
- temp[index] = i
- }else{
- temp.push(i)
- }
- }
- state.form.headUids = temp
- }
+ // let selected = value
+ // if(selected.length>1){
+ // const temp = []
+ // for(let i of selected){
+ // const index = temp.findIndex(item => item[0] === i[0]);
+ // if (index !== -1) {
+ // temp[index] = i
+ // }else{
+ // temp.push(i)
+ // }
+ // }
+ // state.form.headUids = temp
+ // }
+ // state.form.startOrEndUids = state.form.headUids
+ // state.form.approvalDepBasicList[0].approvalUids = [...new Set(state.form.headUids.map((i)=>i[0]))]
state.form.startOrEndUids = state.form.headUids
- state.form.approvalDepBasicList[0].approvalUids = [...new Set(state.form.headUids.map((i)=>i[0]))]
+ state.form.approvalDepBasicList[0].approvalUids = state.form.headUids
}
const getSafetyIds = ()=>{
@@ -633,12 +660,23 @@
})
}
- const transform2Obj = (arr: Array<any>)=>{
+ const transform2Arr = (arr: Array<any>)=>{
+ return arr.map((i)=>{
+ return {
+ uid: i,
+ certificate: '',
+ certExpiredAt: '',
+ certTypeName: ''
+ }
+ })
+ }
+
+ const transform2Obj = (id:any)=>{
return {
- uid: arr[0],
- certificate: arr[1].split(',')[0],
- certExpiredAt: arr[1].split(',')[1],
- certTypeName: arr[1].split(',')[2]
+ uid: id,
+ certificate: '',
+ certExpiredAt: '',
+ certTypeName: ''
}
}
@@ -678,13 +716,14 @@
// state.form.involveOtherWork = state.form.involveOtherWork.join(',')
// }
state.form.workDetail.solicitorUids = state.form.workDetail.solicitorUids.join(',')
- const data = state.form
+ const {depIdList,...data} = state.form
data.operatorUids = transformArr(data.operatorUids)
- data.headUids = transformArr(data.headUids)
+ data.headUids = transform2Arr(data.headUids)
data.guardianUids = transformArr(data.guardianUids)
- data.safetyMeasureUids = transformArr(data.safetyMeasureUids)
- data.startOrEndUids = transformArr(data.startOrEndUids)
+ data.safetyMeasureUids = transform2Arr(data.safetyMeasureUids)
+ data.startOrEndUids = transform2Arr(data.startOrEndUids)
data.acceptUid = transform2Obj(data.acceptUid)
+ data.lastApprover = transform2Obj(data.lastApprover)
const res = await workApplyApi().submitHoistApply(data)
if (res.data.code === '200') {
ElMessage({
@@ -692,6 +731,8 @@
message: '提交成功!'
});
formEl.resetFields()
+ state.form.guardianUids = []
+ state.form.involveOtherWork = []
getBasicData()
} else {
ElMessage({
@@ -703,6 +744,10 @@
}
} else {
console.log('error submit!', fields)
+ ElMessage({
+ type: 'warning',
+ message: '有表单内容未完成,请再次检查完善'
+ })
}
})
}
diff --git a/src/views/newSpecialWorkSystem/workTicket/zysq/components/plate.vue b/src/views/newSpecialWorkSystem/workTicket/zysq/components/plate.vue
index 54240e7..fe6bcea 100644
--- a/src/views/newSpecialWorkSystem/workTicket/zysq/components/plate.vue
+++ b/src/views/newSpecialWorkSystem/workTicket/zysq/components/plate.vue
@@ -4,8 +4,8 @@
<div class="homeCard">
<el-row>
<el-col :span="12">
- <el-form-item label="作业申请单位" prop="applyDepId">
- <el-cascader style="width: 100%" v-model="form.applyDepId" :options="departList2" :props="props" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
+ <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-form-item>
</el-col>
<el-col :span="12">
@@ -146,13 +146,13 @@
<el-form-item label="作业人" prop="operatorUids">
<!-- <el-select v-model="form.operatorUids" filterable multiple clearable>-->
<!-- <el-option-->
-<!-- v-for="item in spList.opList"-->
+<!-- v-for="item in lists.spList.opList"-->
<!-- :key="item.uid"-->
<!-- :label="item.realName"-->
<!-- :value="item.uid"-->
<!-- />-->
<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.operatorUids" :options="spList.opList" :props="cas2Props" @change="singleSelect($event,'作业人')" filterable :show-all-levels="false"/>
+ <el-cascader style="width: 100%" v-model="form.operatorUids" :options="lists.spList.opList" :props="cas2Props" @change="singleSelect($event,'作业人')" filterable :show-all-levels="false"/>
</el-form-item>
</el-col>
<el-col :span="12" class="valueSelect">
@@ -166,7 +166,7 @@
<!-- />-->
<!-- </el-select>-->
<el-select v-model="form.involveOtherWork" multiple clearable :teleported="false" @click="openWorkSelect">
- <el-option v-for="item in otherWorks" :key="item.workApplyId" :label="item.workContent" :value="item.workApplyId">
+ <el-option v-for="item in lists.otherWorks" :key="item.workApplyId" :label="item.workContent" :value="item.workApplyId">
</el-option>
</el-select>
</el-form-item>
@@ -175,20 +175,20 @@
<el-row>
<el-col :span="12">
<el-form-item label="作业单位" prop="workDepId">
- <el-cascader style="width: 100%" v-model="form.workDepId" :props="depProps" :options="departList" :show-all-levels="false"/>
+ <el-cascader style="width: 100%" v-model="form.workDepId" :props="depProps" :options="lists.departList" :show-all-levels="false"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="作业负责人" prop="headUids">
-<!-- <el-select v-model="form.headUids" multiple filterable @change="getStartEndIds" clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.headUids" :options="workerList" :props="casProps" @change="getStartEndIds" filterable :show-all-levels="false"/>
+ <el-select v-model="form.headUids" multiple filterable @change="getStartEndIds" 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.headUids" :options="lists.workerList" :props="casProps" @change="getStartEndIds" filterable :show-all-levels="false"/>-->
</el-form-item>
</el-col>
</el-row>
@@ -197,20 +197,20 @@
<el-form-item label="监护人" prop="guardianUids">
<!-- <el-select v-model="form.guardianUids" multiple filterable @change="getSafetyIds" clearable>-->
<!-- <el-option-->
-<!-- v-for="item in spList.jhList"-->
+<!-- v-for="item in lists.spList.jhList"-->
<!-- :key="item.uid"-->
<!-- :label="item.realName"-->
<!-- :value="item.uid"-->
<!-- />-->
<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.guardianUids" :options="spList.jhList" :props="cas3Props" filterable @change="singleSelect($event,'监护人')" :show-all-levels="false"/>
+ <el-cascader style="width: 100%" v-model="form.guardianUids" :options="lists.spList.jhList" :props="cas3Props" filterable @change="singleSelect($event,'监护人')" :show-all-levels="false"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="绑定执法仪" prop="cameraIds">
<el-select v-model="form.cameraIds" multiple clearable>
<el-option
- v-for="item in deviceList"
+ v-for="item in lists.deviceList"
:key="item.id"
:label="item.name"
:value="item.id"
@@ -287,7 +287,7 @@
</el-col>
</el-row>
<el-row style="display: flex;justify-content: center">
- <el-table :data="safetyMeasureBasicList" style="width: 90%" border>
+ <el-table :data="safetyMeasureBasicList" style="width: 90%" border v-loading="tabLoading">
<el-table-column type="index" label="序号" width="100px" align="center"/>
<el-table-column prop="measureContent" label="安全措施"/>
</el-table>
@@ -295,20 +295,20 @@
<el-row>
<el-col :span="12">
<el-form-item label="安全措施确认人" prop="safetyMeasureUids">
-<!-- <el-select v-model="form.safetyMeasureUids" filterable multiple clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.safetyMeasureUids" :options="workerList" :props="casProps" filterable @change="singleSelect($event,'确认人')" :show-all-levels="false"/>
+ <el-select v-model="form.safetyMeasureUids" filterable multiple 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.safetyMeasureUids" :options="lists.workerList" :props="casProps" filterable @change="singleSelect($event,'确认人')" :show-all-levels="false"/>-->
</el-form-item>
</el-col>
</el-row>
<el-row style="display: flex;justify-content: center">
- <el-table :data="form.approvalDepBasicList" style="width: 90%" border>
+ <el-table :data="form.approvalDepBasicList" style="width: 90%" border v-loading="tabLoading">
<el-table-column prop="content" label="审批签字项目" align="center"/>
<el-table-column prop="approvalType" label="是否必签" align="center">
<template #default="scope">
@@ -325,7 +325,7 @@
<template #default="scope">
<el-select v-model="scope.row.approvalUids" filterable multiple :disabled="isFirstRow(scope.$index)" clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in lists.workerList"
:key="item.uid"
:label="item.username"
:value="item.uid"
@@ -338,28 +338,43 @@
<el-row>
<el-col :span="12">
<el-form-item label="完工验收" prop="acceptUid">
-<!-- <el-select v-model="form.acceptUid" filterable clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.acceptUid" :options="workerList" :props="cas4Props" filterable :show-all-levels="false"/>
+ <el-select v-model="form.acceptUid" 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.acceptUid" :options="lists.workerList" :props="cas4Props" filterable :show-all-levels="false"/>-->
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="现场开始结束确认人" prop="startOrEndUids">
-<!-- <el-select v-model="form.startOrEndUids" filterable multiple clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.startOrEndUids" :options="workerList" :props="casProps" filterable @change="singleSelect($event,'结束人')" :show-all-levels="false"/>
+ <el-select v-model="form.startOrEndUids" filterable multiple 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.startOrEndUids" :options="lists.workerList" :props="casProps" filterable @change="singleSelect($event,'结束人')" :show-all-levels="false"/>-->
+ </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-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>
@@ -390,7 +405,7 @@
form: Object,
workLevelList: Array<any>,
equipmentDialog: boolean,
- props:{},
+ props1:{},
depProps:{},
casProps:{}
cas2Props: {}
@@ -402,23 +417,26 @@
dialogVisible: Boolean,
dialogImageUrl: string | null,
imgLimit: number,
+ tabLoading: boolean
}
interface file {
url: string;
}
export default defineComponent({
- name: 'fireForm',
+ name: 'plateForm',
components: {workSelect},
- props:['departList','departList2','workerList','deviceList','otherWorks','spList'],
+ props:['lists'],
setup(props: any, context: any) {
const userInfo = useUserInfo()
const { userInfos } = storeToRefs(userInfo);
const state = reactive<stateType>({
+ tabLoading: false,
equipmentDialog: false,
safetyMeasureBasicList: [],
form: {
workType: 8,
workLevel: null,
+ depIdList: [],
applyDepId: null,
seDepId: null,
expStartTime: '',
@@ -434,6 +452,7 @@
safetyMeasureUids: [],
approvalDepBasicList: [],
acceptUid: null,
+ lastApprover: null,
startOrEndUids: [],
cameraIds: [],
workDetail: {
@@ -460,11 +479,10 @@
value: 12
}
],
- props:{
+ props1:{
expandTrigger: 'hover',
label: 'depName',
- value: 'depId',
- emitPath: false
+ value: 'depId'
},
depProps:{
expandTrigger: 'hover',
@@ -474,6 +492,7 @@
emitPath: false
},
casProps: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'username',
multiple: true,
@@ -481,8 +500,8 @@
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.workerList
+ if(level == 0){
+ nodes = props.lists.workerList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -503,6 +522,7 @@
}
},
cas2Props: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'realName',
multiple: true,
@@ -511,8 +531,8 @@
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.spList.opList
+ if(level == 0){
+ nodes = props.lists.spList.opList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -533,6 +553,7 @@
}
},
cas3Props: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'realName',
multiple: true,
@@ -540,8 +561,8 @@
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.spList.jhList
+ if(level == 0){
+ nodes = props.lists.spList.jhList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -562,14 +583,15 @@
}
},
cas4Props: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'username',
lazy: true,
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.workerList
+ if(level == 0){
+ nodes = props.lists.workerList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -597,7 +619,7 @@
});
const ruleFormRef = ref<FormInstance>()
const applyRules = reactive<FormRules>({
- applyDepId: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+ depIdList: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workLevel: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
@@ -611,6 +633,7 @@
expEndTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
safetyMeasureUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
acceptUid: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+ lastApprover: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
startOrEndUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
"workDetail.pipingName": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
"workDetail.bpCode": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
@@ -627,7 +650,7 @@
const workSelectRef = ref()
// 页面载入时执行方法
onMounted(() => {
-
+ getBasicData()
});
const openWorkSelect = ()=>{
workSelectRef.value.openDialog(state.form.involveOtherWork)
@@ -638,12 +661,13 @@
}
const findParent = ()=>{
- state.form.seDepId = findNearestDepLevel2DepId(props.departList2,state.form.applyDepId)
- console.log(state.form.seDepId,'state.form.seDepId')
+ state.form.applyDepId = state.form.depIdList[state.form.depIdList.length - 1]
+ state.form.seDepId = state.form.depIdList[0]
}
// 获取基础数据
const getBasicData = async ()=>{
+ state.tabLoading = true
const res = await workApplyApi().getFormData(8)
if (res.data.code === '200') {
state.safetyMeasureBasicList = JSON.parse(JSON.stringify(res.data.data.safetyMeasureBasicList))
@@ -663,24 +687,27 @@
message: res.data.msg
});
}
+ state.tabLoading = false
};
const getStartEndIds = (value)=>{
- let selected = value
- if(selected.length>1){
- const temp = []
- for(let i of selected){
- const index = temp.findIndex(item => item[0] === i[0]);
- if (index !== -1) {
- temp[index] = i
- }else{
- temp.push(i)
- }
- }
- state.form.headUids = temp
- }
+ // let selected = value
+ // if(selected.length>1){
+ // const temp = []
+ // for(let i of selected){
+ // const index = temp.findIndex(item => item[0] === i[0]);
+ // if (index !== -1) {
+ // temp[index] = i
+ // }else{
+ // temp.push(i)
+ // }
+ // }
+ // state.form.headUids = temp
+ // }
+ // state.form.startOrEndUids = state.form.headUids
+ // state.form.approvalDepBasicList[0].approvalUids = [...new Set(state.form.headUids.map((i)=>i[0]))]
state.form.startOrEndUids = state.form.headUids
- state.form.approvalDepBasicList[0].approvalUids = [...new Set(state.form.headUids.map((i)=>i[0]))]
+ state.form.approvalDepBasicList[0].approvalUids = state.form.headUids
}
const getSafetyIds = ()=>{
@@ -702,12 +729,23 @@
})
}
- const transform2Obj = (arr: Array<any>)=>{
+ const transform2Arr = (arr: Array<any>)=>{
+ return arr.map((i)=>{
+ return {
+ uid: i,
+ certificate: '',
+ certExpiredAt: '',
+ certTypeName: ''
+ }
+ })
+ }
+
+ const transform2Obj = (id:any)=>{
return {
- uid: arr[0],
- certificate: arr[1].split(',')[0],
- certExpiredAt: arr[1].split(',')[1],
- certTypeName: arr[1].split(',')[2]
+ uid: id,
+ certificate: '',
+ certExpiredAt: '',
+ certTypeName: ''
}
}
@@ -747,13 +785,14 @@
// state.form.involveOtherWork = state.form.involveOtherWork.join(',')
// }
state.form.workDetail.bpLocationMapPath = state.form.workDetail.bpLocationMapPath.join(',')
- const data = state.form
+ const {depIdList,...data} = state.form
data.operatorUids = transformArr(data.operatorUids)
- data.headUids = transformArr(data.headUids)
+ data.headUids = transform2Arr(data.headUids)
data.guardianUids = transformArr(data.guardianUids)
- data.safetyMeasureUids = transformArr(data.safetyMeasureUids)
- data.startOrEndUids = transformArr(data.startOrEndUids)
+ data.safetyMeasureUids = transform2Arr(data.safetyMeasureUids)
+ data.startOrEndUids = transform2Arr(data.startOrEndUids)
data.acceptUid = transform2Obj(data.acceptUid)
+ data.lastApprover = transform2Obj(data.lastApprover)
const res = await workApplyApi().submitPlateApply(data)
if (res.data.code === '200') {
ElMessage({
@@ -761,6 +800,8 @@
message: '提交成功!'
});
formEl.resetFields()
+ state.form.guardianUids = []
+ state.form.involveOtherWork = []
getBasicData()
state.form.workDetail.bpLocationMapPath = []
state.fileList = []
@@ -774,6 +815,10 @@
}
} else {
console.log('error submit!', fields)
+ ElMessage({
+ type: 'warning',
+ message: '有表单内容未完成,请再次检查完善'
+ })
}
})
}
diff --git a/src/views/newSpecialWorkSystem/workTicket/zysq/components/power.vue b/src/views/newSpecialWorkSystem/workTicket/zysq/components/power.vue
index 635a6f8..ddadf29 100644
--- a/src/views/newSpecialWorkSystem/workTicket/zysq/components/power.vue
+++ b/src/views/newSpecialWorkSystem/workTicket/zysq/components/power.vue
@@ -4,8 +4,8 @@
<div class="homeCard">
<el-row>
<el-col :span="12">
- <el-form-item label="作业申请单位" prop="applyDepId">
- <el-cascader style="width: 100%" v-model="form.applyDepId" :options="departList2" :props="props" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
+ <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-form-item>
</el-col>
</el-row>
@@ -67,7 +67,7 @@
<el-form-item label="用电人" prop="workDetail.electricityUids">
<el-select v-model="form.workDetail.electricityUids" multiple clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in lists.workerList"
:key="item.uid"
:label="item.username"
:value="item.uid"
@@ -81,48 +81,48 @@
<el-form-item label="作业人" prop="operatorUids">
<!-- <el-select v-model="form.operatorUids" filterable multiple clearable>-->
<!-- <el-option-->
-<!-- v-for="item in spList.opList"-->
+<!-- v-for="item in lists.spList.opList"-->
<!-- :key="item.uid"-->
<!-- :label="item.realName"-->
<!-- :value="item.uid"-->
<!-- />-->
<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.operatorUids" :options="spList.opList" :props="cas2Props" @change="singleSelect($event,'作业人')" filterable :show-all-levels="false"/>
+ <el-cascader style="width: 100%" v-model="form.operatorUids" :options="lists.spList.opList" :props="cas2Props" @change="singleSelect($event,'作业人')" filterable :show-all-levels="false"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="作业单位" prop="workDepId">
- <el-cascader style="width: 100%" v-model="form.workDepId" :props="depProps" :options="departList" :show-all-levels="false"/>
+ <el-cascader style="width: 100%" v-model="form.workDepId" :props="depProps" :options="lists.departList" :show-all-levels="false"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="作业负责人" prop="headUids">
-<!-- <el-select v-model="form.headUids" multiple filterable @change="getStartEndIds" clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.headUids" :options="workerList" :props="casProps" @change="getStartEndIds" filterable :show-all-levels="false"/>
+ <el-select v-model="form.headUids" multiple filterable @change="getStartEndIds" 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.headUids" :options="lists.workerList" :props="casProps" @change="getStartEndIds" filterable :show-all-levels="false"/>-->
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="分析人" prop="analystUids">
-<!-- <el-select v-model="form.analystUids" filterable multiple clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.analystUids" :options="workerList" :props="casProps" filterable @change="singleSelect($event,'分析人')" :show-all-levels="false"/>
+ <el-select v-model="form.analystUids" filterable multiple 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.analystUids" :options="lists.workerList" :props="casProps" filterable @change="singleSelect($event,'分析人')" :show-all-levels="false"/>-->
</el-form-item>
</el-col>
<el-col :span="12" class="valueSelect">
@@ -136,7 +136,7 @@
<!-- />-->
<!-- </el-select>-->
<el-select v-model="form.involveOtherWork" multiple clearable :teleported="false" @click="openWorkSelect">
- <el-option v-for="item in otherWorks" :key="item.workApplyId" :label="item.workContent" :value="item.workApplyId">
+ <el-option v-for="item in lists.otherWorks" :key="item.workApplyId" :label="item.workContent" :value="item.workApplyId">
</el-option>
</el-select>
</el-form-item>
@@ -147,20 +147,20 @@
<el-form-item label="监护人" prop="guardianUids">
<!-- <el-select v-model="form.guardianUids" multiple filterable @change="getSafetyIds" clearable>-->
<!-- <el-option-->
-<!-- v-for="item in spList.jhList"-->
+<!-- v-for="item in lists.spList.jhList"-->
<!-- :key="item.uid"-->
<!-- :label="item.realName"-->
<!-- :value="item.uid"-->
<!-- />-->
<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.guardianUids" :options="spList.jhList" :props="cas3Props" filterable @change="singleSelect($event,'监护人')" :show-all-levels="false"/>
+ <el-cascader style="width: 100%" v-model="form.guardianUids" :options="lists.spList.jhList" :props="cas3Props" filterable @change="singleSelect($event,'监护人')" :show-all-levels="false"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="绑定执法仪" prop="cameraIds">
<el-select v-model="form.cameraIds" multiple clearable>
<el-option
- v-for="item in deviceList"
+ v-for="item in lists.deviceList"
:key="item.id"
:label="item.name"
:value="item.id"
@@ -229,7 +229,7 @@
</el-col>
</el-row>
<el-row style="display: flex;justify-content: center">
- <el-table :data="safetyMeasureBasicList" style="width: 90%" border>
+ <el-table :data="safetyMeasureBasicList" style="width: 90%" border v-loading="tabLoading">
<el-table-column type="index" label="序号" width="100px" align="center"/>
<el-table-column prop="measureContent" label="安全措施"/>
<!-- <el-table-column prop="address" label="确认人">-->
@@ -247,15 +247,15 @@
<el-row>
<el-col :span="12">
<el-form-item label="安全措施确认人" prop="safetyMeasureUids">
-<!-- <el-select v-model="form.safetyMeasureUids" filterable multiple clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.safetyMeasureUids" :options="workerList" :props="casProps" filterable @change="singleSelect($event,'确认人')" :show-all-levels="false"/>
+ <el-select v-model="form.safetyMeasureUids" filterable multiple 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.safetyMeasureUids" :options="lists.workerList" :props="casProps" filterable @change="singleSelect($event,'确认人')" :show-all-levels="false"/>-->
</el-form-item>
</el-col>
</el-row>
@@ -280,7 +280,7 @@
<!-- </el-col>-->
<!-- </el-row>-->
<el-row style="display: flex;justify-content: center">
- <el-table :data="form.approvalDepBasicList" style="width: 90%" border>
+ <el-table :data="form.approvalDepBasicList" style="width: 90%" border v-loading="tabLoading">
<el-table-column prop="content" label="审批签字项目" align="center"/>
<el-table-column prop="approvalType" label="是否必签" align="center">
<template #default="scope">
@@ -297,7 +297,7 @@
<template #default="scope">
<el-select v-model="scope.row.approvalUids" filterable multiple :disabled="isFirstRow(scope.$index)" clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in lists.workerList"
:key="item.uid"
:label="item.username"
:value="item.uid"
@@ -310,28 +310,43 @@
<el-row>
<el-col :span="12">
<el-form-item label="完工验收" prop="acceptUid">
-<!-- <el-select v-model="form.acceptUid" filterable clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.acceptUid" :options="workerList" :props="cas4Props" filterable :show-all-levels="false"/>
+ <el-select v-model="form.acceptUid" 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.acceptUid" :options="lists.workerList" :props="cas4Props" filterable :show-all-levels="false"/>-->
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="现场开始结束确认人" prop="startOrEndUids">
-<!-- <el-select v-model="form.startOrEndUids" filterable multiple clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.startOrEndUids" :options="workerList" :props="casProps" filterable @change="singleSelect($event,'结束人')" :show-all-levels="false"/>
+ <el-select v-model="form.startOrEndUids" filterable multiple 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.startOrEndUids" :options="lists.workerList" :props="casProps" filterable @change="singleSelect($event,'结束人')" :show-all-levels="false"/>-->
+ </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-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>
@@ -359,27 +374,30 @@
interface stateType {
form: Object,
equipmentDialog: boolean,
- props:{},
+ props1:{},
depProps:{},
casProps:{}
cas2Props: {}
cas3Props: {}
cas4Props: {}
safetyMeasureBasicList: []
+ tabLoading: boolean
}
export default defineComponent({
name: 'powerForm',
components: {workSelect},
- props:['departList','departList2','workerList','deviceList','otherWorks','spList'],
+ props:['lists'],
setup(props: any, context: any) {
const userInfo = useUserInfo()
const { userInfos } = storeToRefs(userInfo);
const state = reactive<stateType>({
+ tabLoading: false,
equipmentDialog: false,
safetyMeasureBasicList: [],
form: {
workType: 7,
workLevel: 0,
+ depIdList: [],
applyDepId: null,
seDepId: null,
expStartTime: '',
@@ -396,6 +414,7 @@
safetyMeasureUids: [],
approvalDepBasicList: [],
acceptUid: null,
+ lastApprover: null,
startOrEndUids: [],
cameraIds: [],
workDetail: {
@@ -405,11 +424,10 @@
electricityUids: []
}
},
- props:{
+ props1:{
expandTrigger: 'hover',
label: 'depName',
- value: 'depId',
- emitPath: false
+ value: 'depId'
},
depProps:{
expandTrigger: 'hover',
@@ -419,6 +437,7 @@
emitPath: false
},
casProps: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'username',
multiple: true,
@@ -426,8 +445,8 @@
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.workerList
+ if(level == 0){
+ nodes = props.lists.workerList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -448,6 +467,7 @@
}
},
cas2Props: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'realName',
multiple: true,
@@ -456,8 +476,8 @@
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.spList.opList
+ if(level == 0){
+ nodes = props.lists.spList.opList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -478,6 +498,7 @@
}
},
cas3Props: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'realName',
multiple: true,
@@ -485,8 +506,8 @@
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.spList.jhList
+ if(level == 0){
+ nodes = props.lists.spList.jhList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -507,14 +528,15 @@
}
},
cas4Props: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'username',
lazy: true,
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.workerList
+ if(level == 0){
+ nodes = props.lists.workerList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -537,7 +559,7 @@
});
const ruleFormRef = ref<FormInstance>()
const applyRules = reactive<FormRules>({
- applyDepId: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+ depIdList: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workLevel: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
@@ -552,6 +574,7 @@
expEndTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
safetyMeasureUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
acceptUid: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+ lastApprover: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
startOrEndUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
"workDetail.powerAccessPoint": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
"workDetail.workingVoltage": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
@@ -561,7 +584,7 @@
const workSelectRef = ref()
// 页面载入时执行方法
onMounted(() => {
-
+ getBasicData()
});
const openWorkSelect = ()=>{
workSelectRef.value.openDialog(state.form.involveOtherWork)
@@ -570,12 +593,13 @@
state.form.involveOtherWork = workSelectRef.value.selected
}
const findParent = ()=>{
- state.form.seDepId = findNearestDepLevel2DepId(props.departList2,state.form.applyDepId)
- console.log(state.form.seDepId,'state.form.seDepId')
+ state.form.applyDepId = state.form.depIdList[state.form.depIdList.length - 1]
+ state.form.seDepId = state.form.depIdList[0]
}
// 获取基础数据
const getBasicData = async ()=>{
+ state.tabLoading = true
const res = await workApplyApi().getFormData(7)
if (res.data.code === '200') {
state.safetyMeasureBasicList = JSON.parse(JSON.stringify(res.data.data.safetyMeasureBasicList))
@@ -595,24 +619,27 @@
message: res.data.msg
});
}
+ state.tabLoading = false
};
const getStartEndIds = (value)=>{
- let selected = value
- if(selected.length>1){
- const temp = []
- for(let i of selected){
- const index = temp.findIndex(item => item[0] === i[0]);
- if (index !== -1) {
- temp[index] = i
- }else{
- temp.push(i)
- }
- }
- state.form.headUids = temp
- }
+ // let selected = value
+ // if(selected.length>1){
+ // const temp = []
+ // for(let i of selected){
+ // const index = temp.findIndex(item => item[0] === i[0]);
+ // if (index !== -1) {
+ // temp[index] = i
+ // }else{
+ // temp.push(i)
+ // }
+ // }
+ // state.form.headUids = temp
+ // }
+ // state.form.startOrEndUids = state.form.headUids
+ // state.form.approvalDepBasicList[0].approvalUids = [...new Set(state.form.headUids.map((i)=>i[0]))]
state.form.startOrEndUids = state.form.headUids
- state.form.approvalDepBasicList[0].approvalUids = [...new Set(state.form.headUids.map((i)=>i[0]))]
+ state.form.approvalDepBasicList[0].approvalUids = state.form.headUids
}
const getSafetyIds = ()=>{
@@ -634,12 +661,23 @@
})
}
- const transform2Obj = (arr: Array<any>)=>{
+ const transform2Arr = (arr: Array<any>)=>{
+ return arr.map((i)=>{
+ return {
+ uid: i,
+ certificate: '',
+ certExpiredAt: '',
+ certTypeName: ''
+ }
+ })
+ }
+
+ const transform2Obj = (id:any)=>{
return {
- uid: arr[0],
- certificate: arr[1].split(',')[0],
- certExpiredAt: arr[1].split(',')[1],
- certTypeName: arr[1].split(',')[2]
+ uid: id,
+ certificate: '',
+ certExpiredAt: '',
+ certTypeName: ''
}
}
@@ -656,7 +694,7 @@
}
}
if(type == '作业人'){state.form.operatorUids = temp}
- if(type == '分析人'){state.form.analystUids = 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}
@@ -680,14 +718,15 @@
// state.form.involveOtherWork = state.form.involveOtherWork.join(',')
// }
state.form.workDetail.electricityUids = state.form.workDetail.electricityUids.join(',')
- const data = state.form
+ const {depIdList,...data} = state.form
data.operatorUids = transformArr(data.operatorUids)
- data.headUids = transformArr(data.headUids)
- data.analystUids = transformArr(data.analystUids)
+ data.headUids = transform2Arr(data.headUids)
+ // data.analystUids = transformArr(data.analystUids)
data.guardianUids = transformArr(data.guardianUids)
- data.safetyMeasureUids = transformArr(data.safetyMeasureUids)
- data.startOrEndUids = transformArr(data.startOrEndUids)
+ data.safetyMeasureUids = transform2Arr(data.safetyMeasureUids)
+ data.startOrEndUids = transform2Arr(data.startOrEndUids)
data.acceptUid = transform2Obj(data.acceptUid)
+ data.lastApprover = transform2Obj(data.lastApprover)
const res = await workApplyApi().submitPowerApply(data)
if (res.data.code === '200') {
ElMessage({
@@ -695,6 +734,8 @@
message: '提交成功!'
});
formEl.resetFields()
+ state.form.guardianUids = []
+ state.form.involveOtherWork = []
getBasicData()
} else {
ElMessage({
@@ -706,6 +747,10 @@
}
} else {
console.log('error submit!', fields)
+ ElMessage({
+ type: 'warning',
+ message: '有表单内容未完成,请再次检查完善'
+ })
}
})
}
diff --git a/src/views/newSpecialWorkSystem/workTicket/zysq/components/space.vue b/src/views/newSpecialWorkSystem/workTicket/zysq/components/space.vue
index df2e3bd..3ceadc7 100644
--- a/src/views/newSpecialWorkSystem/workTicket/zysq/components/space.vue
+++ b/src/views/newSpecialWorkSystem/workTicket/zysq/components/space.vue
@@ -4,8 +4,8 @@
<div class="homeCard">
<el-row>
<el-col :span="12">
- <el-form-item label="作业申请单位" prop="applyDepId">
- <el-cascader style="width: 100%" v-model="form.applyDepId" :options="departList2" :props="props" :show-all-levels="false" placeholder="明确到具体车间" @change="findParent" clearable/>
+ <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-form-item>
</el-col>
</el-row>
@@ -46,13 +46,13 @@
<el-form-item label="作业人" prop="operatorUids">
<!-- <el-select v-model="form.operatorUids" filterable multiple clearable>-->
<!-- <el-option-->
-<!-- v-for="item in spList.opList"-->
+<!-- v-for="item in lists.spList.opList"-->
<!-- :key="item.uid"-->
<!-- :label="item.realName"-->
<!-- :value="item.uid"-->
<!-- />-->
<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.operatorUids" :options="spList.opList" :props="cas2Props" @change="singleSelect($event,'作业人')" filterable :show-all-levels="false"/>
+ <el-cascader style="width: 100%" v-model="form.operatorUids" :options="lists.spList.opList" :props="cas2Props" @change="singleSelect($event,'作业人')" filterable :show-all-levels="false"/>
</el-form-item>
</el-col>
</el-row>
@@ -71,41 +71,41 @@
<el-row>
<el-col :span="12">
<el-form-item label="作业单位" prop="workDepId">
- <el-cascader style="width: 100%" v-model="form.workDepId" :props="depProps" :options="departList" :show-all-levels="false"/>
+ <el-cascader style="width: 100%" v-model="form.workDepId" :props="depProps" :options="lists.departList" :show-all-levels="false"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="作业负责人" prop="headUids">
-<!-- <el-select v-model="form.headUids" multiple filterable @change="getStartEndIds" clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.headUids" :options="workerList" :props="casProps" @change="getStartEndIds" filterable :show-all-levels="false"/>
+ <el-select v-model="form.headUids" multiple filterable @change="getStartEndIds" 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.headUids" :options="lists.workerList" :props="casProps" @change="getStartEndIds" filterable :show-all-levels="false"/>-->
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="分析人" prop="analystUids">
-<!-- <el-select v-model="form.analystUids" filterable multiple clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.analystUids" :options="workerList" :props="casProps" filterable @change="singleSelect($event,'分析人')" :show-all-levels="false"/>
+ <el-select v-model="form.analystUids" filterable multiple 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.analystUids" :options="lists.workerList" :props="casProps" filterable @change="singleSelect($event,'分析人')" :show-all-levels="false"/>-->
</el-form-item>
</el-col>
<el-col :span="12" class="valueSelect">
<el-form-item label="关联其他特殊作业">
<el-select v-model="form.involveOtherWork" multiple clearable :teleported="false" @click="openWorkSelect">
- <el-option v-for="item in otherWorks" :key="item.workApplyId" :label="item.workContent" :value="item.workApplyId">
+ <el-option v-for="item in lists.otherWorks" :key="item.workApplyId" :label="item.workContent" :value="item.workApplyId">
</el-option>
</el-select>
</el-form-item>
@@ -116,20 +116,20 @@
<el-form-item label="监护人" prop="guardianUids">
<!-- <el-select v-model="form.guardianUids" multiple filterable @change="getSafetyIds" clearable>-->
<!-- <el-option-->
-<!-- v-for="item in spList.jhList"-->
+<!-- v-for="item in lists.spList.jhList"-->
<!-- :key="item.uid"-->
<!-- :label="item.realName"-->
<!-- :value="item.uid"-->
<!-- />-->
<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.guardianUids" :options="spList.jhList" :props="cas3Props" filterable @change="singleSelect($event,'监护人')" :show-all-levels="false"/>
+ <el-cascader style="width: 100%" v-model="form.guardianUids" :options="lists.spList.jhList" :props="cas3Props" filterable @change="singleSelect($event,'监护人')" :show-all-levels="false"/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="绑定执法仪" prop="cameraIds">
<el-select v-model="form.cameraIds" multiple clearable>
<el-option
- v-for="item in deviceList"
+ v-for="item in lists.deviceList"
:key="item.id"
:label="item.name"
:value="item.id"
@@ -198,7 +198,7 @@
</el-col>
</el-row>
<el-row style="display: flex;justify-content: center">
- <el-table :data="safetyMeasureBasicList" style="width: 90%" border>
+ <el-table :data="safetyMeasureBasicList" style="width: 90%" border v-loading="tabLoading">
<el-table-column type="index" label="序号" width="100px" align="center"/>
<el-table-column prop="measureContent" label="安全措施"/>
</el-table>
@@ -206,20 +206,20 @@
<el-row>
<el-col :span="12">
<el-form-item label="安全措施确认人" prop="safetyMeasureUids">
-<!-- <el-select v-model="form.safetyMeasureUids" filterable multiple clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.safetyMeasureUids" :options="workerList" :props="casProps" filterable @change="singleSelect($event,'确认人')" :show-all-levels="false"/>
+ <el-select v-model="form.safetyMeasureUids" filterable multiple 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.safetyMeasureUids" :options="lists.workerList" :props="casProps" filterable @change="singleSelect($event,'确认人')" :show-all-levels="false"/>-->
</el-form-item>
</el-col>
</el-row>
<el-row style="display: flex;justify-content: center">
- <el-table :data="form.approvalDepBasicList" style="width: 90%" border>
+ <el-table :data="form.approvalDepBasicList" style="width: 90%" border v-loading="tabLoading">
<el-table-column prop="content" label="审批签字项目" align="center"/>
<el-table-column prop="approvalType" label="是否必签" align="center">
<template #default="scope">
@@ -236,7 +236,7 @@
<template #default="scope">
<el-select v-model="scope.row.approvalUids" filterable multiple :disabled="isFirstRow(scope.$index)" clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in lists.workerList"
:key="item.uid"
:label="item.username"
:value="item.uid"
@@ -249,28 +249,43 @@
<el-row>
<el-col :span="12">
<el-form-item label="完工验收" prop="acceptUid">
-<!-- <el-select v-model="form.acceptUid" filterable clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.acceptUid" :options="workerList" :props="cas4Props" filterable :show-all-levels="false"/>
+ <el-select v-model="form.acceptUid" 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.acceptUid" :options="lists.workerList" :props="cas4Props" filterable :show-all-levels="false"/>-->
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="现场开始结束确认人" prop="startOrEndUids">
-<!-- <el-select v-model="form.startOrEndUids" filterable multiple clearable>-->
-<!-- <el-option-->
-<!-- v-for="item in workerList"-->
-<!-- :key="item.uid"-->
-<!-- :label="item.username"-->
-<!-- :value="item.uid"-->
-<!-- />-->
-<!-- </el-select>-->
- <el-cascader style="width: 100%" v-model="form.startOrEndUids" :options="workerList" :props="casProps" filterable @change="singleSelect($event,'结束人')" :show-all-levels="false"/>
+ <el-select v-model="form.startOrEndUids" filterable multiple 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.startOrEndUids" :options="lists.workerList" :props="casProps" filterable @change="singleSelect($event,'结束人')" :show-all-levels="false"/>-->
+ </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-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>
@@ -298,27 +313,30 @@
interface stateType {
form: Object,
equipmentDialog: boolean,
- props:{},
+ props1:{},
depProps:{},
casProps:{}
cas2Props: {}
cas3Props: {}
cas4Props: {}
safetyMeasureBasicList: []
+ tabLoading: boolean
}
export default defineComponent({
name: 'spaceForm',
components: {workSelect},
- props:['departList','departList2','workerList','deviceList', 'otherWorks','spList'],
+ props:['lists'],
setup(props: any, context: any) {
const userInfo = useUserInfo()
const { userInfos } = storeToRefs(userInfo);
const state = reactive<stateType>({
+ tabLoading: false,
equipmentDialog: false,
safetyMeasureBasicList: [],
form: {
workType: 2,
workLevel: 0,
+ depIdList: [],
applyDepId: null,
seDepId: null,
expStartTime: '',
@@ -335,6 +353,7 @@
safetyMeasureUids: [],
approvalDepBasicList: [],
acceptUid: null,
+ lastApprover: null,
startOrEndUids: [],
cameraIds: [],
workDetail: {
@@ -342,11 +361,10 @@
csOriginalName: ''
}
},
- props:{
+ props1:{
expandTrigger: 'hover',
label: 'depName',
- value: 'depId',
- emitPath: false
+ value: 'depId'
},
depProps:{
expandTrigger: 'hover',
@@ -356,6 +374,7 @@
emitPath: false
},
casProps: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'username',
multiple: true,
@@ -363,8 +382,8 @@
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.workerList
+ if(level == 0){
+ nodes = props.lists.workerList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -385,6 +404,7 @@
}
},
cas2Props: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'realName',
multiple: true,
@@ -393,8 +413,8 @@
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.spList.opList
+ if(level == 0){
+ nodes = props.lists.spList.opList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -415,6 +435,7 @@
}
},
cas3Props: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'realName',
multiple: true,
@@ -422,8 +443,8 @@
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.spList.jhList
+ if(level == 0){
+ nodes = props.lists.spList.jhList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -444,14 +465,15 @@
}
},
cas4Props: {
+ expandTrigger: 'hover',
value: 'uid',
label: 'username',
lazy: true,
async lazyLoad(node, resolve){
const { value, level } = node
let nodes = []
- if(value == 0){
- nodes = props.workerList
+ if(level == 0){
+ nodes = props.lists.workerList
}else{
let res = await userApi().getCtf({uid: value})
if(res.data.code == 200){
@@ -474,7 +496,7 @@
});
const ruleFormRef = ref<FormInstance>()
const applyRules = reactive<FormRules>({
- applyDepId: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+ depIdList: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workLevel: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
@@ -489,6 +511,7 @@
expEndTime: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
safetyMeasureUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
acceptUid: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
+ lastApprover: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
startOrEndUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
"workDetail.csName": [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
"workDetail.csOriginalName": [{ required: true, message: '该内容不能为空', trigger: 'blur' }]
@@ -496,7 +519,7 @@
const workSelectRef = ref()
// 页面载入时执行方法
onMounted(() => {
-
+ getBasicData()
});
const openWorkSelect = ()=>{
@@ -508,11 +531,13 @@
}
const findParent = ()=>{
- state.form.seDepId = findNearestDepLevel2DepId(props.departList2,state.form.applyDepId)
+ state.form.applyDepId = state.form.depIdList[state.form.depIdList.length - 1]
+ state.form.seDepId = state.form.depIdList[0]
}
// 获取基础数据
const getBasicData = async ()=>{
+ state.tabLoading = true
const res = await workApplyApi().getFormData(2)
if (res.data.code === '200') {
state.safetyMeasureBasicList = JSON.parse(JSON.stringify(res.data.data.safetyMeasureBasicList))
@@ -532,24 +557,27 @@
message: res.data.msg
});
}
+ state.tabLoading = false
};
const getStartEndIds = (value)=>{
- let selected = value
- if(selected.length>1){
- const temp = []
- for(let i of selected){
- const index = temp.findIndex(item => item[0] === i[0]);
- if (index !== -1) {
- temp[index] = i
- }else{
- temp.push(i)
- }
- }
- state.form.headUids = temp
- }
+ // let selected = value
+ // if(selected.length>1){
+ // const temp = []
+ // for(let i of selected){
+ // const index = temp.findIndex(item => item[0] === i[0]);
+ // if (index !== -1) {
+ // temp[index] = i
+ // }else{
+ // temp.push(i)
+ // }
+ // }
+ // state.form.headUids = temp
+ // }
+ // state.form.startOrEndUids = state.form.headUids
+ // state.form.approvalDepBasicList[0].approvalUids = [...new Set(state.form.headUids.map((i)=>i[0]))]
state.form.startOrEndUids = state.form.headUids
- state.form.approvalDepBasicList[0].approvalUids = [...new Set(state.form.headUids.map((i)=>i[0]))]
+ state.form.approvalDepBasicList[0].approvalUids = state.form.headUids
}
const getSafetyIds = ()=>{
@@ -571,12 +599,23 @@
})
}
- const transform2Obj = (arr: Array<any>)=>{
+ const transform2Arr = (arr: Array<any>)=>{
+ return arr.map((i)=>{
+ return {
+ uid: i,
+ certificate: '',
+ certExpiredAt: '',
+ certTypeName: ''
+ }
+ })
+ }
+
+ const transform2Obj = (id:any)=>{
return {
- uid: arr[0],
- certificate: arr[1].split(',')[0],
- certExpiredAt: arr[1].split(',')[1],
- certTypeName: arr[1].split(',')[2]
+ uid: id,
+ certificate: '',
+ certExpiredAt: '',
+ certTypeName: ''
}
}
@@ -593,7 +632,7 @@
}
}
if(type == '作业人'){state.form.operatorUids = temp}
- if(type == '分析人'){state.form.analystUids = 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}
@@ -616,14 +655,15 @@
// if(Array.isArray(state.form.involveOtherWork)){
// state.form.involveOtherWork = state.form.involveOtherWork.join(',')
// }
- const data = state.form
+ const {depIdList,...data} = state.form
data.operatorUids = transformArr(data.operatorUids)
- data.headUids = transformArr(data.headUids)
- data.analystUids = transformArr(data.analystUids)
+ data.headUids = transform2Arr(data.headUids)
+ // data.analystUids = transformArr(data.analystUids)
data.guardianUids = transformArr(data.guardianUids)
- data.safetyMeasureUids = transformArr(data.safetyMeasureUids)
- data.startOrEndUids = transformArr(data.startOrEndUids)
+ data.safetyMeasureUids = transform2Arr(data.safetyMeasureUids)
+ data.startOrEndUids = transform2Arr(data.startOrEndUids)
data.acceptUid = transform2Obj(data.acceptUid)
+ data.lastApprover = transform2Obj(data.lastApprover)
const res = await workApplyApi().submitSpaceApply(data)
if (res.data.code === '200') {
ElMessage({
@@ -631,6 +671,8 @@
message: '提交成功!'
});
formEl.resetFields()
+ state.form.guardianUids = []
+ state.form.involveOtherWork = []
getBasicData()
} else {
ElMessage({
@@ -641,6 +683,10 @@
}
} else {
console.log('error submit!', fields)
+ ElMessage({
+ type: 'warning',
+ message: '有表单内容未完成,请再次检查完善'
+ })
}
})
}
diff --git a/src/views/newSpecialWorkSystem/workTicket/zysq/index.vue b/src/views/newSpecialWorkSystem/workTicket/zysq/index.vue
index 95c6649..37b230b 100644
--- a/src/views/newSpecialWorkSystem/workTicket/zysq/index.vue
+++ b/src/views/newSpecialWorkSystem/workTicket/zysq/index.vue
@@ -1,32 +1,50 @@
<template>
<div class="home-container">
- <el-tabs type="border-card" v-model="activeName" @tab-click="handleClick">
- <el-tab-pane label="动火作业" name="fire">
- <fire-form ref="fire" :workerList = allWorkers :deviceList = allDevices :departList=departmentList :departList2=departmentList2 :otherWorks="otherWorks" :spList="spList"></fire-form>
+ <el-tabs type="border-card" v-model="activeName" @tab-click="handleClick" v-loading="loading">
+ <el-tab-pane :lazy="true" label="动火作业" name="fire">
+ <fire-form ref="fire" :lists="lists"></fire-form>
</el-tab-pane>
- <el-tab-pane label="受限空间作业" name="space">
- <space-form ref="space" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></space-form>
+ <el-tab-pane :lazy="true" label="受限空间作业" name="space">
+ <space-form ref="space" :lists="lists"></space-form>
</el-tab-pane>
- <el-tab-pane label="吊装作业" name="hoist">
- <hoist-form ref="hoist" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></hoist-form>
+ <el-tab-pane :lazy="true" label="吊装作业" name="hoist">
+ <hoist-form ref="hoist" :lists="lists"></hoist-form>
</el-tab-pane>
- <el-tab-pane label="动土作业" name="ground">
- <ground-form ref="ground" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></ground-form>
+ <el-tab-pane :lazy="true" label="动土作业" name="ground">
+ <ground-form ref="ground" :lists="lists"></ground-form>
</el-tab-pane>
- <el-tab-pane label="断路作业" name="broken">
- <broken-form ref="broken" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></broken-form>
+ <el-tab-pane :lazy="true" label="断路作业" name="broken">
+ <broken-form ref="broken" :lists="lists"></broken-form>
</el-tab-pane>
- <el-tab-pane label="高处作业" name="height">
- <height-form ref="height" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></height-form>
+ <el-tab-pane :lazy="true" label="高处作业" name="height">
+ <height-form ref="height" :lists="lists"></height-form>
</el-tab-pane>
- <el-tab-pane label="临时用电作业" name="power">
- <power-form ref="power" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></power-form>
+ <el-tab-pane :lazy="true" label="临时用电作业" name="power">
+ <power-form ref="power" :lists="lists"></power-form>
</el-tab-pane>
- <el-tab-pane label="盲板抽堵作业" name="plate">
- <plate-form ref="plate" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></plate-form>
+ <el-tab-pane :lazy="true" label="盲板抽堵作业" name="plate">
+ <plate-form ref="plate" :lists="lists"></plate-form>
</el-tab-pane>
</el-tabs>
<!-- <material-dialog ref="material"></material-dialog>-->
+<!-- <el-radio-group v-model="activeName" size="large" @change="(value)=>handleClick(value)">-->
+<!-- <el-radio-button :label=0>动火作业</el-radio-button>-->
+<!-- <el-radio-button :label=1>受限空间作业</el-radio-button>-->
+<!-- <el-radio-button :label=2>吊装作业</el-radio-button>-->
+<!-- <el-radio-button :label=3>动土作业</el-radio-button>-->
+<!-- <el-radio-button :label=4>断路作业</el-radio-button>-->
+<!-- <el-radio-button :label=5>高处作业</el-radio-button>-->
+<!-- <el-radio-button :label=6>临时用电作业</el-radio-button>-->
+<!-- <el-radio-button :label=7>盲板抽堵作业</el-radio-button>-->
+<!-- </el-radio-group>:-->
+<!-- <fire-form v-if="activeName == 0" ref="fire" :workerList = allWorkers :deviceList = allDevices :departList=departmentList :departList2=departmentList2 :otherWorks="otherWorks" :spList="spList"></fire-form>-->
+<!-- <space-form v-if="activeName == 1" ref="space" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></space-form>-->
+<!-- <hoist-form v-if="activeName == 2" ref="hoist" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></hoist-form>-->
+<!-- <ground-form v-if="activeName == 3" ref="ground" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></ground-form>-->
+<!-- <broken-form v-if="activeName == 4" ref="broken" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></broken-form>-->
+<!-- <height-form v-if="activeName == 5" ref="height" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></height-form>-->
+<!-- <power-form v-if="activeName == 6" ref="power" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></power-form>-->
+<!-- <plate-form v-if="activeName == 7" ref="plate" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></plate-form>-->
</div>
</template>
@@ -49,11 +67,8 @@
departmentList2: Array<any>
otherWorks: Array<any>
allDevices: Array<any>
- spList:{
- opList: Array<any>
- jhList: Array<any>
- sfList: Array<any>
- }
+ loading: boolean
+ lists: {}
}
export default defineComponent({
name: 'apply',
@@ -71,17 +86,21 @@
const userInfo = useUserInfo()
const { userInfos } = storeToRefs(userInfo);
const state = reactive<stateType>({
+ loading: false,
+ lists: {
+ workerList: [],
+ departList: [],
+ departList2: [],
+ deviceList: [],
+ otherWorks: [],
+ spList: []
+ },
activeName: 'fire',
allWorkers: [],
departmentList: [],
departmentList2:[],
otherWorks: [],
allDevices: [],
- spList:{
- opList: [],
- jhList: [],
- sfList: []
- }
});
const fire = ref()
const space = ref()
@@ -93,15 +112,30 @@
const plate = ref()
const handleClick = (tab: TabsPaneContext, event: Event) => {
- if(tab.index == 0){fire.value.getBasicData()}
- if(tab.index == 1){space.value.getBasicData()}
- if(tab.index == 2){hoist.value.getBasicData()}
- if(tab.index == 3){ground.value.getBasicData()}
- if(tab.index == 4){broken.value.getBasicData()}
- if(tab.index == 5){height.value.getBasicData()}
- if(tab.index == 6){power.value.getBasicData()}
- if(tab.index == 7){plate.value.getBasicData()}
+ state.loading = true
+ setTimeout(()=>{
+ state.loading = false
+ },1000)
+ // if(tab.index == 0){fire.value.getBasicData()}
+ // if(tab.index == 1){space.value.getBasicData()}
+ // if(tab.index == 2){hoist.value.getBasicData()}
+ // if(tab.index == 3){ground.value.getBasicData()}
+ // if(tab.index == 4){broken.value.getBasicData()}
+ // if(tab.index == 5){height.value.getBasicData()}
+ // if(tab.index == 6){power.value.getBasicData()}
+ // if(tab.index == 7){plate.value.getBasicData()}
}
+
+ // const handleClick = (value: number) => {
+ // if(value == 0){fire.value.getBasicData()}
+ // if(value == 1){space.value.getBasicData()}
+ // if(value == 2){hoist.value.getBasicData()}
+ // if(value == 3){ground.value.getBasicData()}
+ // if(value == 4){broken.value.getBasicData()}
+ // if(value == 5){height.value.getBasicData()}
+ // if(value == 6){power.value.getBasicData()}
+ // if(value == 7){plate.value.getBasicData()}
+ // }
// 页面载入时执行方法
onMounted(() => {
@@ -117,6 +151,7 @@
const res = await workApplyApi().getAllUsers()
if (res.data.code === '200') {
state.allWorkers = JSON.parse(JSON.stringify(res.data.data))
+ state.lists.workerList = JSON.parse(JSON.stringify(res.data.data))
} else {
ElMessage({
type: 'warning',
@@ -130,7 +165,7 @@
const res = await workApplyApi().getSpList({roleId: id})
if(id == '17'){
if (res.data.code === '200') {
- state.spList.opList = res.data.data
+ state.lists.spList.opList = JSON.parse(JSON.stringify(res.data.data))
} else {
ElMessage({
type: 'warning',
@@ -140,7 +175,7 @@
}
if(id == '18'){
if (res.data.code === '200') {
- state.spList.jhList = res.data.data
+ state.lists.spList.jhList = JSON.parse(JSON.stringify(res.data.data))
} else {
ElMessage({
type: 'warning',
@@ -150,7 +185,7 @@
}
if(id == '19'){
if (res.data.code === '200') {
- state.spList.sfList = res.data.data
+ state.lists.spList.sfList = JSON.parse(JSON.stringify(res.data.data))
} else {
ElMessage({
type: 'warning',
@@ -165,8 +200,10 @@
const getAllDepartment = async () => {
let res = await teamManageApi().getAllDepartment();
if (res.data.code === '200') {
- state.departmentList = JSON.parse(JSON.stringify(res.data.data))
- state.departmentList2 = state.departmentList[0].children
+ // state.departmentList = JSON.parse(JSON.stringify(res.data.data))
+ // state.departmentList2 = state.departmentList[0].children[0].children.filter(i=>i.depId == 32 || i.depId == 48 || i.depId == 49 || i.depId == 50)
+ state.lists.departList = JSON.parse(JSON.stringify(res.data.data))
+ state.lists.departList2 = JSON.parse(JSON.stringify(res.data.data))[0].children[0].children.filter(i=>i.depId == 32 || i.depId == 48 || i.depId == 49 || i.depId == 50)
} else {
ElMessage({
type: 'warning',
@@ -180,6 +217,7 @@
let res = await workApplyApi().getOtherWork({workPermitNo: '',workType: null});
if (res.data.code === '200') {
state.otherWorks = JSON.parse(JSON.stringify(res.data.data))
+ state.lists.otherWorks = JSON.parse(JSON.stringify(res.data.data))
} else {
ElMessage({
type: 'warning',
@@ -193,6 +231,7 @@
const res = await workApplyApi().getAllDevices()
if (res.data.code === '200') {
state.allDevices = JSON.parse(JSON.stringify(res.data.data))
+ state.lists.deviceList = JSON.parse(JSON.stringify(res.data.data))
} else {
ElMessage({
type: 'warning',
diff --git a/src/views/newSpecialWorkSystem/workerManage/aqyBase/index.vue b/src/views/newSpecialWorkSystem/workerManage/aqyBase/index.vue
index e287f17..ec5421d 100644
--- a/src/views/newSpecialWorkSystem/workerManage/aqyBase/index.vue
+++ b/src/views/newSpecialWorkSystem/workerManage/aqyBase/index.vue
@@ -29,7 +29,7 @@
<el-table-column prop="depName" label="部门" show-overflow-tooltip></el-table-column>
<el-table-column prop="phone" label="手机号" show-overflow-tooltip></el-table-column>
<!-- <el-table-column prop="email" label="证书编号" show-overflow-tooltip></el-table-column>-->
- <el-table-column prop="expireTime" label="证书有效期至" show-overflow-tooltip></el-table-column>
+<!-- <el-table-column prop="expireTime" label="证书有效期至" show-overflow-tooltip></el-table-column>-->
<el-table-column label="操作" width="140">
<template #default="scope">
<el-button :disabled="scope.row.userName === 'admin'" size="small" text type="primary" @click="onOpenUserDialog('查看', scope.row)">查看</el-button>
diff --git a/src/views/newSpecialWorkSystem/workerManage/guardianBase/index.vue b/src/views/newSpecialWorkSystem/workerManage/guardianBase/index.vue
index 6fd0746..caff5a8 100644
--- a/src/views/newSpecialWorkSystem/workerManage/guardianBase/index.vue
+++ b/src/views/newSpecialWorkSystem/workerManage/guardianBase/index.vue
@@ -29,7 +29,7 @@
<el-table-column prop="depName" label="部门" show-overflow-tooltip></el-table-column>
<el-table-column prop="phone" label="手机号" show-overflow-tooltip></el-table-column>
<!-- <el-table-column prop="email" label="证书编号" show-overflow-tooltip></el-table-column>-->
- <el-table-column prop="expireTime" label="证书有效期至" show-overflow-tooltip></el-table-column>
+<!-- <el-table-column prop="expireTime" label="证书有效期至" show-overflow-tooltip></el-table-column>-->
<el-table-column label="操作" width="140">
<template #default="scope">
<el-button :disabled="scope.row.userName === 'admin'" size="small" text type="primary" @click="onOpenUserDialog('查看', scope.row)">查看</el-button>
diff --git a/src/views/newSpecialWorkSystem/workerManage/operatorBase/index.vue b/src/views/newSpecialWorkSystem/workerManage/operatorBase/index.vue
index 07eb7ba..1c324c1 100644
--- a/src/views/newSpecialWorkSystem/workerManage/operatorBase/index.vue
+++ b/src/views/newSpecialWorkSystem/workerManage/operatorBase/index.vue
@@ -29,7 +29,7 @@
<el-table-column prop="depName" label="部门" show-overflow-tooltip></el-table-column>
<el-table-column prop="phone" label="手机号" show-overflow-tooltip></el-table-column>
<!-- <el-table-column prop="email" label="证书编号" show-overflow-tooltip></el-table-column>-->
- <el-table-column prop="expireTime" label="证书有效期至" show-overflow-tooltip></el-table-column>
+<!-- <el-table-column prop="expireTime" label="证书有效期至" show-overflow-tooltip></el-table-column>-->
<el-table-column label="操作" width="140">
<template #default="scope">
<el-button :disabled="scope.row.userName === 'admin'" size="small" text type="primary" @click="onOpenUserDialog('查看', scope.row)">查看</el-button>
diff --git a/src/views/specialWorkSystem/specialIndex/index.vue b/src/views/specialWorkSystem/specialIndex/index.vue
index c93cfb0..ce6908a 100644
--- a/src/views/specialWorkSystem/specialIndex/index.vue
+++ b/src/views/specialWorkSystem/specialIndex/index.vue
@@ -64,7 +64,7 @@
<div class="chart-item">
<dv-border-box10 v-if="isFull==true" class="item-bg"></dv-border-box10>
<div class="chart-tit">
- <span class="tit">异常警报关联人</span>
+ <span class="tit">作业警报记录</span>
<div class="filter-part">
<el-switch
v-model="chartSearch4.type"
@@ -346,6 +346,8 @@
isFull:boolean;
themeColor:string;
endTime:string
+ pieData: Array<status>
+ squareData: Array<status>
}
interface type {
id: number | null;
@@ -480,6 +482,8 @@
value: 2
}
],
+ pieData: [],
+ squareData: [],
warningData: [
{
name: '黄公子',
@@ -583,7 +587,9 @@
}
let res = await specialIndexApi().analyseType(data);
if (res.data.code === '200') {
- console.log('饼图数据>>>', res.data.data)
+ // console.log('饼图数据>>>', res.data.data)
+ state.pieData = JSON.parse(JSON.stringify(res.data.data))
+ // initZyfb()
} else {
ElMessage({
type: 'warning',
@@ -600,7 +606,9 @@
}
let res = await specialIndexApi().analyseAllWork(data);
if (res.data.code === '200') {
- console.log('条形图数据>>>', res.data.data)
+ // console.log('条形图数据>>>', res.data.data)
+ state.squareData = JSON.parse(JSON.stringify(res.data.data))
+ // initSlfx()
} else {
ElMessage({
type: 'warning',
@@ -611,7 +619,9 @@
const getDepMonth = async ()=>{
let res = await specialIndexApi().analyseDepMonth(state.chartSearch3.depId);
if (res.data.code === '200') {
- console.log('折线图数据>>>', res.data.data)
+ // console.log('折线图数据>>>', res.data.data)
+ state.squareData = JSON.parse(JSON.stringify(res.data.data))
+ // initSlfx()
} else {
ElMessage({
type: 'warning',
@@ -696,14 +706,14 @@
},
},
data: [
- { value: 1048, name: '动火作业' },
- { value: 735, name: '受限空间作业' },
- { value: 580, name: '吊装作业' },
- { value: 484, name: '动土作业' },
- { value: 735, name: '断路作业' },
- { value: 580, name: '高处作业' },
- { value: 484, name: '临时用电作业' },
- { value: 300, name: '盲板抽堵作业' }
+ { value: 0, name: '动火作业' },
+ { value: 0, name: '受限空间作业' },
+ { value: 0, name: '吊装作业' },
+ { value: 0, name: '动土作业' },
+ { value: 0, name: '断路作业' },
+ { value: 0, name: '高处作业' },
+ { value: 0, name: '临时用电作业' },
+ { value: 0, name: '盲板抽堵作业' }
]
}
]
@@ -734,7 +744,7 @@
xAxis: [
{
type: 'category',
- data: ['事业部1', '事业部2', '事业部3', '事业部4', '事业部5', '事业部6', '事业部7'],
+ data: ['部门一','部门二','部门三'],
axisTick: {
alignWithLabel: true
},
@@ -753,7 +763,7 @@
name: 'Direct',
type: 'bar',
barWidth: '60%',
- data: [10, 52, 200, 334, 390, 330, 220]
+ data: [0,0,0],
}
]
}
@@ -794,7 +804,7 @@
},
series: [
{
- data: [150, 230, 224, 218, 135, 147, 230, 224, 218, 135, 147, 260],
+ data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
type: 'line',
label:{
show: true
diff --git a/src/views/system/personShiftManage/scheduleManage/schedule/index.vue b/src/views/system/personShiftManage/scheduleManage/schedule/index.vue
index affe01d..1c49a53 100644
--- a/src/views/system/personShiftManage/scheduleManage/schedule/index.vue
+++ b/src/views/system/personShiftManage/scheduleManage/schedule/index.vue
@@ -60,11 +60,11 @@
<el-form-item label="班组名称" prop="groupName">
<el-input v-model="addRecord.groupName"> </el-input>
</el-form-item>
- <el-form-item label="选择部门" prop="department">
- <el-cascader v-model="addRecord.department" :options="departmentList" :props="casProps" :show-all-levels="false" @change="handleChange" />
+ <el-form-item label="选择部门" prop="depId">
+ <el-cascader v-model="addRecord.depId" :options="departmentList" :props="casProps" :show-all-levels="false" @change="handleChange" />
</el-form-item>
- <el-form-item label="选择人员" prop="groupMembers" v-if="addRecord.department !== ''">
- <el-select v-model="addRecord.groupMembers" multiple>
+ <el-form-item label="选择人员" prop="groupMemberIds" v-if="addRecord.depId">
+ <el-select v-model="addRecord.groupMemberIds" multiple>
<el-option v-for="(item, index) in workerList" :label="item.username" :key="index" :value="item.uid">{{ item.username }}</el-option>
</el-select>
</el-form-item>
@@ -129,9 +129,9 @@
totalSize: number;
addRecord: {
groupName: string;
- department: number | null;
depId: number | null;
- groupMembers: Array<any>;
+ groupId: number | null;
+ groupMemberIds: Array<any>;
groupInfo: string;
};
details: {
@@ -139,6 +139,7 @@
department: number | null;
groupMembers: Array<any>;
groupInfo: string;
+ depId: number | null;
};
}
@@ -157,7 +158,6 @@
searchWord: '',
tableData: [],
departmentList: [],
- department: '',
workerList: [],
casProps: {
expandTrigger: 'hover',
@@ -171,11 +171,11 @@
deleteDialog: false,
deleteSetDialog: false,
addRecord: {
- groupName: '',
- department: null,
- groupMembers: [],
depId: null,
- groupInfo: ''
+ groupId: null,
+ groupInfo: '',
+ groupName: '',
+ groupMemberIds: [],
},
details: {
groupName: '',
@@ -267,7 +267,6 @@
const handleChange = async (value) => {
state.addRecord.depId = value;
- console.log(state.addRecord.department, 'de');
let res = await teamManageApi().getAllMember(value);
if (res.data.code === '200') {
state.workerList = res.data.data;
@@ -315,13 +314,23 @@
// 修改工作时段方法
const editRecordBtn = async (index, row) => {
- state.addRecord = JSON.parse(JSON.stringify(row));
- state.addRecord.department = '';
- state.addRecord.groupMembers = [];
- state.dialogAddRecord = true;
- state.chosenIndex = index;
- };
-
+ const obj = JSON.parse(JSON.stringify(row));
+ for(let i in state.addRecord){
+ if(isKey(i,obj)){
+ state.addRecord[i] = obj[i]
+ }
+ }
+ handleChange(obj.depId).then((res)=>{
+ state.addRecord.groupMemberIds = obj.groupMembers.map((item)=> {
+ return state.workerList.find(i => i.username == item)?.uid
+ })
+ state.dialogAddRecord = true;
+ state.chosenIndex = index;
+ })
+ }
+ const isKey = (key,obj)=>{
+ return key in obj
+ }
const editRecord = async (data: any) => {
let res = await teamManageApi().updateRecord(data);
if (res.data.code === '200') {
@@ -343,17 +352,11 @@
if (!formEl) return;
await formEl.validate(async (valid, fields) => {
if (valid) {
- const data = {
- groupName: state.addRecord.groupName,
- groupInfo: state.addRecord.groupInfo,
- depId: state.addRecord.depId,
- groupMemberIds: state.addRecord.groupMembers
- };
if (state.chosenIndex == null) {
+ const {groupId,...data} = state.addRecord
await addRecord(data);
} else {
- data.groupId = JSON.stringify(state.addRecord.groupId);
- await editRecord(data);
+ await editRecord(state.addRecord);
}
state.dialogAddRecord = false;
} else {
@@ -445,7 +448,13 @@
};
const closeAdd = () => {
- state.addRecord = {};
+ state.addRecord = {
+ depId: null,
+ groupId: null,
+ groupInfo: '',
+ groupName: '',
+ groupMemberIds: [],
+ };
state.chosenIndex = null;
};
const openAdd = () => {
diff --git a/src/views/system/user/component/dialogCertificate.vue b/src/views/system/user/component/dialogCertificate.vue
index 889400d..9046be2 100644
--- a/src/views/system/user/component/dialogCertificate.vue
+++ b/src/views/system/user/component/dialogCertificate.vue
@@ -14,6 +14,7 @@
<el-table-column property="id" label="证件Id"/>
<el-table-column property="certTypeName" label="证书类型"/>
<el-table-column property="certNo" label="证件编号"/>
+ <el-table-column property="certExpiredAt" label="证书有效期至"/>
<el-table-column fixed="right" label="操作" align="center" width="250">
<template #default="scope">
<el-button link type="primary" size="small" :icon="View" @click="openEdit('view',scope.row)">查看</el-button>
diff --git a/src/views/system/user/component/userDialog.vue b/src/views/system/user/component/userDialog.vue
index b377710..3808e30 100644
--- a/src/views/system/user/component/userDialog.vue
+++ b/src/views/system/user/component/userDialog.vue
@@ -93,6 +93,7 @@
import { reactive, toRefs, onMounted, defineComponent, ref } from 'vue';
import { ElMessageBox, ElMessage } from 'element-plus';
import { userApi } from '/@/api/systemManage/user';
+import {verifyPwd} from "/@/utils/toolsValidate";
// 定义接口来定义对象的类型
interface DeptData {}
@@ -133,6 +134,17 @@
name: 'user',
setup(props, context) {
const userRef = ref()
+ let validatePwd = (rule: any, value: any, callback: any)=>{
+ if(value === ''){
+ callback(new Error('请输入密码'))
+ }else{
+ if(!verifyPwd(value)){
+ callback(new Error('密码须包含字母、数字、特殊字符,长度在6-16之间'))
+ }else{
+ callback()
+ }
+ }
+ }
const state = reactive<UserState>({
title: '',
disabled: false,
@@ -161,7 +173,7 @@
phone: [{ required: true, message: '请填写手机号', trigger: 'blur' }],
type: [{ required: true, message: '请填写用户类型', trigger: 'blur' }],
gender: [{ required: true, message: '请选择性别', trigger: 'change' }],
- password: [{ required: true, message: '请输入账户密码', trigger: 'blur' }],
+ password: [{ required: true, validator: validatePwd, trigger: 'blur' }],
},
departmentData: [], // 部门数据
roleData: [], //角色数据
@@ -176,6 +188,7 @@
{ id: 3, name: '普通员工' }
],
});
+
// 打开弹窗
const openDialog = (type: string, value: any, departmentList: [], roleList: [], dutyList:[]) => {
state.isShowUserDialog = true;
--
Gitblit v1.9.2