bri-components 1.5.21 → 1.6.0

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 (153) hide show
  1. package/README.md +83 -83
  2. package/lib/styles/bundle.css +12 -12
  3. package/lib/styles/font/fontello.svg +31 -31
  4. package/package.json +125 -125
  5. package/src/components/Error/Error403.vue +42 -42
  6. package/src/components/Error/Error404.vue +40 -40
  7. package/src/components/Error/Error500.vue +51 -51
  8. package/src/components/Error/error.less +162 -162
  9. package/src/components/Error/errorBack.vue +40 -40
  10. package/src/components/controls/DshControlInput.vue +195 -195
  11. package/src/components/controls/base/BriUpload/BriUpload.vue +434 -434
  12. package/src/components/controls/base/BriUpload/BriUploadImage.vue +377 -377
  13. package/src/components/controls/base/BriUpload/uploadList.vue +727 -727
  14. package/src/components/controls/base/BriUpload/uploadMixin.js +446 -446
  15. package/src/components/controls/base/DshCascader/DshCascader.vue +215 -215
  16. package/src/components/controls/base/DshCascader/components/cascaderModal.vue +366 -366
  17. package/src/components/controls/base/DshCascader/components/cascaderPicker.vue +416 -416
  18. package/src/components/controls/base/DshCascader/components/cascaderSimple.vue +141 -141
  19. package/src/components/controls/base/DshCascader/components/cascaderTree.vue +151 -151
  20. package/src/components/controls/base/DshCoordinates.vue +585 -577
  21. package/src/components/controls/base/DshDate/DshDate.vue +191 -191
  22. package/src/components/controls/base/DshDate/DshDaterange.vue +186 -186
  23. package/src/components/controls/base/DshDivider.vue +201 -201
  24. package/src/components/controls/base/DshEditor.vue +274 -274
  25. package/src/components/controls/base/DshInput/BriInputs.vue +166 -166
  26. package/src/components/controls/base/DshInput/DshInput.vue +260 -260
  27. package/src/components/controls/base/DshNumber/BriInputNumber/BriInputNumber.vue +435 -435
  28. package/src/components/controls/base/DshNumber/BriInputNumber/mixins/emitter.js +34 -34
  29. package/src/components/controls/base/DshNumber/BriInputNumber/mixins/form.js +14 -14
  30. package/src/components/controls/base/DshNumber/BriInputNumber/utils/assist.js +322 -322
  31. package/src/components/controls/base/DshNumber/DshNumber.vue +143 -143
  32. package/src/components/controls/base/DshNumber/DshNumberange.vue +109 -109
  33. package/src/components/controls/base/DshSelect/DshCheckbox.vue +168 -168
  34. package/src/components/controls/base/DshSelect/DshSelect.vue +180 -180
  35. package/src/components/controls/base/DshSelect/DshSelectAll.vue +269 -269
  36. package/src/components/controls/base/DshSwitch/DshSwitch.vue +115 -115
  37. package/src/components/controls/control.less +324 -324
  38. package/src/components/controls/controlMap.js +117 -117
  39. package/src/components/controls/extra/DshColor.vue +81 -81
  40. package/src/components/controls/extra/DshThemeColor.vue +100 -100
  41. package/src/components/controls/extra/DshThemeIcon.vue +122 -122
  42. package/src/components/controls/mixins/cascaderMixin.js +325 -325
  43. package/src/components/controls/mixins/cascaderPickerMixin.js +227 -227
  44. package/src/components/controls/mixins/cascaderTableMixin.js +130 -130
  45. package/src/components/controls/mixins/controlMixin.js +393 -393
  46. package/src/components/controls/mixins/dateMixin.js +149 -149
  47. package/src/components/controls/mixins/flatTableMixin.js +111 -111
  48. package/src/components/controls/mixins/numberMixin.js +112 -112
  49. package/src/components/controls/mixins/selectMixin.js +233 -233
  50. package/src/components/controls/mixins/switchMixin.js +87 -87
  51. package/src/components/controls/mixins/userAndDepartMixin.js +260 -260
  52. package/src/components/controls/senior/DshLabels.vue +333 -333
  53. package/src/components/controls/senior/DshPackage.vue +57 -57
  54. package/src/components/controls/senior/cascaderTable.vue +213 -213
  55. package/src/components/controls/senior/correlation.vue +135 -135
  56. package/src/components/controls/senior/flatTable.vue +138 -138
  57. package/src/components/controls/senior/selectDepartments.vue +399 -399
  58. package/src/components/controls/senior/selectUsers/departMenu.vue +293 -293
  59. package/src/components/controls/senior/selectUsers/selectUsers.vue +712 -712
  60. package/src/components/controls/special/DshBack.vue +42 -42
  61. package/src/components/controls/special/DshUndeveloped.vue +41 -41
  62. package/src/components/form/DshAdvSearch.vue +510 -510
  63. package/src/components/form/DshDefaultSearch.vue +260 -260
  64. package/src/components/form/DshForm.vue +494 -494
  65. package/src/components/form/searchMixin.js +376 -376
  66. package/src/components/list/BriCard.vue +95 -95
  67. package/src/components/list/BriTable.vue +205 -205
  68. package/src/components/list/BriTree.vue +529 -529
  69. package/src/components/list/BriTreeItem.vue +163 -163
  70. package/src/components/list/DshBox/DshBox.vue +219 -219
  71. package/src/components/list/DshBox/DshCard.vue +446 -446
  72. package/src/components/list/DshBox/DshCrossTable.vue +827 -827
  73. package/src/components/list/DshBox/DshList.vue +404 -404
  74. package/src/components/list/DshBox/DshPanel.vue +669 -669
  75. package/src/components/list/DshBox/DshSingleData.vue +119 -119
  76. package/src/components/list/DshBox/DshTable.vue +239 -239
  77. package/src/components/list/DshCascaderTable.vue +115 -115
  78. package/src/components/list/DshFlatTable.vue +337 -337
  79. package/src/components/list/DshPage.vue +194 -194
  80. package/src/components/list/DshTreeTable.vue +113 -113
  81. package/src/components/list/common/importModal.vue +243 -243
  82. package/src/components/list/common/quoteListModal.vue +206 -206
  83. package/src/components/list/mixins/DshCascaderTableMixin.js +278 -278
  84. package/src/components/list/mixins/DshFlatTableMixin.js +509 -509
  85. package/src/components/list/mixins/DshTreeTableMixin.js +286 -286
  86. package/src/components/list/mixins/tableBaseMixin.js +1653 -1653
  87. package/src/components/list/mixins/treeTableBaseMixin.js +145 -145
  88. package/src/components/other/BriAvatar.vue +166 -166
  89. package/src/components/other/BriCode.vue +125 -125
  90. package/src/components/other/BriCollapseTree.vue +207 -207
  91. package/src/components/other/BriGantt.vue +1087 -1087
  92. package/src/components/other/BriIframe.vue +116 -116
  93. package/src/components/other/BriLoading.vue +171 -171
  94. package/src/components/other/BriSvg.vue +27 -27
  95. package/src/components/other/DshColorPanel.vue +128 -128
  96. package/src/components/other/DshMenuNav.vue +188 -188
  97. package/src/components/small/BriButton.vue +71 -71
  98. package/src/components/small/BriDrawer.vue +169 -169
  99. package/src/components/small/BriTooltip.vue +87 -87
  100. package/src/components/small/DshBtnModal.vue +68 -68
  101. package/src/components/small/DshButtons.vue +324 -324
  102. package/src/components/small/DshDropdown.vue +225 -225
  103. package/src/components/small/DshIcons.vue +59 -59
  104. package/src/components/small/DshListRender.js +21 -21
  105. package/src/components/small/DshModal.vue +160 -160
  106. package/src/components/small/DshSteps.vue +141 -141
  107. package/src/components/small/DshTabs.vue +598 -598
  108. package/src/components/small/DshTabsSet.vue +309 -309
  109. package/src/components/small/DshTags.vue +251 -251
  110. package/src/components/small/DshTitle.vue +50 -50
  111. package/src/components/small/render.js +20 -20
  112. package/src/components/unit/DshFormUnit.vue +398 -398
  113. package/src/components/unit/DshListUnit.vue +115 -115
  114. package/src/components/unit/unitMixin.js +86 -86
  115. package/src/data/index.js +4 -4
  116. package/src/index.js +285 -285
  117. package/src/styles/bundle.css +12 -12
  118. package/src/styles/components/BriButton.less +307 -307
  119. package/src/styles/components/BriTable.less +344 -344
  120. package/src/styles/components/DshModal.less +257 -257
  121. package/src/styles/components/index.less +3 -3
  122. package/src/styles/global/animate.less +11 -11
  123. package/src/styles/global/base.less +45 -45
  124. package/src/styles/global/box.less +186 -186
  125. package/src/styles/global/control.less +122 -122
  126. package/src/styles/global/flex.less +282 -282
  127. package/src/styles/global/global.less +8 -8
  128. package/src/styles/global/text.less +59 -59
  129. package/src/styles/global/variables.less +85 -85
  130. package/src/styles/iconfont/iconfont.css +254 -254
  131. package/src/styles/iconfont/iconfont.json +422 -422
  132. package/src/styles/iconfont/iconfont.svg +137 -137
  133. package/src/styles/index.less +26 -26
  134. package/src/styles/reset-easytable.less +21 -21
  135. package/src/styles/reset-iview-controls.less +145 -145
  136. package/src/styles/reset-iview-other.less +49 -49
  137. package/src/styles/reset-iview-variables.less +43 -43
  138. package/src/styles/reset.less +45 -45
  139. package/src/utils/index.js +3 -5
  140. package/lib/0.bri-components.min.js +0 -1
  141. package/lib/1.bri-components.min.js +0 -1
  142. package/lib/10.bri-components.min.js +0 -1
  143. package/lib/11.bri-components.min.js +0 -1
  144. package/lib/2.bri-components.min.js +0 -1
  145. package/lib/3.bri-components.min.js +0 -1
  146. package/lib/4.bri-components.min.js +0 -1
  147. package/lib/5.bri-components.min.js +0 -1
  148. package/lib/6.bri-components.min.js +0 -1
  149. package/lib/7.bri-components.min.js +0 -1
  150. package/lib/8.bri-components.min.js +0 -1
  151. package/lib/9.bri-components.min.js +0 -1
  152. package/lib/bri-components.min.js +0 -18
  153. package/src/utils/table.js +0 -175
@@ -1,95 +1,95 @@
1
- <template>
2
- <div class="BriCard">
3
- <template v-if="data.length">
4
- <div
5
- v-for="item in data"
6
- :key="item._key"
7
- class="item"
8
- @click="change(item)"
9
- >
10
- <div :class="{
11
- 'item-normal': true,
12
- 'item-active': item.checked
13
- }">
14
- <span class="label">{{ item.name }}</span>
15
- </div>
16
- </div>
17
- </template>
18
-
19
- <div
20
- v-else
21
- class="BriCard-nodata"
22
- >
23
- 暂无数据…
24
- </div>
25
- </div>
26
- </template>
27
-
28
- <script>
29
- export default {
30
- name: "BriCard",
31
- mixins: [],
32
- components: {},
33
- props: {
34
- data: {
35
- type: Array,
36
- default () {
37
- return [];
38
- }
39
- }
40
- },
41
- data () {
42
- return {};
43
- },
44
- computed: {},
45
- created () {},
46
- methods: {
47
- change () {
48
- this.$emit("on-change", this.value);
49
- }
50
- }
51
- };
52
- </script>
53
-
54
- <style lang="less">
55
- .BriCard {
56
- .item {
57
- height: 50px;
58
- margin-bottom: 10px;
59
- float: left;
60
- width: 33.3%;
61
- padding: 0 10px;
62
- min-width: 160px;
63
-
64
- &-normal {
65
- width: 100%;
66
- height: 100%;
67
- border: 1px solid #eaeaea;
68
- position: relative;
69
- border-radius: 5px;
70
- cursor: pointer;
71
-
72
- .label {
73
- .dsh-ellipsis();
74
- display: block;
75
- width: 160px;
76
- height: 100%;
77
- position: absolute;
78
- left: 50%;
79
- margin-left: -80px;
80
- line-height: 50px;
81
- text-align: center;
82
- }
83
- }
84
-
85
- &-active {
86
- background-color: @themeColor;
87
- color: #fff;
88
- }
89
- }
90
-
91
- &-nodata {
92
- #dsh-nodata();
93
- }
94
- }
95
- </style>
1
+ <template>
2
+ <div class="BriCard">
3
+ <template v-if="data.length">
4
+ <div
5
+ v-for="item in data"
6
+ :key="item._key"
7
+ class="item"
8
+ @click="change(item)"
9
+ >
10
+ <div :class="{
11
+ 'item-normal': true,
12
+ 'item-active': item.checked
13
+ }">
14
+ <span class="label">{{ item.name }}</span>
15
+ </div>
16
+ </div>
17
+ </template>
18
+
19
+ <div
20
+ v-else
21
+ class="BriCard-nodata"
22
+ >
23
+ 暂无数据…
24
+ </div>
25
+ </div>
26
+ </template>
27
+
28
+ <script>
29
+ export default {
30
+ name: "BriCard",
31
+ mixins: [],
32
+ components: {},
33
+ props: {
34
+ data: {
35
+ type: Array,
36
+ default () {
37
+ return [];
38
+ }
39
+ }
40
+ },
41
+ data () {
42
+ return {};
43
+ },
44
+ computed: {},
45
+ created () {},
46
+ methods: {
47
+ change () {
48
+ this.$emit("on-change", this.value);
49
+ }
50
+ }
51
+ };
52
+ </script>
53
+
54
+ <style lang="less">
55
+ .BriCard {
56
+ .item {
57
+ height: 50px;
58
+ margin-bottom: 10px;
59
+ float: left;
60
+ width: 33.3%;
61
+ padding: 0 10px;
62
+ min-width: 160px;
63
+
64
+ &-normal {
65
+ width: 100%;
66
+ height: 100%;
67
+ border: 1px solid #eaeaea;
68
+ position: relative;
69
+ border-radius: 5px;
70
+ cursor: pointer;
71
+
72
+ .label {
73
+ .dsh-ellipsis();
74
+ display: block;
75
+ width: 160px;
76
+ height: 100%;
77
+ position: absolute;
78
+ left: 50%;
79
+ margin-left: -80px;
80
+ line-height: 50px;
81
+ text-align: center;
82
+ }
83
+ }
84
+
85
+ &-active {
86
+ background-color: @themeColor;
87
+ color: #fff;
88
+ }
89
+ }
90
+
91
+ &-nodata {
92
+ #dsh-nodata();
93
+ }
94
+ }
95
+ </style>
@@ -1,205 +1,205 @@
1
- <template>
2
- <div class="bri-table">
3
- <ve-table
4
- class="bri-table-content"
5
- ref="briTable"
6
- :class="[selfClassName, selfPropsObj.className]"
7
- :table-data="data"
8
- :footer-data="footerData"
9
- :columns="columnsList"
10
- :show-header="selfPropsObj.showHeader"
11
- :fixed-header="selfPropsObj.fixedHeader"
12
- :fixed-footer="selfPropsObj.fixedFooter"
13
- :scroll-width="selfPropsObj.scrollWidth"
14
- :max-height="selfPropsObj.maxHeight"
15
- :row-key-field-name="selfPropsObj.rowKeyFieldName"
16
- :border-around="selfPropsObj.borderAround"
17
- :border-x="selfPropsObj.borderX"
18
- :border-y="selfPropsObj.borderY"
19
- :cellSpanOption="selfPropsObj.cellSpanOption"
20
- :columnHiddenOption="selfPropsObj.columnHiddenOption"
21
- :cellStyleOption="cellStyleOption"
22
- :rowStyleOption="rowStyleOption"
23
- :expandOption="selfPropsObj.expandOption"
24
- :checkbox-option="selfCheckboxOption"
25
- :radioOption="selfPropsObj.radioOption"
26
- :sortOption="sortOption"
27
- :cellSelectionOption="selfPropsObj.cellSelectionOption"
28
- :editOption="selfPropsObj.editOption"
29
- :contextmenuHeaderOption="selfPropsObj.contextmenuHeaderOption"
30
- :contextmenuBodyOption="selfPropsObj.contextmenuBodyOption"
31
- :event-custom-option="eventCustomOption"
32
- :cellAutofillOption="selfPropsObj.cellAutofillOption"
33
- :clipboardOption="selfPropsObj.clipboardOption"
34
- :columnWidthResizeOption="columnWidthResizeOption"
35
- ></ve-table>
36
-
37
- <!-- loading -->
38
- <bri-loading
39
- class="bri-table-empty"
40
- :value="isLoading ? 1 : data.length ? 0 : 2"
41
- >
42
- <template slot="nodata">
43
- {{ noDataText }}
44
- </template>
45
- </bri-loading>
46
- </div>
47
- </template>
48
-
49
- <script>
50
- export default {
51
- name: "BriTable",
52
- props: {
53
- isLoading: Boolean,
54
- data: Array,
55
- footerData: Array,
56
- columns: Array,
57
-
58
- noDataText: {
59
- type: String,
60
- default: "暂无数据…"
61
- },
62
- propsObj: {
63
- type: Object,
64
- default () {
65
- return {};
66
- }
67
- },
68
- checkboxOption: {
69
- type: Object,
70
- default () {
71
- return {};
72
- }
73
- }
74
- },
75
- data () {
76
- // 中文文档https://happy-coding-clans.github.io/vue-easytable/#/zh/doc/table/api
77
- return { };
78
- },
79
- computed: {
80
- selfPropsObj () {
81
- return {
82
- rowKeyFieldName: "_id",
83
- scrollWidth: "0",
84
- borderY: true,
85
- fixedHeader: true,
86
- canClick: false,
87
- cellSelectionOption: {
88
- enable: false
89
- },
90
- ...this.propsObj
91
- };
92
- },
93
- columnsList () {
94
- return this.columns;
95
- },
96
-
97
- // 当前表格状态
98
- currentState () {
99
- return this.propsObj.state || this.state;
100
- },
101
- selfClassName () {
102
- let className = "";
103
- if (this.selfPropsObj.canClick) {
104
- className += "bri-table-click ";
105
- }
106
- if (this.loading || !this.data.length) {
107
- className += "bri-table-onlyhead ";
108
- }
109
- return className;
110
- },
111
- rowStyleOption () {
112
- return {
113
- clickHighlight: false,
114
- ...(this.propsObj.rowStyleOption || {})
115
- };
116
- },
117
- cellStyleOption () {
118
- return {
119
- headerCellClass: () => {
120
- return "bri-table-th";
121
- },
122
- bodyCellClass: ({rowIndex}) => {
123
- return "bri-table-td";
124
- },
125
- ...(this.propsObj.cellStyleOption || {})
126
- };
127
- },
128
- // 自定义表格事件,也可配置鼠标事件
129
- eventCustomOption () {
130
- return {
131
- bodyCellEvents: ({ row, rowIndex, column }) => {
132
- return {
133
- click: (event) => {
134
- if (!["checkbox"].includes(column.type)) {
135
- this.$emit("click-row", row, rowIndex, event);
136
- }
137
- },
138
- dblclick: (event) => {
139
- this.$emit("db-click-row", row, rowIndex, column, event);
140
- }
141
- };
142
- },
143
- ...(this.propsObj.eventCustomOption || {})
144
- };
145
- },
146
- // 全选配置项
147
- selfCheckboxOption () {
148
- return {
149
- // 行选择改变事件
150
- selectedRowChange: ({ row, isSelected, selectedRowKeys }) => {
151
- this.$emit(
152
- "changeSelect",
153
- this.data.filter(dataItem => selectedRowKeys.includes(dataItem[this.selfPropsObj.rowKeyFieldName])),
154
- { row, isSelected, selectedRowKeys }
155
- );
156
- },
157
- // 全选改变事件
158
- selectedAllChange: ({ isSelected, selectedRowKeys }) => {
159
- this.$emit(
160
- "selectAll",
161
- this.data.filter(dataItem => selectedRowKeys.includes(dataItem[this.selfPropsObj.rowKeyFieldName])),
162
- { isSelected, selectedRowKeys }
163
- );
164
- },
165
- ...(this.propsObj.checkboxOption || {}),
166
- ...this.checkboxOption
167
- };
168
- },
169
- // 列宽改变设置项
170
- columnWidthResizeOption () {
171
- return {
172
- enable: true,
173
- minWidth: 80,
174
- sizeChange: ({ column, differWidth, columnWidth }) => {
175
- this.$emit("size-change", column, differWidth, columnWidth);
176
- },
177
- ...(this.propsObj.columnWidthResizeOption || {})
178
- };
179
- },
180
- sortOption () {
181
- return {
182
- sortChange: (params) => {
183
- let sortObj =
184
- Object.keys(params)
185
- .filter(attr => !!params[attr])
186
- .reduce((obj, attr) => {
187
- return { sortType: params[attr], field: attr };
188
- }, {});
189
- this.$emit("changeSort", sortObj);
190
- },
191
- ...(this.propsObj.sortOption || {})
192
- };
193
- }
194
- },
195
- mounted () {},
196
- methods: {
197
- hideColumnsByKeys (keys = []) {
198
- this.$refs.briTable.hideColumnsByKeys(keys);
199
- },
200
- showColumnsByKeys (keys = []) {
201
- this.$refs.briTable.showColumnsByKeys(keys);
202
- }
203
- }
204
- };
205
- </script>
1
+ <template>
2
+ <div class="bri-table">
3
+ <ve-table
4
+ class="bri-table-content"
5
+ ref="briTable"
6
+ :class="[selfClassName, selfPropsObj.className]"
7
+ :table-data="data"
8
+ :footer-data="footerData"
9
+ :columns="columnsList"
10
+ :show-header="selfPropsObj.showHeader"
11
+ :fixed-header="selfPropsObj.fixedHeader"
12
+ :fixed-footer="selfPropsObj.fixedFooter"
13
+ :scroll-width="selfPropsObj.scrollWidth"
14
+ :max-height="selfPropsObj.maxHeight"
15
+ :row-key-field-name="selfPropsObj.rowKeyFieldName"
16
+ :border-around="selfPropsObj.borderAround"
17
+ :border-x="selfPropsObj.borderX"
18
+ :border-y="selfPropsObj.borderY"
19
+ :cellSpanOption="selfPropsObj.cellSpanOption"
20
+ :columnHiddenOption="selfPropsObj.columnHiddenOption"
21
+ :cellStyleOption="cellStyleOption"
22
+ :rowStyleOption="rowStyleOption"
23
+ :expandOption="selfPropsObj.expandOption"
24
+ :checkbox-option="selfCheckboxOption"
25
+ :radioOption="selfPropsObj.radioOption"
26
+ :sortOption="sortOption"
27
+ :cellSelectionOption="selfPropsObj.cellSelectionOption"
28
+ :editOption="selfPropsObj.editOption"
29
+ :contextmenuHeaderOption="selfPropsObj.contextmenuHeaderOption"
30
+ :contextmenuBodyOption="selfPropsObj.contextmenuBodyOption"
31
+ :event-custom-option="eventCustomOption"
32
+ :cellAutofillOption="selfPropsObj.cellAutofillOption"
33
+ :clipboardOption="selfPropsObj.clipboardOption"
34
+ :columnWidthResizeOption="columnWidthResizeOption"
35
+ ></ve-table>
36
+
37
+ <!-- loading -->
38
+ <bri-loading
39
+ class="bri-table-empty"
40
+ :value="isLoading ? 1 : data.length ? 0 : 2"
41
+ >
42
+ <template slot="nodata">
43
+ {{ noDataText }}
44
+ </template>
45
+ </bri-loading>
46
+ </div>
47
+ </template>
48
+
49
+ <script>
50
+ export default {
51
+ name: "BriTable",
52
+ props: {
53
+ isLoading: Boolean,
54
+ data: Array,
55
+ footerData: Array,
56
+ columns: Array,
57
+
58
+ noDataText: {
59
+ type: String,
60
+ default: "暂无数据…"
61
+ },
62
+ propsObj: {
63
+ type: Object,
64
+ default () {
65
+ return {};
66
+ }
67
+ },
68
+ checkboxOption: {
69
+ type: Object,
70
+ default () {
71
+ return {};
72
+ }
73
+ }
74
+ },
75
+ data () {
76
+ // 中文文档https://happy-coding-clans.github.io/vue-easytable/#/zh/doc/table/api
77
+ return { };
78
+ },
79
+ computed: {
80
+ selfPropsObj () {
81
+ return {
82
+ rowKeyFieldName: "_id",
83
+ scrollWidth: "0",
84
+ borderY: true,
85
+ fixedHeader: true,
86
+ canClick: false,
87
+ cellSelectionOption: {
88
+ enable: false
89
+ },
90
+ ...this.propsObj
91
+ };
92
+ },
93
+ columnsList () {
94
+ return this.columns;
95
+ },
96
+
97
+ // 当前表格状态
98
+ currentState () {
99
+ return this.propsObj.state || this.state;
100
+ },
101
+ selfClassName () {
102
+ let className = "";
103
+ if (this.selfPropsObj.canClick) {
104
+ className += "bri-table-click ";
105
+ }
106
+ if (this.loading || !this.data.length) {
107
+ className += "bri-table-onlyhead ";
108
+ }
109
+ return className;
110
+ },
111
+ rowStyleOption () {
112
+ return {
113
+ clickHighlight: false,
114
+ ...(this.propsObj.rowStyleOption || {})
115
+ };
116
+ },
117
+ cellStyleOption () {
118
+ return {
119
+ headerCellClass: () => {
120
+ return "bri-table-th";
121
+ },
122
+ bodyCellClass: ({rowIndex}) => {
123
+ return "bri-table-td";
124
+ },
125
+ ...(this.propsObj.cellStyleOption || {})
126
+ };
127
+ },
128
+ // 自定义表格事件,也可配置鼠标事件
129
+ eventCustomOption () {
130
+ return {
131
+ bodyCellEvents: ({ row, rowIndex, column }) => {
132
+ return {
133
+ click: (event) => {
134
+ if (!["checkbox"].includes(column.type)) {
135
+ this.$emit("click-row", row, rowIndex, event);
136
+ }
137
+ },
138
+ dblclick: (event) => {
139
+ this.$emit("db-click-row", row, rowIndex, column, event);
140
+ }
141
+ };
142
+ },
143
+ ...(this.propsObj.eventCustomOption || {})
144
+ };
145
+ },
146
+ // 全选配置项
147
+ selfCheckboxOption () {
148
+ return {
149
+ // 行选择改变事件
150
+ selectedRowChange: ({ row, isSelected, selectedRowKeys }) => {
151
+ this.$emit(
152
+ "changeSelect",
153
+ this.data.filter(dataItem => selectedRowKeys.includes(dataItem[this.selfPropsObj.rowKeyFieldName])),
154
+ { row, isSelected, selectedRowKeys }
155
+ );
156
+ },
157
+ // 全选改变事件
158
+ selectedAllChange: ({ isSelected, selectedRowKeys }) => {
159
+ this.$emit(
160
+ "selectAll",
161
+ this.data.filter(dataItem => selectedRowKeys.includes(dataItem[this.selfPropsObj.rowKeyFieldName])),
162
+ { isSelected, selectedRowKeys }
163
+ );
164
+ },
165
+ ...(this.propsObj.checkboxOption || {}),
166
+ ...this.checkboxOption
167
+ };
168
+ },
169
+ // 列宽改变设置项
170
+ columnWidthResizeOption () {
171
+ return {
172
+ enable: true,
173
+ minWidth: 80,
174
+ sizeChange: ({ column, differWidth, columnWidth }) => {
175
+ this.$emit("size-change", column, differWidth, columnWidth);
176
+ },
177
+ ...(this.propsObj.columnWidthResizeOption || {})
178
+ };
179
+ },
180
+ sortOption () {
181
+ return {
182
+ sortChange: (params) => {
183
+ let sortObj =
184
+ Object.keys(params)
185
+ .filter(attr => !!params[attr])
186
+ .reduce((obj, attr) => {
187
+ return { sortType: params[attr], field: attr };
188
+ }, {});
189
+ this.$emit("changeSort", sortObj);
190
+ },
191
+ ...(this.propsObj.sortOption || {})
192
+ };
193
+ }
194
+ },
195
+ mounted () {},
196
+ methods: {
197
+ hideColumnsByKeys (keys = []) {
198
+ this.$refs.briTable.hideColumnsByKeys(keys);
199
+ },
200
+ showColumnsByKeys (keys = []) {
201
+ this.$refs.briTable.showColumnsByKeys(keys);
202
+ }
203
+ }
204
+ };
205
+ </script>