Procházet zdrojové kódy

fix(@six/wisdom-legacy): 成果管理 - 诊疗方案页面新增接口对接

cmj před 2 dny
rodič
revize
b1bd492a25

+ 13 - 22
apps/wisdom-legacy/src/api/common/illness.api.ts

@@ -7,11 +7,8 @@ import {
   decodeDisease,
   decodeICD10,
   decodeSymptom,
-  decodeTreatSyn,
-  decodeTreatTherapy,
+  decodeTherapy,
   encodeIllnessQuery,
-  encodeTreatSynQuery,
-  encodeTreatTherapyQuery,
 } from './illness.schema';
 
 export type { IllnessVO } from './illness.schema';
@@ -40,39 +37,33 @@ export function listDiseaseMethod(...args: PageQueryMethodArgs) {
   );
 }
 
+/** 知识库——证型分页查询 */
 export function listSymptomMethod(...args: PageQueryMethodArgs) {
   const { params, data } = pageQueryArgsTransform(args, encodeIllnessQuery);
-  return httpClient.Get(`/wis-pc/knowledge/pageDiagnoseSyndrome`, {
-    params: { ...params, ...data },
-    transform: paginateTransform(decodeSymptom),
-  });
-}
-
-/** 知识库——推荐证型分页查询 */
-export function listTreatSynMethod(...args: PageQueryMethodArgs) {
-  const { params, data } = pageQueryArgsTransform(args, encodeTreatSynQuery);
   return httpClient.Post(
-    `/wis-pc/knowledge/pageDiagnoseSyndrome`, // /knowledge/pageTreatSyn
+    `/wis-pc/knowledge/pageDiagnoseSyndrome`,
     { ...params, ...data },
     {
       params,
-      transform: paginateTransform(decodeTreatSyn),
+      transform: paginateTransform(decodeSymptom),
     },
   );
 }
 
-/** 知识库——推荐治法分页查询 */
+/** 知识库——证型分页查询(别名,兼容旧引用) */
+export function listTreatSynMethod(...args: PageQueryMethodArgs) {
+  return listSymptomMethod(...args);
+}
+
+/** 知识库——治法分页查询 */
 export function listTherapyMethod(...args: PageQueryMethodArgs) {
-  const { params, data } = pageQueryArgsTransform(
-    args,
-    encodeTreatTherapyQuery,
-  );
+  const { params, data } = pageQueryArgsTransform(args, encodeIllnessQuery);
   return httpClient.Post(
-    `/wis-pc/knowledge/pageTreatTherapy`,
+    `/wis-pc/knowledge/pageDiagnoseTherapy`,
     { ...params, ...data },
     {
       params,
-      transform: paginateTransform(decodeTreatTherapy),
+      transform: paginateTransform(decodeTherapy),
     },
   );
 }

+ 17 - 0
apps/wisdom-legacy/src/api/common/illness.schema.ts

@@ -49,6 +49,17 @@ export interface SymptomDTO {
   remarks: string;
 }
 
+export interface TherapyDTO {
+  /** 主键 */
+  id: string;
+  /** 治法名称 */
+  name: string;
+  /** 治法编码 */
+  code: string;
+  /** 备注 */
+  remarks?: string;
+}
+
 /** 推荐证型 / 治法 DTO,对应 `TreatmentDiagnoseVo` */
 export interface TreatmentDiagnoseDTO {
   disId?: string;
@@ -180,6 +191,12 @@ export const decodeSymptom = (dto: SymptomDTO): SymptomVO => ({
   },
 });
 
+export const decodeTherapy = (dto: TherapyDTO): IllnessVO => ({
+  id: dto.id,
+  name: dto.name,
+  code: dto.code,
+});
+
 export const decodeTreatSyn = (dto: TreatmentDiagnoseDTO): IllnessVO => ({
   id: dto.synId ?? '',
   name: dto.synName ?? '',

+ 1 - 2
apps/wisdom-legacy/src/views/outcome/TreatmentPlanList.vue

@@ -23,13 +23,12 @@ const { Grid, Edit, actions, grid } = useGridPage(treatmentPlanGrid, {
   params: { workroomId: () => workroomId.value },
   edit: editModal(TreatmentPlanEdit),
   delete: deleteTreatmentPlanMethod,
-  view: ({ row }: { row: TreatmentPlanVO }) => {
+  view: (row: TreatmentPlanVO) => {
     if (row.pdfUrl) {
       window.open(row.pdfUrl, '_blank');
     } else {
       message.warning('暂无PDF文件');
     }
-    return void 0;
   },
 });
 

+ 17 - 19
apps/wisdom-legacy/src/views/outcome/modules/TreatmentPlanEdit.vue

@@ -125,25 +125,23 @@ function onPdfRemove() {
 
 <template>
   <Shell>
-    <div class="mx-4 max-h-[70vh] overflow-y-auto pr-1">
-      <Form />
-
-      <div class="pb-4">
-        <div class="mb-2 text-sm">诊疗方案文档</div>
-        <UploadDragger
-          v-model:file-list="pdfFileList"
-          :before-upload="beforePdfUpload"
-          :max-count="1"
-          accept=".pdf,application/pdf"
-          @remove="onPdfRemove"
-        >
-          <p class="ant-upload-drag-icon">
-            <InboxOutlined />
-          </p>
-          <p class="ant-upload-text">点击上传或拖拽PDF文件到此处</p>
-          <p class="ant-upload-hint">支持PDF格式</p>
-        </UploadDragger>
-      </div>
+    <Form />
+
+    <div class="pb-4">
+      <div class="mb-2 text-sm">诊疗方案文档</div>
+      <UploadDragger
+        v-model:file-list="pdfFileList"
+        :before-upload="beforePdfUpload"
+        :max-count="1"
+        accept=".pdf,application/pdf"
+        @remove="onPdfRemove"
+      >
+        <p class="ant-upload-drag-icon">
+          <InboxOutlined />
+        </p>
+        <p class="ant-upload-text">点击上传或拖拽PDF文件到此处</p>
+        <p class="ant-upload-hint">支持PDF格式</p>
+      </UploadDragger>
     </div>
   </Shell>
 </template>

+ 3 - 25
apps/wisdom-legacy/src/views/outcome/treatment-plan.data.ts

@@ -6,8 +6,8 @@ import { defineEditShell } from '#/adapter/shell/edit';
 import { defineGrid } from '#/adapter/vxe-table';
 import {
   listDiseaseMethod,
+  listSymptomMethod,
   listTherapyMethod,
-  listTreatSynMethod,
 } from '#/api/common';
 import {
   editTreatmentPlanMethod,
@@ -110,20 +110,13 @@ export const treatmentPlanForm = defineEditShell<TreatmentPlanVO>({
       fieldName: 'syndrome.name',
       label: '证型',
       componentProps: {
-        api: listTreatSynMethod,
+        api: listSymptomMethod,
         fieldNames: { label: 'name', value: 'name' },
         placeholder: '请选择证型',
         getPopupContainer,
       },
       dependencies: {
-        triggerFields: ['disease.name'],
-        componentProps(values) {
-          const disName = values.disease?.name;
-          return {
-            params: disName ? { disName } : {},
-            shouldFetch: (query: Record<string, unknown>) => !!query.disName,
-          };
-        },
+        triggerFields: ['syndrome.name'],
         trigger(_values, formApi) {
           formApi.setFieldValue('therapy.name', undefined);
         },
@@ -139,21 +132,6 @@ export const treatmentPlanForm = defineEditShell<TreatmentPlanVO>({
         placeholder: '请选择治法',
         getPopupContainer,
       },
-      dependencies: {
-        triggerFields: ['disease.name', 'syndrome.name'],
-        componentProps(values) {
-          const disName = values.disease?.name;
-          const synName = values.syndrome?.name;
-          return {
-            params: {
-              ...(disName ? { disName } : {}),
-              ...(synName ? { synName } : {}),
-            },
-            shouldFetch: (query: Record<string, unknown>) =>
-              !!query.disName && !!query.synName,
-          };
-        },
-      },
     },
     {
       component: 'Textarea',