vue-super-crud 1.7.1 → 1.7.4

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 (273) hide show
  1. package/README.md +42 -10
  2. package/lib/index.css +1 -1
  3. package/lib/super-crud.min.js +2 -2
  4. package/package.json +21 -16
  5. package/src/config/common.js +2 -1
  6. package/src/config/crud.js +3 -3
  7. package/src/index.js +4 -0
  8. package/src/template/formatData.js +75 -87
  9. package/.browserslistrc +0 -3
  10. package/.versionrc.json +0 -36
  11. package/CHANGELOG.md +0 -232
  12. package/babel.config.js +0 -12
  13. package/build/alias.js +0 -10
  14. package/build/build.js +0 -52
  15. package/build/config.js +0 -70
  16. package/deploy.bat +0 -14
  17. package/docs/.vuepress/components/button/base.vue +0 -88
  18. package/docs/.vuepress/components/common/code-format.vue +0 -331
  19. package/docs/.vuepress/components/commonConfig/presetCodeTemplate/base.vue +0 -68
  20. package/docs/.vuepress/components/commonConfig/presetCodeTemplate/customParams.vue +0 -73
  21. package/docs/.vuepress/components/commonConfig/renderType/component.vue +0 -160
  22. package/docs/.vuepress/components/commonConfig/renderType/formatter.vue +0 -49
  23. package/docs/.vuepress/components/commonConfig/renderType/render.vue +0 -91
  24. package/docs/.vuepress/components/commonConfig/renderType/slot.vue +0 -63
  25. package/docs/.vuepress/components/crud/baseUse/baseUse.vue +0 -98
  26. package/docs/.vuepress/components/crud/baseUse/columnAction.vue +0 -72
  27. package/docs/.vuepress/components/crud/baseUse/columnWidth.vue +0 -107
  28. package/docs/.vuepress/components/crud/baseUse/handleRow.vue +0 -65
  29. package/docs/.vuepress/components/crud/baseUse/height.vue +0 -82
  30. package/docs/.vuepress/components/crud/baseUse/index.vue +0 -54
  31. package/docs/.vuepress/components/crud/baseUse/loading.vue +0 -70
  32. package/docs/.vuepress/components/crud/baseUse/pagination.vue +0 -108
  33. package/docs/.vuepress/components/crud/baseUse/selection.vue +0 -114
  34. package/docs/.vuepress/components/crud/baseUse/summaryMethod.vue +0 -118
  35. package/docs/.vuepress/components/crud/baseUse/title.vue +0 -54
  36. package/docs/.vuepress/components/crud/baseUse/toolbar.vue +0 -69
  37. package/docs/.vuepress/components/crud/buttons/common.vue +0 -115
  38. package/docs/.vuepress/components/crud/buttons/fast.vue +0 -82
  39. package/docs/.vuepress/components/crud/contextMenu/base.vue +0 -72
  40. package/docs/.vuepress/components/crud/copy.vue +0 -52
  41. package/docs/.vuepress/components/crud/crudEvents/api.vue +0 -157
  42. package/docs/.vuepress/components/crud/crudEvents/deleteTip.vue +0 -93
  43. package/docs/.vuepress/components/crud/crudEvents/events.vue +0 -188
  44. package/docs/.vuepress/components/crud/dataSort/base.vue +0 -142
  45. package/docs/.vuepress/components/crud/genDynamicColumns/base.vue +0 -53
  46. package/docs/.vuepress/components/crud/genDynamicColumns/dynamicAndFixed.vue +0 -111
  47. package/docs/.vuepress/components/crud/genDynamicColumns/treeDynamic.vue +0 -68
  48. package/docs/.vuepress/components/crud/handleBar/handleRow.vue +0 -65
  49. package/docs/.vuepress/components/crud/handleBar/toolbar.vue +0 -69
  50. package/docs/.vuepress/components/crud/renderType/1.vue +0 -57
  51. package/docs/.vuepress/components/crud/renderType/2.vue +0 -63
  52. package/docs/.vuepress/components/crud/renderType/3.vue +0 -105
  53. package/docs/.vuepress/components/crud/renderType/5.vue +0 -91
  54. package/docs/.vuepress/components/crud/search/1.vue +0 -90
  55. package/docs/.vuepress/components/crud/search/2.vue +0 -78
  56. package/docs/.vuepress/components/crud/search/3.vue +0 -107
  57. package/docs/.vuepress/components/crud/search/base.vue +0 -123
  58. package/docs/.vuepress/components/crud/search/localSearch.vue +0 -124
  59. package/docs/.vuepress/components/crud/search/special.vue +0 -148
  60. package/docs/.vuepress/components/crud/selection/events.vue +0 -47
  61. package/docs/.vuepress/components/crud/selection/pagination.vue +0 -94
  62. package/docs/.vuepress/components/crud/selection/singleSelection.vue +0 -64
  63. package/docs/.vuepress/components/crud/span/base.vue +0 -69
  64. package/docs/.vuepress/components/crud/span/special.vue +0 -75
  65. package/docs/.vuepress/components/crud/summary/base.vue +0 -99
  66. package/docs/.vuepress/components/crud/tableEdit/addDeleteBtn.vue +0 -174
  67. package/docs/.vuepress/components/crud/tableEdit/cellEdit.vue +0 -194
  68. package/docs/.vuepress/components/crud/tableEdit/controlEdit.vue +0 -219
  69. package/docs/.vuepress/components/crud/tableEdit/dialog.vue +0 -172
  70. package/docs/.vuepress/components/crud/tableEdit/free.vue +0 -88
  71. package/docs/.vuepress/components/crud/tableEdit/freeColumn.vue +0 -82
  72. package/docs/.vuepress/components/crud/tableEdit/methods.vue +0 -154
  73. package/docs/.vuepress/components/crud/tableEdit/rowAction.vue +0 -107
  74. package/docs/.vuepress/components/crud/tableEdit/rowBatch.vue +0 -116
  75. package/docs/.vuepress/components/crud/tableEdit/rowClick.vue +0 -98
  76. package/docs/.vuepress/components/crud/validate/base.vue +0 -122
  77. package/docs/.vuepress/components/crud/validate/custom.vue +0 -82
  78. package/docs/.vuepress/components/crud/validate/regulars.vue +0 -88
  79. package/docs/.vuepress/components/crud/validate/relation.vue +0 -91
  80. package/docs/.vuepress/components/crud/validate/tree.vue +0 -82
  81. package/docs/.vuepress/components/dialog/baseUse/base.vue +0 -92
  82. package/docs/.vuepress/components/dialog/baseUse/beforeConfirm.vue +0 -78
  83. package/docs/.vuepress/components/dialog/baseUse/control.vue +0 -79
  84. package/docs/.vuepress/components/dialog/baseUse/drawer.vue +0 -59
  85. package/docs/.vuepress/components/dialog/baseUse/footer.vue +0 -87
  86. package/docs/.vuepress/components/dialog/baseUse/insertSlot.vue +0 -79
  87. package/docs/.vuepress/components/dict/DictLinkage.vue +0 -91
  88. package/docs/.vuepress/components/dict/baseUse.vue +0 -72
  89. package/docs/.vuepress/components/dict/component.vue +0 -82
  90. package/docs/.vuepress/components/dict/localDict.vue +0 -68
  91. package/docs/.vuepress/components/form/baseUse/base.vue +0 -48
  92. package/docs/.vuepress/components/form/baseUse/dataFormat.vue +0 -92
  93. package/docs/.vuepress/components/form/baseUse/deep.vue +0 -57
  94. package/docs/.vuepress/components/form/baseUse/gridLayout.vue +0 -47
  95. package/docs/.vuepress/components/form/baseUse/group.vue +0 -66
  96. package/docs/.vuepress/components/form/baseUse/hidden.vue +0 -40
  97. package/docs/.vuepress/components/form/baseUse/inlineLayout.vue +0 -48
  98. package/docs/.vuepress/components/form/baseUse/label.vue +0 -51
  99. package/docs/.vuepress/components/form/baseUse/tooltip.vue +0 -40
  100. package/docs/.vuepress/components/form/baseUse/validate.vue +0 -52
  101. package/docs/.vuepress/components/form/detail/base.vue +0 -78
  102. package/docs/.vuepress/components/form/detail/border.vue +0 -90
  103. package/docs/.vuepress/components/form/detail/singleDetail.vue +0 -72
  104. package/docs/.vuepress/components/formatData/baseUse.vue +0 -131
  105. package/docs/.vuepress/components/mock/index.js +0 -347
  106. package/docs/.vuepress/components/mockData/custom.vue +0 -69
  107. package/docs/.vuepress/components/mockData/example.vue +0 -290
  108. package/docs/.vuepress/components/positionSlot/base.vue +0 -24
  109. package/docs/.vuepress/components/positionSlot/form.vue +0 -71
  110. package/docs/.vuepress/components/positionSlot/table.vue +0 -85
  111. package/docs/.vuepress/components/tabs/base.vue +0 -57
  112. package/docs/.vuepress/components/temp.js +0 -195
  113. package/docs/.vuepress/config.js +0 -146
  114. package/docs/.vuepress/enhanceApp.js +0 -142
  115. package/docs/.vuepress/public/favicon.ico +0 -0
  116. package/docs/.vuepress/public/super.png +0 -0
  117. package/docs/.vuepress/styles/index.styl +0 -25
  118. package/docs/.vuepress/styles/palette.styl +0 -6
  119. package/docs/README.md +0 -14
  120. package/docs/guide/button/base.md +0 -31
  121. package/docs/guide/commonConfig/jsx.md +0 -166
  122. package/docs/guide/commonConfig/presetCodeTemplate.md +0 -68
  123. package/docs/guide/commonConfig/renderType.md +0 -181
  124. package/docs/guide/crud/baseUse.md +0 -120
  125. package/docs/guide/crud/buttons.md +0 -18
  126. package/docs/guide/crud/config.md +0 -217
  127. package/docs/guide/crud/contextMenu.md +0 -18
  128. package/docs/guide/crud/dataSort.md +0 -66
  129. package/docs/guide/crud/genDynamicColumns.md +0 -145
  130. package/docs/guide/crud/handleBar.md +0 -26
  131. package/docs/guide/crud/renderType.md +0 -4
  132. package/docs/guide/crud/search.md +0 -150
  133. package/docs/guide/crud/selection.md +0 -73
  134. package/docs/guide/crud/span.md +0 -98
  135. package/docs/guide/crud/summary.md +0 -167
  136. package/docs/guide/crud/tableEdit.md +0 -377
  137. package/docs/guide/crud/validate.md +0 -158
  138. package/docs/guide/dialog/baseUse.md +0 -81
  139. package/docs/guide/dict/baseUse.md +0 -174
  140. package/docs/guide/dict/component.md +0 -88
  141. package/docs/guide/dict/config.md +0 -44
  142. package/docs/guide/form/baseUse.md +0 -142
  143. package/docs/guide/form/detail.md +0 -38
  144. package/docs/guide/formatData/baseUse.md +0 -98
  145. package/docs/guide/formatData/config.md +0 -142
  146. package/docs/guide/mockData/base.md +0 -26
  147. package/docs/guide/positionSlot/base.md +0 -41
  148. package/docs/guide/question/base.md +0 -44
  149. package/docs/guide/start/base.md +0 -30
  150. package/docs/guide/tabs/base.md +0 -63
  151. package/examples/App.vue +0 -52
  152. package/examples/Layout/components/AppMain.vue +0 -40
  153. package/examples/Layout/components/Item.vue +0 -29
  154. package/examples/Layout/components/Link.vue +0 -44
  155. package/examples/Layout/components/SidebarItem.vue +0 -93
  156. package/examples/Layout/index.vue +0 -69
  157. package/examples/assets/logo.png +0 -0
  158. package/examples/favicon.ico +0 -0
  159. package/examples/index.html +0 -18
  160. package/examples/main.js +0 -54
  161. package/examples/router/index.js +0 -140
  162. package/examples/store/index.js +0 -0
  163. package/examples/styles/index.scss +0 -63
  164. package/examples/styles/sidebar.scss +0 -226
  165. package/examples/styles/transition.scss +0 -48
  166. package/examples/styles/variables.scss +0 -25
  167. package/examples/views/crud/base.vue +0 -68
  168. package/examples/views/crud/handleRow.vue +0 -84
  169. package/examples/views/crud/search.vue +0 -116
  170. package/examples/views/dashboard/index.vue +0 -244
  171. package/examples/views/dashboard/index1.vue +0 -234
  172. package/examples/views/dashboard/test.vue +0 -9
  173. package/examples/views/formTest/index.vue +0 -168
  174. package/examples/views/nested/menu1/index.vue +0 -7
  175. package/examples/views/nested/menu1/menu1-1/index.vue +0 -7
  176. package/examples/views/nested/menu1/menu1-2/index.vue +0 -7
  177. package/examples/views/nested/menu1/menu1-2/menu1-2-1/index.vue +0 -5
  178. package/examples/views/nested/menu1/menu1-2/menu1-2-2/index.vue +0 -5
  179. package/examples/views/nested/menu1/menu1-3/index.vue +0 -5
  180. package/examples/views/nested/menu2/index.vue +0 -5
  181. package/gulpfile.js +0 -84
  182. package/packages/button/index.vue +0 -189
  183. package/packages/core/components/comp.vue +0 -223
  184. package/packages/core/components/position.vue +0 -135
  185. package/packages/core/components/render.vue +0 -460
  186. package/packages/core/configManager.js +0 -302
  187. package/packages/core/create.js +0 -8
  188. package/packages/core/defaultRender.js +0 -64
  189. package/packages/core/dict/global.js +0 -10
  190. package/packages/core/dict/index.js +0 -432
  191. package/packages/core/dict/mixin.js +0 -94
  192. package/packages/core/event.js +0 -60
  193. package/packages/core/index.js +0 -6
  194. package/packages/core/init.js +0 -122
  195. package/packages/core/mock/genConfig.js +0 -228
  196. package/packages/core/mock/genData.js +0 -422
  197. package/packages/core/mock/index.js +0 -4
  198. package/packages/core/rules.js +0 -111
  199. package/packages/crud/column.vue +0 -205
  200. package/packages/crud/columnAction.vue +0 -207
  201. package/packages/crud/columnCell.vue +0 -146
  202. package/packages/crud/defaultColumn.vue +0 -130
  203. package/packages/crud/drawerColumn.vue +0 -225
  204. package/packages/crud/form.vue +0 -69
  205. package/packages/crud/index.vue +0 -564
  206. package/packages/crud/menuBar.vue +0 -298
  207. package/packages/crud/mixins/cacheHandler.js +0 -36
  208. package/packages/crud/mixins/calcColumnWidth.js +0 -79
  209. package/packages/crud/mixins/calcHeight.js +0 -105
  210. package/packages/crud/mixins/columnHandler.js +0 -128
  211. package/packages/crud/mixins/contextMenu.js +0 -98
  212. package/packages/crud/mixins/dataProcessor.js +0 -202
  213. package/packages/crud/mixins/dialog.js +0 -109
  214. package/packages/crud/mixins/excelHandler.js +0 -150
  215. package/packages/crud/mixins/exposeMethods.js +0 -107
  216. package/packages/crud/mixins/generateDynamicColumns.js +0 -250
  217. package/packages/crud/mixins/props.js +0 -38
  218. package/packages/crud/mixins/searchHandler.js +0 -151
  219. package/packages/crud/mixins/select.js +0 -359
  220. package/packages/crud/mixins/spanMethod.js +0 -288
  221. package/packages/crud/mixins/summary.js +0 -177
  222. package/packages/crud/mixins/tableEdit.js +0 -547
  223. package/packages/crud/mixins/validate.js +0 -219
  224. package/packages/crud/pagination.vue +0 -110
  225. package/packages/crud/search.vue +0 -119
  226. package/packages/crud/searchHeader.vue +0 -231
  227. package/packages/crud/selectBanner.vue +0 -138
  228. package/packages/crud/utils/EditState.js +0 -319
  229. package/packages/crud/utils/excelExport.js +0 -112
  230. package/packages/crud/utils/excelImport.js +0 -112
  231. package/packages/crud/utils/index.js +0 -98
  232. package/packages/dialog/dialog.js +0 -233
  233. package/packages/dialog/dialog.vue +0 -15
  234. package/packages/dialog/index.js +0 -22
  235. package/packages/dict/cascadeFormat.vue +0 -179
  236. package/packages/dict/dateFormat.vue +0 -40
  237. package/packages/dict/form/cascade.vue +0 -61
  238. package/packages/dict/form/checkbox.vue +0 -90
  239. package/packages/dict/form/extendMethod.js +0 -22
  240. package/packages/dict/form/input-base.js +0 -31
  241. package/packages/dict/form/input.js +0 -20
  242. package/packages/dict/form/radio.vue +0 -69
  243. package/packages/dict/form/select.vue +0 -118
  244. package/packages/dict/form/switch.vue +0 -75
  245. package/packages/dict/valueFormat.vue +0 -188
  246. package/packages/directive/dialog/drag.js +0 -86
  247. package/packages/directive/dialog/dragSize.js +0 -42
  248. package/packages/directive/index.js +0 -9
  249. package/packages/directive/insertSlot.js +0 -10
  250. package/packages/form/contextMenu.js +0 -192
  251. package/packages/form/draftDrawer.vue +0 -391
  252. package/packages/form/formAction.vue +0 -97
  253. package/packages/form/formItem.vue +0 -259
  254. package/packages/form/index.vue +0 -451
  255. package/packages/form/props.js +0 -15
  256. package/packages/grid/cell.vue +0 -65
  257. package/packages/grid/index.vue +0 -130
  258. package/packages/group/index.vue +0 -96
  259. package/packages/tabs/index.vue +0 -290
  260. package/packages/tooltip/index.js +0 -9
  261. package/packages/tooltip/tooltip.vue +0 -32
  262. package/packages/tooltip/tooltipComponent.js +0 -38
  263. package/packages/verifyInput/index.vue +0 -131
  264. package/styles/button.scss +0 -3
  265. package/styles/crud.scss +0 -425
  266. package/styles/dialog.scss +0 -95
  267. package/styles/form.scss +0 -532
  268. package/styles/group.scss +0 -78
  269. package/styles/index.scss +0 -94
  270. package/styles/tabs.scss +0 -139
  271. package/styles/verifyInput.scss +0 -56
  272. package/vue-jsx-sync.js +0 -90
  273. package/vue.config.js +0 -54
@@ -1,84 +0,0 @@
1
- <template>
2
- <div>
3
- <sc-crud :options="options" :data="data"> </sc-crud>
4
- </div>
5
- </template>
6
-
7
- <script>
8
- export default {
9
- /**
10
- *
11
- */
12
- data() {
13
- return {
14
- data: [
15
- {
16
- id: "1",
17
- date: "2019-09-25",
18
- name: "张三",
19
- status: "2",
20
- address: "广东省广州市天河区",
21
- },
22
- {
23
- id: "2",
24
- date: "2019-09-26",
25
- name: "张三1",
26
- status: "1",
27
- address: "广东省广州市天广东省广州市天河区2广东省广州市天河区2河区2",
28
- },
29
- {
30
- id: "3",
31
- date: "2019-09-27",
32
- name: "张三2",
33
- status: "3",
34
- address: "广东省广州市天河区3",
35
- },
36
- ],
37
- options: {
38
- handleRow: {
39
- add: true,
40
- batchDelete: {
41
- label: "删除-自定义",
42
- },
43
- handles: [
44
- {
45
- label: "自定义",
46
- icon: "el-icon-edit",
47
- onClick: (row) => {
48
- console.log(row);
49
- },
50
- },
51
- ],
52
- },
53
- toolbar: {
54
- reset: false,
55
- handles: [
56
- {
57
- label: "自定义",
58
- icon: "el-icon-edit",
59
- onClick: () => {
60
- console.log("自定义");
61
- },
62
- },
63
- ],
64
- },
65
- renderColumns: [
66
- { prop: "name", label: "姓名" },
67
- {
68
- prop: "date",
69
- label: "日期",
70
- },
71
- {
72
- prop: "address",
73
- label: "地址",
74
- },
75
- { prop: "date2", label: "日期" },
76
- ],
77
- },
78
- };
79
- },
80
- methods: {},
81
- };
82
- </script>
83
-
84
- <style lang="scss" scoped></style>
@@ -1,116 +0,0 @@
1
- <template>
2
- <div>
3
- <div>{{ queryForm }}</div>
4
- <sc-crud
5
- :search.sync="queryForm"
6
- :options="options"
7
- :data="data"
8
- @search="handleSearch"
9
- @reset="handleReset"
10
- >
11
- <template slot="date2-search-label">
12
- <div>slot-label</div>
13
- </template>
14
- </sc-crud>
15
- </div>
16
- </template>
17
-
18
- <script>
19
- export default {
20
- /**
21
- * 0.search.sync 搜索的表单对象
22
- * 1.searchForm 控制初始化搜索框的显示
23
- * 2.searchHeader 控制表格头搜索框的显示
24
- * 3.searchForm 自定义搜索框的配置 其余配置同Form表单
25
- * 4.search 搜索前方法 reset重置前方法, 调用done继续执行,传递参数会覆盖原来的queryForm
26
- * 5.queryForm 设置默认搜索条件
27
- * 6. search 配置
28
- * a. labelRender label jsx渲染
29
- * b. #[prop]-search-label label插槽
30
- * c. #[prop]-search 内容插槽
31
- * d. render 内容jsx渲染
32
- * e. label label文字
33
- * f. prop search独有字段
34
- */
35
- data() {
36
- return {
37
- queryForm: {
38
- name: "defaultName",
39
- },
40
- data: [
41
- {
42
- id: "1",
43
- date: "2019-09-25",
44
- name: "张三",
45
- status: "2",
46
- address: "广东省广州市天河区",
47
- },
48
- {
49
- id: "2",
50
- date: "2019-09-26",
51
- name: "张三1",
52
- status: "1",
53
- address: "广东省广州市天广东省广州市天河区2广东省广州市天河区2河区2",
54
- },
55
- {
56
- id: "3",
57
- date: "2019-09-27",
58
- name: "张三2",
59
- status: "3",
60
- address: "广东省广州市天河区3",
61
- },
62
- ],
63
- options: {
64
- searchForm: {
65
- initShow: true, // 初始化是否展开搜索框
66
- },
67
- searchHeader: true, // 是否显示表格头搜索框
68
- searchForm: {
69
- action: {
70
- search: {
71
- //修改按钮配置
72
- label: "查询1",
73
- },
74
- },
75
- },
76
- renderColumns: [
77
- { prop: "name", label: "姓名", search: true },
78
- {
79
- prop: "date",
80
- label: "日期",
81
- search: {
82
- prop: "date",
83
- label: "搜索日期",
84
- name: "el-date-picker",
85
- format: "yyyy-MM-dd",
86
- valueFormat: "yyyy-MM-dd",
87
- },
88
- },
89
- {
90
- prop: "address",
91
- label: "地址",
92
- search: {
93
- labelRender: () => <div>地址Render</div>,
94
- },
95
- },
96
- { prop: "date2", label: "日期", search: true },
97
- ],
98
- },
99
- };
100
- },
101
- methods: {
102
- handleSearch(done, param) {
103
- setTimeout(() => {
104
- done({ ...param, handles: "custom" });
105
- }, 1000);
106
- },
107
- handleReset(done) {
108
- setTimeout(() => {
109
- done();
110
- }, 1000);
111
- },
112
- },
113
- };
114
- </script>
115
-
116
- <style lang="scss" scoped></style>
@@ -1,244 +0,0 @@
1
- <template>
2
- <div>
3
- <el-button @click="visible = !visible">visible</el-button>
4
- <sc-crud
5
- v-if="visible"
6
- init
7
- :search.sync="searchForm"
8
- :options="options"
9
- :data="data"
10
- :total="total"
11
- @getList="getList"
12
- >
13
- </sc-crud>
14
- </div>
15
- </template>
16
-
17
- <script>
18
- export default {
19
- data() {
20
- return {
21
- visible: false,
22
- searchForm: {
23
- pageSize: 1000,
24
- },
25
- options: {
26
- // action: {
27
- // width: "200",
28
- // },
29
- editConfig: {
30
- mode: "row",
31
- // trigger: "click",
32
- // edit: true,
33
- },
34
- height: "auto", // 设置为`auto`,会自适应窗口高度,配合calcHeight参数去调节范围
35
- renderColumns: [
36
- { prop: "name", label: "输入框", required: true },
37
- {
38
- prop: "select",
39
- label: "选择器",
40
- // comp: {
41
- // name: "el-select",
42
- // options: [
43
- // { value: "1", label: "选项1" },
44
- // { value: "2", label: "选项2" },
45
- // ],
46
- // },
47
- form: {
48
- comp: {
49
- name: "el-select",
50
- options: [
51
- { value: "1", label: "选项1" },
52
- { value: "2", label: "选项2" },
53
- ],
54
- },
55
- },
56
- },
57
- {
58
- prop: "cascader",
59
- label: "级联选择器",
60
- // comp: {
61
- // name: "el-cascader",
62
- // options: [
63
- // {
64
- // value: "1",
65
- // label: "选项1",
66
- // children: [
67
- // { value: "1-1", label: "选项1-1" },
68
- // { value: "1-2", label: "选项1-2" },
69
- // ],
70
- // },
71
- // {
72
- // value: "2",
73
- // label: "选项2",
74
- // children: [
75
- // { value: "2-1", label: "选项2-1" },
76
- // { value: "2-2", label: "选项2-2" },
77
- // ],
78
- // },
79
- // ],
80
- // },
81
- form: {
82
- comp: {
83
- name: "el-cascader",
84
- options: [
85
- {
86
- value: "1",
87
- label: "选项1",
88
- children: [
89
- { value: "1-1", label: "选项1-1" },
90
- { value: "1-2", label: "选项1-2" },
91
- ],
92
- },
93
- {
94
- value: "2",
95
- label: "选项2",
96
- children: [
97
- { value: "2-1", label: "选项2-1" },
98
- { value: "2-2", label: "选项2-2" },
99
- ],
100
- },
101
- ],
102
- },
103
- },
104
- },
105
- {
106
- prop: "date",
107
- label: "日期选择器",
108
- form: {
109
- comp: {
110
- name: "el-date-picker",
111
- "value-format": "yyyy-MM-dd",
112
- },
113
- },
114
- },
115
- {
116
- prop: "time",
117
- label: "时间选择器",
118
- form: {
119
- comp: {
120
- name: "el-time-picker",
121
- "value-format": "HH:mm:ss",
122
- },
123
- },
124
- },
125
- {
126
- prop: "color",
127
- label: "颜色选择器",
128
- form: {
129
- comp: {
130
- name: "el-color-picker",
131
- },
132
- },
133
- },
134
- {
135
- prop: "rate",
136
- label: "评分",
137
- form: {
138
- comp: {
139
- name: "el-rate",
140
- },
141
- },
142
- },
143
- ],
144
- },
145
- allData: [],
146
- data: [],
147
- total: 0,
148
- };
149
- },
150
- mounted() {
151
- this.allData = this.generateData(10000);
152
- },
153
- methods: {
154
- getList() {
155
- setTimeout(() => {
156
- const { pageNum, pageSize } = this.searchForm;
157
- const start = (pageNum - 1) * pageSize;
158
- const end = pageNum * pageSize;
159
-
160
- // 模拟分页数据
161
- this.data = this.allData.slice(start, end);
162
- this.total = this.allData.length;
163
- }, 0);
164
- },
165
- generateData(count) {
166
- const baseData = [
167
- {
168
- id: 1,
169
- name: "张三",
170
- gender: "男",
171
- age: 20,
172
- city: "北京",
173
- date: "2021-01-01",
174
- time: "12:00:00",
175
- datetime: "2021-01-01 12:00:00",
176
- color: "#409EFF",
177
- switch: true,
178
- rate: 3,
179
- slider: 50,
180
- radio: "1",
181
- checkbox: ["1"],
182
- select: "1",
183
- cascader: ["1", "1-1"],
184
- textarea: "这是一段文本",
185
- number: 100,
186
- },
187
- ];
188
-
189
- const cities = [
190
- "北京",
191
- "上海",
192
- "广州",
193
- "深圳",
194
- "杭州",
195
- "成都",
196
- "武汉",
197
- "西安",
198
- ];
199
- const names = ["张", "李", "王", "赵", "钱", "孙", "周", "吴"];
200
- const colors = ["#409EFF", "#67C23A", "#E6A23C", "#F56C6C", "#909399"];
201
-
202
- return Array.from({ length: count }, (_, index) => ({
203
- id: index + 1,
204
- name: names[Math.floor(Math.random() * names.length)] + "某某",
205
- gender: Math.random() > 0.5 ? "男" : "女",
206
- age: Math.floor(Math.random() * 40) + 18, // 18-57岁
207
- city: cities[Math.floor(Math.random() * cities.length)],
208
- date: this.randomDate("2020-01-01", "2024-12-31"),
209
- time: this.randomTime(),
210
- datetime:
211
- this.randomDate("2020-01-01", "2024-12-31") + " " + this.randomTime(),
212
- color: colors[Math.floor(Math.random() * colors.length)],
213
- switch: Math.random() > 0.5,
214
- rate: Math.floor(Math.random() * 5) + 1,
215
- slider: Math.floor(Math.random() * 100),
216
- radio: Math.random() > 0.5 ? "1" : "2",
217
- checkbox: [Math.random() > 0.5 ? "1" : "2"],
218
- select: Math.random() > 0.5 ? "1" : "2",
219
- cascader: Math.random() > 0.5 ? ["1", "1-1"] : ["2", "2-1"],
220
- textarea: "这是第" + (index + 1) + "条随机生成的文本",
221
- number: Math.floor(Math.random() * 1000),
222
- }));
223
- },
224
- randomDate(start, end) {
225
- const startDate = new Date(start);
226
- const endDate = new Date(end);
227
- const randomTime =
228
- startDate.getTime() +
229
- Math.random() * (endDate.getTime() - startDate.getTime());
230
- const date = new Date(randomTime);
231
- return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(
232
- 2,
233
- "0"
234
- )}-${String(date.getDate()).padStart(2, "0")}`;
235
- },
236
- randomTime() {
237
- const hours = String(Math.floor(Math.random() * 24)).padStart(2, "0");
238
- const minutes = String(Math.floor(Math.random() * 60)).padStart(2, "0");
239
- const seconds = String(Math.floor(Math.random() * 60)).padStart(2, "0");
240
- return `${hours}:${minutes}:${seconds}`;
241
- },
242
- },
243
- };
244
- </script>
@@ -1,234 +0,0 @@
1
- <template>
2
- <div>
3
- <el-button @click="visible = !visible">visible</el-button>
4
- <el-card>
5
- <el-table
6
- v-if="visible"
7
- height="800"
8
- :data="tableData"
9
- style="width: 100%;"
10
- border
11
- stripe
12
- v-loading="loading"
13
- >
14
- <el-table-column
15
- v-for="(column, index) in renderColumns"
16
- :key="index"
17
- :prop="column.prop"
18
- :label="column.label"
19
- :width="column.width || 'auto'"
20
- >
21
- <template #default="scope">
22
- <div>{{ scope.row[column.prop] }}</div>
23
- </template>
24
- </el-table-column>
25
- </el-table>
26
-
27
- <div class="pagination-container">
28
- <el-pagination
29
- @size-change="handleSizeChange"
30
- @current-change="handleCurrentChange"
31
- :current-page="currentPage"
32
- :page-sizes="[10, 20, 50, 100, 200]"
33
- :page-size="pageSize"
34
- layout="total, sizes, prev, pager, next, jumper"
35
- :total="total"
36
- />
37
- </div>
38
- </el-card>
39
- </div>
40
- </template>
41
-
42
- <script>
43
- export default {
44
- data() {
45
- return {
46
- visible: false,
47
- tableData: [],
48
- loading: false,
49
- currentPage: 1,
50
- pageSize: 1000,
51
- total: 0,
52
- allData: [],
53
- renderColumns: [
54
- { prop: "name", label: "输入框", required: true },
55
- {
56
- prop: "select",
57
- label: "选择器",
58
- // comp: {
59
- // name: "el-select",
60
- // options: [
61
- // { value: "1", label: "选项1" },
62
- // { value: "2", label: "选项2" },
63
- // ],
64
- // },
65
- },
66
- {
67
- prop: "cascader",
68
- label: "级联选择器",
69
- // comp: {
70
- // name: "el-cascader",
71
- // options: [
72
- // {
73
- // value: "1",
74
- // label: "选项1",
75
- // children: [
76
- // { value: "1-1", label: "选项1-1" },
77
- // { value: "1-2", label: "选项1-2" },
78
- // ],
79
- // },
80
- // {
81
- // value: "2",
82
- // label: "选项2",
83
- // children: [
84
- // { value: "2-1", label: "选项2-1" },
85
- // { value: "2-2", label: "选项2-2" },
86
- // ],
87
- // },
88
- // ],
89
- // },
90
- },
91
- {
92
- prop: "date",
93
- label: "日期选择器",
94
- // comp: {
95
- // name: "el-date-picker",
96
- // "value-format": "yyyy-MM-dd",
97
- // },
98
- },
99
- {
100
- prop: "time",
101
- label: "时间选择器",
102
- // comp: {
103
- // name: "el-time-picker",
104
- // "value-format": "HH:mm:ss",
105
- // },
106
- },
107
- {
108
- prop: "color",
109
- label: "颜色选择器",
110
- // comp: {
111
- // name: "el-color-picker",
112
- // },
113
- },
114
- {
115
- prop: "rate",
116
- label: "评分",
117
- // comp: {
118
- // name: "el-rate",
119
- // },
120
- },
121
- ],
122
- };
123
- },
124
- mounted() {
125
- this.allData = this.generateData(10000);
126
- this.getList();
127
- },
128
- methods: {
129
- getList() {
130
- this.loading = true;
131
- setTimeout(() => {
132
- const start = (this.currentPage - 1) * this.pageSize;
133
- const end = this.currentPage * this.pageSize;
134
- this.tableData = this.allData.slice(start, end);
135
- this.total = this.allData.length;
136
- this.loading = false;
137
- }, 0);
138
- },
139
- handleSizeChange(val) {
140
- this.pageSize = val;
141
- this.getList();
142
- },
143
- handleCurrentChange(val) {
144
- this.currentPage = val;
145
- this.getList();
146
- },
147
- generateData(count) {
148
- const baseData = [
149
- {
150
- id: 1,
151
- name: "张三",
152
- gender: "男",
153
- age: 20,
154
- city: "北京",
155
- date: "2021-01-01",
156
- time: "12:00:00",
157
- datetime: "2021-01-01 12:00:00",
158
- color: "#409EFF",
159
- switch: true,
160
- rate: 3,
161
- slider: 50,
162
- radio: "1",
163
- checkbox: ["1"],
164
- select: "1",
165
- cascader: ["1", "1-1"],
166
- textarea: "这是一段文本",
167
- number: 100,
168
- },
169
- ];
170
-
171
- const cities = [
172
- "北京",
173
- "上海",
174
- "广州",
175
- "深圳",
176
- "杭州",
177
- "成都",
178
- "武汉",
179
- "西安",
180
- ];
181
- const names = ["张", "李", "王", "赵", "钱", "孙", "周", "吴"];
182
- const colors = ["#409EFF", "#67C23A", "#E6A23C", "#F56C6C", "#909399"];
183
-
184
- return Array.from({ length: count }, (_, index) => ({
185
- id: index + 1,
186
- name: names[Math.floor(Math.random() * names.length)] + "某某",
187
- gender: Math.random() > 0.5 ? "男" : "女",
188
- age: Math.floor(Math.random() * 40) + 18,
189
- city: cities[Math.floor(Math.random() * cities.length)],
190
- date: this.randomDate("2020-01-01", "2024-12-31"),
191
- time: this.randomTime(),
192
- datetime:
193
- this.randomDate("2020-01-01", "2024-12-31") + " " + this.randomTime(),
194
- color: colors[Math.floor(Math.random() * colors.length)],
195
- switch: Math.random() > 0.5,
196
- rate: Math.floor(Math.random() * 5) + 1,
197
- slider: Math.floor(Math.random() * 100),
198
- radio: Math.random() > 0.5 ? "1" : "2",
199
- checkbox: [Math.random() > 0.5 ? "1" : "2"],
200
- select: Math.random() > 0.5 ? "1" : "2",
201
- cascader: Math.random() > 0.5 ? ["1", "1-1"] : ["2", "2-1"],
202
- textarea: "这是第" + (index + 1) + "条随机生成的文本",
203
- number: Math.floor(Math.random() * 1000),
204
- }));
205
- },
206
- randomDate(start, end) {
207
- const startDate = new Date(start);
208
- const endDate = new Date(end);
209
- const randomTime =
210
- startDate.getTime() +
211
- Math.random() * (endDate.getTime() - startDate.getTime());
212
- const date = new Date(randomTime);
213
- return `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(
214
- 2,
215
- "0"
216
- )}-${String(date.getDate()).padStart(2, "0")}`;
217
- },
218
- randomTime() {
219
- const hours = String(Math.floor(Math.random() * 24)).padStart(2, "0");
220
- const minutes = String(Math.floor(Math.random() * 60)).padStart(2, "0");
221
- const seconds = String(Math.floor(Math.random() * 60)).padStart(2, "0");
222
- return `${hours}:${minutes}:${seconds}`;
223
- },
224
- },
225
- };
226
- </script>
227
-
228
- <style scoped>
229
- .pagination-container {
230
- margin-top: 20px;
231
- display: flex;
232
- justify-content: flex-end;
233
- }
234
- </style>
@@ -1,9 +0,0 @@
1
- <template>
2
- <div>test</div>
3
- </template>
4
-
5
- <script>
6
- export default {};
7
- </script>
8
-
9
- <style lang="scss" scoped></style>