@@ -31,6 +31,7 @@ import { parseKey } from "../parse/parse-key";
31
31
import { renderEventKey } from "../render/render-event-key" ;
32
32
import { renderComponentDynamicKey } from "./render-component-dynamic-key" ;
33
33
import { renderKey } from "./render-key" ;
34
+ import { renderValues } from "./render-values" ;
34
35
35
36
export const renderEl = (
36
37
setEventListener : ( ) => void ,
@@ -89,10 +90,74 @@ export const renderEl = (
89
90
return val ;
90
91
} ;
91
92
const createValItem = ( value : string | CurrentKeyType ) => {
92
- return {
93
- value,
94
- render : typeof value === "string" ? valueFunctions [ 2 ] : valueFunctions [ 3 ]
95
- } ;
93
+ if ( typeof value === "string" ) {
94
+ return {
95
+ value,
96
+ render : valueFunctions [ 2 ]
97
+ } ;
98
+ } else {
99
+ if ( isEach === true ) {
100
+ let currentRender : any ;
101
+ if ( value . isValue ) {
102
+ currentRender = (
103
+ key : CurrentKeyType ,
104
+ data : any ,
105
+ importData : any ,
106
+ eachIndex : number | undefined
107
+ ) => {
108
+ const str = {
109
+ value : ""
110
+ } ;
111
+ renderValues ( str , key , data , importData , eachIndex ) ;
112
+ return str . value ;
113
+ } ;
114
+ } else {
115
+ switch ( value . originType ) {
116
+ case 1 :
117
+ currentRender = (
118
+ key : CurrentKeyType ,
119
+ data : any ,
120
+ importData : any ,
121
+ eachIndex : number | undefined
122
+ ) => ( key . render as any ) ( data ) ;
123
+ break ;
124
+ case 2 :
125
+ currentRender = (
126
+ key : CurrentKeyType ,
127
+ data : any ,
128
+ importData : any ,
129
+ eachIndex : number | undefined
130
+ ) => ( key . render as any ) ( importData ) ;
131
+ break ;
132
+ case 3 :
133
+ currentRender = (
134
+ key : CurrentKeyType ,
135
+ data : any ,
136
+ importData : any ,
137
+ eachIndex : number | undefined
138
+ ) => eachIndex ;
139
+ break ;
140
+ default :
141
+ currentRender = (
142
+ key : CurrentKeyType ,
143
+ data : any ,
144
+ importData : any ,
145
+ eachIndex : number | undefined
146
+ ) => undefined ;
147
+ break ;
148
+ }
149
+ }
150
+ return {
151
+ value,
152
+ render : currentRender
153
+ } ;
154
+ } else {
155
+ return {
156
+ value,
157
+ render : valueFunctions [ 3 ]
158
+ } ;
159
+ }
160
+ }
96
161
} ;
97
162
if ( regexAttr . length ) {
98
163
for ( const e of regexAttr ) {
0 commit comments