@@ -87,10 +87,11 @@ export const handlerDictProps = (item, tmpArr) => {
87
87
88
88
export const loadDict = async ( dictList , item ) => {
89
89
if ( allowUseDictComponent . includes ( item . formType ) && item . dict ) {
90
+ const dataIndex = item . parentDataIndex ? `${ item . parentDataIndex } .${ item . dataIndex } ` : item . dataIndex
90
91
if ( item . dict . name ) {
91
92
const response = await commonApi . getDict ( item . dict . name )
92
93
if ( response . data ) {
93
- dictList [ item . dataIndex ] = handlerDictProps ( item , response . data )
94
+ dictList [ dataIndex ] = handlerDictProps ( item , response . data )
94
95
}
95
96
} else if ( item . dict . remote ) {
96
97
let requestData = {
@@ -101,17 +102,17 @@ export const loadDict = async (dictList, item) => {
101
102
102
103
if ( requestData . openPage ) {
103
104
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
106
107
} else {
107
108
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 ]
110
111
} else {
111
112
const { data } = await requestDict ( item . dict . remote , 'POST' , { } , requestData )
112
- dictList [ item . dataIndex ] = handlerDictProps ( item , data )
113
+ dictList [ dataIndex ] = handlerDictProps ( item , data )
113
114
if ( item . dict . cache ) {
114
- dictData [ item . dataIndex ] = dictList [ item . dataIndex ]
115
+ dictData [ dataIndex ] = dictList [ dataIndex ]
115
116
tool . local . set ( 'dictData' , dictData )
116
117
}
117
118
}
@@ -130,27 +131,27 @@ export const loadDict = async (dictList, item) => {
130
131
item . dict . body = Object . assign ( item . dict . body ?? { } , requestData )
131
132
}
132
133
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
135
136
} else {
136
137
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 ]
139
140
} else {
140
141
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 )
142
143
if ( item . dict . cache ) {
143
- dictData [ item . dataIndex ] = dictList [ item . dataIndex ]
144
+ dictData [ dataIndex ] = dictList [ dataIndex ]
144
145
tool . local . set ( 'dictData' , dictData )
145
146
}
146
147
}
147
148
}
148
149
} else if ( item . dict . data ) {
149
150
if ( isArray ( item . dict . data ) ) {
150
- dictList [ item . dataIndex ] = handlerDictProps ( item , item . dict . data )
151
+ dictList [ dataIndex ] = handlerDictProps ( item , item . dict . data )
151
152
} else if ( isFunction ( item . dict . data ) ) {
152
153
const response = await item . dict . data ( )
153
- dictList [ item . dataIndex ] = handlerDictProps ( item , response )
154
+ dictList [ dataIndex ] = handlerDictProps ( item , response )
154
155
}
155
156
}
156
157
}
@@ -195,9 +196,10 @@ const requestCascaderData = async (val, dict, dictList, name) => {
195
196
export const handlerCascader = async ( val , column , columns , dictList , formModel , clearData = true ) => {
196
197
if ( column . cascaderItem && isArray ( column . cascaderItem ) ) {
197
198
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 )
201
203
} )
202
204
}
203
205
}
0 commit comments