|
|
@@ -12,12 +12,13 @@ import { pageQueryArgsTransform } from '#/request/schema';
|
|
|
|
|
|
import {
|
|
|
decodeNewDrugCertificate,
|
|
|
+ decodeNewDrugType,
|
|
|
encodeNewDrugCertificate,
|
|
|
encodeNewDrugCertificateQuery,
|
|
|
} from './new-drug-certificate.schema';
|
|
|
|
|
|
/** 后端接口就绪后改为 false */
|
|
|
-export const USE_NEW_DRUG_CERTIFICATE_MOCK = true;
|
|
|
+export const USE_NEW_DRUG_CERTIFICATE_MOCK = false;
|
|
|
|
|
|
type MethodLike<T> = PromiseLike<T> & {
|
|
|
send?: (force?: boolean) => PromiseLike<T>;
|
|
|
@@ -31,59 +32,53 @@ const SEED_RECORDS: Omit<
|
|
|
'createTime' | 'id' | 'personalStudioId' | 'updateTime'
|
|
|
>[] = [
|
|
|
{
|
|
|
- approvalNumber: '国药准字Z20050002',
|
|
|
+ approvalCode: '国药准字Z20050002',
|
|
|
name: '复方丹参滴丸',
|
|
|
- drugType: 'tcm',
|
|
|
- applicant: '天津天士力制药股份有限公司',
|
|
|
- approvalDate: '2005-01-10',
|
|
|
- longTerm: true,
|
|
|
+ type: '0',
|
|
|
+ applyCompany: '天津天士力制药股份有限公司',
|
|
|
+ approvalTime: '2005-01-10T00:00:00',
|
|
|
fileUrl: MOCK_PDF_URL,
|
|
|
},
|
|
|
{
|
|
|
- approvalNumber: '国药准字Z20040033',
|
|
|
+ approvalCode: '国药准字Z20040033',
|
|
|
name: '血必净注射液',
|
|
|
- drugType: 'tcm_injection',
|
|
|
- applicant: '天津红日药业股份有限公司',
|
|
|
- approvalDate: '2004-06-18',
|
|
|
- longTerm: true,
|
|
|
+ type: '1',
|
|
|
+ applyCompany: '天津红日药业股份有限公司',
|
|
|
+ approvalTime: '2004-06-18T00:00:00',
|
|
|
fileUrl: MOCK_PDF_URL,
|
|
|
},
|
|
|
{
|
|
|
- approvalNumber: '国药准字Z20030139',
|
|
|
+ approvalCode: '国药准字Z20030139',
|
|
|
name: '参麦注射液',
|
|
|
- drugType: 'tcm_injection',
|
|
|
- applicant: '正大青春宝药业有限公司',
|
|
|
- approvalDate: '2003-09-25',
|
|
|
- validUntil: '2028-09-25',
|
|
|
- longTerm: false,
|
|
|
+ type: '1',
|
|
|
+ applyCompany: '正大青春宝药业有限公司',
|
|
|
+ approvalTime: '2003-09-25T00:00:00',
|
|
|
+ expirationTime: '2028-09-25T00:00:00',
|
|
|
fileUrl: MOCK_PDF_URL,
|
|
|
},
|
|
|
{
|
|
|
- approvalNumber: '国药准字H20123456',
|
|
|
+ approvalCode: '国药准字H20123456',
|
|
|
name: '阿莫西林胶囊',
|
|
|
- drugType: 'chemical',
|
|
|
- applicant: '华北制药股份有限公司',
|
|
|
- approvalDate: '2012-05-20',
|
|
|
- validUntil: '2027-05-20',
|
|
|
- longTerm: false,
|
|
|
+ type: '2',
|
|
|
+ applyCompany: '华北制药股份有限公司',
|
|
|
+ approvalTime: '2012-05-20T00:00:00',
|
|
|
+ expirationTime: '2027-05-20T00:00:00',
|
|
|
fileUrl: MOCK_PDF_URL,
|
|
|
},
|
|
|
{
|
|
|
- approvalNumber: '国药准字S20210001',
|
|
|
+ approvalCode: '国药准字S20210001',
|
|
|
name: '重组人胰岛素注射液',
|
|
|
- drugType: 'biological',
|
|
|
- applicant: '通化东宝药业股份有限公司',
|
|
|
- approvalDate: '2021-03-15',
|
|
|
- longTerm: true,
|
|
|
+ type: '3',
|
|
|
+ applyCompany: '通化东宝药业股份有限公司',
|
|
|
+ approvalTime: '2021-03-15T00:00:00',
|
|
|
fileUrl: MOCK_PDF_URL,
|
|
|
},
|
|
|
{
|
|
|
- approvalNumber: '国药准字Z20190088',
|
|
|
+ approvalCode: '国药准字Z20190088',
|
|
|
name: '连花清瘟胶囊',
|
|
|
- drugType: 'tcm',
|
|
|
- applicant: '石家庄以岭药业股份有限公司',
|
|
|
- approvalDate: '2019-11-08',
|
|
|
- longTerm: true,
|
|
|
+ type: '0',
|
|
|
+ applyCompany: '石家庄以岭药业股份有限公司',
|
|
|
+ approvalTime: '2019-11-08T00:00:00',
|
|
|
fileUrl: MOCK_PDF_URL,
|
|
|
},
|
|
|
];
|
|
|
@@ -118,7 +113,7 @@ function delay<T>(runner: () => Promise<T> | T, ms = 120): MethodLike<T> {
|
|
|
|
|
|
function matchKeyword(record: NewDrugCertificateDTO, keyword?: string) {
|
|
|
if (!keyword) return true;
|
|
|
- const text = [record.name, record.approvalNumber, record.applicant]
|
|
|
+ const text = [record.name, record.approvalCode, record.applyCompany]
|
|
|
.filter(Boolean)
|
|
|
.join(' ');
|
|
|
return text.includes(keyword);
|
|
|
@@ -131,7 +126,7 @@ function matchWorkroom(record: NewDrugCertificateDTO, workroomId?: string) {
|
|
|
|
|
|
function matchDrugType(record: NewDrugCertificateDTO, drugType?: NewDrugType) {
|
|
|
if (!drugType) return true;
|
|
|
- return record.drugType === drugType;
|
|
|
+ return decodeNewDrugType(record.type) === drugType;
|
|
|
}
|
|
|
|
|
|
function toVo(dto: NewDrugCertificateDTO): NewDrugCertificateVO {
|
|
|
@@ -147,7 +142,9 @@ export function mockListNewDrugCertificateMethod(...args: PageQueryMethodArgs) {
|
|
|
const pageSize = Number(params.pageSize ?? 10);
|
|
|
const keyword = data.mixture;
|
|
|
const workroomId = data.personalStudioId?.toString();
|
|
|
- const drugType = data.drugType;
|
|
|
+ const drugType = data.type
|
|
|
+ ? decodeNewDrugType(data.type as string)
|
|
|
+ : undefined;
|
|
|
|
|
|
const filtered = store.filter(
|
|
|
(record) =>
|