Browse Source

♻️ refactor(salary-management): 优化错误处理和区域选择逻辑

- 移除冗余的try-catch块,简化薪资创建、更新和删除操作的错误处理流程
- 重构handleAreaChange函数,统一将区域ID从字符串转换为数字类型
yourname 1 tuần trước cách đây
mục cha
commit
230ff8f8f2

+ 18 - 24
allin-packages/salary-management-ui/src/components/SalaryManagement.tsx

@@ -92,12 +92,8 @@ const SalaryManagement: React.FC = () => {
       const res = await salaryClientManager.get().create.$post({ json: data });
       if (res.status !== 200) {
         // 尝试从响应中提取错误信息
-        try {
           const errorData = await res.json();
           throw new Error(errorData.message || '创建薪资失败');
-        } catch {
-          throw new Error('创建薪资失败');
-        }
       }
       return await res.json();
     },
@@ -122,12 +118,8 @@ const SalaryManagement: React.FC = () => {
       });
       if (res.status !== 200) {
         // 尝试从响应中提取错误信息
-        try {
-          const errorData = await res.json();
-          throw new Error(errorData.message || '更新薪资失败');
-        } catch {
-          throw new Error('更新薪资失败');
-        }
+        const errorData = await res.json();
+        throw new Error(errorData.message || '更新薪资失败');
       }
       return await res.json();
     },
@@ -147,12 +139,8 @@ const SalaryManagement: React.FC = () => {
       const res = await salaryClientManager.get().delete[':id']['$delete']({ param: { id } });
       if (res.status !== 200) {
         // 尝试从响应中提取错误信息
-        try {
-          const errorData = await res.json();
-          throw new Error(errorData.message || '删除薪资失败');
-        } catch {
-          throw new Error('删除薪资失败');
-        }
+        const errorData = await res.json();
+        throw new Error(errorData.message || '删除薪资失败');
       }
       return await res.json();
     },
@@ -238,16 +226,22 @@ const SalaryManagement: React.FC = () => {
   };
 
   // 处理区域选择变化
-  const handleAreaChange = (value: { provinceId?: number; cityId?: number; districtId?: number }) => {
-    setAreaValue(value);
-    searchForm.setValue('provinceId', value.provinceId);
-    searchForm.setValue('cityId', value.cityId);
-    searchForm.setValue('districtId', value.districtId);
+  const handleAreaChange = (value: { provinceId?: number | string; cityId?: number | string; districtId?: number | string }) => {
+    // 将字符串转换为数字
+    const provinceId = value.provinceId ? Number(value.provinceId) : undefined;
+    const cityId = value.cityId ? Number(value.cityId) : undefined;
+    const districtId = value.districtId ? Number(value.districtId) : undefined;
+
+    const numericValue = { provinceId, cityId, districtId };
+    setAreaValue(numericValue);
+    searchForm.setValue('provinceId', provinceId);
+    searchForm.setValue('cityId', cityId);
+    searchForm.setValue('districtId', districtId);
 
     if (isCreateForm) {
-      createForm.setValue('provinceId', value.provinceId!);
-      createForm.setValue('cityId', value.cityId!);
-      createForm.setValue('districtId', value.districtId);
+      createForm.setValue('provinceId', provinceId!);
+      createForm.setValue('cityId', cityId!);
+      createForm.setValue('districtId', districtId);
     }
   };