Prechádzať zdrojové kódy

perf(views): 优化“识别协议”步骤的逻辑

1. 重新识别时调用重新配置的接口以删除旧协议,并上传新协议
wangcong 3 mesiacov pred
rodič
commit
a33f38600e

+ 15 - 0
src/api/index.ts

@@ -365,6 +365,21 @@ export const uploadUserProtocol = async (protocolType: string, file: Blob) => {
   return data;
 };
 
+export const reUploadUserProtocol = async (protocolType: string, id: number, file: Blob) => {
+  const formData = new FormData();
+  formData.append('file', file);
+
+  const data = await request<Pick<ProtocolBaseInfo, 'id' | 'protocolName' | 'protocolType'>>(
+    apiBiz('/protocolBaseInfo/resetConfiguration/', { protocolType, id }),
+    {
+      method: 'POST',
+      body: formData,
+    },
+  );
+
+  return data;
+};
+
 export const downloadUserProtocol = async (protocolType: string, protocolName: string) => {
   const blob = await request<Blob>(
     apiBiz('/protocolBaseInfo/downloadUserProtocol/', {

+ 1 - 1
src/views/setup-protocol/SetupProtocol.vue

@@ -25,7 +25,7 @@ const steps = ref<UseGuideStepItem[]>([
 const setupProtocolForm = reactive<SetupProtocolForm>({
   protocolType: undefined,
   protocolInfo: {
-    id: 37,
+    id: undefined,
     protocolName: '',
     protocolType: undefined,
     deviceType: undefined,

+ 12 - 4
src/views/setup-protocol/WaitingRecognition.vue

@@ -2,7 +2,7 @@
 import { onMounted, ref } from 'vue';
 import { message } from 'ant-design-vue';
 
-import { uploadUserProtocol } from '@/api';
+import { reUploadUserProtocol, uploadUserProtocol } from '@/api';
 import { waitTime } from '@/utils';
 
 import type { SetupProtocolForm, UseGuideStepItemProps } from '@/types';
@@ -18,10 +18,18 @@ onMounted(async () => {
   currentPercent.value = 100;
 
   try {
-    const { protocolType, protocolFile } = props.form;
+    const { protocolType, protocolFile, protocolInfo } = props.form;
     const file = protocolFile?.[0].originFileObj;
-    const data = await uploadUserProtocol(protocolType as string, file as File);
-    Object.assign(props.form.protocolInfo, data);
+    let data;
+
+    if (protocolInfo.id) {
+      // 若协议 id 存在,则此前已经上传过该协议,故调用重新配置的接口以删除旧协议,并上传新协议
+      data = await reUploadUserProtocol(protocolType as string, protocolInfo.id, file as File);
+    } else {
+      data = await uploadUserProtocol(protocolType as string, file as File);
+    }
+
+    Object.assign(protocolInfo, data);
     props.goToStep(props.stepIndex + 1);
   } catch (err) {
     props.goToStep(props.stepIndex - 1);