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