Переглянути джерело

fix:修复劳防用品采购申请审核问题

sunqijun 1 місяць тому
батько
коміт
fe70640dcd

+ 1 - 1
src/api/production-safety/personal-protective-equipment-purchase-apply.ts

@@ -135,7 +135,7 @@ export function deletePurchaseApply(id: number) {
 /** 审批信息项 */
 export interface ApprovalInfoItem {
   approvalOrder?: number;
-  approverIdList?: string; // "1002,1003"
+  approverIdList?: number[];
 }
 
 /** 编辑/提交请求体 SavePpePurchaseApplyReq */

+ 36 - 28
src/views/production-safety/risk-identification-and-control/labor-products-purchase-apply-manage-admin/components/detail.vue

@@ -689,15 +689,15 @@
       return;
     }
     // showApproverDialog.value = true;
-    const payload = buildSubmitPayload({
-      templateId: form.approvalTemplateId,
-    });
-    await saveThePurchaseRequest(payload).then((res) => {
-      ElMessage.success('提交成功');
-      if(isCreateMode.value){
-        planId.value = res || undefined;
-      }
-    });
+    // const payload = buildSubmitPayload({
+    //   templateId: form.approvalTemplateId,
+    // });
+    // await saveThePurchaseRequest(payload).then((res) => {
+    //   ElMessage.success('提交成功');
+    //   if(isCreateMode.value){
+    //     planId.value = res || undefined;
+    //   }
+    // });
 
     await getApprovalNode(form.approvalTemplateId);
     basicDialogRef.value.openDialog();
@@ -709,7 +709,7 @@
     const valid = await approverFormRef.value?.validate().catch(() => false);
     if (!valid) return;
     const approvalInfoList: ApprovalInfoItem[] = [
-      { approvalOrder: 1, approverIdList: String(approverForm.approverId) },
+      { approvalOrder: 1, approverIdList: approverForm.approverId ? [approverForm.approverId] : [] },
     ];
     const payload = buildSubmitPayload({
       approvalInfoList,
@@ -812,26 +812,34 @@
   const handleSubmitApproval = () => {
     approvalFormRef.value.validate(async (valid: boolean) => {
       if (valid) {
-        // 构造后端需要的数据格式
-        const approvalData = {
-          id: planId.value!,
+        const approvalInfoList: ApprovalInfoItem[] = approvalNodeList.value.map((node) => {
+          let approverIds: number[] = [];
+          if (node.approverType === APPROVER_TYPE.FIX) {
+            approverIds = node.approverInfoList.map((info) => info.approverId);
+          } else {
+            approverIds = approvalForm.approvers[node.id] || [];
+          }
+          return {
+            approvalOrder: node.approvalOrder,
+            approverIdList: approverIds,
+          };
+        });
+        const payload = buildSubmitPayload({
           templateId: form.approvalTemplateId,
           approvalDescription: approvalForm.description,
-          approvalInfoList: approvalNodeList.value.map((node) => {
-            let approverIdList: number[] = [];
-            if (node.approverType === APPROVER_TYPE.FIX) {
-              approverIdList = node.approverInfoList.map((info) => info.approverId);
-            } else if (approvalForm.approvers[node.id]) {
-              approverIdList = approvalForm.approvers[node.id];
-            }
-            return {
-              approvalOrder: node.approvalOrder,
-              approverIdList,
-            };
-          }),
-        };
-        await submitApprovalProcess(approvalData);
-        ElMessage.success('提交成功');
+          approvalInfoList,
+        });
+        if(isCreateMode.value){
+          await saveThePurchaseRequest(payload);
+          ElMessage.success('提交成功');
+        }else{
+          const payload = buildSubmitPayload({
+            approvalInfoList,
+            approvalDescription: '',
+            templateId: form.approvalTemplateId,
+          });
+          await doSubmit(payload);
+        }
         basicDialogRef.value.closeDialog();
         router.back();
       }

+ 38 - 40
src/views/production-safety/risk-identification-and-control/labor-products-purchase-apply-manage/components/detail.vue

@@ -689,15 +689,15 @@
       return;
     }
     // showApproverDialog.value = true;
-    const payload = buildSubmitPayload({
-      templateId: form.approvalTemplateId,
-    });
-    await saveThePurchaseRequest(payload).then((res) => {
-      ElMessage.success('提交成功');
-      if(isCreateMode.value){
-        planId.value = res || undefined;
-      }
-    });
+    // const payload = buildSubmitPayload({
+    //   templateId: form.approvalTemplateId,
+    // });
+    // await saveThePurchaseRequest(payload).then((res) => {
+    //   ElMessage.success('提交成功');
+    //   if(isCreateMode.value){
+    //     planId.value = res || undefined;
+    //   }
+    // });
 
     await getApprovalNode(form.approvalTemplateId);
     basicDialogRef.value.openDialog();
@@ -709,7 +709,7 @@
     const valid = await approverFormRef.value?.validate().catch(() => false);
     if (!valid) return;
     const approvalInfoList: ApprovalInfoItem[] = [
-      { approvalOrder: 1, approverIdList: String(approverForm.approverId) },
+      { approvalOrder: 1, approverIdList: approverForm.approverId ? [approverForm.approverId] : [] },
     ];
     const payload = buildSubmitPayload({
       approvalInfoList,
@@ -744,19 +744,8 @@
     }
   }
 
-  /** 底部主按钮:新增时弹出选择审核人,编辑时直接保存 */
   async function onPrimaryClick() {
-    if (isCreateMode.value) {
-      await openApproverDialog();
-    } else {
-      const valid = await formRef.value?.validate().catch(() => false);
-      if (!valid) return;
-      if (!form.itemList.length || form.itemList.every((it) => !it.ppeName && !it.equipmentName)) {
-        ElMessage.warning('请至少填写一条劳防用品明细');
-        return;
-      }
-      await doSubmit(buildSubmitPayload());
-    }
+    await openApproverDialog();
   }
 
   async function handleAuditPass() {
@@ -810,28 +799,37 @@
   };
 
   const handleSubmitApproval = () => {
+    
     approvalFormRef.value.validate(async (valid: boolean) => {
       if (valid) {
-        // 构造后端需要的数据格式
-        const approvalData = {
-          id: planId.value!,
+        const approvalInfoList: ApprovalInfoItem[] = approvalNodeList.value.map((node) => {
+          let approverIds: number[] = [];
+          if (node.approverType === APPROVER_TYPE.FIX) {
+            approverIds = node.approverInfoList.map((info) => info.approverId);
+          } else {
+            approverIds = approvalForm.approvers[node.id] || [];
+          }
+          return {
+            approvalOrder: node.approvalOrder,
+            approverIdList: approverIds,
+          };
+        });
+        const payload = buildSubmitPayload({
           templateId: form.approvalTemplateId,
           approvalDescription: approvalForm.description,
-          approvalInfoList: approvalNodeList.value.map((node) => {
-            let approverIdList: number[] = [];
-            if (node.approverType === APPROVER_TYPE.FIX) {
-              approverIdList = node.approverInfoList.map((info) => info.approverId);
-            } else if (approvalForm.approvers[node.id]) {
-              approverIdList = approvalForm.approvers[node.id];
-            }
-            return {
-              approvalOrder: node.approvalOrder,
-              approverIdList,
-            };
-          }),
-        };
-        await submitApprovalProcess(approvalData);
-        ElMessage.success('提交成功');
+          approvalInfoList,
+        });
+        if(isCreateMode.value){
+          await saveThePurchaseRequest(payload);
+          ElMessage.success('提交成功');
+        }else{
+          const payload = buildSubmitPayload({
+            approvalInfoList,
+            approvalDescription: '',
+            templateId: form.approvalTemplateId,
+          });
+          await doSubmit(payload);
+        }
         basicDialogRef.value.closeDialog();
         router.back();
       }