Browse Source

REPORT-95320 fix: 【冒烟】【权限管理】权限复用页面搜索并选中部门后,取消搜索后查看实际未选中

es6
zsmj 2 years ago
parent
commit
91ca48b4b6
  1. 96
      packages/fineui/src/component/treevaluechooser/abstract.treevaluechooser.js

96
packages/fineui/src/component/treevaluechooser/abstract.treevaluechooser.js

@ -51,12 +51,12 @@ export class AbstractTreeValueChooser extends Widget {
some(this.items, (i, item) => {
if (item.value === v || `${item.value}` === v) {
text = item.text;
return true;
}
});
}
return text;
}
@ -104,7 +104,7 @@ export class AbstractTreeValueChooser extends Widget {
if (selectedValues == null || isEmpty(selectedValues)) {
callback({});
return;
}
@ -128,7 +128,7 @@ export class AbstractTreeValueChooser extends Widget {
createOneJson(child, node.id, llen);
doCheck(newParents, child, {});
});
return;
}
each(selected, k => {
@ -181,7 +181,7 @@ export class AbstractTreeValueChooser extends Widget {
if (selectedValues == null || isEmpty(selectedValues)) {
callback({});
return;
}
@ -300,7 +300,7 @@ export class AbstractTreeValueChooser extends Widget {
newParents.push(current);
if (this._isMatch(parents, current, keyword)) {
searched && searched.push(newParents);
return true;
}
@ -323,7 +323,7 @@ export class AbstractTreeValueChooser extends Widget {
result.push(next);
});
}
return can;
};
@ -333,7 +333,7 @@ export class AbstractTreeValueChooser extends Widget {
return true;
}
}
return false;
};
@ -346,7 +346,7 @@ export class AbstractTreeValueChooser extends Widget {
return false;
}
}
return true;
}
@ -362,7 +362,7 @@ export class AbstractTreeValueChooser extends Widget {
return true;
}
}
return false;
}
}
@ -372,20 +372,14 @@ export class AbstractTreeValueChooser extends Widget {
const selectedValues = op.selectedValues;
if (selectedValues == null || isEmpty(selectedValues)) {
callback({});
return;
}
each(selectedValues, (k, v) => {
result.push([k]);
});
dealWithSelectedValues(selectedValues, []);
const jo = {};
each(result, (i, strs) => {
this._buildTree(jo, strs);
});
callback(jo);
const isAllSelected = (selected, parents) => isEmpty(selected) || this._getChildCount(parents) === size(selected);
function dealWithSelectedValues(selected, parents) {
if (selected == null || isEmpty(selected)) {
@ -404,11 +398,19 @@ export class AbstractTreeValueChooser extends Widget {
can = false;
}
});
return can && isAllSelected(selected, parents);
}
const isAllSelected = (selected, parents) => isEmpty(selected) || this._getChildCount(parents) === size(selected);
dealWithSelectedValues(selectedValues, []);
const jo = {};
each(result, (i, strs) => {
this._buildTree(jo, strs);
});
callback(jo);
}
_reqInitTreeNode(op, callback) {
@ -461,15 +463,15 @@ export class AbstractTreeValueChooser extends Widget {
result = concat(
filter(nodes, (idx, node) => {
const find = Func.getSearchResult([node.text || node.value], keyword);
return find.find.length > 0 || find.match.length > 0;
}),
result
);
}
return output;
};
}
function nodeSearch(deep, parentValues, current, isAllSelect, result) {
if (self._isMatch(parentValues, current, keyword)) {
@ -483,7 +485,7 @@ export class AbstractTreeValueChooser extends Widget {
true,
result
);
return [true, checked];
}
const newParents = clone(parentValues);
@ -510,9 +512,9 @@ export class AbstractTreeValueChooser extends Widget {
checked = isCurAllSelected || (isSelected(parentValues, current) && checked);
createOneJson(parentValues, current, true, checked, false, false, result);
}
return [can, checked];
};
}
function createOneJson(parentValues, value, isOpen, checked, half, flag, result) {
const node = self._getTreeNode(parentValues, value);
@ -529,14 +531,14 @@ export class AbstractTreeValueChooser extends Widget {
flag,
disabled: node.disabled,
});
};
}
function isHalf(parentValues, value) {
const find = findSelectedObj(parentValues);
if (find == null) {
return null;
}
return any(find, (v, ob) => {
if (v === value) {
if (ob != null && !isEmpty(ob)) {
@ -551,7 +553,7 @@ export class AbstractTreeValueChooser extends Widget {
if (find == null) {
return null;
}
return any(find, (v, ob) => {
if (v === value) {
if (ob != null && isEmpty(ob)) {
@ -566,7 +568,7 @@ export class AbstractTreeValueChooser extends Widget {
if (find == null) {
return false;
}
return any(find, v => {
if (v === value) {
return true;
@ -584,10 +586,10 @@ export class AbstractTreeValueChooser extends Widget {
if (find == null) {
return false;
}
return true;
});
return find;
}
}
@ -626,7 +628,7 @@ export class AbstractTreeValueChooser extends Widget {
// 不是上面那种情况就先看在节点没有带有明确半选的时候,通过节点自身的checked和valueMap的状态能都得到选中信息
check = ((tempCheck || checked) && !half) || has(valueMap, current);
}
return [check, halfCheck];
};
const getResult = (parentValues, checkState) => {
@ -636,33 +638,33 @@ export class AbstractTreeValueChooser extends Widget {
if (isEmpty(selected)) {
return true;
}
if (this._getChildCount(parents) !== size(selected)) {
return false;
}
return every(selected, value => isAllSelected(selected[value], concat(parents, value)));
};
function dealWithSelectedValue(parentValues, selectedValues) {
const valueMap = {},
parents = (parentValues || []).slice(0);
each(parentValues, (i, v) => {
parents.push(v);
selectedValues = selectedValues[v] || {};
});
each(selectedValues, (value, obj) => {
const currentParents = concat(parents, value);
if (isNull(obj)) {
valueMap[value] = [0, 0];
return;
}
if (isEmpty(obj)) {
valueMap[value] = [2, 0];
return;
}
const nextNames = {};
@ -676,7 +678,7 @@ export class AbstractTreeValueChooser extends Widget {
// valueMap的数组第一个参数为不选: 0, 半选: 1, 全选:2, 第二个参数为改节点下选中的子节点个数(子节点全选或者不存在)
valueMap[value] = [1, size(nextNames)];
});
return valueMap;
}
valueMap = dealWithSelectedValue(parentValues, selectedValues);
@ -773,7 +775,7 @@ export class AbstractTreeValueChooser extends Widget {
_getAddedValueNode(parentValues, selectedValues) {
const nodes = this._getChildren(parentValues);
return map(difference(keys(selectedValues), map(nodes, "value")), (idx, v) => {
return {
id: UUID(),
@ -796,7 +798,7 @@ export class AbstractTreeValueChooser extends Widget {
}
pNode = pNode[parentValues[i]];
}
return pNode;
}
@ -837,12 +839,12 @@ export class AbstractTreeValueChooser extends Widget {
const find = Func.getSearchResult([node.text || node.value], keyword);
if (o.allowSearchValue && node.value) {
const valueFind = Func.getSearchResult([node.value], keyword);
return (
valueFind.find.length > 0 || valueFind.match.length > 0 || find.find.length > 0 || find.match.length > 0
);
}
return find.find.length > 0 || find.match.length > 0;
}
@ -919,7 +921,7 @@ export class AbstractTreeValueChooser extends Widget {
queue = queue.concat(childNodes);
nodes = nodes.concat(childNodes);
}
return nodes;
}
@ -972,7 +974,7 @@ export class AbstractTreeValueChooser extends Widget {
r[child.value] = {};
fill(newParents, child, null, r[child.value]);
});
return;
}
each(selected, k => {

Loading…
Cancel
Save