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