@leevan/jtui 2.0.41 → 2.0.43

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 (32) hide show
  1. package/examples/App.vue +1 -1
  2. package/examples/tableTest/table-dsj.vue +1 -1
  3. package/examples/tableTest/table-fzbg.vue +1 -1
  4. package/examples/tableTest/table-ptbg.vue +18 -11
  5. package/examples/tableTest/table-tree.vue +1 -1
  6. package/lib/fonts/{iconfont.1749517658045.e174417d.ttf → iconfont.1761545705692.5cf21f71.ttf} +0 -0
  7. package/lib/fonts/iconfont.1761545705692.88bca599.woff +0 -0
  8. package/lib/fonts/iconfont.1761641771104.2a91224d.woff +0 -0
  9. package/lib/fonts/iconfont.1761641771104.7f5e52de.ttf +0 -0
  10. package/lib/jtui.common.js +57432 -16735
  11. package/lib/jtui.css +1 -1
  12. package/lib/jtui.umd.js +57432 -16735
  13. package/lib/jtui.umd.min.js +137 -131
  14. package/package.json +9 -4
  15. package/packages/index.js +11 -3
  16. package/packages/jt-table/filter.js +0 -3
  17. package/packages/jt-table/index.vue +40 -30
  18. package/lib/fonts/iconfont.1749517658045.5ce34dbb.woff +0 -0
  19. package/packages/jt-table-pc/JtTablePc.vue +0 -1438
  20. package/packages/jt-table-pc/comp.js +0 -17
  21. package/packages/jt-table-pc/components/tableColumn.vue +0 -120
  22. package/packages/jt-table-pc/components/tabsBtn.vue +0 -68
  23. package/packages/jt-table-pc/data.js +0 -785
  24. package/packages/jt-table-pc/examples/FilterComplex.vue +0 -78
  25. package/packages/jt-table-pc/examples/FilterContent.vue +0 -159
  26. package/packages/jt-table-pc/examples/FilterExcel.vue +0 -161
  27. package/packages/jt-table-pc/examples/FilterInput.vue +0 -92
  28. package/packages/jt-table-pc/filter.js +0 -162
  29. package/packages/jt-table-pc/importData.js +0 -72
  30. package/packages/jt-table-pc/index.js +0 -10
  31. package/yarn.lock +0 -9248
  32. /package/packages/{jt-table-pc → jt-table}/data2.js +0 -0
@@ -1,1438 +0,0 @@
1
- <template>
2
- <div class="tableStyle-2"
3
- :class="isWrap ? 'isWrap' : ''"
4
- style="position:absolute;top:1px;left:1px;right:1px;bottom:1px;">
5
- <!-- 普通表格 -->
6
- <div style="position:relative" v-if="isTool">
7
- <vxe-toolbar class="jt-toolbar" :custom="{icon:'jtIcon iconpeizhi41 colStyle'}"></vxe-toolbar>
8
- </div>
9
- <vxe-table
10
- :header-cell-class-name="headerClass"
11
- size="mini"
12
- class="jt-table-class-only"
13
- v-if="tableType === 'default'"
14
- :stripe="stripe"
15
- :id="id"
16
- :ref="id"
17
- :border="border"
18
- :custom-config="{storage: true,checkMethod: checkColumnMethod}"
19
- :sort-config="{sortMethod:sortMethod}"
20
- @scroll="scroll"
21
- show-overflow
22
- show-header-overflow
23
- height="auto"
24
- :max-height="maxHeight"
25
- auto-resize
26
- resizable
27
- highlight-current-row
28
- highlight-current-column
29
- :radio-config="{checkRowKey: null}"
30
- :keyboard-config="{isArrow: true}"
31
- :checkbox-config="{
32
- highlight:true
33
- }"
34
- :export-config="{
35
- type: 'xlsx',
36
- types:['xlsx', 'csv', 'html', 'xml', 'txt']
37
- }"
38
- @checkbox-change="selectChangeEvent"
39
- @checkbox-all="selectChangeEvent"
40
- @radio-change="radioSelectChangeEvent"
41
- :show-footer="isFooter"
42
- :footer-method="footerMethod"
43
- :footer-span-method="footerColspanMethod"
44
- :footer-cell-class-name="footerCellClassName"
45
- :loading="loading"
46
- @cell-click="cellClickEvent"
47
- :row-style="rowStyle"
48
- :cell-style="cellStyle_m"
49
- :span-method="spanMethod"
50
- :edit-config="{trigger: 'dblclick', mode: 'cell', showStatus: true,activeMethod: activeCellMethod}"
51
- :expand-config="{visibleMethod,loadMethod:expandConfig.loadMethod,
52
- toggleMethod,
53
- lazy:true,accordion: expandConfig.accordion}"
54
- keep-source
55
- @keydown="keyEnter"
56
- :data="data.DataArray">
57
- <!-- 复选框列 -->
58
- <vxe-table-column v-if="checkbox"
59
- type="checkbox"
60
- width="38"
61
- align="center"
62
- fixed="left"
63
- ></vxe-table-column>
64
- <!-- 单选框列 -->
65
- <vxe-table-column
66
- v-if="radio"
67
- type="radio"
68
- width="38"
69
- align="center"
70
- fixed="left"
71
- ></vxe-table-column>
72
- <!-- 序号列 -->
73
- <vxe-table-column
74
- v-if="isSeq && data"
75
- type="seq"
76
- align="center"
77
- :width="req+'px'"
78
- title="序号"
79
- fixed="left"
80
- ></vxe-table-column>
81
- <!-- 后台数据列 -->
82
- <template v-for="(item,index) in data.retjson.header">
83
- <table-column
84
- :item="item"
85
- :key="index"
86
- :index="index"
87
- :cellRenderData="cellRenderData"
88
- :filterData="filterData"
89
- :formatEnum="formatEnum"
90
- ></table-column>
91
- </template>
92
- <!-- 展开行 -->
93
- <vxe-table-column
94
- v-if="expandConfig.isOpen"
95
- type="expand"
96
- :width="expandConfig.width"
97
- >
98
- <template #default="{row}">
99
- <span style="position:relative;top:2px;right:6px;color:#333">
100
- {{isExpandText(row) ? expandConfig.text : ''}}</span>
101
- </template>
102
- <template #content="{ row }">
103
- <slot name="expandContent" :slot-scope="row"></slot>
104
- </template>
105
- </vxe-table-column>
106
- <!-- 操作列 -->
107
- <vxe-table-column title="操作"
108
- :visible="handlerConfig.show"
109
- :align="handlerConfig.align"
110
- :width="handlerConfig.width"
111
- :fixed="handlerConfig.fixed"
112
- show-overflow>
113
- <template v-slot="{ row , rowIndex }">
114
- <el-dropdown v-if="handlerConfig.btnGroup">
115
- <el-button size="mini" type="primary">
116
- 更多操作<i class="el-icon-arrow-down el-icon--right"></i>
117
- </el-button>
118
- <el-dropdown-menu slot="dropdown">
119
- <el-dropdown-item
120
- @click.native="handlerColClick(item.funcode,row,rowIndex)"
121
- v-for="(item,index) in data.retjson.inBottons"
122
- :key="'s' + index"
123
- >{{item.name}}</el-dropdown-item>
124
- <el-dropdown-item
125
- v-for="(item,index) in row.inBottons"
126
- :key="index"
127
- @click.native="handlerColClick(item.funcode,row,rowIndex)"
128
- >{{item.name}}</el-dropdown-item>
129
- </el-dropdown-menu>
130
- </el-dropdown>
131
- <template v-if="!handlerConfig.btnGroup">
132
- <el-button
133
- type="text"
134
- v-for="(item,index) in data.retjson.inBottons"
135
- :key="index"
136
- size="mini"
137
- @click="handlerColClick(item.funcode,row,rowIndex)"
138
- >
139
- <i class="jtIcon ht-icon"
140
- :style="{color:item.color ? item.color : '#666',
141
- fontSize:item.size ? item.size + 'px' : '16px'}"
142
- :class="item.icon?item.icon:'iconcaidan'"></i>
143
- <span class="ht-text" style="color:#666;">{{item.name}}</span>
144
- </el-button>
145
- <el-button
146
- type="text"
147
- v-for="(item,index) in row.inBottons"
148
- :key="index"
149
- size="mini"
150
- @click="handlerColClick(item.funcode,row,rowIndex)"
151
- >
152
- <i class="jtIcon ht-icon"
153
- :style="{color:item.color ? item.color : '#666',
154
- fontSize:item.size ? item.size + 'px' : '16px'}"
155
- :class="item.icon?item.icon:'iconcaidan'"></i>
156
- <span class="ht-text" style="color:#666;">{{item.name}}</span>
157
- </el-button>
158
- </template>
159
- </template>
160
- </vxe-table-column>
161
- </vxe-table>
162
- <!-- 大数据 -->
163
- <vxe-table
164
- :header-cell-class-name="headerClass"
165
- size="mini"
166
- class="jt-table-class-only"
167
- v-if="tableType === 'bigData'"
168
- :stripe="stripe"
169
- :id="id"
170
- :ref="id"
171
- :border="border"
172
- :custom-config="{storage: true,checkMethod: checkColumnMethod}"
173
- :sort-config="{sortMethod:sortMethod}"
174
- @scroll="scroll"
175
- show-overflow
176
- show-header-overflow
177
- height="auto"
178
- :max-height="maxHeight"
179
- auto-resize
180
- resizable
181
- :checkbox-config="{
182
- highlight:true
183
- }"
184
- highlight-current-row
185
- highlight-current-column
186
-
187
- :radio-config="{checkRowKey: null}"
188
- :keyboard-config="{isArrow: true}"
189
- export-config
190
- @checkbox-change="selectChangeEvent"
191
- @checkbox-all="selectChangeEvent"
192
- @radio-change="radioSelectChangeEvent"
193
- :show-footer="isFooter"
194
- :footer-method="footerMethod"
195
- :footer-span-method="footerColspanMethod"
196
- :footer-cell-class-name="footerCellClassName"
197
- :loading="loading"
198
- :scroll-x="{gt: 20}"
199
- :scroll-y="{gt: 40}"
200
- @cell-click="cellClickEvent"
201
- :row-style="rowStyle"
202
- :cell-style="cellStyle_m"
203
- :edit-config="{trigger: 'dblclick', mode: 'cell', showStatus: true,activeMethod: activeCellMethod}"
204
- keep-source
205
- @keydown="keyEnter"
206
- :data="data.DataArray">
207
- <!-- 复选框列 -->
208
- <vxe-table-column v-if="checkbox"
209
- type="checkbox"
210
- width="38"
211
- align="center"
212
- fixed="left"
213
- ></vxe-table-column>
214
- <!-- 单选框列 -->
215
- <vxe-table-column
216
- v-if="radio"
217
- type="radio"
218
- width="38"
219
- align="center"
220
- fixed="left"
221
- ></vxe-table-column>
222
- <!-- 序号列 -->
223
- <vxe-table-column
224
- v-if="isSeq && data"
225
- type="seq"
226
- align="center"
227
- :width="req+'px'"
228
- title="序号"
229
- fixed="left"
230
- ></vxe-table-column>
231
- <!-- 后台数据列 -->
232
- <template v-for="(item, index) in data.retjson.header">
233
- <table-column
234
- :item="item"
235
- :key="index"
236
- :index="index"
237
- :cellRenderData="cellRenderData"
238
- :filterData="filterData"
239
- :formatEnum="formatEnum"
240
- ></table-column>
241
- </template>
242
- <!-- 操作列 -->
243
- <vxe-table-column title="操作"
244
- :visible="handlerConfig.show"
245
- :align="handlerConfig.align"
246
- :width="handlerConfig.width"
247
- :fixed="handlerConfig.fixed"
248
- show-overflow>
249
- <template v-slot="{ row , rowIndex }">
250
- <el-dropdown v-if="handlerConfig.btnGroup">
251
- <el-button size="mini" type="primary">
252
- 更多操作<i class="el-icon-arrow-down el-icon--right"></i>
253
- </el-button>
254
- <el-dropdown-menu slot="dropdown">
255
- <el-dropdown-item
256
- @click.native="handlerColClick(item.funcode,row,rowIndex)"
257
- v-for="(item,index) in data.retjson.inBottons"
258
- :key="'s' + index"
259
- >{{item.name}}</el-dropdown-item>
260
- <el-dropdown-item
261
- v-for="(item,index) in row.inBottons"
262
- :key="index"
263
- @click.native="handlerColClick(item.funcode,row,rowIndex)"
264
- >{{item.name}}</el-dropdown-item>
265
- </el-dropdown-menu>
266
- </el-dropdown>
267
- <template v-if="!handlerConfig.btnGroup">
268
- <el-button
269
- type="text"
270
- v-for="(item,index) in data.retjson.inBottons"
271
- :key="index"
272
- size="mini"
273
- @click="handlerColClick(item.funcode,row,rowIndex)"
274
- >
275
- <i class="jtIcon ht-icon"
276
- :style="{color:item.color ? item.color : '#666',
277
- fontSize:item.size ? item.size + 'px' : '16px'}"
278
- :class="item.icon?item.icon:'iconcaidan'"></i>
279
- <span class="ht-text" style="color:#666;">{{item.name}}</span>
280
- </el-button>
281
- <el-button
282
- type="text"
283
- v-for="(item,index) in row.inBottons"
284
- :key="index"
285
- size="mini"
286
- @click="handlerColClick(item.funcode,row,rowIndex)"
287
- >
288
- <i class="jtIcon ht-icon"
289
- :style="{color:item.color ? item.color : '#666',
290
- fontSize:item.size ? item.size + 'px' : '16px'}"
291
- :class="item.icon?item.icon:'iconcaidan'"></i>
292
- <span class="ht-text" style="color:#666;">{{item.name}}</span>
293
- </el-button>
294
- </template>
295
- </template>
296
- </vxe-table-column>
297
- </vxe-table>
298
- <!-- 分组表格 -->
299
- <vxe-table
300
- size="mini"
301
- class="jt-table-class-only"
302
- :id="id"
303
- :ref="id"
304
- v-if="tableType === 'group'"
305
- :stripe="stripe"
306
- :custom-config="{storage: true,checkMethod: checkColumnMethod}"
307
- :border="border"
308
- show-overflow
309
- show-header-overflow
310
- height="auto"
311
- :max-height="maxHeight"
312
- auto-resize
313
- resizable
314
- highlight-current-row
315
- :tree-config="groupConfig"
316
- :row-class-name="rowClassName"
317
- :cell-class-name="gcellClassName"
318
- :keyboard-config="{isArrow: true}"
319
- highlight-current-column
320
- @checkbox-change="treeSelectChangeEvent"
321
- :checkbox-config="{
322
- highlight:true
323
- }"
324
- @checkbox-all="treeSelectChangeEvent"
325
- @cell-click="cellClickEvent"
326
- :row-style="rowStyle"
327
- :cell-style="cellStyle_m"
328
- :loading="loading"
329
- :data="data.DataArray">
330
- <vxe-table-column v-if="checkbox"
331
- type="checkbox"
332
- width="38"
333
- fixed="left"
334
- align="center"></vxe-table-column>
335
- <vxe-table-column
336
- v-if="isSeq && data"
337
- type="seq"
338
- align="center"
339
- :width="req+'px'"
340
- title="序号"
341
- fixed="left"
342
- ></vxe-table-column>
343
- <template v-for="(item,index) in data.retjson.header">
344
- <vxe-table-column
345
- :key="index"
346
- show-overflow
347
- :tree-node="item.prop == treeField"
348
- :field="item.prop"
349
- :align="item.align"
350
- :type="item.html ? 'html': ''"
351
- :title="item.label"
352
- :min-width="item.width"
353
- :visible="item.width!=0"
354
- :formatter="formatEnum"
355
- >
356
- </vxe-table-column>
357
- </template>
358
- <!-- 操作列 -->
359
- <vxe-table-column title="操作"
360
- v-if="handlerConfig.show"
361
- :align="handlerConfig.align"
362
- :width="handlerConfig.width"
363
- :fixed="handlerConfig.fixed"
364
- show-overflow>
365
- <template v-slot="{ row , rowIndex }">
366
- <el-dropdown v-if="handlerConfig.btnGroup">
367
- <el-button size="mini" type="primary">
368
- 更多操作<i class="el-icon-arrow-down el-icon--right"></i>
369
- </el-button>
370
- <el-dropdown-menu slot="dropdown">
371
- <template v-for="(item,index) in data.retjson.inBottons">
372
- <el-dropdown-item
373
- @click.native="handlerColClick(item.funcode,row,rowIndex)"
374
- v-if="isShowAddButton(row.path,item.name)"
375
- :key="'s' + index"
376
- >{{item.name}}</el-dropdown-item>
377
- </template>
378
- <template v-for="(item,index) in row.inBottons">
379
- <el-dropdown-item
380
- v-if="isShowAddButton(row.path,item.name)"
381
- :key="index"
382
- @click.native="handlerColClick(item.funcode,row,rowIndex)"
383
- >{{item.name}}</el-dropdown-item>
384
- </template>
385
- </el-dropdown-menu>
386
- </el-dropdown>
387
- <template v-if="!handlerConfig.btnGroup">
388
- <template v-for="(item,index) in data.retjson.inBottons">
389
- <el-button
390
- type="text"
391
- v-if="isShowAddButton(row.path,item.name)"
392
- :key="'s' + index"
393
- size="mini"
394
- @click="handlerColClick(item.funcode,row,rowIndex)"
395
- >
396
- <i class="jtIcon ht-icon"
397
- :style="{color:item.color ? item.color : '#666',
398
- fontSize:item.size ? item.size + 'px' : '16px'}"
399
- :class="item.icon?item.icon:'iconcaidan'"></i>
400
- <span class="ht-text" style="color:#666;">{{item.name}}</span>
401
- </el-button>
402
- </template>
403
- <template v-for="(item,index) in row.inBottons">
404
- <el-button
405
- type="text"
406
- v-if="isShowAddButton(row.path,item.name)"
407
- :key="index"
408
- size="mini"
409
- @click="handlerColClick(item.funcode,row,rowIndex)"
410
- >
411
- <i class="jtIcon ht-icon"
412
- :style="{color:item.color ? item.color : '#666',
413
- fontSize:item.size ? item.size + 'px' : '16px'}"
414
- :class="item.icon?item.icon:'iconcaidan'"></i>
415
- <span class="ht-text" style="color:#666;">{{item.name}}</span>
416
- </el-button>
417
- </template>
418
- </template>
419
- </template>
420
- </vxe-table-column>
421
- </vxe-table>
422
-
423
- <!-- 树形表格 and 树 -->
424
- <vxe-table
425
- size="mini"
426
- class="jt-table-class-only"
427
- :id="id"
428
- :ref="id"
429
- :stripe="stripe"
430
- :show-header="treeTypeConfig.type == 'treeTable'"
431
- v-if="tableType === 'tree'"
432
- :max-height="maxHeight"
433
- :border="border"
434
- show-overflow
435
- show-header-overflow
436
- height="auto"
437
- auto-resize
438
- :cell-style="cellStyle_m"
439
- :row-style="rowStyle"
440
- :span-method="spanMethod"
441
- resizable
442
- highlight-current-row
443
- :tree-config="treeConfig"
444
- :row-key="true"
445
- row-id="pkid"
446
- :radio-config="{labelField:treeTypeConfig.type !== 'treeTable' ? 'name' : '',
447
- checkMethod:treeRadioMethod}"
448
- :checkbox-config="{labelField:treeTypeConfig.type !== 'treeTable' ? 'name' : '',
449
- checkRowKeys: this.treeTypeConfig.checkRowKeys,
450
- highlight:true,
451
- checkMethod:checCheckboxkMethod2}"
452
- @checkbox-change="treeCheckChange"
453
- @checkbox-all="treeCheckChange"
454
- @radio-change="radioSelectChangeEvent"
455
- @cell-click="cellClickEvent"
456
- :edit-config="{trigger: 'dblclick', mode: 'cell', showStatus: true,activeMethod: activeCellMethod}"
457
- keep-source
458
- :loading="loading"
459
- @keydown="keyEnter"
460
- @scroll="scroll1"
461
- :expand-config="{visibleMethod,loadMethod:expandConfig.loadMethod,
462
- toggleMethod,
463
- lazy:true,accordion: expandConfig.accordion}"
464
- :data="data.DataArray">
465
- <!-- 复选框列 -->
466
- <vxe-table-column v-if="treeTypeConfig.type === 'treeTable' && treeTypeConfig.checkbox"
467
- type="checkbox"
468
- width="38"
469
- align="center"
470
- fixed="left"
471
- >
472
- </vxe-table-column>
473
- <!-- 单选框列 -->
474
- <vxe-table-column
475
- v-if="treeTypeConfig.type === 'treeTable' && treeTypeConfig.radio"
476
- type="radio"
477
- width="38"
478
- align="center"
479
- fixed="left"
480
- ></vxe-table-column>
481
- <!-- 序号列 -->
482
- <vxe-table-column
483
- v-if="isSeq && treeTypeConfig.type === 'treeTable'"
484
- type="seq"
485
- align="center"
486
- :width="req+'px'"
487
- title="序号"
488
- fixed="left"
489
- ></vxe-table-column>
490
- <template v-for="(item,index) in data.retjson.header">
491
- <vxe-table-column
492
- v-if="treeTypeConfig.type !== 'treeTable'"
493
- :edit-render="item.edit"
494
- :type="treeTypeConfig.colType"
495
- :tree-node="index == 0"
496
- :key="index"
497
- show-overflow
498
- :field="item.prop"
499
- align="left"
500
- :title="item.label"
501
- :min-width="item.width"
502
- :cell-render="cellRenderData(item.cellRender)"
503
- :visible="index === 0"
504
- >
505
- <template v-slot="{ row }">
506
- <span @click="treeTxtClick(row)" style="position:relative;top:2px;">
507
- <template v-if="row.path && row.path !== undefined">
508
- <i class="jtIcon" :class="row.icon ? row.icon : 'jt-iconClose2 iconwenjianjia'"></i>
509
- </template>
510
- <template v-else>
511
- <i class="jtIcon jt-iconFile" :class="row.icon ? row.icon : 'icon21file'"></i>
512
- </template>
513
- <span>{{ row.name }}</span>
514
- </span>
515
- </template>
516
- </vxe-table-column>
517
- <vxe-table-column
518
- v-if="treeTypeConfig.type === 'treeTable'"
519
- :edit-render="item.edit"
520
- :tree-node="index == 0"
521
- :key="index"
522
- show-overflow
523
- :field="item.prop"
524
- :align="item.align"
525
- :title="item.label"
526
- :min-width="item.width"
527
- :visible="item.width !== 0"
528
- :type="item.html ? 'html': ''"
529
- :cell-render="cellRenderData(item.cellRender)"
530
- :formatter="formatEnum"
531
- >
532
- <template v-slot="{ row }" v-if="index === 0">
533
- <span @click="treeTxtClick(row)" style="position:relative;top:2px;">
534
- <template v-if="row.path && row.path !== undefined">
535
- <i class="jtIcon" :class="row.icon ? row.icon : 'jt-iconClose2 iconwenjianjia'"></i>
536
- </template>
537
- <template v-else>
538
- <i class="jtIcon jt-iconFile" :class="row.icon ? row.icon : 'icon21file'"></i>
539
- </template>
540
- <span>{{ row[item.prop] }}</span>
541
- </span>
542
- </template>
543
- </vxe-table-column>
544
- </template>
545
- <!-- 展开行 -->
546
- <vxe-table-column
547
- v-if="expandConfig.isOpen"
548
- type="expand"
549
- :width="expandConfig.width"
550
- >
551
- <template #default="{row}">
552
- <span style="position:relative;top:2px;right:6px;color:#333">
553
- {{isExpandText(row) ? expandConfig.text : ''}}</span>
554
- </template>
555
- <template #content="{ row }">
556
- <slot name="expandContent" :slot-scope="row"></slot>
557
- </template>
558
- </vxe-table-column>
559
- <!-- 操作列 -->
560
- <vxe-table-column title="操作"
561
- v-if="handlerConfig.show"
562
- :align="handlerConfig.align"
563
- :width="handlerConfig.width"
564
- :fixed="handlerConfig.fixed"
565
- show-overflow>
566
- <template v-slot="{ row , rowIndex }">
567
- <el-dropdown v-if="handlerConfig.btnGroup">
568
- <el-button size="mini" type="primary">
569
- 更多操作<i class="el-icon-arrow-down el-icon--right"></i>
570
- </el-button>
571
- <el-dropdown-menu slot="dropdown">
572
- <template v-for="(item,index) in data.retjson.inBottons">
573
- <el-dropdown-item
574
- @click.native="handlerColClick(item.funcode,row,rowIndex)"
575
- v-if="isShowAddButton(row.path,item.name)"
576
- :key="'s' + index"
577
- >{{item.name}}</el-dropdown-item>
578
- </template>
579
- <template v-for="(item,index) in row.inBottons">
580
- <el-dropdown-item
581
- v-if="isShowAddButton(row.path,item.name)"
582
- :key="index"
583
- @click.native="handlerColClick(item.funcode,row,rowIndex)"
584
- >{{item.name}}</el-dropdown-item>
585
- </template>
586
- </el-dropdown-menu>
587
- </el-dropdown>
588
- <template v-if="!handlerConfig.btnGroup">
589
- <template v-for="(item,index) in data.retjson.inBottons">
590
- <el-button
591
- type="text"
592
- v-if="isShowAddButton(row.path,item.name)"
593
- :key="'s' + index"
594
- size="mini"
595
- @click="handlerColClick(item.funcode,row,rowIndex)"
596
- >
597
- <i class="jtIcon ht-icon"
598
- :style="{color:item.color ? item.color : '#666',
599
- fontSize:item.size ? item.size + 'px' : '16px'}"
600
- :class="item.icon?item.icon:'iconcaidan'"></i>
601
- <span class="ht-text" style="color:#666;">{{item.name}}</span>
602
- </el-button>
603
- </template>
604
- <template v-for="(item,index) in row.inBottons">
605
- <el-button
606
- type="text"
607
- v-if="isShowAddButton(row.path,item.name)"
608
- :key="index"
609
- size="mini"
610
- @click="handlerColClick(item.funcode,row,rowIndex)"
611
- >
612
- <i class="jtIcon ht-icon"
613
- :style="{color:item.color ? item.color : '#666',
614
- fontSize:item.size ? item.size + 'px' : '16px'}"
615
- :class="item.icon?item.icon:'iconcaidan'"></i>
616
- <span class="ht-text" style="color:#666;">{{item.name}}</span>
617
- </el-button>
618
- </template>
619
- </template>
620
- </template>
621
- </vxe-table-column>
622
- </vxe-table>
623
- </div>
624
-
625
- </template>
626
-
627
- <script>
628
- import XEUtils from 'xe-utils';
629
- import tableColumn from './components/tableColumn.vue'
630
- import axios from 'axios';
631
- import { importData } from './importData';
632
- export default {
633
- name: 'jt-table-pc',
634
- components: {
635
- tableColumn
636
- },
637
- created () {
638
- if(this.isPage){
639
- this.tDataCopy = JSON.parse(JSON.stringify(this.data.DataArray));
640
- this.dataTotal = this.tableData.length;
641
- this.pageTotal = Math.ceil(this.dataTotal / 50);
642
- for(let i = 1; i <= this.pageTotal; i++){
643
- this.dataTreeObj[i] = this.tDataCopy.slice((i-1) * 50, i * 50);
644
- }
645
- this.data.DataArray = [...this.dataTreeObj[this.pageIndex],...this.dataTreeObj[this.pageIndex+1]] ;
646
- }
647
- if('header' in this.data.retjson){
648
- this.treeField = this.data.retjson.header[0].prop;
649
- }
650
- },
651
- props:{
652
- //表格ID
653
- id:{
654
- type:String,
655
- required:true
656
- },
657
- //表格数据源
658
- data:{
659
- type:Object,
660
- required:true
661
- },
662
- //序号width
663
- req:{
664
- type:[Number,String],
665
- default:60
666
- },
667
- //表格类型,默认default为普通表格、tree为树表
668
- tableType:{
669
- type:String,
670
- default:'default'
671
- },
672
- //是否显示单选框
673
- radio:{
674
- type:Boolean,
675
- default:false
676
- },
677
- //是否显示复选框
678
- checkbox:{
679
- type:Boolean,
680
- default:false
681
- },
682
- //操作列配置
683
- handlerConfig:{
684
- type:Object,
685
- default:() => {
686
- return {
687
- show:false,
688
- width:250,
689
- align:'center',
690
- fixed:'right',
691
- btnGroup:true
692
- }
693
- }
694
- },
695
- //是否显示表尾
696
- isFooter:{
697
- type:Boolean,
698
- default:false
699
- },
700
- //表尾显示项控制
701
- footConfig:{
702
- type:Object,
703
- default:() => {
704
- return {
705
- filed:[]
706
- }
707
- }
708
- },
709
- //树 or 树表控制项
710
- treeTypeConfig:{
711
- type:Object,
712
- default:() => {
713
- return {
714
- colType:'checkbox',
715
- type:'tree',
716
- checkbox:true,
717
- line:true,
718
- expandAll:false,
719
- checkRowKeys:[]
720
- }
721
- }
722
- },
723
- treeLazy:{
724
- type:Boolean,
725
- default:true
726
- },
727
- //加载动画
728
- loading:{
729
- type:Boolean,
730
- default:false
731
- },
732
- //显示、隐藏列开关
733
- isTool:{
734
- type:Boolean,
735
- default:false
736
- },
737
- //行样式控制函数
738
- rowStyle:{
739
- type:Function
740
- },
741
- //单元格样式控制函数
742
- cellStyle:{
743
- type:Function
744
- },
745
- //分组表格是否开启连线模式
746
- groupLine:{
747
- type:Boolean,
748
- default:false
749
- },
750
- //合并行和列函数
751
- spanMethod:{
752
- type:Function
753
- },
754
- //斑马线开关
755
- stripe:{
756
- type:Boolean,
757
- default:false
758
- },
759
- //表格最大高度
760
- maxHeight:{
761
- type:[String,Number],
762
- default:0
763
- },
764
- //分组表格是否默认展开所有
765
- groupExpandAll:{
766
- type:Boolean,
767
- default:false
768
- },
769
- //表格边线
770
- border:{
771
- type:String,
772
- default:'full'
773
- },
774
- //树、树表是否禁用非最后一级
775
- isParent:{
776
- type:Boolean,
777
- default:true
778
- },
779
- //是否开启序号
780
- isSeq:{
781
- type:Boolean,
782
- default:true
783
- },
784
- //分组表格默认展开所有
785
- isExpand:{
786
- type:Boolean,
787
- default:true
788
- },
789
- //前端滚动分页加载
790
- isPage:{
791
- type:Boolean,
792
- default:false
793
- },
794
- //表头是否换行
795
- isWrap:{
796
- type:Boolean,
797
- default:false
798
- },
799
- //单元格自定义组件events
800
- cellRenderMethods:{
801
- type:Object,
802
- default:()=>({
803
- parentRow:Object,
804
- radioChange:()=>{}
805
- })
806
- },
807
- //展开行配置
808
- expandConfig:{
809
- type:Object,
810
- default:()=>({
811
- isOpen:false,
812
- width:120,
813
- text:'',
814
- accordion:true, //手风琴模式
815
- loadMethod:()=>{}
816
- })
817
- },
818
- //树手风琴开关
819
- treeAccordion:{
820
- type:Boolean,
821
- default:false
822
- }
823
- },
824
- data(){
825
- return {
826
- tableData: this.data.DataArray, //表格数据
827
- headerClass: (this.data.retjson.header || []).find(i => (i.children || []).length) ? 'has-sub-header' : 'normal-header',
828
- colNum:0,//当前列的数量
829
- leftCol:0,//从左起计算合并列的基数
830
- //分组表格的配置
831
- groupConfig:{
832
- children: 'children',
833
- iconOpen: 'jtIcon iconwenjianjia1 jt-iconOpen1',
834
- iconClose: 'jtIcon iconwenjianjia jt-iconClose1',
835
- expandAll: this.groupExpandAll,
836
- line:this.groupLine
837
- },
838
- //树 or 树表 配置
839
- treeConfig:{
840
- lazy: this.treeLazy,
841
- children: 'children',
842
- expandAll: this.treeTypeConfig.expandAll,
843
- hasChild: 'path',
844
- iconOpen: 'jtIcon iconjianshao jt-iconOpen',
845
- iconClose: 'jtIcon iconjia1 jt-iconClose',
846
- loadMethod: this.loadChildrenMethod,
847
- line:this.treeTypeConfig.line,
848
- accordion:this.treeAccordion
849
- },
850
- treeField:'', //分组列的字段
851
- timeOut:null,//滚动翻页定时器Id
852
- pageIndex:1,
853
- sp:0,//当前滚动的位置
854
- tPageIndex:1, //树表分页当前页数
855
- tDataCopy:[], //树表分页数据拷贝
856
- pageTotal:0,
857
- dataTotal:0,
858
- dataTreeObj:{}
859
- }
860
- },
861
- methods:{
862
- //展开行展开收起
863
- toggleMethod({ expanded,row }){
864
- if(expanded){
865
- return true
866
- }else{
867
- this.$refs[this.id].clearRowExpandLoaded(row);
868
- return false
869
- }
870
- },
871
- //单元格自定义渲染根据类型返回配置
872
- cellRenderData(type){
873
- switch(type){
874
- case 'TabsBtn' : return {
875
- name:'TabsBtn',
876
- events:{radioChange:this.cellRenderMethods.radioChange},
877
- parentRow:this.cellRenderMethods.parentRow
878
- }
879
- }
880
- },
881
- //展开行说明文字显示控制
882
- isExpandText(row){
883
- if(row.isExpand === '1'){
884
- return true
885
- }else{
886
- return false
887
- }
888
- },
889
- //展开行权限控制
890
- visibleMethod({column,row}){
891
- if(row.isExpand === '1'){
892
- return true
893
- }else{
894
- return false
895
- }
896
- },
897
- //表格组件实例
898
- jtTable(){
899
- return this.$refs[this.id];
900
- },
901
- //树更新字节点,懒加载
902
- reloadTreeChilds(row){
903
- this.$refs[this.id].reloadTreeChilds(row);
904
- },
905
- //扩展单元格样式
906
- cellStyle_m(param){
907
- let cssObj = {}
908
- if(param.row._rowcss == 'css0'){
909
- cssObj = {color:'#000'}
910
- }else if(param.row._rowcss == 'css1'){
911
- cssObj = {color:'#1E90FF'}
912
- }else if(param.row._rowcss == 'css2'){
913
- cssObj = {color:'#FF8C00'}
914
- }else if(param.row._rowcss == 'css3'){
915
- cssObj = {color:' #FF0000'}
916
- }
917
- if(this.cellStyle){
918
- return Object.assign(cssObj,this.cellStyle(param));
919
- }else{
920
- return cssObj;
921
- }
922
- },
923
- //重载行数据
924
- reloadRow(row){
925
- this.$refs[this.id].reloadRow(row);
926
- },
927
- //全局排序自定义排序方法
928
- sortMethod({ data, column, property, order }){
929
- // console.log(data, column, property, order);
930
- let data1 = data.filter(item => {
931
- return property in item;
932
- })
933
- let data2 = data.filter(item => {
934
- return !(property in item);
935
- })
936
- let list = [];
937
- if (order === 'asc' || order === 'desc') {
938
- list = data1.sort((a,b)=>{
939
- return a[property]-b[property];
940
- });
941
- }
942
- if (order === 'desc') {
943
- list.reverse()
944
- }
945
- return list.concat(data2);
946
- },
947
- //树点击图标和文字事件
948
- treeTxtClick(row){
949
- let treePath = [];
950
- const result = XEUtils.findTree(this.data.DataArray,
951
- item=>{
952
- return item.pkid === row.pkid
953
- },
954
- {children: 'children'});
955
- if(result){
956
- treePath = result.nodes.map(item => item.name);
957
- }
958
- this.$emit('treeTxtClick',row,treePath);
959
- },
960
- rowClassName({ row, rowIndex }){
961
- if('children' in row){
962
- return 'f-col'
963
- }
964
- },
965
- gcellClassName({row, column}){
966
- if('children' in row && column.title == '操作'){
967
- return 'h-col'
968
- }
969
- },
970
- checCheckboxkMethod2({ row }){
971
- if(this.isParent){
972
- return true
973
- }else{
974
- return row.children.length === 0
975
- }
976
-
977
- },
978
- //初始化隐藏列
979
- hideColumn(arr){
980
- this.$nextTick(()=>{
981
- arr.forEach(item=>{
982
- let col = this.$refs[this.id].getColumnByField(item);
983
- this.$refs[this.id].hideColumn(col);
984
- })
985
- })
986
- },
987
- //树判断行是否展开
988
- isTreeExpandByRow(row){
989
- return this.$refs[this.id].isTreeExpandByRow(row);
990
- },
991
- //树展开所有节点
992
- setAllTreeExpand(){
993
- this.$refs[this.id].setAllTreeExpand(true);
994
- },
995
- //树清空所有节点
996
- clearTreeExpand(){
997
- this.$refs[this.id].clearTreeExpand();
998
- },
999
- //设置表格选中
1000
- setCheckboxRow(ary,status=true){
1001
- this.$refs[this.id].setCheckboxRow(ary,status);
1002
- },
1003
- //清空所有选中
1004
- clearCheckboxRow(){
1005
- this.$refs[this.id].clearCheckboxRow();
1006
- },
1007
- //切换选中状态
1008
- toggleCheckboxRow(row){
1009
- this.$refs[this.id].toggleCheckboxRow(row);
1010
- },
1011
- //枚举转换
1012
- formatEnum({column,cellValue}){
1013
- try {
1014
- let data = this.data.retjson.header.find(item => item.prop == column.property);
1015
- if(data && "html" in data && 'htmlType' in data){
1016
- if(data.htmlType == 'icon'){
1017
- if(Array.isArray(cellValue)){
1018
- let str = '';
1019
- cellValue.forEach(i => {
1020
- let item = data.html.find(im => {
1021
- return im.value == i});
1022
- if(item){
1023
- str += `<span
1024
- class="jtIcon ${item.icon}" style="
1025
- color:${item.color};
1026
- font-size:${item.size}px;
1027
- margin-right:${item.margin || '8'}px"
1028
- onclick="iconItem(${i})"
1029
- ></span>`
1030
- }
1031
- })
1032
- return str ? str : cellValue
1033
- }else{
1034
- let item = data.html.find(item => item.value == cellValue);
1035
- return item ? `<span class="jtIcon ${item.icon}" style="color:${item.color};font-size:${item.size}px"></span>` : cellValue
1036
- }
1037
-
1038
- }else if(data.htmlType == 'a'){
1039
- let item = data.html.find(item => item.value == cellValue);
1040
- return item ?`<a href="javascript:">${cellValue}</a>` : cellValue
1041
- }
1042
- }else if(data && "enum" in data){
1043
- let item = data.enum.find(item => item.value == cellValue)
1044
- return item ? item.label : cellValue
1045
- }else{
1046
- return cellValue;
1047
- }
1048
- } catch (error) {
1049
- console.log(error)
1050
- return cellValue;
1051
- }
1052
- },
1053
- //回车事件派发
1054
- keyEnter({$event}){
1055
- if($event.keyCode === 13){
1056
- this.$emit('enter',this.getEditData());
1057
- };
1058
- },
1059
- //获取编辑过的数据
1060
- getEditData(){
1061
- const {updateRecords} = this.$refs[this.id].getRecordset();
1062
- return updateRecords;
1063
- },
1064
- //树编辑禁用回调
1065
- activeCellMethod({column}){
1066
- let data = this.data.retjson.header.find(item => item.prop === column.property)
1067
- if(data.edit.name){
1068
- return true;
1069
- }
1070
- return false;
1071
- },
1072
- //树删除数据方法
1073
- treeDelete(id){
1074
- let matchObj = XEUtils.findTree(this.data.DataArray, item => {
1075
- return item.pkid === id}, {
1076
- children: 'children'
1077
- })
1078
- if (matchObj) {
1079
- let { items, index } = matchObj
1080
- items.splice(index, 1);
1081
- }
1082
- this.$refs[this.id].syncData();
1083
- },
1084
- //获取树的信息
1085
- getTreeData(id){
1086
- let matchObj = XEUtils.findTree(this.data.DataArray, item => {
1087
- return item.pkid == id}, {
1088
- children: 'children'
1089
- })
1090
- if(matchObj){
1091
- return {key:'ok',data:matchObj.item};
1092
- }else{
1093
- return {key:'notFind'};
1094
- }
1095
- },
1096
- //树添加数据方法
1097
- treeAdd(id,obj){
1098
- let xTree = this.$refs[this.id];
1099
- xTree.createRow(obj).then(newRow => {
1100
- let matchObj = XEUtils.findTree(this.data.DataArray, item => {
1101
- return item.pkid === id}, {
1102
- children: 'children'
1103
- })
1104
- if (matchObj) {
1105
- matchObj.item.children.splice(matchObj.index, 0, newRow);
1106
- xTree.syncData()
1107
- }
1108
- })
1109
- },
1110
- //树、树表判断不是文件夹的不能有新增按钮
1111
- isShowAddButton(p1,p2){
1112
- if(p1){
1113
- return true
1114
- }else{
1115
- if(p2 === '新增'){
1116
- return false
1117
- }else{
1118
- return true
1119
- }
1120
- }
1121
- },
1122
- //滚动到底事件派发
1123
- scroll(param){
1124
- let {scrollTop,$event} = param;
1125
- clearTimeout(this.timeOut);
1126
- this.timeOut = setTimeout(()=>{
1127
- let ch = $event.target.clientHeight;
1128
- let sh = $event.target.scrollHeight;
1129
- if(scrollTop + ch >= sh){
1130
- this.$emit('scrollBottom',++this.pageIndex);
1131
- }
1132
- },200)
1133
- },
1134
- //树表滚动分页+性能优化
1135
- scroll1(param){
1136
- let {scrollTop,$event} = param;
1137
- clearTimeout(this.timeOut);
1138
- this.timeOut = setTimeout(()=>{
1139
- let ch = $event.target.clientHeight;
1140
- let sh = $event.target.scrollHeight;
1141
- let temp = scrollTop - this.sp;
1142
- this.sp = scrollTop;
1143
- if(temp < 0 && scrollTop <= 0){
1144
- if(this.tPageIndex > 1){
1145
- this.tPageIndex--;
1146
- this.dataSliceUp(this.tPageIndex);
1147
- this.$refs[this.id].scrollTo(null,(sh-ch) / 2);
1148
- }
1149
- }else if(temp >= 0 && scrollTop + ch >= sh){
1150
- if(this.tPageIndex < this.pageTotal){
1151
- this.tPageIndex++;
1152
- this.dataSliceDown(this.tPageIndex);
1153
- this.$refs[this.id].scrollTo(null,(sh-ch) / 2);
1154
- }
1155
- }
1156
- },200)
1157
- },
1158
- dataSliceUp(idx){
1159
- this.data.DataArray = this.dataTreeObj[idx-1].concat(this.dataTreeObj[idx]);
1160
- },
1161
- dataSliceDown(idx){
1162
- this.data.DataArray = this.dataTreeObj[idx].concat(this.dataTreeObj[idx+1]);
1163
- },
1164
- //导出数据
1165
- exportTableData(){
1166
- this.$refs[this.id].openExport({ isPrint: false });
1167
- },
1168
- exportData(obj){
1169
- this.$refs[this.id].exportData(obj);
1170
- },
1171
- //导入数据
1172
- importTableData(){
1173
- this.$refs[this.id].importData({
1174
- remote:true,
1175
- importMethod:opt=>{
1176
- importData(opt.file,(data)=>{
1177
- this.data.DataArray = data;
1178
- });
1179
- return new Promise(resolve => resolve())
1180
- }
1181
- });
1182
- },
1183
- //树 懒加载方法
1184
- async loadChildrenMethod({ row }){
1185
- const { data } = await this.$axios.post(this.treeTypeConfig.path + row.path);
1186
- return new Promise((resolve) => {
1187
- if(data[0].Result>0){
1188
- resolve(data[0].DataArray)
1189
- }else{
1190
- const tempObj = {};
1191
- data[0].retjson.header.forEach((item,index)=>{
1192
- if(index === 0){
1193
- tempObj[item.prop] = '无数据'
1194
- }else{
1195
- tempObj[item.prop] = ''
1196
- }
1197
- })
1198
- resolve([tempObj]);
1199
- }
1200
- })
1201
- },
1202
- syncData(){
1203
- this.$refs[this.id].syncData();
1204
- },
1205
- //根据类型返回筛选框源数据
1206
- filterData(type){
1207
- switch(type){
1208
- case 'FilterInput' : return [{ data: ''}];
1209
- case 'FilterContent' : return [{data: {vals: [], sVal: ''}}];
1210
- case 'FilterExcel' : return [{data: {f1Type:'1', f1Val: '', fMode: 'and', f2Type: '1', f2Val: ''}}];
1211
- case 'FilterComplex' : return [{data: {type: 'eq', value: ''}},{data: {type: 'eq', value: ''}}];
1212
- }
1213
- },
1214
- //普通表格转树表(仅支持一层)
1215
- default2tree(data,field){
1216
- const result = []
1217
- this.treeField = this.data.retjson.header[0].prop;
1218
- XEUtils.each(XEUtils.groupBy(data, field), (childs, key) => {
1219
- result.push({
1220
- [this.treeField]: key + `( ${childs.length} )`,
1221
- children: childs
1222
- })
1223
- })
1224
- this.data.DataArray = result;
1225
- if(this.isExpand){
1226
- this.$nextTick(()=>{
1227
- this.setAllTreeExpand();
1228
- });
1229
- }
1230
- },
1231
- //checkbox改变事件派发
1232
- selectChangeEvent({records}){
1233
- this.$emit('checkbox',records);
1234
- },
1235
- //树表checkbox改变事件派发,过滤有子集的数据
1236
- treeSelectChangeEvent({records,indeterminates}){
1237
- const temp = records.filter(item => !item.children)
1238
- this.$emit('treeCheckbox',temp);
1239
- this.$emit('treeCheckboxAll',[...records,...indeterminates]);
1240
- },
1241
- //树 checkbox改变事件派发,过滤有子集的数据
1242
- treeCheckChange({records,indeterminates}){
1243
- const temp = records.filter(item => !item.path);
1244
- this.$emit('treeCheckbox',temp);
1245
- this.$emit('treeCheckboxAll',[...records,...indeterminates]);
1246
- },
1247
- //单选改变事件派发
1248
- radioSelectChangeEvent({row}){
1249
- this.$emit('radio',row);
1250
- },
1251
- //筛选列默认禁用处理
1252
- checkColumnMethod({column}){
1253
- if(column.width == 0 || column.title == '序号'){
1254
- return false
1255
- }
1256
- return true
1257
- },
1258
- //操作列点击事件派发
1259
- handlerColClick(value,row,rowIndex){
1260
- this.$emit('handlerClick',value,row,rowIndex);
1261
- },
1262
- //表尾统计,(计算平均值和求和)
1263
- footerMethod({ columns, data }){
1264
- const means = []
1265
- const sums = []
1266
- columns.forEach((column, columnIndex) => {
1267
- if (columnIndex === 0) {
1268
- means.push('平均')
1269
- sums.push('求和')
1270
- } else {
1271
- let meanCell = null
1272
- let sumCell = null
1273
- this.footConfig.filed.forEach(i => {
1274
- switch (column.property) {
1275
- case i:
1276
- meanCell = parseInt(XEUtils.mean(data, column.property))
1277
- sumCell = XEUtils.sum(data, column.property)
1278
- break
1279
- }
1280
- })
1281
-
1282
- means.push(meanCell)
1283
- sums.push(sumCell)
1284
- }
1285
- })
1286
- return [ means, sums ]
1287
- },
1288
- //表尾单元格合并
1289
- footerColspanMethod({ rowIndex, columnIndex }){
1290
- if(columnIndex === 0 && this.checkbox){
1291
- return {
1292
- rowspan: 1,
1293
- colspan: 2
1294
- }
1295
- }
1296
- if(columnIndex === 1 && this.checkbox){
1297
- return {
1298
- rowspan: 1,
1299
- colspan: 0
1300
- }
1301
- }
1302
- },
1303
- //表尾单元格样式控制
1304
- footerCellClassName ({ $rowIndex, column, columnIndex }) {
1305
- if (columnIndex === 0) {
1306
- if ($rowIndex === 0) {
1307
- return 'jt-table-col-green'
1308
- } else {
1309
- return 'jt-table-col-red'
1310
- }
1311
- }
1312
- },
1313
- //树 非最后一级禁用
1314
- treeRadioMethod({row}){
1315
- if(this.isParent){
1316
- return true;
1317
- }else{
1318
- return !row.path
1319
- }
1320
- },
1321
- //单元格点击事件派发,返回当前行的数据
1322
- cellClickEvent({row , column}){
1323
- let treePath = [];
1324
- if(this.tableType === 'tree'){
1325
- const result = XEUtils.findTree(this.data.DataArray,
1326
- item=>{
1327
- return item.pkid === row.pkid
1328
- },
1329
- {children: 'children'});
1330
- if(result){
1331
- treePath = result.nodes.map(item => item.name);
1332
- }
1333
- this.$emit('cellClick',row,treePath,column);
1334
- }else{
1335
- this.$emit('cellClick',row,column);
1336
- }
1337
- }
1338
- }
1339
- }
1340
- </script>
1341
-
1342
- <style>
1343
- .vxe-table{
1344
- font-size: 12px;
1345
- }
1346
- .jt-iconOpen{
1347
- position: relative;
1348
- bottom:4px;
1349
- right:2px;
1350
- }
1351
- .jt-iconClose{
1352
- position: relative;
1353
- bottom:4px;
1354
- right:2px;
1355
- }
1356
- .jt-iconOpen1{
1357
- color:rgb(238, 197, 85) !important;
1358
- position: relative;
1359
- bottom:5px;
1360
- right:2px;
1361
- }
1362
- .jt-iconClose1{
1363
- color:rgb(238, 197, 85) !important;
1364
- position: relative;
1365
- bottom:5px;
1366
- right:2px;
1367
- }
1368
- .jt-iconOpen2{
1369
- color:rgb(238, 197, 85) !important;
1370
- margin:0 3px;
1371
- display: inline-block;
1372
- }
1373
- .jt-iconClose2{
1374
- color:rgb(238, 197, 85) !important;
1375
- margin:0 3px;
1376
- display: inline-block;
1377
- }
1378
- .jt-iconFile{
1379
- color:rgb(195, 189, 201) !important;
1380
- position: relative;
1381
- font-size: 18px;
1382
- top:1px;
1383
- margin-left:5px;
1384
- margin-right:2px;
1385
- display: inline-block;
1386
- }
1387
- .jt-table-col-green{
1388
- background-color: rgb(125, 240, 177);
1389
- }
1390
- .jt-table-col-red{
1391
- background-color: rgb(240, 125, 125);
1392
- }
1393
- .ht-icon{
1394
- position:relative;
1395
- right:2px;
1396
- top:1px;
1397
- }
1398
- .jt-table-class-only .el-button:hover span,
1399
- .jt-table-class-only .el-button:hover i{
1400
- color:rgb(55, 66, 214) !important;
1401
- }
1402
- .jt-table-class-only .vxe-cell--tree-node{
1403
- cursor: pointer;
1404
- }
1405
- .jt-toolbar{
1406
- position:absolute !important;
1407
- top:-12px;
1408
- right:-6px;
1409
- z-index:2
1410
- }
1411
- .jt-toolbar .vxe-custom--wrapper .vxe-button.is--circle,
1412
- .jt-toolbar .is--active .vxe-button.is--circle{
1413
- border-radius: 0 !important;
1414
- border:none;
1415
- background:transparent;
1416
- }
1417
- .jt-toolbar .vxe-button.type--button:not(.is--disabled):focus{
1418
- box-shadow: none;
1419
- border-color:#dcdfe6;
1420
- background: transparent;
1421
- }
1422
- .jt-toolbar .colStyle{
1423
- font-size: 24px;
1424
- position: relative;
1425
- top:0px;
1426
- color:rgb(64, 111, 212);
1427
- opacity: .4;
1428
- }
1429
- .jt-toolbar .colStyle:hover{
1430
- color:rgb(125, 143, 224)
1431
- }
1432
- .isWrap .vxe-header--row .vxe-cell{
1433
- flex-wrap: wrap;
1434
- }
1435
- .vxe-table--header .vxe-header--row {
1436
- /* background: #fff; */
1437
- }
1438
- </style>