Skip to content

Commit 4e50cde

Browse files
committed
refactor: 子表单字典
1 parent 38e4c15 commit 4e50cde

File tree

2 files changed

+24
-24
lines changed

2 files changed

+24
-24
lines changed

src/components/ma-form/js/networkRequest.js

+20-18
Original file line numberDiff line numberDiff line change
@@ -87,10 +87,11 @@ export const handlerDictProps = (item, tmpArr) => {
8787

8888
export const loadDict = async (dictList, item) => {
8989
if (allowUseDictComponent.includes(item.formType) && item.dict) {
90+
const dataIndex = item.parentDataIndex ? `${item.parentDataIndex}.${item.dataIndex}` : item.dataIndex
9091
if (item.dict.name) {
9192
const response = await commonApi.getDict(item.dict.name)
9293
if (response.data) {
93-
dictList[item.dataIndex] = handlerDictProps(item, response.data)
94+
dictList[dataIndex] = handlerDictProps(item, response.data)
9495
}
9596
} else if (item.dict.remote) {
9697
let requestData = {
@@ -101,17 +102,17 @@ export const loadDict = async (dictList, item) => {
101102

102103
if (requestData.openPage) {
103104
const { data } = await requestDict(item.dict.remote, 'POST', {}, requestData)
104-
dictList[item.dataIndex] = handlerDictProps(item, data.items)
105-
dictList[item.dataIndex].pageInfo = data.pageInfo
105+
dictList[dataIndex] = handlerDictProps(item, data.items)
106+
dictList[dataIndex].pageInfo = data.pageInfo
106107
} else {
107108
const dictData = tool.local.get('dictData')
108-
if (item.dict.cache && dictData[item.dataIndex]) {
109-
dictList[item.dataIndex] = dictData[item.dataIndex]
109+
if (item.dict.cache && dictData[dataIndex]) {
110+
dictList[dataIndex] = dictData[dataIndex]
110111
} else {
111112
const { data } = await requestDict(item.dict.remote, 'POST', {}, requestData)
112-
dictList[item.dataIndex] = handlerDictProps(item, data)
113+
dictList[dataIndex] = handlerDictProps(item, data)
113114
if (item.dict.cache) {
114-
dictData[item.dataIndex] = dictList[item.dataIndex]
115+
dictData[dataIndex] = dictList[dataIndex]
115116
tool.local.set('dictData', dictData)
116117
}
117118
}
@@ -130,27 +131,27 @@ export const loadDict = async (dictList, item) => {
130131
item.dict.body = Object.assign(item.dict.body ?? {}, requestData)
131132
}
132133
const { data } = await requestDict(item.dict.url, item.dict.method || 'GET', item.dict.params || {}, item.dict.body || {})
133-
dictList[item.dataIndex] = handlerDictProps(item, data.items)
134-
dictList[item.dataIndex].pageInfo = data.pageInfo
134+
dictList[dataIndex] = handlerDictProps(item, data.items)
135+
dictList[dataIndex].pageInfo = data.pageInfo
135136
} else {
136137
const dictData = tool.local.get('dictData')
137-
if (item.dict.cache && dictData[item.dataIndex]) {
138-
dictList[item.dataIndex] = dictData[item.dataIndex]
138+
if (item.dict.cache && dictData[dataIndex]) {
139+
dictList[dataIndex] = dictData[dataIndex]
139140
} else {
140141
const { data } = await requestDict(item.dict.url, item.dict.method || 'GET', item.dict.params || {}, item.dict.body || {})
141-
dictList[item.dataIndex] = handlerDictProps(item, data)
142+
dictList[dataIndex] = handlerDictProps(item, data)
142143
if (item.dict.cache) {
143-
dictData[item.dataIndex] = dictList[item.dataIndex]
144+
dictData[dataIndex] = dictList[dataIndex]
144145
tool.local.set('dictData', dictData)
145146
}
146147
}
147148
}
148149
} else if (item.dict.data) {
149150
if (isArray(item.dict.data)) {
150-
dictList[item.dataIndex] = handlerDictProps(item, item.dict.data)
151+
dictList[dataIndex] = handlerDictProps(item, item.dict.data)
151152
} else if (isFunction(item.dict.data)) {
152153
const response = await item.dict.data()
153-
dictList[item.dataIndex] = handlerDictProps(item, response)
154+
dictList[dataIndex] = handlerDictProps(item, response)
154155
}
155156
}
156157
}
@@ -195,9 +196,10 @@ const requestCascaderData = async (val, dict, dictList, name) => {
195196
export const handlerCascader = async (val, column, columns, dictList, formModel, clearData = true) => {
196197
if (column.cascaderItem && isArray(column.cascaderItem)) {
197198
column.cascaderItem.map(async name => {
198-
const dict = columns.find(col => col.dataIndex === name && col.dict).dict
199-
clearData && set(formModel, name, undefined)
200-
requestCascaderData(val, dict, dictList, name)
199+
const columnItem = columns.find(col => col.dataIndex === name && col.dict)
200+
const dataIndex = columnItem.parentDataIndex ? `${columnItem.parentDataIndex}.${columnItem.dataIndex}` : columnItem.dataIndex
201+
clearData && set(formModel, dataIndex, undefined)
202+
await requestCascaderData(val, columnItem.dict, dictList, dataIndex)
201203
})
202204
}
203205
}

src/components/ma-form/js/utils.js

+4-6
Original file line numberDiff line numberDiff line change
@@ -90,14 +90,12 @@ export const handleFlatteningColumns = (data, columns, isChildrenForm = undefine
9090
})
9191
}
9292
break
93-
// case 'children-form':
94-
// item.formList && handleFlatteningColumns(item.formList, columns, item.dataIndex, true)
95-
// break
93+
case 'children-form':
94+
item.formList.map(list => list.parentDataIndex = item.dataIndex)
95+
item.formList && handleFlatteningColumns(item.formList, columns, item.dataIndex, true)
96+
break
9697
}
9798
} else {
98-
// if (isChildrenForm) {
99-
// item['isChildrenForm'] = true
100-
// }
10199
columns.push(item)
102100
}
103101
}

0 commit comments

Comments
 (0)