vue-super-crud 1.7.1 → 1.7.2

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 (269) 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/.browserslistrc +0 -3
  6. package/.versionrc.json +0 -36
  7. package/CHANGELOG.md +0 -232
  8. package/babel.config.js +0 -12
  9. package/build/alias.js +0 -10
  10. package/build/build.js +0 -52
  11. package/build/config.js +0 -70
  12. package/deploy.bat +0 -14
  13. package/docs/.vuepress/components/button/base.vue +0 -88
  14. package/docs/.vuepress/components/common/code-format.vue +0 -331
  15. package/docs/.vuepress/components/commonConfig/presetCodeTemplate/base.vue +0 -68
  16. package/docs/.vuepress/components/commonConfig/presetCodeTemplate/customParams.vue +0 -73
  17. package/docs/.vuepress/components/commonConfig/renderType/component.vue +0 -160
  18. package/docs/.vuepress/components/commonConfig/renderType/formatter.vue +0 -49
  19. package/docs/.vuepress/components/commonConfig/renderType/render.vue +0 -91
  20. package/docs/.vuepress/components/commonConfig/renderType/slot.vue +0 -63
  21. package/docs/.vuepress/components/crud/baseUse/baseUse.vue +0 -98
  22. package/docs/.vuepress/components/crud/baseUse/columnAction.vue +0 -72
  23. package/docs/.vuepress/components/crud/baseUse/columnWidth.vue +0 -107
  24. package/docs/.vuepress/components/crud/baseUse/handleRow.vue +0 -65
  25. package/docs/.vuepress/components/crud/baseUse/height.vue +0 -82
  26. package/docs/.vuepress/components/crud/baseUse/index.vue +0 -54
  27. package/docs/.vuepress/components/crud/baseUse/loading.vue +0 -70
  28. package/docs/.vuepress/components/crud/baseUse/pagination.vue +0 -108
  29. package/docs/.vuepress/components/crud/baseUse/selection.vue +0 -114
  30. package/docs/.vuepress/components/crud/baseUse/summaryMethod.vue +0 -118
  31. package/docs/.vuepress/components/crud/baseUse/title.vue +0 -54
  32. package/docs/.vuepress/components/crud/baseUse/toolbar.vue +0 -69
  33. package/docs/.vuepress/components/crud/buttons/common.vue +0 -115
  34. package/docs/.vuepress/components/crud/buttons/fast.vue +0 -82
  35. package/docs/.vuepress/components/crud/contextMenu/base.vue +0 -72
  36. package/docs/.vuepress/components/crud/copy.vue +0 -52
  37. package/docs/.vuepress/components/crud/crudEvents/api.vue +0 -157
  38. package/docs/.vuepress/components/crud/crudEvents/deleteTip.vue +0 -93
  39. package/docs/.vuepress/components/crud/crudEvents/events.vue +0 -188
  40. package/docs/.vuepress/components/crud/dataSort/base.vue +0 -142
  41. package/docs/.vuepress/components/crud/genDynamicColumns/base.vue +0 -53
  42. package/docs/.vuepress/components/crud/genDynamicColumns/dynamicAndFixed.vue +0 -111
  43. package/docs/.vuepress/components/crud/genDynamicColumns/treeDynamic.vue +0 -68
  44. package/docs/.vuepress/components/crud/handleBar/handleRow.vue +0 -65
  45. package/docs/.vuepress/components/crud/handleBar/toolbar.vue +0 -69
  46. package/docs/.vuepress/components/crud/renderType/1.vue +0 -57
  47. package/docs/.vuepress/components/crud/renderType/2.vue +0 -63
  48. package/docs/.vuepress/components/crud/renderType/3.vue +0 -105
  49. package/docs/.vuepress/components/crud/renderType/5.vue +0 -91
  50. package/docs/.vuepress/components/crud/search/1.vue +0 -90
  51. package/docs/.vuepress/components/crud/search/2.vue +0 -78
  52. package/docs/.vuepress/components/crud/search/3.vue +0 -107
  53. package/docs/.vuepress/components/crud/search/base.vue +0 -123
  54. package/docs/.vuepress/components/crud/search/localSearch.vue +0 -124
  55. package/docs/.vuepress/components/crud/search/special.vue +0 -148
  56. package/docs/.vuepress/components/crud/selection/events.vue +0 -47
  57. package/docs/.vuepress/components/crud/selection/pagination.vue +0 -94
  58. package/docs/.vuepress/components/crud/selection/singleSelection.vue +0 -64
  59. package/docs/.vuepress/components/crud/span/base.vue +0 -69
  60. package/docs/.vuepress/components/crud/span/special.vue +0 -75
  61. package/docs/.vuepress/components/crud/summary/base.vue +0 -99
  62. package/docs/.vuepress/components/crud/tableEdit/addDeleteBtn.vue +0 -174
  63. package/docs/.vuepress/components/crud/tableEdit/cellEdit.vue +0 -194
  64. package/docs/.vuepress/components/crud/tableEdit/controlEdit.vue +0 -219
  65. package/docs/.vuepress/components/crud/tableEdit/dialog.vue +0 -172
  66. package/docs/.vuepress/components/crud/tableEdit/free.vue +0 -88
  67. package/docs/.vuepress/components/crud/tableEdit/freeColumn.vue +0 -82
  68. package/docs/.vuepress/components/crud/tableEdit/methods.vue +0 -154
  69. package/docs/.vuepress/components/crud/tableEdit/rowAction.vue +0 -107
  70. package/docs/.vuepress/components/crud/tableEdit/rowBatch.vue +0 -116
  71. package/docs/.vuepress/components/crud/tableEdit/rowClick.vue +0 -98
  72. package/docs/.vuepress/components/crud/validate/base.vue +0 -122
  73. package/docs/.vuepress/components/crud/validate/custom.vue +0 -82
  74. package/docs/.vuepress/components/crud/validate/regulars.vue +0 -88
  75. package/docs/.vuepress/components/crud/validate/relation.vue +0 -91
  76. package/docs/.vuepress/components/crud/validate/tree.vue +0 -82
  77. package/docs/.vuepress/components/dialog/baseUse/base.vue +0 -92
  78. package/docs/.vuepress/components/dialog/baseUse/beforeConfirm.vue +0 -78
  79. package/docs/.vuepress/components/dialog/baseUse/control.vue +0 -79
  80. package/docs/.vuepress/components/dialog/baseUse/drawer.vue +0 -59
  81. package/docs/.vuepress/components/dialog/baseUse/footer.vue +0 -87
  82. package/docs/.vuepress/components/dialog/baseUse/insertSlot.vue +0 -79
  83. package/docs/.vuepress/components/dict/DictLinkage.vue +0 -91
  84. package/docs/.vuepress/components/dict/baseUse.vue +0 -72
  85. package/docs/.vuepress/components/dict/component.vue +0 -82
  86. package/docs/.vuepress/components/dict/localDict.vue +0 -68
  87. package/docs/.vuepress/components/form/baseUse/base.vue +0 -48
  88. package/docs/.vuepress/components/form/baseUse/dataFormat.vue +0 -92
  89. package/docs/.vuepress/components/form/baseUse/deep.vue +0 -57
  90. package/docs/.vuepress/components/form/baseUse/gridLayout.vue +0 -47
  91. package/docs/.vuepress/components/form/baseUse/group.vue +0 -66
  92. package/docs/.vuepress/components/form/baseUse/hidden.vue +0 -40
  93. package/docs/.vuepress/components/form/baseUse/inlineLayout.vue +0 -48
  94. package/docs/.vuepress/components/form/baseUse/label.vue +0 -51
  95. package/docs/.vuepress/components/form/baseUse/tooltip.vue +0 -40
  96. package/docs/.vuepress/components/form/baseUse/validate.vue +0 -52
  97. package/docs/.vuepress/components/form/detail/base.vue +0 -78
  98. package/docs/.vuepress/components/form/detail/border.vue +0 -90
  99. package/docs/.vuepress/components/form/detail/singleDetail.vue +0 -72
  100. package/docs/.vuepress/components/formatData/baseUse.vue +0 -131
  101. package/docs/.vuepress/components/mock/index.js +0 -347
  102. package/docs/.vuepress/components/mockData/custom.vue +0 -69
  103. package/docs/.vuepress/components/mockData/example.vue +0 -290
  104. package/docs/.vuepress/components/positionSlot/base.vue +0 -24
  105. package/docs/.vuepress/components/positionSlot/form.vue +0 -71
  106. package/docs/.vuepress/components/positionSlot/table.vue +0 -85
  107. package/docs/.vuepress/components/tabs/base.vue +0 -57
  108. package/docs/.vuepress/components/temp.js +0 -195
  109. package/docs/.vuepress/config.js +0 -146
  110. package/docs/.vuepress/enhanceApp.js +0 -142
  111. package/docs/.vuepress/public/favicon.ico +0 -0
  112. package/docs/.vuepress/public/super.png +0 -0
  113. package/docs/.vuepress/styles/index.styl +0 -25
  114. package/docs/.vuepress/styles/palette.styl +0 -6
  115. package/docs/README.md +0 -14
  116. package/docs/guide/button/base.md +0 -31
  117. package/docs/guide/commonConfig/jsx.md +0 -166
  118. package/docs/guide/commonConfig/presetCodeTemplate.md +0 -68
  119. package/docs/guide/commonConfig/renderType.md +0 -181
  120. package/docs/guide/crud/baseUse.md +0 -120
  121. package/docs/guide/crud/buttons.md +0 -18
  122. package/docs/guide/crud/config.md +0 -217
  123. package/docs/guide/crud/contextMenu.md +0 -18
  124. package/docs/guide/crud/dataSort.md +0 -66
  125. package/docs/guide/crud/genDynamicColumns.md +0 -145
  126. package/docs/guide/crud/handleBar.md +0 -26
  127. package/docs/guide/crud/renderType.md +0 -4
  128. package/docs/guide/crud/search.md +0 -150
  129. package/docs/guide/crud/selection.md +0 -73
  130. package/docs/guide/crud/span.md +0 -98
  131. package/docs/guide/crud/summary.md +0 -167
  132. package/docs/guide/crud/tableEdit.md +0 -377
  133. package/docs/guide/crud/validate.md +0 -158
  134. package/docs/guide/dialog/baseUse.md +0 -81
  135. package/docs/guide/dict/baseUse.md +0 -174
  136. package/docs/guide/dict/component.md +0 -88
  137. package/docs/guide/dict/config.md +0 -44
  138. package/docs/guide/form/baseUse.md +0 -142
  139. package/docs/guide/form/detail.md +0 -38
  140. package/docs/guide/formatData/baseUse.md +0 -98
  141. package/docs/guide/formatData/config.md +0 -142
  142. package/docs/guide/mockData/base.md +0 -26
  143. package/docs/guide/positionSlot/base.md +0 -41
  144. package/docs/guide/question/base.md +0 -44
  145. package/docs/guide/start/base.md +0 -30
  146. package/docs/guide/tabs/base.md +0 -63
  147. package/examples/App.vue +0 -52
  148. package/examples/Layout/components/AppMain.vue +0 -40
  149. package/examples/Layout/components/Item.vue +0 -29
  150. package/examples/Layout/components/Link.vue +0 -44
  151. package/examples/Layout/components/SidebarItem.vue +0 -93
  152. package/examples/Layout/index.vue +0 -69
  153. package/examples/assets/logo.png +0 -0
  154. package/examples/favicon.ico +0 -0
  155. package/examples/index.html +0 -18
  156. package/examples/main.js +0 -54
  157. package/examples/router/index.js +0 -140
  158. package/examples/store/index.js +0 -0
  159. package/examples/styles/index.scss +0 -63
  160. package/examples/styles/sidebar.scss +0 -226
  161. package/examples/styles/transition.scss +0 -48
  162. package/examples/styles/variables.scss +0 -25
  163. package/examples/views/crud/base.vue +0 -68
  164. package/examples/views/crud/handleRow.vue +0 -84
  165. package/examples/views/crud/search.vue +0 -116
  166. package/examples/views/dashboard/index.vue +0 -244
  167. package/examples/views/dashboard/index1.vue +0 -234
  168. package/examples/views/dashboard/test.vue +0 -9
  169. package/examples/views/formTest/index.vue +0 -168
  170. package/examples/views/nested/menu1/index.vue +0 -7
  171. package/examples/views/nested/menu1/menu1-1/index.vue +0 -7
  172. package/examples/views/nested/menu1/menu1-2/index.vue +0 -7
  173. package/examples/views/nested/menu1/menu1-2/menu1-2-1/index.vue +0 -5
  174. package/examples/views/nested/menu1/menu1-2/menu1-2-2/index.vue +0 -5
  175. package/examples/views/nested/menu1/menu1-3/index.vue +0 -5
  176. package/examples/views/nested/menu2/index.vue +0 -5
  177. package/gulpfile.js +0 -84
  178. package/packages/button/index.vue +0 -189
  179. package/packages/core/components/comp.vue +0 -223
  180. package/packages/core/components/position.vue +0 -135
  181. package/packages/core/components/render.vue +0 -460
  182. package/packages/core/configManager.js +0 -302
  183. package/packages/core/create.js +0 -8
  184. package/packages/core/defaultRender.js +0 -64
  185. package/packages/core/dict/global.js +0 -10
  186. package/packages/core/dict/index.js +0 -432
  187. package/packages/core/dict/mixin.js +0 -94
  188. package/packages/core/event.js +0 -60
  189. package/packages/core/index.js +0 -6
  190. package/packages/core/init.js +0 -122
  191. package/packages/core/mock/genConfig.js +0 -228
  192. package/packages/core/mock/genData.js +0 -422
  193. package/packages/core/mock/index.js +0 -4
  194. package/packages/core/rules.js +0 -111
  195. package/packages/crud/column.vue +0 -205
  196. package/packages/crud/columnAction.vue +0 -207
  197. package/packages/crud/columnCell.vue +0 -146
  198. package/packages/crud/defaultColumn.vue +0 -130
  199. package/packages/crud/drawerColumn.vue +0 -225
  200. package/packages/crud/form.vue +0 -69
  201. package/packages/crud/index.vue +0 -564
  202. package/packages/crud/menuBar.vue +0 -298
  203. package/packages/crud/mixins/cacheHandler.js +0 -36
  204. package/packages/crud/mixins/calcColumnWidth.js +0 -79
  205. package/packages/crud/mixins/calcHeight.js +0 -105
  206. package/packages/crud/mixins/columnHandler.js +0 -128
  207. package/packages/crud/mixins/contextMenu.js +0 -98
  208. package/packages/crud/mixins/dataProcessor.js +0 -202
  209. package/packages/crud/mixins/dialog.js +0 -109
  210. package/packages/crud/mixins/excelHandler.js +0 -150
  211. package/packages/crud/mixins/exposeMethods.js +0 -107
  212. package/packages/crud/mixins/generateDynamicColumns.js +0 -250
  213. package/packages/crud/mixins/props.js +0 -38
  214. package/packages/crud/mixins/searchHandler.js +0 -151
  215. package/packages/crud/mixins/select.js +0 -359
  216. package/packages/crud/mixins/spanMethod.js +0 -288
  217. package/packages/crud/mixins/summary.js +0 -177
  218. package/packages/crud/mixins/tableEdit.js +0 -547
  219. package/packages/crud/mixins/validate.js +0 -219
  220. package/packages/crud/pagination.vue +0 -110
  221. package/packages/crud/search.vue +0 -119
  222. package/packages/crud/searchHeader.vue +0 -231
  223. package/packages/crud/selectBanner.vue +0 -138
  224. package/packages/crud/utils/EditState.js +0 -319
  225. package/packages/crud/utils/excelExport.js +0 -112
  226. package/packages/crud/utils/excelImport.js +0 -112
  227. package/packages/crud/utils/index.js +0 -98
  228. package/packages/dialog/dialog.js +0 -233
  229. package/packages/dialog/dialog.vue +0 -15
  230. package/packages/dialog/index.js +0 -22
  231. package/packages/dict/cascadeFormat.vue +0 -179
  232. package/packages/dict/dateFormat.vue +0 -40
  233. package/packages/dict/form/cascade.vue +0 -61
  234. package/packages/dict/form/checkbox.vue +0 -90
  235. package/packages/dict/form/extendMethod.js +0 -22
  236. package/packages/dict/form/input-base.js +0 -31
  237. package/packages/dict/form/input.js +0 -20
  238. package/packages/dict/form/radio.vue +0 -69
  239. package/packages/dict/form/select.vue +0 -118
  240. package/packages/dict/form/switch.vue +0 -75
  241. package/packages/dict/valueFormat.vue +0 -188
  242. package/packages/directive/dialog/drag.js +0 -86
  243. package/packages/directive/dialog/dragSize.js +0 -42
  244. package/packages/directive/index.js +0 -9
  245. package/packages/directive/insertSlot.js +0 -10
  246. package/packages/form/contextMenu.js +0 -192
  247. package/packages/form/draftDrawer.vue +0 -391
  248. package/packages/form/formAction.vue +0 -97
  249. package/packages/form/formItem.vue +0 -259
  250. package/packages/form/index.vue +0 -451
  251. package/packages/form/props.js +0 -15
  252. package/packages/grid/cell.vue +0 -65
  253. package/packages/grid/index.vue +0 -130
  254. package/packages/group/index.vue +0 -96
  255. package/packages/tabs/index.vue +0 -290
  256. package/packages/tooltip/index.js +0 -9
  257. package/packages/tooltip/tooltip.vue +0 -32
  258. package/packages/tooltip/tooltipComponent.js +0 -38
  259. package/packages/verifyInput/index.vue +0 -131
  260. package/styles/button.scss +0 -3
  261. package/styles/crud.scss +0 -425
  262. package/styles/dialog.scss +0 -95
  263. package/styles/form.scss +0 -532
  264. package/styles/group.scss +0 -78
  265. package/styles/index.scss +0 -94
  266. package/styles/tabs.scss +0 -139
  267. package/styles/verifyInput.scss +0 -56
  268. package/vue-jsx-sync.js +0 -90
  269. package/vue.config.js +0 -54
@@ -1,130 +0,0 @@
1
- <script>
2
- import { isFunction } from "lodash-es";
3
- export default {
4
- inject: ["ctx"],
5
- props: {
6
- col: Object,
7
- },
8
- watch: {
9
- col() {
10
- this.bindColumnConfig();
11
- },
12
- },
13
- created() {
14
- const span = this.col.spanProp || this.col.sameRowSpan;
15
- span && this.ctx.sameRowSpans.push(span);
16
- },
17
- computed: {
18
- crudOptions() {
19
- return this.ctx.crudOptions;
20
- },
21
- defaultFixed() {
22
- return this.fixed;
23
- },
24
- showColumn() {
25
- if (this.ctx.setOptions.hidden.includes(this.col.prop)) return false;
26
- return true;
27
- },
28
- fixed() {
29
- if (this.col.fixed) return this.col.fixed;
30
- const fixed = this.ctx.setOptions.fixed[this.col.prop];
31
- if (fixed) return fixed;
32
- },
33
- },
34
- methods: {
35
- bindColumnConfig() {
36
- const columnConfig = this.$refs.column?.columnConfig;
37
- if (columnConfig) {
38
- columnConfig.col = { ...this.col };
39
- columnConfig.options = { ...this.ctx.crudOptions };
40
- }
41
- },
42
- },
43
- render(h) {
44
- if (!this.showColumn) return null;
45
-
46
- const defaultColumn = (slots, type) => (
47
- <el-table-column
48
- ref="column"
49
- key={this.col.type}
50
- prop={this.col.type}
51
- type={type}
52
- fixed={this.defaultFixed}
53
- props={this.col}
54
- on={{
55
- "hook:mounted": this.bindColumnConfig,
56
- }}
57
- scopedSlots={slots}
58
- />
59
- );
60
- if (this.ctx.showSingleSelection) {
61
- return defaultColumn({
62
- default: (scope) => {
63
- let selectable = false;
64
- if (isFunction(this.ctx.singleSelection.selectable)) {
65
- selectable = !this.ctx.singleSelection.selectable(
66
- scope.row,
67
- scope.$index
68
- );
69
- }
70
- return (
71
- <el-radio
72
- v-model={this.ctx.singleSelect}
73
- label={scope.row[this.ctx.operateKey]}
74
- disabled={selectable}
75
- onChange={() => {
76
- this.ctx.$emit("update:selected", scope.row);
77
- }}
78
- >
79
- {" "}
80
- </el-radio>
81
- );
82
- },
83
- });
84
- }
85
- const span = this.col.spanProp || this.col.sameRowSpan;
86
- if (this.col.type === "index" && (isFunction(this.col.index) || span)) {
87
- return defaultColumn(
88
- {
89
- default: (scope) => {
90
- if (span) {
91
- const sameRowMap = this.ctx.sameRowMap[span] || {};
92
-
93
- const rowValue = scope.row[span] || "";
94
-
95
- const map = sameRowMap?.[rowValue]?.find(
96
- (g) =>
97
- scope.$index >= g.firstIndex &&
98
- scope.$index < g.firstIndex + g.span
99
- );
100
- const spanIndex = map?.spanIndex || scope.$index;
101
- if (this.col.render) {
102
- return this.col.render(spanIndex + 1);
103
- }
104
- return spanIndex + 1;
105
- }
106
- return this.col.index(scope.$index, scope);
107
- },
108
- },
109
- this.col.type
110
- );
111
- }
112
- return defaultColumn(
113
- {
114
- default:
115
- this.col.render || this.ctx.$scopedSlots[this.col.type]
116
- ? (scope) => {
117
- if (this.col.render) {
118
- return this.col.render(scope);
119
- }
120
- if (this.ctx.$scopedSlots[this.col.type]) {
121
- return this.ctx.$scopedSlots[this.col.type](scope);
122
- }
123
- }
124
- : null,
125
- },
126
- this.col.type
127
- );
128
- },
129
- };
130
- </script>
@@ -1,225 +0,0 @@
1
- <script>
2
- import create from "core/create";
3
- import draggable from "vuedraggable";
4
- import cache from "utils/cache.js";
5
- export default create({
6
- name: "crud-drawer",
7
- components: { draggable },
8
- inject: ["ctx"],
9
- data() {
10
- return {
11
- active: false,
12
- title: "",
13
- currentValue: [],
14
- };
15
- },
16
- computed: {
17
- action() {
18
- if (this.ctx.crudOptions.action || this.ctx.rowEdit) {
19
- return [
20
- {
21
- prop: "action",
22
- label: "操作",
23
- },
24
- ];
25
- }
26
- return [];
27
- },
28
- defaultColumns() {
29
- return this.ctx.defaultColumns || [];
30
- },
31
- columns() {
32
- const columns = [...this.defaultColumns, ...this.listColumns];
33
- if (this.action.length) columns.push(...this.action);
34
- return columns;
35
- },
36
- listColumns() {
37
- return this.ctx.columns.filter((item) => !item.hiddenList) || [];
38
- },
39
- fixed() {
40
- return this.ctx.setOptions.fixed;
41
- },
42
- hidden: {
43
- get() {
44
- return this.ctx.setOptions.hidden;
45
- },
46
- set(val) {
47
- this.ctx.setOptions.hidden = val;
48
- },
49
- },
50
- show: {
51
- get() {
52
- return this.columns
53
- .filter((i) => !this.hidden.includes(i.prop))
54
- .map((i) => i.prop);
55
- },
56
- set(val) {
57
- this.hidden = this.columns
58
- .filter((i) => !val.includes(i.prop))
59
- .map((i) => i.prop);
60
- },
61
- },
62
- isIndeterminate() {
63
- return this.hidden.length > 0 && this.hidden.length < this.columns.length;
64
- },
65
- checkAll: {
66
- get() {
67
- return this.show.length === this.columns.length;
68
- },
69
- set(val) {
70
- this.hidden = val ? [] : this.columns.map((i) => i.prop);
71
- },
72
- },
73
- },
74
- methods: {
75
- flatColumn(columns) {
76
- const flattenColumns = [];
77
- columns.forEach((col) => {
78
- flattenColumns.push(col);
79
- if (col.children) {
80
- const children = this.flatColumn(col.children);
81
- flattenColumns.push(...children);
82
- }
83
- });
84
- return flattenColumns;
85
- },
86
- showDrawer() {
87
- this.active = true;
88
- },
89
- reset() {
90
- this.ctx.resetLocalCache();
91
- },
92
- changeFixed(property, type) {
93
- this.$set(this.ctx.setOptions.fixed, property, type);
94
- this.ctx.saveLocalCache();
95
- },
96
- handleCheckedChange(value) {
97
- this.ctx.saveLocalCache();
98
- },
99
- saveTableOptions() {
100
- if (!this.$route) return;
101
- let cacheData = cache.local.getJSON("tableOptions");
102
- cacheData[this.$route.path] = this.ctx.setOptions;
103
- cache.local.setJSON("tableOptions", cacheData);
104
- },
105
- onEnd({ newIndex, oldIndex }) {
106
- const sort = this.ctx.setOptions.sort;
107
- const endProp = this.listColumns[newIndex].prop;
108
- const prop = this.listColumns[oldIndex].prop;
109
- let startIndex, endIndex, adjustment;
110
- if (oldIndex < newIndex) {
111
- startIndex = oldIndex + 1;
112
- endIndex = newIndex + 1;
113
- adjustment = -1;
114
- } else if (oldIndex > newIndex) {
115
- startIndex = newIndex;
116
- endIndex = oldIndex;
117
- adjustment = 1;
118
- } else {
119
- return;
120
- }
121
- const clipColumns = this.listColumns.slice(startIndex, endIndex);
122
- clipColumns.forEach((item) => {
123
- if (item.prop !== prop) {
124
- this.$set(sort, item.prop, item.order + adjustment);
125
- }
126
- });
127
- this.$set(sort, prop, newIndex);
128
- this.ctx.saveLocalCache();
129
- },
130
- renderColumnItems(columns, isDraggable = false) {
131
- return columns.map((i, index) => (
132
- <div class="col-item" key={index}>
133
- <el-checkbox class="col-item--left" label={i.prop} title={i.label}>
134
- {i.label}
135
- </el-checkbox>
136
- <div class="col-item--right">
137
- {this.renderFixedButtons(i.prop)}
138
- {isDraggable && !i.type ? (
139
- <div class={["el-icon-sort", "sort-drag", "mover"]}></div>
140
- ) : (
141
- <div style="width: 22px; background: #fff;"></div>
142
- )}
143
- </div>
144
- </div>
145
- ));
146
- },
147
- renderFixedButtons(prop) {
148
- return (
149
- <el-button-group>
150
- {["left", false, "right"].map((direction) => (
151
- <el-button
152
- class="fixed-btn"
153
- icon={direction ? `el-icon-arrow-${direction}` : "el-icon-close"}
154
- type={
155
- direction
156
- ? this.fixed[prop] === direction
157
- ? "primary"
158
- : "default"
159
- : !this.fixed[prop]
160
- ? "primary"
161
- : "default"
162
- }
163
- onClick={() => this.changeFixed(prop, direction)}
164
- />
165
- ))}
166
- </el-button-group>
167
- );
168
- },
169
- },
170
- render(h) {
171
- return (
172
- <el-drawer
173
- class={this.b()}
174
- title="列设置"
175
- visible_sync={this.active}
176
- size="300px"
177
- appendToBody
178
- >
179
- <div class="wrapper">
180
- <el-card shadow="never">
181
- <div class="header">
182
- <el-checkbox
183
- indeterminate={this.isIndeterminate}
184
- vModel={this.checkAll}
185
- onChange={this.handleCheckedChange}
186
- >
187
- {this.show.length} / {this.columns.length}
188
- </el-checkbox>
189
- <span class="title">固定 / 排序</span>
190
- </div>
191
- <el-checkbox-group
192
- class="col-list"
193
- vModel={this.show}
194
- onChange={this.handleCheckedChange}
195
- >
196
- {this.renderColumnItems(this.defaultColumns)}
197
- <draggable
198
- ghostClass="ghost"
199
- handle=".sort-drag"
200
- filter=".unMover"
201
- animation={150}
202
- vModel={this.currentValue}
203
- onEnd={this.onEnd}
204
- >
205
- {this.renderColumnItems(this.listColumns, true)}
206
- </draggable>
207
- {this.renderColumnItems(this.action)}
208
- </el-checkbox-group>
209
- </el-card>
210
- <el-button
211
- class="reset-btn"
212
- size="default"
213
- icon="el-icon-refresh"
214
- onClick={this.reset}
215
- >
216
- 重置
217
- </el-button>
218
- </div>
219
- </el-drawer>
220
- );
221
- },
222
- });
223
- </script>
224
-
225
- <style lang="scss" scoped></style>
@@ -1,69 +0,0 @@
1
- <template>
2
- <scForm
3
- ref="crudForm"
4
- v-model="ctx.form"
5
- :options="options"
6
- :scope="scope"
7
- :loading.sync="loading"
8
- ></scForm>
9
- </template>
10
-
11
- <script>
12
- import create from "core/create";
13
- import scForm from "../form/index.vue";
14
- import { isFunction, merge } from "lodash-es";
15
- import defaultRender from "core/defaultRender";
16
- import { filterColumns } from "utils";
17
- export default create({
18
- props: {
19
- ctx: {
20
- type: Object,
21
- default: () => {},
22
- },
23
- mode: String,
24
- scope: {
25
- type: Object,
26
- default: () => {},
27
- },
28
- loading: Boolean,
29
- },
30
- components: { scForm },
31
- computed: {
32
- formOptions() {
33
- const opt = merge(
34
- {},
35
- this.ctx.crudOptions.formOptions,
36
- this.ctx.crudOptions[this.mode + "Form"]
37
- );
38
- return {
39
- ...opt,
40
- renderColumns: filterColumns(this.ctx.getRenderColumns(this.mode)),
41
- };
42
- },
43
- options() {
44
- return {
45
- detail: this.mode === "view" ? true : false,
46
- labelPosition: "left",
47
- columns: 2,
48
- columnGap: "10px",
49
- slots: this.ctx.extendsScopedSlots,
50
- mode: this.mode,
51
- defaultRender: (h, scope) => {
52
- if (isFunction(this.formOptions.defaultRender)) {
53
- return this.formOptions.defaultRender(h, scope);
54
- }
55
- if (scope.mode === "view" && this.formOptions.viewType === "table") {
56
- return defaultRender.formatter(h, scope);
57
- }
58
- return defaultRender.input(h, scope);
59
- },
60
- ...this.formOptions,
61
- };
62
- },
63
- },
64
- mounted() {
65
- this.ctx.$refs.crudForm = this.$refs.crudForm;
66
- },
67
- methods: {},
68
- });
69
- </script>