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(() => {}) -} +// 查询参数