bi-element-ui 0.1.47 → 0.1.49

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 (52) 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/lib/bi-element-ui.common.js +21717 -22152
  7. package/lib/bi-element-ui.css +1 -1
  8. package/lib/bi-element-ui.umd.js +21717 -22152
  9. package/lib/bi-element-ui.umd.min.js +150 -150
  10. package/lib/static/img/swiperBg.png +0 -0
  11. package/package.json +57 -57
  12. package/src/App.vue +42 -42
  13. package/src/components/BiDatePicker/datePickerOption.js +229 -229
  14. package/src/components/BiDatePicker/index.vue +74 -74
  15. package/src/components/BiTable/columu.vue +104 -104
  16. package/src/components/BiTable/forced.js +76 -76
  17. package/src/components/BiTable/index.js +6 -6
  18. package/src/components/BiTable/render.vue +13 -13
  19. package/src/components/BiTable/table.vue +202 -202
  20. package/src/components/BiTableColumn/Group.vue +277 -277
  21. package/src/components/BiTableColumn/api.js +16 -16
  22. package/src/components/BiTableColumn/index.vue +614 -614
  23. package/src/components/BiTooltipIcon/index.vue +71 -71
  24. package/src/components/EditBtn.vue +15 -15
  25. package/src/components/FreeButton/index.vue +69 -69
  26. package/src/components/Pagination/index.vue +104 -104
  27. package/src/components/Pagination/scrollTo.js +69 -69
  28. package/src/main.js +18 -18
  29. package/src/router/index.js +39 -39
  30. package/src/store/index.js +11 -11
  31. package/src/table.js +463 -463
  32. package/src/views/Date.vue +132 -132
  33. package/src/views/Home.vue +330 -330
  34. package/src/views/Scene.vue +140 -140
  35. package/src/views/Table.vue +220 -220
  36. package/src/views/showData.vue +455 -455
  37. package/tests/e2e/.eslintrc.js +10 -10
  38. package/tests/e2e/plugins/index.js +25 -25
  39. package/tests/e2e/specs/test.js +8 -8
  40. package/tests/e2e/support/commands.js +25 -25
  41. package/tests/e2e/support/index.js +20 -20
  42. package/tests/unit/example.spec.js +13 -13
  43. package/dist/css/about.6cfcc147.css +0 -1
  44. package/dist/css/chunk-vendors.8140bef9.css +0 -1
  45. package/dist/css/index.59a106c6.css +0 -1
  46. package/dist/favicon.ico +0 -0
  47. package/dist/fonts/element-icons.535877f5.woff +0 -0
  48. package/dist/fonts/element-icons.732389de.ttf +0 -0
  49. package/dist/index.html +0 -1
  50. package/dist/js/about.a5370aa0.js +0 -2
  51. package/dist/js/chunk-vendors.a9a38d93.js +0 -318
  52. package/dist/js/index.8837e62a.js +0 -2
@@ -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>