|
|
@@ -1,5 +1,4 @@
|
|
|
import type {
|
|
|
- DosageForm,
|
|
|
HospitalPreparationDTO,
|
|
|
HospitalPreparationSubmitVO,
|
|
|
HospitalPreparationVO,
|
|
|
@@ -17,7 +16,7 @@ import {
|
|
|
} from './hospital-preparation.schema';
|
|
|
|
|
|
/** 后端接口就绪后改为 false */
|
|
|
-export const USE_HOSPITAL_PREPARATION_MOCK = true;
|
|
|
+export const USE_HOSPITAL_PREPARATION_MOCK = false;
|
|
|
|
|
|
type MethodLike<T> = PromiseLike<T> & {
|
|
|
send?: (force?: boolean) => PromiseLike<T>;
|
|
|
@@ -31,63 +30,63 @@ const SEED_RECORDS: Omit<
|
|
|
'createTime' | 'id' | 'personalStudioId' | 'updateTime'
|
|
|
>[] = [
|
|
|
{
|
|
|
- preparationNumber: 'YN2023001',
|
|
|
+ code: 'YN2023001',
|
|
|
name: '健脾和胃颗粒',
|
|
|
- dosageForm: 'granules',
|
|
|
- mainIngredients: '党参、白术、茯苓、甘草等',
|
|
|
- indications: '用于脾胃虚弱,食少便溏',
|
|
|
- approvalDate: '2023-06-15',
|
|
|
- status: true,
|
|
|
+ type: '0',
|
|
|
+ mainIngredient: '党参、白术、茯苓、甘草等',
|
|
|
+ indication: '用于脾胃虚弱,食少便溏',
|
|
|
+ approvalTime: '2023-06-15T00:00:00',
|
|
|
+ status: '0',
|
|
|
fileUrl: MOCK_PDF_URL,
|
|
|
},
|
|
|
{
|
|
|
- preparationNumber: 'YN2024002',
|
|
|
+ code: 'YN2024002',
|
|
|
name: '清肝明目丸',
|
|
|
- dosageForm: 'pills',
|
|
|
- mainIngredients: '菊花、决明子、枸杞子、熟地黄等',
|
|
|
- indications: '用于肝火上炎,目赤肿痛',
|
|
|
- approvalDate: '2024-03-20',
|
|
|
- status: true,
|
|
|
+ type: '1',
|
|
|
+ mainIngredient: '菊花、决明子、枸杞子、熟地黄等',
|
|
|
+ indication: '用于肝火上炎,目赤肿痛',
|
|
|
+ approvalTime: '2024-03-20T00:00:00',
|
|
|
+ status: '0',
|
|
|
fileUrl: MOCK_PDF_URL,
|
|
|
},
|
|
|
{
|
|
|
- preparationNumber: 'YN2022003',
|
|
|
+ code: 'YN2022003',
|
|
|
name: '止咳化痰口服液',
|
|
|
- dosageForm: 'oral_liquid',
|
|
|
- mainIngredients: '川贝、枇杷叶、桔梗、甘草等',
|
|
|
- indications: '用于咳嗽痰多,胸闷气促',
|
|
|
- approvalDate: '2022-11-10',
|
|
|
- status: false,
|
|
|
+ type: '2',
|
|
|
+ mainIngredient: '川贝、枇杷叶、桔梗、甘草等',
|
|
|
+ indication: '用于咳嗽痰多,胸闷气促',
|
|
|
+ approvalTime: '2022-11-10T00:00:00',
|
|
|
+ status: '1',
|
|
|
fileUrl: MOCK_PDF_URL,
|
|
|
},
|
|
|
{
|
|
|
- preparationNumber: 'YN2023004',
|
|
|
+ code: 'YN2023004',
|
|
|
name: '温阳散寒汤',
|
|
|
- dosageForm: 'decoction',
|
|
|
- mainIngredients: '附子、干姜、肉桂、甘草等',
|
|
|
- indications: '用于阳虚寒凝,四肢不温',
|
|
|
- approvalDate: '2023-09-08',
|
|
|
- status: true,
|
|
|
+ type: '3',
|
|
|
+ mainIngredient: '附子、干姜、肉桂、甘草等',
|
|
|
+ indication: '用于阳虚寒凝,四肢不温',
|
|
|
+ approvalTime: '2023-09-08T00:00:00',
|
|
|
+ status: '0',
|
|
|
fileUrl: MOCK_PDF_URL,
|
|
|
},
|
|
|
{
|
|
|
- preparationNumber: 'YN2024005',
|
|
|
+ code: 'YN2024005',
|
|
|
name: '润肤止痒膏',
|
|
|
- dosageForm: 'cream',
|
|
|
- mainIngredients: '苦参、白鲜皮、地肤子、冰片等',
|
|
|
- indications: '用于湿疹瘙痒,皮肤干燥',
|
|
|
- approvalDate: '2024-01-12',
|
|
|
- status: true,
|
|
|
+ type: '4',
|
|
|
+ mainIngredient: '苦参、白鲜皮、地肤子、冰片等',
|
|
|
+ indication: '用于湿疹瘙痒,皮肤干燥',
|
|
|
+ approvalTime: '2024-01-12T00:00:00',
|
|
|
+ status: '0',
|
|
|
fileUrl: MOCK_PDF_URL,
|
|
|
},
|
|
|
{
|
|
|
- preparationNumber: 'YN2023006',
|
|
|
+ code: 'YN2023006',
|
|
|
name: '益气复脉颗粒',
|
|
|
- dosageForm: 'granules',
|
|
|
- mainIngredients: '黄芪、党参、麦冬、五味子',
|
|
|
- indications: '用于气阴两虚,心悸气短',
|
|
|
- approvalDate: '2023-04-22',
|
|
|
- status: false,
|
|
|
+ type: '0',
|
|
|
+ mainIngredient: '黄芪、党参、麦冬、五味子',
|
|
|
+ indication: '用于气阴两虚,心悸气短',
|
|
|
+ approvalTime: '2023-04-22T00:00:00',
|
|
|
+ status: '1',
|
|
|
fileUrl: MOCK_PDF_URL,
|
|
|
},
|
|
|
];
|
|
|
@@ -104,8 +103,8 @@ function createInitialStore(): HospitalPreparationDTO[] {
|
|
|
...seed,
|
|
|
id: String(index + 1),
|
|
|
personalStudioId: '327477138296832',
|
|
|
- preparationNumber: `YN${year}${String(index + 1).padStart(3, '0')}`,
|
|
|
- approvalDate: `${year}-${month}-${day}`,
|
|
|
+ code: `YN${year}${String(index + 1).padStart(3, '0')}`,
|
|
|
+ approvalTime: `${year}-${month}-${day}T00:00:00`,
|
|
|
createTime: `2026-${month}-${day}T10:00:00`,
|
|
|
updateTime: `2026-05-${day}T10:00:00`,
|
|
|
});
|
|
|
@@ -129,9 +128,9 @@ function matchKeyword(record: HospitalPreparationDTO, keyword?: string) {
|
|
|
if (!keyword) return true;
|
|
|
const text = [
|
|
|
record.name,
|
|
|
- record.preparationNumber,
|
|
|
- record.mainIngredients,
|
|
|
- record.indications,
|
|
|
+ record.code,
|
|
|
+ record.mainIngredient,
|
|
|
+ record.indication,
|
|
|
]
|
|
|
.filter(Boolean)
|
|
|
.join(' ');
|
|
|
@@ -143,15 +142,12 @@ function matchWorkroom(record: HospitalPreparationDTO, workroomId?: string) {
|
|
|
return String(record.personalStudioId ?? '') === String(workroomId);
|
|
|
}
|
|
|
|
|
|
-function matchDosageForm(
|
|
|
- record: HospitalPreparationDTO,
|
|
|
- dosageForm?: DosageForm,
|
|
|
-) {
|
|
|
- if (!dosageForm) return true;
|
|
|
- return record.dosageForm === dosageForm;
|
|
|
+function matchDosageForm(record: HospitalPreparationDTO, type?: string) {
|
|
|
+ if (!type) return true;
|
|
|
+ return record.type === type;
|
|
|
}
|
|
|
|
|
|
-function matchStatus(record: HospitalPreparationDTO, status?: boolean) {
|
|
|
+function matchStatus(record: HospitalPreparationDTO, status?: string) {
|
|
|
if (status === undefined) return true;
|
|
|
return record.status === status;
|
|
|
}
|
|
|
@@ -171,14 +167,14 @@ export function mockListHospitalPreparationMethod(
|
|
|
const pageSize = Number(params.pageSize ?? 10);
|
|
|
const keyword = data.mixture;
|
|
|
const workroomId = data.personalStudioId?.toString();
|
|
|
- const dosageForm = data.dosageForm;
|
|
|
+ const type = data.type;
|
|
|
const status = data.status;
|
|
|
|
|
|
const filtered = store.filter(
|
|
|
(record) =>
|
|
|
matchKeyword(record, keyword) &&
|
|
|
matchWorkroom(record, workroomId) &&
|
|
|
- matchDosageForm(record, dosageForm) &&
|
|
|
+ matchDosageForm(record, type) &&
|
|
|
matchStatus(record, status),
|
|
|
);
|
|
|
const start = (pageNum - 1) * pageSize;
|