doway-coms 2.11.95 → 2.11.97

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 (94) hide show
  1. package/.browserslistrc +2 -2
  2. package/README.md +28 -28
  3. package/package.json +63 -63
  4. package/packages/AuditsList/index.js +7 -7
  5. package/packages/AuditsList/src/index.vue +314 -314
  6. package/packages/BaseButton/index.js +7 -7
  7. package/packages/BaseButton/src/index.vue +242 -242
  8. package/packages/BaseCheckbox/index.js +7 -7
  9. package/packages/BaseCheckbox/src/index.vue +134 -134
  10. package/packages/BaseDate/index.js +7 -7
  11. package/packages/BaseDate/src/index.vue +233 -233
  12. package/packages/BaseDateMonth/index.js +7 -7
  13. package/packages/BaseDateMonth/src/index.vue +163 -163
  14. package/packages/BaseDateWeek/index.js +7 -7
  15. package/packages/BaseDateWeek/src/index.vue +163 -163
  16. package/packages/BaseDatetime/index.js +7 -7
  17. package/packages/BaseDatetime/src/index.vue +196 -196
  18. package/packages/BaseFileGroup/index.js +7 -7
  19. package/packages/BaseFileGroup/src/index.vue +778 -778
  20. package/packages/BaseForm/index.js +7 -7
  21. package/packages/BaseForm/src/index.vue +913 -913
  22. package/packages/BaseGantt/index.js +9 -9
  23. package/packages/BaseGantt/src/index.vue +617 -617
  24. package/packages/BaseGrid/index.js +9 -9
  25. package/packages/BaseGrid/src/exportCmp.vue +105 -105
  26. package/packages/BaseGrid/src/gridApi.js +32 -32
  27. package/packages/BaseGrid/src/index.vue +4762 -4744
  28. package/packages/BaseGridAdjust/index.js +9 -9
  29. package/packages/BaseGridAdjust/src/index.vue +482 -482
  30. package/packages/BaseInput/index.js +7 -7
  31. package/packages/BaseInput/src/index.vue +207 -207
  32. package/packages/BaseIntervalInput/index.js +7 -7
  33. package/packages/BaseIntervalInput/src/index.vue +316 -316
  34. package/packages/BaseKanbanEmpty/index.js +7 -7
  35. package/packages/BaseKanbanEmpty/src/index.vue +176 -176
  36. package/packages/BaseNumberInput/index.js +7 -7
  37. package/packages/BaseNumberInput/src/index.vue +278 -278
  38. package/packages/BasePagination/index.js +7 -7
  39. package/packages/BasePagination/src/index.vue +90 -90
  40. package/packages/BasePictureCard/index.js +7 -7
  41. package/packages/BasePictureCard/src/index.vue +671 -671
  42. package/packages/BasePrintPreview/index.js +7 -7
  43. package/packages/BasePrintPreview/src/index.vue +214 -214
  44. package/packages/BasePulldown/index.js +7 -7
  45. package/packages/BasePulldown/src/index.vue +1406 -1406
  46. package/packages/BaseSearch/index.js +7 -7
  47. package/packages/BaseSearch/src/index.vue +935 -935
  48. package/packages/BaseSelect/index.js +7 -7
  49. package/packages/BaseSelect/src/index.vue +169 -169
  50. package/packages/BaseSelectMulti/index.js +7 -7
  51. package/packages/BaseSelectMulti/src/index.vue +148 -148
  52. package/packages/BaseTextArea/index.js +7 -7
  53. package/packages/BaseTextArea/src/index.vue +197 -197
  54. package/packages/BaseTime/index.js +7 -7
  55. package/packages/BaseTime/src/index.vue +166 -166
  56. package/packages/BaseTool/index.js +7 -7
  57. package/packages/BaseTool/src/index.vue +353 -353
  58. package/packages/BaseToolStatus/index.js +7 -7
  59. package/packages/BaseToolStatus/src/ApprovalPersonsGroup.vue +41 -41
  60. package/packages/BaseToolStatus/src/index.vue +439 -439
  61. package/packages/BaseTreeSelect/index.js +8 -8
  62. package/packages/BaseTreeSelect/src/index.vue +437 -437
  63. package/packages/HistoryModal/index.js +8 -8
  64. package/packages/HistoryModal/src/index.vue +161 -161
  65. package/packages/LeaveAMessage/index.js +7 -7
  66. package/packages/LeaveAMessage/src/index.vue +601 -601
  67. package/packages/directive/clickoutside.js +44 -44
  68. package/packages/index.js +197 -197
  69. package/packages/styles/default.css +78 -78
  70. package/packages/styles/default.less +91 -91
  71. package/packages/styles/hps/default.less +73 -73
  72. package/packages/utils/api.js +134 -134
  73. package/packages/utils/auth.js +38 -38
  74. package/packages/utils/common.js +728 -728
  75. package/packages/utils/dom.js +181 -181
  76. package/packages/utils/enum.js +87 -87
  77. package/packages/utils/filters.js +542 -542
  78. package/packages/utils/gridFormat.js +66 -66
  79. package/packages/utils/msg.js +105 -105
  80. package/packages/utils/patchFiles.js +44 -44
  81. package/packages/utils/request.js +181 -181
  82. package/packages/utils/store.js +405 -396
  83. package/packages/utils/tscPrinter.js +101 -101
  84. package/sync.bash +6 -6
  85. package/vue.config.js +59 -59
  86. package/dist/css/chunk-vendors.7f83d8f9.css +0 -8
  87. package/dist/css/index.7946d50b.css +0 -1
  88. package/dist/favicon.ico +0 -0
  89. package/dist/js/chunk-vendors.28fda91d.js +0 -340
  90. package/dist/js/index.49bc6add.js +0 -2
  91. package/lib/doway-coms.common.js +0 -120397
  92. package/lib/doway-coms.css +0 -1
  93. package/lib/doway-coms.umd.js +0 -120407
  94. package/lib/doway-coms.umd.min.js +0 -328
@@ -1,396 +1,405 @@
1
- import {loadViewInfo, loadLangInfo} from './api'
2
- import XEUtils from 'xe-utils'
3
- import Vue from 'vue'
4
- import Vuex from 'vuex'
5
- import {stringUrlQuery} from './common'
6
- import {controlType} from './enum'
7
-
8
- Vue.use(Vuex)
9
-
10
- export default new Vuex.Store({
11
- state: {
12
- moduleLangUrl: '',
13
- umsUrl: '',
14
- baseUrl: '',
15
- msgUrl: '',
16
- wmsUrl: '',
17
- hegitTab: 33,
18
- identityUrl: '',
19
- token: '',
20
- industryVersion: '',//行业版本
21
- custPriceNotTaxPrecision: 0,
22
- custPricePrecision: 0,
23
- supplyPriceNotTaxPrecision: 0,
24
- supplyPricePrecision: 0,
25
- isGenerateMatCode: 'false',//是否生成物料编码
26
- webAppCode: '',
27
- moduleViewInfo: {},
28
- moduleLangInfo: {},
29
- controlSize: 'small',
30
- newId: 0,//明细新增id
31
- userId: '',
32
- userName: '',
33
- staffId: '',
34
- company: {},
35
- pathTabs:[]
36
- },
37
- mutations: {
38
- SET_PATH_TABS: (state, pathTabs) => {
39
- state.pathTabs = pathTabs
40
- },
41
- SET_HEGIT_TAB: (state, hegitTab) => {
42
- state.hegitTab = hegitTab
43
- },
44
- SET_TOKEN: (state, token) => {
45
- state.token = token
46
- },
47
- SET_USERID: (state, userId) => {
48
- state.userId = userId
49
- },
50
- SET_USERNAME: (state, userName) => {
51
- state.userName = userName
52
- },
53
- SET_STAFFID: (state, staffId) => {
54
- state.staffId = staffId
55
- },
56
- SET_INDUSTRY_VERSION: (state, industryVersion) => {
57
- state.industryVersion = industryVersion
58
- },
59
- SET_IS_GENERATE_MAT_CODE: (state, isGenerateMatCode) => {
60
- state.isGenerateMatCode = isGenerateMatCode
61
- },
62
- SET_WEB_APP_CODE: (state, webAppCode) => {
63
- state.webAppCode = webAppCode
64
- },
65
- SET_MODULE_LANG_INFO: (state, data) => {
66
- state.moduleLangInfo[data.moduleCode] = data.info
67
- },
68
- SET_MODULE_VIEW_INFO: (state, data) => {
69
- let tempDataInfo = {}
70
- const tempPulldownFields = [];
71
- XEUtils.arrayEach(data.info.datas, loopData => {
72
- let tempFields = []
73
- let tempPagerButtons = []
74
- tempDataInfo[loopData.code] = {code: '', name: '', fields: []}
75
- tempDataInfo[loopData.code].code = loopData.code
76
- tempDataInfo[loopData.code].name = loopData.name
77
- tempDataInfo[loopData.code].extraInfo = loopData.extraInfo
78
- if (loopData.extraInfo && Object.keys(loopData.extraInfo).length) {
79
- tempDataInfo[loopData.code] = XEUtils.assign(
80
- loopData.extraInfo,
81
- tempDataInfo[loopData.code],
82
- );
83
- }
84
- let operationFields = []
85
- XEUtils.arrayEach(loopData.fields, loopField => {
86
-
87
- if(loopField.controlType===controlType.permission){
88
- //权限字段,无需处理
89
- return
90
- }
91
-
92
- let extraInfo = loopField.extraInfo
93
- ? JSON.parse(loopField.extraInfo)
94
- : {}
95
- let userExtraInfo = loopField.userExtraInfo
96
- ? JSON.parse(loopField.userExtraInfo)
97
- : {}
98
- extraInfo = {...extraInfo, ...userExtraInfo}
99
-
100
- if(extraInfo.permissionField){
101
- //存在权限控制字段
102
- let tempPermissionFieldInfo = XEUtils.find(loopData.fields,p=>p.code===extraInfo.permissionField)
103
- if(tempPermissionFieldInfo){
104
- //存在权限控制字段
105
- extraInfo.permissionField = tempPermissionFieldInfo
106
- }
107
- }
108
-
109
-
110
- let tempField = {
111
- field:loopField.code, // loopField.boundField,
112
- title: loopField.name,
113
- width: loopField.width,
114
- visible: !loopField.hidden,
115
- filter: loopField.isFilter,
116
- sortable: loopField.isSortable,
117
- controlType: loopField.controlType,
118
- edit: loopField.edit,
119
- sysVisible: !loopField.sysHidden,
120
- toolTip:loopField.toolTip
121
- }
122
- if (tempField.sysVisible === false) {
123
- tempField.visible = false
124
- }
125
- //页面状态控制
126
- if (loopField.editStates) {
127
- tempField['editStates'] = loopField.editStates.split(',')
128
- tempField['visibleStates'] = loopField.editStates.split(',')
129
- }
130
- //单据状态控制
131
- if (loopField.editStatuss) {
132
- tempField['editStatuss'] = loopField.editStatuss.split(',')
133
- tempField['visibleStatuss'] = loopField.editStatuss.split(',')
134
- }
135
-
136
- //存在额外参数,就赋值
137
- if (Object.keys(extraInfo).length) {
138
- if (Object.hasOwn(extraInfo, 'api')) {
139
- extraInfo['api'] = state[extraInfo['url']] + extraInfo['api']
140
- }
141
- tempField = XEUtils.assign(extraInfo, tempField)
142
- }
143
- if (tempField.controlType === controlType.select) {
144
- tempField['dataSource'] = XEUtils.filter(
145
- data.info.dictItems,
146
- p => p.dictCode === extraInfo.dataSource
147
- )
148
- }
149
- if (tempField.controlType === controlType.pulldown && tempField.linkData
150
- ) {
151
- tempPulldownFields.push(tempField);
152
- }
153
-
154
- if (tempField.controlType === controlType.pager_button) {
155
- tempPagerButtons.push(tempField)
156
- } else if (tempField.controlType === controlType.operation) {
157
- //操作按钮列
158
- // 动态加载 visibleConditional 函数 来控制操作按钮是否显示
159
- if (tempField.visibleConditional) {
160
- tempField.visibleConditional = eval(`(${tempField.visibleConditional})`);
161
- }
162
- operationFields.push(tempField)
163
-
164
- } else {
165
- tempFields.push(tempField)
166
- }
167
- })
168
-
169
- tempDataInfo[loopData.code]['pagerButtons'] = tempPagerButtons
170
- if (operationFields.length > 0) {
171
- //添加右侧按钮操作列
172
- tempFields.push({
173
- field: controlType.operation,
174
- title: '操作',
175
- width: operationFields[0].width || 100,
176
- fixed: 'right',
177
- showOverflow: true,
178
- controlType: controlType.operation,
179
- params: {
180
- columns: operationFields
181
- }
182
- })
183
- }
184
- tempDataInfo[loopData.code]['fields'] = tempFields
185
-
186
- })
187
- //批量设置下拉属性
188
- XEUtils.arrayEach(tempPulldownFields, (loopField) => {
189
- if(!tempDataInfo[loopField.linkData]){
190
- return
191
- }
192
- loopField['columns'] = tempDataInfo[loopField.linkData].fields;
193
- loopField['pageSize'] = tempDataInfo[loopField.linkData].pageSize;
194
- loopField['pageSizeOptions'] = tempDataInfo[loopField.linkData].pageSizeOptions;
195
- let tempApi = null;
196
- switch(tempDataInfo[loopField.linkData].objectService){
197
- case 'base':
198
- tempApi = process.env.VUE_APP_BASE_SERVICE_URL
199
- break;
200
- case 'mes':
201
- tempApi = process.env.VUE_APP_MES_SERVICE_URL
202
- break;
203
- case 'wms':
204
- tempApi = process.env.VUE_APP_WMS_SERVICE_URL
205
- break;
206
- case 'erp':
207
- tempApi = process.env.VUE_APP_ERP_SERVICE_URL
208
- break;
209
- default:
210
- tempApi = process.env.VUE_APP_WMS_SERVICE_URL
211
- break;
212
- }
213
- loopField['api'] = tempApi+'/v1/commonOperation/searchData';
214
- loopField['currentModuleCode'] = data.moduleCode;
215
- });
216
- data.info['dataInfo'] = tempDataInfo
217
- state.moduleViewInfo[data.moduleCode] = data.info
218
- },
219
- SET_NEW_ID: (state, id) => {
220
- state.newId = id
221
- },
222
- SET_UMS_URL: (state, url) => {
223
- state.umsUrl = url
224
- },
225
- SET_MODULE_LANG_URL: (state, url) => {
226
- state.moduleLangUrl = url
227
- },
228
- SET_BASE_URL: (state, url) => {
229
- state.baseUrl = url
230
- },
231
- SET_WMS_URL: (state, url) => {
232
- state.wmsUrl = url
233
- },
234
- SET_CUST_PRICE_NOT_TAX_PRECISION: (state, custPriceNotTaxPrecision) => {
235
- state.custPriceNotTaxPrecision = custPriceNotTaxPrecision
236
- },
237
- SET_CUST_PRICE_PRECISION: (state, custPricePrecision) => {
238
- state.custPricePrecision = custPricePrecision
239
- },
240
- SET_SUPPLY_PRICE_NOT_TAX_PRECISION: (state, supplyPriceNotTaxPrecision) => {
241
- state.supplyPriceNotTaxPrecision = supplyPriceNotTaxPrecision
242
- },
243
- SET_SUPPLY_PRICE_PRECISION: (state, supplyPricePrecision) => {
244
- state.supplyPricePrecision = supplyPricePrecision
245
- },
246
- SET_MSG_URL: (state, url) => {
247
- state.msgUrl = url
248
- },
249
- SET_IDENTITY_URL: (state, url) => {
250
- state.identityUrl = url
251
- },
252
- SET_BASE_SETTING: (state, baseSetting) => {
253
- state.baseSetting = baseSetting
254
- },
255
- SET_DEFAULT_DEP: (state, defaultDep) => {
256
- state.defaultDep = defaultDep
257
- },
258
- SET_COMPANY: (state, company) => {
259
- state.company = company
260
- },
261
- },
262
- actions: {
263
- /**
264
- * 系统登出
265
- * @param {} param0
266
- */
267
- logOut({commit}) {
268
- // alert('会话过期3');
269
- if (window.$wujie) {
270
- // alert('会话过期4');
271
- //通知主应用会员过期重新登陆
272
- window.$wujie.bus.$emit(
273
- 'subAppLoginOut', window.$wujie.props.webAppCode
274
- )
275
- }
276
- },
277
- setTabTitle({commit}, tabInfo) {
278
- //通知父应用修改Tab标签文字描述
279
- if (window.$wujie) {
280
-
281
- if (tabInfo.replaceQuery) {
282
- let newRoutePath =
283
- tabInfo.path + '?' + stringUrlQuery(tabInfo.replaceQuery)
284
- history.replaceState(null, null, (window.$wujie.props.webAppActiveRule + newRoutePath))
285
- }
286
-
287
- window.$wujie.bus.$emit('subAppSetTabTitle', {
288
- title: tabInfo.title,
289
- name: tabInfo.name,
290
- query: tabInfo.query,
291
- replaceQuery: tabInfo.replaceQuery,
292
- path: tabInfo.path
293
- })
294
- }
295
- },
296
- closeTab({commit}, fullPath) {
297
- if (window.$wujie) {
298
- window.$wujie.bus.$emit(
299
- 'subAppCloseTab',
300
- window.$wujie.props.webAppActiveRule + fullPath
301
- )
302
- }
303
- },
304
- moduleLoadViewInfo({commit, state}, dataInfo) {
305
- let vm = this
306
- return new Promise((resolve, reject) => {
307
- loadViewInfo({
308
- moduleCode: dataInfo.moduleCode,
309
- companyId: dataInfo.companyId,
310
- })
311
- .then(reponseData => {
312
- commit('SET_MODULE_VIEW_INFO', {
313
- moduleCode: dataInfo.moduleCode,
314
- info: reponseData.content
315
- })
316
- loadLangInfo(dataInfo.moduleCode, reponseData.content.moduleLangCacheHash)
317
- .then(langData => {
318
- commit('SET_MODULE_LANG_INFO', {
319
- moduleCode: dataInfo.moduleCode,
320
- info: langData.data
321
- })
322
- resolve()
323
- }).catch(() => {
324
- resolve()
325
- })
326
- })
327
- .catch(error => {
328
- reject(error)
329
- })
330
- })
331
- },
332
- // moduleLoadLangInfo({ commit, state }, dataInfo) {
333
- // let vm = this
334
- // return new Promise((resolve, reject) => {
335
- // loadLangInfo(dataInfo.moduleCode)
336
- // .then(reponseData => {
337
- // commit('SET_MODULE_LANG_INFO', {
338
- // moduleCode: dataInfo.moduleCode,
339
- // info: reponseData.data
340
- // })
341
- // resolve()
342
- // })
343
- // .catch(error => {
344
- // console.debug(error)
345
- // resolve()
346
- // })
347
- // })
348
- // },
349
- // 固定返回工作台,并根据条件决定是否关闭其余标签
350
- goWorkbench({commit}, tabsAllClose) {
351
- if (window.$wujie) {
352
- window.$wujie.bus.$emit('subAppGoWorkbench', tabsAllClose == false ? false : true)
353
- }
354
- },
355
- // 替换页面
356
- replaceTab({commit}, fullPath) {
357
- if (window.$wujie) {
358
- window.$wujie.bus.$emit(
359
- 'subAppReplaceTab',
360
- window.$wujie.props.webAppActiveRule + fullPath
361
- )
362
- }
363
- },
364
- },
365
- modules: {},
366
- getters: {
367
- custPriceNotTaxPrecision: state => state.custPriceNotTaxPrecision,
368
- custPricePrecision: state => state.custPricePrecision,
369
- supplyPriceNotTaxPrecision: state => state.supplyPriceNotTaxPrecision,
370
- supplyPricePrecision: state => state.supplyPricePrecision,
371
- industryVersion: state => state.industryVersion,
372
- isGenerateMatCode: state => state.isGenerateMatCode,
373
- umsUrl: state => state.umsUrl,
374
- moduleLangUrl: state => state.moduleLangUrl,
375
- baseUrl: state => state.baseUrl,
376
- msgUrl: state => state.msgUrl,
377
- identityUrl: state => state.identityUrl,
378
- token: state => state.token,
379
- webAppCode: state => state.webAppCode,
380
- moduleViewInfo: state => state.moduleViewInfo,
381
- moduleLangInfo: state => state.moduleLangInfo,
382
- controlSize: state => state.controlSize,
383
- hegitTab: state => state.hegitTab,
384
- newId: state => () => {
385
- state.newId = state.newId + 1
386
- return state.newId
387
- },
388
- userId: state => state.userId,
389
- userName: state => state.userName,
390
- staffId: state => state.staffId,
391
- baseSetting: state => state.baseSetting,
392
- defaultDep: state => state.defaultDep,
393
- company: state => state.company,
394
- pathTabs: state => state.pathTabs
395
- }
396
- })
1
+ import {loadViewInfo, loadLangInfo} from './api'
2
+ import XEUtils from 'xe-utils'
3
+ import Vue from 'vue'
4
+ import Vuex from 'vuex'
5
+ import {stringUrlQuery} from './common'
6
+ import {controlType} from './enum'
7
+
8
+ Vue.use(Vuex)
9
+
10
+ export default new Vuex.Store({
11
+ state: {
12
+ moduleLangUrl: '',
13
+ umsUrl: '',
14
+ baseUrl: '',
15
+ msgUrl: '',
16
+ wmsUrl: '',
17
+ hegitTab: 33,
18
+ identityUrl: '',
19
+ token: '',
20
+ industryVersion: '',//行业版本
21
+ custPriceNotTaxPrecision: 0,
22
+ custPricePrecision: 0,
23
+ supplyPriceNotTaxPrecision: 0,
24
+ supplyPricePrecision: 0,
25
+ isGenerateMatCode: 'false',//是否生成物料编码
26
+ webAppCode: '',
27
+ moduleViewInfo: {},
28
+ moduleLangInfo: {},
29
+ controlSize: 'small',
30
+ newId: 0,//明细新增id
31
+ userId: '',
32
+ userName: '',
33
+ staffId: '',
34
+ company: {},
35
+ pathTabs:[]
36
+ },
37
+ mutations: {
38
+ SET_PATH_TABS: (state, pathTabs) => {
39
+ state.pathTabs = pathTabs
40
+ },
41
+ SET_HEGIT_TAB: (state, hegitTab) => {
42
+ state.hegitTab = hegitTab
43
+ },
44
+ SET_TOKEN: (state, token) => {
45
+ state.token = token
46
+ },
47
+ SET_USERID: (state, userId) => {
48
+ state.userId = userId
49
+ },
50
+ SET_USERNAME: (state, userName) => {
51
+ state.userName = userName
52
+ },
53
+ SET_STAFFID: (state, staffId) => {
54
+ state.staffId = staffId
55
+ },
56
+ SET_INDUSTRY_VERSION: (state, industryVersion) => {
57
+ state.industryVersion = industryVersion
58
+ },
59
+ SET_IS_GENERATE_MAT_CODE: (state, isGenerateMatCode) => {
60
+ state.isGenerateMatCode = isGenerateMatCode
61
+ },
62
+ SET_WEB_APP_CODE: (state, webAppCode) => {
63
+ state.webAppCode = webAppCode
64
+ },
65
+ SET_MODULE_LANG_INFO: (state, data) => {
66
+ state.moduleLangInfo[data.moduleCode] = data.info
67
+ },
68
+ SET_MODULE_VIEW_INFO: (state, data) => {
69
+ let tempDataInfo = {}
70
+ const tempPulldownFields = [];
71
+ XEUtils.arrayEach(data.info.datas, loopData => {
72
+ let tempFields = []
73
+ let tempPagerButtons = []
74
+ tempDataInfo[loopData.code] = {code: '', name: '', fields: []}
75
+ tempDataInfo[loopData.code].code = loopData.code
76
+ tempDataInfo[loopData.code].name = loopData.name
77
+ tempDataInfo[loopData.code].extraInfo = loopData.extraInfo
78
+ if (loopData.extraInfo && Object.keys(loopData.extraInfo).length) {
79
+ tempDataInfo[loopData.code] = XEUtils.assign(
80
+ loopData.extraInfo,
81
+ tempDataInfo[loopData.code],
82
+ );
83
+ }
84
+ let operationFields = []
85
+ XEUtils.arrayEach(loopData.fields, loopField => {
86
+
87
+ if(loopField.controlType===controlType.permission){
88
+ //权限字段,无需处理
89
+ return
90
+ }
91
+
92
+ let extraInfo = loopField.extraInfo
93
+ ? JSON.parse(loopField.extraInfo)
94
+ : {}
95
+ let userExtraInfo = loopField.userExtraInfo
96
+ ? JSON.parse(loopField.userExtraInfo)
97
+ : {}
98
+ extraInfo = {...extraInfo, ...userExtraInfo}
99
+
100
+ if(extraInfo.permissionField){
101
+ //存在权限控制字段
102
+ let tempPermissionFieldInfo = XEUtils.find(loopData.fields,p=>p.code===extraInfo.permissionField)
103
+ if(tempPermissionFieldInfo){
104
+ //存在权限控制字段
105
+ extraInfo.permissionField = tempPermissionFieldInfo
106
+ }
107
+ }
108
+
109
+
110
+ let tempField = {
111
+ field:loopField.code, // loopField.boundField,
112
+ title: loopField.name,
113
+ width: loopField.width,
114
+ visible: !loopField.hidden,
115
+ filter: loopField.isFilter,
116
+ sortable: loopField.isSortable,
117
+ controlType: loopField.controlType,
118
+ edit: loopField.edit,
119
+ sysVisible: !loopField.sysHidden,
120
+ toolTip:loopField.toolTip
121
+ }
122
+ if (tempField.sysVisible === false) {
123
+ tempField.visible = false
124
+ }
125
+ //页面状态控制
126
+ if (loopField.editStates) {
127
+ tempField['editStates'] = loopField.editStates.split(',')
128
+ tempField['visibleStates'] = loopField.editStates.split(',')
129
+ }
130
+ //单据状态控制
131
+ if (loopField.editStatuss) {
132
+ tempField['editStatuss'] = loopField.editStatuss.split(',')
133
+ tempField['visibleStatuss'] = loopField.editStatuss.split(',')
134
+ }
135
+
136
+ //存在额外参数,就赋值
137
+ if (Object.keys(extraInfo).length) {
138
+ if (Object.hasOwn(extraInfo, 'api')) {
139
+ extraInfo['api'] = state[extraInfo['url']] + extraInfo['api']
140
+ }
141
+ tempField = XEUtils.assign(extraInfo, tempField)
142
+ }
143
+ if (tempField.controlType === controlType.select) {
144
+ tempField['dataSource'] = XEUtils.filter(
145
+ data.info.dictItems,
146
+ p => p.dictCode === extraInfo.dataSource
147
+ )
148
+ }
149
+ if (tempField.controlType === controlType.pulldown && tempField.linkData
150
+ ) {
151
+ tempPulldownFields.push(tempField);
152
+ }
153
+
154
+ if (tempField.controlType === controlType.pager_button) {
155
+ tempPagerButtons.push(tempField)
156
+ } else if (tempField.controlType === controlType.operation) {
157
+ //操作按钮列
158
+ // 动态加载 visibleConditional 函数 来控制操作按钮是否显示
159
+ if (tempField.visibleConditional) {
160
+ tempField.visibleConditional = eval(`(${tempField.visibleConditional})`);
161
+ }
162
+ operationFields.push(tempField)
163
+
164
+ } else {
165
+ tempFields.push(tempField)
166
+ }
167
+ })
168
+
169
+ tempDataInfo[loopData.code]['pagerButtons'] = tempPagerButtons
170
+ if (operationFields.length > 0) {
171
+ //添加右侧按钮操作列
172
+ tempFields.push({
173
+ field: controlType.operation,
174
+ title: '操作',
175
+ width: operationFields[0].width || 100,
176
+ fixed: 'right',
177
+ showOverflow: true,
178
+ controlType: controlType.operation,
179
+ params: {
180
+ columns: operationFields
181
+ }
182
+ })
183
+ }
184
+ tempDataInfo[loopData.code]['fields'] = tempFields
185
+
186
+ })
187
+ //批量设置下拉属性
188
+ XEUtils.arrayEach(tempPulldownFields, (loopField) => {
189
+ if(!tempDataInfo[loopField.linkData]){
190
+ return
191
+ }
192
+ loopField['columns'] = tempDataInfo[loopField.linkData].fields;
193
+ loopField['pageSize'] = tempDataInfo[loopField.linkData].pageSize;
194
+ loopField['pageSizeOptions'] = tempDataInfo[loopField.linkData].pageSizeOptions;
195
+ let tempApi = null;
196
+ switch(tempDataInfo[loopField.linkData].objectService){
197
+ case 'base':
198
+ tempApi = process.env.VUE_APP_BASE_SERVICE_URL
199
+ break;
200
+ case 'mes':
201
+ tempApi = process.env.VUE_APP_MES_SERVICE_URL
202
+ break;
203
+ case 'wms':
204
+ tempApi = process.env.VUE_APP_WMS_SERVICE_URL
205
+ break;
206
+ case 'erp':
207
+ tempApi = process.env.VUE_APP_ERP_SERVICE_URL
208
+ break;
209
+ default:
210
+ tempApi = process.env.VUE_APP_WMS_SERVICE_URL
211
+ break;
212
+ }
213
+ loopField['api'] = tempApi+'/v1/commonOperation/searchData';
214
+ loopField['currentModuleCode'] = data.moduleCode;
215
+ });
216
+ data.info['dataInfo'] = tempDataInfo
217
+ state.moduleViewInfo[data.moduleCode] = data.info
218
+ },
219
+ SET_NEW_ID: (state, id) => {
220
+ state.newId = id
221
+ },
222
+ SET_UMS_URL: (state, url) => {
223
+ state.umsUrl = url
224
+ },
225
+ SET_MODULE_LANG_URL: (state, url) => {
226
+ state.moduleLangUrl = url
227
+ },
228
+ SET_BASE_URL: (state, url) => {
229
+ state.baseUrl = url
230
+ },
231
+ SET_WMS_URL: (state, url) => {
232
+ state.wmsUrl = url
233
+ },
234
+ SET_CUST_PRICE_NOT_TAX_PRECISION: (state, custPriceNotTaxPrecision) => {
235
+ state.custPriceNotTaxPrecision = custPriceNotTaxPrecision
236
+ },
237
+ SET_CUST_PRICE_PRECISION: (state, custPricePrecision) => {
238
+ state.custPricePrecision = custPricePrecision
239
+ },
240
+ SET_SUPPLY_PRICE_NOT_TAX_PRECISION: (state, supplyPriceNotTaxPrecision) => {
241
+ state.supplyPriceNotTaxPrecision = supplyPriceNotTaxPrecision
242
+ },
243
+ SET_SUPPLY_PRICE_PRECISION: (state, supplyPricePrecision) => {
244
+ state.supplyPricePrecision = supplyPricePrecision
245
+ },
246
+ SET_MSG_URL: (state, url) => {
247
+ state.msgUrl = url
248
+ },
249
+ SET_IDENTITY_URL: (state, url) => {
250
+ state.identityUrl = url
251
+ },
252
+ SET_BASE_SETTING: (state, baseSetting) => {
253
+ state.baseSetting = baseSetting
254
+ },
255
+ SET_DEFAULT_DEP: (state, defaultDep) => {
256
+ state.defaultDep = defaultDep
257
+ },
258
+ SET_COMPANY: (state, company) => {
259
+ state.company = company
260
+ },
261
+ },
262
+ actions: {
263
+ /**
264
+ * 系统登出
265
+ * @param {} param0
266
+ */
267
+ logOut({commit}) {
268
+ // alert('会话过期3');
269
+ if (window.$wujie) {
270
+ // alert('会话过期4');
271
+ //通知主应用会员过期重新登陆
272
+ window.$wujie.bus.$emit(
273
+ 'subAppLoginOut', window.$wujie.props.webAppCode
274
+ )
275
+ }
276
+ },
277
+ setTabTitle({commit}, tabInfo) {
278
+ //通知父应用修改Tab标签文字描述
279
+ if (window.$wujie) {
280
+
281
+ if (tabInfo.replaceQuery) {
282
+ let newRoutePath =
283
+ tabInfo.path + '?' + stringUrlQuery(tabInfo.replaceQuery)
284
+ history.replaceState(null, null, (window.$wujie.props.webAppActiveRule + newRoutePath))
285
+ }
286
+
287
+ window.$wujie.bus.$emit('subAppSetTabTitle', {
288
+ title: tabInfo.title,
289
+ name: tabInfo.name,
290
+ query: tabInfo.query,
291
+ replaceQuery: tabInfo.replaceQuery,
292
+ path: tabInfo.path
293
+ })
294
+ }
295
+ },
296
+ closeTab({commit}, fullPath) {
297
+ if (window.$wujie) {
298
+ window.$wujie.bus.$emit(
299
+ 'subAppCloseTab',
300
+ window.$wujie.props.webAppActiveRule + fullPath
301
+ )
302
+ }
303
+ },
304
+ moduleLoadViewInfo({commit, state}, dataInfo) {
305
+ let vm = this
306
+ return new Promise((resolve, reject) => {
307
+ loadViewInfo({
308
+ moduleCode: dataInfo.moduleCode,
309
+ companyId: dataInfo.companyId,
310
+ })
311
+ .then(reponseData => {
312
+ commit('SET_MODULE_VIEW_INFO', {
313
+ moduleCode: dataInfo.moduleCode,
314
+ info: reponseData.content
315
+ })
316
+ loadLangInfo(dataInfo.moduleCode, reponseData.content.moduleLangCacheHash)
317
+ .then(langData => {
318
+ commit('SET_MODULE_LANG_INFO', {
319
+ moduleCode: dataInfo.moduleCode,
320
+ info: langData.data
321
+ })
322
+ resolve()
323
+ }).catch(() => {
324
+ resolve()
325
+ })
326
+ })
327
+ .catch(error => {
328
+ reject(error)
329
+ })
330
+ })
331
+ },
332
+ // moduleLoadLangInfo({ commit, state }, dataInfo) {
333
+ // let vm = this
334
+ // return new Promise((resolve, reject) => {
335
+ // loadLangInfo(dataInfo.moduleCode)
336
+ // .then(reponseData => {
337
+ // commit('SET_MODULE_LANG_INFO', {
338
+ // moduleCode: dataInfo.moduleCode,
339
+ // info: reponseData.data
340
+ // })
341
+ // resolve()
342
+ // })
343
+ // .catch(error => {
344
+ // console.debug(error)
345
+ // resolve()
346
+ // })
347
+ // })
348
+ // },
349
+ // 固定返回工作台,并根据条件决定是否关闭其余标签
350
+ goWorkbench({commit}, tabsAllClose) {
351
+ if (window.$wujie) {
352
+ window.$wujie.bus.$emit('subAppGoWorkbench', tabsAllClose == false ? false : true)
353
+ }
354
+ },
355
+ // 替换页面
356
+ replaceTab({commit}, fullPath) {
357
+ if (window.$wujie) {
358
+ window.$wujie.bus.$emit(
359
+ 'subAppReplaceTab',
360
+ window.$wujie.props.webAppActiveRule + fullPath
361
+ )
362
+ }
363
+ },
364
+ },
365
+ modules: {},
366
+ getters: {
367
+ custPriceNotTaxPrecision: state => state.custPriceNotTaxPrecision,
368
+ custPricePrecision: state => state.custPricePrecision,
369
+ supplyPriceNotTaxPrecision: state => state.supplyPriceNotTaxPrecision,
370
+ supplyPricePrecision: state => state.supplyPricePrecision,
371
+ industryVersion: state => state.industryVersion,
372
+ isGenerateMatCode: state => state.isGenerateMatCode,
373
+ umsUrl: state => state.umsUrl,
374
+ moduleLangUrl: state => state.moduleLangUrl,
375
+ baseUrl: state => state.baseUrl,
376
+ msgUrl: state => state.msgUrl,
377
+ identityUrl: state => state.identityUrl,
378
+ token: state => state.token,
379
+ webAppCode: state => state.webAppCode,
380
+ moduleViewInfo: state => state.moduleViewInfo,
381
+ moduleLangInfo: state => state.moduleLangInfo,
382
+ controlSize: state => state.controlSize,
383
+ hegitTab: state => state.hegitTab,
384
+ newId: state => () => {
385
+ // state.newId = state.newId + 1
386
+ if (state.newId === 0) {
387
+ // 保证在Java Integer范围内
388
+ const timestampPart = Date.now() % 1000000; // 取时间戳后6位
389
+ const randomPart = Math.floor(Math.random() * 1000);
390
+ state.newId = timestampPart * 1000 + randomPart;
391
+ // 最大值为 999999 * 1000 + 999 = 999999999 < 2147483647
392
+ } else {
393
+ state.newId = state.newId + 1;
394
+ }
395
+ return state.newId
396
+ },
397
+ userId: state => state.userId,
398
+ userName: state => state.userName,
399
+ staffId: state => state.staffId,
400
+ baseSetting: state => state.baseSetting,
401
+ defaultDep: state => state.defaultDep,
402
+ company: state => state.company,
403
+ pathTabs: state => state.pathTabs
404
+ }
405
+ })