| | |
| | | v-model="search" |
| | | style="width: 210px" |
| | | placeholder="输入关键字进行搜索" |
| | | @input="searchFilter" |
| | | @change="searchFilter" |
| | | @clear="searchFilter" |
| | | clearable |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="单位:" prop="unit"> |
| | | <el-input |
| | | v-model="modelForm.unit" |
| | | placeholder="请输入单位" |
| | | clearable |
| | | @keydown.enter.prevent |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <template #footer> |
| | | <div class="dialog-footer"> |
| | |
| | | prop: "thickness", |
| | | // 列表展示时统一保留 15 位小数 |
| | | formatData: (val) => formatThicknessTo15(val), |
| | | }, |
| | | { |
| | | label: "单位", |
| | | prop: "unit", |
| | | }, |
| | | { |
| | | dataType: "action", |
| | |
| | | //如果数据为空,则返回true,显示所有的数据项 |
| | | return true; |
| | | } |
| | | // 查询列表是否有匹配数据,将值小写,匹配英文数据 |
| | | let val = value.toLowerCase(); |
| | | // 关键字与节点 label 均按小写比较,英文模糊匹配不区分大小写(如 LOW / low 可匹配 Low-E) |
| | | const val = String(value).trim().toLowerCase(); |
| | | if (!val) return true; |
| | | return chooseNode(val, data, node); // 调用过滤二层方法 |
| | | }; |
| | | // 过滤父节点 / 子节点 (如果输入的参数是父节点且能匹配,则返回该节点以及其下的所有子节点;如果参数是子节点,则返回该节点的父节点。name是中文字符,enName是英文字符. |
| | | const chooseNode = (value, data, node) => { |
| | | if (data.label.indexOf(value) !== -1) { |
| | | const labelLower = String(data.label ?? "").toLowerCase(); |
| | | if (labelLower.indexOf(value) !== -1) { |
| | | return true; |
| | | } |
| | | const level = node.level; |
| | |
| | | // 遍历当前节点的父节点 |
| | | let index = 0; |
| | | while (index < level - 1) { |
| | | // 如果匹配到直接返回,此处name值是中文字符,enName是英文字符。判断匹配中英文过滤 |
| | | if (parentData.data.label.indexOf(value) !== -1) { |
| | | // 如果匹配到直接返回;与 filterNode 一致,标签与关键字均按小写比较,英文模糊匹配不区分大小写 |
| | | const parentLabelLower = String(parentData.data.label ?? "").toLowerCase(); |
| | | if (parentLabelLower.indexOf(value) !== -1) { |
| | | return true; |
| | | } |
| | | // 否则的话再往上一层做匹配 |