From a8ef7c1a4b2ab6acd91a0520e6258bd753d17f20 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期三, 16 八月 2023 15:58:20 +0800
Subject: [PATCH] 人员证书类型
---
src/views/system/certificate/component/certificateDialog.vue | 138 +++++++
src/api/systemManage/certificate/index.ts | 53 ++
src/views/newSpecialWorkSystem/workTicket/zysq/index.vue | 67 +++
src/views/newSpecialWorkSystem/workTicket/zysq/components/broken.vue | 29
src/views/newSpecialWorkSystem/workTicket/zysq/components/fire.vue | 29
src/views/newSpecialWorkSystem/workTicket/zysq/components/height.vue | 25
src/views/system/certificate/component/certificateMember.vue | 214 +++++++++++
src/views/newSpecialWorkSystem/workTicket/zysq/components/hoist.vue | 31
src/views/newSpecialWorkSystem/workTicket/zysq/components/plate.vue | 27
src/views/newSpecialWorkSystem/workTicket/zysq/components/space.vue | 29
src/api/specialWorkSystem/workApply/index.ts | 9
src/views/newSpecialWorkSystem/workTicket/zysq/components/power.vue | 29
src/views/system/certificate/component/messages.vue | 148 ++++++++
src/views/system/certificate/index.vue | 201 +++++++++++
src/views/newSpecialWorkSystem/workTicket/zysq/components/ground.vue | 27
15 files changed, 929 insertions(+), 127 deletions(-)
diff --git a/src/api/specialWorkSystem/workApply/index.ts b/src/api/specialWorkSystem/workApply/index.ts
index 6e99bea..511d8d8 100644
--- a/src/api/specialWorkSystem/workApply/index.ts
+++ b/src/api/specialWorkSystem/workApply/index.ts
@@ -177,6 +177,15 @@
});
},
+ // 查询特殊作业人员
+ getSpList: (data: object) => {
+ return request({
+ url: import.meta.env.VITE_API_URL + `/account/special/list`,
+ method: 'post',
+ data: data
+ });
+ },
+
// 受限空间申请
postSpaceApply: (data: object) => {
return request({
diff --git a/src/api/systemManage/certificate/index.ts b/src/api/systemManage/certificate/index.ts
new file mode 100644
index 0000000..af65eff
--- /dev/null
+++ b/src/api/systemManage/certificate/index.ts
@@ -0,0 +1,53 @@
+import request from '/@/utils/request';
+
+export function certApi() {
+ return {
+ // v2
+ getCerttypeList: (data: object) => {
+ return request({
+ url: import.meta.env.VITE_API_URL + `/certtype/page/list`,
+ method: 'post',
+ data: data
+ });
+ },
+ // v2
+ addCerttype: (data: object) => {
+ return request({
+ url: import.meta.env.VITE_API_URL + `/certtype/add`,
+ method: 'post',
+ data: data
+ });
+ },
+ // v2
+ modCerttype: (data: object) => {
+ return request({
+ url: import.meta.env.VITE_API_URL + `/certtype/mod`,
+ method: 'post',
+ data: data
+ });
+ },
+ // v2
+ deleteCerttype: (id: number) => {
+ return request({
+ url: import.meta.env.VITE_API_URL + `/certtype/del?id=${id}`,
+ method: 'get'
+ });
+ },
+
+ getCertUsers: (data: object) => {
+ return request({
+ url: import.meta.env.VITE_API_URL + `/account/user/certtype/list`,
+ method: 'post',
+ data: data
+ });
+ },
+
+ getCertUnvalid: (data: object) => {
+ return request({
+ url: import.meta.env.VITE_API_URL + `/account/user/cert/unvalid/list`,
+ method: 'post',
+ data: data
+ });
+ }
+ };
+}
diff --git a/src/views/newSpecialWorkSystem/workTicket/zysq/components/broken.vue b/src/views/newSpecialWorkSystem/workTicket/zysq/components/broken.vue
index d33fb44..a7ac8c6 100644
--- a/src/views/newSpecialWorkSystem/workTicket/zysq/components/broken.vue
+++ b/src/views/newSpecialWorkSystem/workTicket/zysq/components/broken.vue
@@ -56,11 +56,11 @@
</el-col>
<el-col :span="12">
<el-form-item label="监护人" prop="guardianUids">
- <el-select v-model="form.guardianUids" multiple @change="getSafetyIds" clearable>
+ <el-select v-model="form.guardianUids" filterable multiple @change="getSafetyIds" clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in spList.jhList"
:key="item.uid"
- :label="item.username"
+ :label="item.realName"
:value="item.uid"
/>
</el-select>
@@ -70,7 +70,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="作业负责人" prop="headUids">
- <el-select v-model="form.headUids" multiple @change="getStartEndIds" clearable>
+ <el-select v-model="form.headUids" filterable multiple @change="getStartEndIds" clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -82,11 +82,11 @@
</el-col>
<el-col :span="12">
<el-form-item label="作业人及证件编号" prop="operatorUids">
- <el-select v-model="form.operatorUids" multiple clearable>
+ <el-select v-model="form.operatorUids" filterable multiple clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in spList.opList"
:key="item.uid"
- :label="item.username"
+ :label="item.realName"
:value="item.uid"
/>
</el-select>
@@ -95,7 +95,7 @@
</el-row>
<el-row>
<el-col :span="12" class="valueSelect">
- <el-form-item label="关联其他特殊作业" prop="involveOtherWork">
+ <el-form-item label="关联其他特殊作业">
<!-- <el-select v-model="form.involveOtherWork" multiple clearable>-->
<!-- <el-option-->
<!-- v-for="item in otherWorkList"-->
@@ -223,7 +223,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="安全措施确认人" prop="safetyMeasureUids">
- <el-select v-model="form.safetyMeasureUids" multiple clearable>
+ <el-select v-model="form.safetyMeasureUids" filterable multiple clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -270,7 +270,7 @@
</el-table-column>
<el-table-column prop="approvalUids" label="审批人" align="center">
<template #default="scope">
- <el-select v-model="scope.row.approvalUids" multiple :disabled="isFirstRow(scope.$index)" clearable>
+ <el-select v-model="scope.row.approvalUids" filterable multiple :disabled="isFirstRow(scope.$index)" clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -285,7 +285,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="完工验收" prop="acceptUid">
- <el-select v-model="form.acceptUid" clearable>
+ <el-select v-model="form.acceptUid" filterable clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -297,7 +297,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="现场开始结束确认人" prop="startOrEndUids">
- <el-select v-model="form.startOrEndUids" multiple clearable>
+ <el-select v-model="form.startOrEndUids" filterable multiple clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -311,7 +311,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="签字人" prop="workDetail.signUid">
- <el-select v-model="form.workDetail.signUid" clearable>
+ <el-select v-model="form.workDetail.signUid" filterable clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -363,7 +363,7 @@
export default defineComponent({
name: 'brokenForm',
components: {workSelect},
- props:['departList','departList2','workerList','deviceList','otherWorks'],
+ props:['departList','departList2','workerList','deviceList','otherWorks','spList'],
setup(props: any, context: any) {
const userInfo = useUserInfo()
const { userInfos } = storeToRefs(userInfo);
@@ -436,7 +436,6 @@
workDepId: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
headUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
analystUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
- involveOtherWork: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
guardianUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
riskIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
diff --git a/src/views/newSpecialWorkSystem/workTicket/zysq/components/fire.vue b/src/views/newSpecialWorkSystem/workTicket/zysq/components/fire.vue
index f227b4c..008a6a7 100644
--- a/src/views/newSpecialWorkSystem/workTicket/zysq/components/fire.vue
+++ b/src/views/newSpecialWorkSystem/workTicket/zysq/components/fire.vue
@@ -56,11 +56,11 @@
</el-col>
<el-col :span="12">
<el-form-item label="作业人及证件编号" prop="operatorUids">
- <el-select v-model="form.operatorUids" multiple clearable>
+ <el-select v-model="form.operatorUids" filterable multiple clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in spList.opList"
:key="item.uid"
- :label="item.username"
+ :label="item.realName"
:value="item.uid"
/>
</el-select>
@@ -75,7 +75,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="作业负责人" prop="headUids">
- <el-select v-model="form.headUids" multiple @change="getStartEndIds" clearable>
+ <el-select v-model="form.headUids" multiple filterable @change="getStartEndIds" clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -89,7 +89,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="分析人" prop="analystUids">
- <el-select v-model="form.analystUids" multiple clearable>
+ <el-select v-model="form.analystUids" filterable multiple clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -100,7 +100,7 @@
</el-form-item>
</el-col>
<el-col :span="12" class="valueSelect">
- <el-form-item label="关联其他特殊作业" prop="involveOtherWork">
+ <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>
@@ -111,11 +111,11 @@
<el-row>
<el-col :span="12">
<el-form-item label="监护人" prop="guardianUids">
- <el-select v-model="form.guardianUids" multiple @change="getSafetyIds" clearable>
+ <el-select v-model="form.guardianUids" filterable multiple @change="getSafetyIds" clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in spList.jhList"
:key="item.uid"
- :label="item.username"
+ :label="item.realName"
:value="item.uid"
/>
</el-select>
@@ -212,7 +212,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="安全措施确认人" prop="safetyMeasureUids">
- <el-select v-model="form.safetyMeasureUids" multiple clearable>
+ <el-select v-model="form.safetyMeasureUids" filterable multiple clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -259,7 +259,7 @@
</el-table-column>
<el-table-column prop="approvalUids" label="审批人" align="center">
<template #default="scope">
- <el-select v-model="scope.row.approvalUids" multiple :disabled="isFirstRow(scope.$index)" clearable>
+ <el-select v-model="scope.row.approvalUids" filterable multiple :disabled="isFirstRow(scope.$index)" clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -274,7 +274,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="完工验收" prop="acceptUid">
- <el-select v-model="form.acceptUid" clearable>
+ <el-select v-model="form.acceptUid" filterable clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -286,7 +286,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="现场开始结束确认人" prop="startOrEndUids">
- <el-select v-model="form.startOrEndUids" multiple clearable>
+ <el-select v-model="form.startOrEndUids" filterable multiple clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -328,7 +328,7 @@
export default defineComponent({
name: 'fireForm',
components: {workSelect},
- props:['departList','departList2','workerList','deviceList','otherWorks'],
+ props:['departList','departList2','workerList','deviceList','otherWorks','spList'],
setup(props: any, context: any) {
const userInfo = useUserInfo()
const { userInfos } = storeToRefs(userInfo);
@@ -398,7 +398,6 @@
workDepId: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
headUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
analystUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
- involveOtherWork: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
guardianUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
riskIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
diff --git a/src/views/newSpecialWorkSystem/workTicket/zysq/components/ground.vue b/src/views/newSpecialWorkSystem/workTicket/zysq/components/ground.vue
index 1981325..015562c 100644
--- a/src/views/newSpecialWorkSystem/workTicket/zysq/components/ground.vue
+++ b/src/views/newSpecialWorkSystem/workTicket/zysq/components/ground.vue
@@ -24,9 +24,9 @@
<el-form-item label="作业人及证件编号" prop="operatorUids">
<el-select v-model="form.operatorUids" multiple clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in spList.opList"
:key="item.uid"
- :label="item.username"
+ :label="item.realName"
:value="item.uid"
/>
</el-select>
@@ -41,7 +41,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="作业负责人" prop="headUids">
- <el-select v-model="form.headUids" multiple @change="getStartEndIds" clearable>
+ <el-select v-model="form.headUids" multiple filterable @change="getStartEndIds" clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -64,7 +64,7 @@
</el-form-item>
</el-col>
<el-col :span="12" class="valueSelect">
- <el-form-item label="关联其他特殊作业" prop="involveOtherWork">
+ <el-form-item label="关联其他特殊作业">
<!-- <el-select v-model="form.involveOtherWork" multiple clearable>-->
<!-- <el-option-->
<!-- v-for="item in otherWorkList"-->
@@ -83,11 +83,11 @@
<el-row>
<el-col :span="12">
<el-form-item label="监护人" prop="guardianUids">
- <el-select v-model="form.guardianUids" multiple @change="getSafetyIds" clearable>
+ <el-select v-model="form.guardianUids" filterable multiple @change="getSafetyIds" clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in spList.jhList"
:key="item.uid"
- :label="item.username"
+ :label="item.realName"
:value="item.uid"
/>
</el-select>
@@ -206,7 +206,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="安全措施确认人" prop="safetyMeasureUids">
- <el-select v-model="form.safetyMeasureUids" multiple clearable>
+ <el-select v-model="form.safetyMeasureUids" filterable multiple clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -253,7 +253,7 @@
</el-table-column>
<el-table-column prop="approvalUids" label="审批人" align="center">
<template #default="scope">
- <el-select v-model="scope.row.approvalUids" multiple :disabled="isFirstRow(scope.$index)" clearable>
+ <el-select v-model="scope.row.approvalUids" filterable multiple :disabled="isFirstRow(scope.$index)" clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -268,7 +268,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="完工验收" prop="acceptUid">
- <el-select v-model="form.acceptUid" clearable>
+ <el-select v-model="form.acceptUid" filterable clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -280,7 +280,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="现场开始结束确认人" prop="startOrEndUids">
- <el-select v-model="form.startOrEndUids" multiple clearable>
+ <el-select v-model="form.startOrEndUids" filterable multiple clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -294,7 +294,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="签字人" prop="workDetail.signUid">
- <el-select v-model="form.workDetail.signUid" clearable>
+ <el-select v-model="form.workDetail.signUid" filterable clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -347,7 +347,7 @@
export default defineComponent({
name: 'groundForm',
components: {workSelect},
- props:['departList','departList2','workerList','deviceList','otherWorks'],
+ props:['departList','departList2','workerList','deviceList','otherWorks','spList'],
setup(props: any, context: any) {
const userInfo = useUserInfo()
const { userInfos } = storeToRefs(userInfo);
@@ -408,7 +408,6 @@
operatorUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workDepId: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
headUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
- involveOtherWork: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
guardianUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
riskIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
diff --git a/src/views/newSpecialWorkSystem/workTicket/zysq/components/height.vue b/src/views/newSpecialWorkSystem/workTicket/zysq/components/height.vue
index 84f054a..f7650ee 100644
--- a/src/views/newSpecialWorkSystem/workTicket/zysq/components/height.vue
+++ b/src/views/newSpecialWorkSystem/workTicket/zysq/components/height.vue
@@ -55,11 +55,11 @@
</el-col>
<el-col :span="12">
<el-form-item label="作业人及证件编号" prop="operatorUids">
- <el-select v-model="form.operatorUids" multiple clearable>
+ <el-select v-model="form.operatorUids" filterable multiple clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in spList.opList"
:key="item.uid"
- :label="item.username"
+ :label="item.realName"
:value="item.uid"
/>
</el-select>
@@ -74,7 +74,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="作业负责人" prop="headUids">
- <el-select v-model="form.headUids" multiple @change="getStartEndIds" clearable>
+ <el-select v-model="form.headUids" filterable multiple @change="getStartEndIds" clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -88,18 +88,18 @@
<el-row>
<el-col :span="12">
<el-form-item label="监护人" prop="guardianUids">
- <el-select v-model="form.guardianUids" multiple @change="getSafetyIds" clearable>
+ <el-select v-model="form.guardianUids" filterable multiple @change="getSafetyIds" clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in spList.jhList"
:key="item.uid"
- :label="item.username"
+ :label="item.realName"
:value="item.uid"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12" class="valueSelect">
- <el-form-item label="关联其他特殊作业" prop="involveOtherWork">
+ <el-form-item label="关联其他特殊作业">
<!-- <el-select v-model="form.involveOtherWork" multiple clearable>-->
<!-- <el-option-->
<!-- v-for="item in otherWorkList"-->
@@ -183,7 +183,7 @@
</el-row>
<el-row>
<el-col :span="12">
- <el-form-item label="安全措施确认人" prop="safetyMeasureUids">
+ <el-form-item label="安全措施确认人" filterable prop="safetyMeasureUids">
<el-select v-model="form.safetyMeasureUids" multiple clearable>
<el-option
v-for="item in workerList"
@@ -209,7 +209,7 @@
</el-form-item>
</template>
</el-table-column>
- <el-table-column prop="approvalUids" label="审批人" align="center">
+ <el-table-column prop="approvalUids" filterable label="审批人" align="center">
<template #default="scope">
<el-select v-model="scope.row.approvalUids" multiple :disabled="isFirstRow(scope.$index)" clearable>
<el-option
@@ -237,7 +237,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="现场开始结束确认人" prop="startOrEndUids">
+ <el-form-item label="现场开始结束确认人" filterable prop="startOrEndUids">
<el-select v-model="form.startOrEndUids" multiple clearable>
<el-option
v-for="item in workerList"
@@ -280,7 +280,7 @@
export default defineComponent({
name: 'heightForm',
components: {workSelect},
- props:['departList','departList2','workerList','deviceList','otherWorks'],
+ props:['departList','departList2','workerList','deviceList','otherWorks','spList'],
setup(props: any, context: any) {
const userInfo = useUserInfo()
const { userInfos } = storeToRefs(userInfo);
@@ -352,7 +352,6 @@
operatorUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workDepId: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
headUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
- involveOtherWork: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
guardianUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
riskIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
diff --git a/src/views/newSpecialWorkSystem/workTicket/zysq/components/hoist.vue b/src/views/newSpecialWorkSystem/workTicket/zysq/components/hoist.vue
index 27bd3ff..fb355d4 100644
--- a/src/views/newSpecialWorkSystem/workTicket/zysq/components/hoist.vue
+++ b/src/views/newSpecialWorkSystem/workTicket/zysq/components/hoist.vue
@@ -65,11 +65,11 @@
</el-col>
<el-col :span="12">
<el-form-item label="吊装作业人及证件编号" prop="operatorUids">
- <el-select v-model="form.operatorUids" multiple clearable>
+ <el-select v-model="form.operatorUids" filterable multiple clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in spList.opList"
:key="item.uid"
- :label="item.username"
+ :label="item.realName"
:value="item.uid"
/>
</el-select>
@@ -83,8 +83,8 @@
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="指挥人员" prop="headUids">
- <el-select v-model="form.headUids" multiple @change="getStartEndIds" clearable>
+ <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"
@@ -98,7 +98,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="司索人" prop="workDetail.solicitorUids">
- <el-select v-model="form.workDetail.solicitorUids" multiple clearable>
+ <el-select v-model="form.workDetail.solicitorUids" filterable multiple clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -109,7 +109,7 @@
</el-form-item>
</el-col>
<el-col :span="12" class="valueSelect">
- <el-form-item label="关联其他特殊作业" prop="involveOtherWork">
+ <el-form-item label="关联其他特殊作业">
<!-- <el-select v-model="form.involveOtherWork" multiple clearable>-->
<!-- <el-option-->
<!-- v-for="item in otherWorkList"-->
@@ -128,11 +128,11 @@
<el-row>
<el-col :span="12">
<el-form-item label="监护人" prop="guardianUids">
- <el-select v-model="form.guardianUids" multiple @change="getSafetyIds" clearable>
+ <el-select v-model="form.guardianUids" filterable multiple @change="getSafetyIds" clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in spList.jhList"
:key="item.uid"
- :label="item.username"
+ :label="item.realName"
:value="item.uid"
/>
</el-select>
@@ -229,7 +229,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="安全措施确认人" prop="safetyMeasureUids">
- <el-select v-model="form.safetyMeasureUids" multiple clearable>
+ <el-select v-model="form.safetyMeasureUids" filterable multiple clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -276,7 +276,7 @@
</el-table-column>
<el-table-column prop="approvalUids" label="审批人" align="center">
<template #default="scope">
- <el-select v-model="scope.row.approvalUids" multiple :disabled="isFirstRow(scope.$index)" clearable>
+ <el-select v-model="scope.row.approvalUids" filterable multiple :disabled="isFirstRow(scope.$index)" clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -291,7 +291,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="完工验收" prop="acceptUid">
- <el-select v-model="form.acceptUid" clearable>
+ <el-select v-model="form.acceptUid" filterable clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -303,7 +303,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="现场开始结束确认人" prop="startOrEndUids">
- <el-select v-model="form.startOrEndUids" multiple clearable>
+ <el-select v-model="form.startOrEndUids" filterable multiple clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -345,7 +345,7 @@
export default defineComponent({
name: 'hoistForm',
components: {workSelect},
- props:['departList','departList2','workerList','deviceList','otherWorks'],
+ props:['departList','departList2','workerList','deviceList','otherWorks','spList'],
setup(props: any, context: any) {
const userInfo = useUserInfo()
const { userInfos } = storeToRefs(userInfo);
@@ -417,7 +417,6 @@
workDepId: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
headUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
analystUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
- involveOtherWork: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
guardianUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
riskIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
diff --git a/src/views/newSpecialWorkSystem/workTicket/zysq/components/plate.vue b/src/views/newSpecialWorkSystem/workTicket/zysq/components/plate.vue
index f746c0e..0a47ec3 100644
--- a/src/views/newSpecialWorkSystem/workTicket/zysq/components/plate.vue
+++ b/src/views/newSpecialWorkSystem/workTicket/zysq/components/plate.vue
@@ -144,18 +144,18 @@
<el-row>
<el-col :span="12">
<el-form-item label="作业人及证件编号" prop="operatorUids">
- <el-select v-model="form.operatorUids" multiple clearable>
+ <el-select v-model="form.operatorUids" filterable multiple clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in spList.opList"
:key="item.uid"
- :label="item.username"
+ :label="item.realName"
:value="item.uid"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12" class="valueSelect">
- <el-form-item label="关联其他特殊作业" prop="involveOtherWork">
+ <el-form-item label="关联其他特殊作业">
<!-- <el-select v-model="form.involveOtherWork" multiple clearable>-->
<!-- <el-option-->
<!-- v-for="item in otherWorkList"-->
@@ -179,7 +179,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="作业负责人" prop="headUids">
- <el-select v-model="form.headUids" multiple @change="getStartEndIds" clearable>
+ <el-select v-model="form.headUids" multiple filterable @change="getStartEndIds" clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -193,11 +193,11 @@
<el-row>
<el-col :span="12">
<el-form-item label="监护人" prop="guardianUids">
- <el-select v-model="form.guardianUids" multiple @change="getSafetyIds" clearable>
+ <el-select v-model="form.guardianUids" multiple filterable @change="getSafetyIds" clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in spList.jhList"
:key="item.uid"
- :label="item.username"
+ :label="item.realName"
:value="item.uid"
/>
</el-select>
@@ -292,7 +292,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="安全措施确认人" prop="safetyMeasureUids">
- <el-select v-model="form.safetyMeasureUids" multiple clearable>
+ <el-select v-model="form.safetyMeasureUids" filterable multiple clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -319,7 +319,7 @@
</el-table-column>
<el-table-column prop="approvalUids" label="审批人" align="center">
<template #default="scope">
- <el-select v-model="scope.row.approvalUids" multiple :disabled="isFirstRow(scope.$index)" clearable>
+ <el-select v-model="scope.row.approvalUids" filterable multiple :disabled="isFirstRow(scope.$index)" clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -334,7 +334,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="完工验收" prop="acceptUid">
- <el-select v-model="form.acceptUid" clearable>
+ <el-select v-model="form.acceptUid" filterable clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -346,7 +346,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="现场开始结束确认人" prop="startOrEndUids">
- <el-select v-model="form.startOrEndUids" multiple clearable>
+ <el-select v-model="form.startOrEndUids" filterable multiple clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -398,7 +398,7 @@
export default defineComponent({
name: 'fireForm',
components: {workSelect},
- props:['departList','departList2','workerList','deviceList','otherWorks'],
+ props:['departList','departList2','workerList','deviceList','otherWorks','spList'],
setup(props: any, context: any) {
const userInfo = useUserInfo()
const { userInfos } = storeToRefs(userInfo);
@@ -477,7 +477,6 @@
operatorUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
workDepId: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
headUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
- involveOtherWork: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
guardianUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
riskIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
diff --git a/src/views/newSpecialWorkSystem/workTicket/zysq/components/power.vue b/src/views/newSpecialWorkSystem/workTicket/zysq/components/power.vue
index 5bfd61f..2b76056 100644
--- a/src/views/newSpecialWorkSystem/workTicket/zysq/components/power.vue
+++ b/src/views/newSpecialWorkSystem/workTicket/zysq/components/power.vue
@@ -79,11 +79,11 @@
<el-row>
<el-col :span="12">
<el-form-item label="作业人及证件编号" prop="operatorUids">
- <el-select v-model="form.operatorUids" multiple clearable>
+ <el-select v-model="form.operatorUids" filterable multiple clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in spList.opList"
:key="item.uid"
- :label="item.username"
+ :label="item.realName"
:value="item.uid"
/>
</el-select>
@@ -98,7 +98,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="作业负责人" prop="headUids">
- <el-select v-model="form.headUids" multiple @change="getStartEndIds" clearable>
+ <el-select v-model="form.headUids" multiple filterable @change="getStartEndIds" clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -112,7 +112,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="分析人" prop="analystUids">
- <el-select v-model="form.analystUids" multiple clearable>
+ <el-select v-model="form.analystUids" filterable multiple clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -123,7 +123,7 @@
</el-form-item>
</el-col>
<el-col :span="12" class="valueSelect">
- <el-form-item label="关联其他特殊作业" prop="involveOtherWork">
+ <el-form-item label="关联其他特殊作业">
<!-- <el-select v-model="form.involveOtherWork" multiple clearable>-->
<!-- <el-option-->
<!-- v-for="item in otherWorkList"-->
@@ -142,11 +142,11 @@
<el-row>
<el-col :span="12">
<el-form-item label="监护人" prop="guardianUids">
- <el-select v-model="form.guardianUids" multiple @change="getSafetyIds" clearable>
+ <el-select v-model="form.guardianUids" multiple filterable @change="getSafetyIds" clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in spList.jhList"
:key="item.uid"
- :label="item.username"
+ :label="item.realName"
:value="item.uid"
/>
</el-select>
@@ -243,7 +243,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="安全措施确认人" prop="safetyMeasureUids">
- <el-select v-model="form.safetyMeasureUids" multiple clearable>
+ <el-select v-model="form.safetyMeasureUids" filterable multiple clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -290,7 +290,7 @@
</el-table-column>
<el-table-column prop="approvalUids" label="审批人" align="center">
<template #default="scope">
- <el-select v-model="scope.row.approvalUids" multiple :disabled="isFirstRow(scope.$index)" clearable>
+ <el-select v-model="scope.row.approvalUids" filterable multiple :disabled="isFirstRow(scope.$index)" clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -305,7 +305,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="完工验收" prop="acceptUid">
- <el-select v-model="form.acceptUid" clearable>
+ <el-select v-model="form.acceptUid" filterable clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -317,7 +317,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="现场开始结束确认人" prop="startOrEndUids">
- <el-select v-model="form.startOrEndUids" multiple clearable>
+ <el-select v-model="form.startOrEndUids" filterable multiple clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -358,7 +358,7 @@
export default defineComponent({
name: 'powerForm',
components: {workSelect},
- props:['departList','departList2','workerList','deviceList','otherWorks'],
+ props:['departList','departList2','workerList','deviceList','otherWorks','spList'],
setup(props: any, context: any) {
const userInfo = useUserInfo()
const { userInfos } = storeToRefs(userInfo);
@@ -417,7 +417,6 @@
workDepId: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
headUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
analystUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
- involveOtherWork: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
guardianUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
riskIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
diff --git a/src/views/newSpecialWorkSystem/workTicket/zysq/components/space.vue b/src/views/newSpecialWorkSystem/workTicket/zysq/components/space.vue
index 5ad736a..4fcac53 100644
--- a/src/views/newSpecialWorkSystem/workTicket/zysq/components/space.vue
+++ b/src/views/newSpecialWorkSystem/workTicket/zysq/components/space.vue
@@ -44,11 +44,11 @@
</el-col>
<el-col :span="12">
<el-form-item label="作业人" prop="operatorUids">
- <el-select v-model="form.operatorUids" multiple clearable>
+ <el-select v-model="form.operatorUids" filterable multiple clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in spList.opList"
:key="item.uid"
- :label="item.username"
+ :label="item.realName"
:value="item.uid"
/>
</el-select>
@@ -75,7 +75,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="作业负责人" prop="headUids">
- <el-select v-model="form.headUids" multiple @change="getStartEndIds" clearable>
+ <el-select v-model="form.headUids" multiple filterable @change="getStartEndIds" clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -89,7 +89,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="分析人" prop="analystUids">
- <el-select v-model="form.analystUids" multiple clearable>
+ <el-select v-model="form.analystUids" filterable multiple clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -100,7 +100,7 @@
</el-form-item>
</el-col>
<el-col :span="12" class="valueSelect">
- <el-form-item label="关联其他特殊作业" prop="involveOtherWork">
+ <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>
@@ -111,11 +111,11 @@
<el-row>
<el-col :span="12">
<el-form-item label="监护人" prop="guardianUids">
- <el-select v-model="form.guardianUids" multiple @change="getSafetyIds" clearable>
+ <el-select v-model="form.guardianUids" multiple filterable @change="getSafetyIds" clearable>
<el-option
- v-for="item in workerList"
+ v-for="item in spList.jhList"
:key="item.uid"
- :label="item.username"
+ :label="item.realName"
:value="item.uid"
/>
</el-select>
@@ -202,7 +202,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="安全措施确认人" prop="safetyMeasureUids">
- <el-select v-model="form.safetyMeasureUids" multiple clearable>
+ <el-select v-model="form.safetyMeasureUids" filterable multiple clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -229,7 +229,7 @@
</el-table-column>
<el-table-column prop="approvalUids" label="审批人" align="center">
<template #default="scope">
- <el-select v-model="scope.row.approvalUids" multiple :disabled="isFirstRow(scope.$index)" clearable>
+ <el-select v-model="scope.row.approvalUids" filterable multiple :disabled="isFirstRow(scope.$index)" clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -244,7 +244,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="完工验收" prop="acceptUid">
- <el-select v-model="form.acceptUid" clearable>
+ <el-select v-model="form.acceptUid" filterable clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -256,7 +256,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="现场开始结束确认人" prop="startOrEndUids">
- <el-select v-model="form.startOrEndUids" multiple clearable>
+ <el-select v-model="form.startOrEndUids" filterable multiple clearable>
<el-option
v-for="item in workerList"
:key="item.uid"
@@ -297,7 +297,7 @@
export default defineComponent({
name: 'spaceForm',
components: {workSelect},
- props:['departList','departList2','workerList','deviceList', 'otherWorks'],
+ props:['departList','departList2','workerList','deviceList', 'otherWorks','spList'],
setup(props: any, context: any) {
const userInfo = useUserInfo()
const { userInfos } = storeToRefs(userInfo);
@@ -354,7 +354,6 @@
workDepId: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
headUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
analystUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
- involveOtherWork: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
guardianUids: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
riskIdentification: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
cameraIds: [{ required: true, message: '该内容不能为空', trigger: 'blur' }],
diff --git a/src/views/newSpecialWorkSystem/workTicket/zysq/index.vue b/src/views/newSpecialWorkSystem/workTicket/zysq/index.vue
index 3659ad6..95c6649 100644
--- a/src/views/newSpecialWorkSystem/workTicket/zysq/index.vue
+++ b/src/views/newSpecialWorkSystem/workTicket/zysq/index.vue
@@ -2,28 +2,28 @@
<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"></fire-form>
+ <fire-form ref="fire" :workerList = allWorkers :deviceList = allDevices :departList=departmentList :departList2=departmentList2 :otherWorks="otherWorks" :spList="spList"></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"></space-form>
+ <space-form ref="space" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></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"></hoist-form>
+ <hoist-form ref="hoist" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></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"></ground-form>
+ <ground-form ref="ground" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></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"></broken-form>
+ <broken-form ref="broken" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></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"></height-form>
+ <height-form ref="height" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></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"></power-form>
+ <power-form ref="power" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></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"></plate-form>
+ <plate-form ref="plate" :workerList = allWorkers :departList = departmentList :departList2=departmentList2 :deviceList = allDevices :otherWorks="otherWorks" :spList="spList"></plate-form>
</el-tab-pane>
</el-tabs>
<!-- <material-dialog ref="material"></material-dialog>-->
@@ -49,6 +49,11 @@
departmentList2: Array<any>
otherWorks: Array<any>
allDevices: Array<any>
+ spList:{
+ opList: Array<any>
+ jhList: Array<any>
+ sfList: Array<any>
+ }
}
export default defineComponent({
name: 'apply',
@@ -71,7 +76,12 @@
departmentList: [],
departmentList2:[],
otherWorks: [],
- allDevices: []
+ allDevices: [],
+ spList:{
+ opList: [],
+ jhList: [],
+ sfList: []
+ }
});
const fire = ref()
const space = ref()
@@ -98,7 +108,8 @@
getAll();
getAllDepartment();
getAllDevice();
- getOtherWork()
+ getOtherWork();
+ spWorker()
});
// 获取用户列表
@@ -114,6 +125,42 @@
}
};
+ const spWorker = async ()=>{
+ for(let id of ['17','18','19']){
+ const res = await workApplyApi().getSpList({roleId: id})
+ if(id == '17'){
+ if (res.data.code === '200') {
+ state.spList.opList = res.data.data
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ }
+ if(id == '18'){
+ if (res.data.code === '200') {
+ state.spList.jhList = res.data.data
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ }
+ if(id == '19'){
+ if (res.data.code === '200') {
+ state.spList.sfList = res.data.data
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ }
+ }
+ }
+
// 获取部门列表
const getAllDepartment = async () => {
let res = await teamManageApi().getAllDepartment();
diff --git a/src/views/system/certificate/component/certificateDialog.vue b/src/views/system/certificate/component/certificateDialog.vue
new file mode 100644
index 0000000..8a7cfcd
--- /dev/null
+++ b/src/views/system/certificate/component/certificateDialog.vue
@@ -0,0 +1,138 @@
+<template>
+ <div class="system-add-role-container">
+ <el-dialog :title="title" v-model="isShowDialog" width="769px">
+ <el-form :model="roleForm" size="default" label-width="90px">
+ <el-row :gutter="35">
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="证书名称">
+ <el-input v-model="roleForm.name" placeholder="请输入证书名称" clearable style="width: 100%"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <template #footer>
+ <span class="dialog-footer">
+ <el-button @click="isShowDialog = !isShowDialog" size="default">取 消</el-button>
+ <el-button type="primary" @click="onSubmit" v-throttle size="default">{{ buttonName }}</el-button>
+ </span>
+ </template>
+ </el-dialog>
+ </div>
+</template>
+
+<script lang="ts">
+import { ElMessage } from 'element-plus';
+import { reactive, toRefs, defineComponent } from 'vue';
+import {certApi} from "/@/api/systemManage/certificate";
+
+// 定义接口来定义对象的类型
+interface MenuDataTree {
+ id: number;
+ label: string;
+ children?: MenuDataTree[];
+}
+interface RoleState {
+ title: string;
+ buttonName: string;
+ isShowDialog: boolean;
+ roleForm: {
+ id: null | number
+ name: string;
+ };
+ menuData: Array<MenuDataTree>;
+ menuProps: {
+ children: string;
+ label: string;
+ };
+}
+
+export default defineComponent({
+ name: 'certificateDialog',
+ setup(prop, context) {
+ const state = reactive<RoleState>({
+ isShowDialog: false,
+ title: '',
+ buttonName: '',
+ roleForm: {
+ id: null,
+ name: '', // 证书名称
+ },
+ menuData: [],
+ menuProps: {
+ children: 'children',
+ label: 'label'
+ }
+ });
+ // 打开弹窗
+ const openDialog = (type: string, value: any) => {
+ state.isShowDialog = true;
+ if (type === '新增') {
+ state.title = '新增证书';
+ state.buttonName = '新增';
+ state.roleForm = {
+ id: null,
+ name: ''
+ };
+ } else {
+ state.title = '修改证书';
+ state.buttonName = '修改';
+ state.roleForm.id = JSON.parse(JSON.stringify(value)).id
+ state.roleForm.name = JSON.parse(JSON.stringify(value)).name
+ }
+ };
+ // 新增
+ const onSubmit = async () => {
+ if (state.title === '新增证书') {
+ let res = await certApi().addCerttype({name: state.roleForm.name});
+ if (res.data.code === '200') {
+ ElMessage({
+ type: 'success',
+ message: '证书新增成功',
+ duration: 2000
+ });
+ state.isShowDialog = false;
+ context.emit('refreshCertList');
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ } else {
+ let res = await certApi().modCerttype(state.roleForm);
+ if (res.data.code === '200') {
+ ElMessage({
+ type: 'success',
+ message: '证书修改成功',
+ duration: 2000
+ });
+ state.isShowDialog = false;
+ context.emit('refreshCertList');
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ }
+ };
+ // 获取菜单结构数据
+ return {
+ onSubmit,
+ openDialog,
+ ...toRefs(state)
+ };
+ }
+});
+</script>
+
+<style scoped lang="scss">
+.system-add-role-container {
+ .menu-data-tree {
+ width: 100%;
+ border: 1px solid var(--el-border-color);
+ border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
+ padding: 5px;
+ }
+}
+</style>
diff --git a/src/views/system/certificate/component/certificateMember.vue b/src/views/system/certificate/component/certificateMember.vue
new file mode 100644
index 0000000..33e53c4
--- /dev/null
+++ b/src/views/system/certificate/component/certificateMember.vue
@@ -0,0 +1,214 @@
+<template>
+ <el-dialog v-model="dialogCertificate" :title="title">
+ <div class="system-user-search mb15">
+ <el-input size="default" v-model.trim="listQuery.searchParams.userName" placeholder="请输入用户名" style="max-width: 180px"> </el-input>
+ <el-button size="default" type="primary" class="ml10" @click="handleSearch">
+ <el-icon>
+ <ele-Search />
+ </el-icon>
+ 查询
+ </el-button>
+ </div>
+ <el-table
+ :data="tableData"
+ highlight-current-row
+ style="width: 100%;margin-top: 20px"
+ border
+ :header-cell-style="{background: '#fafafa'}"
+ >
+ <el-table-column property="userName" label="姓名"/>
+ <el-table-column property="depName" label="所属部门"/>
+ <el-table-column property="certTypeName" label="证书类型"/>
+ <el-table-column property="certExpiredAt" label="到期时间"/>
+ </el-table>
+ <br />
+ <el-pagination @size-change="onHandleSizeChange" @current-change="onHandleCurrentChange" class="page-position" :pager-count="5" :page-sizes="[10]" v-model:current-page="listQuery.pageIndex" background v-model:page-size="listQuery.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"> </el-pagination>
+ <br />
+ <br />
+ </el-dialog>
+</template>
+
+<script lang="ts">
+ import {toRefs, reactive, defineComponent, ref, defineAsyncComponent, onMounted} from 'vue';
+ import { storeToRefs } from 'pinia';
+ import { initBackEndControlRoutes } from '/@/router/backEnd';
+ import {useUserInfo} from "/@/stores/userInfo";
+ import { Session } from '/@/utils/storage';
+ import { Search, Delete, Edit, View, Plus } from '@element-plus/icons-vue'
+ import {ElMessage, ElMessageBox, ElTable} from 'element-plus'
+ import {certApi} from "/@/api/systemManage/certificate";
+
+
+ interface stateType {
+ title: string
+ dialogCertificate: boolean
+ tableData: Array<any>
+ listQuery: {
+ pageIndex: number
+ pageSize: number
+ searchParams: {
+ userName: string
+ certTypeId: number | null
+ }
+ }
+ total: number | null
+ }
+ export default defineComponent({
+ name: 'certificateMember',
+ components: {},
+ props:[],
+ setup() {
+ const userInfo = useUserInfo()
+ const { userInfos } = storeToRefs(userInfo);
+ const state = reactive<stateType>({
+ title: '',
+ dialogCertificate: false,
+ tableData: [],
+ total: null,
+ listQuery: {
+ pageIndex: 1,
+ pageSize: 10,
+ searchParams: {
+ userName:'',
+ certTypeId: null
+ }
+ }
+ });
+ // 页面载入时执行方法
+ onMounted(() => {
+
+ });
+ const ctfRef = ref()
+ const openDialog = (type:string,value: any) => {
+ state.tableData = []
+ state.total = null
+ state.listQuery.searchParams.certTypeId = value.id
+ state.dialogCertificate = true
+ if(type == '人员'){
+ state.title = '证书人员'
+ getUserData()
+ }else{
+ state.title = '证书即将到期'
+ getUnvalidData()
+ }
+ }
+
+ const getUserData = async () => {
+ let res = await certApi().getCertUsers(state.listQuery);
+ if (res.data.code === '200') {
+ state.tableData = res.data.data
+ state.total = res.data.total
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ }
+
+ const getUnvalidData = async () => {
+ let res = await certApi().getCertUnvalid(state.listQuery);
+ if (res.data.code === '200') {
+ state.tableData = res.data.data
+ state.total = res.data.total
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ }
+
+
+ const onHandleSizeChange = (val: number) => {
+ state.listQuery.pageSize = val;
+ if(state.title == '证书人员'){
+ getUserData();
+ }else{
+ getUnvalidData()
+ }
+ }
+
+ const onHandleCurrentChange = (val: number) => {
+ state.listQuery.pageIndex = val;
+ if(state.title == '证书人员'){
+ getUserData();
+ }else{
+ getUnvalidData()
+ }
+ }
+
+ const handleSearch = () => {
+ state.listQuery.pageIndex = 1
+ if(state.title == '证书人员'){
+ getUserData();
+ }else{
+ getUnvalidData()
+ }
+ }
+
+ const renderMenu = async (value: string) => {
+ Session.set('projectId',value)
+ userInfos.value.projectId = value
+ await initBackEndControlRoutes();
+ };
+ return {
+ renderMenu,
+ openDialog,
+ ctfRef,
+ Search,
+ Delete,
+ Edit,
+ View,
+ Plus,
+ onHandleSizeChange,
+ onHandleCurrentChange,
+ handleSearch,
+ ...toRefs(state),
+ };
+ },
+ });
+</script>
+
+<style scoped lang="scss">
+ .home-container {
+ height: 100%;
+ overflow: hidden;
+ position: relative;
+ .homeCard{
+ width: 100%;
+ padding: 0 20px;
+ box-sizing: border-box;
+ background: #fff;
+ border-radius: 4px;
+ }
+ .applyBtn{
+ width: 100%;
+ background: #fff;
+ padding-top: 15px;
+ z-index: 5;
+ box-shadow: 0 -3px 8px rgba(150,150,150,.1);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ .el-row{
+ margin-bottom: 20px;
+ }
+ .el-row:last-child {
+ margin-bottom: 0;
+ }
+ .el-input{
+ width: 100% !important;
+ }
+ .el-date-editor::v-deep{
+ width: 100%;
+ }
+ .el-select{
+ width: 100%;
+ }
+ .el-cascader{
+ width: 100% !important;
+ }
+ }
+</style>
diff --git a/src/views/system/certificate/component/messages.vue b/src/views/system/certificate/component/messages.vue
new file mode 100644
index 0000000..3db6d1a
--- /dev/null
+++ b/src/views/system/certificate/component/messages.vue
@@ -0,0 +1,148 @@
+<template>
+ <el-dialog v-model="dialogMes" :title="title">
+ <el-table
+ :data="tableData"
+ highlight-current-row
+ style="width: 100%;margin-top: 20px"
+ border
+ :header-cell-style="{background: '#fafafa'}"
+ >
+ <el-table-column property="id" label="发送时间"/>
+ <el-table-column property="roleId" label="预警信息内容"/>
+ <el-table-column property="workTypeDesc" label="预警级别"/>
+ <el-table-column property="roleId" label="接收人">
+ <template #default="scope">
+ {{ roleList.find(i=>i.roleId == scope.row.roleId)?.roleName }}
+ </template>
+ </el-table-column>
+ </el-table>
+ </el-dialog>
+</template>
+
+<script lang="ts">
+ import {toRefs, reactive, defineComponent, ref, defineAsyncComponent, onMounted} from 'vue';
+ import { storeToRefs } from 'pinia';
+ import { initBackEndControlRoutes } from '/@/router/backEnd';
+ import {useUserInfo} from "/@/stores/userInfo";
+ import { Session } from '/@/utils/storage';
+ import { Search, Delete, Edit, View, Plus } from '@element-plus/icons-vue'
+ import {ElMessage, ElMessageBox, ElTable} from 'element-plus'
+ import {userApi} from "/@/api/systemManage/user";
+
+
+ interface stateType {
+ title: string
+ dialogMes: boolean
+ tableData: Array<any>
+ roleList: Array<any>
+ uid: number | null
+ }
+ export default defineComponent({
+ name: 'historyMessages',
+ components: {},
+ props:[],
+ setup() {
+ const userInfo = useUserInfo()
+ const { userInfos } = storeToRefs(userInfo);
+ const state = reactive<stateType>({
+ title: '',
+ dialogMes: false,
+ tableData: [],
+ roleList: [],
+ uid: null
+ });
+ // 页面载入时执行方法
+ onMounted(() => {
+
+ });
+ const ctfRef = ref()
+ const openDialog = (value: any) => {
+ state.dialogMes = true
+ }
+
+ // const getRoleData = async () => {
+ // let res = await useRoleApi().getRoleList();
+ // if (res.data.code === '200') {
+ // state.roleList = res.data.data;
+ // } else {
+ // ElMessage({
+ // type: 'warning',
+ // message: res.data.msg
+ // });
+ // }
+ // };
+ //
+ // const getCtf = async()=>{
+ // let res = await userApi().getCtf({uid: state.uid})
+ // if(res.data.code == 200){
+ // state.tableData = res.data.data
+ // }else{
+ // ElMessage({
+ // type: 'warning',
+ // message: res.data.msg
+ // })
+ // }
+ // }
+
+ const renderMenu = async (value: string) => {
+ Session.set('projectId',value)
+ userInfos.value.projectId = value
+ await initBackEndControlRoutes();
+ };
+ return {
+ renderMenu,
+ openDialog,
+ ctfRef,
+ Search,
+ Delete,
+ Edit,
+ View,
+ Plus,
+ ...toRefs(state),
+ };
+ },
+ });
+</script>
+
+<style scoped lang="scss">
+ .home-container {
+ height: 100%;
+ overflow: hidden;
+ position: relative;
+ .homeCard{
+ width: 100%;
+ padding: 0 20px;
+ box-sizing: border-box;
+ background: #fff;
+ border-radius: 4px;
+ }
+ .applyBtn{
+ width: 100%;
+ background: #fff;
+ padding-top: 15px;
+ z-index: 5;
+ box-shadow: 0 -3px 8px rgba(150,150,150,.1);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ .el-row{
+ margin-bottom: 20px;
+ }
+ .el-row:last-child {
+ margin-bottom: 0;
+ }
+ .el-input{
+ width: 100% !important;
+ }
+ .el-date-editor::v-deep{
+ width: 100%;
+ }
+ .el-select{
+ width: 100%;
+ }
+ .el-cascader{
+ width: 100% !important;
+ }
+ }
+</style>
diff --git a/src/views/system/certificate/index.vue b/src/views/system/certificate/index.vue
new file mode 100644
index 0000000..1c22508
--- /dev/null
+++ b/src/views/system/certificate/index.vue
@@ -0,0 +1,201 @@
+<template>
+ <div class="system-role-container">
+ <el-card shadow="hover">
+ <div class="system-user-search mb15">
+ <el-input size="default" v-model.trim="listQuery.searchParams.name" placeholder="请输入证书类型" style="max-width: 180px"> </el-input>
+ <el-button size="default" type="primary" class="ml10" @click="handleSearch">
+ <el-icon>
+ <ele-Search />
+ </el-icon>
+ 查询
+ </el-button>
+ <el-button size="default" type="success" class="ml10" @click="onOpenDialogRef('新增', '')">
+ <el-icon>
+ <ele-FolderAdd />
+ </el-icon>
+ 新增
+ </el-button>
+ </div>
+ <el-table :data="tableData.data" style="width: 100%">
+ <el-table-column prop="name" label="证书类型" show-overflow-tooltip></el-table-column>
+ <el-table-column prop="personCount" label="关联证书人员" show-overflow-tooltip>
+ <template #default="scope">
+ <el-button v-if="scope.row.personCount && scope.row.personCount>0" link type="primary" @click="openMembers('人员',scope.row)">{{scope.row.personCount}}</el-button>
+ <span v-else>0</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="unValidCount" label="三个月证书到期" show-overflow-tooltip>
+ <template #default="scope">
+ <el-button v-if="scope.row.unValidCount && scope.row.unValidCount>0" link type="danger" @click="openMembers('到期',scope.row)">{{scope.row.unValidCount}}</el-button>
+ <span v-else>0</span>
+ </template>
+ </el-table-column>
+<!-- <el-table-column prop="warnCount" label="历史预警信息" show-overflow-tooltip>-->
+<!-- <template #default="scope">-->
+<!-- <el-button v-if="scope.row.warnCount && scope.row.warnCount>0" link type="danger" @click="openMes(scope.row)">{{scope.row.warnCount}}</el-button>-->
+<!-- <span v-else>0</span>-->
+<!-- </template>-->
+<!-- </el-table-column>-->
+ <el-table-column label="操作" width="150">
+ <template #default="scope">
+ <el-button size="small" text type="primary" @click="onOpenDialogRef('修改', scope.row)">修改</el-button>
+ <el-button size="small" style="color: red" text type="primary" @click="onRowDel(scope.row)">删除</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <br />
+ <el-pagination @size-change="onHandleSizeChange" @current-change="onHandleCurrentChange" class="page-position" :pager-count="5" :page-sizes="[10]" v-model:current-page="listQuery.pageIndex" background v-model:page-size="listQuery.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="tableData.total"> </el-pagination>
+ <br />
+ <br />
+ </el-card>
+ <certificateDialog ref="certificateRef" @refreshCertList="initRoleTableData" />
+ <certificate-member ref="certificateMemRef"></certificate-member>
+ <messages ref="mesRef"></messages>
+ </div>
+</template>
+
+<script lang="ts">
+import { toRefs, reactive, onMounted, ref, defineComponent } from 'vue';
+import { ElMessageBox, ElMessage } from 'element-plus';
+import certificateDialog from '/@/views/system/certificate/component/certificateDialog.vue'
+import certificateMember from '/@/views/system/certificate/component/certificateMember.vue'
+import messages from '/@/views/system/certificate/component/messages.vue'
+import { certApi } from '/@/api/systemManage/certificate';
+import { useMenuApi } from '/@/api/systemManage/menu';
+import { Session } from '/@/utils/storage';
+import { initBackEndControlRoutes } from '/@/router/backEnd';
+import {useUserInfo} from "/@/stores/userInfo";
+import {storeToRefs} from "pinia";
+
+// 定义接口来定义对象的类型
+interface TableData {
+ roleName: string;
+ roleSign: string;
+ describe: string;
+ sort: number;
+ status: boolean;
+ createTime: string;
+}
+interface TableDataState {
+ tableData: {
+ data: Array<TableData>;
+ total: number;
+ loading: boolean;
+ };
+ listQuery: {
+ pageIndex: number
+ pageSize: number
+ searchParams: {
+ name: string
+ }
+ };
+}
+
+export default defineComponent({
+ name: 'certificate',
+ components: {messages, certificateMember, certificateDialog },
+ setup() {
+ const userInfo = useUserInfo();
+ const { userInfos } = storeToRefs(userInfo);
+ const certificateRef = ref();
+ const certificateMemRef = ref();
+ const mesRef = ref();
+ const state = reactive<TableDataState>({
+ tableData: {
+ data: [],
+ total: 0,
+ loading: false,
+ },
+ listQuery: {
+ pageIndex: 1,
+ pageSize: 10,
+ searchParams: {
+ name:''
+ }
+ }
+ });
+ // 初始化表格数据
+ const initRoleTableData = async () => {
+ let res = await certApi().getCerttypeList(state.listQuery);
+ if (res.data.code === '200') {
+ state.tableData.data = res.data.data;
+ state.tableData.total = res.data.total
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ };
+
+ const onOpenDialogRef = (type: string, value: any) => {
+ certificateRef.value.openDialog(type, value);
+ };
+
+ const openMembers = (type: string, value: any) => {
+ certificateMemRef.value.openDialog(type,value)
+ }
+
+ const openMes = (value: any) => {
+ mesRef.value.openDialog(value)
+ }
+ const onRowDel = (row: any) => {
+ ElMessageBox.confirm(`此操作将永久删除角色名称:“${row.name}”,是否继续?`, '提示', {
+ confirmButtonText: '确认',
+ cancelButtonText: '取消',
+ type: 'warning'
+ })
+ .then(async () => {
+ let res = await certApi().deleteCerttype(row.id);
+ if (res.data.code === '200') {
+ ElMessage({
+ type: 'success',
+ duration: 2000,
+ message: '删除成功'
+ });
+ await initRoleTableData();
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg
+ });
+ }
+ })
+ .catch(() => {});
+ };
+ const handleSearch = () => {
+ state.listQuery.pageIndex = 1
+ initRoleTableData();
+ };
+
+ // 分页改变
+ const onHandleSizeChange = (val: number) => {
+ state.listQuery.pageSize = val;
+ initRoleTableData();
+ };
+ // 分页改变
+ const onHandleCurrentChange = (val: number) => {
+ state.listQuery.pageIndex = val;
+ initRoleTableData();
+ };
+ // 页面加载时
+ onMounted(() => {
+ initRoleTableData();
+ });
+ return {
+ onRowDel,
+ handleSearch,
+ certificateRef,
+ certificateMemRef,
+ mesRef,
+ onOpenDialogRef,
+ openMembers,
+ openMes,
+ initRoleTableData,
+ onHandleSizeChange,
+ onHandleCurrentChange,
+ ...toRefs(state)
+ };
+ }
+});
+</script>
--
Gitblit v1.9.2