Bladeren bron

重置表单,保存后清除接口缓存

cc12458 1 maand geleden
bovenliggende
commit
b1ab9e52d7

+ 1 - 0
.gitignore

@@ -33,3 +33,4 @@ auto-imports.d.ts
 components.d.ts
 
 .env.**.local
+six-**.zip

+ 9 - 33
src/api/pda.api.ts

@@ -5,11 +5,11 @@ import { requestMethodFactory } from '@/platform/request.ts';
 import type { DecoctionModel, PackModel, SoakModel, StepModel } from '@/model/step.model.ts';
 import { fromDecoctionModel, fromPackModel, fromSoakModel } from '@/model/step.model.ts';
 
-export function getDataMethod(no: string) {
+export function getDataMethod(no: string, mode?: string) {
   return requestMethodFactory(
     PharmacyHttpClient.Get<StepModel, ResponseData>(`/web/pda/detailInfo`, {
       params: {
-        orderNo: no,
+        mode, orderNo: no,
         /**
          * @deprecated 历史遗留
          */
@@ -88,10 +88,6 @@ export function getDataMethod(no: string) {
   );
 }
 
-export function setDataMethod(url: string, data: ResponseData) {
-  return requestMethodFactory(PharmacyHttpClient.Post(url, data));
-}
-
 /**
  * 调配节点保存
  * @param data
@@ -109,16 +105,11 @@ export function setDeployRecheckDataMethod(data: ResponseData) {
 }
 
 export function getSoakDataMethod(id: string) {
-  return PharmacyHttpClient.Get<SoakModel, ResponseData>(`/web/pda/steep/${id}`, { transform: fromSoakModel });
+  return PharmacyHttpClient.Get<SoakModel, ResponseData>(`/web/pda/steep/${id}`, { transform: fromSoakModel, hitSource: /^soak/ });
 }
 
 export function setSoakDataMethod(model: Partial<SoakModel>, picture?: string[]) {
-  return requestMethodFactory(
-    PharmacyHttpClient.Put('/web/pda/steep/edit', {
-      ...model,
-      image: picture?.join(',') ?? '',
-    }),
-  );
+  return requestMethodFactory(PharmacyHttpClient.Put('/web/pda/steep/edit', { ...model, image: picture?.join(',') ?? '' }, { name: 'soak-edit' }));
 }
 
 /**
@@ -126,7 +117,7 @@ export function setSoakDataMethod(model: Partial<SoakModel>, picture?: string[])
  * @param id
  */
 export function getDecoctionDataMethod(id: string) {
-  return PharmacyHttpClient.Get<DecoctionModel, ResponseData>(`/web/pda/decoct/${id}`, { transform: fromDecoctionModel });
+  return PharmacyHttpClient.Get<DecoctionModel, ResponseData>(`/web/pda/decoct/${id}`, { transform: fromDecoctionModel, hitSource: /^decoction/ });
 }
 
 /**
@@ -135,12 +126,7 @@ export function getDecoctionDataMethod(id: string) {
  * @param picture
  */
 export function setDecoctionDataMethod(model: Partial<DecoctionModel>, picture?: string[]) {
-  return requestMethodFactory(
-    PharmacyHttpClient.Put('/web/pda/decoct/edit', {
-      ...model,
-      image: picture?.join(',') ?? '',
-    }),
-  );
+  return requestMethodFactory(PharmacyHttpClient.Put('/web/pda/decoct/edit', { ...model, image: picture?.join(',') ?? '' }, { name: 'decoction-edit' }));
 }
 
 /**
@@ -148,7 +134,7 @@ export function setDecoctionDataMethod(model: Partial<DecoctionModel>, picture?:
  * @param id
  */
 export function getPackDataMethod(id: string) {
-  return PharmacyHttpClient.Get<PackModel, ResponseData>(`/web/pda/Pack/${id}`, { transform: fromPackModel });
+  return PharmacyHttpClient.Get<PackModel, ResponseData>(`/web/pda/Pack/${id}`, { transform: fromPackModel, hitSource: /^pack/ });
 }
 
 /**
@@ -157,12 +143,7 @@ export function getPackDataMethod(id: string) {
  * @param picture
  */
 export function setPackDataMethod(model: Partial<PackModel>, picture?: string[]) {
-  return requestMethodFactory(
-    PharmacyHttpClient.Put('/web/pda/Pack/edit', {
-      ...model,
-      image: picture?.join(',') ?? '',
-    }),
-  );
+  return requestMethodFactory(PharmacyHttpClient.Put('/web/pda/Pack/edit', { ...model, image: picture?.join(',') ?? '' }, { name: 'pack-edit' }));
 }
 
 /**
@@ -171,10 +152,5 @@ export function setPackDataMethod(model: Partial<PackModel>, picture?: string[])
  * @param picture
  */
 export function setPackRecheckDataMethod(model: Partial<PackModel>, picture?: string[]) {
-  return requestMethodFactory(
-    PharmacyHttpClient.Put('/web/pda/Pack/addPackReview', {
-      ...model,
-      image: picture?.join(',') ?? '',
-    }),
-  );
+  return requestMethodFactory(PharmacyHttpClient.Put('/web/pda/Pack/addPackReview', { ...model, image: picture?.join(',') ?? '' }, { name: 'pack-edit-recheck' }));
 }

+ 2 - 1
src/module/step/StepDecoction.vue

@@ -16,7 +16,7 @@ const { dataset } = storeToRefs(storeStore);
 const {
   loading: submitting,
   form: model,
-  send,
+  send, reset,
 } = useForm(setDecoctionDataMethod, { immediate: false, initialForm: fromDecoctionModel() }).onSuccess(() => {
   showSuccessToast(`操作成功`);
   emits('back');
@@ -38,6 +38,7 @@ defineExpose({
   scan(data: ScanData) {
     model.value.deviceCode = data?.code ?? '';
   },
+  reset,
 });
 </script>
 

+ 5 - 1
src/module/step/StepDeploy.vue

@@ -12,7 +12,7 @@ const storeStore = useStepStore();
 const {
   loading: submitting,
   form: model,
-  send,
+  send, reset,
 } = useForm(
   (model, picture) => {
     const data = Object.assign(
@@ -31,6 +31,10 @@ const {
   showSuccessToast(`操作成功`);
   emits('back');
 });
+
+defineExpose({
+  reset,
+});
 </script>
 
 <template>

+ 5 - 1
src/module/step/StepDeployRecheck.vue

@@ -16,7 +16,7 @@ const storeStore = useStepStore();
 const {
   loading: submitting,
   form: model,
-  send,
+  send, reset,
 } = useForm(
   (model, picture) => {
     const data = Object.assign(
@@ -58,6 +58,10 @@ function submit(picture: string[]) {
     send(picture);
   }
 }
+
+defineExpose({
+  reset,
+});
 </script>
 
 <template>

+ 2 - 1
src/module/step/StepPack.vue

@@ -16,7 +16,7 @@ const { dataset } = storeToRefs(storeStore);
 const {
   loading: submitting,
   form: model,
-  send,
+  send, reset,
 } = useForm(setPackDataMethod, { immediate: false, initialForm: fromPackModel() }).onSuccess(() => {
   showSuccessToast(`操作成功`);
   emits('back');
@@ -38,6 +38,7 @@ defineExpose({
   scan(data: ScanData) {
     model.value.deviceCode = data?.code ?? '';
   },
+  reset,
 });
 </script>
 

+ 5 - 1
src/module/step/StepPackRecheck.vue

@@ -14,7 +14,7 @@ const { dataset } = storeToRefs(storeStore);
 const {
   loading: submitting,
   form: model,
-  send,
+  send, reset,
 } = useForm(setPackRecheckDataMethod, { immediate: false, initialForm: fromPackModel() }).onSuccess(() => {
   showSuccessToast(`操作成功`);
   emits('back');
@@ -45,6 +45,10 @@ function submit(picture: string[]) {
     send(picture);
   }
 }
+
+defineExpose({
+  reset,
+});
 </script>
 
 <template>

+ 2 - 1
src/module/step/StepSoak.vue

@@ -16,7 +16,7 @@ const { dataset } = storeToRefs(storeStore);
 const {
   loading: submitting,
   form: model,
-  send,
+  send, reset,
 } = useForm(setSoakDataMethod, { immediate: false, initialForm: fromSoakModel() }).onSuccess(() => {
   showSuccessToast(`操作成功`);
   emits('back');
@@ -50,6 +50,7 @@ defineExpose({
   scan(data: ScanData) {
     model.value.deviceCode = data?.code ?? '';
   },
+  reset,
 });
 </script>
 

+ 8 - 4
src/pages/StepPage.vue

@@ -21,11 +21,15 @@ watchEffect(() => {
   keyword.value = id.value;
   nextTick(() => {
     tabIndex.value = id.value ? 3 : 0;
-    if (!id.value) stepStore.$reset();
+    if (!id.value) {
+      stepStore.$reset();
+      step.value?.reset?.();
+      files.value = []
+    }
   });
 });
 
-const step = useTemplateRef<{ scan?: (data: ScanData) => void }>('step');
+const step = useTemplateRef<{ scan?: (data: ScanData) => void; reset?: () => void; }>('step');
 
 const { scanValue, scan } = useScan((data) => {
   /* 组件内扫描按钮 */
@@ -50,7 +54,7 @@ const { loading, send: search } = useRequest(getDataMethod, { immediate: false }
 function onSearch() {
   const value = keyword.value?.trim?.();
   if (value) {
-    search(value);
+    search(value, mode.value);
   } else {
     showNotify({ message: '请使用设备按钮进行扫码', type: 'warning' });
   }
@@ -170,7 +174,7 @@ const afterRead: UploaderAfterRead = async (listItem) => {
             <template v-slot:uploader="{ disabled }">
               <van-field label="拍照上传">
                 <template #input>
-                  <van-uploader v-model="files" :after-read="afterRead" :disabled="disabled" />
+                  <van-uploader v-model="files" :after-read="afterRead" :disabled="disabled" capture="camera" />
                 </template>
               </van-field>
             </template>