gongchunyi
10 小时以前 967ca126479ea5ca51726cdad1e6275571d4d3bc
src/views/basicData/customerFile/index.vue
@@ -16,14 +16,12 @@
                       @click="handleDeleteRegion">删除</el-button>
          </div>
        </div>
        <div class="left-search">
          <el-input v-model="regionKeyword"
                    placeholder="查询地区"
                    clearable
                    :prefix-icon="Search" />
        </div>
        <div class="left-list">
          <el-skeleton v-if="regionsLoading"
                       :rows="8"
@@ -46,7 +44,6 @@
          </template>
        </div>
      </div>
      <div class="right-panel">
        <div class="toolbar-card">
          <div class="search_form right-search-form">
@@ -100,7 +97,6 @@
        </div>
      </div>
    </div>
    <el-dialog v-model="addRegionDialogVisible"
               title="新增地区"
               width="420px"
@@ -115,7 +111,8 @@
                       filterable
                       placeholder="不选则为顶级地区" />
        </el-form-item>
        <el-form-item label="地区名称" required>
        <el-form-item label="地区名称"
                      required>
          <el-input v-model="addRegionForm.regionsName"
                    placeholder="请输入"
                    clearable />
@@ -326,6 +323,7 @@
    <!-- 用户导入对话框 -->
    <el-dialog :title="upload.title"
               v-model="upload.open"
               @close="onClose"
               width="400px"
               append-to-body>
      <el-upload ref="uploadRef"
@@ -483,7 +481,15 @@
</template>
<script setup>
  import { onMounted, ref, reactive, getCurrentInstance, toRefs, computed, watch } from "vue";
  import {
    onMounted,
    ref,
    reactive,
    getCurrentInstance,
    toRefs,
    computed,
    watch,
  } from "vue";
  import { Search } from "@element-plus/icons-vue";
  import {
    addCustomer,
@@ -812,7 +818,11 @@
  const addRegionDialogVisible = ref(false);
  const editRegionDialogVisible = ref(false);
  const addRegionForm = reactive({ parentPath: [], regionsName: "" });
  const editRegionForm = reactive({ id: undefined, parentId: 0, regionsName: "" });
  const editRegionForm = reactive({
    id: undefined,
    parentId: 0,
    regionsName: "",
  });
  const regionTreeProps = { label: "label", children: "children" };
  const regionCascaderProps = {
    value: "id",
@@ -844,6 +854,10 @@
      regionsName: item.regionsName || item.label || "",
      children: normalizeRegionTree(item.children || []),
    }));
  };
  const onClose = () => {
    upload.open = false;
    proxy.$refs["uploadRef"].clearFiles();
  };
  const fetchRegions = async () => {
@@ -908,7 +922,9 @@
    editRegionForm.id = selectedRegionNode.value.id;
    editRegionForm.parentId = selectedRegionNode.value.parentId || 0;
    editRegionForm.regionsName =
      selectedRegionNode.value.regionsName || selectedRegionNode.value.label || "";
      selectedRegionNode.value.regionsName ||
      selectedRegionNode.value.label ||
      "";
    editRegionDialogVisible.value = true;
  };
  const closeEditRegionDialog = () => {
@@ -966,7 +982,11 @@
      if ((item.regionsName || item.label) === targetName) {
        return currentPath;
      }
      const childResult = findRegionPathByName(item.children || [], targetName, currentPath);
      const childResult = findRegionPathByName(
        item.children || [],
        targetName,
        currentPath
      );
      if (childResult.length) return childResult;
    }
    return [];
@@ -978,7 +998,11 @@
      if (String(item.id) === String(targetId)) {
        return currentPath;
      }
      const childResult = findRegionPathById(item.children || [], targetId, currentPath);
      const childResult = findRegionPathById(
        item.children || [],
        targetId,
        currentPath
      );
      if (childResult.length) return childResult;
    }
    return [];
@@ -1054,7 +1078,10 @@
      getCustomer(row.id).then(res => {
        form.value = { ...res.data };
        const regionIdForEdit = form.value.regionsId || form.value.regionsld;
        formRegionPath.value = findRegionPathById(regionTreeData.value, regionIdForEdit);
        formRegionPath.value = findRegionPathById(
          regionTreeData.value,
          regionIdForEdit
        );
        if (!formRegionPath.value.length) {
          formRegionPath.value = findRegionPathByName(
            regionTreeData.value,
@@ -1066,10 +1093,12 @@
            ? formRegionPath.value[formRegionPath.value.length - 1]
            : "";
        if (selectedRegionId && !form.value.regions) {
          form.value.regions = regionNodeMap.value.get(selectedRegionId)?.regionsName || "";
          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;
        form.value.regionsld =
          form.value.regionsld || form.value.regionsId || selectedRegionId;
        formYYs.value.contactList = res.data.contactPerson
          .split(",")
          .map((item, index) => {
@@ -1106,7 +1135,8 @@
      .map(item => item.contactPhone)
      .join(",");
    if (!form.value.regionsId && formRegionPath.value.length) {
      form.value.regionsId = formRegionPath.value[formRegionPath.value.length - 1];
      form.value.regionsId =
        formRegionPath.value[formRegionPath.value.length - 1];
    }
    form.value.regionsld = form.value.regionsId || "";
    addCustomer(form.value).then(res => {
@@ -1124,7 +1154,8 @@
      .map(item => item.contactPhone)
      .join(",");
    if (!form.value.regionsId && formRegionPath.value.length) {
      form.value.regionsId = formRegionPath.value[formRegionPath.value.length - 1];
      form.value.regionsId =
        formRegionPath.value[formRegionPath.value.length - 1];
    }
    form.value.regionsld = form.value.regionsId || "";
    updateCustomer(form.value).then(res => {
@@ -1300,7 +1331,13 @@
  .toolbar-divider {
    width: 1px;
    align-self: stretch;
    background: linear-gradient(to bottom, transparent, #e4e7ed 15%, #e4e7ed 85%, transparent);
    background: linear-gradient(
      to bottom,
      transparent,
      #e4e7ed 15%,
      #e4e7ed 85%,
      transparent
    );
  }
  .action-buttons {