Explorar el Código

perf(views): 优化“创建协议”步骤导出协议的逻辑

wangcong hace 1 mes
padre
commit
e270755b2e

+ 15 - 6
src/views/setup-protocol/CreateProtocol.vue

@@ -14,16 +14,25 @@ import type { SetupProtocolForm, UseGuideStepItemExpose, UseGuideStepItemProps }
 const props = defineProps<UseGuideStepItemProps<SetupProtocolForm>>();
 
 const { handleRequest } = useRequest();
-const fileName = '';
 
 const exportData = () => {
   handleRequest(async () => {
-    const { id } = props.form.protocolInfo;
-    if (id) {
-      const file = await downloadUserProtocol(id);
-      downloadBlob(file, fileName);
-      message.success(t('setupProtocol.downloadProtocolSuccessful', { name: fileName }));
+    await protocolContentRef.value?.validateProtocolInfo();
+    await protocolContentRef.value?.isAtLeastOneParam();
+
+    if (props.form.protocolInfo.id) {
+      await updateProtocolBaseInfo(props.form.protocolInfo);
+    } else {
+      props.form.protocolInfo.id = await addProtocolBaseInfo(props.form.protocolInfo);
+      await protocolContentRef.value?.submitLocalParams();
+      protocolContentRef.value?.getCurrentProtocolParams();
     }
+
+    const { id, protocolType, protocolName } = props.form.protocolInfo;
+    const fileName = `${protocolType} - ${protocolName}.xlsx`;
+    const file = await downloadUserProtocol(id);
+    downloadBlob(file, fileName);
+    message.success(t('setupProtocol.downloadProtocolSuccessful', { name: fileName }));
   });
 };
 

+ 1 - 0
src/views/setup-protocol/ProtocolContent.vue

@@ -456,6 +456,7 @@ defineExpose({
   validateProtocolInfo,
   isAtLeastOneParam,
   submitLocalParams,
+  getCurrentProtocolParams,
 });
 </script>