@leevan/jtui 1.2.7 → 2.0.1

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 (34) hide show
  1. package/examples/App.vue +640 -24
  2. package/examples/scss/cover.scss +139 -0
  3. package/examples/scss/global.scss +457 -0
  4. package/examples/scss/main-style/_handle.scss +217 -0
  5. package/examples/scss/main-style/_themes.scss +95 -0
  6. package/examples/scss/main-style/style1.scss +0 -0
  7. package/examples/scss/main-style/style2.scss +12 -0
  8. package/examples/scss/main-style/style3.scss +16 -0
  9. package/examples/scss/pub.scss +142 -0
  10. package/examples/tableTest/table-dsj.vue +209 -0
  11. package/examples/tableTest/table-fzbg.vue +163 -0
  12. package/examples/tableTest/table-ptbg.vue +222 -0
  13. package/examples/tableTest/table-tree.vue +45 -0
  14. package/examples/tableTest/tree-table.vue +45 -0
  15. package/lib/jtui.common.js +114134 -84420
  16. package/lib/jtui.css +1 -1
  17. package/lib/jtui.umd.js +114134 -84420
  18. package/lib/jtui.umd.min.js +176 -133
  19. package/package.json +6 -5
  20. package/packages/index.js +6 -3
  21. package/packages/jt-echarts-pc/JtEchartsPc.vue +6 -2
  22. package/packages/jt-form-pc/JtFormPc.vue +1 -1
  23. package/packages/jt-table/comp.js +17 -0
  24. package/packages/jt-table/components/tabsBtn.vue +53 -0
  25. package/packages/jt-table/examples/FilterComplex.vue +78 -0
  26. package/packages/jt-table/examples/FilterContent.vue +159 -0
  27. package/packages/jt-table/examples/FilterExcel.vue +161 -0
  28. package/packages/jt-table/examples/FilterInput.vue +92 -0
  29. package/packages/jt-table/filter.js +162 -0
  30. package/packages/jt-table/index.js +10 -0
  31. package/packages/jt-table/index.vue +1441 -0
  32. package/packages/jt-table-pc/data2.js +33 -14
  33. package/packages/jtaxios.js +31 -0
  34. package/vue.config.js +1 -1
package/examples/App.vue CHANGED
@@ -1,46 +1,662 @@
1
1
  <template>
2
2
  <div id="app" class="relative">
3
- <jt-upload-pc
4
- target="/upf/zbgl/chunk"
5
- mergePath="/upf/zbgl/mergeFile"
6
- @success="success"
7
- @error="error"
8
- singleMode
9
- ref="upload"
10
- ></jt-upload-pc>
3
+ <el-container style="height:100%">
4
+ <el-aside width="200px">
5
+ <el-menu
6
+ default-active="1"
7
+ class="el-menu-vertical-demo"
8
+ background-color="#545c64"
9
+ text-color="#fff"
10
+ @select="select"
11
+ active-text-color="#ffd04b">
12
+ <el-menu-item
13
+ v-for="(item,index) in menu" :key="index"
14
+ :index="item.idx">
15
+ <i class="el-icon-menu"></i>
16
+ <span slot="title">{{item.name}}</span>
17
+ </el-menu-item>
18
+ </el-menu>
19
+ </el-aside>
20
+ <el-main>
21
+ <table-ptbg v-if="menuIdx == 1"></table-ptbg>
22
+ <table-dsj v-if="menuIdx == 2"></table-dsj>
23
+ <table-fzbg v-if="menuIdx == 3"></table-fzbg>
24
+ <table-tree v-if="menuIdx == 4"></table-tree>
25
+ <tree-table v-if="menuIdx == 5"></tree-table>
26
+ </el-main>
27
+ </el-container>
11
28
  </div>
12
29
  </template>
13
30
 
14
31
  <script>
15
- import { data2 , data23 ,data10 ,data13 ,data14} from '../packages/jt-table-pc/data2';
16
- import Vue from 'vue';
17
- import axios from 'axios';
18
- Vue.prototype.$axios = axios;
32
+ import tablePtbg from './tableTest/table-ptbg.vue';
33
+ import tableDsj from './tableTest/table-dsj.vue';
34
+ import tableFzbg from './tableTest/table-fzbg.vue';
35
+ import tableTree from './tableTest/table-tree.vue';
36
+ import treeTable from './tableTest/tree-table.vue';
19
37
  export default {
20
- name: 'App',
21
- created(){
22
-
23
- },
24
- data(){
38
+ components:{
39
+ tablePtbg,
40
+ tableDsj,
41
+ tableFzbg,
42
+ tableTree,
43
+ treeTable
44
+ },
45
+ name: 'App',
46
+ created(){
47
+ window.document.documentElement.setAttribute( "color-theme",'blue');
48
+ },
49
+ data(){
25
50
  return{
26
-
51
+ menu:[
52
+ {
53
+ name:'普通表格',
54
+ idx:'1'
55
+ },
56
+ {
57
+ name:'大数据表格',
58
+ idx:'2'
59
+ },
60
+ {
61
+ name:'分组表格',
62
+ idx:'3'
63
+ },
64
+ {
65
+ name:'树',
66
+ idx:'4'
67
+ },
68
+ {
69
+ name:'树表',
70
+ idx:'5'
71
+ }
72
+ ],
73
+ menuIdx:'1'
27
74
  }
28
75
  },
29
- methods:{
30
- success(res){
31
- console.log(res);
32
- },
33
- error(err){
34
- console.log(err);
76
+ methods: {
77
+ select(idx){
78
+ this.menuIdx = idx;
35
79
  }
36
80
  }
37
81
  }
38
82
  </script>
39
83
 
40
84
  <style lang="scss">
85
+ *{
86
+ padding:0;
87
+ margin:0;
88
+ }
41
89
  html,body,#app{
42
90
  width: 100%;
43
91
  height: 100%;
44
92
  }
93
+ $themes: (
94
+ blue: (
95
+ //字体
96
+ textColor: #fff,
97
+ textColor1:#333,
98
+ textColor2:#33B0FE,
99
+ //移入或选中字体颜色
100
+ _textColor:#eeda22,
101
+ //图标颜色
102
+ iconColor:#fff,
103
+ iconColor1:#0f6cb3,
104
+ //背景
105
+ bgColor1:#ffffff27,
106
+ bgColor2:#1479b1,
107
+ bgColor3-1:#e8eefcD9,
108
+ bgColor3-2:#4251baD9,
109
+ bgColor3-3:#1581a0D9,
110
+ bgColor5:#4683c4,
111
+ bgColor6:#2790c9,
112
+ bgColor7:#279ee2B3,
113
+ //渐变
114
+ linear1:linear-gradient(to right,#287ddfB3,#287ddfB3), //70%透明度
115
+ linear2:linear-gradient(to right,#dbe8f6,#dbe8f6),
116
+ linear3:linear-gradient(to right,#dbe8f6D9,#dbe8f6D9),
117
+ linear4:linear-gradient(to right,#295ab3,#236ebc),
118
+ //边框
119
+ bdColor: #789ddd,
120
+ bdColor1:#333,
121
+ bdColor2:#60e5f8,
122
+ bdColor3:#dbe8f6,
123
+ bdColor4:#b7cadb
124
+ ),
125
+ black: (
126
+ //字体
127
+ textColor:#fff,
128
+ textColor1:#333,
129
+ textColor2:#dadada,
130
+ //移入或选中字体颜色
131
+ _textColor:#57f857,
132
+ //图标颜色
133
+ iconColor:#fff,
134
+ iconColor1:#787d81,
135
+ //背景
136
+ bgColor1:#2c2f36,
137
+ bgColor2:#094860,
138
+ bgColor3-1:#f0f0f0D9,
139
+ bgColor3-2:#161f30D9,
140
+ bgColor3-3:#07506cD9,
141
+ bgColor5:#787a80,
142
+ bgColor6:#989aa0,
143
+ bgColor7:#989aa0B3,
144
+ //渐变
145
+ linear1:linear-gradient(to right,#6f7071B3,#05040eB3), //70%透明度
146
+ linear2:linear-gradient(to right,#dddddd,#dddddd),
147
+ linear3:linear-gradient(to right,#ddddddD9,#ddddddD9),
148
+ linear4:linear-gradient(to right,#5b5f68,#5d5e62),
149
+ //边框
150
+ bdColor: #a0a08e,
151
+ bdColor1:#333,
152
+ bdColor2:#d1cfd0,
153
+ bdColor3:#dddddd,
154
+ bdColor4:#d0d3d6
155
+ ),
156
+ purple: (
157
+ //字体
158
+ textColor:#fff,
159
+ textColor1:#333,
160
+ textColor2:#ca92f1,
161
+ //移入或选中字体颜色
162
+ _textColor:#57f857,
163
+ //图标颜色
164
+ iconColor:#fff,
165
+ iconColor1:#ab5fbe,
166
+ //背景
167
+ bgColor1:#552782,
168
+ bgColor2:#98298a,
169
+ bgColor3-1:#ffeff6D9,
170
+ bgColor3-2:#90377aD9,
171
+ bgColor3-3:#5375b9D9,
172
+ bgColor5:#733da3,
173
+ bgColor6:#9a52da,
174
+ bgColor7:#9a52daB3,
175
+ //渐变
176
+ linear1:linear-gradient(to right,#8351c2B3,#bd2e77B3), //70%透明度
177
+ linear2:linear-gradient(to right,#e6deeb,#e6deeb),
178
+ linear3:linear-gradient(to right,#e6deebD9,#e6deebD9),
179
+ linear4:linear-gradient(to right,#774ab8,#6c31a8),
180
+ //边框
181
+ bdColor: #ecc5e0,
182
+ bdColor1:#333,
183
+ bdColor2:#b379e7,
184
+ bdColor3:#e6deeb,
185
+ bdColor4:#d0d3d6
186
+ )
187
+ );
188
+ //设置容器
189
+ @mixin size($width:auto,$height:auto,$bg:null,$lh:false,$rd:null,$ag:null,$dp:null,$bd:null,$cp:false,$of:null) {
190
+ width:$width;
191
+ height:$height;
192
+ @if $bg{
193
+ background-color:$bg;
194
+ }
195
+ @if $lh{
196
+ line-height: $height;
197
+ }
198
+ @if $rd{
199
+ border-radius: $rd;
200
+ }
201
+ @if $ag{
202
+ text-align: $ag;
203
+ }
204
+ @if $dp{
205
+ display: $dp;
206
+ }
207
+ @if $bd{
208
+ border:$bd;
209
+ }
210
+ @if $cp{
211
+ cursor: pointer;
212
+ }
213
+ @if $of{
214
+ overflow: $of;
215
+ }
216
+ }
217
+ //设置字体
218
+ @mixin font($color:#fff,$size:14px,$sp:null,$dc:null,$ws:false,$cp:false,$ff:null){
219
+ color:$color;
220
+ font-size:$size;
221
+ @if $sp {
222
+ letter-spacing:$sp;
223
+ }
224
+ @if $dc {
225
+ text-decoration: $dc;
226
+ }
227
+ @if $ws{
228
+ white-space:nowrap;
229
+ }
230
+ @if $cp{
231
+ cursor: pointer;
232
+ }
233
+ @if $ff{
234
+ font-family: $ff;
235
+ }
236
+ }
237
+ //绝对定位撑满容器
238
+ @mixin absolute-full($top:0,$right:0,$bottom:0,$left:0,$zi:null){
239
+ position: absolute;
240
+ top:$top;
241
+ right:$right;
242
+ bottom:$bottom;
243
+ left:$left;
244
+ @if $zi{
245
+ z-index:$zi
246
+ }
247
+ }
248
+ //绝对定位 top left
249
+ @mixin absolute-top-left($top:0,$left:0){
250
+ position: absolute;
251
+ top:$top;
252
+ left:$left;
253
+ }
254
+ //绝对定位 top right
255
+ @mixin absolute-top-right($top:0,$right:0){
256
+ position: absolute;
257
+ top:$top;
258
+ right:$right;
259
+ }
260
+ //绝对定位 bottom left
261
+ @mixin absolute-bottom-left($bottom:0,$left:0){
262
+ position: absolute;
263
+ bottom:$bottom;
264
+ left:$left;
265
+ }
266
+ //绝对定位 bottom right
267
+ @mixin absolute-bottom-right($bottom:0,$right:0){
268
+ position: absolute;
269
+ bottom:$bottom;
270
+ right:$right;
271
+ }
272
+ //设置背景
273
+ @mixin background($type:'color',$val:#fff){
274
+ @if $type == 'color' {
275
+ background-color: $val;
276
+ }@else if $type == 'img' {
277
+ background-image: $val;
278
+ background-size: 100%;
279
+ }
280
+ }
281
+ // 文字省略:单行
282
+ .text-oneline {
283
+ white-space: nowrap;
284
+ overflow: hidden;
285
+ text-overflow: ellipsis;
286
+ }
287
+
288
+ //不知宽高的元素绝对居中
289
+ .el-center {
290
+ @include absolute-top-left(50%,50%);
291
+ transform: translate(-50%,-50%);
292
+ }
293
+ //相对定位
294
+ .relative{
295
+ position: relative;
296
+ }
297
+ //相对定位垂直居中
298
+ .middle{
299
+ position: relative;
300
+ top:50%;
301
+ transform: translateY(-50%);
302
+ }
303
+ //滚动条样式
304
+ @mixin scrollBarStyle($w:2px,$h:2px,$c:#989ba380) {
305
+ &::-webkit-scrollbar {
306
+ width: $w;
307
+ height: $h;
308
+ display: none;
309
+ }
310
+ &:hover::-webkit-scrollbar{
311
+ display: block;
312
+ }
313
+ &::-webkit-scrollbar-thumb {
314
+ border-radius: 10px;
315
+ background:$c;
316
+ }
317
+ }
318
+
319
+ //滚动条样式
320
+ @mixin scrollBarStyle1($w:2px,$h:2px,$c:#989ba380) {
321
+ &::-webkit-scrollbar {
322
+ width: $w;
323
+ height: $h;
324
+ }
325
+ &::-webkit-scrollbar-thumb {
326
+ border-radius: 10px;
327
+ background:$c;
328
+ }
329
+ }
330
+ //遍历主题map
331
+ @mixin themeify {
332
+ @each $theme-name, $theme-map in $themes {
333
+ //!global 把局部变量强升为全局变量
334
+ $theme-map: $theme-map !global;
335
+ //判断html的data-theme的属性值 #{}是sass的插值表达式
336
+ //& sass嵌套里的父容器标识 @content是混合器插槽,像vue的slot
337
+ [color-theme="#{$theme-name}"] & {
338
+ @content;
339
+ }
340
+ }
341
+ }
342
+
343
+ //声明一个根据Key获取颜色的function
344
+ @function themed($key) {
345
+ @return map-get($theme-map, $key);
346
+ }
347
+
348
+ //获取主框架背景颜色
349
+ @mixin bg($color) {
350
+ @include themeify {
351
+ background-color: themed($color);
352
+ }
353
+ }
354
+
355
+ @mixin _bg($color) {
356
+ @include themeify {
357
+ background-color: themed($color) !important;
358
+ }
359
+ }
360
+
361
+ //获取主框架背景颜色
362
+ @mixin bgl($color) {
363
+ @include themeify {
364
+ background-image: themed($color);
365
+ }
366
+ }
367
+
368
+ @mixin _bgl($color) {
369
+ @include themeify {
370
+ background-image: themed($color) !important;
371
+ }
372
+ }
373
+
374
+ //获取主框架背景颜色
375
+ @mixin bgi($path) {
376
+ @include themeify {
377
+ background-image: themed($path);
378
+ }
379
+ }
380
+
381
+ //获取主框架字体颜色
382
+ @mixin txt($color) {
383
+ @include themeify {
384
+ color: themed($color);
385
+ }
386
+ }
387
+
388
+ @mixin _txt($color) {
389
+ @include themeify {
390
+ color: themed($color) !important;
391
+ }
392
+ }
393
+
394
+ //获取主框架边框颜色
395
+ @mixin bd($color,$p:null) {
396
+ @include themeify {
397
+ @if $p==null {
398
+ border-color: themed($color);
399
+ }
400
+ @if $p=='l' {
401
+ border-left-color: themed($color);
402
+ }
403
+ @if $p=='r' {
404
+ border-right-color: themed($color);
405
+ }
406
+ @if $p=='t' {
407
+ border-top-color: themed($color);
408
+ }
409
+ @if $p=='b' {
410
+ border-bottom-color: themed($color);
411
+ }
412
+ }
413
+ }
414
+
415
+ //获取主框架边框颜色
416
+ @mixin _bd($color,$p:null) {
417
+ @include themeify {
418
+ @if $p==null {
419
+ border-color: themed($color) !important;
420
+ }
421
+ @if $p=='l' {
422
+ border-left-color: themed($color) !important;
423
+ }
424
+ @if $p=='r' {
425
+ border-right-color: themed($color) !important;
426
+ }
427
+ @if $p=='t' {
428
+ border-top-color: themed($color) !important;
429
+ }
430
+ @if $p=='b' {
431
+ border-bottom-color: themed($color) !important;
432
+ }
433
+ }
434
+ }
435
+ //设置outline
436
+ @mixin ol($color) {
437
+ @include themeify {
438
+ outline:1px solid themed($color);
439
+ }
440
+ }
441
+ //设置表格的边线
442
+ @mixin linear($color){
443
+ @include themeify {
444
+ background-image: linear-gradient(themed($color),themed($color)),linear-gradient(themed($color),themed($color));
445
+ }
446
+ }
447
+
448
+ //菜单1
449
+ .menu-one{
450
+ .mune-base ul{
451
+ background-color: #f2f2f2 !important;
452
+ .el-submenu__title,
453
+ .el-menu-item{
454
+ height:42px;
455
+ line-height: 41px;
456
+ i{
457
+ @include txt("textColor1");
458
+ }
459
+ span{
460
+ @include txt("textColor1");
461
+ }
462
+ }
463
+ }
464
+ >ul{
465
+ text-align: left;
466
+ .el-submenu__title,
467
+ .el-menu-item{
468
+ height:42px;
469
+ line-height: 41px;
470
+ i{
471
+ @include txt("iconColor");
472
+ }
473
+ span{
474
+ @include txt("textColor");
475
+ }
476
+ }
477
+ .el-submenu__title{
478
+ border:none !important;
479
+ padding-left: 10px;
480
+ padding-right: 0;
481
+ span{
482
+ @include size(150px,auto,$dp:inline-block,$ag:left);
483
+ @extend .text-oneline;
484
+ padding-right:15px;
485
+ }
486
+ }
487
+ .el-menu-item {
488
+ padding-left: 10px;
489
+ padding-right: 10px;
490
+ span{
491
+ @include size(220px,auto,$dp:inline-block,$ag:left);
492
+ @extend .text-oneline;
493
+ }
494
+ }
495
+ .el-menu--collapse>.el-submenu>.el-submenu__title .el-submenu__icon-arrow{
496
+ display: inline-block;
497
+ right:10px !important;
498
+ }
499
+ }
500
+ .el-menu.el-menu--horizontal{
501
+ border:none;
502
+ }
503
+ .el-menu-item.is-active{
504
+ @include _bg('bgColor6');
505
+ span,i{
506
+ @include _txt('textColor');
507
+ }
508
+ }
509
+ }
510
+ //菜单移入效果
511
+ .el-menu-item:hover,
512
+ .el-submenu__title:hover{
513
+ @include _bg('bgColor6');
514
+ span,i{
515
+ @include _txt('textColor');
516
+ }
517
+ }
518
+ //加载条颜色
519
+ #nprogress .bar {
520
+ background: rgb(175, 111, 28) !important; //自定义颜色
521
+ }
522
+ //文字提示容器取消outline
523
+ .el-tooltip{
524
+ outline: none;
525
+ }
526
+
527
+ @for $i from 0 through 4 {
528
+ .level#{$i}{
529
+ font-size: (15px - $i);
530
+ margin-left:6px;
531
+ }
532
+ }
533
+
534
+ @mixin theme(){
535
+ [data-theme="primary1"]{
536
+ };
537
+ [data-theme="primary2"]{
538
+ };
539
+ [data-theme="primary3"]{
540
+ @extend .breadcrumb-jt;
541
+ };
542
+ }
543
+ //表格样式1
544
+ .tableStyle-1{
545
+ //设置行高度
546
+ .vxe-body--column,.vxe-footer--column{
547
+ @include linear('bdColor4');
548
+ }
549
+ .vxe-header--row{
550
+ background: linear-gradient(#efeef0,#d0d3d6);
551
+ font-size: 12px;
552
+ }
553
+ .jt-table-class-only .vxe-header--column{
554
+ height:34px !important;
555
+ @include linear('bdColor4');
556
+ }
557
+ //背景色
558
+ .vxe-table .vxe-body--row{
559
+ background-color: transparent;
560
+ }
561
+ /* table斑马线颜色 */
562
+ .vxe-table .vxe-body--row.row--stripe {
563
+ background-color:#dadfe780;;
564
+ }
565
+ //移入颜色
566
+ .vxe-table .vxe-body--row:hover{
567
+ background-color: #a2c2ec80;
568
+ }
569
+ /* table行高亮颜色 */
570
+ .vxe-table.jt-table-class-only .vxe-body--row.row--current{
571
+ background: #b5cff180;
572
+ }
573
+ /* table列高亮颜色 */
574
+ .vxe-table.jt-table-class-only .vxe-body--column.col--current{
575
+ background: #a2c2ec80;
576
+ }
577
+ .jt-table-class-only div{
578
+ @include scrollBarStyle1(6px,6px,#588ccf);
579
+ box-sizing: border-box;
580
+ }
581
+ .vxe-body--row .col--checkbox,
582
+ .vxe-body--row .col--radio{
583
+ background: linear-gradient(#efeef0,#d0d3d6);
584
+ border-right:1px solid;
585
+ @include bd('bdColor4');
586
+ }
587
+ .vxe-body--row .col--seq{
588
+ background: linear-gradient(#efeef0,#d0d3d6);;
589
+ }
590
+ .f-col .vxe-body--column{
591
+ background:linear-gradient(#efeef0,#d0d3d6) !important;
592
+ }
593
+ .h-col div{
594
+ display: none;
595
+ }
596
+ }
45
597
 
598
+ //表格样式2
599
+ .tableStyle-2{
600
+ .vxe-table{
601
+ font-size: 12px;
602
+ }
603
+ //设置行高度
604
+ .vxe-table--header-border-line{
605
+ @include bd('bdColor4');
606
+ }
607
+ .vxe-body--column{
608
+ @include linear('bdColor4');
609
+ }
610
+ .vxe-header--row{
611
+ background: linear-gradient(#f3fcfe,#d5dfe8);
612
+ font-size: 12px;
613
+ }
614
+ .vxe-header--column{
615
+ height:34px !important;
616
+ @include linear('bdColor4');
617
+ }
618
+ /* table斑马线颜色 */
619
+ .vxe-table .vxe-body--row.row--stripe {
620
+ background:#d6ebfd;
621
+ }
622
+ //移入颜色
623
+ .vxe-table .vxe-body--row:hover{
624
+ background: #bbd4ea;
625
+ }
626
+ /* table行高亮颜色 */
627
+ .vxe-table .vxe-body--row.row--current{
628
+ background: #bbd4ea;
629
+ }
630
+ /* table列高亮颜色 */
631
+ .vxe-table .vxe-body--column.col--current{
632
+ background: #bbd4ea;
633
+ }
634
+ .jt-table-class-only div{
635
+ @include scrollBarStyle1(6px,6px,#588ccf);
636
+ box-sizing: border-box;
637
+ }
638
+ .jt-table-class-only .col--checkbox{
639
+ background: linear-gradient(#f3fcfe,#d5dfe8) !important;
640
+ border-right:1px solid;
641
+ border-bottom:1px solid;
642
+ @include _bd('bdColor4');
643
+ }
644
+ .jt-table-class-only .col--radio{
645
+ background: linear-gradient(#f3fcfe,#d5dfe8);
646
+ border-right:1px solid;
647
+ @include _bd('bdColor4');
648
+ }
649
+ .vxe-body--row .col--seq{
650
+ background: linear-gradient(#f3fcfe,#d5dfe8) !important;
651
+ border-right:1px solid;
652
+ border-bottom:1px solid;
653
+ @include _bd('bdColor4') ;
654
+ }
655
+ .f-col .vxe-body--column{
656
+ background:linear-gradient(#efeef0,#d0d3d6) !important;
657
+ }
658
+ .h-col div{
659
+ display: none;
660
+ }
661
+ }
46
662
  </style>