From 81c97de170b73e33c38f1b07fed194adbc443d9a Mon Sep 17 00:00:00 2001 From: Ranyunqiao <2499115710@qq.com> Date: Wed, 18 Mar 2026 16:51:38 +0800 Subject: [PATCH] =?UTF-8?q?190=20=E6=A3=80=E6=9F=A5=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE-=E3=80=8B=E5=A5=97=E9=A4=90=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=EF=BC=9A=E9=A1=B9=E7=9B=AE=E5=90=8D=E7=A7=B0=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E6=A8=A1=E7=B3=8A=E6=9F=A5=E8=AF=A2=E5=87=BA=E9=A2=84?= =?UTF-8?q?=E8=A7=88=E7=95=8C=E9=9D=A2=E5=A2=9E=E5=8A=A0=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=8D=95=E4=BB=B7=E5=AD=97=E6=AE=B5=E6=98=BE=E7=A4=BA=20191=20?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E9=A1=B9=E7=9B=AE=E8=AE=BE=E7=BD=AE-?= =?UTF-8?q?=E3=80=8B=E5=A5=97=E9=A4=90=E8=AE=BE=E7=BD=AE=EF=BC=9A=E5=8D=95?= =?UTF-8?q?=E4=BB=B7=E5=AD=97=E6=AE=B5=E7=9A=84=E5=80=BC=E6=9C=AA=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E8=8E=B7=E5=8F=96=E9=A1=B9=E7=9B=AE=E5=8D=95=E4=BB=B7?= =?UTF-8?q?=E7=9A=84=E5=80=BC=E5=B9=B6=E5=8F=AF=E7=BC=96=E8=BE=91=20192=20?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E9=A1=B9=E7=9B=AE=E8=AE=BE=E7=BD=AE-?= =?UTF-8?q?=E3=80=8B=E5=A5=97=E9=A4=90=E8=AE=BE=E7=BD=AE=EF=BC=9A=E6=95=B0?= =?UTF-8?q?=E9=87=8F=E5=92=8C=E6=9C=8D=E5=8A=A1=E8=B4=B9=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E7=9A=84=E5=80=BC=E8=A2=AB=E5=8A=A0=E5=87=8F=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E6=8C=A1=E4=BD=8F=E4=BA=86=E7=9C=8B=E4=B8=8D=E8=A7=81=E6=95=B0?= =?UTF-8?q?=E5=80=BC=20193=20=E6=A3=80=E6=9F=A5=E9=A1=B9=E7=9B=AE=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE-=E3=80=8B=E5=A5=97=E9=A4=90=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=EF=BC=9A=E5=A5=97=E9=A4=90=E7=BA=A7=E5=88=AB=E9=80=89=E4=B8=AD?= =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E5=A5=97=E9=A4=90=E6=97=B6=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E6=9C=AA=E8=87=AA=E5=8A=A8=E8=8E=B7=E5=8F=96=E5=BD=93=E5=89=8D?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E8=B4=A6=E5=8F=B7=E5=90=8D=E7=A7=B0=E8=B5=8B?= =?UTF-8?q?=E5=80=BC=E7=BB=99=E7=94=A8=E6=88=B7=E9=80=89=E6=8B=A9=E5=AD=97?= =?UTF-8?q?=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/PackageManagement.vue | 77 ++++++++++++------- .../components/PackageSettings.vue | 44 ++++++----- 2 files changed, 74 insertions(+), 47 deletions(-) diff --git a/openhis-ui-vue3/src/views/maintainSystem/checkprojectSettings/components/PackageManagement.vue b/openhis-ui-vue3/src/views/maintainSystem/checkprojectSettings/components/PackageManagement.vue index 80258c67..549f3285 100644 --- a/openhis-ui-vue3/src/views/maintainSystem/checkprojectSettings/components/PackageManagement.vue +++ b/openhis-ui-vue3/src/views/maintainSystem/checkprojectSettings/components/PackageManagement.vue @@ -54,7 +54,7 @@ v-for="dept in departments" :key="dept.dictValue" :label="dept.dictLabel" - :value="dept.dictLabel" + :value="dept.deptCode || dept.busNoPrefix || dept.rawOrg?.busNo || dept.dictLabel" /> @@ -200,10 +200,57 @@ import {getDicts} from '@/api/system/dict/data' import {listDept} from '@/api/system/dept' import {delCheckPackage, getCheckPackage, listCheckPackage} from '@/api/system/checkType' import request from '@/utils/request' +import useUserStore from '@/store/modules/user' // 定义emit事件 const emit = defineEmits(['switch-to-settings']) +const userStore = useUserStore() + +//删除 +function handleDelete(row) { + const currentUser = userStore.name + console.log('当前用户:', currentUser, '套餐创建者:', row.creator) + //只有创建者本人才能删除(creator为空时不能删除) + if(!row.creator){ + ElMessage.warning('该套餐创建者未知,无法删除') + return + } + if(row.creator !== currentUser){ + ElMessage.warning(`该套餐由"${row.creator}"创建,您没有权限删除`) + return + } + + ElMessageBox.confirm( + `确认删除套餐ID:${row.id} - ${row.packageName} 吗?删除后将无法恢复`, + '确认删除', + { + confirmButtonText:'确定删除', + cancelButtonText:'取消', + type: 'warning', + buttonSize:'default' + } + ).then(async () => { + try{const response = await delCheckPackage(row.id) + + if(response && response.code === 200 || response.code === 0){ + ElMessage.success('删除成功') + handleQuery() + }else{ + ElMessage.error(response?.msg || response?.message || '删除失败') + } + }catch(error){ + console.error('删除失败:',error) + const errorMsg = error?.response?.data?.msg || error?.message || '' + if(errorMsg.includes('foreign key') || errorMsg.includes('violates foreign key')){ + ElMessage.warning('该套餐已被使用,无法删除') + }else{ + ElMessage.error('删除失败:'+(error.message || '未知错误')) + } + } + }).catch(() => {}) +} + // 查询参数 const queryParams = reactive({ pageNo: 1, @@ -541,33 +588,7 @@ async function handleView(row) { } } -// 删除 -function handleDelete(row) { - ElMessageBox.confirm( - `确认删除套餐ID:${row.id} - ${row.packageName}吗?删除后将无法恢复!`, - '删除确认', - { - confirmButtonText: '确定删除', - cancelButtonText: '取消', - type: 'warning', - buttonSize: 'default' - } - ).then(async () => { - try { - const response = await delCheckPackage(row.id) - - if (response && (response.code === 200 || response.code === 0)) { - ElMessage.success('删除成功') - handleQuery() - } else { - ElMessage.error(response?.msg || response?.message || '删除失败') - } - } catch (error) { - console.error('删除失败:', error) - ElMessage.error('删除失败: ' + (error.message || '未知错误')) - } - }).catch(() => {}) -} +// 查询参数