This commit is contained in:
Your Name
2026-03-27 18:06:12 +08:00
parent 9160c36735
commit 099bc1dd22
645 changed files with 276473 additions and 957 deletions
+1 -1
View File
@@ -178,7 +178,7 @@
</el-form-item>
<!-- 医生状态 -->
<el-form-item label="医生状态">
<el-form-item label="状态">
<el-switch v-model="formData.disable" :active-value="0" :inactive-value="1" />
<span class="ml-2 text-gray-500">{{ formData.disable === 0 ? '启用' : '禁用' }}</span>
</el-form-item>
+1 -1
View File
@@ -217,7 +217,7 @@
</el-form-item>
<!-- 医生状态 -->
<el-form-item label="医生状态">
<el-form-item label="状态">
<el-switch v-model="formData.disable" :active-value="0" :inactive-value="1" />
<span class="ml-2 text-gray-500">{{ formData.disable === 0 ? '启用' : '禁用' }}</span>
</el-form-item>
+42 -10
View File
@@ -26,7 +26,7 @@
</el-card>
<el-card v-loading="pager.loading" class="mt-4 !border-none" shadow="never">
<el-button type="primary" @click="handleAdd">
<el-button type="primary" @click="handleAdd" v-perms="['wcf.prescription/add']">
<template #icon>
<icon name="el-icon-Plus" />
</template>
@@ -61,13 +61,25 @@
<el-table-column label="创建时间" prop="create_time" min-width="160" />
<el-table-column label="操作" width="180" fixed="right">
<template #default="{ row }">
<el-button type="primary" link @click="handleView(row)">
<el-button type="primary" link @click="handleView(row)" v-perms="['wcf.prescription/read']">
查看
</el-button>
<el-button type="primary" link @click="handleEdit(row)">
<el-button
v-if="canEditPrescription(row)"
type="primary"
link
@click="handleEdit(row)"
v-perms="['wcf.prescription/edit']"
>
编辑
</el-button>
<el-button type="danger" link @click="handleDelete(row.id)">
<el-button
v-if="canDeletePrescription(row)"
type="danger"
link
@click="handleDelete(row.id)"
v-perms="['wcf.prescription/delete']"
>
删除
</el-button>
</template>
@@ -115,13 +127,9 @@
</el-button>
<el-table :data="editForm.herbs" class="mt-2" border>
<el-table-column label="序号" type="index" width="60" />
<el-table-column label="药材名称" min-width="200">
<el-table-column label="药材名称" min-width="220">
<template #default="{ row }">
<el-input
v-model="row.name"
placeholder="请输入药材名称"
:disabled="editMode === 'view'"
/>
<MedicineNameSelect v-model="row.name" :disabled="editMode === 'view'" />
</template>
</el-table-column>
<el-table-column label="剂量(克)" min-width="150">
@@ -184,8 +192,10 @@ import {
prescriptionLibraryDelete
} from '@/api/tcm'
import { usePaging } from '@/hooks/usePaging'
import useUserStore from '@/stores/modules/user'
import feedback from '@/utils/feedback'
import type { FormInstance, FormRules } from 'element-plus'
import MedicineNameSelect from '@/components/medicine-name-select/index.vue'
// 表单数据
const formData = reactive({
@@ -213,11 +223,33 @@ const rules: FormRules = {
]
}
const userStore = useUserStore()
/** 与 server/config/project.php prescription_library_manage_all_roles 保持一致 */
const PRESCRIPTION_MANAGE_ALL_ROLE_IDS = [0, 3]
const { pager, getLists, resetParams, resetPage } = usePaging({
fetchFun: prescriptionLibraryLists,
params: formData
})
const isPrescriptionOwner = (row: { creator_id?: number | string }) =>
Number(row.creator_id) === Number(userStore.userInfo?.id)
/** 超管或管理员角色:可编辑/删除任意处方(与后端 canManageAllPrescriptions 一致) */
const userCanManageAllPrescriptions = () => {
const u = userStore.userInfo
if (!u) return false
if (Number(u.root) === 1) return true
const ids = Array.isArray(u.role_ids) ? u.role_ids.map((n: unknown) => Number(n)) : []
return PRESCRIPTION_MANAGE_ALL_ROLE_IDS.some((rid) => ids.includes(rid))
}
const canEditPrescription = (row: { creator_id?: number | string }) =>
userCanManageAllPrescriptions() || isPrescriptionOwner(row)
const canDeletePrescription = canEditPrescription
// 添加药材
const addHerb = () => {
editForm.herbs.push({