yyb
5 天以前 46e81fa90c8e089a781fdc994b5427b6e57fb311
feat(客户档案): 优化地区路径查找逻辑

- 新增findRegionPathById函数以通过地区ID查找地区路径
- 更新编辑客户时的地区ID处理逻辑,确保在缺失地区路径时回退到名称查找
- 改进表单逻辑以确保地区信息的正确性和完整性
已修改1个文件
27 ■■■■ 文件已修改
src/views/basicData/customerFile/index.vue 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicData/customerFile/index.vue
@@ -980,6 +980,18 @@
    }
    return [];
  };
  const findRegionPathById = (tree, targetId, parentPath = []) => {
    if (targetId === undefined || targetId === null || targetId === "") return [];
    for (const item of tree || []) {
      const currentPath = [...parentPath, item.id];
      if (String(item.id) === String(targetId)) {
        return currentPath;
      }
      const childResult = findRegionPathById(item.children || [], targetId, currentPath);
      if (childResult.length) return childResult;
    }
    return [];
  };
  const addNewContact = () => {
    formYYs.value.contactList.push({
      contactPerson: "",
@@ -1050,14 +1062,21 @@
    if (type === "edit") {
      getCustomer(row.id).then(res => {
        form.value = { ...res.data };
        formRegionPath.value = findRegionPathByName(
          regionTreeData.value,
          form.value.regions || ""
        );
        const regionIdForEdit = form.value.regionsId || form.value.regionsld;
        formRegionPath.value = findRegionPathById(regionTreeData.value, regionIdForEdit);
        if (!formRegionPath.value.length) {
          formRegionPath.value = findRegionPathByName(
            regionTreeData.value,
            form.value.regionsName || form.value.regions || ""
          );
        }
        const selectedRegionId =
          formRegionPath.value.length > 0
            ? formRegionPath.value[formRegionPath.value.length - 1]
            : "";
        if (selectedRegionId && !form.value.regions) {
          form.value.regions = regionNodeMap.value.get(selectedRegionId)?.regionsName || "";
        }
        form.value.regionsId = form.value.regionsId || selectedRegionId;
        form.value.regionsld = form.value.regionsld || form.value.regionsId || selectedRegionId;
        formYYs.value.contactList = res.data.contactPerson