ソースを参照

Merge branch 'feat/production-safety' of http://14.103.151.10:8888/product-group-fe/sfy-safety-group/sfy-safety into feat/production-safety

sunqijun 1 ヶ月 前
コミット
4ebaae8c28

+ 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();
       }

+ 11 - 7
src/views/production-safety/safetyTrainingAndEducation/employeeTrainingRecordCardManagement/employeeTrainingRecordCardManagementEdit.vue

@@ -63,8 +63,11 @@
               ref="staffImgRef"
               action="#"
               :file-list="staffImgList"
+              :limit="1"
+              :on-exceed="handleImageExceed"
               :disabled="isViewMode"
               :auto-upload="false"
+              :multiple="false"
               accept="image/*"
               :on-change="handleImageUploadChange"
               :on-remove="handlePictureCardDelete"
@@ -208,15 +211,16 @@
   const getDetail = async () => {
     if (!currentId.value) return;
     try {
-      const res = await getEducationStaffTrainingCardDetail(currentId.value);
+      const res: any = await getEducationStaffTrainingCardDetail(currentId.value);
       if (res) {
         Object.assign(form, {
           ...res,
-          deptIdForSelect: parseLastDeptId((res as FormDataType).deptId),
+          deptIdForSelect: parseLastDeptId(res.deptId),
         });
-        if(res.staffImg){
-            form.staffImg = JSON.parse(res.staffImg)
-            staffImgList.value = JSON.parse(res.staffImg) || []
+        if (res.staffImg) {
+          const parsedStaffImg = JSON.parse(res.staffImg);
+          form.staffImg = parsedStaffImg;
+          staffImgList.value = parsedStaffImg || [];
         }
       }
     } catch (e) {
@@ -308,9 +312,9 @@
     }
 
     // 可选:添加文件大小限制
-    const maxSize = 5 * 1024 * 1024; // 5MB
+    const maxSize = 300 * 1024 ; // 5MB
     if (file.size > maxSize) {
-      ElMessage.error('图片大小不能超过5MB');
+      ElMessage.error('图片大小不能超过300K');
       return false;
     }