From 88113922d342cb502df268ddbf2e0819cc112840 Mon Sep 17 00:00:00 2001 From: wangchengming <15110151257@163.com> Date: Thu, 14 Aug 2025 11:50:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/复训记录导入模板.xlsx | Bin 0 -> 10878 bytes src/components/Breadcrumb/index.vue | 19 ++-- .../components/libaryDetail.vue | 23 +++-- .../databaseLibary/components/libaryForm.vue | 13 ++- src/views/databaseLibary/index.vue | 56 ++++++++++- .../adminApproval/approvalDetail.vue | 15 +-- .../adminApproval/approvalForm.vue | 15 +-- .../labelManage/adminApproval/importForm.vue | 11 ++- .../escApproval/approvalDetail.vue | 13 ++- .../labelManage/escApproval/approvalForm.vue | 13 ++- src/views/ppeTool/index.vue | 62 ++++++++++-- src/views/ppeTool/toolForm.vue | 13 +-- .../escApproval/approvalDetail.vue | 19 ++-- .../escApproval/approvalForm.vue | 19 ++-- .../escTask/components/LableApplyForm.vue | 67 +++++++++++-- .../escTask/components/LableReApplyForm.vue | 67 +++++++++++-- .../components/QualificationApplyForm.vue | 71 ++++++++++--- .../components/QualificationManage.vue | 93 +++++++++++------- .../components/QualificationReApplyForm.vue | 25 ++--- .../components/LableApplyForm.vue | 69 +++++++++++-- .../components/LableReApplyForm.vue | 56 +++++++++-- .../components/QualificationApplyForm.vue | 58 ++++++++--- .../components/QualificationDetailForm.vue | 6 +- .../components/QualificationReApplyForm.vue | 14 +-- .../components/QualificationTrain.vue | 92 ++++++++++------- .../trainApproval/approvalDetail.vue | 19 ++-- .../trainApproval/approvalForm.vue | 19 ++-- .../qualification/vehicleTrain/exportForm.vue | 11 ++- src/views/qualification/vehicleTrain/form.vue | 18 ++-- .../qualification/vehicleTrain/importForm.vue | 38 ++++++- .../safetyReview/dashboard/detailForm.vue | 13 ++- .../examinerApproval/approvalForm.vue | 11 ++- .../examinerApproval/detailForm.vue | 11 ++- .../examinerEscTask/detailForm.vue | 10 +- .../examinerEscTask/escTaskForm.vue | 10 +- .../safetyReview/examinerTasks/taskForm.vue | 19 ++-- src/views/system/role/authUser.vue | 14 ++- src/views/system/user/authRole.vue | 15 ++- .../userApproval/userApprovalDetail.vue | 27 ++--- .../system/userApproval/userApprovalForm.vue | 11 ++- 40 files changed, 842 insertions(+), 313 deletions(-) create mode 100644 public/复训记录导入模板.xlsx diff --git a/public/复训记录导入模板.xlsx b/public/复训记录导入模板.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..85fb7fbc31af64785d7a568e4f54485478511025 GIT binary patch literal 10878 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 literal 0 HcmV?d00001 diff --git a/src/components/Breadcrumb/index.vue b/src/components/Breadcrumb/index.vue index 6bad24e..599c2a8 100644 --- a/src/components/Breadcrumb/index.vue +++ b/src/components/Breadcrumb/index.vue @@ -1,14 +1,10 @@ \ No newline at end of file diff --git a/src/views/qualification/escTask/components/QualificationApplyForm.vue b/src/views/qualification/escTask/components/QualificationApplyForm.vue index 4f4dac3..8c39723 100644 --- a/src/views/qualification/escTask/components/QualificationApplyForm.vue +++ b/src/views/qualification/escTask/components/QualificationApplyForm.vue @@ -3,7 +3,7 @@ - {{ + {{ item.title }} {{ item.title }} @@ -22,7 +22,8 @@ - + @@ -105,11 +106,11 @@ - + - +
@@ -137,7 +138,7 @@ - + @@ -171,7 +172,7 @@
-
+
@@ -196,7 +197,7 @@ - + @@ -288,7 +289,7 @@ import { onMounted, reactive, ref } from 'vue' import { customerDeptTreeSelect, listUser } from "@/api/system/user" import { getBusDependencyPage } from "@/api/system/dependency" import { getSysSectionPage } from "@/api/system/section" -import { submitBusUserQualification } from "@/api/qualification/myQualifications" +import { getUserCertificateList, submitBusUserQualification } from "@/api/qualification/myQualifications" import myFileUpload from './myFileUpload.vue' import moment from 'moment' import { useRouter } from 'vue-router' @@ -347,7 +348,7 @@ const data = reactive({ { required: true, message: '培训紧迫程度不能为空', trigger: 'change' } ], certificatePhoto: [ - { required: true, message: '电工证照片不能为空', trigger: 'change' } + { required: true, message: '电工证不能为空', trigger: 'change' } ], esFile: [ { required: true, message: 'ES资质不能为空', trigger: 'change' } @@ -387,16 +388,18 @@ const data = reactive({ }) const levelList = ref([ - { title: '资质管理', path: '/qualification' }, + { title: '资质管理' }, { title: 'ESC任务', path: '/qualification/escTask' }, - { title: '资质申请', path: '/qualification/escTask/qualificationApplyForm' } + { title: '资质申请' } ]) const { ruleForm, rules } = toRefs(data) - -// 设置电工证照片 +const handleJump = (goLink) => { + if (goLink) router.push({ path: goLink }) +} +// 设置电工证 const handleSetCertificatePhoto = (filePath) => { - console.log('接收电工证照片', filePath) + console.log('接收电工证', filePath) ruleForm.value.beforeCondition.certificatePhoto = filePath } // 设置SH资质 @@ -466,6 +469,8 @@ const selectChanged = (value) => { ruleForm.value.sectionId = curUser.sectionId; ruleForm.value.dependencyId = curUser.dependencyId; ruleForm.value.escUserName = curUser.escUserName; + + getUserQualification(curUser.userId) } } @@ -477,6 +482,43 @@ onMounted(() => { getDeptTree() getSysSectionData() }); +const choseUserQualification = ref([]) +const getUserQualification = (_userId) => { + getUserCertificateList({ + pageIndex: 1, + pageSize: 10, + userId: _userId + }).then(res => { + if (res.code == 200) { + choseUserQualification.value = res.data + if (ruleForm.value.qualificationId) handleChoseQualification(ruleForm.value.qualificationId) + } + }).catch(() => { + }) +} + +// 申请目标资质选择 +const handleChoseQualification = (val) => { + if (val == 'LLP') { + const jjzInfo = choseUserQualification.value.filter(item => item.qualificationName === '急救证')[0] + if (jjzInfo && jjzInfo.startTime) { + ruleForm.value.beforeCondition.firstCollectionDate = jjzInfo.startTime + ruleForm.value.beforeCondition.firstCollectionExpireDate = jjzInfo.expireTime + } else { + ruleForm.value.beforeCondition.firstCollectionDate = undefined + ruleForm.value.beforeCondition.firstCollectionExpireDate = undefined + } + } else { + const dgzInfo = choseUserQualification.value.filter(item => item.qualificationName === '电工证')[0] + if (dgzInfo && dgzInfo.startTime) { + ruleForm.value.beforeCondition.collectionDate = dgzInfo.startTime + ruleForm.value.beforeCondition.reviewDate = dgzInfo.expireTime + } else { + ruleForm.value.beforeCondition.collectionDate = undefined + ruleForm.value.beforeCondition.reviewDate = undefined + } + } +} // 用户数据 const allUsers = ref([]) // 获取所有用户 ,后期可能替换为当前属地下负责的用户 @@ -605,6 +647,7 @@ const handleSubmit = () => { cursor: text; text-decoration: underline; text-underline-offset: 4px; + cursor: pointer; } } diff --git a/src/views/qualification/escTask/components/QualificationManage.vue b/src/views/qualification/escTask/components/QualificationManage.vue index 0651dab..593d86f 100644 --- a/src/views/qualification/escTask/components/QualificationManage.vue +++ b/src/views/qualification/escTask/components/QualificationManage.vue @@ -17,11 +17,17 @@
- + @@ -55,16 +61,20 @@ + + + Preview Image +
+ +
+
- - - + \ No newline at end of file diff --git a/src/views/qualification/escTask/components/QualificationReApplyForm.vue b/src/views/qualification/escTask/components/QualificationReApplyForm.vue index 6533857..9e5af7b 100644 --- a/src/views/qualification/escTask/components/QualificationReApplyForm.vue +++ b/src/views/qualification/escTask/components/QualificationReApplyForm.vue @@ -3,7 +3,7 @@ - {{ + {{ item.title }} {{ item.title }} @@ -104,7 +104,7 @@
- + @@ -136,7 +136,7 @@ - + @@ -170,7 +170,7 @@
-
+
@@ -195,7 +195,7 @@ - + @@ -354,7 +354,7 @@ const data = reactive({ { required: true, message: '培训紧迫程度不能为空', trigger: 'change' } ], certificatePhoto: [ - { required: true, message: '电工证照片不能为空', trigger: 'change' } + { required: true, message: '电工证不能为空', trigger: 'change' } ], esFile: [ { required: true, message: 'ES资质不能为空', trigger: 'change' } @@ -394,16 +394,18 @@ const data = reactive({ }) const levelList = ref([ - { title: '资质管理', path: '/qualification' }, + { title: '资质管理' }, { title: 'ESC任务', path: '/qualification/escTask' }, - { title: '资质申请', path: '/qualification/escTask/qualificationApplyForm' } + { title: '资质申请' } ]) const { ruleForm, rules } = toRefs(data) - -// 设置电工证照片 +const handleJump = (goLink) => { + if (goLink) router.push({ path: goLink }) +} +// 设置电工证 const handleSetCertificatePhoto = (filePath) => { - console.log('接收电工证照片', filePath) + console.log('接收电工证', filePath) ruleForm.value.beforeCondition.certificatePhoto = filePath } // 设置SH资质 @@ -662,6 +664,7 @@ const handleSubmit = () => { cursor: text; text-decoration: underline; text-underline-offset: 4px; + cursor: pointer; } } diff --git a/src/views/qualification/myQualifications/components/LableApplyForm.vue b/src/views/qualification/myQualifications/components/LableApplyForm.vue index a92dd2f..20f338c 100644 --- a/src/views/qualification/myQualifications/components/LableApplyForm.vue +++ b/src/views/qualification/myQualifications/components/LableApplyForm.vue @@ -72,12 +72,17 @@
申请信息
- + @@ -93,7 +98,7 @@ @@ -102,7 +107,7 @@ 长期 @@ -117,6 +122,14 @@ 取消 提交
+ + + + Preview Image +
+ +
+
\ No newline at end of file diff --git a/src/views/qualification/myQualifications/components/LableReApplyForm.vue b/src/views/qualification/myQualifications/components/LableReApplyForm.vue index ff7e729..60f78a5 100644 --- a/src/views/qualification/myQualifications/components/LableReApplyForm.vue +++ b/src/views/qualification/myQualifications/components/LableReApplyForm.vue @@ -72,7 +72,7 @@
申请信息
- + @@ -117,6 +117,14 @@ 取消 提交
+ + + + Preview Image +
+ +
+
\ No newline at end of file diff --git a/src/views/qualification/trainApproval/approvalDetail.vue b/src/views/qualification/trainApproval/approvalDetail.vue index 5bc76b4..f811253 100644 --- a/src/views/qualification/trainApproval/approvalDetail.vue +++ b/src/views/qualification/trainApproval/approvalDetail.vue @@ -3,7 +3,7 @@ - {{ + {{ item.title }} {{ item.title }} @@ -130,7 +130,7 @@
- + @@ -176,7 +176,7 @@ - + @@ -250,7 +250,7 @@ - + @@ -392,9 +392,9 @@ const dialogVisible = ref(false) const suffix = ref('') const router = useRouter() const levelList = ref([ - { title: '资质管理', path: '/qualification' }, - { title: 'ESC审批', path: '/qualification/escApproval' }, - { title: '审批', path: '/qualification/escApproval/approvalDetail' } + { title: '资质管理' }, + { title: '培训中心审批', path: '/qualification/trainApproval' }, + { title: '审批' } ]) const { proxy } = getCurrentInstance() const data = reactive({ @@ -454,7 +454,9 @@ const getQualificationApprovalRecord = (_id) => { } const { ruleForm, detailForm, beforeConditionInfo, rules } = toRefs(data) - +const handleJump = (goLink) => { + if (goLink) router.push({ path: goLink }) +} // 初始化 onMounted(() => { const id = route.params && route.params.Id @@ -570,6 +572,7 @@ const handleCancel = () => { cursor: text; text-decoration: underline; text-underline-offset: 4px; + cursor: pointer; } } diff --git a/src/views/qualification/trainApproval/approvalForm.vue b/src/views/qualification/trainApproval/approvalForm.vue index 2d0275e..5e50446 100644 --- a/src/views/qualification/trainApproval/approvalForm.vue +++ b/src/views/qualification/trainApproval/approvalForm.vue @@ -3,7 +3,7 @@ - {{ + {{ item.title }} {{ item.title }} @@ -130,7 +130,7 @@ - + @@ -176,7 +176,7 @@ - + @@ -250,7 +250,7 @@ - + @@ -413,9 +413,9 @@ const dialogVisible = ref(false) const suffix = ref('') const router = useRouter() const levelList = ref([ - { title: '资质管理', path: '/qualification' }, - { title: 'ESC审批', path: '/qualification/escApproval' }, - { title: '审批', path: '/qualification/escApproval/approvalDetail' } + { title: '资质管理' }, + { title: '培训中心审批', path: '/qualification/trainApproval' }, + { title: '审批' } ]) const { proxy } = getCurrentInstance() const data = reactive({ @@ -475,7 +475,9 @@ const getQualificationApprovalRecord = (_id) => { } const { ruleForm, detailForm, beforeConditionInfo, rules } = toRefs(data) - +const handleJump = (goLink) => { + if (goLink) router.push({ path: goLink }) +} // 初始化 onMounted(() => { const id = route.params && route.params.Id @@ -614,6 +616,7 @@ const handleSubmit = () => { cursor: text; text-decoration: underline; text-underline-offset: 4px; + cursor: pointer; } } diff --git a/src/views/qualification/vehicleTrain/exportForm.vue b/src/views/qualification/vehicleTrain/exportForm.vue index 688ccf0..dc9fb6d 100644 --- a/src/views/qualification/vehicleTrain/exportForm.vue +++ b/src/views/qualification/vehicleTrain/exportForm.vue @@ -3,7 +3,7 @@ - {{ + {{ item.title }} {{ item.title }} @@ -56,9 +56,9 @@ import { getBusDependencyPage } from "@/api/system/dependency" const router = useRouter() const levelList = ref([ - { title: '资质管理', path: '/qualification' }, + { title: '资质管理' }, { title: '车型培训情况', path: '/qualification/vehicleTrain' }, - { title: '导出模板', path: '/qualification/vehicleTrain/exportForm' } + { title: '导出模板' } ]) const { proxy } = getCurrentInstance() const { vehicle_model } = proxy.useDict("vehicle_model") @@ -71,7 +71,9 @@ const data = reactive({ }, }) const { ruleForm, rules } = toRefs(data) - +const handleJump = (goLink) => { + if (goLink) router.push({ path: goLink }) +} // 初始化 onMounted(() => { getBusDependencyData() @@ -180,6 +182,7 @@ const handleSubmit = () => { cursor: text; text-decoration: underline; text-underline-offset: 4px; + cursor: pointer; } } diff --git a/src/views/qualification/vehicleTrain/form.vue b/src/views/qualification/vehicleTrain/form.vue index d58affd..96604f7 100644 --- a/src/views/qualification/vehicleTrain/form.vue +++ b/src/views/qualification/vehicleTrain/form.vue @@ -3,7 +3,7 @@ - {{ + {{ item.title }} {{ item.title }} @@ -97,11 +97,14 @@ const router = useRouter() const route = useRoute() const levelList = ref([ - { title: '资质管理', path: '/qualification' }, + { title: '资质管理' }, { title: '车型培训情况', path: '/qualification/vehicleTrain' }, - { title: '新建', path: '/qualification/vehicleTrain/addForm' } + { title: '新建' } ]) const formTitle = ref('新建') +const handleJump = (goLink) => { + if (goLink) router.push({ path: goLink }) +} // 初始化 onMounted(() => { getAllUser(); @@ -114,16 +117,16 @@ onMounted(() => { formTitle.value = '编辑' getDetailInfo(id) levelList.value = [ - { title: '资质管理', path: '/qualification' }, + { title: '资质管理' }, { title: '车型培训情况', path: '/qualification/vehicleTrain' }, - { title: '编辑', path: '/qualification/vehicleTrain/addForm' } + { title: '编辑' } ] } else { ruleForm.value.id = null formTitle.value = '新建' - levelList.value = [{ title: '资质管理', path: '/qualification' }, + levelList.value = [{ title: '资质管理' }, { title: '车型培训情况', path: '/qualification/vehicleTrain' }, - { title: '新建', path: '/qualification/vehicleTrain/addForm' }] + { title: '新建' }] } }); // 用户数据 @@ -289,6 +292,7 @@ const handleSubmit = () => { cursor: text; text-decoration: underline; text-underline-offset: 4px; + cursor: pointer; } } diff --git a/src/views/qualification/vehicleTrain/importForm.vue b/src/views/qualification/vehicleTrain/importForm.vue index 3e48949..e27517f 100644 --- a/src/views/qualification/vehicleTrain/importForm.vue +++ b/src/views/qualification/vehicleTrain/importForm.vue @@ -3,7 +3,7 @@ - {{ + {{ item.title }} {{ item.title }} @@ -18,6 +18,7 @@
+ 下载导入模板
- 取消 + 取消
@@ -50,7 +51,7 @@ import { importVehicleModelTraining } from "@/api/qualification/vehicleTrain" const router = useRouter() const levelList = ref([ - { title: '资质管理', path: '/qualification' }, + { title: '资质管理' }, { title: '车型培训情况', path: '/qualification/vehicleTrain' }, { title: '导入', path: '/qualification/vehicleTrain/importForm' } ]) @@ -62,6 +63,10 @@ const data = reactive({ }) const { ruleForm, rules } = toRefs(data) +const handleJump = (goLink) => { + if (goLink) router.push({ path: goLink }) +} + const docUploadList = ref([]) // 自定义上传文件资料 @@ -71,6 +76,7 @@ const requestDocUpload = (options) => { formData.append('file', file); importVehicleModelTraining(formData).then(res => { if (res.code == 200) { + proxy.$modal.msgSuccess("导入成功") router.push({ path: '/qualification/vehicleTrain' }) @@ -97,7 +103,14 @@ const removeDocUpload = (file, fileList) => { item => item.name != file.name ); } - +const downloadDocxTemplate = (val) => { + const link = document.createElement('a') + link.href = '/复训记录导入模板.xlsx' + link.download = '复训记录导入模板.xlsx' // 设置下载文件名 + document.body.appendChild(link) + link.click() + document.body.removeChild(link) +} const handleCancel = () => { proxy.resetForm("ruleFormRef") router.push({ @@ -148,6 +161,7 @@ const handleCancel = () => { cursor: text; text-decoration: underline; text-underline-offset: 4px; + cursor: pointer; } } @@ -276,4 +290,20 @@ const handleCancel = () => { .el-form-item__error { font-size: 16px; } + +.downloadTemplateBtn { + width: 100px; + height: 36px; + font-family: Microsoft YaHei; + font-weight: 700; + font-size: 14px; + text-align: center; + color: #409eff !important; + background: transparent !important; +} + +.downloadTemplateBtn:hover { + background: transparent !important; + color: #409eff !important; +} \ No newline at end of file diff --git a/src/views/safetyReview/dashboard/detailForm.vue b/src/views/safetyReview/dashboard/detailForm.vue index aac8b2d..5c05dec 100644 --- a/src/views/safetyReview/dashboard/detailForm.vue +++ b/src/views/safetyReview/dashboard/detailForm.vue @@ -3,7 +3,7 @@ - {{ + {{ item.title }} {{ item.title }} @@ -138,11 +138,13 @@ const cachShowTableData = ref([]) const ToolOptions = ref(['全部', '主要偏差', '一般偏差', '建议项']) const activeIndex = ref(0) const levelList = ref([ - { title: '高压安全审查', path: '/safetyReview' }, - { title: 'Dashboard', path: '/safetyReview/safetyDashboard' }, - { title: '详情', path: '/safetyReview/safetyDashboardDitail' } + { title: '高压安全审查' }, + { title: 'Dashboard', path: '/safetyReview/dashboard' }, + { title: '详情' } ]) - +const handleJump = (goLink) => { + if (goLink) router.push({ path: goLink }) +} // 初始化 onMounted(() => { const dependencyId = route.params && route.params.dependencyId @@ -236,6 +238,7 @@ const handleChangeLeve = (index, _level) => { cursor: text; text-decoration: underline; text-underline-offset: 4px; + cursor: pointer; } } diff --git a/src/views/safetyReview/examinerApproval/approvalForm.vue b/src/views/safetyReview/examinerApproval/approvalForm.vue index b75057d..c1b0584 100644 --- a/src/views/safetyReview/examinerApproval/approvalForm.vue +++ b/src/views/safetyReview/examinerApproval/approvalForm.vue @@ -3,7 +3,7 @@ - {{ + {{ item.title }} {{ item.title }} @@ -167,9 +167,9 @@ import { escBusReviewProblemDetail, checkStatus, busReviewProblemRecordPage } fr const router = useRouter() const route = useRoute() const levelList = ref([ - { title: '高压安全审查', path: '/safetyReview' }, + { title: '高压安全审查' }, { title: '审核员审批', path: '/safetyReview/examinerApproval' }, - { title: '审批', path: '/safetyReview/examinerApproval/approvalForm' } + { title: '审批' } ]) // 整改附件集合 const docUploadList = ref([]) @@ -183,7 +183,9 @@ const data = reactive({ }, }) const { detailForm, rules } = toRefs(data) - +const handleJump = (goLink) => { + if (goLink) router.push({ path: goLink }) +} // 初始化 onMounted(() => { const id = route.params && route.params.Id @@ -291,6 +293,7 @@ const handleSubmit = () => { cursor: text; text-decoration: underline; text-underline-offset: 4px; + cursor: pointer; } } diff --git a/src/views/safetyReview/examinerApproval/detailForm.vue b/src/views/safetyReview/examinerApproval/detailForm.vue index b6c7eda..ac64487 100644 --- a/src/views/safetyReview/examinerApproval/detailForm.vue +++ b/src/views/safetyReview/examinerApproval/detailForm.vue @@ -3,7 +3,7 @@ - {{ + {{ item.title }} {{ item.title }} @@ -145,9 +145,9 @@ import { escBusReviewProblemDetail, busReviewProblemRecordPage } from "@/api/saf const router = useRouter() const route = useRoute() const levelList = ref([ - { title: '高压安全审查', path: '/safetyReview' }, + { title: '高压安全审查' }, { title: '审核员审批', path: '/safetyReview/examinerApproval' }, - { title: '问题详情', path: '/safetyReview/examinerViewProblem' } + { title: '问题详情' } ]) // 整改附件集合 const docUploadList = ref([]) @@ -161,7 +161,9 @@ const data = reactive({ }, }) const { detailForm, rules } = toRefs(data) - +const handleJump = (goLink) => { + if (goLink) router.push({ path: goLink }) +} // 初始化 onMounted(() => { const id = route.params && route.params.Id @@ -246,6 +248,7 @@ const isImageFile = (suffix) => { cursor: text; text-decoration: underline; text-underline-offset: 4px; + cursor: pointer; } } diff --git a/src/views/safetyReview/examinerEscTask/detailForm.vue b/src/views/safetyReview/examinerEscTask/detailForm.vue index 8b3775e..231f5dd 100644 --- a/src/views/safetyReview/examinerEscTask/detailForm.vue +++ b/src/views/safetyReview/examinerEscTask/detailForm.vue @@ -3,7 +3,7 @@ - {{ + {{ item.title }} {{ item.title }} @@ -145,9 +145,9 @@ import { escBusReviewProblemDetail, busReviewProblemRecordPage } from "@/api/saf const router = useRouter() const route = useRoute() const levelList = ref([ - { title: '高压安全审查', path: '/safetyReview' }, + { title: '高压安全审查' }, { title: 'ESC任务', path: '/safetyReview/examinerEscTask' }, - { title: '问题详情', path: '/safetyReview/examinerEscViewProblem' } + { title: '问题详情' } ]) // 整改附件集合 const docUploadList = ref([]) @@ -162,6 +162,9 @@ const data = reactive({ }) const { detailForm, rules } = toRefs(data) +const handleJump = (goLink) => { + if (goLink) router.push({ path: goLink }) +} // 初始化 onMounted(() => { const id = route.params && route.params.Id @@ -247,6 +250,7 @@ const isImageFile = (suffix) => { cursor: text; text-decoration: underline; text-underline-offset: 4px; + cursor: pointer; } } diff --git a/src/views/safetyReview/examinerEscTask/escTaskForm.vue b/src/views/safetyReview/examinerEscTask/escTaskForm.vue index 46af9cf..96c12a6 100644 --- a/src/views/safetyReview/examinerEscTask/escTaskForm.vue +++ b/src/views/safetyReview/examinerEscTask/escTaskForm.vue @@ -3,7 +3,7 @@ - {{ + {{ item.title }} {{ item.title }} @@ -162,9 +162,9 @@ import { escBusReviewProblemDetail, escCorrection, busReviewProblemRecordPage } const router = useRouter() const route = useRoute() const levelList = ref([ - { title: '高压安全审查', path: '/safetyReview' }, + { title: '高压安全审查' }, { title: 'ESC任务', path: '/safetyReview/examinerEscTask' }, - { title: '问题整改', path: '/safetyReview/examinerEscTask/escTaskForm' } + { title: '问题整改' } ]) // 整改附件集合 const docUploadList = ref([]) @@ -180,6 +180,9 @@ const data = reactive({ const { detailForm, rules } = toRefs(data) +const handleJump = (goLink) => { + if (goLink) router.push({ path: goLink }) +} // 初始化 onMounted(() => { const id = route.params && route.params.Id @@ -317,6 +320,7 @@ const handleSubmit = () => { cursor: text; text-decoration: underline; text-underline-offset: 4px; + cursor: pointer; } } diff --git a/src/views/safetyReview/examinerTasks/taskForm.vue b/src/views/safetyReview/examinerTasks/taskForm.vue index d86d8a9..85380c4 100644 --- a/src/views/safetyReview/examinerTasks/taskForm.vue +++ b/src/views/safetyReview/examinerTasks/taskForm.vue @@ -3,7 +3,7 @@ - {{ + {{ item.title }} {{ item.title }} @@ -223,11 +223,13 @@ const correctionFlagList = ref([ ]) const activeIndex = ref(0) const levelList = ref([ - { title: '高压安全审查', path: '/safetyReview' }, + { title: '高压安全审查' }, { title: '审核员任务', path: '/safetyReview/examinerTasks' }, - { title: '新增', path: '/safetyReview/examinerTasksForm' } + { title: '新增' } ]) - +const handleJump = (goLink) => { + if (goLink) router.push({ path: goLink }) +} // 初始化 onMounted(() => { getDeptTree(); @@ -238,18 +240,18 @@ onMounted(() => { ruleForm.value.id = id formTitle.value = '编辑' levelList.value = [ - { title: '高压安全审查', path: '/safetyReview' }, + { title: '高压安全审查' }, { title: '审核员任务', path: '/safetyReview/examinerTasks' }, - { title: '编辑', path: '/safetyReview/examinerTasksForm' } + { title: '编辑' } ] getDetailInfo(id) } else { ruleForm.value.id = null formTitle.value = '新增' levelList.value = [ - { title: '高压安全审查', path: '/safetyReview' }, + { title: '高压安全审查' }, { title: '审核员任务', path: '/safetyReview/examinerTasks' }, - { title: '新增', path: '/safetyReview/examinerTasksForm' } + { title: '新增' } ] } }); @@ -481,6 +483,7 @@ const handleSubmit = () => { cursor: text; text-decoration: underline; text-underline-offset: 4px; + cursor: pointer; } } diff --git a/src/views/system/role/authUser.vue b/src/views/system/role/authUser.vue index 078c718..50ff5e4 100644 --- a/src/views/system/role/authUser.vue +++ b/src/views/system/role/authUser.vue @@ -3,7 +3,7 @@ - {{ + {{ item.title }} {{ item.title }} @@ -78,15 +78,16 @@