bi-element-ui 0.1.41 → 0.1.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 (51) hide show
  1. package/.browserslistrc +3 -3
  2. package/.eslintrc.js +287 -287
  3. package/.prettierrc +7 -7
  4. package/README.md +148 -148
  5. package/cypress.json +3 -3
  6. package/dist/js/about.a5370aa0.js +1 -1
  7. package/dist/js/chunk-vendors.a9a38d93.js +317 -317
  8. package/dist/js/index.8837e62a.js +1 -1
  9. package/lib/bi-element-ui.common.js +29339 -25508
  10. package/lib/bi-element-ui.css +1 -1
  11. package/lib/bi-element-ui.umd.js +29339 -25508
  12. package/lib/bi-element-ui.umd.min.js +150 -150
  13. package/lib/static/img/swiperBg.png +0 -0
  14. package/package.json +57 -57
  15. package/src/App.vue +42 -41
  16. package/src/components/BiDatePicker/datePickerOption.js +229 -229
  17. package/src/components/BiDatePicker/index.vue +74 -74
  18. package/src/components/BiTable/columu.vue +104 -104
  19. package/src/components/BiTable/forced.js +76 -76
  20. package/src/components/BiTable/index.js +6 -6
  21. package/src/components/BiTable/render.vue +13 -13
  22. package/src/components/BiTable/table.vue +202 -202
  23. package/src/components/BiTableColumn/Group.vue +277 -277
  24. package/src/components/BiTableColumn/api.js +16 -16
  25. package/src/components/BiTableColumn/index.vue +614 -614
  26. package/src/components/BiTooltipIcon/index.vue +71 -71
  27. package/src/components/EditBtn.vue +15 -15
  28. package/src/components/FreeButton/index.vue +69 -69
  29. package/src/components/Pagination/index.vue +104 -104
  30. package/src/components/Pagination/scrollTo.js +69 -69
  31. package/src/main.js +18 -18
  32. package/src/router/index.js +39 -34
  33. package/src/store/index.js +11 -11
  34. package/src/table.js +463 -463
  35. package/src/views/Date.vue +132 -132
  36. package/src/views/Home.vue +330 -330
  37. package/src/views/Scene.vue +140 -140
  38. package/src/views/Table.vue +220 -220
  39. package/src/views/img/1.png +0 -0
  40. package/src/views/img/2.png +0 -0
  41. package/src/views/img/3.png +0 -0
  42. package/src/views/img/4.png +0 -0
  43. package/src/views/img/new.png +0 -0
  44. package/src/views/img/swiperBg.png +0 -0
  45. package/src/views/showData.vue +369 -0
  46. package/tests/e2e/.eslintrc.js +10 -10
  47. package/tests/e2e/plugins/index.js +25 -25
  48. package/tests/e2e/specs/test.js +8 -8
  49. package/tests/e2e/support/commands.js +25 -25
  50. package/tests/e2e/support/index.js +20 -20
  51. package/tests/unit/example.spec.js +13 -13
@@ -1,202 +1,202 @@
1
- <template>
2
- <div class="bi-table">
3
- <div class="bi-table-wrapper">
4
- <el-table
5
- ref="elTable"
6
- :data="data"
7
- :max-height="maxHeight"
8
- v-bind="$attrs"
9
- v-on="$listeners"
10
- >
11
- <template v-for="item in tbColumns">
12
- <el-table-column
13
- v-if="item.slotScope"
14
- :key="item.prop+item.label"
15
- v-bind="item"
16
- v-on="$listeners"
17
- >
18
- <template slot-scope="scope">
19
- <slot
20
- :name="item.prop"
21
- v-bind="scope"
22
- ></slot>
23
- </template>
24
- </el-table-column>
25
-
26
- <bi-column
27
- v-else
28
- :key="item.prop+item.label"
29
- v-bind="$attrs"
30
- :column="item"
31
- />
32
- </template>
33
- </el-table>
34
- </div>
35
- <template v-if="pagination">
36
- <pagination
37
- v-if="data.length > 0"
38
- v-bind="$attrs"
39
- v-on="$listeners"
40
- />
41
- </template>
42
- </div>
43
- </template>
44
-
45
- <script>
46
- import BiColumn from './columu'
47
- import Pagination from '../Pagination'
48
-
49
- export default {
50
- name: 'BiTable',
51
- components: {
52
- Pagination,
53
- BiColumn
54
- },
55
- props: {
56
- data: {
57
- type: Array,
58
- default: () => {
59
- return []
60
- }
61
- },
62
- column: {
63
- type: Array,
64
- default: () => {
65
- return []
66
- }
67
- },
68
- columnsProps: {
69
- type: Object,
70
- default: () => {
71
- return {}
72
- }
73
- },
74
- pagination: {
75
- type: Boolean,
76
- default: false
77
- },
78
- fixed: {
79
- type: String,
80
- default: ''
81
- },
82
- fixedOffset: {
83
- type: String,
84
- default: ''
85
- }
86
- },
87
- data() {
88
- return {
89
- maxHeight: null
90
- }
91
- },
92
- computed: {
93
- tbColumns() {
94
- const { column, columnsProps: props } = this
95
- return column.map((col) => {
96
- const it = Object.assign({}, props, col)
97
- return it
98
- })
99
- },
100
- fixedHeader() {
101
- return this.fixed
102
- }
103
- },
104
- mounted() {
105
- if (this.fixedHeader === 'sticky') {
106
- window.addEventListener('scroll', this.handleStickyHeader, true)
107
- } else if (this.fixedHeader === 'fullscreen') {
108
- window.addEventListener('scroll', this.handleFixedHeader, true)
109
- // this.maxHeight = 300
110
- }
111
- },
112
- destroyed() {
113
- if (this.fixedHeader === 'sticky') {
114
- window.removeEventListener('scroll', this.handleStickyHeader, true)
115
- } else if (this.fixedHeader === 'fullscreen') {
116
- window.removeEventListener('scroll', this.handleFixedHeader, true)
117
- // this.maxHeight = 300
118
- }
119
- },
120
- methods: {
121
- handleStickyHeader() {
122
- // 获取滚动条滚动的高度
123
- const scrollTop = document.documentElement.scrollTop
124
- // 先获取父盒子的距离顶部的高度,从而算出子盒子的高度。
125
-
126
- const offsetTop = this.getElementTop(this.$el)
127
- // 当子盒子距离顶部的距离 小于滚动的高度,使子盒子吸顶。
128
-
129
- if (scrollTop > offsetTop + 30) {
130
- // 判断当前是否已经固定。headerStatus优化值 可有可无。
131
- if (!this.headerStatus) {
132
- this.headerStatus = true
133
- // 当前子盒子要在父盒子中横向滚动 所以使用absolute 绝对定位。
134
- this.$el.getElementsByClassName('el-table__header-wrapper')[0].style.position = 'absolute'
135
- this.$el.getElementsByClassName('el-table__header-wrapper')[0].style.zIndex = '2'
136
- }
137
- // 绝对定位 top值需要一直改变 所以动态添加top值
138
- const top = scrollTop - (offsetTop + 1) + Number(this.fixedOffset)
139
- // 中间header
140
- this.$el.getElementsByClassName('el-table__header-wrapper')[0].style.transform = `translate3d(0px, ${top}px, 0px)`
141
- this.$el.getElementsByClassName('el-table__header-wrapper')[0].style.position = 'relative'
142
-
143
- // 左边header
144
- if (this.$el.querySelector('.el-table__fixed')) {
145
- this.$el.querySelector('.el-table__fixed').style.zIndex = '3'
146
- }
147
- if (this.$el.querySelector('.el-table__fixed .el-table__fixed-header-wrapper')) {
148
- this.$el.querySelector('.el-table__fixed .el-table__fixed-header-wrapper').style.transform = `translate3d(0px, ${top}px, 0px)`
149
- this.$el.querySelector('.el-table__fixed .el-table__fixed-header-wrapper').style.zIndex = '4'
150
- }
151
-
152
- // 右边header
153
- if (this.$el.querySelector('.el-table__fixed-right')) {
154
- this.$el.querySelector('.el-table__fixed-right').style.zIndex = '4'
155
- }
156
- if (this.$el.querySelector('.el-table__fixed-right .el-table__fixed-header-wrapper')) {
157
- this.$el.querySelector('.el-table__fixed-right .el-table__fixed-header-wrapper').style.transform = `translate3d(0px, ${top}px, 0px)`
158
- this.$el.querySelector('.el-table__fixed-right .el-table__fixed-header-wrapper').style.zIndex = '4'
159
- }
160
- } else {
161
- this.headerStatus = false
162
- this.$el.getElementsByClassName('el-table__header-wrapper')[0].style.position = 'relative'
163
- this.$el.getElementsByClassName('el-table__header-wrapper')[0].style.transform = `translate3d(0px, 0px, 0px)`
164
-
165
- if (this.$el.querySelector('.el-table__fixed .el-table__fixed-header-wrapper')) {
166
- this.$el.querySelector('.el-table__fixed .el-table__fixed-header-wrapper').style.zIndex = `3`
167
- this.$el.querySelector('.el-table__fixed .el-table__fixed-header-wrapper').style.transform = `translate3d(0px, 0px, 0px)`
168
- }
169
- if (this.$el.querySelector('.el-table__fixed-right .el-table__fixed-header-wrapper')) {
170
- this.$el.querySelector('.el-table__fixed-right .el-table__fixed-header-wrapper').style.zIndex = `3`
171
- this.$el.querySelector('.el-table__fixed-right .el-table__fixed-header-wrapper').style.transform = `translate3d(0px, 0px, 0px)`
172
- }
173
- this.$el.getElementsByClassName('el-table__header-wrapper')[0].style.zIndex = '3'
174
- this.$el.getElementsByClassName('el-table__body-wrapper')[0].style.paddingTop = '0'
175
- }
176
- },
177
- handleFixedHeader() {
178
- // const scrollTop = document.documentElement.scrollTop
179
- const offsetTop = this.$el.getBoundingClientRect().top // el-table 父级div
180
- const tableHeight = window.innerHeight - Number(this.fixedOffset) - (this.pagination ? 72 : 0)
181
- if (Math.abs(tableHeight - this.maxHeight) > 3) {
182
- this.maxHeight = tableHeight
183
- }
184
- if (offsetTop <= Number(this.fixedOffset) + 20 && offsetTop >= 0) {
185
- this.$el.querySelector('.bi-table-wrapper>.el-table>.el-table__body-wrapper').style.overflowY = 'auto' // el-table class
186
- } else {
187
- this.$el.querySelector('.bi-table-wrapper>.el-table>.el-table__body-wrapper').style.overflowY = 'hidden' // el-table class
188
- }
189
- },
190
- getElementTop(element) {
191
- let actualTop = element.offsetTop
192
- let current = element.offsetParent
193
-
194
- while (current !== null) {
195
- actualTop += current.offsetTop
196
- current = current.offsetParent
197
- }
198
- return actualTop
199
- }
200
- }
201
- }
202
- </script>
1
+ <template>
2
+ <div class="bi-table">
3
+ <div class="bi-table-wrapper">
4
+ <el-table
5
+ ref="elTable"
6
+ :data="data"
7
+ :max-height="maxHeight"
8
+ v-bind="$attrs"
9
+ v-on="$listeners"
10
+ >
11
+ <template v-for="item in tbColumns">
12
+ <el-table-column
13
+ v-if="item.slotScope"
14
+ :key="item.prop+item.label"
15
+ v-bind="item"
16
+ v-on="$listeners"
17
+ >
18
+ <template slot-scope="scope">
19
+ <slot
20
+ :name="item.prop"
21
+ v-bind="scope"
22
+ ></slot>
23
+ </template>
24
+ </el-table-column>
25
+
26
+ <bi-column
27
+ v-else
28
+ :key="item.prop+item.label"
29
+ v-bind="$attrs"
30
+ :column="item"
31
+ />
32
+ </template>
33
+ </el-table>
34
+ </div>
35
+ <template v-if="pagination">
36
+ <pagination
37
+ v-if="data.length > 0"
38
+ v-bind="$attrs"
39
+ v-on="$listeners"
40
+ />
41
+ </template>
42
+ </div>
43
+ </template>
44
+
45
+ <script>
46
+ import BiColumn from './columu'
47
+ import Pagination from '../Pagination'
48
+
49
+ export default {
50
+ name: 'BiTable',
51
+ components: {
52
+ Pagination,
53
+ BiColumn
54
+ },
55
+ props: {
56
+ data: {
57
+ type: Array,
58
+ default: () => {
59
+ return []
60
+ }
61
+ },
62
+ column: {
63
+ type: Array,
64
+ default: () => {
65
+ return []
66
+ }
67
+ },
68
+ columnsProps: {
69
+ type: Object,
70
+ default: () => {
71
+ return {}
72
+ }
73
+ },
74
+ pagination: {
75
+ type: Boolean,
76
+ default: false
77
+ },
78
+ fixed: {
79
+ type: String,
80
+ default: ''
81
+ },
82
+ fixedOffset: {
83
+ type: String,
84
+ default: ''
85
+ }
86
+ },
87
+ data() {
88
+ return {
89
+ maxHeight: null
90
+ }
91
+ },
92
+ computed: {
93
+ tbColumns() {
94
+ const { column, columnsProps: props } = this
95
+ return column.map((col) => {
96
+ const it = Object.assign({}, props, col)
97
+ return it
98
+ })
99
+ },
100
+ fixedHeader() {
101
+ return this.fixed
102
+ }
103
+ },
104
+ mounted() {
105
+ if (this.fixedHeader === 'sticky') {
106
+ window.addEventListener('scroll', this.handleStickyHeader, true)
107
+ } else if (this.fixedHeader === 'fullscreen') {
108
+ window.addEventListener('scroll', this.handleFixedHeader, true)
109
+ // this.maxHeight = 300
110
+ }
111
+ },
112
+ destroyed() {
113
+ if (this.fixedHeader === 'sticky') {
114
+ window.removeEventListener('scroll', this.handleStickyHeader, true)
115
+ } else if (this.fixedHeader === 'fullscreen') {
116
+ window.removeEventListener('scroll', this.handleFixedHeader, true)
117
+ // this.maxHeight = 300
118
+ }
119
+ },
120
+ methods: {
121
+ handleStickyHeader() {
122
+ // 获取滚动条滚动的高度
123
+ const scrollTop = document.documentElement.scrollTop
124
+ // 先获取父盒子的距离顶部的高度,从而算出子盒子的高度。
125
+
126
+ const offsetTop = this.getElementTop(this.$el)
127
+ // 当子盒子距离顶部的距离 小于滚动的高度,使子盒子吸顶。
128
+
129
+ if (scrollTop > offsetTop + 30) {
130
+ // 判断当前是否已经固定。headerStatus优化值 可有可无。
131
+ if (!this.headerStatus) {
132
+ this.headerStatus = true
133
+ // 当前子盒子要在父盒子中横向滚动 所以使用absolute 绝对定位。
134
+ this.$el.getElementsByClassName('el-table__header-wrapper')[0].style.position = 'absolute'
135
+ this.$el.getElementsByClassName('el-table__header-wrapper')[0].style.zIndex = '2'
136
+ }
137
+ // 绝对定位 top值需要一直改变 所以动态添加top值
138
+ const top = scrollTop - (offsetTop + 1) + Number(this.fixedOffset)
139
+ // 中间header
140
+ this.$el.getElementsByClassName('el-table__header-wrapper')[0].style.transform = `translate3d(0px, ${top}px, 0px)`
141
+ this.$el.getElementsByClassName('el-table__header-wrapper')[0].style.position = 'relative'
142
+
143
+ // 左边header
144
+ if (this.$el.querySelector('.el-table__fixed')) {
145
+ this.$el.querySelector('.el-table__fixed').style.zIndex = '3'
146
+ }
147
+ if (this.$el.querySelector('.el-table__fixed .el-table__fixed-header-wrapper')) {
148
+ this.$el.querySelector('.el-table__fixed .el-table__fixed-header-wrapper').style.transform = `translate3d(0px, ${top}px, 0px)`
149
+ this.$el.querySelector('.el-table__fixed .el-table__fixed-header-wrapper').style.zIndex = '4'
150
+ }
151
+
152
+ // 右边header
153
+ if (this.$el.querySelector('.el-table__fixed-right')) {
154
+ this.$el.querySelector('.el-table__fixed-right').style.zIndex = '4'
155
+ }
156
+ if (this.$el.querySelector('.el-table__fixed-right .el-table__fixed-header-wrapper')) {
157
+ this.$el.querySelector('.el-table__fixed-right .el-table__fixed-header-wrapper').style.transform = `translate3d(0px, ${top}px, 0px)`
158
+ this.$el.querySelector('.el-table__fixed-right .el-table__fixed-header-wrapper').style.zIndex = '4'
159
+ }
160
+ } else {
161
+ this.headerStatus = false
162
+ this.$el.getElementsByClassName('el-table__header-wrapper')[0].style.position = 'relative'
163
+ this.$el.getElementsByClassName('el-table__header-wrapper')[0].style.transform = `translate3d(0px, 0px, 0px)`
164
+
165
+ if (this.$el.querySelector('.el-table__fixed .el-table__fixed-header-wrapper')) {
166
+ this.$el.querySelector('.el-table__fixed .el-table__fixed-header-wrapper').style.zIndex = `3`
167
+ this.$el.querySelector('.el-table__fixed .el-table__fixed-header-wrapper').style.transform = `translate3d(0px, 0px, 0px)`
168
+ }
169
+ if (this.$el.querySelector('.el-table__fixed-right .el-table__fixed-header-wrapper')) {
170
+ this.$el.querySelector('.el-table__fixed-right .el-table__fixed-header-wrapper').style.zIndex = `3`
171
+ this.$el.querySelector('.el-table__fixed-right .el-table__fixed-header-wrapper').style.transform = `translate3d(0px, 0px, 0px)`
172
+ }
173
+ this.$el.getElementsByClassName('el-table__header-wrapper')[0].style.zIndex = '3'
174
+ this.$el.getElementsByClassName('el-table__body-wrapper')[0].style.paddingTop = '0'
175
+ }
176
+ },
177
+ handleFixedHeader() {
178
+ // const scrollTop = document.documentElement.scrollTop
179
+ const offsetTop = this.$el.getBoundingClientRect().top // el-table 父级div
180
+ const tableHeight = window.innerHeight - Number(this.fixedOffset) - (this.pagination ? 72 : 0)
181
+ if (Math.abs(tableHeight - this.maxHeight) > 3) {
182
+ this.maxHeight = tableHeight
183
+ }
184
+ if (offsetTop <= Number(this.fixedOffset) + 20 && offsetTop >= 0) {
185
+ this.$el.querySelector('.bi-table-wrapper>.el-table>.el-table__body-wrapper').style.overflowY = 'auto' // el-table class
186
+ } else {
187
+ this.$el.querySelector('.bi-table-wrapper>.el-table>.el-table__body-wrapper').style.overflowY = 'hidden' // el-table class
188
+ }
189
+ },
190
+ getElementTop(element) {
191
+ let actualTop = element.offsetTop
192
+ let current = element.offsetParent
193
+
194
+ while (current !== null) {
195
+ actualTop += current.offsetTop
196
+ current = current.offsetParent
197
+ }
198
+ return actualTop
199
+ }
200
+ }
201
+ }
202
+ </script>