diff --git a/admin/src/api/setting/prescription_ai_visibility.ts b/admin/src/api/setting/prescription_ai_visibility.ts new file mode 100644 index 000000000..0ed04c953 --- /dev/null +++ b/admin/src/api/setting/prescription_ai_visibility.ts @@ -0,0 +1,49 @@ +import request from '@/utils/request' + +export interface PrescriptionAiVisibilityConfig { + role_ids: number[] + admin_ids: number[] +} + +export interface PrescriptionAiVisibilityOptions { + roles: { id: number; name: string }[] + admins: { id: number; name: string; account: string }[] +} + +export interface PrescriptionAiCapabilities { + agreement_visible: boolean + can_manage_visibility: boolean +} + +// A failed or malformed read must never become an empty policy that can be saved. +function readVisibilityConfig(value: unknown): PrescriptionAiVisibilityConfig { + const config = value as Partial | null + const validIds = (ids: unknown): ids is number[] => + Array.isArray(ids) && ids.every((id) => Number.isSafeInteger(id) && id > 0) + if (!config || !validIds(config.role_ids) || !validIds(config.admin_ids)) { + throw new Error('可见范围配置响应格式不正确') + } + return { role_ids: [...config.role_ids], admin_ids: [...config.admin_ids] } +} + +export async function getPrescriptionAiVisibilityConfig() { + const data = await request.get({ url: '/tcm.prescriptionAi/getVisibilityConfig' }) + return readVisibilityConfig(data) +} + +export async function setPrescriptionAiVisibilityConfig(params: PrescriptionAiVisibilityConfig) { + const data = await request.post({ url: '/tcm.prescriptionAi/setVisibilityConfig', params }) + return readVisibilityConfig(data) +} + +export function getPrescriptionAiVisibilityOptions() { + return request.get({ + url: '/tcm.prescriptionAi/visibilityOptions' + }) as Promise +} + +export function getPrescriptionAiCapabilities() { + return request.get({ + url: '/tcm.prescriptionAi/capabilities' + }) as Promise +} diff --git a/admin/src/api/tcm.ts b/admin/src/api/tcm.ts index 67c836b24..5a70075eb 100644 --- a/admin/src/api/tcm.ts +++ b/admin/src/api/tcm.ts @@ -490,8 +490,10 @@ export function prescriptionOrderPatchPrescriptionUsage(params: { times_per_day: number usage_days: number medication_days: number + dosage_bag_count?: number aux_times_per_day?: number aux_usage_days?: number + aux_dosage_bag_count?: number }) { return request.post({ url: '/tcm.prescriptionOrder/patchPrescriptionUsage', params }) } diff --git a/admin/src/views/consumer/prescription/components/PrescriptionOrderDetailDrawer.vue b/admin/src/views/consumer/prescription/components/PrescriptionOrderDetailDrawer.vue index d6a5e0b5a..27fae4ce4 100644 --- a/admin/src/views/consumer/prescription/components/PrescriptionOrderDetailDrawer.vue +++ b/admin/src/views/consumer/prescription/components/PrescriptionOrderDetailDrawer.vue @@ -312,6 +312,17 @@ {{ detailPrescription.dosage_amount }}{{ detailPrescription.dosage_unit || 'g' }} ({{ detailPrescription.need_decoction ? '代煎' : '不代煎' }}) @@ -325,6 +336,17 @@ {{ detailAuxUsage.dosage_amount }}{{ detailPrescription.dosage_unit || 'g' }} ({{ detailAuxUsage.need_decoction ? '代煎' : '不代煎' }}) @@ -943,6 +965,15 @@ label-width="108px" >
主方
+ + + + +