[issue/4550]分类字典数据量过多会造成数据查询时间过长

pull/474/head
zhangdaiscott 2023-04-11 22:03:13 +08:00
parent f48e1125d0
commit 6d768d8320
2 changed files with 19 additions and 7 deletions

View File

@ -14,6 +14,7 @@
const isUpdate = ref(true);
const expandedRowKeys = ref([]);
const treeData = ref([]);
const isSubAdd = ref(false);
//
const [registerForm, { resetFields, setFieldsValue, validate, updateSchema }] = useForm({
schemas: formSchema,
@ -34,6 +35,7 @@
expandedRowKeys.value = [];
setModalProps({ confirmLoading: false, minHeight: 80 });
isUpdate.value = !!data?.isUpdate;
isSubAdd.value = !!!data?.isUpdate && data.record.id;
if (data?.record) {
//
await setFieldsValue({
@ -79,7 +81,7 @@
//
await getExpandKeysByPid(values['pid'], unref(treeData));
//(isUpdate:;values:;expandedArr:)
emit('success', { isUpdate: unref(isUpdate), values: { ...values }, expandedArr: unref(expandedRowKeys).reverse() });
emit('success', { isUpdate: unref(isUpdate), isSubAdd:unref(isSubAdd), values: { ...values }, expandedArr: unref(expandedRowKeys).reverse() });
} finally {
setModalProps({ confirmLoading: false });
}

View File

@ -145,7 +145,7 @@
/**
* 成功回调
*/
async function handleSuccess({ isUpdate, values, expandedArr }) {
async function handleSuccess({ isUpdate,isSubAdd, values, expandedArr }) {
if (isUpdate) {
//
updateTableDataRecord(values.id, values);
@ -155,9 +155,15 @@
reload();
} else {
//
expandedRowKeys.value = [];
for (let key of unref(expandedArr)) {
await expandTreeNode(key);
//update-begin-author:liusq---date:20230411--for: [issue/4550]---
if(isSubAdd){
await expandTreeNode(values.pid);
//update-end-author:liusq---date:20230411--for: [issue/4550]---
}else{
expandedRowKeys.value = [];
for (let key of unref(expandedArr)) {
await expandTreeNode(key);
}
}
}
}
@ -247,8 +253,12 @@
*操作表格后处理树节点展开合并
* */
async function expandTreeNode(key) {
let record = findTableDataRecord(key);
expandedRowKeys.value.push(key);
let record:any = findTableDataRecord(key);
//update-begin-author:liusq---date:20230411--for: [issue/4550],!---
if(!expandedRowKeys.value.includes(key)){
expandedRowKeys.value.push(key);
}
//update-end-author:liusq---date:20230411--for: [issue/4550],!---
let result = await getChildList({ pid: key });
if (result && result.length > 0) {
record.children = getDataByResult(result);