agilebuilder-ui 1.1.41 → 1.1.42-sit1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/lib/{401-deb6f978.js → 401-5c692db3.js} +1 -1
  2. package/lib/{404-ca0b33ee.js → 404-bcdb3ce5.js} +1 -1
  3. package/lib/{iframe-page-eb39ba95.js → iframe-page-c8073fc1.js} +1 -1
  4. package/lib/{index-a36c91b2.js → index-fa4b5a84.js} +4882 -4825
  5. package/lib/super-ui.css +1 -1
  6. package/lib/super-ui.js +1 -1
  7. package/lib/super-ui.umd.cjs +85 -85
  8. package/lib/{tab-content-iframe-index-094835e7.js → tab-content-iframe-index-2be5c19e.js} +1 -1
  9. package/lib/{tab-content-index-92b24462.js → tab-content-index-69988e2f.js} +1 -1
  10. package/lib/{tache-subprocess-history-0d32337a.js → tache-subprocess-history-9889b788.js} +1 -1
  11. package/package.json +1 -1
  12. package/packages/fs-preview/src/fs-preview.vue +38 -29
  13. package/packages/fs-upload-new/src/fs-button-upload.vue +34 -1
  14. package/packages/fs-upload-new/src/fs-drag-upload.vue +43 -2
  15. package/packages/fs-upload-new/src/fs-preview-new.vue +6 -4
  16. package/packages/super-grid/src/custom-formatter.js +16 -10
  17. package/packages/super-grid/src/dynamic-input.vue +8 -3
  18. package/packages/super-grid/src/normal-column-content.vue +1 -0
  19. package/packages/super-grid/src/normal-column.vue +8 -4
  20. package/packages/super-grid/src/row-operation.vue +13 -9
  21. package/packages/super-grid/src/search-form-advancedQuery.vue +1 -1
  22. package/packages/super-grid/src/search-form-item.vue +23 -23
  23. package/packages/super-grid/src/search-form-open.vue +164 -158
  24. package/packages/super-grid/src/super-grid-service.js +141 -153
  25. package/packages/super-grid/src/super-grid.vue +43 -14
  26. package/packages/super-nine-grid/src/search-form.vue +469 -659
  27. package/packages/super-nine-grid/src/super-nine-grid.vue +1 -1
  28. package/packages/workgroup-tree-inline/src/workgroup-tree-inline.vue +515 -539
  29. package/packages/workgroup-user-tree-inline/src/workgroup-tree-inline-service.js +24 -44
  30. package/packages/workgroup-user-tree-inline/src/workgroup-user-tree-inline.vue +626 -665
  31. package/src/utils/permission.js +86 -9
@@ -1,704 +1,514 @@
1
1
  <template>
2
- <el-form
3
- v-if="searchableColumns.length > 0"
4
- ref="searchForm"
5
- :label-position="query.queryLabelPosition"
6
- :label-width="labelWidth"
7
- :model="searchForm"
8
- :rules="rules"
9
- class="grid-search-form"
10
- size="default"
11
- >
12
- <table>
13
- <tr v-for="r of rowNum" :key="r">
14
- <td
15
- v-for="n of getColumnNumPerRow(r, searchableColumns.length)"
16
- :key="n"
17
- >
18
- <el-form-item
19
- :label-width="
20
- searchableColumns[fieldNum * (r - 1) + (n - 1)].searchLabelWidth
21
- ? searchableColumns[fieldNum * (r - 1) + (n - 1)]
22
- .searchLabelWidth
23
- : '160px'
2
+ <el-form
3
+ v-if="searchableColumns.length > 0"
4
+ ref="searchForm"
5
+ :label-position="query.queryLabelPosition"
6
+ :label-width="labelWidth"
7
+ :model="searchForm"
8
+ :rules="rules"
9
+ class="grid-search-form"
10
+ size="default"
11
+ >
12
+ <el-row v-for="r of rowNum" :key="r">
13
+ <el-col
14
+ v-for="n of getColumnNumPerRow(r, searchableColumns.length)"
15
+ :key="n"
16
+ :span="6"
17
+ style="margin-bottom: 10px"
18
+ >
19
+ <el-form-item
20
+ :prop="searchableColumns[fieldNum * (r - 1) + (n - 1)].prop"
21
+ :label-width="
22
+ searchableColumns[fieldNum * (r - 1) + (n - 1)].label.replace(/\\n/g, '</br>')?.length > 4
23
+ ? '100px'
24
+ : '80px'
25
+ "
26
+ style="width: 90%"
27
+ >
28
+ <template v-slot:label>
29
+ <span
30
+ v-if="
31
+ searchableColumns[fieldNum * (r - 1) + (n - 1)].searchLabel &&
32
+ searchableColumns[fieldNum * (r - 1) + (n - 1)].searchLabel !== ''
33
+ "
34
+ v-html="searchableColumns[fieldNum * (r - 1) + (n - 1)].searchLabel.replace(/\\n/g, '</br>')"
35
+ />
36
+ <span v-else v-html="searchableColumns[fieldNum * (r - 1) + (n - 1)].label.replace(/\\n/g, '</br>')" />:
37
+ </template>
38
+ <el-date-picker
39
+ v-if="
40
+ searchableColumns[fieldNum * (r - 1) + (n - 1)].dataType === 'DATE' ||
41
+ searchableColumns[fieldNum * (r - 1) + (n - 1)].componentType === 'date'
24
42
  "
25
- :prop="searchableColumns[fieldNum * (r - 1) + (n - 1)].prop"
26
- :style="{ paddingLeft: '10px', minWidth: '200px' }"
27
- >
28
- <template v-slot:label>
29
- <span
30
- v-if="
31
- searchableColumns[fieldNum * (r - 1) + (n - 1)].searchLabel &&
32
- searchableColumns[fieldNum * (r - 1) + (n - 1)]
33
- .searchLabel !== ''
34
- "
35
- v-html="
36
- searchableColumns[
37
- fieldNum * (r - 1) + (n - 1)
38
- ].searchLabel.replace(/\\n/g, '</br>')
39
- "
40
- />
41
- <span
42
- v-else
43
- v-html="
44
- searchableColumns[fieldNum * (r - 1) + (n - 1)].label.replace(
45
- /\\n/g,
46
- '</br>'
47
- )
48
- "
49
- />
50
- </template>
51
- <el-date-picker
52
- v-if="
53
- searchableColumns[fieldNum * (r - 1) + (n - 1)].dataType ===
54
- 'DATE' ||
55
- searchableColumns[fieldNum * (r - 1) + (n - 1)]
56
- .componentType === 'date'
57
- "
58
- :end-placeholder="$t('imatrixUIMessage.endDate')"
59
- :model-value="
60
- getFormItemValue(
61
- searchableColumns[fieldNum * (r - 1) + (n - 1)].prop
62
- )
63
- "
64
- :range-separator="$t('imatrixUIPublicModel.to')"
65
- :start-placeholder="$t('imatrixUIMessage.startDate')"
66
- :style="
67
- searchableColumns[fieldNum * (r - 1) + (n - 1)]
68
- .searchControlWidth
69
- "
70
- type="daterange"
71
- unlink-panels
72
- value-format="YYYY-MM-DD"
73
- @input="
74
- setValueToModelProp(
75
- searchableColumns[fieldNum * (r - 1) + (n - 1)].prop,
76
- $event
77
- )
78
- "
79
- />
43
+ :end-placeholder="$t('imatrixUIMessage.endDate')"
44
+ :model-value="getFormItemValue(searchableColumns[fieldNum * (r - 1) + (n - 1)].prop)"
45
+ :range-separator="$t('imatrixUIPublicModel.to')"
46
+ :start-placeholder="$t('imatrixUIMessage.startDate')"
47
+ :style="searchableColumns[fieldNum * (r - 1) + (n - 1)].searchControlWidth"
48
+ type="daterange"
49
+ unlink-panels
50
+ value-format="YYYY-MM-DD"
51
+ @input="setValueToModelProp(searchableColumns[fieldNum * (r - 1) + (n - 1)].prop, $event)"
52
+ />
80
53
 
81
- <el-date-picker
82
- v-else-if="
83
- searchableColumns[fieldNum * (r - 1) + (n - 1)]
84
- .componentType === 'dateTimePicker'
85
- "
86
- :end-placeholder="$t('imatrixUIMessage.endDate')"
87
- :model-value="
88
- getFormItemValue(
89
- searchableColumns[fieldNum * (r - 1) + (n - 1)].prop
90
- )
91
- "
92
- :range-separator="$t('imatrixUIPublicModel.to')"
93
- :start-placeholder="$t('imatrixUIMessage.startDate')"
94
- :style="
95
- searchableColumns[fieldNum * (r - 1) + (n - 1)]
96
- .searchControlWidth
97
- "
98
- type="datetimerange"
99
- unlink-panels
100
- value-format="YYYY-MM-DD HH:mm:ss"
101
- @input="
102
- setValueToModelProp(
103
- searchableColumns[fieldNum * (r - 1) + (n - 1)].prop,
104
- $event
105
- )
106
- "
107
- />
54
+ <el-date-picker
55
+ v-else-if="searchableColumns[fieldNum * (r - 1) + (n - 1)].componentType === 'dateTimePicker'"
56
+ :end-placeholder="$t('imatrixUIMessage.endDate')"
57
+ :model-value="getFormItemValue(searchableColumns[fieldNum * (r - 1) + (n - 1)].prop)"
58
+ :range-separator="$t('imatrixUIPublicModel.to')"
59
+ :start-placeholder="$t('imatrixUIMessage.startDate')"
60
+ :style="searchableColumns[fieldNum * (r - 1) + (n - 1)].searchControlWidth"
61
+ type="datetimerange"
62
+ unlink-panels
63
+ value-format="YYYY-MM-DD HH:mm:ss"
64
+ @input="setValueToModelProp(searchableColumns[fieldNum * (r - 1) + (n - 1)].prop, $event)"
65
+ />
108
66
 
109
- <el-date-picker
110
- v-else-if="
111
- searchableColumns[fieldNum * (r - 1) + (n - 1)].dataType ===
112
- 'TIME' &&
113
- searchableColumns[fieldNum * (r - 1) + (n - 1)]
114
- .componentType === 'timepicker'
115
- "
116
- :end-placeholder="$t('imatrixUIMessage.endDate')"
117
- :model-value="
118
- getFormItemValue(
119
- searchableColumns[fieldNum * (r - 1) + (n - 1)].prop
120
- )
121
- "
122
- :range-separator="$t('imatrixUIPublicModel.to')"
123
- :start-placeholder="$t('imatrixUIMessage.startDate')"
124
- :style="
125
- searchableColumns[fieldNum * (r - 1) + (n - 1)]
126
- .searchControlWidth
127
- "
128
- type="datetimerange"
129
- unlink-panels
130
- value-format="HH:mm:ss"
131
- @input="
132
- setValueToModelProp(
133
- searchableColumns[fieldNum * (r - 1) + (n - 1)].prop,
134
- $event
135
- )
136
- "
137
- />
67
+ <el-date-picker
68
+ v-else-if="
69
+ searchableColumns[fieldNum * (r - 1) + (n - 1)].dataType === 'TIME' &&
70
+ searchableColumns[fieldNum * (r - 1) + (n - 1)].componentType === 'timepicker'
71
+ "
72
+ :end-placeholder="$t('imatrixUIMessage.endDate')"
73
+ :model-value="getFormItemValue(searchableColumns[fieldNum * (r - 1) + (n - 1)].prop)"
74
+ :range-separator="$t('imatrixUIPublicModel.to')"
75
+ :start-placeholder="$t('imatrixUIMessage.startDate')"
76
+ :style="searchableColumns[fieldNum * (r - 1) + (n - 1)].searchControlWidth"
77
+ type="datetimerange"
78
+ unlink-panels
79
+ value-format="HH:mm:ss"
80
+ @input="setValueToModelProp(searchableColumns[fieldNum * (r - 1) + (n - 1)].prop, $event)"
81
+ />
138
82
 
139
- <el-time-picker
140
- v-else-if="
141
- searchableColumns[fieldNum * (r - 1) + (n - 1)]
142
- .componentType === 'timepicker' &&
143
- searchableColumns[fieldNum * (r - 1) + (n - 1)].dataType !==
144
- 'TIME' &&
145
- searchableColumns[fieldNum * (r - 1) + (n - 1)].dataType !==
146
- 'DATE'
147
- "
148
- :model-value="
149
- getFormItemValue(
150
- searchableColumns[fieldNum * (r - 1) + (n - 1)].prop
151
- )
152
- "
153
- :placeholder="$t('imatrixUIMessage.selectTime')"
154
- style="width: 100%"
155
- type="fixed-time"
156
- value-format="HH:mm:ss"
157
- @input="
158
- setValueToModelProp(
159
- searchableColumns[fieldNum * (r - 1) + (n - 1)].prop,
160
- $event
161
- )
162
- "
163
- />
164
- <el-select
165
- v-else-if="
166
- (searchableColumns[fieldNum * (r - 1) + (n - 1)]
167
- .componentType &&
168
- searchableColumns[fieldNum * (r - 1) + (n - 1)]
169
- .componentType === 'select') ||
170
- searchableColumns[fieldNum * (r - 1) + (n - 1)].dataType ===
171
- 'BOOLEAN'
172
- "
173
- :model-value="
174
- getFormItemValue(
175
- searchableColumns[fieldNum * (r - 1) + (n - 1)].prop
176
- )
177
- "
178
- :placeholder="$t('imatrixUIMessage.pleaseSelect')"
179
- :style="
180
- searchableColumns[fieldNum * (r - 1) + (n - 1)]
181
- .searchControlWidth
182
- "
183
- clearable
184
- @input="
185
- setValueToModelProp(
186
- searchableColumns[fieldNum * (r - 1) + (n - 1)].prop,
187
- $event
188
- )
189
- "
190
- >
191
- <el-option
192
- v-for="item in searchableColumns[fieldNum * (r - 1) + (n - 1)]
193
- .valueSet"
194
- :key="item.value"
195
- :label="item.label"
196
- :value="item.value"
197
- />
198
- </el-select>
199
- <el-select
200
- v-else-if="
201
- searchableColumns[fieldNum * (r - 1) + (n - 1)].componentType &&
202
- searchableColumns[fieldNum * (r - 1) + (n - 1)]
203
- .componentType === 'multiselect'
204
- "
205
- :model-value="
206
- getFormItemValue(
207
- searchableColumns[fieldNum * (r - 1) + (n - 1)].prop
208
- )
209
- "
210
- :placeholder="$t('imatrixUIMessage.pleaseSelect')"
211
- :style="
212
- searchableColumns[fieldNum * (r - 1) + (n - 1)]
213
- .searchControlWidth
214
- "
215
- clearable
216
- collapse-tags
217
- multiple
218
- @input="
219
- setValueToModelProp(
220
- searchableColumns[fieldNum * (r - 1) + (n - 1)].prop,
221
- $event
222
- )
223
- "
224
- >
225
- <el-option
226
- v-for="item in searchableColumns[fieldNum * (r - 1) + (n - 1)]
227
- .valueSet"
228
- :key="item.value"
229
- :label="item.label"
230
- :value="item.value"
231
- />
232
- </el-select>
233
- <!--
83
+ <el-time-picker
84
+ v-else-if="
85
+ searchableColumns[fieldNum * (r - 1) + (n - 1)].componentType === 'timepicker' &&
86
+ searchableColumns[fieldNum * (r - 1) + (n - 1)].dataType !== 'TIME' &&
87
+ searchableColumns[fieldNum * (r - 1) + (n - 1)].dataType !== 'DATE'
88
+ "
89
+ :model-value="getFormItemValue(searchableColumns[fieldNum * (r - 1) + (n - 1)].prop)"
90
+ :placeholder="$t('imatrixUIMessage.selectTime')"
91
+ style="width: 100%"
92
+ type="fixed-time"
93
+ value-format="HH:mm:ss"
94
+ @input="setValueToModelProp(searchableColumns[fieldNum * (r - 1) + (n - 1)].prop, $event)"
95
+ />
96
+ <el-select
97
+ v-else-if="
98
+ (searchableColumns[fieldNum * (r - 1) + (n - 1)].componentType &&
99
+ searchableColumns[fieldNum * (r - 1) + (n - 1)].componentType === 'select') ||
100
+ searchableColumns[fieldNum * (r - 1) + (n - 1)].dataType === 'BOOLEAN'
101
+ "
102
+ :model-value="getFormItemValue(searchableColumns[fieldNum * (r - 1) + (n - 1)].prop)"
103
+ :placeholder="$t('imatrixUIMessage.pleaseSelect')"
104
+ :style="searchableColumns[fieldNum * (r - 1) + (n - 1)].searchControlWidth"
105
+ clearable
106
+ @change="setValueToModelProp(searchableColumns[fieldNum * (r - 1) + (n - 1)].prop, $event)"
107
+ >
108
+ <el-option
109
+ v-for="item in searchableColumns[fieldNum * (r - 1) + (n - 1)].valueSet"
110
+ :key="item.value"
111
+ :label="item.label"
112
+ :value="item.value"
113
+ />
114
+ </el-select>
115
+ <el-select
116
+ v-else-if="
117
+ searchableColumns[fieldNum * (r - 1) + (n - 1)].componentType &&
118
+ searchableColumns[fieldNum * (r - 1) + (n - 1)].componentType === 'multiselect'
119
+ "
120
+ :model-value="getFormItemValue(searchableColumns[fieldNum * (r - 1) + (n - 1)].prop)"
121
+ :placeholder="$t('imatrixUIMessage.pleaseSelect')"
122
+ :style="searchableColumns[fieldNum * (r - 1) + (n - 1)].searchControlWidth"
123
+ clearable
124
+ collapse-tags
125
+ multiple
126
+ @input="setValueToModelProp(searchableColumns[fieldNum * (r - 1) + (n - 1)].prop, $event)"
127
+ >
128
+ <el-option
129
+ v-for="item in searchableColumns[fieldNum * (r - 1) + (n - 1)].valueSet"
130
+ :key="item.value"
131
+ :label="item.label"
132
+ :value="item.value"
133
+ />
134
+ </el-select>
135
+ <!--
234
136
  <el-input-number
235
137
  v-else-if="searchableColumns[fieldNum*(r-1)+(n-1)].componentType && searchableColumns[fieldNum*(r-1)+(n-1)].componentType==='inputNumber'"
236
138
  :value="getFormItemValue(searchableColumns[fieldNum*(r-1)+(n-1)].prop)"
237
139
  @input="setValueToModelProp(searchableColumns[fieldNum*(r-1)+(n-1)].prop,$event)"
238
140
  /> -->
239
141
 
240
- <search-form-number
241
- v-else-if="
242
- searchableColumns[fieldNum * (r - 1) + (n - 1)].componentType &&
243
- searchableColumns[fieldNum * (r - 1) + (n - 1)]
244
- .componentType === 'inputNumber'
245
- "
246
- :n="n"
247
- :r="r"
248
- @setValue="setNumberValue"
249
- />
142
+ <search-form-number
143
+ v-else-if="
144
+ searchableColumns[fieldNum * (r - 1) + (n - 1)].componentType &&
145
+ searchableColumns[fieldNum * (r - 1) + (n - 1)].componentType === 'inputNumber'
146
+ "
147
+ :n="n"
148
+ :r="r"
149
+ @setValue="setNumberValue"
150
+ />
250
151
 
251
- <el-switch
252
- v-else-if="
253
- searchableColumns[fieldNum * (r - 1) + (n - 1)].componentType &&
254
- searchableColumns[fieldNum * (r - 1) + (n - 1)]
255
- .componentType === 'switch'
256
- "
257
- :model-value="
258
- getFormItemValue(
259
- searchableColumns[fieldNum * (r - 1) + (n - 1)].prop
260
- )
261
- "
262
- :style="
263
- searchableColumns[fieldNum * (r - 1) + (n - 1)]
264
- .searchControlWidth
265
- "
266
- active-color="#13ce66"
267
- inactive-color="#ff4949"
268
- @input="
269
- setValueToModelProp(
270
- searchableColumns[fieldNum * (r - 1) + (n - 1)].prop,
271
- $event
272
- )
273
- "
274
- />
275
- <el-slider
276
- v-else-if="
277
- searchableColumns[fieldNum * (r - 1) + (n - 1)].componentType &&
278
- searchableColumns[fieldNum * (r - 1) + (n - 1)]
279
- .componentType === 'slider'
280
- "
281
- :model-value="
282
- getFormItemValue(
283
- searchableColumns[fieldNum * (r - 1) + (n - 1)].prop
284
- )
285
- "
286
- :style="
287
- searchableColumns[fieldNum * (r - 1) + (n - 1)]
288
- .searchControlWidth
289
- "
290
- @input="
291
- setValueToModelProp(
292
- searchableColumns[fieldNum * (r - 1) + (n - 1)].prop,
293
- $event
294
- )
295
- "
296
- />
152
+ <el-switch
153
+ v-else-if="
154
+ searchableColumns[fieldNum * (r - 1) + (n - 1)].componentType &&
155
+ searchableColumns[fieldNum * (r - 1) + (n - 1)].componentType === 'switch'
156
+ "
157
+ :model-value="getFormItemValue(searchableColumns[fieldNum * (r - 1) + (n - 1)].prop)"
158
+ :style="searchableColumns[fieldNum * (r - 1) + (n - 1)].searchControlWidth"
159
+ active-color="#13ce66"
160
+ inactive-color="#ff4949"
161
+ @input="setValueToModelProp(searchableColumns[fieldNum * (r - 1) + (n - 1)].prop, $event)"
162
+ />
163
+ <el-slider
164
+ v-else-if="
165
+ searchableColumns[fieldNum * (r - 1) + (n - 1)].componentType &&
166
+ searchableColumns[fieldNum * (r - 1) + (n - 1)].componentType === 'slider'
167
+ "
168
+ :model-value="getFormItemValue(searchableColumns[fieldNum * (r - 1) + (n - 1)].prop)"
169
+ :style="searchableColumns[fieldNum * (r - 1) + (n - 1)].searchControlWidth"
170
+ @input="setValueToModelProp(searchableColumns[fieldNum * (r - 1) + (n - 1)].prop, $event)"
171
+ />
297
172
 
298
- <el-rate
299
- v-else-if="
300
- searchableColumns[fieldNum * (r - 1) + (n - 1)].componentType &&
301
- searchableColumns[fieldNum * (r - 1) + (n - 1)]
302
- .componentType === 'rate'
303
- "
304
- :model-value="
305
- getFormItemValue(
306
- searchableColumns[fieldNum * (r - 1) + (n - 1)].prop
307
- )
308
- "
309
- :style="
310
- searchableColumns[fieldNum * (r - 1) + (n - 1)]
311
- .searchControlWidth
312
- "
313
- @input="
314
- setValueToModelProp(
315
- searchableColumns[fieldNum * (r - 1) + (n - 1)].prop,
316
- $event
317
- )
318
- "
319
- />
320
- <span
321
- v-else-if="
322
- customComponent(
323
- searchableColumns[fieldNum * (r - 1) + (n - 1)]
324
- ) === true
325
- "
326
- >
327
- <component
328
- :is="
329
- searchableColumns[fieldNum * (r - 1) + (n - 1)].componentName
330
- "
331
- :ref="
332
- searchableColumns[fieldNum * (r - 1) + (n - 1)].componentName
333
- "
334
- :prop="searchableColumns[fieldNum * (r - 1) + (n - 1)].prop"
335
- :value="
336
- getFormItemValue(
337
- searchableColumns[fieldNum * (r - 1) + (n - 1)].prop
338
- )
339
- "
340
- class="customComponent"
341
- @input="
342
- setValueToModelProp(
343
- searchableColumns[fieldNum * (r - 1) + (n - 1)].prop,
344
- $event
345
- )
346
- "
347
- />
348
- </span>
349
- <el-input
350
- v-else
351
- :model-value="
352
- getFormItemValue(
353
- searchableColumns[fieldNum * (r - 1) + (n - 1)].prop
354
- )
355
- "
356
- :style="
357
- searchableColumns[fieldNum * (r - 1) + (n - 1)]
358
- .searchControlWidth
359
- "
360
- @input="
361
- setValueToModelProp(
362
- searchableColumns[fieldNum * (r - 1) + (n - 1)].prop,
363
- $event
364
- )
365
- "
366
- @keyup.enter="submitForm('searchForm')"
367
- />
368
- </el-form-item>
369
- </td>
370
- </tr>
371
- </table>
173
+ <el-rate
174
+ v-else-if="
175
+ searchableColumns[fieldNum * (r - 1) + (n - 1)].componentType &&
176
+ searchableColumns[fieldNum * (r - 1) + (n - 1)].componentType === 'rate'
177
+ "
178
+ :model-value="getFormItemValue(searchableColumns[fieldNum * (r - 1) + (n - 1)].prop)"
179
+ :style="searchableColumns[fieldNum * (r - 1) + (n - 1)].searchControlWidth"
180
+ @input="setValueToModelProp(searchableColumns[fieldNum * (r - 1) + (n - 1)].prop, $event)"
181
+ />
182
+ <span v-else-if="customComponent(searchableColumns[fieldNum * (r - 1) + (n - 1)]) === true">
183
+ <component
184
+ :is="searchableColumns[fieldNum * (r - 1) + (n - 1)].componentName"
185
+ :ref="searchableColumns[fieldNum * (r - 1) + (n - 1)].componentName"
186
+ :prop="searchableColumns[fieldNum * (r - 1) + (n - 1)].prop"
187
+ :value="getFormItemValue(searchableColumns[fieldNum * (r - 1) + (n - 1)].prop)"
188
+ class="customComponent"
189
+ @input="setValueToModelProp(searchableColumns[fieldNum * (r - 1) + (n - 1)].prop, $event)"
190
+ />
191
+ </span>
192
+ <el-input
193
+ v-else
194
+ :model-value="getFormItemValue(searchableColumns[fieldNum * (r - 1) + (n - 1)].prop)"
195
+ :style="searchableColumns[fieldNum * (r - 1) + (n - 1)].searchControlWidth"
196
+ @input="setValueToModelProp(searchableColumns[fieldNum * (r - 1) + (n - 1)].prop, $event)"
197
+ @keyup.enter="submitForm('searchForm')"
198
+ />
199
+ </el-form-item>
200
+ </el-col>
201
+ <!-- <el-col :span="6">
202
+ <el-form-item style="margin-left: 10px" label-width="0px">
203
+ <el-button :loading="loading" size="default" type="primary" @click="submitForm('searchForm')">
204
+ {{ $t('imatrixUIPublicModel.sure') }}
205
+ </el-button>
206
+ <el-button :loading="loading" size="default" @click="resetForm('searchForm')">
207
+ {{ $t('imatrixUIPublicModel.reset') }}
208
+ </el-button>
209
+ </el-form-item>
210
+ </el-col> -->
211
+ </el-row>
372
212
 
373
- <el-form-item class="search-btn">
374
- <el-button
375
- :loading="loading"
376
- size="default"
377
- type="primary"
378
- @click="submitForm('searchForm')"
379
- >
380
- {{ $t('imatrixUIPublicModel.sure') }}
381
- </el-button>
382
- <el-button
383
- :loading="loading"
384
- size="default"
385
- @click="resetForm('searchForm')"
386
- >
387
- {{ $t('imatrixUIPublicModel.reset') }}
388
- </el-button>
389
- </el-form-item>
390
- </el-form>
213
+ <el-row class="search-btn">
214
+ <el-button :loading="loading" size="default" type="primary" @click="submitForm('searchForm')">
215
+ {{ $t('imatrixUIPublicModel.sure') }}
216
+ </el-button>
217
+ <el-button :loading="loading" size="default" @click="resetForm('searchForm')">
218
+ {{ $t('imatrixUIPublicModel.reset') }}
219
+ </el-button>
220
+ </el-row>
221
+ </el-form>
391
222
  </template>
392
223
 
393
224
  <script>
394
- import {$on, $off, $once, $emit} from '../../utils/gogocodeTransfer'
225
+ import { $on, $off, $once, $emit } from '../../utils/gogocodeTransfer'
395
226
  import searchMethods from './search-methods'
396
227
  import searchFormNumber from './search-form-number.vue'
397
228
  import store from './store'
398
229
  // import { isOptionFunction, getSearchObject } from './utils'
399
- import {addDynamicProp} from './utils'
230
+ import { addDynamicProp } from './utils'
400
231
  import * as Vue from 'vue'
401
232
 
402
233
  export default {
403
- name: 'SearchForm',
404
- components: {
405
- searchFormNumber,
406
- },
407
- props: {
408
- columns: {
409
- type: Array,
410
- default: null,
411
- },
412
- code: {
413
- type: String,
414
- default: null,
415
- },
416
- url: {
417
- type: String,
418
- default: null,
419
- },
420
- pagination: {
421
- type: Object,
422
- default: null,
423
- },
424
- query: {
425
- type: Object,
426
- default: null,
427
- },
428
- searchParam: {
429
- type: Object,
430
- default: null,
431
- },
432
- initSearchProps: {
433
- type: Array,
434
- default: null,
435
- },
436
- // 九宫格组件的id
437
- gridId: {
438
- type: String,
439
- default: '_nineGrid',
440
- },
441
- },
442
- data() {
443
- const storeId = this.code + '~' + this.gridId
444
- const customComponentNames = new Set()
445
- const gridParams = store.get(storeId)
446
- let searchForm = {}
447
- if (this.searchParam !== null) {
448
- searchForm = JSON.parse(JSON.stringify(this.searchParam))
449
- // searchForm = this.searchParam
450
- }
451
- console.log('searchForm=', searchForm)
452
- const searchColumns = this.getSearchableColumns()
453
- if (this.initSearchProps === undefined || this.initSearchProps === null) {
454
- this.initSearchProps = []
455
- }
456
- searchColumns.forEach((column) => {
457
- if (this.initSearchProps.indexOf(column.prop) < 0) {
458
- // 表示没有默认初始查询字段
459
- if (column.prop.indexOf('.') > 0) {
460
- // 动态给searchForm添加属性,包括多级嵌套属性,属性的初始值都为 null
461
- addDynamicProp(searchForm, column.prop)
462
- } else {
463
- searchForm[column.prop] = null
464
- }
465
- }
466
- })
234
+ name: 'SearchForm',
235
+ components: {
236
+ searchFormNumber
237
+ },
238
+ props: {
239
+ columns: {
240
+ type: Array,
241
+ default: null
242
+ },
243
+ code: {
244
+ type: String,
245
+ default: null
246
+ },
247
+ url: {
248
+ type: String,
249
+ default: null
250
+ },
251
+ pagination: {
252
+ type: Object,
253
+ default: null
254
+ },
255
+ query: {
256
+ type: Object,
257
+ default: null
258
+ },
259
+ searchParam: {
260
+ type: Object,
261
+ default: null
262
+ },
263
+ initSearchProps: {
264
+ type: Array,
265
+ default: null
266
+ },
267
+ // 九宫格组件的id
268
+ gridId: {
269
+ type: String,
270
+ default: '_nineGrid'
271
+ }
272
+ },
273
+ data() {
274
+ const storeId = this.code + '~' + this.gridId
275
+ const customComponentNames = new Set()
276
+ const gridParams = store.get(storeId)
277
+ let searchForm = {}
278
+ if (this.searchParam !== null) {
279
+ searchForm = JSON.parse(JSON.stringify(this.searchParam))
280
+ // searchForm = this.searchParam
281
+ }
282
+ console.log('searchForm=', searchForm)
283
+ const searchColumns = this.getSearchableColumns()
284
+ if (this.initSearchProps === undefined || this.initSearchProps === null) {
285
+ this.initSearchProps = []
286
+ }
287
+ searchColumns.forEach((column) => {
288
+ if (this.initSearchProps.indexOf(column.prop) < 0) {
289
+ // 表示没有默认初始查询字段
290
+ if (column.prop.indexOf('.') > 0) {
291
+ // 动态给searchForm添加属性,包括多级嵌套属性,属性的初始值都为 null
292
+ addDynamicProp(searchForm, column.prop)
293
+ } else {
294
+ searchForm[column.prop] = null
295
+ }
296
+ }
297
+ })
467
298
 
468
- const spanNum = this.getSpanNum(storeId)
469
- const fieldNum = this.getFieldNumPerRow(storeId)
470
- const rowNum = Math.ceil(searchColumns.length / fieldNum)
471
- // console.log('searchColumns.length=' + searchColumns.length + ',fieldNum=' + fieldNum + ',rowNum=' + rowNum)
472
- // // -2是把
473
- // const dateSpanNum = (spanNum - 2) / 2
299
+ const spanNum = this.getSpanNum(storeId)
300
+ const fieldNum = this.getFieldNumPerRow(storeId)
301
+ const rowNum = Math.ceil(searchColumns.length / fieldNum)
302
+ // console.log('searchColumns.length=' + searchColumns.length + ',fieldNum=' + fieldNum + ',rowNum=' + rowNum)
303
+ // // -2是把
304
+ // const dateSpanNum = (spanNum - 2) / 2
474
305
 
475
- return {
476
- searchForm,
477
- rules: {},
478
- searchParams: [],
479
- labelWidth:
480
- gridParams.options.search && gridParams.options.search.labelWidth
481
- ? gridParams.options.search.labelWidth
482
- : '80px',
483
- customComponentNames: customComponentNames,
484
- componentName: '',
485
- spanNum: spanNum,
486
- fieldNum: fieldNum, // 每行放的字段个数
487
- rowNum: rowNum, // 一共有几行
488
- loading: false, // 是否正在查询,默认时否
489
- storeId, // 缓存的列表id
490
- }
491
- },
492
- computed: {
493
- searchableColumns() {
494
- return this.getSearchableColumns()
495
- },
496
- },
497
- methods: {
498
- ...searchMethods,
499
- // 获得每行排放的字段个数
500
- getColumnNumPerRow(rowIndex, searchColumnsLength) {
501
- let columnNumPerRow = this.fieldNum
502
- if (this.fieldNum * rowIndex > searchColumnsLength) {
503
- // 表示字段无法填满最后一行
504
- columnNumPerRow = searchColumnsLength - this.fieldNum * (rowIndex - 1)
505
- }
506
- return columnNumPerRow
507
- },
508
- // 每行放的字段个数
509
- getFieldNumPerRow(storeId) {
510
- const gridParams = store.get(storeId)
511
- // console.log('gridParamsgridParamsgridParamsgridParams', gridParams)
512
- return gridParams.options.search && gridParams.options.search.fieldNum
513
- ? gridParams.options.search.fieldNum
514
- : 4
515
- },
516
- // 根据每行显示的字段个数,确定栅栏个数,默认是4个字段。最多就只能放6个字段
517
- getSpanNum(storeId) {
518
- const fieldNum = this.getFieldNumPerRow(storeId)
519
- if (fieldNum === 1) {
520
- return 14
521
- } else if (fieldNum === 2) {
522
- return 10
523
- } else if (fieldNum === 3) {
524
- return 8
525
- } else if (fieldNum === 4) {
526
- return 6
527
- } else {
528
- // 6个字段
529
- return 4
530
- }
531
- },
532
- setValueToModelProp(prop, value) {
533
- if (prop.indexOf('.') > 0) {
534
- const parentOjbect = this.getParentObject(prop)
535
- // 嵌套属性中的最后一个属性是属于这个中间父对象的,所有要通过中间父对象来赋值
536
- parentOjbect[prop.substring(prop.lastIndexOf('.') + 1)] = value
537
- } else {
538
- this.searchForm[prop] = value
539
- }
540
- },
541
- getSearchableColumns(columns, searchColumns) {
542
- // console.log('columnscolumnscolumns', columns)
543
- if (!this.customComponentNames) {
544
- this.customComponentNames = new Set()
545
- }
546
- if (!searchColumns) {
547
- searchColumns = []
548
- }
549
- if (!columns) {
550
- columns = this.columns
551
- }
552
- for (let i = 0; i < columns.length; i++) {
553
- const column = columns[i]
554
- if (
555
- column.prop === '$index' ||
556
- column.prop === '$selection' ||
557
- column.dynamic
558
- ) {
559
- // 序号和复选框列、动态列 不属于该组件的查询字段
560
- continue
561
- }
562
- if (column.groupHeader) {
563
- // 组合表头中子表头的字段查询
564
- this.getSearchableColumns(column.children, searchColumns)
565
- } else {
566
- if (
567
- column.queryType === 'normal' &&
568
- !column.custom &&
569
- column.prop !== ''
570
- ) {
571
- // 表示是普通查询,且不是占位符列,是查询字段
572
- if (
573
- typeof column.componentType === 'undefined' ||
574
- column.componentType === ''
575
- ) {
576
- column.componentType = 'input'
577
- }
578
- if (column.querySetting && column.querySetting !== '') {
579
- const querySetting = JSON.parse(column.querySetting)
580
- if (querySetting.width) {
581
- column.searchControlWidth = 'width:' + querySetting.width + 'px'
582
- }
583
- if (querySetting.labelWidth) {
584
- column.searchLabelWidth = querySetting.labelWidth + 'px'
585
- }
586
- if (querySetting.label) {
587
- column.searchLabel = querySetting.label
588
- }
589
- }
590
- // 行编辑时自定义编辑组件
591
- if (column.componentType.indexOf('custom:') >= 0) {
592
- column.componentName = column.componentType.substring(
593
- column.componentType.indexOf(':') + 1
594
- )
595
- this.customComponentNames.add(column.componentName)
596
- } else {
597
- column.componentName = ''
598
- }
599
- searchColumns.push(column)
600
- }
601
- }
602
- }
603
- return searchColumns
604
- },
605
- customComponent(column) {
606
- const gridParams = store.get(this.storeId)
607
- if (column.componentName && column.componentName !== '') {
608
- this.customComponentNames.add(column.componentName)
609
- return true
610
- }
611
- if (
612
- (!column.componentName || column.componentName === '') &&
613
- gridParams.options &&
614
- gridParams.options.search &&
615
- gridParams.options.search.customSearchElements
616
- ) {
617
- // 定义了自定义查询组件
618
- const propSearchEle =
619
- gridParams.options.search.customSearchElements[column.prop]
620
- // console.log('customComponent-customSearchElements-propSearchEle-', column.prop)
621
- if (propSearchEle) {
622
- column.componentName = 'custom-' + column.prop
623
- const component = propSearchEle.call(this, column)
624
- // console.log('customComponent-customSearchElements-')
625
- if (component) {
626
- this.customComponentNames.add(column.componentName)
627
- window.$vueApp.component(column.componentName, component)
628
- return true
629
- }
630
- }
631
- }
632
- return false
633
- },
634
- submitForm(formName) {
635
- this.$refs[formName].validate((valid) => {
636
- if (valid) {
637
- // const searchDemo = [
638
- // { leftBracket: '', propName: 'name', enumName: '', operator: 'contain', propValue: '系统', rightBracket: '', joinSign: 'and', dataType: 'TEXT' },
639
- // { leftBracket: '', propName: 'createdTime', enumName: '', operator: 'eq', startValue: '2019-01-29', endValue: '2019-01-30', propValue: '2019-01-30', rightBracket: '', joinSign: 'and', dataType: 'DATE' },
640
- // { leftBracket: '', propName: 'enabledState', enumName: 'tech.imatrix.enumeration.MenuState', operator: 'eq', propValue: 'ENABLE', rightBracket: '', joinSign: 'and', dataType: 'ENUM' }
641
- // ]
642
- this.loading = true
643
- this.searchParams = this.packageSearchParam()
644
- $emit(this, 'search', this.searchParams, true)
645
- } else {
646
- // console.log('error submit!!')
647
- return false
648
- }
649
- })
650
- },
306
+ return {
307
+ searchForm,
308
+ rules: {},
309
+ searchParams: [],
310
+ labelWidth:
311
+ gridParams.options.search && gridParams.options.search.labelWidth
312
+ ? gridParams.options.search.labelWidth
313
+ : '80px',
314
+ customComponentNames: customComponentNames,
315
+ componentName: '',
316
+ spanNum: spanNum,
317
+ fieldNum: fieldNum, // 每行放的字段个数
318
+ rowNum: rowNum, // 一共有几行
319
+ loading: false, // 是否正在查询,默认时否
320
+ storeId // 缓存的列表id
321
+ }
322
+ },
323
+ computed: {
324
+ searchableColumns() {
325
+ return this.getSearchableColumns()
326
+ }
327
+ },
328
+ methods: {
329
+ ...searchMethods,
330
+ // 获得每行排放的字段个数
331
+ getColumnNumPerRow(rowIndex, searchColumnsLength) {
332
+ let columnNumPerRow = this.fieldNum
333
+ if (this.fieldNum * rowIndex > searchColumnsLength) {
334
+ // 表示字段无法填满最后一行
335
+ columnNumPerRow = searchColumnsLength - this.fieldNum * (rowIndex - 1)
336
+ }
337
+ return columnNumPerRow
338
+ },
339
+ // 每行放的字段个数
340
+ getFieldNumPerRow(storeId) {
341
+ const gridParams = store.get(storeId)
342
+ // console.log('gridParamsgridParamsgridParamsgridParams', gridParams)
343
+ return gridParams.options.search && gridParams.options.search.fieldNum ? gridParams.options.search.fieldNum : 4
344
+ },
345
+ // 根据每行显示的字段个数,确定栅栏个数,默认是4个字段。最多就只能放6个字段
346
+ getSpanNum(storeId) {
347
+ const fieldNum = this.getFieldNumPerRow(storeId)
348
+ if (fieldNum === 1) {
349
+ return 14
350
+ } else if (fieldNum === 2) {
351
+ return 10
352
+ } else if (fieldNum === 3) {
353
+ return 8
354
+ } else if (fieldNum === 4) {
355
+ return 6
356
+ } else {
357
+ // 6个字段
358
+ return 4
359
+ }
360
+ },
361
+ setValueToModelProp(prop, value) {
362
+ if (prop.indexOf('.') > 0) {
363
+ const parentOjbect = this.getParentObject(prop)
364
+ // 嵌套属性中的最后一个属性是属于这个中间父对象的,所有要通过中间父对象来赋值
365
+ parentOjbect[prop.substring(prop.lastIndexOf('.') + 1)] = value
366
+ } else {
367
+ this.searchForm[prop] = value
368
+ }
369
+ },
370
+ getSearchableColumns(columns, searchColumns) {
371
+ // console.log('columnscolumnscolumns', columns)
372
+ if (!this.customComponentNames) {
373
+ this.customComponentNames = new Set()
374
+ }
375
+ if (!searchColumns) {
376
+ searchColumns = []
377
+ }
378
+ if (!columns) {
379
+ columns = this.columns
380
+ }
381
+ for (let i = 0; i < columns.length; i++) {
382
+ const column = columns[i]
383
+ if (column.prop === '$index' || column.prop === '$selection' || column.dynamic) {
384
+ // 序号和复选框列、动态列 不属于该组件的查询字段
385
+ continue
386
+ }
387
+ if (column.groupHeader) {
388
+ // 组合表头中子表头的字段查询
389
+ this.getSearchableColumns(column.children, searchColumns)
390
+ } else {
391
+ if (column.queryType === 'normal' && !column.custom && column.prop !== '') {
392
+ // 表示是普通查询,且不是占位符列,是查询字段
393
+ if (typeof column.componentType === 'undefined' || column.componentType === '') {
394
+ column.componentType = 'input'
395
+ }
396
+ if (column.querySetting && column.querySetting !== '') {
397
+ const querySetting = JSON.parse(column.querySetting)
398
+ if (querySetting.width) {
399
+ column.searchControlWidth = 'width:' + querySetting.width + 'px'
400
+ }
401
+ if (querySetting.labelWidth) {
402
+ column.searchLabelWidth = querySetting.labelWidth + 'px'
403
+ }
404
+ if (querySetting.label) {
405
+ column.searchLabel = querySetting.label
406
+ }
407
+ }
408
+ // 行编辑时自定义编辑组件
409
+ if (column.componentType.indexOf('custom:') >= 0) {
410
+ column.componentName = column.componentType.substring(column.componentType.indexOf(':') + 1)
411
+ this.customComponentNames.add(column.componentName)
412
+ } else {
413
+ column.componentName = ''
414
+ }
415
+ searchColumns.push(column)
416
+ }
417
+ }
418
+ }
419
+ return searchColumns
420
+ },
421
+ customComponent(column) {
422
+ const gridParams = store.get(this.storeId)
423
+ if (column.componentName && column.componentName !== '') {
424
+ this.customComponentNames.add(column.componentName)
425
+ return true
426
+ }
427
+ if (
428
+ (!column.componentName || column.componentName === '') &&
429
+ gridParams.options &&
430
+ gridParams.options.search &&
431
+ gridParams.options.search.customSearchElements
432
+ ) {
433
+ // 定义了自定义查询组件
434
+ const propSearchEle = gridParams.options.search.customSearchElements[column.prop]
435
+ // console.log('customComponent-customSearchElements-propSearchEle-', column.prop)
436
+ if (propSearchEle) {
437
+ column.componentName = 'custom-' + column.prop
438
+ const component = propSearchEle.call(this, column)
439
+ // console.log('customComponent-customSearchElements-')
440
+ if (component) {
441
+ this.customComponentNames.add(column.componentName)
442
+ window.$vueApp.component(column.componentName, component)
443
+ return true
444
+ }
445
+ }
446
+ }
447
+ return false
448
+ },
449
+ submitForm(formName) {
450
+ this.$refs[formName].validate((valid) => {
451
+ if (valid) {
452
+ // const searchDemo = [
453
+ // { leftBracket: '', propName: 'name', enumName: '', operator: 'contain', propValue: '系统', rightBracket: '', joinSign: 'and', dataType: 'TEXT' },
454
+ // { leftBracket: '', propName: 'createdTime', enumName: '', operator: 'eq', startValue: '2019-01-29', endValue: '2019-01-30', propValue: '2019-01-30', rightBracket: '', joinSign: 'and', dataType: 'DATE' },
455
+ // { leftBracket: '', propName: 'enabledState', enumName: 'tech.imatrix.enumeration.MenuState', operator: 'eq', propValue: 'ENABLE', rightBracket: '', joinSign: 'and', dataType: 'ENUM' }
456
+ // ]
457
+ this.loading = true
458
+ this.searchParams = this.packageSearchParam()
459
+ $emit(this, 'search', this.searchParams, true)
460
+ } else {
461
+ // console.log('error submit!!')
462
+ return false
463
+ }
464
+ })
465
+ },
651
466
 
652
- resetForm(formName) {
653
- // console.log('customComponentNames=', this.customComponentNames)
654
- for (const componentName of this.customComponentNames) {
655
- // 遍历
656
- this.$refs[componentName][0].resetField()
657
- }
658
- // this.$refs[formName].resetFields()
467
+ resetForm(formName) {
468
+ // console.log('customComponentNames=', this.customComponentNames)
469
+ for (const componentName of this.customComponentNames) {
470
+ // 遍历
471
+ this.$refs[componentName][0].resetField()
472
+ }
473
+ // this.$refs[formName].resetFields()
659
474
 
660
- this.searchableColumns.forEach((column) => {
661
- // 表示没有默认初始查询字段
662
- if (column.prop.indexOf('.') > 0) {
663
- // 动态给searchForm添加属性,包括多级嵌套属性,属性的初始值都为 null
664
- addDynamicProp(this.searchForm, column.prop)
665
- } else {
666
- this.searchForm[column.prop] = null
667
- }
668
- })
669
- $emit(this, 'reset')
670
- },
671
- setNumberValue(value, r, n) {
672
- let itemValue = this.getFormItemValue(
673
- this.searchableColumns[this.fieldNum * (r - 1) + (n - 1)].prop
674
- )
675
- itemValue = value
676
- this.setValueToModelProp(
677
- this.searchableColumns[this.fieldNum * (r - 1) + (n - 1)].prop,
678
- itemValue
679
- )
680
- },
681
- },
682
- emits: ['search', 'reset'],
475
+ this.searchableColumns.forEach((column) => {
476
+ // 表示没有默认初始查询字段
477
+ if (column.prop.indexOf('.') > 0) {
478
+ // 动态给searchForm添加属性,包括多级嵌套属性,属性的初始值都为 null
479
+ addDynamicProp(this.searchForm, column.prop)
480
+ } else {
481
+ this.searchForm[column.prop] = null
482
+ }
483
+ })
484
+ $emit(this, 'reset')
485
+ },
486
+ setNumberValue(value, r, n) {
487
+ let itemValue = this.getFormItemValue(this.searchableColumns[this.fieldNum * (r - 1) + (n - 1)].prop)
488
+ itemValue = value
489
+ this.setValueToModelProp(this.searchableColumns[this.fieldNum * (r - 1) + (n - 1)].prop, itemValue)
490
+ }
491
+ },
492
+ emits: ['search', 'reset']
683
493
  }
684
494
  </script>
685
495
 
686
496
  <style scoped>
687
497
  .grid-search-form {
688
- overflow: auto;
498
+ overflow: auto;
689
499
  }
690
500
 
691
501
  .grid-search-form :deep(.el-form-item) {
692
- margin-bottom: 0px;
502
+ margin-bottom: 0px;
693
503
  }
694
504
 
695
505
  .grid-search-form :deep(.search-btn) {
696
- margin-bottom: 5px;
697
- text-align: center;
506
+ justify-content: center; /* 确保按钮居中 */
507
+ /* 可选:间距更美观 */
698
508
  }
699
509
 
700
510
  .grid-search-form :deep(.el-select),
701
511
  .grid-search-form :deep(.customComponent) {
702
- width: 100%;
512
+ width: 100%;
703
513
  }
704
514
  </style>