1
lkk
3 天以前 eca9b2e5c274aae761ad2388818194eff4dacb47
1
1个文件已修改
48 ■■■■■ 已修改文件
src/views/hosp/project/index.vue 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/hosp/project/index.vue
@@ -1213,11 +1213,21 @@
      const traverse = (nodes) => {
        nodes.forEach((node) => {
          if (node.label) {
            const lowerSpell = node.label.spell("low", "array").join("");
            const upperSpell = node.label.spell("up", "array").join("");
            const lowerSpell = cnchar
              .spell(node.label, "low", "array")
              .join(""); // 完整小写拼音
            const upperSpell = cnchar.spell(node.label, "up", "array").join(""); // 完整大写拼音
            const shortPinyin = node.label
              .split("")
              .map(
                (char) =>
                  cnchar.spell(char, "array")[0]?.[0]?.toLowerCase() || char
              ) // 拼音首字母
              .join("");
            this.pinyinCache.set(node.id, {
              lowerSpell,
              upperSpell,
              shortPinyin, // 缓存拼音简写
              label: node.label,
            });
          }
@@ -1225,6 +1235,17 @@
        });
      };
      traverse(this.deptOptions);
    },
    filterNode(value, data) {
      if (!value) return true; // 如果搜索值为空,返回所有节点
      const cached = this.pinyinCache.get(data.id);
      if (!cached) return false; // 如果没有缓存数据,不显示该节点
      const searchLower = value.toLowerCase(); // 将搜索词转为小写
      return (
        cached.label.includes(value) || // 直接匹配汉字
        cached.shortPinyin.includes(searchLower) || // 匹配拼音简写
        cached.lowerSpell.includes(searchLower) // 匹配完整拼音
      );
    },
    async loadPage() {
@@ -1246,7 +1267,7 @@
      try {
        const response = await deptTree111();
        this.deptOptions = response.data;
        this.precomputePinyin();
        // 保证 treeId 是数组格式
        this.treeId = [];
@@ -1278,16 +1299,6 @@
      }
    },
    filterNode(value, data) {
      if (!value) return true;
      const cached = this.pinyinCache.get(data.id);
      if (!cached) return false;
      return (
        cached.label.includes(value) ||
        cached.lowerSpell.includes(value) ||
        cached.upperSpell.includes(value)
      );
    },
    filterNode2(value, data) {
      if (!value) return true;
      return data.xmmc.includes(value);
@@ -1732,10 +1743,8 @@
      this.isPriceDisabled = true;
      
      // 先加载科室列表数据,再设置表单数据
      Promise.all([
        listDept(this.queryParams),
        getlist()
      ]).then(([deptResponse, listResponse]) => {
      Promise.all([listDept(this.queryParams), getlist()])
        .then(([deptResponse, listResponse]) => {
        // 先设置科室列表
        this.parentNameList = deptResponse.data;
        
@@ -1755,10 +1764,11 @@
        }
        
        this.open = true;
      }).catch((error) => {
        })
        .catch((error) => {
        console.error("加载数据失败:", error);
        this.$message.error("加载数据失败");
      })
        });
    },
    handleUpdate(row) {
      this.reset();