From fb67153f3df0c25863f388b199c5706f4ba801ea Mon Sep 17 00:00:00 2001 From: 马宇豪 <978517621@qq.com> Date: 星期一, 13 三月 2023 16:27:51 +0800 Subject: [PATCH] 作业申请新增设备 --- src/views/specialWorkSystem/workTicket/zysq/components/broken.vue | 16 +++ src/views/specialWorkSystem/workTicket/zysq/components/height.vue | 32 +++++++ src/views/specialWorkSystem/workTicket/zysq/components/plate.vue | 18 ++++ src/views/specialWorkSystem/workTicket/zysq/components/space.vue | 16 +++ src/views/specialWorkSystem/workTicket/zysq/components/hoist.vue | 18 ++++ src/views/specialWorkSystem/workTicket/zysq/components/power.vue | 16 +++ src/api/specialWorkSystem/workApply/index.ts | 10 ++ src/views/specialWorkSystem/workTicket/zysq/components/ground.vue | 16 +++ src/views/specialWorkSystem/workTicket/zysq/index.vue | 34 ++++++-- src/views/specialWorkSystem/workTicket/zysq/components/fire.vue | 18 ++++ 10 files changed, 176 insertions(+), 18 deletions(-) diff --git a/src/api/specialWorkSystem/workApply/index.ts b/src/api/specialWorkSystem/workApply/index.ts index 6258f0e..8afaf8f 100644 --- a/src/api/specialWorkSystem/workApply/index.ts +++ b/src/api/specialWorkSystem/workApply/index.ts @@ -20,7 +20,7 @@ }); }, - // 分页获取申请列表 + // 获取所有用户 getAllUsers: () => { return request({ url: import.meta.env.VITE_API_URL + `/account/list`, @@ -28,6 +28,14 @@ }); }, + // 获取所有设备 + getAllDevices: () => { + return request({ + url: import.meta.env.VITE_API_URL + `/sysAdmin/camera/find/byAll`, + method: 'get' + }); + }, + // 导出打印接口 postPrinting: (data: object) => { return request({ diff --git a/src/views/specialWorkSystem/workTicket/zysq/components/broken.vue b/src/views/specialWorkSystem/workTicket/zysq/components/broken.vue index da141bb..c6ad8bf 100644 --- a/src/views/specialWorkSystem/workTicket/zysq/components/broken.vue +++ b/src/views/specialWorkSystem/workTicket/zysq/components/broken.vue @@ -61,6 +61,18 @@ /> </el-form-item> </el-col> + <el-col :span="12"> + <el-form-item label="关联设备" prop="cameraIds"> + <el-select v-model="form.cameraIds" multiple> + <el-option + v-for="item in deviceList" + :key="item.id" + :label="item.name" + :value="item.id" + /> + </el-select> + </el-form-item> + </el-col> </el-row> <el-divider border-style="dashed"/> <el-row> @@ -169,7 +181,7 @@ components: { materialDialog: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue')), }, - props:['workerList','departList'], + props:['workerList','departList','deviceList'], setup(props: any, context: any) { const userInfo = useUserInfo() const { userInfos } = storeToRefs(userInfo); @@ -181,6 +193,7 @@ workContent: '', workLocation: '', hazardIdentification: '', + cameraIds: [], maBaseId: null, workDetail:{ operationDepId: null, @@ -250,6 +263,7 @@ workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], hazardIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], + cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], workTimeLine: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], "workDetail.operationDepId": [{ required: true, message: '该内容不能为空', trigger: 'blur' }], "workDetail.bcReason": [{ required: true, message: '该内容不能为空', trigger: 'blur' }], diff --git a/src/views/specialWorkSystem/workTicket/zysq/components/fire.vue b/src/views/specialWorkSystem/workTicket/zysq/components/fire.vue index 9af9738..66ecf67 100644 --- a/src/views/specialWorkSystem/workTicket/zysq/components/fire.vue +++ b/src/views/specialWorkSystem/workTicket/zysq/components/fire.vue @@ -74,6 +74,20 @@ </el-form-item> </el-col> </el-row> + <el-row> + <el-col :span="12"> + <el-form-item label="关联设备" prop="cameraIds"> + <el-select v-model="form.cameraIds" multiple> + <el-option + v-for="item in deviceList" + :key="item.id" + :label="item.name" + :value="item.id" + /> + </el-select> + </el-form-item> + </el-col> + </el-row> <el-divider border-style="dashed"/> <el-row> <el-col :span="12"> @@ -137,7 +151,7 @@ components: { materialDialog: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue')), }, - props:['workerList'], + props:['workerList','deviceList'], setup(props: any, context: any) { const userInfo = useUserInfo() const { userInfos } = storeToRefs(userInfo); @@ -151,6 +165,7 @@ workLocation: '', maBaseId: null, hazardIdentification: '', + cameraIds: [], workDetail:{ hotMethod: '', otherSpecialWork: [] @@ -218,6 +233,7 @@ workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], hazardIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], + cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], workTimeLine: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], "workDetail.hotMethod": [{ required: true, message: '该内容不能为空', trigger: 'blur' }] }); diff --git a/src/views/specialWorkSystem/workTicket/zysq/components/ground.vue b/src/views/specialWorkSystem/workTicket/zysq/components/ground.vue index 26a089b..d4b17a0 100644 --- a/src/views/specialWorkSystem/workTicket/zysq/components/ground.vue +++ b/src/views/specialWorkSystem/workTicket/zysq/components/ground.vue @@ -61,6 +61,18 @@ /> </el-form-item> </el-col> + <el-col :span="12"> + <el-form-item label="关联设备" prop="cameraIds"> + <el-select v-model="form.cameraIds" multiple> + <el-option + v-for="item in deviceList" + :key="item.id" + :label="item.name" + :value="item.id" + /> + </el-select> + </el-form-item> + </el-col> </el-row> <el-divider border-style="dashed"/> <el-row> @@ -172,7 +184,7 @@ components: { materialDialog: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue')), }, - props:['workerList','departList'], + props:['workerList','departList', 'deviceList'], setup(props: any, context: any) { const userInfo = useUserInfo() const { userInfos } = storeToRefs(userInfo); @@ -185,6 +197,7 @@ workContent: '', workLocation: '', hazardIdentification: '', + cameraIds: [], maBaseId: null, workDetail:{ operationDepId: null, @@ -281,6 +294,7 @@ workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], hazardIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], + cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], workTimeLine: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], "workDetail.operationDepId": [{ required: true, message: '该内容不能为空', trigger: 'blur' }], "workDetail.gbScope": [{ required: true, message: '该内容不能为空', trigger: 'blur' }], diff --git a/src/views/specialWorkSystem/workTicket/zysq/components/height.vue b/src/views/specialWorkSystem/workTicket/zysq/components/height.vue index 0fcee6b..0cecd52 100644 --- a/src/views/specialWorkSystem/workTicket/zysq/components/height.vue +++ b/src/views/specialWorkSystem/workTicket/zysq/components/height.vue @@ -74,6 +74,34 @@ </el-form-item> </el-col> </el-row> + <el-row> + <el-col :span="12"> + <el-form-item label="关联设备" prop="cameraIds"> + <el-select v-model="form.cameraIds" multiple> + <el-option + v-for="item in deviceList" + :key="item.id" + :label="item.name" + :value="item.id" + /> + </el-select> + </el-form-item> + </el-col> + </el-row> + <el-row> + <el-col :span="12"> + <el-form-item label="关联设备" prop="cameraIds"> + <el-select v-model="form.cameraIds" multiple> + <el-option + v-for="item in deviceList" + :key="item.id" + :label="item.name" + :value="item.id" + /> + </el-select> + </el-form-item> + </el-col> + </el-row> <el-divider border-style="dashed"/> <el-row> <el-col :span="12"> @@ -156,7 +184,7 @@ components: { materialDialog: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue')), }, - props:['workerList','departList'], + props:['workerList','departList','deviceList'], setup(props: any, context: any) { const userInfo = useUserInfo() const { userInfos } = storeToRefs(userInfo); @@ -169,6 +197,7 @@ workContent: '', workLocation: '', hazardIdentification: '', + cameraIds: [], maBaseId: null, workDetail:{ operationDepId: '', @@ -286,6 +315,7 @@ workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], hazardIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], + cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], workTimeLine: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], "workDetail.operationDepId": [{ required: true, message: '该内容不能为空', trigger: 'blur' }], "workDetail.operationHeight": [{ required: true, message: '该内容不能为空', trigger: 'blur' }] diff --git a/src/views/specialWorkSystem/workTicket/zysq/components/hoist.vue b/src/views/specialWorkSystem/workTicket/zysq/components/hoist.vue index f9ae96f..98bfb45 100644 --- a/src/views/specialWorkSystem/workTicket/zysq/components/hoist.vue +++ b/src/views/specialWorkSystem/workTicket/zysq/components/hoist.vue @@ -74,6 +74,20 @@ </el-form-item> </el-col> </el-row> + <el-row> + <el-col :span="12"> + <el-form-item label="关联设备" prop="cameraIds"> + <el-select v-model="form.cameraIds" multiple> + <el-option + v-for="item in deviceList" + :key="item.id" + :label="item.name" + :value="item.id" + /> + </el-select> + </el-form-item> + </el-col> + </el-row> <el-divider border-style="dashed"/> <el-row> <el-col :span="12"> @@ -136,7 +150,7 @@ components: { materialDialog: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue')), }, - props:['workerList'], + props:['workerList','deviceList'], setup(props: any, context: any) { const userInfo = useUserInfo() const { userInfos } = storeToRefs(userInfo); @@ -150,6 +164,7 @@ workLocation: '', maBaseId: null, hazardIdentification: '', + cameraIds: [], workDetail:{ hoistingToolName: '', weightMass: null @@ -183,6 +198,7 @@ workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], hazardIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], + cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], workTimeLine: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], "workDetail.hoistingToolName": [{ required: true, message: '该内容不能为空', trigger: 'blur' }], "workDetail.weightMass": [{ required: true, message: '该内容不能为空', trigger: 'blur' }] diff --git a/src/views/specialWorkSystem/workTicket/zysq/components/plate.vue b/src/views/specialWorkSystem/workTicket/zysq/components/plate.vue index f0e9544..e86df83 100644 --- a/src/views/specialWorkSystem/workTicket/zysq/components/plate.vue +++ b/src/views/specialWorkSystem/workTicket/zysq/components/plate.vue @@ -74,6 +74,20 @@ </el-form-item> </el-col> </el-row> + <el-row> + <el-col :span="12"> + <el-form-item label="关联设备" prop="cameraIds"> + <el-select v-model="form.cameraIds" multiple> + <el-option + v-for="item in deviceList" + :key="item.id" + :label="item.name" + :value="item.id" + /> + </el-select> + </el-form-item> + </el-col> + </el-row> <el-divider border-style="dashed"/> <el-row> <el-col :span="12"> @@ -247,7 +261,7 @@ components: { materialDialog: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue')), }, - props:['workerList'], + props:['workerList','deviceList'], setup(props: any, context: any) { const userInfo = useUserInfo() const { userInfos } = storeToRefs(userInfo); @@ -261,6 +275,7 @@ workLocation: '', maBaseId: null, hazardIdentification: '', + cameraIds: [], workDetail:{ bpCode: '', mainMedia: '', @@ -366,6 +381,7 @@ workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], hazardIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], + cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], workTimeLine: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], "workDetail.bpCode": [{ required: true, message: '该内容不能为空', trigger: 'blur' }], "workDetail.mainMedia": [{ required: true, message: '该内容不能为空', trigger: 'blur' }], diff --git a/src/views/specialWorkSystem/workTicket/zysq/components/power.vue b/src/views/specialWorkSystem/workTicket/zysq/components/power.vue index 07d84b4..257dac6 100644 --- a/src/views/specialWorkSystem/workTicket/zysq/components/power.vue +++ b/src/views/specialWorkSystem/workTicket/zysq/components/power.vue @@ -61,6 +61,18 @@ /> </el-form-item> </el-col> + <el-col :span="12"> + <el-form-item label="关联设备" prop="cameraIds"> + <el-select v-model="form.cameraIds" multiple> + <el-option + v-for="item in deviceList" + :key="item.id" + :label="item.name" + :value="item.id" + /> + </el-select> + </el-form-item> + </el-col> </el-row> <el-divider border-style="dashed"/> <el-row> @@ -133,7 +145,7 @@ components: { materialDialog: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue')), }, - props:['workerList'], + props:['workerList','deviceList'], setup(props: any, context: any) { const userInfo = useUserInfo() const { userInfos } = storeToRefs(userInfo); @@ -147,6 +159,7 @@ workLocation: '', maBaseId: null, hazardIdentification: '', + cameraIds: [], workDetail:{ powerAccessPoint: '', workingVoltage: null, @@ -166,6 +179,7 @@ workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], hazardIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], + cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], workTimeLine: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], "workDetail.powerAccessPoint": [{ required: true, message: '该内容不能为空', trigger: 'blur' }], "workDetail.workingVoltage": [{ required: true, message: '该内容不能为空', trigger: 'blur' }], diff --git a/src/views/specialWorkSystem/workTicket/zysq/components/space.vue b/src/views/specialWorkSystem/workTicket/zysq/components/space.vue index a474192..24e9837 100644 --- a/src/views/specialWorkSystem/workTicket/zysq/components/space.vue +++ b/src/views/specialWorkSystem/workTicket/zysq/components/space.vue @@ -61,6 +61,18 @@ /> </el-form-item> </el-col> + <el-col :span="12"> + <el-form-item label="关联设备" prop="cameraIds"> + <el-select v-model="form.cameraIds" multiple> + <el-option + v-for="item in deviceList" + :key="item.id" + :label="item.name" + :value="item.id" + /> + </el-select> + </el-form-item> + </el-col> </el-row> <el-divider border-style="dashed" /> <el-row> @@ -147,7 +159,7 @@ components: { materialDialog: defineAsyncComponent(() => import('/@/views/specialWorkSystem/workTicket/zysq/components/materialDialog.vue')), }, - props:['workerList','departList'], + props:['workerList','departList','deviceList'], setup(props: any, context: any) { const userInfo = useUserInfo() const { userInfos } = storeToRefs(userInfo); @@ -161,6 +173,7 @@ workLocation: '', maBaseId: null, hazardIdentification: '', + cameraIds: [], workDetail:{ csDepId: null, csName: '', @@ -249,6 +262,7 @@ workContent: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], workLocation: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], hazardIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], + cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], workTimeLine: [{ required: true, message: '该内容不能为空', trigger: 'blur' }], "workDetail.csDepId": [{ required: true, message: '该内容不能为空', trigger: 'blur' }], "workDetail.csName": [{ required: true, message: '该内容不能为空', trigger: 'blur' }], diff --git a/src/views/specialWorkSystem/workTicket/zysq/index.vue b/src/views/specialWorkSystem/workTicket/zysq/index.vue index fea4f09..3584dfc 100644 --- a/src/views/specialWorkSystem/workTicket/zysq/index.vue +++ b/src/views/specialWorkSystem/workTicket/zysq/index.vue @@ -2,28 +2,28 @@ <div class="home-container"> <el-tabs type="border-card" @tab-change="switchTab"> <el-tab-pane label="动火作业"> - <fire-form ref="fire" :workerList = allWorkers></fire-form> + <fire-form ref="fire" :workerList = allWorkers :deviceList = allDevices></fire-form> </el-tab-pane> <el-tab-pane label="受限空间作业"> - <space-form ref="space" :workerList = allWorkers :departList = departmentList></space-form> + <space-form ref="space" :workerList = allWorkers :departList = departmentList :deviceList = allDevices></space-form> </el-tab-pane> <el-tab-pane label="吊装作业"> - <hoist-form ref="hoist" :workerList = allWorkers></hoist-form> + <hoist-form ref="hoist" :workerList = allWorkers :deviceList = allDevices></hoist-form> </el-tab-pane> <el-tab-pane label="动土作业"> - <ground-form ref="ground" :workerList = allWorkers :departList = departmentList></ground-form> + <ground-form ref="ground" :workerList = allWorkers :departList = departmentList :deviceList = allDevices></ground-form> </el-tab-pane> <el-tab-pane label="断路作业"> - <broken-form ref="broken" :workerList = allWorkers :departList = departmentList></broken-form> + <broken-form ref="broken" :workerList = allWorkers :departList = departmentList :deviceList = allDevices></broken-form> </el-tab-pane> <el-tab-pane label="高处作业"> - <height-form ref="height" :workerList = allWorkers :departList = departmentList></height-form> + <height-form ref="height" :workerList = allWorkers :departList = departmentList :deviceList = allDevices></height-form> </el-tab-pane> <el-tab-pane label="临时用电作业"> - <power-form ref="power" :workerList = allWorkers></power-form> + <power-form ref="power" :workerList = allWorkers :deviceList = allDevices></power-form> </el-tab-pane> <el-tab-pane label="盲板抽堵作业"> - <plate-form ref="plate" :workerList = allWorkers></plate-form> + <plate-form ref="plate" :workerList = allWorkers :deviceList = allDevices></plate-form> </el-tab-pane> </el-tabs> <material-dialog ref="material"></material-dialog> @@ -45,6 +45,7 @@ interface stateType { allWorkers: Array<any> departmentList: Array<any> + allDevices: Array<any> } export default defineComponent({ name: 'apply', @@ -64,7 +65,8 @@ const { userInfos } = storeToRefs(userInfo); const state = reactive<stateType>({ allWorkers: [], - departmentList: [] + departmentList: [], + allDevices: [] }); const fire = ref() const space = ref() @@ -101,6 +103,19 @@ } }; + // 获取设备列表 + const getAllDevice = async ()=>{ + const res = await workApplyApi().getAllDevices() + if (res.data.code === '200') { + state.allDevices = JSON.parse(JSON.stringify(res.data.data)) + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } + }; + const switchTab = (name)=>{ console.log(name,'name') fire.value.form.resetFields() @@ -113,6 +128,7 @@ onMounted(() => { getAll(); getAllDepartment(); + getAllDevice() }); return { -- Gitblit v1.9.2