Selaa lähdekoodia

```
feat(xsb-manage/free-ship): 添加身份规则配置功能并优化现有规则配置

- 修改注释内容,将"区域规则配置"更新为"身份规则配置"
- 添加fetchCheckUserRule和fetchCheckMemberRule接口用于检查是否存在
- 在提交表单时增加重复数据检查和覆盖确认对话框
- 完善getConfig方法中的数据验证逻辑
- 为省份、身份、会员规则配置添加重复检查和覆盖提示功能
```

wenjie 9 tuntia sitten
vanhempi
commit
ce7bca52fa

+ 22 - 4
src/service/api/xsb-manage/free-ship/index.ts

@@ -101,7 +101,7 @@ export function fetchUserList(params?: any) {
   });
 }
 
-/** 获取区域规则配置 */
+/** 获取身份规则配置 */
 export function fetchUserRule(params?: any) {
   return request({
     url: `/smqjh-oms/v1/freight/userIdentityRule/findList`,
@@ -110,7 +110,7 @@ export function fetchUserRule(params?: any) {
   });
 }
 
-/** 保存区域规则配置 */
+/** 保存身份规则配置 */
 export function fetchSaveUserRule(data?: any) {
   return request({
     url: `/smqjh-oms/v1/freight/userIdentityRule/save`,
@@ -119,7 +119,7 @@ export function fetchSaveUserRule(data?: any) {
   });
 }
 
-/** 编辑区域规则配置 */
+/** 编辑身份规则配置 */
 export function fetchUpdateUserRule(data?: any) {
   return request({
     url: `/smqjh-oms/v1/freight/userIdentityRule/update`,
@@ -128,7 +128,7 @@ export function fetchUpdateUserRule(data?: any) {
   });
 }
 
-/** 删除区域规则配置 */
+/** 删除身份规则配置 */
 export function fetchDelUserRule(params?: any) {
   return request({
     url: `/smqjh-oms/v1/freight/userIdentityRule/delete`,
@@ -155,6 +155,15 @@ export function fetchUserDetail(params: any) {
   });
 }
 
+/** 检查是否存在 */
+export function fetchCheckUserRule(data?: any) {
+  return request({
+    url: `/smqjh-oms/v1/freight/userIdentityRule/check`,
+    method: 'post',
+    data
+  });
+}
+
 //   -------------会员------------
 
 /** 获取会员列表 */
@@ -220,6 +229,15 @@ export function fetchMemberDetail(params: any) {
   });
 }
 
+/** 检查是否存在 */
+export function fetchCheckMemberRule(data?: any) {
+  return request({
+    url: `/smqjh-oms/v1/freight/userMemberRule/check`,
+    method: 'post',
+    data
+  });
+}
+
 //   -------------分类--------------
 
 /** 获取分类列表 */

+ 71 - 1
src/views/xsb-manage/free-ship/index.vue

@@ -6,6 +6,8 @@ import {
   fetchAreaDetail,
   fetchAreaRule,
   fetchCheckAreaRule,
+  fetchCheckMemberRule,
+  fetchCheckUserRule,
   fetchConfig,
   fetchDelAreaRule,
   fetchDelMemberRule,
@@ -536,7 +538,7 @@ async function handleValidateClick(e: MouseEvent) {
 async function getConfig() {
   const res = await fetchConfig();
   console.log(res, 'res');
-  if (!res.error) {
+  if (!res.error && res.data) {
     config.value = res.data;
   }
 }
@@ -558,6 +560,26 @@ async function handleSubmit() {
   } else {
     const { error } = await fetchCheckAreaRule(form);
     if (error) {
+      // 确认逻辑待实现
+      window.$dialog?.info({
+        title: '提示',
+        content: '已存在该省份数据,是否覆盖?',
+        positiveText: '确定',
+        negativeText: '取消',
+        onPositiveClick: async () => {
+          // 新增
+          fetchSaveAreaRule(form).then(res => {
+            if (!res.error) {
+              message.success('新增成功');
+              closeModalForm();
+              refresh();
+            }
+          });
+        },
+        onNegativeClick: () => {
+          setSubLoading(false);
+        }
+      });
       return;
     }
     // 新增
@@ -590,6 +612,30 @@ async function handleUserSubmit() {
       }
     });
   } else {
+    const { error } = await fetchCheckUserRule(form);
+    if (error) {
+      // 确认逻辑待实现
+      window.$dialog?.info({
+        title: '提示',
+        content: '已存在该身份数据,是否覆盖?',
+        positiveText: '确定',
+        negativeText: '取消',
+        onPositiveClick: async () => {
+          // 新增
+          fetchSaveUserRule(form).then(res => {
+            if (!res.error) {
+              message.success('新增成功');
+              closeUserModal();
+              refreshUser();
+            }
+          });
+        },
+        onNegativeClick: () => {
+          setUserSubLoading(false);
+        }
+      });
+      return;
+    }
     // 新增
     fetchSaveUserRule(form).then(res => {
       if (!res.error) {
@@ -659,6 +705,30 @@ async function handleMemberSubmit() {
       }
     });
   } else {
+    const { error } = await fetchCheckMemberRule(form);
+    if (error) {
+      // 确认逻辑待实现
+      window.$dialog?.info({
+        title: '提示',
+        content: '已存在该身份数据,是否覆盖?',
+        positiveText: '确定',
+        negativeText: '取消',
+        onPositiveClick: async () => {
+          // 新增
+          fetchSaveMemberRule(form).then(res => {
+            if (!res.error) {
+              message.success('新增成功');
+              closeMemberModal();
+              refreshMember();
+            }
+          });
+        },
+        onNegativeClick: () => {
+          setMemberSubLoading(false);
+        }
+      });
+      return;
+    }
     // 新增
     fetchSaveMemberRule(form).then(res => {
       if (!res.error) {