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,537 +0,0 @@
1
- <template>
2
- <el-dialog
3
- v-model="state.dialogVisible"
4
- :title="state.title"
5
- align-center
6
- destroy-on-close
7
- :width="state.width"
8
- v-loading="state.loading"
9
- :close-on-click-modal="false"
10
- >
11
- <el-scrollbar :max-height="state.maxHeight" style="padding-right: 10px">
12
- <avue-form v-if="state.type == '0'" :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
- <VFormRender v-else :form-json="form" :form-data="formData"
24
- :option-data="optionData"
25
- ref="formRef">
26
- </VFormRender>
27
- </el-scrollbar>
28
- <template #footer>
29
- <el-button @click="state.dialogVisible = false;">返 回</el-button>
30
- <el-button type="primary" :loading="state.loading" @click="doSave">保 存</el-button>
31
- </template>
32
- </el-dialog>
33
- </template>
34
- <script>
35
- import {setArrayObjectKeyValue} from "@/utils/object";
36
- import {useMessage} from "@/utils/message";
37
- import {get, post, postAes, put} from "@/utils/http/httpUtils";
38
- import {handleTree} from "@/utils/tree";
39
- import {doGetColumnAndValueMap} from "@/utils/util";
40
- import {initDictTable} from "@/api/dist";
41
- import {pinyin as olPinyin} from "pinyin-pro";
42
- import {storeDict} from "@/store/dict";
43
- import {storeDictType} from "@/store/dictType";
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: "olForm",
71
- components: {OlTableSelect},
72
- inject: ['http'],
73
- data() {
74
- return {
75
- formData: {},
76
- optionData: {},
77
- form: {
78
- column: []
79
- },
80
- dynamicSlotsTable: [],
81
- dynamicSlotsField: {},
82
- dynamicSlotsOtherResult: {},
83
- state: {
84
- loading: false,
85
- fullscreen: false,
86
- dialogVisible: false,
87
- title: "",
88
- width: '60%',
89
- comCommit: true,
90
- maxHeight: '400px',
91
- type: '0',
92
- edit: false,
93
- saveUrl: '',
94
- requestType: 'post',
95
- updateKey: '',
96
- theme: 't1',
97
- tableConfigId: '',
98
- dbName: '',
99
- tableName: '',
100
- },
101
- }
102
- },
103
- methods: {
104
- hideColumn(prop) {
105
- setArrayObjectKeyValue(this.form.column, 'display', false, prop)
106
- },
107
- showColumn(prop) {
108
- setArrayObjectKeyValue(this.form.column, 'display', true, prop)
109
- },
110
- getParams() {
111
- let params = {
112
- tableConfigId: this.state.tableConfigId,
113
- dbName: this.state.dbName,
114
- tableName: this.state.tableName,
115
- columnAndValueMap: {},
116
- };
117
- if (this.state.type != '0') {
118
- let formData = this.$refs.value.getFormData(false);
119
- for (let prop of Object.keys(formData)) {
120
- let value = formData[prop];
121
- if (value instanceof String) {
122
- value = value.trim();
123
- }
124
- params.columnAndValueMap[prop] = value;
125
- }
126
- } else {
127
- // for (let {prop} of this.form.column) {
128
- // let value = this.formData[prop];
129
- // if (value) {
130
- // if (value instanceof String) {
131
- // value = value.trim();
132
- // }
133
- // params.columnAndValueMap[prop] = value;
134
- // }
135
- // }
136
- params.columnAndValueMap = this.getTableUpdateValue(this.form.column, this.formData);
137
- }
138
- if (this.state.saveUrl) {
139
- return params.columnAndValueMap;
140
- }
141
- if (this.state.edit) {
142
- params.whereMap = {}
143
- if (this.state.updateKey) {
144
- let split = this.state.updateKey.split(',');
145
- for (let kv of split) {
146
- let kvs = kv.split("=");
147
- if (kvs.length == 2) {
148
- params.whereMap[kvs[0]] = params.columnAndValueMap[kvs[1]]
149
- delete params.columnAndValueMap[kvs[0]];
150
- } else {
151
- let val = params.columnAndValueMap[kvs];
152
- params.whereMap[kvs] = val != undefined ? val : this.formData[kvs];
153
- delete params.columnAndValueMap[kvs];
154
- }
155
- }
156
- } else {
157
- // 编辑时默认更新条件为id
158
- params.whereMap['id'] = this.formData['id'];
159
- if (!params.whereMap['id']) {
160
- params.whereMap['id'] = this.formData['t1_id'];
161
- }
162
- delete params.columnAndValueMap['id'];
163
- }
164
- } else if (this.state.updateKey) {
165
- let split = this.state.updateKey.split(',');
166
- params['genIdMap'] = {};
167
- for (let kv of split) {
168
- let kvs = kv.split("=");
169
- if (kvs.length == 2) {
170
- params['genIdMap'][kvs[0]] = kvs[1]
171
- } else {
172
- params['genIdMap'][kvs[0]] = 'uuid'
173
- }
174
- }
175
- }
176
- return params
177
- },
178
- /**
179
- * 根据列配置获取数据库表更新数据
180
- * @param column
181
- * @param formData
182
- * @returns {{}}
183
- */
184
- getTableUpdateValue(column, formData) {
185
- let columnAndValueMap = {}
186
- for (let {prop,tableField} of column) {
187
- if (tableField && tableField == '1') {
188
- continue
189
- }
190
- let value = formData[prop];
191
- if (value) {
192
- if (value instanceof String) {
193
- value = value.trim();
194
- }
195
- columnAndValueMap[prop] = value;
196
- }
197
- }
198
- return columnAndValueMap;
199
- },
200
- async doSave() {
201
- let dom ;
202
- let keys ;
203
- if (this.state.type != '0') {
204
- await this.$refs.formRef.getNativeForm().validate((valid, msg) => {
205
- if (!valid) {
206
- keys = Object.keys(msg);
207
- dom = this.$refs.formRef.getWidgetRef(keys[0]);
208
- dom.$el.scrollIntoView({
209
- block: "center",
210
- behavior: "smooth",
211
- });
212
- useMessage().error("您还有" + keys.length + "项信息未填写,请填写后再操作!");
213
- }else{
214
- this.save()
215
- }
216
- })
217
- } else {
218
- await this.$refs.formRef.validate((valid, done, msg) => {
219
- if (!valid) {
220
- keys = Object.keys(msg);
221
- dom = this.$refs.formRef.getPropRef(keys[0]);
222
- dom.$el.scrollIntoView({
223
- block: "center",
224
- behavior: "smooth",
225
- });
226
- useMessage().error("您还有" + keys.length + "项信息未填写,请填写后再操作!");
227
- }else{
228
- this.save()
229
- }
230
- done()
231
- })
232
- }
233
- },
234
- async save() {
235
- this.state.loading = true;
236
- try {
237
- let params = this.getParams()
238
- let url = this.state.saveUrl ? this.state.saveUrl : this.state.edit ? '/online/crudAes/modify' : '/online/crudAes/save'
239
- if (this.state.requestType.toLowerCase() == "put") {
240
- await put(this.http, url, params).then(status => {
241
- this.state.loading = false;
242
- if (status) {
243
- this.state.dialogVisible = false;
244
- this.$emit('query')
245
- }
246
- })
247
- } else if (this.state.saveUrl) {
248
- await post(this.http, url, params).then(status => {
249
- this.state.loading = false;
250
- if (status) {
251
- this.state.dialogVisible = false;
252
- this.$emit('query')
253
- }
254
- })
255
- } else {
256
- await postAes(this.http, url, params).then(status => {
257
- this.state.loading = false;
258
- if (status) {
259
- this.state.dialogVisible = false;
260
- this.$emit('query')
261
- }
262
- })
263
- }
264
- } catch (e) {
265
- console.error(e)
266
- } finally {
267
- this.state.loading = false;
268
- }
269
- },
270
- init(data) {
271
- // 初始化动态插槽表格
272
- data.form.column.forEach(column => {
273
- if (column.selectDom === '22') {//表格选取
274
- let slotObj = {
275
- slotName: column.prop,
276
- config: JSON.parse(column.attrs).olTableSelect,
277
- }
278
- this.dynamicSlotsField[column.prop] = column //收集继续动态改变值的字段信息,以便动态改变值时更新表单数据
279
- this.dynamicSlotsTable.push(slotObj)//收集需要的动态插槽字段信息
280
- const otherResult = slotObj.config.otherResult //返回额外参数字段配置
281
- if (otherResult !== null && otherResult !== undefined && otherResult !== '') {
282
- let otherResultArray = []
283
- otherResult.split(",").forEach(m => {
284
- let k = m.split(":")
285
- otherResultArray.push({targetField: k[1], sourceField: k[0]})
286
- });
287
- this.dynamicSlotsOtherResult[column.prop] = otherResultArray
288
- }
289
- }
290
- })
291
- if (data.saveUrl) {
292
- this.state.saveUrl = data.saveUrl.trim();
293
- if (data.requestType) {
294
- this.state.requestType = data.requestType;
295
- }
296
- }
297
- this.state.edit = data['code'] == 'edit' == true;
298
- this.state.title = data.title ? data.title : this.state.edit ? '编辑' : '新增';
299
- //赋值弹窗宽度和高度
300
- if (data.form.diaLogWidth) {
301
- this.state.width = data.form.diaLogWidth
302
- }
303
- if (data.form.diaLogHeight) {
304
- this.state.maxHeight = data.form.diaLogHeight + 'px'
305
- }
306
- if (data.form.title) {
307
- this.state.title = data.form.title
308
- }
309
- this.state.dialogVisible = true;
310
- this.form = data.form;
311
- this.formData = data.formData;
312
- for (let key of Object.keys(this.state)) {
313
- if (data[key]) {
314
- this.state[key] = data[key]
315
- }
316
- }
317
- if (this.state.type == 0) {
318
- for (let column of this.form.column) {
319
- if (column.disabled == 1) {
320
- column.disabled = true;
321
- }
322
- this.initDict(column);
323
- parseJson(column);
324
- for (let event of ['change']) {
325
- if (column[event] && !(column[event] instanceof Function)) {
326
- try {
327
- column[event] = eval("(params)=>{this.$nextTick(()=>{" +
328
- "let formData = this.formData;console.log(formData);" +
329
- "let {value} = params;" + replaceDollarBraces(column[event]) +
330
- "})" +
331
- "}")
332
- } catch (e) {
333
- console.error(e)
334
- }
335
- }
336
- }
337
- }
338
- }
339
- },
340
- initDict(column) {
341
- if (column.dictCode) {
342
- column.dicData = dict.val(column.dictCode)
343
- if (column.selectDom == 1) {
344
- column.type = "select";
345
- }
346
- //”number”、”string”、”boolean”、”object”、”function” 和 “undefined”
347
- let dataType = typeof (this.formData[column.prop]);
348
- if (["number", "boolean"].indexOf(dataType) != -1) {
349
- this.formData[column.prop] = String(this.formData[column.prop])
350
- column.value = this.formData[column.prop];
351
- }
352
-
353
- if (this.state.edit) {
354
- return;
355
- }
356
- if (this.formData[column.prop] != undefined) {
357
- this.formData[column.prop] = String(this.formData[column.prop])
358
- column.value = this.formData[column.prop]
359
- } else if (column.value != undefined) {
360
- this.formData[column.prop] = String(column.value)
361
- } else {
362
- // 数据字典与值类型不一致
363
- if (this.formData[column.prop] == undefined) {
364
- setTimeout(() => {
365
- if (column.dicData) {
366
- for (let dicDatum of column.dicData) {
367
- if (dicDatum.isDefault == 1) {
368
- this.formData[column.prop] = dicDatum.value;
369
- column.value = this.formData[column.prop];
370
- }
371
- }
372
- }
373
- }, 100)
374
- }
375
- }
376
- } else if (column.dictTable || column.dictUrl) {
377
- if (column.selectDom == 1) {
378
- column.type = "select";
379
- }
380
- column.filterable = true;
381
- column.dicData = [];
382
- setTimeout(() => {
383
- this.setDictTable(column, undefined);
384
- }, 10)
385
- if (column.type == 'tree') {
386
- column.filterable = column.filterable == undefined ? true : column.clearable;
387
- column.clearable = column.clearable == undefined ? true : column.clearable;
388
- } else {
389
- column.filterMethod = (e) => {
390
- this.$nextTick(() => {
391
- this.setDictTable(column, e);
392
- })
393
- };
394
- }
395
- }
396
- },
397
- setDictUrl(column, like) {
398
- let dictUrl = column.dictUrl.split(",");
399
- let url;
400
- let label = 'label';
401
- let value = 'value';
402
- let parentId = 'parentId';
403
- // get,url,label,value,parent_id
404
- let doGet = true;
405
- if (dictUrl.length > 1
406
- ) {
407
- if (dictUrl[0].toString().toLowerCase() == 'post') {
408
- doGet = false;
409
- }
410
- url = dictUrl[1];
411
- label = dictUrl[2];
412
- value = dictUrl[3];
413
- parentId = dictUrl[4];
414
- } else {
415
- url = dictUrl[0];
416
- }
417
-
418
- if (doGet) {
419
- get(this.http, url + "?label=" + like).then((data) => {
420
- column.dicData.length = 0;
421
- if (column.type == 'tree') {
422
- for (let da of data) {
423
- da['label'] = da[label]
424
- da['value'] = da[value]
425
- }
426
- column.dicData = handleTree(data, value, parentId);
427
- } else {
428
- data.forEach((d) => {
429
- column.dicData.push(d);
430
- })
431
- }
432
- })
433
- } else {
434
- let params = {}
435
- if (like) {
436
- params['label'] = like;
437
- }
438
- post(this.http, column.dictUrl, params, false).then(({data}) => {
439
- column.dicData.length = 0;
440
- if (column.type == 'tree') {
441
- for (let da of data) {
442
- da['label'] = da[label]
443
- da['value'] = da[value]
444
- }
445
- column.dicData = handleTree(data, value, parentId);
446
- } else {
447
- data.forEach((da => {
448
- da['label'] = da[label];
449
- da['value'] = da[value];
450
- column.dicData.push(da);
451
- }))
452
- }
453
- })
454
- }
455
- },
456
- setDictTable(column, like) {
457
- if (column.dictTable && column.dictTable.toString().trim() != '') {
458
- this.doSetDictTable(column, like);
459
- } else if (column.dictUrl) {
460
- this.setDictUrl(column, like);
461
- }
462
- },
463
- doSetDictTable(column, like) {
464
- let value = this.formData[column.prop];
465
- /*String tableName;
466
- String dataBase;
467
- String label;
468
- String value;
469
- Map<String, Object> where;*/
470
- // olp-vue-pro,system_users,nickname,id,parentId
471
- let params = {}
472
- let dictTable = JSON.parse(JSON.stringify(column.dictTable));
473
- if (dictTable instanceof Object) {
474
- params = dictTable;
475
- } else {
476
- dictTable = column.dictTable.split(",");
477
- params["dbName"] = dictTable[0];
478
- params["tableName"] = dictTable[1];
479
- params["label"] = dictTable[2];
480
- params["value"] = dictTable[3];
481
- if (dictTable[4]) {
482
- params["parentValue"] = dictTable[4];
483
- }
484
- }
485
-
486
- if (like || value) {
487
- if (!params.where) {
488
- params.where = {};
489
- }
490
-
491
- }
492
- if (!params["parentValue"]) {
493
- if (like) {
494
- params.where['_like_' + params["label"]] = like;
495
- }
496
- if (value) {
497
- params.defaultValue = value;
498
- }
499
- }
500
-
501
- initDictTable(this.http, params).then((data) => {
502
- column.dicData.length = 0;
503
- if (params["parentValue"]) {
504
- column.dicData = handleTree(data, 'dictValue', 'parentValue');
505
- } else {
506
- data.forEach((d) => {
507
- column.dicData.push(d);
508
- })
509
- }
510
- })
511
- },
512
- /**
513
- * 表格选择器回调函数
514
- * @param data
515
- */
516
- olTableSelectChange(slotName, data) {
517
- // console.info('插槽名称', slotName, '表格回传的数据', data)
518
- // console.info('表格', this.form.column)
519
- this.formData[slotName] = data.value;//修改表单数据,以便后续提交
520
- if (typeof this.dynamicSlotsField[slotName].change === 'function') {
521
- this.dynamicSlotsField[slotName].change(data.value)//字段数据更新回调
522
- }
523
- //给其他字段赋值
524
- this.dynamicSlotsOtherResult[slotName]?.forEach(item => {
525
- this.formData[item.targetField] = data.data[item.sourceField]
526
- })
527
- }
528
- },
529
- mounted() {
530
- this.$nextTick(() => {
531
- storeDict().init(this.http)
532
- })
533
- },
534
- created() {
535
- }
536
- };
537
- </script>