olp-table 5.3.4 → 5.3.5

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 (171) hide show
  1. package/package.json +12 -92
  2. package/.env.build +0 -1
  3. package/README.md +0 -26
  4. package/babel.config.js +0 -5
  5. package/jsconfig.json +0 -22
  6. package/public/favicon.ico +0 -0
  7. package/public/index.html +0 -17
  8. package/rmMode.bat +0 -1
  9. package/src/App.vue +0 -199
  10. package/src/api/crud.js +0 -22
  11. package/src/api/dist.js +0 -6
  12. package/src/assets/iconfont/iconfont.css +0 -20
  13. package/src/assets/iconfont/iconfont.json +0 -16
  14. package/src/assets/iconfont/iconfont.ttf +0 -0
  15. package/src/assets/iconfont/iconfont.woff +0 -0
  16. package/src/assets/iconfont/iconfont.woff2 +0 -0
  17. package/src/assets/logo.png +0 -0
  18. package/src/components/auto-height/index.vue +0 -75
  19. package/src/components/codemirror-tag.vue +0 -100
  20. package/src/components/lazy-load-select.vue +0 -107
  21. package/src/components/ol-dialog-excel.vue +0 -112
  22. package/src/components/ol-dialog-import.vue +0 -304
  23. package/src/components/ol-dialog-json.vue +0 -82
  24. package/src/components/ol-dialog-table.vue +0 -81
  25. package/src/components/ol-dialog-upload-file.vue +0 -208
  26. package/src/components/ol-dict-tag.vue +0 -271
  27. package/src/components/ol-select-dom.vue +0 -71
  28. package/src/components/ol-table-filter.vue +0 -28
  29. package/src/components/ol-table-render.vue +0 -44
  30. package/src/components/ol-table-select.vue +0 -150
  31. package/src/components/pinia-init.vue +0 -18
  32. package/src/components/table/model/ModelMixins.js +0 -43
  33. package/src/components/table/model/model-index.vue +0 -121
  34. package/src/components/table/model/ot-left-right.vue +0 -18
  35. package/src/components/table/model/ot-left-tree-right-table.scss +0 -14
  36. package/src/components/table/model/ot-left-tree-right-table.vue +0 -41
  37. package/src/components/table/model/ot-top-1-bottom-2.vue +0 -39
  38. package/src/components/table/model/ot-top-2-bottom-1.vue +0 -38
  39. package/src/components/table/model/ot-top-2-bottom-2.vue +0 -38
  40. package/src/components/table/model/ot-top-bottom.vue +0 -18
  41. package/src/components/table/model/splitpanesModel.css +0 -22
  42. package/src/components/table/model/splitpanesModel.vue +0 -54
  43. package/src/components/table/ol-form/index.vue +0 -537
  44. package/src/components/table/ol-form-v3/index.vue +0 -455
  45. package/src/components/table/ol-main-form-sub-table/index.vue +0 -601
  46. package/src/components/table/ol-pager/index.vue +0 -46
  47. package/src/components/table/ol-table/components/ol-table-column-config/columnIndex.vue +0 -233
  48. package/src/components/table/ol-table/components/ol-table-column-config/index.vue +0 -145
  49. package/src/components/table/ol-table/components/ol-table-column-dict-color/index.vue +0 -88
  50. package/src/components/table/ol-table/index.vue +0 -232
  51. package/src/components/table/ol-table-operate/index.vue +0 -61
  52. package/src/components/table/ol-table-search/index.vue +0 -17
  53. package/src/components/table/ol-table-tool-btn/index.vue +0 -60
  54. package/src/components/tree/components/o-tree.vue +0 -289
  55. package/src/components/tree/index.vue +0 -46
  56. package/src/components/v-component/index.vue +0 -43
  57. package/src/config/dev-config.js +0 -5
  58. package/src/config/prod-config.js +0 -5
  59. package/src/config/shared-config.js +0 -20
  60. package/src/data.js +0 -9378
  61. package/src/directives/permission/hasPermi.js +0 -63
  62. package/src/directives/permission/hasRole.js +0 -30
  63. package/src/main.js +0 -55
  64. package/src/mixins/VTMixin/DefaultMethods.js +0 -749
  65. package/src/mixins/VTMixin/OTMixinBody.js +0 -105
  66. package/src/mixins/VTMixin/OTMixinBodyFooter.js +0 -93
  67. package/src/mixins/VTMixin/OTMixinBodyMethods.js +0 -420
  68. package/src/mixins/VTMixin/OTMixinColumnMethod.js +0 -450
  69. package/src/mixins/VTMixin/OTMixinInitMethod.js +0 -130
  70. package/src/mixins/VTMixin/OTMixinPager.js +0 -38
  71. package/src/mixins/VTMixin/OTMixinSortable.js +0 -43
  72. package/src/mixins/VTMixin/index.js +0 -18
  73. package/src/package/index.js +0 -20
  74. package/src/plugins/axios.js +0 -61
  75. package/src/store/dict.js +0 -76
  76. package/src/store/dictType.js +0 -52
  77. package/src/store/permi.js +0 -45
  78. package/src/styles/common.scss +0 -37
  79. package/src/styles/index.scss +0 -48
  80. package/src/styles/theme.scss +0 -32
  81. package/src/utils/AESCRUDUtils.js +0 -87
  82. package/src/utils/DateUtils.js +0 -35
  83. package/src/utils/ExcelUtil.js +0 -159
  84. package/src/utils/TableSortUtil.js +0 -91
  85. package/src/utils/columnProp.js +0 -3
  86. package/src/utils/groupCompute.js +0 -68
  87. package/src/utils/http/httpFactory.js +0 -92
  88. package/src/utils/http/httpFactory2.js +0 -79
  89. package/src/utils/http/httpUtil.js +0 -123
  90. package/src/utils/http/httpUtils.js +0 -38
  91. package/src/utils/loadStyle.js +0 -14
  92. package/src/utils/message.js +0 -56
  93. package/src/utils/object.js +0 -80
  94. package/src/utils/security/TokenUtil.js +0 -19
  95. package/src/utils/tree.js +0 -54
  96. package/src/utils/util.js +0 -127
  97. package/src/views/Test/index.vue +0 -77
  98. package/src/views/Test/index2.vue +0 -33
  99. package/src/views/components/btn-config/index.vue +0 -202
  100. package/src/views/components/option-config/index.vue +0 -192
  101. package/src/views/db/chineseToEnglish.vue +0 -127
  102. package/src/views/db/filed.vue +0 -395
  103. package/src/views/db/index.vue +0 -192
  104. package/src/views/db/preview/index.vue +0 -139
  105. package/src/views/db/preview/left.vue +0 -204
  106. package/src/views/db/preview/right.vue +0 -466
  107. package/src/views/groupTable/index.vue +0 -137
  108. package/src/views/groupTable/ol-table-column-config/columnIndex.vue +0 -194
  109. package/src/views/groupTable/ol-table-column-config/index.vue +0 -92
  110. package/src/views/table/add-or-edit/config/base-config/index.vue +0 -539
  111. package/src/views/table/add-or-edit/config/base-config/table-form.vue +0 -333
  112. package/src/views/table/add-or-edit/config/column-config/header-config.vue +0 -475
  113. package/src/views/table/add-or-edit/config/column-config/index.vue +0 -790
  114. package/src/views/table/add-or-edit/config/data/column.js +0 -218
  115. package/src/views/table/add-or-edit/config/data/crud.js +0 -122
  116. package/src/views/table/add-or-edit/config/data/events.js +0 -109
  117. package/src/views/table/add-or-edit/config/data/method.js +0 -127
  118. package/src/views/table/add-or-edit/config/data/option.js +0 -725
  119. package/src/views/table/add-or-edit/config/data/page.js +0 -79
  120. package/src/views/table/add-or-edit/config/field-config/filed-config-table.vue +0 -42
  121. package/src/views/table/add-or-edit/config/field-config/index.vue +0 -91
  122. package/src/views/table/add-or-edit/config/form-config/index.vue +0 -1179
  123. package/src/views/table/add-or-edit/config/index.vue +0 -376
  124. package/src/views/table/add-or-edit/config/initFormObject.js +0 -25
  125. package/src/views/table/add-or-edit/config/script-config/LeftMeun.vue +0 -71
  126. package/src/views/table/add-or-edit/config/script-config/index.vue +0 -70
  127. package/src/views/table/add-or-edit/config/table-config/btn-config.vue +0 -340
  128. package/src/views/table/add-or-edit/config/table-config/btn-sort.vue +0 -132
  129. package/src/views/table/add-or-edit/config/table-config/index.vue +0 -446
  130. package/src/views/table/add-or-edit/configOld/dataTags/filed-config-table-model.vue +0 -41
  131. package/src/views/table/add-or-edit/configOld/dataTags/filed-config.vue +0 -74
  132. package/src/views/table/add-or-edit/configOld/dataTags/index.vue +0 -439
  133. package/src/views/table/add-or-edit/configOld/dataTags/set-table-sql.vue +0 -79
  134. package/src/views/table/add-or-edit/configOld/dataTags/table-on-config.vue +0 -74
  135. package/src/views/table/add-or-edit/configOld/index.vue +0 -127
  136. package/src/views/table/add-or-edit/configOld/tableTags/columnConfig.js +0 -5
  137. package/src/views/table/add-or-edit/configOld/tableTags/index.vue +0 -353
  138. package/src/views/table/add-or-edit/configOld/tableTags/operation-but-config.vue +0 -75
  139. package/src/views/table/add-or-edit/configOld/tableTags/tool-but-config.vue +0 -92
  140. package/src/views/table/add-or-edit/index.vue +0 -201
  141. package/src/views/table/add-or-edit/themeModel/index.vue +0 -53
  142. package/src/views/table/add-or-edit/themeModel/init-model-table.vue +0 -48
  143. package/src/views/table/add-or-edit/themeModel/init-model.vue +0 -81
  144. package/src/views/table/add-or-edit/themeModel/left-right.vue +0 -24
  145. package/src/views/table/add-or-edit/themeModel/left-tree-right-table.vue +0 -75
  146. package/src/views/table/add-or-edit/themeModel/olTableSearchModelMixins.js +0 -42
  147. package/src/views/table/add-or-edit/themeModel/splitpanesThemeModel.vue +0 -49
  148. package/src/views/table/add-or-edit/themeModel/top-1-bottom-2.vue +0 -29
  149. package/src/views/table/add-or-edit/themeModel/top-2-bottom-1.vue +0 -32
  150. package/src/views/table/add-or-edit/themeModel/top-2-bottom-2.vue +0 -32
  151. package/src/views/table/add-or-edit/themeModel/top-bottom.vue +0 -14
  152. package/src/views/table/index.vue +0 -43
  153. package/src/views/table/index2.vue +0 -199
  154. package/src/views/table/preview/index.vue +0 -29
  155. package/src/views/tree/components/config-core-data.vue +0 -85
  156. package/src/views/tree/components/config-core-table.vue +0 -362
  157. package/src/views/tree/components/config-core-tree/data/events.js +0 -95
  158. package/src/views/tree/components/config-core-tree/data/option.js +0 -88
  159. package/src/views/tree/components/config-core-tree/data/prop.js +0 -28
  160. package/src/views/tree/components/config-core-tree/index.vue +0 -181
  161. package/src/views/tree/components/config-core.vue +0 -42
  162. package/src/views/tree/components/form-config/index.vue +0 -967
  163. package/src/views/tree/index.vue +0 -424
  164. package/vue.config.js +0 -44
  165. /package/{olp-table/demo.html → demo.html} +0 -0
  166. /package/{olp-table/fonts → fonts}/iconfont.1720006583309.7e4906d9.woff +0 -0
  167. /package/{olp-table/fonts → fonts}/iconfont.1720006583309.947a27f0.ttf +0 -0
  168. /package/{olp-table/olp-table.common.js → olp-table.common.js} +0 -0
  169. /package/{olp-table/olp-table.css → olp-table.css} +0 -0
  170. /package/{olp-table/olp-table.umd.js → olp-table.umd.js} +0 -0
  171. /package/{olp-table/olp-table.umd.min.js → olp-table.umd.min.js} +0 -0
@@ -1,105 +0,0 @@
1
- import {OTMixinBodyMethods} from "./OTMixinBodyMethods"
2
- import {OTMixinColumnMethod} from "@/mixins/VTMixin/OTMixinColumnMethod";
3
- import {OTMixinBodyFooter} from "@/mixins/VTMixin/OTMixinBodyFooter";
4
-
5
- export const OTMixinBody = {
6
- name: 'OTMixinBody',
7
- mixins: [OTMixinBodyMethods, OTMixinColumnMethod, OTMixinBodyFooter],
8
- data() {
9
- return {
10
- components: undefined,
11
- customUrl: undefined,
12
- parameter: {},
13
- parameterDefault: {},
14
- orderByColumns: [],
15
- loading: {},
16
- deleteParameter: {},
17
- tableConfig: {},
18
- isMaximized: false,
19
- operationBtn: [],
20
- toolBtn: [],
21
- formItem: [],
22
- selectBox: "0",//0/无、1/单选、2/
23
- table: {
24
- sortable: false,
25
- scrollX: {enabled: true, gt: 5},
26
- scrollY: {enabled: true, gt: 5},
27
- ref: 'vTable',
28
- loading: false,
29
- border: false,
30
- align: 'center',
31
- size: "mini",
32
- height: 'auto',
33
- "show-footer": false,
34
- // 合并行字段
35
- mergeFields: [],
36
- loadingConfig: {
37
- text: '数据加载中..'
38
- },
39
- formConfig: {
40
- show: true,
41
- size: "medium",
42
- titleWidth: 100,
43
- titleAlign: 'right',
44
- titleOverflow: true,
45
- items: [],
46
- data: {},
47
- },
48
- columnConfig: {
49
- resizable: true
50
- },
51
- rowConfig: {
52
- isCurrent: true,
53
- },
54
- sortConfig: {
55
- defaultSort: []
56
- },
57
- columns: [],
58
- columnSource: [],
59
- data: [],
60
- dataSource: [],
61
- toolbarConfig: {
62
- slots: {
63
- buttons: 'header_left',
64
- tools: 'header_right'
65
- }
66
- },
67
- ...this.$attrs
68
- },
69
- search: {
70
- show: false,
71
- queryBtn: true,
72
- resetBtn: true,
73
- },
74
- toolbar: {
75
- show: false,//是否显示
76
- addBtn: true,//添加按钮
77
- batchDeleteBtn: true,//查询按钮
78
- uploadBtn: true,//上传按钮
79
- downloadBtn: true,//下载按钮
80
- refresh: true, // 显示刷新按钮
81
- import: true, // 显示导入按钮
82
- export: true, // 显示导出按钮
83
- print: true, // 显示打印按钮
84
- zoom: true, // 显示全屏按钮
85
- custom: true // 显示自定义列按钮
86
- },
87
- formMainList: [],
88
- dialog: {
89
- title: '弹窗',
90
- width: '80%',
91
- height: '',
92
- form: [],
93
- designer: '0'
94
- },
95
- formKey: 0,
96
- dialogVisible: false,
97
- events: {},
98
- }
99
- },
100
- computed: {
101
- $table() {
102
- return this.$refs[this.table.ref]
103
- }
104
- },
105
- }
@@ -1,93 +0,0 @@
1
- export const OTMixinBodyFooter = {
2
- methods: {
3
- footerMethod() {
4
- if(!this.table['show-footer']){
5
- return
6
- }
7
- // 获取原始列定义
8
- const originalColumns = getTableColumns(this.table.columns);
9
- // 初始化页脚数据数组,长度与列数相同,初始值都为 null
10
- const footerData = [new Array(originalColumns.length).fill(null)];
11
-
12
- // 遍历原始列定义,计算每个列对应的页脚数据
13
- originalColumns.forEach((column, _columnIndex) => {
14
- if (_columnIndex === 0) {
15
- footerData[0][_columnIndex] = '合计';
16
- } else if (column.totalToOtherProp) {
17
- const operation = column.totalToOtherProp.toLowerCase();
18
- switch (operation) {
19
- case 'avg':
20
- footerData[0][_columnIndex] = (sumNum(this.table.data, column.field) / this.table.data.length).toFixed(3);
21
- break;
22
- case'sum':
23
- footerData[0][_columnIndex] = sumNum(this.table.data, column.field).toFixed(3);
24
- break;
25
- case'max':
26
- footerData[0][_columnIndex] = maxOrMin(this.table.data, column.field, true).toFixed(3);
27
- break;
28
- case'min':
29
- footerData[0][_columnIndex] = maxOrMin(this.table.data, column.field, false).toFixed(3);
30
- break;
31
- default:
32
- break;
33
- }
34
- }
35
- });
36
-
37
- return footerData;
38
- }
39
- }
40
- }
41
-
42
- function getTableColumns(columns) {
43
- // 分离固定在左侧、右侧和不固定的列
44
- const fixedLeftColumns = [];
45
- const nonFixedColumns = [];
46
- const fixedRightColumns = [];
47
-
48
- columns.forEach(column => {
49
- if (column.visible != false) {
50
- if (column.fixed === 'left') {
51
- fixedLeftColumns.push(column);
52
- } else if (column.fixed === 'right') {
53
- fixedRightColumns.push(column);
54
- } else {
55
- nonFixedColumns.push(column);
56
- }
57
- }
58
- });
59
-
60
- // 对非固定列按照 sort 属性排序
61
- nonFixedColumns.sort((a, b) => {
62
- const sortA = a.sort || 0;
63
- const sortB = b.sort || 0;
64
- return sortA - sortB;
65
- });
66
-
67
- // 合并排序后的列
68
- return [...fixedLeftColumns, ...nonFixedColumns, ...fixedRightColumns];
69
- }
70
-
71
- // 计算总和的函数
72
- function sumNum(data, field) {
73
- return data.reduce((acc, item) => {
74
- const value = parseFloat(item[field]);
75
- return isNaN(value) ? acc : acc + value;
76
- }, 0);
77
- }
78
-
79
- // 计算最大值或最小值的函数
80
- function maxOrMin(data, field, isMax) {
81
- let result = isMax ? -Infinity : Infinity;
82
- data.forEach(item => {
83
- const value = parseFloat(item[field]);
84
- if (!isNaN(value)) {
85
- if (isMax && value > result) {
86
- result = value;
87
- } else if (!isMax && value < result) {
88
- result = value;
89
- }
90
- }
91
- });
92
- return result;
93
- }
@@ -1,420 +0,0 @@
1
- import {storeDict} from "@/store/dict";
2
- import {storeDictType} from "@/store/dictType";
3
- import {toCamelCase} from "@/utils/util";
4
- import {useMessage} from "@/utils/message";
5
- import {post, get, del, put, request} from "@/utils/http/httpUtils";
6
- import {markRaw} from "vue";
7
- import {getNewArrDataToolBtn, updateSortRowCall} from "@/utils/TableSortUtil";
8
- import {DefaultMethods} from "@/mixins/VTMixin/DefaultMethods";
9
- import {doPermission} from "@/directives/permission/hasPermi";
10
-
11
- const message = useMessage() // 消息弹窗
12
- const dict = storeDict();
13
- const dictType = storeDictType();
14
- export const OTMixinBodyMethods = {
15
- mixins: [DefaultMethods],
16
- emits: ['handleOperationClick', 'toolbarBtnClick', 'initComponents', 'selectRowChange'],
17
- methods: {
18
- /**
19
- * 自定义表单方法
20
- * @returns {*}
21
- */
22
- customerForm(show) {
23
- this.toggleFormDisplay()
24
- this.table.formConfig.show = show == true;
25
- return this.table.formConfig;
26
- }, /**
27
- * 搜索隐藏/显示
28
- */
29
- toggleFormDisplay() {
30
- // 获取组件的根 DOM 元素
31
- const rootEl = this.$refs[this.table.ref].$el;
32
-
33
- // 查询第一个子标签是否为 vxe-grid--form-wrapper
34
- const formWrapperEl = rootEl.querySelector('.vxe-grid--form-wrapper');
35
- if (formWrapperEl) {
36
- // 查询 formWrapperEl 下的第一个 form 标签
37
- const formEl = formWrapperEl.querySelector('form');
38
- if (formEl) {
39
- // 获取 form 标签的当前 display 样式
40
- const currentDisplay = window.getComputedStyle(formEl).display;
41
-
42
- // 根据当前 display 样式设置新的样式
43
- if (currentDisplay === 'none') {
44
- // 如果当前是 none,则移除 display 样式(设置为空字符串)
45
- formEl.style.display = '';
46
- } else {
47
- // 否则设置为 none
48
- formEl.style.display = 'none';
49
- }
50
- }
51
- }
52
- }, /**
53
- * 选中回调
54
- */
55
- selectRowChange() {
56
- let rows = this.getSelectRows();
57
- if (!rows) {
58
- return;
59
- }
60
- this.pagination.selectionRowsLength = rows.length;
61
- this.setToolBtn('batchDelete', 'disabled', rows.length == 0)
62
- rows = this.selectBox == 1 ? rows[0] : rows;
63
- if (this.events['selectRowChange']) {
64
- this.events['selectRowChange'](rows)
65
- }
66
- this.$emit("selectRowChange", rows)
67
- }, /**
68
- * 切换表格最大化/还原
69
- */
70
- zoomEvent() {
71
- if (this.$table) {
72
- this.$table.zoom()
73
- this.isMaximized = this.$table.isMaximized()
74
- }
75
- },
76
- initToolBtn(toolBut) {
77
- let obj = undefined;
78
- for (let i = 0; i < toolBut.length; i++) {
79
- let toolButElement = toolBut[i];
80
- toolButElement.disabled = toolButElement.defaultDisabled == 1
81
- toolButElement.show = toolButElement.defaultShow == 1
82
- if (toolButElement.code == 'sortable') {
83
- toolButElement.values = false;
84
- obj = JSON.parse(JSON.stringify(toolButElement))
85
- obj.id = obj.id + "_sortable";
86
- obj.name = "调整完成";
87
- obj.code = "sortableOk";
88
- obj.icon = "vxe-icon-check";
89
- obj.show = false;
90
- obj.disabled = true;
91
- obj.index = i + 1;
92
- }
93
- }
94
- if (obj) {
95
- toolBut.splice(obj.index, 0, obj)
96
- }
97
- this.toolBtn = toolBut;
98
- },
99
- initOperationBtn(operationBtn) {
100
- this.operationBtn = operationBtn;
101
- if(this.operationBtn.length!=0){
102
- let okBut = []
103
- for (let i = 0; i < this.operationBtn.length; i++) {
104
- let flag = doPermission({parentNode:false},[this.uuid+':'+this.theme+':'+this.operationBtn[i].code]);
105
- // console.info(this.operationBtn[i].name+'--按钮'+this.operationBtn[i].code,flag)
106
- if(flag){
107
- okBut.push(this.operationBtn[i])
108
- }
109
- }
110
- this.operationBtn = okBut;
111
- }
112
-
113
- let length = this.operationBtn.length;
114
- if (length != 0) {
115
- let width = 35;
116
- if (this.table.operationWidth) {
117
- width = this.table.operationWidth;
118
- } else {
119
- for (let o of this.operationBtn) {
120
- width += (o.name.length * (35 - length) + (o.icon !== undefined ? 5 : 0));
121
- }
122
- }
123
- this.table.columns.push({
124
- title: '操作', width: width, fixed: "right", slots: {default: 'operate'}
125
- })
126
- }
127
- },
128
- initTree({tree, treeId, treeParentId}) {
129
- if (tree == 1) {
130
- this.table.treeConfig = {
131
- show: true,
132
- transform: false,
133
- indent: 15,
134
- reserve: tree,
135
- rowField: treeId,
136
- parentField: treeParentId,
137
- treeId: treeId,
138
- treeParentId: treeParentId,
139
- iconClose: "vxe-icon-arrow-right",
140
- iconOpen: "vxe-icon-arrow-down"
141
- }
142
- this.table.rowConfig.keyField = treeId;
143
- }
144
- },
145
- initFormMainList(formMainList) {
146
- this.formMainList = formMainList
147
- },
148
- async doSetComponents(customUrl, method, props, multipleProps) {
149
- this.customUrl = markRaw(customUrl);
150
- await this.$nextTick(async () => {
151
- if (multipleProps == '1' || multipleProps == true) {
152
- doCallback(this.$refs.components[method], props)
153
- } else if (multipleProps == '2') {
154
- doCallback2(this.$refs.components[method], props)
155
- } else {
156
- this.$refs.components[method](props)
157
- }
158
- })
159
- },
160
- setComponent(url, method, props, multipleProps) {
161
- if (url.indexOf("@") == 0) {
162
- this.$emit('initComponents', {url: url, method: method, props: props, multipleProps: multipleProps})
163
- } else {
164
- this.doSetComponents(require(`@/${url}`).default, method, props, multipleProps)
165
- }
166
- },
167
- async toolbarBtnClick(code) {
168
- if (code == "batchDelete") {
169
- this.batchRemove();
170
- this.$emit('toolbarBtnClick', code)
171
- return
172
- } else if (code == 'download') {
173
- this.setComponent("components/ol-dialog-excel", "open", {
174
- id: this.tableConfig.id, selectData: this.pagination.selectionRowsLength >= 1 ? '2' : '1'
175
- })
176
- return
177
- } else if (code == 'upload') {
178
- this.setComponent("components/ol-dialog-import", "open", {
179
- id: this.tableConfig.id
180
- })
181
- return
182
- } else if (code == 'sortable') {
183
- this.sortableClick();
184
- return;
185
- } else if (code == 'sortableOk') {
186
- this.loading['sortableOk'] = true;
187
- this.sortableOkClick();
188
- return;
189
- }
190
- let customFunction = undefined;
191
- for (const toolBtn of this.toolBtn) {
192
- if (toolBtn.code == code && toolBtn.customFunction) {
193
- customFunction = toolBtn.customFunction;
194
- break;
195
- }
196
- }
197
- let param = this.getSubParamByBtn(code);
198
- if (customFunction != undefined) {
199
- eval(customFunction);
200
- } else if (code == 'add' && param && param.type == '1') {
201
- this.showSubForm(code, param)
202
- } else if (code == 'add') {
203
- this.showForm(code);
204
- }
205
- this.$emit('toolbarBtnClick', code)
206
-
207
- },
208
- getSubParamByBtn(code) {
209
- for (const toolBtn of this.toolBtn) {
210
- if (toolBtn.code == code) {
211
- return this.getSubParam(toolBtn.json);
212
- }
213
- }
214
- },
215
- getDeleteId(param) {
216
- for (let key of Object.keys(param)) {
217
- if (key != '$parentId') {
218
- return key;
219
- }
220
- }
221
- },
222
- sortableClick() {
223
- for (let toolBtn of this.toolBtn) {
224
- if (toolBtn.code == 'sortable') {
225
- toolBtn.values = !toolBtn.values;
226
- this.loading['sortableOk'] = false;
227
- this.setToolBtn('sortableOk', 'show', toolBtn.values);
228
- toolBtn.start = 999999;
229
- toolBtn.end = -1;
230
- if (toolBtn.values) {
231
- if (toolBtn.beforeFunction == undefined || toolBtn.beforeFunction == '' || toolBtn.beforeFunction.split(",") < 2) {
232
- message.error("排序字段未配置,请在做工具栏按钮配置中配置参数1(sort,id)");
233
- return;
234
- }
235
- toolBtn.updateData = {};
236
- toolBtn.$elm = updateSortRowCall(this.$table, (oldIndex, newIndex) => {
237
- let start = Math.min(oldIndex, newIndex)
238
- let end = Math.max(oldIndex, newIndex)
239
- toolBtn.start = Math.min(start, toolBtn.start)
240
- toolBtn.end = Math.max(end, toolBtn.end)
241
- this.setToolBtn('sortableOk', 'disabled', false)
242
- this.table.data = getNewArrDataToolBtn(oldIndex, newIndex, this.table.data, toolBtn)
243
- })
244
- } else if (toolBtn.$elm) {
245
- this.setToolBtn('sortableOk', 'disabled', true)
246
- toolBtn.$elm.destroy();
247
- toolBtn.$elm = undefined;
248
- this.query();
249
- }
250
- return;
251
- }
252
- }
253
- },
254
- sortableOkClick() {
255
- for (let toolBtn of this.toolBtn) {
256
- if (toolBtn.code == 'sortable') {
257
- let url;
258
- this.loading['sortableOk'] = true;
259
- this.table.loading = true;
260
- let params = {
261
- updateList: []
262
- };
263
- //sort,id 排序字段,更新主键
264
- let kw = toolBtn.beforeFunction.split(",");
265
- if (toolBtn.alterFunction) {
266
- url = toolBtn.alterFunction;
267
- } else {
268
- url = '/online/crud/batchModify';
269
- params.tableConfigId = this.tableConfig.id;
270
- }
271
- //这里肯定只有一个值
272
- for (let key of Object.keys(toolBtn.updateData)) {
273
-
274
- if (toolBtn.alterFunction) {
275
- let kv = {};
276
- kv[kw[1]] = key
277
- kv[kw[0]] = toolBtn.updateData[key]
278
- params.updateList.push(kv);
279
- } else {
280
- let columnAndValueMap = {};
281
- let whereMap = {};
282
- whereMap[kw[1]] = key
283
- columnAndValueMap[kw[0]] = toolBtn.updateData[key]
284
- params.updateList.push({
285
- columnAndValueMap, whereMap
286
- });
287
- }
288
- }
289
- post(this.http, url, params).then((status) => {
290
- if (status) {
291
- this.query();
292
- this.setToolBtn('sortableOk', 'disabled', true);
293
- }
294
- }).finally(() => {
295
- this.loading['sortableOk'] = false;
296
- this.table.loading = false;
297
- })
298
- }
299
- }
300
- }, showRender(descCode, url, title) {
301
- get(this.http, '/online/formDesigner/getOne', {descCode: descCode}, undefined, true).then(d => {
302
- let data = {
303
- type: 1,
304
- saveUrl: url,
305
- title: title,
306
- form: JSON.parse(d.formJson),
307
- tableConfigId: this.tableConfig.id
308
- }
309
- this.$refs["form"].init(data, false)
310
- });
311
- },
312
- showSubForm(code, subData, formData) {
313
- if (!formData) {
314
- formData = {};
315
- }
316
- let form = this.formMainList[code];
317
- if (!form) {
318
- return;
319
- }
320
- let formJsonStr = form.formJson[form.formMain.designer == 0 ? 'optionJson' : 'customJson'];
321
- let data = {
322
- type: form.formMain.designer,
323
- saveUrl: form.formMain.saveUrl,
324
- requestType: form.formMain.requestType,
325
- updateKey: form.formMain.updateKey,
326
- formData: formData,
327
- theme: this.theme,
328
- code: code,
329
- uuid: subData.subUuid,
330
- deleteId: subData.deleteId,
331
- foreignKey: subData.subForeignKey,
332
- form: JSON.parse(formJsonStr),
333
- tableConfigId: this.tableConfig.id,
334
- dbName: this.tableConfig.dbName,
335
- tableName: this.tableConfig.mainTable
336
- }
337
- if (subData) {
338
- this.$refs["subForm"].init(data)
339
- }
340
- },
341
- showForm(code, formData) {
342
- if (!formData) {
343
- formData = {};
344
- }
345
- let form = this.formMainList[code];
346
- if (!form) {
347
- return;
348
- }
349
- let formJsonStr = form.formJson[form.formMain.designer == 0 ? 'optionJson' : 'customJson'];
350
- let data = {
351
- type: form.formMain.designer,
352
- saveUrl: form.formMain.saveUrl,
353
- requestType: form.formMain.requestType,
354
- updateKey: form.formMain.updateKey,
355
- formData: formData,
356
- theme: this.theme,
357
- code: code,
358
- form: JSON.parse(formJsonStr),
359
- tableConfigId: this.tableConfig.id,
360
- dbName: this.tableConfig.dbName,
361
- tableName: this.tableConfig.mainTable
362
- }
363
- this.$refs["form"].init(data)
364
- },
365
- async handleOperationClick(o) {
366
- let {obj, row} = o;
367
- let param = this.getSubParam(obj.json);
368
- if (obj.customFunction) {
369
- eval(obj.customFunction);
370
- } else if (obj.code == "delete") {
371
- this.remove(o);
372
- } else if (obj.code == 'edit' && param && param.type == '1') {
373
- this.showSubForm(obj.code, param, row)
374
- } else if (obj.code == 'edit') {
375
- this.showForm(obj.code, row)
376
- }
377
- this.$emit("handleOperationClick", o)
378
- },
379
- getSubParam(json) {
380
- let obj = {deleteId: this.getDeleteId(this.deleteParameter)}; // 初始化为空对象
381
- if (json) {
382
- return {...obj, ...JSON.parse(json)}
383
- }
384
- }
385
- },
386
- created() {
387
- dict.init(this.http)
388
- dictType.init(this.http)
389
- }
390
- }
391
-
392
- function rowCamelCase(o) {
393
- let obj = {};
394
- for (let key of Object.keys(o)) {
395
- if (key == 'XROWKEY') {
396
- continue;
397
- }
398
- let k = key;
399
- if (re(key)) {
400
- k = key.substring(3)
401
- }
402
- obj[toCamelCase(k)] = o[key];
403
- }
404
- return obj;
405
- }
406
-
407
- function re(k) {
408
- let reg = /^t\d_/;
409
- return reg.test(k)
410
- }
411
-
412
- function doCallback(fn, args) {
413
- for (let arg of args) {
414
- fn.apply(this, arg);
415
- }
416
- }
417
-
418
- function doCallback2(fn, args) {
419
- fn.apply(this, args);
420
- }