Эх сурвалжийг харах

fix: 前端 scope_owner_id_list 运算符优先级 + 后端空 ID 跳过

alphah 2 долоо хоног өмнө
parent
commit
b08d8b89a9

+ 3 - 0
backend/app/plugin/module_payment/expense/institution/controller.py

@@ -293,6 +293,9 @@ async def modify_institution_controller(
             valid_ids = [str(i) for i in owner_ids if i is not None and str(i).strip()]
             if valid_ids:
                 scope_info["add_owner_id_list"] = valid_ids
+            else:
+                scope_info = None
+                log.info("适用范围为按员工/按部门但未提供员工/部门ID,跳过 scope 修改")
         # 从请求中移除 scope 数据,避免与基础修改冲突
         data.pop("modify_scope_info", None)
 

+ 5 - 4
frontend/src/views/module_payment/institution/components/InstitutionForm.vue

@@ -464,7 +464,11 @@ async function submitForm() {
         // 适用员工范围
         applicable_scope: formData.applicable_scope,
         scope_owner_type: "PHONE",
-        scope_owner_id_list: formData.employee_ids || formData.department_id ? [formData.department_id] : undefined,
+        scope_owner_id_list: formData.applicable_scope === "employee"
+          ? (formData.employee_ids || [])
+          : formData.applicable_scope === "department" && formData.department_id
+            ? [formData.department_id]
+            : undefined,
         // 额度发放与周期参数
         grant_mode: formData.grant_mode,
         period_type: formData.period_type || "monthly",
@@ -473,9 +477,6 @@ async function submitForm() {
         effective_time_type: formData.effective_time_type || "unlimited",
         expense_type: formData.expense_type,
       };
-      if (formData.applicable_scope === "department" && formData.department_id) {
-        modifyData.scope_owner_id_list = [formData.department_id];
-      }
       await InstitutionAPI.updateInstitution(props.institutionId, modifyData);
     }
     emit("success");