gaoluyang
2025-03-05 9b0a40a9b2918dd0e92161edaff4a3f61b510141
src/views/standard/standardLibrary/index.vue
@@ -206,16 +206,17 @@
          height: calc(100% - 30px);
          overflow-y: scroll;
          scrollbar-width: none;
        " @node-click="handleNodeClick" @node-expand="nodeOpen" @node-collapse="nodeClose" @node-drop="handleDrop">
        " @node-click="handleNodeClick"
               @node-drop="handleDrop">
        <div slot-scope="{ node, data }" class="custom-tree-node">
          <el-row style="width: 100%">
            <el-col :class="{ sort: node.level > 3 }" :span="19" :title="data.label" style="text-align: left">
              <span>
                <i :class="`node_i ${data.children != undefined
                    ? data.code === '[1]'
                      ? 'el-icon-folder-opened'
                      : 'el-icon-folder'
                    : 'el-icon-tickets'
                  ? data.code === '[1]'
                    ? 'el-icon-folder-opened'
                    : 'el-icon-folder'
                  : 'el-icon-tickets'
                  }`"></i>
                {{ data.label }}
              </span>
@@ -225,7 +226,7 @@
              (node.data.children === null ||
                node.data.children === undefined)
            " :span="2" style="text-align: right">
              <el-button size="mini" type="text" @click="editTreeName(node.data)">
              <el-button size="mini" type="text" @click.stop="editTreeName(node.data)">
                <i class="el-icon-edit"></i>
              </el-button>
            </el-col>
@@ -286,8 +287,8 @@
            <template slot-scope="scope">
              <el-input v-if="
                checkPermi(['standard:standardLibrary:upStandardProduct'])
              " v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="要求值"
                size="small" type="textarea" @change="(value) => upStandardProductList(value, scope.row.id)"></el-input>
              " v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="要求值" size="small"
                type="textarea" @change="(value) => upStandardProductList(value, scope.row.id)"></el-input>
              <span v-else>{{ scope.row.ask }}</span>
            </template>
          </el-table-column>
@@ -306,7 +307,7 @@
              <el-select v-if="
                checkPermi(['standard:standardLibrary:upStandardProduct'])
              " v-model="scope.row.methodS" clearable placeholder="试验方法" size="small" @change="(value) => upStandardProductListOfMethodS(value, scope.row.id)
                  ">
                ">
                <el-option v-for="(a, i) in scope.row.method &&
                  JSON.parse(scope.row.method)" :key="i" :label="a" :value="a"></el-option>
              </el-select>
@@ -318,7 +319,7 @@
              <el-select v-if="
                checkPermi(['standard:standardLibrary:upStandardProduct'])
              " v-model="scope.row.radius" clearable placeholder="条件" size="small" @change="(value) => upStandardProductListOfRadius(value, scope.row.id)
                  ">
                ">
                <el-option v-for="(a, i) in scope.row.radiusList &&
                  JSON.parse(scope.row.radiusList)" :key="i" :label="a" :value="a"></el-option>
              </el-select>
@@ -331,7 +332,7 @@
              <el-input v-if="
                checkPermi(['standard:standardLibrary:upStandardProduct'])
              " v-model="scope.row.price" placeholder="单价(元)" size="small" @change="(value) => upStandardProductListOfPrice(value, scope.row.id)
                  ">
                ">
              </el-input>
              <span v-else>{{ scope.row.price }}</span>
            </template>
@@ -341,7 +342,7 @@
              <el-input v-if="
                checkPermi(['standard:standardLibrary:upStandardProduct'])
              " v-model="scope.row.manHour" placeholder="单价(元)" size="small" @change="(value) => upStandardProductListOfManHour(value, scope.row.id)
                  ">
                ">
              </el-input>
              <span v-else>{{ scope.row.manHour }}</span>
            </template>
@@ -351,7 +352,7 @@
            <template slot-scope="scope">
              <el-select v-model="scope.row.templateId" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
                " filterable size="small" @change="(value) =>
                    upStandardProductListOfTemplate(value, scope.row.id)
                  upStandardProductListOfTemplate(value, scope.row.id)
                  ">
                <el-option v-for="(a, ai) in templateList" :key="ai" :label="a.name" :value="a.id"></el-option>
              </el-select>
@@ -367,10 +368,10 @@
            </template>
          </el-table-column>
        </el-table>
        <el-pagination :current-page="currentPage" :page-size="300" :total="total"
          layout="total, prev, pager, next, jumper" style="position: absolute; right: 16px; bottom: 1px"
          @current-change="handleCurrentChange">
        </el-pagination>
        <!-- <el-pagination :current-page="currentPage" :page-size="300" :total="total" layout="total"
          style="position: absolute; right: 16px; bottom: 1px" @current-change="handleCurrentChange">
        </el-pagination> -->
        <p style="text-align: right;margin-right: 20px;color: #333;">共{{ total }}条</p>
      </el-row>
    </div>
@@ -682,10 +683,42 @@
        }
      }
    },
    filterNode(value, data) {
      if (!value) return true;
      return data.label.indexOf(value) !== -1;
    // 调用tree过滤方法 中文英过滤
    filterNode (value, data, node) {
      if (!value) {    //如果数据为空,则返回true,显示所有的数据项
        return true
      }
      // 查询列表是否有匹配数据,将值小写,匹配英文数据
      let val = value.toLowerCase()
      return this.chooseNode(val, data, node) // 调用过滤二层方法
    },
    // 过滤父节点 / 子节点 (如果输入的参数是父节点且能匹配,则返回该节点以及其下的所有子节点;如果参数是子节点,则返回该节点的父节点。name是中文字符,enName是英文字符.
    chooseNode (value, data, node) {
      if (data.label.indexOf(value) !== -1) {
        return true
      }
      const level = node.level
      // 如果传入的节点本身就是一级节点就不用校验了
      if (level === 1) {
        return false
      }
      // 先取当前节点的父节点
      let parentData = node.parent
      // 遍历当前节点的父节点
      let index = 0
      while (index < level - 1) {
        // 如果匹配到直接返回,此处name值是中文字符,enName是英文字符。判断匹配中英文过滤
        if (parentData.data.label.indexOf(value) !== -1) {
          return true
        }
        // 否则的话再往上一层做匹配
        parentData = parentData.parent
        index++
      }
      // 没匹配到返回false
      return false
    },
    searchFilter() {
      this.$refs.tree.filter(this.search);
    },
@@ -764,15 +797,6 @@
          item.children && this.deleteStandard(item.children, label);
        }
      });
    },
    nodeOpen(data, node, el) {
      $($(el.$el).find(".node_i")[0]).attr(
        "class",
        "node_i el-icon-folder-opened"
      );
    },
    nodeClose(data, node, el) {
      $($(el.$el).find(".node_i")[0]).attr("class", "node_i el-icon-folder");
    },
    selectEnumByCategoryForFactory() {
      this.getConfigKey("sys_factory").then((response) => {
@@ -897,7 +921,8 @@
            return;
          }
          this.$message.success("添加成功");
          this.selectStandardTreeList();
          this.$tab.refreshPage();
          // this.selectStandardTreeList();
          this.updateDia = false;
          this.updateLoad = false;
        })