umy-ui-table 1.2.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 (142) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +111 -0
  3. package/lib/button.js +1 -0
  4. package/lib/icon.js +1 -0
  5. package/lib/index.js +1 -0
  6. package/lib/locale/format.js +56 -0
  7. package/lib/locale/index.js +72 -0
  8. package/lib/locale/lang/en.js +123 -0
  9. package/lib/locale/lang/zh-CN.js +119 -0
  10. package/lib/mixins/locale.js +17 -0
  11. package/lib/theme-chalk/base.css +0 -0
  12. package/lib/theme-chalk/button.css +1 -0
  13. package/lib/theme-chalk/fonts/element-icons.ttf +0 -0
  14. package/lib/theme-chalk/fonts/element-icons.woff +0 -0
  15. package/lib/theme-chalk/fonts/iconfont.1785562768224.ttf +0 -0
  16. package/lib/theme-chalk/fonts/iconfont.1785562768224.woff +0 -0
  17. package/lib/theme-chalk/fonts/iconfont.1785562768224.woff2 +0 -0
  18. package/lib/theme-chalk/icon.css +1 -0
  19. package/lib/theme-chalk/index.css +1 -0
  20. package/lib/theme-chalk/u-table-column.css +0 -0
  21. package/lib/theme-chalk/u-table.css +1 -0
  22. package/lib/theme-chalk/ux-grid.css +1 -0
  23. package/lib/theme-chalk/ux-table-column.css +0 -0
  24. package/lib/u-table-column.js +1 -0
  25. package/lib/u-table.js +1 -0
  26. package/lib/umd/locale/en.js +139 -0
  27. package/lib/umd/locale/zh-CN.js +135 -0
  28. package/lib/umy-ui.common.js +1 -0
  29. package/lib/utils/svg.js +33 -0
  30. package/lib/utils/types.js +35 -0
  31. package/lib/utils/util.js +268 -0
  32. package/lib/ux-grid.js +1 -0
  33. package/lib/ux-table-column.js +1 -0
  34. package/package.json +117 -0
  35. package/packages/button/index.js +7 -0
  36. package/packages/button/src/button-group.vue +10 -0
  37. package/packages/button/src/button.vue +166 -0
  38. package/packages/checkbox/index.js +8 -0
  39. package/packages/checkbox/src/checkbox-button.vue +199 -0
  40. package/packages/checkbox/src/checkbox-group.vue +48 -0
  41. package/packages/checkbox/src/checkbox.vue +222 -0
  42. package/packages/checkbox-button/index.js +8 -0
  43. package/packages/checkbox-group/index.js +8 -0
  44. package/packages/icon/index.js +7 -0
  45. package/packages/icon/src/icon.vue +40 -0
  46. package/packages/input/index.js +2 -0
  47. package/packages/input/src/calcTextareaHeight.js +104 -0
  48. package/packages/input/src/input.vue +424 -0
  49. package/packages/option/index.js +2 -0
  50. package/packages/pagination/index.js +2 -0
  51. package/packages/pagination/src/pager.vue +163 -0
  52. package/packages/pagination/src/pagination.js +386 -0
  53. package/packages/scrollbar/index.js +8 -0
  54. package/packages/scrollbar/src/bar.js +92 -0
  55. package/packages/scrollbar/src/main.js +130 -0
  56. package/packages/scrollbar/src/util.js +34 -0
  57. package/packages/select/index.js +2 -0
  58. package/packages/select/src/navigation-mixin.js +54 -0
  59. package/packages/select/src/option-group.vue +60 -0
  60. package/packages/select/src/option.vue +163 -0
  61. package/packages/select/src/select-dropdown.vue +74 -0
  62. package/packages/select/src/select.vue +889 -0
  63. package/packages/table/index.js +8 -0
  64. package/packages/table/src/config.js +123 -0
  65. package/packages/table/src/dropdown.js +28 -0
  66. package/packages/table/src/filter-panel.vue +194 -0
  67. package/packages/table/src/layout-observer.js +68 -0
  68. package/packages/table/src/store/current.js +71 -0
  69. package/packages/table/src/store/expand.js +65 -0
  70. package/packages/table/src/store/helper.js +37 -0
  71. package/packages/table/src/store/index.js +145 -0
  72. package/packages/table/src/store/tree.js +208 -0
  73. package/packages/table/src/store/watcher.js +448 -0
  74. package/packages/table/src/table-body.js +493 -0
  75. package/packages/table/src/table-column.js +381 -0
  76. package/packages/table/src/table-footer.js +174 -0
  77. package/packages/table/src/table-header.js +537 -0
  78. package/packages/table/src/table-layout.js +231 -0
  79. package/packages/table/src/table.vue +741 -0
  80. package/packages/table/src/util.js +256 -0
  81. package/packages/tag/index.js +8 -0
  82. package/packages/tag/src/tag.vue +58 -0
  83. package/packages/tools/directives/mousewheel.js +18 -0
  84. package/packages/tools/directives/repeat-click.js +24 -0
  85. package/packages/tools/locale/format.js +46 -0
  86. package/packages/tools/locale/index.js +48 -0
  87. package/packages/tools/locale/lang/en.js +120 -0
  88. package/packages/tools/locale/lang/zh-CN.js +116 -0
  89. package/packages/tools/mixins/emitter.js +33 -0
  90. package/packages/tools/mixins/focus.js +9 -0
  91. package/packages/tools/mixins/locale.js +9 -0
  92. package/packages/tools/mixins/migrating.js +54 -0
  93. package/packages/tools/transitions/collapse-transition.js +77 -0
  94. package/packages/tools/utils/after-leave.js +27 -0
  95. package/packages/tools/utils/aria-dialog.js +90 -0
  96. package/packages/tools/utils/aria-utils.js +122 -0
  97. package/packages/tools/utils/clickoutside.js +76 -0
  98. package/packages/tools/utils/date-util.js +292 -0
  99. package/packages/tools/utils/date.js +368 -0
  100. package/packages/tools/utils/dom.js +227 -0
  101. package/packages/tools/utils/menu/aria-menubar.js +14 -0
  102. package/packages/tools/utils/menu/aria-menuitem.js +49 -0
  103. package/packages/tools/utils/menu/aria-submenu.js +59 -0
  104. package/packages/tools/utils/merge.js +15 -0
  105. package/packages/tools/utils/popper.js +1276 -0
  106. package/packages/tools/utils/popup/index.js +218 -0
  107. package/packages/tools/utils/popup/popup-manager.js +194 -0
  108. package/packages/tools/utils/resize-event.js +35 -0
  109. package/packages/tools/utils/scroll-into-view.js +27 -0
  110. package/packages/tools/utils/scrollbar-width.js +29 -0
  111. package/packages/tools/utils/shared.js +7 -0
  112. package/packages/tools/utils/svg.js +1 -0
  113. package/packages/tools/utils/types.js +28 -0
  114. package/packages/tools/utils/util.js +241 -0
  115. package/packages/tools/utils/vdom.js +5 -0
  116. package/packages/tools/utils/vue-popper.js +198 -0
  117. package/packages/tooltip/index.js +8 -0
  118. package/packages/tooltip/src/main.js +241 -0
  119. package/packages/u-table/index.js +4 -0
  120. package/packages/u-table/revise-el-table-mixins/index.js +10 -0
  121. package/packages/u-table/revise-el-table-mixins/table-extend.js +60 -0
  122. package/packages/u-table/revise-el-table-mixins/table.mixins.js +261 -0
  123. package/packages/u-table/revise-el-table-mixins/virtual-table-body-render.js +132 -0
  124. package/packages/u-table/src/u-table.vue +248 -0
  125. package/packages/u-table/u-table-mixins/index.js +483 -0
  126. package/packages/u-table/u-table-tree-mixins/methods.js +120 -0
  127. package/packages/u-table/u-table-tree-mixins/u-table-tree-mixins.js +161 -0
  128. package/packages/u-table-column/index.js +8 -0
  129. package/packages/utils/common.js +27 -0
  130. package/packages/ux-grid/index.js +6 -0
  131. package/packages/ux-grid/mixins/index.js +707 -0
  132. package/packages/ux-grid/src/interceptor.js +6 -0
  133. package/packages/ux-grid/src/ux-grid.vue +301 -0
  134. package/packages/ux-table-column/index.js +10 -0
  135. package/tools/locale/format.js +46 -0
  136. package/tools/locale/index.js +54 -0
  137. package/tools/locale/lang/en.js +120 -0
  138. package/tools/locale/lang/zh-CN.js +116 -0
  139. package/tools/mixins/locale.js +9 -0
  140. package/tools/utils/svg.js +1 -0
  141. package/tools/utils/types.js +28 -0
  142. package/tools/utils/util.js +241 -0
@@ -0,0 +1,248 @@
1
+ <template>
2
+ <div class="plTableBox" :class="{ beautifyTableClass: beautifyTable }" :style="[plTableHeight]">
3
+ <el-table
4
+ ref="singleTable"
5
+ class="singleTable"
6
+ :data="data"
7
+ :max-height="newMaxHeight"
8
+ :height="newHeight"
9
+ :select-tr-class="selectTrClass"
10
+ :use-virtual="(height && parseInt(height) > 0) || (maxHeight && parseInt(maxHeight) > 0) ? useVirtual : false"
11
+ :excess-rows="excessRows"
12
+ :border="border"
13
+ :indent="indent"
14
+ :lazy="lazy"
15
+ :load="load"
16
+ :data-changes-scroll-top="dataChangesScrollTop"
17
+ :stripe="stripe"
18
+ :row-key="rowKey"
19
+ :row-id="rowId"
20
+ :fixed-columns-roll="fixedColumnsRoll"
21
+ :fit="fit"
22
+ :show-header="showHeader"
23
+ :row-class-name="rowClassName"
24
+ :cell-class-name="cellClassName"
25
+ :header-row-class-name="headerRowClassName"
26
+ :header-row-style="headerRowStyle"
27
+ :header-cell-class-name="headerCellClassName"
28
+ :header-cell-style="headerCellStyle"
29
+ :row-style="rowStyle"
30
+ :cell-style="cellStyle"
31
+ :big-data-checkbox="bigDataCheckbox"
32
+ :show-header-overflow="showHeaderOverflow"
33
+ :show-body-overflow="showBodyOverflow"
34
+ :size="size"
35
+ :default-sort="defaultSort"
36
+ :default-expand-all="defaultExpandAll"
37
+ :expand-row-keys="expandRowKeys"
38
+ :tree-props="treeProps"
39
+ :tree-config="treeConfig"
40
+ :select-on-indeterminate="selectOnIndeterminate"
41
+ :span-method="arraySpanMethod"
42
+ :rowHeight="rowHeight"
43
+ :tooltipEffect="tooltipEffect"
44
+ :current-row-key="currentRowKey"
45
+ :tooltipPlacement="tooltipPlacement"
46
+ :header-drag-style="headerDragStyle"
47
+ @row-click="rowClick"
48
+ @row-dblclick="rowDblclick"
49
+ @expand-change="expChang"
50
+ @tableBodyScroll="tableBodyScroll"
51
+ :highlight-current-row="highlightCurrentRow"
52
+ :show-summary="showSummary"
53
+ @header-dragend="headerDragend"
54
+ :summary-method="getSummaries"
55
+ @cell-mouse-enter="cellMouseEnter"
56
+ @cell-mouse-leave="cellMouseLeave"
57
+ @cell-click="cellClick"
58
+ @cell-dblclick="cellDblclick"
59
+ @row-contextmenu="rowContextmenu"
60
+ @header-contextmenu="headerContextmenu"
61
+ @header-click="headerClick"
62
+ @select="plSelect"
63
+ @select-all="selectAll"
64
+ @selection-change="handleSelectionChange"
65
+ @filter-change="filterChange"
66
+ @current-change="currentChange"
67
+ @toggle-tree-expand="toggleTreeExpands"
68
+ @sort-change="sortChange"
69
+ >
70
+ <!--无数据布局-->
71
+ <template slot="empty">
72
+ <slot name="empty">{{ emptyText }}</slot>
73
+ </template>
74
+ <!--列的数组-->
75
+ <slot />
76
+ </el-table>
77
+ <div class="myPagination" v-if="paginationShow" ref="myPagination">
78
+ <el-pagination
79
+ @size-change="handleSizeChange"
80
+ @current-change="handleCurrentChange"
81
+ :current-page="newcurrentPage"
82
+ :pager-count="pagerCount"
83
+ :page-sizes="pageSizes"
84
+ :page-size="newPageSize"
85
+ :layout="layout"
86
+ :total="total"
87
+ />
88
+ </div>
89
+ <div class="plDialog" ref="plDialog">
90
+ <div style="width: 100%; height: 100%" v-if="plDialogFals">
91
+ <div class="table-cus-header">{{ fieldTitle }}</div>
92
+ <div class="checkListBox">
93
+ <draggable tag="ul" :options="{ disabled: !fieldSort }" v-model="newDialogData">
94
+ <li v-for="(item, index) in newDialogData" :key="index">
95
+ <el-checkbox v-model="item.state" :disabled="item.disabled">{{ item.name }}</el-checkbox>
96
+ <template v-if="showDialogIcon">
97
+ <i
98
+ class="iconfont"
99
+ :class="[moveDownIcon || 'el-icon-bottom']"
100
+ @click="handleField('下移', index, newDialogData)"
101
+ v-if="index !== newDialogData.length - 1"
102
+ />
103
+ <i
104
+ class="iconfont"
105
+ :class="[moveUpIcon || 'el-icon-top']"
106
+ @click="handleField('上移', index, newDialogData)"
107
+ v-if="index !== 0"
108
+ />
109
+ </template>
110
+ <i
111
+ class="iconfont"
112
+ :class="[amendBtnIcon || 'el-icon-edit']"
113
+ v-if="showAmend"
114
+ @click="amendField(item, index)"
115
+ />
116
+ </li>
117
+ </draggable>
118
+ </div>
119
+ <div class="table-cus-footer">
120
+ <el-button @click="closeModal()">取消</el-button>
121
+ <el-button type="primary" @click="confirmField">确定</el-button>
122
+ <el-button type="warning" @click="reset">重置</el-button>
123
+ </div>
124
+ </div>
125
+ </div>
126
+ </div>
127
+ </template>
128
+
129
+ <script type="text/babel">
130
+ import Vue from "vue";
131
+ import draggable from "vuedraggable";
132
+ import ElTable from "../../table";
133
+ import ElPagination from "../../pagination";
134
+ import ElCheckbox from "../../checkbox";
135
+ import ElButton from "../../button";
136
+ import uTableMixin from "../u-table-mixins";
137
+ import { parseHeight, isArrayFn } from "../../utils/common";
138
+
139
+ export default {
140
+ name: "UTable",
141
+ mixins: [uTableMixin],
142
+ components: { draggable, ElTable, ElPagination, ElCheckbox, ElButton },
143
+ data() {
144
+ return {
145
+ _times: "", // 弹框定时器
146
+ plDialogFals: false, // 侧滑弹框是否开启
147
+ newDialogData: [], // 新自定义字段的数据
148
+ aBox: "", // 蒙层节点
149
+ tableSelectData: [], // 整个表格勾选项(含分页)
150
+ position: {}, // 当前滚动的位置
151
+ newTableStore: "", // 表格的store
152
+ newPageSize: "", // 每页条数
153
+ newcurrentPage: "", // 当前页
154
+ newHeight: null, // 表格高度
155
+ newMaxHeight: null, // 表格最大高度
156
+ };
157
+ },
158
+ computed: {
159
+ plTableHeight() {
160
+ if (this.height) {
161
+ return {
162
+ height: this.height + "px",
163
+ };
164
+ } else if (this.maxHeight) {
165
+ const maxHeight = parseHeight(this.maxHeight);
166
+ if (typeof maxHeight === "number") {
167
+ return {
168
+ "max-height": this.maxHeight + "px",
169
+ };
170
+ }
171
+ }
172
+ return {};
173
+ },
174
+ },
175
+ created() {
176
+ this.newPageSize = this.pageSize;
177
+ this.newcurrentPage = this.currentPage;
178
+ },
179
+ mounted() {
180
+ this.$ready = true;
181
+ },
182
+ methods: {
183
+ // 自定义字段按钮事件
184
+ handleField(name, index, arr) {
185
+ switch (name) {
186
+ case "上移":
187
+ arr = this.swapItems(arr, index, index - 1);
188
+ break;
189
+ case "下移":
190
+ arr = this.swapItems(arr, index, index + 1);
191
+ break;
192
+ default:
193
+ break;
194
+ }
195
+ this.$emit("handle-field", name, index);
196
+ },
197
+ // 交换后的数据
198
+ swapItems(arr, index1, index2) {
199
+ arr[index1] = arr.splice(index2, 1, arr[index1])[0];
200
+ return arr;
201
+ },
202
+ // 设置表格高度
203
+ setHeight() {
204
+ if (!this.$ready && this.paginationShow) return Vue.nextTick(() => this.setHeight());
205
+ const { myPagination } = this.$refs;
206
+ if (this.height) {
207
+ this.newHeight = parseHeight(this.height) - (myPagination ? myPagination.offsetHeight : 0);
208
+ this.newMaxHeight = null;
209
+ } else if (this.maxHeight) {
210
+ this.newMaxHeight = parseHeight(this.maxHeight) - (myPagination ? myPagination.offsetHeight : 0);
211
+ this.newHeight = null;
212
+ }
213
+ },
214
+ // 设置表格数据
215
+ reloadData(data) {
216
+ if (!isArrayFn(data)) {
217
+ throw new Error("表格数据需要的是数组格式,请检查你的数据格式");
218
+ } else {
219
+ return this.$refs.singleTable.reloadData(data);
220
+ }
221
+ },
222
+ // 返回一个el-table实例
223
+ tableExample() {
224
+ if (this.$refs.singleTable) {
225
+ return this.$refs.singleTable;
226
+ }
227
+ },
228
+ // 返回虚拟树的table数据,他常用于虚拟树复选框的勾选
229
+ getUTreeData() {
230
+ if (this.$refs.singleTable) {
231
+ return this.$refs.singleTable.plTreeData;
232
+ }
233
+ },
234
+ // 返回表格的列
235
+ getTableColumn() {
236
+ if (this.$refs.singleTable) {
237
+ return this.$refs.singleTable.columns;
238
+ }
239
+ },
240
+ // 获取选中的列
241
+ getCheckboxRecords() {
242
+ if (this.$refs.singleTable) {
243
+ return this.$refs.singleTable.selection;
244
+ }
245
+ },
246
+ },
247
+ };
248
+ </script>