olp-table 5.3.7 → 5.5.1

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/{olp-table/olp-table.common.js → olp-table.common.js} +67 -67
  2. package/{olp-table/olp-table.umd.js → olp-table.umd.js} +67 -67
  3. package/{olp-table/olp-table.umd.min.js → olp-table.umd.min.js} +67 -67
  4. package/package.json +7 -87
  5. package/.env.build +0 -1
  6. package/.env.prod +0 -1
  7. package/README.md +0 -26
  8. package/babel.config.js +0 -5
  9. package/jsconfig.json +0 -22
  10. package/public/favicon.ico +0 -0
  11. package/public/index.html +0 -17
  12. package/rmMode.bat +0 -1
  13. package/src/App.vue +0 -199
  14. package/src/api/crud.js +0 -22
  15. package/src/api/dist.js +0 -6
  16. package/src/assets/iconfont/iconfont.css +0 -20
  17. package/src/assets/iconfont/iconfont.json +0 -16
  18. package/src/assets/iconfont/iconfont.ttf +0 -0
  19. package/src/assets/iconfont/iconfont.woff +0 -0
  20. package/src/assets/iconfont/iconfont.woff2 +0 -0
  21. package/src/assets/logo.png +0 -0
  22. package/src/components/auto-height/index.vue +0 -75
  23. package/src/components/codemirror-tag.vue +0 -100
  24. package/src/components/lazy-load-select.vue +0 -107
  25. package/src/components/ol-dialog-excel.vue +0 -112
  26. package/src/components/ol-dialog-import.vue +0 -304
  27. package/src/components/ol-dialog-json.vue +0 -83
  28. package/src/components/ol-dialog-table.vue +0 -81
  29. package/src/components/ol-dialog-upload-file.vue +0 -208
  30. package/src/components/ol-dict-tag.vue +0 -271
  31. package/src/components/ol-select-dom.vue +0 -71
  32. package/src/components/ol-table-filter.vue +0 -28
  33. package/src/components/ol-table-render.vue +0 -44
  34. package/src/components/ol-table-select.vue +0 -154
  35. package/src/components/pinia-init.vue +0 -18
  36. package/src/components/table/model/ModelMixins.js +0 -43
  37. package/src/components/table/model/model-index.vue +0 -124
  38. package/src/components/table/model/ot-left-right.vue +0 -18
  39. package/src/components/table/model/ot-left-tree-right-table.scss +0 -14
  40. package/src/components/table/model/ot-left-tree-right-table.vue +0 -41
  41. package/src/components/table/model/ot-top-1-bottom-2.vue +0 -39
  42. package/src/components/table/model/ot-top-2-bottom-1.vue +0 -38
  43. package/src/components/table/model/ot-top-2-bottom-2.vue +0 -38
  44. package/src/components/table/model/ot-top-bottom.vue +0 -18
  45. package/src/components/table/model/splitpanesModel.css +0 -22
  46. package/src/components/table/model/splitpanesModel.vue +0 -54
  47. package/src/components/table/ol-form/index.vue +0 -544
  48. package/src/components/table/ol-form-v3/index.vue +0 -455
  49. package/src/components/table/ol-main-form-sub-table/index.vue +0 -611
  50. package/src/components/table/ol-pager/index.vue +0 -46
  51. package/src/components/table/ol-table/components/ol-table-column-config/columnIndex.vue +0 -233
  52. package/src/components/table/ol-table/components/ol-table-column-config/index.vue +0 -145
  53. package/src/components/table/ol-table/components/ol-table-column-dict-color/index.vue +0 -88
  54. package/src/components/table/ol-table/index.vue +0 -232
  55. package/src/components/table/ol-table-operate/index.vue +0 -61
  56. package/src/components/table/ol-table-search/index.vue +0 -17
  57. package/src/components/table/ol-table-tool-btn/index.vue +0 -60
  58. package/src/components/tree/components/o-tree.vue +0 -289
  59. package/src/components/tree/index.vue +0 -46
  60. package/src/components/v-component/index.vue +0 -43
  61. package/src/config/dev-config.js +0 -5
  62. package/src/config/prod-config.js +0 -5
  63. package/src/config/shared-config.js +0 -20
  64. package/src/data.js +0 -9378
  65. package/src/directives/permission/hasPermi.js +0 -63
  66. package/src/directives/permission/hasRole.js +0 -30
  67. package/src/main.js +0 -55
  68. package/src/mixins/VTMixin/DefaultMethods.js +0 -821
  69. package/src/mixins/VTMixin/OTMixinBody.js +0 -105
  70. package/src/mixins/VTMixin/OTMixinBodyFooter.js +0 -93
  71. package/src/mixins/VTMixin/OTMixinBodyMethods.js +0 -421
  72. package/src/mixins/VTMixin/OTMixinColumnMethod.js +0 -454
  73. package/src/mixins/VTMixin/OTMixinInitMethod.js +0 -130
  74. package/src/mixins/VTMixin/OTMixinPager.js +0 -38
  75. package/src/mixins/VTMixin/OTMixinSortable.js +0 -43
  76. package/src/mixins/VTMixin/index.js +0 -18
  77. package/src/package/index.js +0 -20
  78. package/src/plugins/axios.js +0 -61
  79. package/src/store/dict.js +0 -76
  80. package/src/store/dictType.js +0 -52
  81. package/src/store/permi.js +0 -45
  82. package/src/styles/common.scss +0 -37
  83. package/src/styles/index.scss +0 -48
  84. package/src/styles/theme.scss +0 -32
  85. package/src/utils/AESCRUDUtils.js +0 -87
  86. package/src/utils/DateUtils.js +0 -35
  87. package/src/utils/ExcelUtil.js +0 -159
  88. package/src/utils/TableSortUtil.js +0 -91
  89. package/src/utils/columnProp.js +0 -3
  90. package/src/utils/groupCompute.js +0 -68
  91. package/src/utils/http/httpFactory.js +0 -92
  92. package/src/utils/http/httpFactory2.js +0 -79
  93. package/src/utils/http/httpUtil.js +0 -123
  94. package/src/utils/http/httpUtils.js +0 -38
  95. package/src/utils/loadStyle.js +0 -14
  96. package/src/utils/message.js +0 -56
  97. package/src/utils/object.js +0 -80
  98. package/src/utils/security/TokenUtil.js +0 -19
  99. package/src/utils/tree.js +0 -54
  100. package/src/utils/util.js +0 -127
  101. package/src/views/Test/index.vue +0 -77
  102. package/src/views/Test/index2.vue +0 -33
  103. package/src/views/components/btn-config/index.vue +0 -202
  104. package/src/views/components/option-config/index.vue +0 -192
  105. package/src/views/db/chineseToEnglish.vue +0 -127
  106. package/src/views/db/filed.vue +0 -395
  107. package/src/views/db/index.vue +0 -192
  108. package/src/views/db/preview/index.vue +0 -139
  109. package/src/views/db/preview/left.vue +0 -204
  110. package/src/views/db/preview/right.vue +0 -466
  111. package/src/views/groupTable/index.vue +0 -137
  112. package/src/views/groupTable/ol-table-column-config/columnIndex.vue +0 -194
  113. package/src/views/groupTable/ol-table-column-config/index.vue +0 -92
  114. package/src/views/table/add-or-edit/config/base-config/index.vue +0 -539
  115. package/src/views/table/add-or-edit/config/base-config/table-form.vue +0 -333
  116. package/src/views/table/add-or-edit/config/column-config/header-config.vue +0 -475
  117. package/src/views/table/add-or-edit/config/column-config/index.vue +0 -790
  118. package/src/views/table/add-or-edit/config/data/column.js +0 -218
  119. package/src/views/table/add-or-edit/config/data/crud.js +0 -122
  120. package/src/views/table/add-or-edit/config/data/events.js +0 -109
  121. package/src/views/table/add-or-edit/config/data/method.js +0 -127
  122. package/src/views/table/add-or-edit/config/data/option.js +0 -725
  123. package/src/views/table/add-or-edit/config/data/page.js +0 -79
  124. package/src/views/table/add-or-edit/config/field-config/filed-config-table.vue +0 -42
  125. package/src/views/table/add-or-edit/config/field-config/index.vue +0 -91
  126. package/src/views/table/add-or-edit/config/form-config/index.vue +0 -1180
  127. package/src/views/table/add-or-edit/config/index.vue +0 -377
  128. package/src/views/table/add-or-edit/config/initFormObject.js +0 -25
  129. package/src/views/table/add-or-edit/config/script-config/LeftMeun.vue +0 -71
  130. package/src/views/table/add-or-edit/config/script-config/index.vue +0 -70
  131. package/src/views/table/add-or-edit/config/table-config/btn-config.vue +0 -340
  132. package/src/views/table/add-or-edit/config/table-config/btn-sort.vue +0 -132
  133. package/src/views/table/add-or-edit/config/table-config/index.vue +0 -446
  134. package/src/views/table/add-or-edit/configOld/dataTags/filed-config-table-model.vue +0 -41
  135. package/src/views/table/add-or-edit/configOld/dataTags/filed-config.vue +0 -74
  136. package/src/views/table/add-or-edit/configOld/dataTags/index.vue +0 -439
  137. package/src/views/table/add-or-edit/configOld/dataTags/set-table-sql.vue +0 -79
  138. package/src/views/table/add-or-edit/configOld/dataTags/table-on-config.vue +0 -74
  139. package/src/views/table/add-or-edit/configOld/index.vue +0 -127
  140. package/src/views/table/add-or-edit/configOld/tableTags/columnConfig.js +0 -5
  141. package/src/views/table/add-or-edit/configOld/tableTags/index.vue +0 -353
  142. package/src/views/table/add-or-edit/configOld/tableTags/operation-but-config.vue +0 -75
  143. package/src/views/table/add-or-edit/configOld/tableTags/tool-but-config.vue +0 -92
  144. package/src/views/table/add-or-edit/index.vue +0 -201
  145. package/src/views/table/add-or-edit/themeModel/index.vue +0 -53
  146. package/src/views/table/add-or-edit/themeModel/init-model-table.vue +0 -48
  147. package/src/views/table/add-or-edit/themeModel/init-model.vue +0 -81
  148. package/src/views/table/add-or-edit/themeModel/left-right.vue +0 -24
  149. package/src/views/table/add-or-edit/themeModel/left-tree-right-table.vue +0 -75
  150. package/src/views/table/add-or-edit/themeModel/olTableSearchModelMixins.js +0 -42
  151. package/src/views/table/add-or-edit/themeModel/splitpanesThemeModel.vue +0 -49
  152. package/src/views/table/add-or-edit/themeModel/top-1-bottom-2.vue +0 -29
  153. package/src/views/table/add-or-edit/themeModel/top-2-bottom-1.vue +0 -32
  154. package/src/views/table/add-or-edit/themeModel/top-2-bottom-2.vue +0 -32
  155. package/src/views/table/add-or-edit/themeModel/top-bottom.vue +0 -14
  156. package/src/views/table/index.vue +0 -43
  157. package/src/views/table/index2.vue +0 -199
  158. package/src/views/table/preview/index.vue +0 -29
  159. package/src/views/tree/components/config-core-data.vue +0 -85
  160. package/src/views/tree/components/config-core-table.vue +0 -362
  161. package/src/views/tree/components/config-core-tree/data/events.js +0 -95
  162. package/src/views/tree/components/config-core-tree/data/option.js +0 -88
  163. package/src/views/tree/components/config-core-tree/data/prop.js +0 -28
  164. package/src/views/tree/components/config-core-tree/index.vue +0 -181
  165. package/src/views/tree/components/config-core.vue +0 -42
  166. package/src/views/tree/components/form-config/index.vue +0 -967
  167. package/src/views/tree/index.vue +0 -424
  168. package/vue.config.js +0 -44
  169. /package/{olp-table/demo.html → demo.html} +0 -0
  170. /package/{olp-table/fonts → fonts}/iconfont.1720006583309.7e4906d9.woff +0 -0
  171. /package/{olp-table/fonts → fonts}/iconfont.1720006583309.947a27f0.ttf +0 -0
@@ -1,611 +0,0 @@
1
- <template>
2
- <el-dialog
3
- v-model="state.dialogVisible"
4
- :title="state.title"
5
- align-center
6
- destroy-on-close
7
- fullscreen
8
- v-loading="state.loading"
9
- :close-on-click-modal="false"
10
- >
11
- <div style="padding-right: 10px; height: 86vh">
12
- <avue-form :key="state.key" ref="formRef" :option="form"
13
- v-model="formData">
14
- <!-- 动态生成插槽 -->
15
- <template v-for="slotRow in dynamicSlotsTable" :key="slotRow.slotName" #[slotRow.slotName]="{ disabled, size }">
16
- <!-- 根据配置动态渲染插槽内容 -->
17
- <ol-table-select @olTableSelectChange="olTableSelectChange" :slotName="slotRow.slotName" :http="http"
18
- :defaultValue="formData[slotRow.slotName]"
19
- :uuid="slotRow.config.uuid" :disabled="disabled" :size="size"
20
- :config="slotRow.config"></ol-table-select>
21
- </template>
22
- </avue-form>
23
- <model-index ref="subTable" v-if="uuid" :uuid="uuid" :http="https" @initOk="ok"/>
24
- </div>
25
- <div class="footer-container">
26
- <el-row
27
- style="height: 50px; padding: 10px 20px 0 0;border-top: 1px solid #e8eaec;background: white;justify-content: right">
28
- <el-button @click="state.dialogVisible = false;">返 回</el-button>
29
- <el-button type="primary" v-if="show" :loading="state.loading" @click="doSave">保 存</el-button>
30
- </el-row>
31
- </div>
32
-
33
- </el-dialog>
34
- </template>
35
- <script>
36
- import {setArrayObjectKeyValue} from "@/utils/object";
37
- import {useMessage} from "@/utils/message";
38
- import {get, post, postAes} from "@/utils/http/httpUtils";
39
- import {handleTree} from "@/utils/tree";
40
- import {initDictTable} from "@/api/dist";
41
- import {storeDict} from "@/store/dict";
42
- import {storeDictType} from "@/store/dictType";
43
- import ModelIndex from "@/components/table/model/model-index.vue";
44
- import OlTableSelect from "@/components/ol-table-select.vue";
45
-
46
- const dict = storeDict();
47
- const dictType = storeDictType();
48
-
49
- function replaceDollarBraces(str) {
50
- return str.toString().replace(/\$\{?([^{}]+)\}?/g, function (match, innerContent) {
51
- return innerContent ? `'${innerContent}'` : match;
52
- });
53
- }
54
-
55
- function parseJson(column) {
56
- let attrs = column.attrs;
57
- if (attrs) {
58
- try {
59
- attrs = JSON.parse(attrs)
60
- for (let key of Object.keys(attrs)) {
61
- column[key] = attrs[key];
62
- }
63
- } catch (e) {
64
- console.error("解析attrs异常", attrs)
65
- }
66
- }
67
- }
68
-
69
- export default {
70
- name: "olMainFormSubTable",
71
- components: {OlTableSelect, ModelIndex},
72
- inject: ['http'],
73
- data() {
74
- return {
75
- url: {
76
- saveUrl: "/online/crudAes/saveMainAndSubs",
77
- },
78
- uuid: undefined,
79
- subForeignKey: '',
80
- formData: {},
81
- optionData: {},
82
- form: {
83
- column: []
84
- },
85
- dynamicSlotsTable: [],
86
- dynamicSlotsField: {},
87
- dynamicSlotsOtherResult: {},
88
- show: true,
89
- exBtnDisabled:undefined,
90
- state: {
91
- loading: false,
92
- fullscreen: false,
93
- dialogVisible: false,
94
- title: "",
95
- width: '60%',
96
- comCommit: true,
97
- maxHeight: '400px',
98
- type: '0',
99
- edit: false,
100
- saveUrl: '',
101
- requestType: 'post',
102
- updateKey: '',
103
- deleteId: '',
104
- theme: 't1',
105
- tableConfigId: '',
106
- dbName: '',
107
- tableName: '',
108
- },
109
- }
110
- },
111
- computed: {
112
- https() {
113
- return this.http;
114
- }
115
- },
116
- methods: {
117
- hideColumn(prop) {
118
- setArrayObjectKeyValue(this.form.column, 'display', false, prop)
119
- },
120
- showColumn(prop) {
121
- setArrayObjectKeyValue(this.form.column, 'display', true, prop)
122
- },
123
- getDeleteId(param) {
124
- for (let key of Object.keys(param)) {
125
- if (key != '$parentId') {
126
- return key;
127
- }
128
- }
129
- },
130
- getSubUpdateList(table) {
131
- let subColumnAndValueList = []
132
- for (const row of table.data) {
133
- subColumnAndValueList.push(this.getSubUpdate(row, table.columns))
134
- }
135
- return subColumnAndValueList;
136
- },
137
- getSubUpdate(row, columns) {
138
- let subColumnAndValue = {}
139
- for (const column of columns) {
140
- if (!column.tableSaveToOtherProp || column.tableSaveToOtherProp != '1') {
141
- subColumnAndValue[column.tableField ? column.tableField : column.field] = row[column.field]
142
- }
143
- }
144
- return subColumnAndValue;
145
- },
146
- getParams() {
147
- // 子表信息
148
- let subTable = this.$refs.subTable.table.t1;
149
- let deleteId = this.getDeleteId(subTable.deleteParameter);
150
- let params = {
151
- tableConfigId: this.state.tableConfigId,
152
- dbName: this.state.dbName,
153
- tableName: this.state.tableName,
154
- // 主表的唯一字段
155
- mainTableKey: [this.state.deleteId],//主表的唯一字段
156
- // 子表要自动生成的唯一字段 如果没有 可以忽略
157
- mainGenIdMap: {[this.state.deleteId]: 'uuid'},
158
- mianColumnAndValueMap: {},
159
- // 子表名称
160
- subTableName: subTable.tableConfig.mainTable,
161
- // 子表要自动生成的唯一字段 如果没有 可以忽略
162
- subGenIdMap: {[deleteId]: 'uuid'},
163
- // 子表子主表的数据
164
- subColumnAndValueList: this.getSubUpdateList(subTable.table),
165
- // 子表的唯一字段
166
- subTableKey: [deleteId],
167
- // 表的关联key,这里框架自动复制 {主表字段,子表的字段}
168
- subForeignKey: {
169
- [this.state.deleteId]: this.subForeignKey
170
- },
171
- };
172
- if (this.state.type != '0') {
173
- let formData = this.$refs.value.getFormData(false);
174
- for (let prop of Object.keys(formData)) {
175
- let value = formData[prop];
176
- if (value instanceof String) {
177
- value = value.trim();
178
- }
179
- params.mianColumnAndValueMap[prop] = value;
180
- }
181
- } else {
182
- params.mianColumnAndValueMap = this.getTableUpdateValue(this.form.column, this.formData);
183
- }
184
- if (this.state.saveUrl) {
185
- return params.mianColumnAndValueMap;
186
- }
187
- if (this.state.edit) {
188
- params.whereMap = {}
189
- if (this.state.updateKey) {
190
- let split = this.state.updateKey.split(',');
191
- for (let kv of split) {
192
- let kvs = kv.split("=");
193
- if (kvs.length == 2) {
194
- params.mianColumnAndValueMap[kvs[0]] = params.mianColumnAndValueMap[kvs[1]]
195
- } else {
196
- let val = params.mianColumnAndValueMap[kvs];
197
- params.mianColumnAndValueMap[kvs] = val != undefined ? val : this.formData[kvs];
198
- }
199
- }
200
-
201
- } else {
202
- // 编辑时默认更新条件为id
203
- params.mianColumnAndValueMap['id'] = this.formData['id'];
204
- if (!params.mianColumnAndValueMap['id']) {
205
- params.mianColumnAndValueMap['id'] = this.formData['t1_id'];
206
- }
207
- }
208
- }
209
- return params
210
- },
211
- /**
212
- * 根据列配置获取数据库表更新数据
213
- * @param column
214
- * @param formData
215
- * @returns {{}}
216
- */
217
- getTableUpdateValue(column, formData) {
218
- let columnAndValueMap = {}
219
- for (let {prop, tableField} of column) {
220
- if (tableField && tableField == '1') {
221
- continue
222
- }
223
- let value = formData[prop];
224
- if (value) {
225
- if (value instanceof String) {
226
- value = value.trim();
227
- }
228
- columnAndValueMap[prop] = value;
229
- }
230
- }
231
- return columnAndValueMap;
232
- },
233
- async doValidate() {
234
- let dom = undefined;
235
- let keys = [];
236
- let status = true;
237
- if (this.state.type != '0') {
238
- await this.$refs.formRef.getNativeForm().validate((valid, msg) => {
239
- if (!valid) {
240
- keys = Object.keys(msg);
241
- dom = this.$refs.formRef.getWidgetRef(keys[0]);
242
- status = false;
243
- }
244
- })
245
- } else {
246
- await this.$refs.formRef.validate((valid, done, msg) => {
247
- if (!valid) {
248
- keys = Object.keys(msg);
249
- dom = this.$refs.formRef.getPropRef(keys[0]);
250
- status = false;
251
- }
252
- done()
253
- })
254
- }
255
- if (dom) {
256
- // 定位代码
257
- dom.$el.scrollIntoView({
258
- block: "center",
259
- behavior: "smooth",
260
- });
261
- useMessage().error("您还有" + keys.length + "项信息未填写,请填写后再操作!");
262
- status = false;
263
- }
264
- return status
265
- },
266
- async doSave() {
267
- let dom;
268
- let keys;
269
- if (this.state.type != '0') {
270
- await this.$refs.formRef.getNativeForm().validate((valid, msg) => {
271
- if (!valid) {
272
- keys = Object.keys(msg);
273
- dom = this.$refs.formRef.getWidgetRef(keys[0]);
274
- dom.$el.scrollIntoView({
275
- block: "center",
276
- behavior: "smooth",
277
- });
278
- useMessage().error("您还有" + keys.length + "项信息未填写,请填写后再操作!");
279
- } else {
280
- this.save()
281
- }
282
- })
283
- } else {
284
- await this.$refs.formRef.validate((valid, done, msg) => {
285
- if (!valid) {
286
- keys = Object.keys(msg);
287
- dom = this.$refs.formRef.getPropRef(keys[0]);
288
- dom.$el.scrollIntoView({
289
- block: "center",
290
- behavior: "smooth",
291
- });
292
- useMessage().error("您还有" + keys.length + "项信息未填写,请填写后再操作!");
293
- } else {
294
- this.save()
295
- }
296
- done()
297
- })
298
- }
299
- },
300
- save() {
301
- this.state.loading = true;
302
- try {
303
- let params = this.getParams()
304
- postAes(this.http, this.url.saveUrl, params).then(status => {
305
- this.state.loading = false;
306
- if (status) {
307
- this.state.dialogVisible = false;
308
- this.$emit('query')
309
- }
310
- })
311
- } catch (e) {
312
- console.error(e)
313
- } finally {
314
- this.state.loading = false;
315
- }
316
- },
317
- setUUID(data) {
318
- this.uuid = data.uuid;
319
- this.subForeignKey = data.foreignKey
320
- },
321
- init(data) {
322
- this.show = data.disabled == false;
323
- this.exBtnDisabled = data.exBtnDisabled;
324
- // 初始化动态插槽表格
325
- data.form.column.forEach(column => {
326
- if (data.disabled) {
327
- column.disabled = true;
328
- }
329
- if (column.selectDom === '22') {//表格选取
330
- let slotObj = {
331
- slotName: column.prop,
332
- config: JSON.parse(column.attrs).olTableSelect,
333
- }
334
- this.dynamicSlotsField[column.prop] = column //收集继续动态改变值的字段信息,以便动态改变值时更新表单数据
335
- this.dynamicSlotsTable.push(slotObj)//收集需要的动态插槽字段信息
336
- const otherResult = slotObj.config.otherResult //返回额外参数字段配置
337
- if (otherResult !== null && otherResult !== undefined && otherResult !== '') {
338
- let otherResultArray = []
339
- otherResult.split(",").forEach(m => {
340
- let k = m.split(":")
341
- otherResultArray.push({targetField: k[1], sourceField: k[0]})
342
- });
343
- this.dynamicSlotsOtherResult[column.prop] = otherResultArray
344
- }
345
- }
346
- })
347
- if (data.saveUrl) {
348
- this.state.saveUrl = data.saveUrl.trim();
349
- if (data.requestType) {
350
- this.state.requestType = data.requestType;
351
- }
352
- }
353
- this.setUUID(data);
354
- this.state.edit = data['code'] == 'edit' == true;
355
- this.state.title = data.title ? data.title : this.state.edit ? '编辑' : '新增';
356
- //赋值弹窗宽度和高度
357
- if (data.form.diaLogWidth) {
358
- this.state.width = data.form.diaLogWidth
359
- }
360
- if (data.form.diaLogHeight) {
361
- this.state.maxHeight = data.form.diaLogHeight + 'px'
362
- }
363
- if (data.form.title) {
364
- this.state.title = data.form.title
365
- }
366
- this.state.dialogVisible = true;
367
- this.form = data.form;
368
- this.formData = data.formData;
369
- for (let key of Object.keys(this.state)) {
370
- if (data[key]) {
371
- this.state[key] = data[key]
372
- }
373
- }
374
- }, ok(e) {
375
- if (!this.show) {
376
- this.$refs.subTable.getTableRefs().setAllBtnDisabled(this.exBtnDisabled);
377
- }
378
- for (let column of this.form.column) {
379
- if (column.disabled == 1) {
380
- column.disabled = true;
381
- }
382
- this.initDict(column);
383
- parseJson(column);
384
- for (let event of ['change']) {
385
- if (column[event] && !(column[event] instanceof Function)) {
386
- try {
387
- column[event] = eval("(params)=>{this.$nextTick(()=>{" +
388
- "let formData = this.formData;console.log(formData);" +
389
- "let {value} = params;" + replaceDollarBraces(column[event]) +
390
- "})" +
391
- "}")
392
- } catch (e) {
393
- console.error(e)
394
- }
395
- }
396
- }
397
- }
398
- this.setParameter(e)
399
- if (this.state.edit) {
400
- e.query()
401
- }
402
- }, setParameter(e) {
403
- let param = {
404
- [this.subForeignKey]: this.formData[this.state.deleteId]
405
- }
406
- e.parameter = {...e.parameter, ...param}
407
- }, initDict(column) {
408
- if (column.dictCode) {
409
- column.dicData = dict.val(column.dictCode)
410
- if (column.selectDom == 1) {
411
- column.type = "select";
412
- }
413
- if (this.state.edit) {
414
- return;
415
- }
416
- if (this.formData[column.prop] != undefined) {
417
- this.formData[column.prop] = String(this.formData[column.prop])
418
- } else if (column.value != undefined) {
419
- this.formData[column.prop] = String(column.value)
420
- } else {
421
- //”number”、”string”、”boolean”、”object”、”function” 和 “undefined”
422
- let dataType = typeof (this.formData[column.prop]);
423
- // 数据字典与值类型不一致
424
- if (this.formData[column.prop] != undefined && this.formData[column.prop] != '' && ["number", "boolean"].indexOf(dataType) != -1) {
425
- this.formData[column.prop] = String(this.formData[column.prop])
426
- column.value = this.formData[column.prop];
427
- } else if (this.formData[column.prop] == undefined) {
428
- setTimeout(() => {
429
- if (column.dicData) {
430
- for (let dicDatum of column.dicData) {
431
- if (dicDatum.isDefault == 1) {
432
- this.formData[column.prop] = dicDatum.value;
433
- column.value = this.formData[column.prop];
434
- }
435
- }
436
- }
437
- }, 100)
438
- }
439
- }
440
- } else if (column.dictTable || column.dictUrl) {
441
- if (column.selectDom == 1) {
442
- column.type = "select";
443
- }
444
- column.filterable = true;
445
- column.dicData = [];
446
- setTimeout(() => {
447
- this.setDictTable(column, undefined);
448
- }, 10)
449
- if (column.type == 'tree') {
450
- column.filterable = column.filterable == undefined ? true : column.clearable;
451
- column.clearable = column.clearable == undefined ? true : column.clearable;
452
- } else {
453
- column.filterMethod = (e) => {
454
- this.$nextTick(() => {
455
- this.setDictTable(column, e);
456
- })
457
- };
458
- }
459
- }
460
- },
461
- setDictUrl(column, like) {
462
- let dictUrl = column.dictUrl.split(",");
463
- let url;
464
- let label = 'label';
465
- let value = 'value';
466
- let parentId = 'parentId';
467
- // get,url,label,value,parent_id
468
- let doGet = true;
469
- if (dictUrl.length > 1
470
- ) {
471
- if (dictUrl[0].toString().toLowerCase() == 'post') {
472
- doGet = false;
473
- }
474
- url = dictUrl[1];
475
- label = dictUrl[2];
476
- value = dictUrl[3];
477
- parentId = dictUrl[4];
478
- } else {
479
- url = dictUrl[0];
480
- }
481
-
482
- if (doGet) {
483
- get(this.http, url + "?label=" + like).then((data) => {
484
- column.dicData.length = 0;
485
- if (column.type == 'tree') {
486
- for (let da of data) {
487
- da['label'] = da[label]
488
- da['value'] = da[value]
489
- }
490
- column.dicData = handleTree(data, value, parentId);
491
- } else {
492
- data.forEach((d) => {
493
- column.dicData.push(d);
494
- })
495
- }
496
- })
497
- } else {
498
- let params = {}
499
- if (like) {
500
- params['label'] = like;
501
- }
502
- post(this.http, column.dictUrl, params, false).then(({data}) => {
503
- column.dicData.length = 0;
504
- if (column.type == 'tree') {
505
- for (let da of data) {
506
- da['label'] = da[label]
507
- da['value'] = da[value]
508
- }
509
- column.dicData = handleTree(data, value, parentId);
510
- } else {
511
- data.forEach((da => {
512
- da['label'] = da[label];
513
- da['value'] = da[value];
514
- column.dicData.push(da);
515
- }))
516
- }
517
- })
518
- }
519
- }, setDictTable(column, like) {
520
- if (column.dictTable && column.dictTable.toString().trim() != '') {
521
- this.doSetDictTable(column, like);
522
- } else if (column.dictUrl) {
523
- this.setDictUrl(column, like);
524
- }
525
- },
526
- doSetDictTable(column, like) {
527
- let value = this.formData[column.prop];
528
- /*String tableName;
529
- String dataBase;
530
- String label;
531
- String value;
532
- Map<String, Object> where;*/
533
- // olp-vue-pro,system_users,nickname,id,parentId
534
- let params = {}
535
- let dictTable = JSON.parse(JSON.stringify(column.dictTable));
536
- if (dictTable instanceof Object) {
537
- params = dictTable;
538
- } else {
539
- dictTable = column.dictTable.split(",");
540
- params["dbName"] = dictTable[0];
541
- params["tableName"] = dictTable[1];
542
- params["label"] = dictTable[2];
543
- params["value"] = dictTable[3];
544
- if (dictTable[4]) {
545
- params["parentValue"] = dictTable[4];
546
- }
547
- }
548
-
549
- if (like || value) {
550
- if (!params.where) {
551
- params.where = {};
552
- }
553
-
554
- }
555
- if (!params["parentValue"]) {
556
- if (like) {
557
- params.where['_like_' + params["label"]] = like;
558
- }
559
- if (value) {
560
- params.defaultValue = value;
561
- }
562
- }
563
- initDictTable(this.http, params).then((data) => {
564
- column.dicData.length = 0;
565
- if (params["parentValue"]) {
566
- column.dicData = handleTree(data, 'dictValue', 'parentValue');
567
- } else {
568
- data.forEach((d) => {
569
- column.dicData.push(d);
570
- })
571
- }
572
- })
573
- },
574
- /**
575
- * 表格选择器回调函数
576
- * @param data
577
- */
578
- olTableSelectChange(slotName, data) {
579
- // console.info('插槽名称', slotName, '表格回传的数据', data)
580
- // console.info('表格', this.form.column)
581
- this.formData[slotName] = data.value;//修改表单数据,以便后续提交
582
- if (typeof this.dynamicSlotsField[slotName].change === 'function') {
583
- this.dynamicSlotsField[slotName].change(data.value)//字段数据更新回调
584
- }
585
- //给其他字段赋值
586
- this.dynamicSlotsOtherResult[slotName]?.forEach(item => {
587
- this.formData[item.targetField] = data.data[item.sourceField]
588
- })
589
- }
590
-
591
- },
592
- mounted() {
593
- this.$nextTick(() => {
594
- storeDict().init(this.http)
595
- })
596
- },
597
- created() {
598
- // console.info("我是主子表")
599
- }
600
- };
601
- </script>
602
- <style scoped>
603
- .footer-container {
604
- position: fixed;
605
- bottom: 0;
606
- left: 0;
607
- width: 100%;
608
- z-index: 1000; /* 确保在其他元素上方 */
609
- text-align: center; /* 确保按钮居中 */
610
- }
611
- </style>
@@ -1,46 +0,0 @@
1
- <template>
2
- <vxe-pager v-bind="$attrs">
3
- <template #left>
4
- <div class="page-left" v-if="$attrs.showDetails">
5
- <div v-if="$attrs.htmlValue == undefined">
6
- <!-- 提示:双击查看详细-->
7
- <span v-if="$attrs.rowSelection != false"><!--,-->已选择
8
- <a style="font-weight: 600">{{ $attrs.selectionRowsLength }}</a>项
9
- <a v-if="$attrs.selectionRowsLength !== 0" style="margin-left:5px;color: blue;cursor: pointer"
10
- @click="$emit('clearSelected')">清空选择</a>
11
- </span>
12
- </div>
13
- <div v-else v-html="$attrs.htmlValue"></div>
14
- </div>
15
- <slot name="left"></slot>
16
- </template>
17
- <template #right>
18
- <slot name="right"></slot>
19
- </template>
20
- </vxe-pager>
21
- </template>
22
- <script>
23
- export default {
24
- name: 'olPager',
25
- }
26
- </script>
27
- <style lang="less" scoped>
28
- /deep/ .vxe-pager--left-wrapper{
29
- float: left;
30
- //width: 50%;
31
- }
32
- /deep/ .vxe-pager--goto{
33
- height: 26px !important;
34
- }
35
- .page-left {
36
- position: relative;
37
- float: left;
38
- padding-right: 15px;
39
- z-index: 10;
40
- }
41
-
42
- .vxe-pager {
43
- height: 35px;
44
- top: 5px;
45
- }
46
- </style>