imatrix-ui 0.2.0-up → 0.2.2-up

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 (213) hide show
  1. package/README.md +7 -7
  2. package/index.html +13 -13
  3. package/lib/super-ui.css +1 -1
  4. package/lib/super-ui.js +787 -366
  5. package/lib/super-ui.umd.cjs +18 -18
  6. package/package.json +34 -34
  7. package/packages/IntervalSelection/index.js +6 -6
  8. package/packages/IntervalSelection/src/quarterScope.vue +405 -405
  9. package/packages/IntervalSelection/src/sectionDate.vue +475 -475
  10. package/packages/breadcrumb/index.js +6 -6
  11. package/packages/breadcrumb/src/breadcrumb.vue +81 -81
  12. package/packages/department-tree/index.js +6 -6
  13. package/packages/department-tree/src/department-tree.vue +113 -113
  14. package/packages/department-tree-inline/index.js +6 -6
  15. package/packages/department-tree-inline/src/department-multi-tree-inline.vue +472 -472
  16. package/packages/department-tree-inline/src/department-single-tree-inline.vue +340 -340
  17. package/packages/department-tree-inline/src/department-tree-inline.vue +86 -86
  18. package/packages/department-tree-inline/src/department-tree-service.js +344 -344
  19. package/packages/department-tree-inline/src/search-result.vue +235 -235
  20. package/packages/department-user-tree/index.js +6 -6
  21. package/packages/department-user-tree/src/department-user-multiple-tree.vue +129 -129
  22. package/packages/department-user-tree/src/department-user-single-tree.vue +94 -94
  23. package/packages/department-user-tree/src/department-user-tree.vue +114 -114
  24. package/packages/department-user-tree-inline/index.js +9 -9
  25. package/packages/department-user-tree-inline/src/department-user-multiple-tree-inline.vue +731 -731
  26. package/packages/department-user-tree-inline/src/department-user-single-tree-inline.vue +334 -334
  27. package/packages/department-user-tree-inline/src/department-user-tree-inline.vue +87 -87
  28. package/packages/department-user-tree-inline/src/department-user-tree-multi-service.js +309 -309
  29. package/packages/department-user-tree-inline/src/department-user-tree-single-service.js +179 -179
  30. package/packages/department-user-tree-inline/src/search-result.vue +273 -273
  31. package/packages/directives/prevent-reclick.js +22 -22
  32. package/packages/dynamic-source-select/index.js +6 -6
  33. package/packages/dynamic-source-select/src/dynamic-source-select-service.js +106 -106
  34. package/packages/dynamic-source-select/src/dynamic-source-select.vue +675 -675
  35. package/packages/dynamic-source-select/src/events.js +78 -78
  36. package/packages/fs-preview/index.js +6 -6
  37. package/packages/fs-preview/src/fs-preview.vue +287 -287
  38. package/packages/fs-upload/index.js +6 -6
  39. package/packages/fs-upload/src/fs-upload-multi.vue +443 -443
  40. package/packages/fs-upload/src/fs-upload-single.vue +350 -350
  41. package/packages/fs-upload/src/fs-upload.vue +191 -191
  42. package/packages/fs-upload/src/see-big-picture.vue +67 -67
  43. package/packages/fs-upload-list/index.js +6 -6
  44. package/packages/fs-upload-list/src/fs-upload-list.vue +372 -372
  45. package/packages/hamburger/index.js +6 -6
  46. package/packages/hamburger/src/hamburger.vue +40 -40
  47. package/packages/index.js +125 -123
  48. package/packages/multipart-upload/index.js +6 -6
  49. package/packages/multipart-upload/src/index.vue +66 -66
  50. package/packages/multipart-upload/src/multipart-upload-form.vue +377 -377
  51. package/packages/multipart-upload/src/multipart-upload-list.vue +517 -517
  52. package/packages/organization-input/index.js +6 -6
  53. package/packages/organization-input/src/organization-input.vue +583 -587
  54. package/packages/plugins/export-data-new.js +623 -623
  55. package/packages/plugins/export-data.js +431 -431
  56. package/packages/plugins/index.js +15 -15
  57. package/packages/plugins/public-method.js +47 -47
  58. package/packages/remove-department/index.js +6 -6
  59. package/packages/remove-department/src/remove-department.vue +200 -200
  60. package/packages/remove-department/src/remove-dept-service.js +31 -31
  61. package/packages/remove-user/index.js +6 -6
  62. package/packages/remove-user/src/remove-user-service.js +31 -31
  63. package/packages/remove-user/src/remove-user.vue +226 -226
  64. package/packages/remove-workgroup/index.js +6 -6
  65. package/packages/remove-workgroup/src/remove-workgroup-service.js +31 -31
  66. package/packages/remove-workgroup/src/remove-workgroup.vue +183 -183
  67. package/packages/rich-editor/index.js +7 -7
  68. package/packages/rich-editor/index.vue +297 -297
  69. package/packages/rich-editor/langs/zh-Hans.js +438 -438
  70. package/packages/rich-editor/viewer.vue +105 -105
  71. package/packages/scan-code-input/index.js +6 -6
  72. package/packages/scan-code-input/src/events.js +34 -34
  73. package/packages/scan-code-input/src/scan-code-input-colse.vue +140 -140
  74. package/packages/scan-code-input/src/scan-code-input.vue +132 -132
  75. package/packages/secret-info/index.js +7 -7
  76. package/packages/secret-info/index.vue +100 -100
  77. package/packages/super-grid/index.js +7 -7
  78. package/packages/super-grid/src/apis.js +1092 -1092
  79. package/packages/super-grid/src/columns-config.vue +427 -427
  80. package/packages/super-grid/src/custom-formatter.js +388 -388
  81. package/packages/super-grid/src/eventBus.js +2 -2
  82. package/packages/super-grid/src/events.js +56 -56
  83. package/packages/super-grid/src/formValidatorUtil.js +300 -300
  84. package/packages/super-grid/src/formatter.js +196 -196
  85. package/packages/super-grid/src/group-column.vue +99 -99
  86. package/packages/super-grid/src/header-context-menu.vue +82 -82
  87. package/packages/super-grid/src/index-column.vue +69 -69
  88. package/packages/super-grid/src/normal-column.vue +1221 -1221
  89. package/packages/super-grid/src/public-methods.js +30 -30
  90. package/packages/super-grid/src/row-operation.vue +193 -193
  91. package/packages/super-grid/src/search-button.vue +74 -74
  92. package/packages/super-grid/src/search-condition-input.vue +73 -73
  93. package/packages/super-grid/src/search-condition-list.vue +68 -68
  94. package/packages/super-grid/src/search-form-advancedQuery.vue +819 -826
  95. package/packages/super-grid/src/search-form-dialog.vue +77 -77
  96. package/packages/super-grid/src/search-form-item.vue +495 -495
  97. package/packages/super-grid/src/search-form-number.vue +111 -111
  98. package/packages/super-grid/src/search-form-open.vue +167 -159
  99. package/packages/super-grid/src/search-form-ordinarySearch.vue +239 -233
  100. package/packages/super-grid/src/search-form.vue +762 -765
  101. package/packages/super-grid/src/search-methods.js +592 -592
  102. package/packages/super-grid/src/selection-column.vue +46 -46
  103. package/packages/super-grid/src/super-grid-service.js +728 -728
  104. package/packages/super-grid/src/super-grid.vue +3009 -3009
  105. package/packages/super-grid/src/utils.js +880 -880
  106. package/packages/super-grid/src/view-image-dialog.vue +176 -176
  107. package/packages/super-nine-grid/index.js +7 -7
  108. package/packages/super-nine-grid/src/apis.js +108 -108
  109. package/packages/super-nine-grid/src/custom-formatter.js +73 -73
  110. package/packages/super-nine-grid/src/formatter.js +134 -134
  111. package/packages/super-nine-grid/src/search-form-number.vue +35 -35
  112. package/packages/super-nine-grid/src/search-form.vue +700 -703
  113. package/packages/super-nine-grid/src/search-methods.js +151 -151
  114. package/packages/super-nine-grid/src/super-grid-service.js +107 -107
  115. package/packages/super-nine-grid/src/super-nine-grid.vue +1164 -1164
  116. package/packages/super-nine-grid/src/utils.js +264 -264
  117. package/packages/svg-icon/index.js +6 -6
  118. package/packages/svg-icon/src/svg-icon.vue +43 -43
  119. package/packages/utils/date-util.js +292 -292
  120. package/packages/utils/dom.js +227 -227
  121. package/packages/utils/gogocodeTransfer.js +59 -59
  122. package/packages/utils/memory-cache-utils.js +117 -117
  123. package/packages/utils/utils.js +180 -180
  124. package/packages/utils/value-set.js +97 -97
  125. package/packages/valid-code/index.js +7 -7
  126. package/packages/valid-code/src/valid-code.vue +104 -104
  127. package/packages/workflow-button/index.js +6 -6
  128. package/packages/workflow-button/src/workflow-button.vue +550 -550
  129. package/packages/workflow-history-list/index.js +6 -6
  130. package/packages/workflow-history-list/src/api.js +7 -7
  131. package/packages/workflow-history-list/src/workflow-history-list.vue +291 -291
  132. package/packages/workgroup-tree/index.js +6 -6
  133. package/packages/workgroup-tree/src/workgroup-tree.vue +86 -86
  134. package/packages/workgroup-tree-inline/index.js +6 -6
  135. package/packages/workgroup-tree-inline/src/search-result.vue +222 -222
  136. package/packages/workgroup-tree-inline/src/workgroup-tree-inline.vue +516 -516
  137. package/packages/workgroup-tree-inline/src/workgroup-tree-service.js +93 -93
  138. package/packages/workgroup-user-tree/index.js +6 -6
  139. package/packages/workgroup-user-tree/src/workgroup-user-tree.vue +103 -103
  140. package/packages/workgroup-user-tree-inline/index.js +9 -9
  141. package/packages/workgroup-user-tree-inline/src/search-result.vue +266 -266
  142. package/packages/workgroup-user-tree-inline/src/workgroup-tree-inline-service.js +239 -239
  143. package/packages/workgroup-user-tree-inline/src/workgroup-user-tree-inline.vue +657 -657
  144. package/packages/year-range-picker/index.js +6 -6
  145. package/packages/year-range-picker/src/year-range-picker.vue +53 -53
  146. package/src/api/sso-service.js +172 -172
  147. package/src/api/tab.js +36 -36
  148. package/src/api/user-service.js +11 -11
  149. package/src/directives/permission/index.js +13 -13
  150. package/src/directives/permission/permission.js +20 -20
  151. package/src/i18n/langs/cn.js +259 -259
  152. package/src/i18n/langs/en.js +269 -269
  153. package/src/index.js +93 -93
  154. package/src/permission.js +160 -158
  155. package/src/plugins.js +18 -18
  156. package/src/router/index.js +110 -116
  157. package/src/store/getters.js +15 -15
  158. package/src/store/index.js +19 -19
  159. package/src/store/modules/app.js +54 -54
  160. package/src/store/modules/permission.js +145 -145
  161. package/src/store/modules/tab-content.js +36 -36
  162. package/src/store/modules/user.js +285 -285
  163. package/src/utils/auth-api.js +159 -159
  164. package/src/utils/calculator/calculator-factory-wf.js +558 -558
  165. package/src/utils/calculator/calculator-factory.js +145 -145
  166. package/src/utils/calculator/calculator-util.js +166 -166
  167. package/src/utils/eventBus.js +2 -2
  168. package/src/utils/iconUtils.js +28 -28
  169. package/src/utils/index.js +102 -102
  170. package/src/utils/jump-page-utils.js +824 -824
  171. package/src/utils/local-storage.js +7 -7
  172. package/src/utils/permission.js +31 -31
  173. package/src/utils/permissionAuth.js +96 -96
  174. package/src/utils/range-selector.js +188 -188
  175. package/src/utils/request.js +269 -269
  176. package/src/utils/restful-interface-utils.js +57 -57
  177. package/src/utils/util.js +698 -698
  178. package/src/utils/validate.js +34 -34
  179. package/src/utils/watermark.js +108 -108
  180. package/src/utils/workflow-util.js +93 -93
  181. package/src/views/404.vue +248 -248
  182. package/src/views/dsc-component/Sidebar/Item.vue +84 -84
  183. package/src/views/dsc-component/Sidebar/Link.vue +38 -38
  184. package/src/views/dsc-component/Sidebar/SidebarItem.vue +198 -198
  185. package/src/views/dsc-component/Sidebar/index.vue +228 -228
  186. package/src/views/dsc-component/tabs/tab-content.vue +203 -203
  187. package/src/views/error-page/401.vue +106 -106
  188. package/src/views/error-page/404.vue +248 -248
  189. package/src/views/layout/EmptyLayout.vue +3 -3
  190. package/src/views/layout/Layout.vue +81 -81
  191. package/src/views/layout/NewLayout.vue +18 -18
  192. package/src/views/layout/components/AppMain.vue +39 -39
  193. package/src/views/layout/components/Breadcrumb/index.vue +156 -156
  194. package/src/views/layout/components/Menubar/Item.vue +79 -79
  195. package/src/views/layout/components/Menubar/Link.vue +38 -38
  196. package/src/views/layout/components/Menubar/SidebarItem.vue +164 -164
  197. package/src/views/layout/components/Menubar/index.vue +210 -210
  198. package/src/views/layout/components/Sidebar/Item.vue +53 -53
  199. package/src/views/layout/components/Sidebar/Link.vue +38 -38
  200. package/src/views/layout/components/Sidebar/SidebarItem.vue +135 -135
  201. package/src/views/layout/components/Sidebar/index.vue +141 -141
  202. package/src/views/layout/components/iframe-page.vue +38 -38
  203. package/src/views/layout/components/index.js +4 -4
  204. package/src/views/layout/components/tabs/tab-content.vue +207 -207
  205. package/src/views/layout/mixin/ResizeHandler.js +41 -41
  206. package/src/views/layout/tab-content-iframe-index.vue +38 -38
  207. package/src/views/layout/tab-content-index.vue +93 -93
  208. package/src/views/login/authredirect.vue +10 -10
  209. package/src/views/login/index.vue +296 -296
  210. package/src/views/login/update-password.vue +243 -243
  211. package/src/views/redirect/index.vue +14 -14
  212. package/src/views/wf-history/tache-subprocess-history.vue +45 -45
  213. package/.vscode/extensions.json +0 -3
@@ -1,824 +1,824 @@
1
- import * as Vue from 'vue'
2
- import {
3
- analysisCondition,
4
- analysisValue,
5
- getEntityFieldValue,
6
- setEntityFieldValue,
7
- } from './util'
8
- import { getSystemFrontendUrl } from './common-util'
9
- // 解析初始化条件,api方法;additionalParamMap是上个页面传过来的附加参数集合
10
- export function initialization(
11
- jumpPage,
12
- entity,
13
- isSql,
14
- additionalParamerter,
15
- contextParameter,
16
- tableName,
17
- parentFormData
18
- ) {
19
- const result = {}
20
- if (jumpPage) {
21
- // 页面附加参数
22
- result.visible = true
23
- let additionalParameterMap = {}
24
- if (
25
- additionalParamerter &&
26
- typeof additionalParamerter === 'string' &&
27
- additionalParamerter !== ''
28
- ) {
29
- additionalParameterMap = JSON.parse(additionalParamerter)
30
- } else if (
31
- additionalParamerter &&
32
- typeof additionalParamerter === 'object'
33
- ) {
34
- additionalParameterMap = additionalParamerter
35
- }
36
- // 环境变量,例如:当前用户id、当前用户登录名等
37
- let contextParameterMap = {}
38
- if (
39
- contextParameter &&
40
- typeof contextParameter === 'string' &&
41
- contextParameter !== ''
42
- ) {
43
- contextParameterMap = JSON.parse(contextParameter)
44
- } else if (contextParameter && typeof contextParameter === 'object') {
45
- contextParameterMap = contextParameter
46
- }
47
- if (jumpPage.displayTextJudge) {
48
- // 例如:${obj.menu_code}-#-#${input.---}-#-#${context.currentTransactor}
49
- const label = analysisValue(
50
- jumpPage.displayText,
51
- entity,
52
- additionalParameterMap,
53
- contextParameterMap
54
- )
55
- result.label = label
56
- }
57
- if (jumpPage.icon) {
58
- result.icon = jumpPage.icon
59
- }
60
- if (jumpPage.linkTips) {
61
- result.title = jumpPage.linkTips
62
- }
63
- if (jumpPage.buttonDisplayConditionsList) {
64
- let displayJudgment = ''
65
- if (jumpPage.buttonDisplayConditionsList) {
66
- displayJudgment = JSON.stringify(jumpPage.buttonDisplayConditionsList)
67
- }
68
- if (displayJudgment && displayJudgment !== '') {
69
- const visible = analysisCondition(
70
- displayJudgment,
71
- entity,
72
- additionalParameterMap,
73
- contextParameterMap,
74
- isSql,
75
- tableName,
76
- parentFormData
77
- )
78
- result.visible = visible
79
- }
80
- }
81
- }
82
- return result
83
- }
84
-
85
- /**
86
- * 弹框方法
87
- * @param {*} pageSetting 格式为:
88
- * {
89
- * jumpPageSetting:{
90
- * jumpPageUrl:'弹出的页面编码或路径',
91
- * jumpPageAdditional:{附加参数},
92
- * isNeedId:true/false 是否拼接id参数默认是true,
93
- * jumpPageOpenMode:'popup/newTab/refresh 页面显示方式'
94
- * jumpPageWidth: '500弹框宽度',
95
- * jumpPageHeight: '600弹框高度'
96
- * },
97
- * system:{frontendUrl:'http://localhost:8080/dsc',code:xxx},
98
- * dataId: 1,
99
- * entity:{业务实体信息},
100
- * additionalParamMap:{上个页面传过来的附加参数},
101
- * ids:[1,2],
102
- * parentFormData: {父表单实体,用于解析${parent.xxx}参数}
103
- * }
104
- */
105
- export function openPage(pageSetting) {
106
- if (pageSetting) {
107
- const jumpPageSetting = pageSetting.jumpPageSetting
108
- const system = pageSetting.system
109
- const dataId = pageSetting.dataId
110
- const ids = pageSetting.ids
111
- const buttonCode = pageSetting.buttonCode
112
- // 上个页面传过来的附加参数
113
- const additionalParamMap = pageSetting.additionalParamMap
114
- const entity = pageSetting.entity
115
- const parentFormData = pageSetting.parentFormData
116
- jumpToPage(
117
- jumpPageSetting,
118
- system,
119
- dataId,
120
- entity,
121
- additionalParamMap,
122
- ids,
123
- buttonCode,
124
- parentFormData
125
- ).then((openPageParams) => {
126
- let jumpMode
127
- if (openPageParams) {
128
- jumpMode = openPageParams.jumpMode
129
- }
130
- if (openPageParams) {
131
- const popPageSetting = openPageParams
132
- const path = popPageSetting._path
133
- if (jumpMode === 'popup') {
134
- let jumpPageWidth
135
- let jumpPageHeight
136
-
137
- if (openPageParams.jumpPageWidth) {
138
- jumpPageWidth = openPageParams.jumpPageWidth
139
- } else {
140
- jumpPageWidth = window.innerWidth - 150
141
- }
142
-
143
- if (openPageParams.jumpPageHeight) {
144
- jumpPageHeight = openPageParams.jumpPageHeight
145
- } else {
146
- jumpPageHeight = window.innerHeight - 150
147
- }
148
- // 弹出页面
149
- window.open(
150
- path,
151
- '',
152
- `height=` +
153
- jumpPageHeight +
154
- `,width=` +
155
- jumpPageWidth +
156
- `,top=100,left=100,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no`
157
- )
158
- } else if (jumpMode === 'refresh') {
159
- window.location.href = path
160
- }
161
- }
162
- })
163
- }
164
- }
165
-
166
- // 附加参数中是否设值了ID参数。如果添加了id参数,则不需要自动添加dataId参数
167
- function isHasIdAdditionalParam(jumpPageAdditional) {
168
- if (jumpPageAdditional && jumpPageAdditional.length > 0) {
169
- for (let i = 0; i < jumpPageAdditional.length; i++) {
170
- const item = jumpPageAdditional[i]
171
- if (
172
- item.paramName &&
173
- (item.paramName === 'id' || item.paramName === 'ID')
174
- ) {
175
- return true
176
- }
177
- }
178
- }
179
- }
180
-
181
- // 页面跳转处理,api方法;additionalParamMap是上个页面传过来的附加参数集合;
182
- // isFromChart 是否是从chart方面来,如果是,则弹窗和刷新页面都用winows方式打开
183
- export function jumpToPage(
184
- jumpPageSetting,
185
- system,
186
- dataId,
187
- entity,
188
- additionalParamMap,
189
- ids,
190
- buttonCode,
191
- parentFormData
192
- ) {
193
- return new Promise((resolve, reject) => {
194
- if (
195
- jumpPageSetting &&
196
- typeof jumpPageSetting === 'string' &&
197
- jumpPageSetting !== ''
198
- ) {
199
- jumpPageSetting = JSON.parse(jumpPageSetting)
200
- }
201
- if (!jumpPageSetting.jumpPageUrl) {
202
- resolve()
203
- }
204
- getSystem(system, jumpPageSetting.jumpPageUrl)
205
- .then((system) => {
206
- if (
207
- jumpPageSetting.jumpPageAdditional &&
208
- jumpPageSetting.jumpPageAdditional.length > 0
209
- ) {
210
- // 发送请求,获取附加参数,并存入缓存
211
- const paramPath =
212
- window.$vueApp.config.globalProperties.baseAPI +
213
- '/component/super-pages/parsing-additional-parameters'
214
- const paramMap = {}
215
- paramMap.jumpPageAdditional = JSON.stringify(
216
- jumpPageSetting.jumpPageAdditional
217
- )
218
- // 表单页面
219
- paramMap.entity = entity
220
- paramMap.additionalParamMap = additionalParamMap
221
- console.log('paramMap.parentFormData', parentFormData)
222
- paramMap.parentFormData = parentFormData
223
- const isHasIdParam = isHasIdAdditionalParam(
224
- jumpPageSetting.jumpPageAdditional
225
- )
226
-
227
- window.$vueApp.config.globalProperties.$http
228
- .post(paramPath, paramMap)
229
- .then((result) => {
230
- let paramStoreId = ''
231
- if (result && result.uuid) {
232
- paramStoreId = result.uuid + '_additionalParamMap'
233
- window.sessionStorage.setItem(
234
- paramStoreId,
235
- JSON.stringify(result.paramMap)
236
- )
237
- }
238
- jumpPageSetting.paramStoreId = paramStoreId
239
- // 存入缓存
240
- jumpToPageTwo(
241
- jumpPageSetting,
242
- system,
243
- dataId,
244
- ids,
245
- buttonCode,
246
- isHasIdParam
247
- ).then((openPageParams) => {
248
- // openPageParams:xxx弹框打开页面时需要的参数 或 刷新页面时路由查询参数
249
- resolve(openPageParams)
250
- })
251
- })
252
- } else {
253
- jumpToPageTwo(
254
- jumpPageSetting,
255
- system,
256
- dataId,
257
- ids,
258
- buttonCode,
259
- false
260
- ).then((openPageParams) => {
261
- // openPageParams:xxx弹框打开页面时需要的参数 或 刷新页面时路由查询参数
262
- resolve(openPageParams)
263
- })
264
- }
265
- })
266
- .catch((error) => {
267
- console.log(error)
268
- reject(error)
269
- })
270
- })
271
- }
272
-
273
- function getSystem(system, jumpPageUrl) {
274
- return new Promise((resolve, reject) => {
275
- if (isFullPath(jumpPageUrl)) {
276
- resolve(null)
277
- } else {
278
- if (!system || system === null) {
279
- if (jumpPageUrl.indexOf('page:') === 0) {
280
- const pageCode = jumpPageUrl.substring(
281
- jumpPageUrl.indexOf('page:') + 'page:'.length
282
- )
283
- const path =
284
- window.$vueApp.config.globalProperties.baseAPI +
285
- '/component/business-systems/with-page-codes/' +
286
- pageCode
287
- window.$vueApp.config.globalProperties.$http
288
- .get(path)
289
- .then((data) => {
290
- resolve(data)
291
- })
292
- .catch((error) => {
293
- reject(error)
294
- })
295
- } else {
296
- // 则根据当前系统编码获得系统
297
- let systemCode = window.$vueApp.config.globalProperties.customSystem
298
- if (!systemCode) {
299
- systemCode = window.$vueApp.config.globalProperties.systemCode
300
- }
301
- const path =
302
- window.$vueApp.config.globalProperties.baseAPI +
303
- '/component/business-systems/' +
304
- systemCode
305
- window.$vueApp.config.globalProperties.$http
306
- .get(path)
307
- .then((data) => {
308
- resolve(data)
309
- })
310
- .catch((error) => {
311
- reject(error)
312
- })
313
- }
314
- } else {
315
- resolve(system)
316
- }
317
- }
318
- })
319
- }
320
-
321
- // 表示是全路径
322
- function isFullPath(path) {
323
- return path.indexOf('http:') === 0 || path.indexOf('https:') === 0
324
- }
325
- // 正式跳转
326
- function jumpToPageTwo(
327
- jumpPageSetting,
328
- system,
329
- dataId,
330
- ids,
331
- buttonCode,
332
- isHasIdParam
333
- ) {
334
- return new Promise((resolve, reject) => {
335
- const jumpPageUrl = jumpPageSetting.jumpPageUrl
336
- if (!jumpPageUrl) {
337
- return
338
- }
339
- if (jumpPageUrl.indexOf('page:') === 0) {
340
- // 表示是自定义系统跳转页面编码
341
- jumpWithSuperPage(
342
- jumpPageUrl,
343
- system,
344
- dataId,
345
- jumpPageSetting,
346
- ids,
347
- buttonCode,
348
- isHasIdParam
349
- ).then((openPageParams) => {
350
- resolve(openPageParams)
351
- })
352
- } else {
353
- const additionalParameterStr = analysisAdditionalParameter(
354
- jumpPageSetting.paramStoreId
355
- )
356
- // 表示是路径,格式如:http://www.baidu.com 或 http://localhost:9600/demo/#/demo/plan/list 或 /demo/plan/list
357
- let path = jumpPageUrl
358
- if (jumpPageUrl.indexOf('path:') >= 0) {
359
- // 兼容历史数据
360
- path = jumpPageUrl.substring(
361
- jumpPageUrl.indexOf('path:') + 'path:'.length
362
- )
363
- }
364
- if (isFullPath(path)) {
365
- // 表示是全路径,例如:http://www.baidu.com 或 http://localhost:9600/demo/#/demo/plan/list
366
- } else if (system) {
367
- // 表示是路由路径,例如:/demo/plan/list
368
- const frontendUrl = getSystemFrontendUrl(system.frontendUrl)
369
- path = frontendUrl + '/#' + path
370
- }
371
- const systemName = getSystemNameWithLanguage(system)
372
- jumpToPageWithFullPath(
373
- dataId,
374
- path,
375
- additionalParameterStr,
376
- jumpPageSetting,
377
- ids,
378
- buttonCode,
379
- isHasIdParam,
380
- systemName
381
- )
382
- resolve()
383
- }
384
- })
385
- }
386
- /**
387
- * 全路径时跳转页面处理
388
- * @param {*} dataId
389
- * @param {*} path
390
- * @param {*} additionalParameterStr
391
- * @param {*} jumpPage
392
- */
393
- function jumpToPageWithFullPath(
394
- dataId,
395
- path,
396
- additionalParameterStr,
397
- jumpPage,
398
- ids,
399
- buttonCode,
400
- isHasIdParam,
401
- systemName
402
- ) {
403
- path = packagePathParams(
404
- dataId,
405
- path,
406
- jumpPage,
407
- ids,
408
- buttonCode,
409
- isHasIdParam
410
- )
411
- // 保持这种情况参数传递,是为了解决不同域时获得不到window.sessionStorage中存的附加参数问题
412
- if (additionalParameterStr && additionalParameterStr !== '') {
413
- let systemNameParam = ''
414
- if (systemName) {
415
- systemNameParam = '&_systemName_=' + encodeURI(systemName)
416
- }
417
- if (path.indexOf('?') !== -1) {
418
- path += '&'
419
- path += additionalParameterStr + systemNameParam
420
- } else {
421
- path += '?'
422
- path += additionalParameterStr + systemNameParam
423
- }
424
- }
425
- let jumpMode = 'refresh'
426
- if (jumpPage) {
427
- if (jumpPage.jumpPageOpenMode) {
428
- jumpMode = jumpPage.jumpPageOpenMode
429
- }
430
- }
431
- if (jumpMode === 'popup') {
432
- // 弹框
433
- let jumpPageWidth
434
- let jumpPageHeight
435
-
436
- if (jumpPage.jumpPageWidth) {
437
- jumpPageWidth = jumpPage.jumpPageWidth
438
- } else {
439
- jumpPageWidth = window.innerWidth - 150
440
- }
441
-
442
- if (jumpPage.jumpPageHeight) {
443
- jumpPageHeight = jumpPage.jumpPageHeight
444
- } else {
445
- jumpPageHeight = window.innerHeight - 150
446
- }
447
- const features =
448
- 'height=' +
449
- jumpPageHeight +
450
- ', width=' +
451
- jumpPageWidth +
452
- ', top=0, left=0, toolbar=no, menubar=no,' +
453
- 'scrollbars=no,resizable=no, location=no, status=no' // 设置新窗口的特性
454
- window.open(path, 'newW', features) // 打开新窗口
455
- } else if (jumpMode === 'newTab') {
456
- // 新页签
457
- window.open(path)
458
- } else {
459
- // 刷新页面
460
- location.href = path
461
- }
462
- }
463
-
464
- // path封装参数
465
- function packagePathParams(
466
- dataId,
467
- path,
468
- jumpPage,
469
- ids,
470
- buttonCode,
471
- isHasIdParam
472
- ) {
473
- if (
474
- jumpPage.isNeedId === undefined ||
475
- jumpPage.isNeedId === null ||
476
- jumpPage.isNeedId === true
477
- ) {
478
- if (!isHasIdParam && dataId) {
479
- // 表示是修改或查看页面,封装id参数
480
- let paramSeparator = '?'
481
- if (path.indexOf('?') > 0) {
482
- paramSeparator = '&'
483
- }
484
- path = path + paramSeparator + 'id=' + dataId
485
- }
486
- }
487
- // window.sessionStorage中存储附加参数的key
488
- const paramStoreId = jumpPage.paramStoreId
489
- if (paramStoreId && paramStoreId !== '') {
490
- const paramStoreIdParam = 'paramStoreId=' + paramStoreId
491
- if (path.indexOf('?') !== -1) {
492
- path += '&'
493
- path += paramStoreIdParam
494
- } else {
495
- path += '?'
496
- path += paramStoreIdParam
497
- }
498
- }
499
- if (ids && ids.length > 0) {
500
- const idsStr = ids.join(',')
501
- const idsPath = 'ids=' + idsStr + '&_idsStr=' + idsStr
502
- if (path.indexOf('?') !== -1) {
503
- path += '&'
504
- path += idsPath
505
- } else {
506
- path += '?'
507
- path += idsPath
508
- }
509
- }
510
- if (buttonCode) {
511
- if (path.indexOf('?') !== -1) {
512
- path += '&buttonCode=' + buttonCode
513
- } else {
514
- path += '?buttonCode=' + buttonCode
515
- }
516
- }
517
- return path
518
- }
519
-
520
- function getPageCode(jumpPageUrl) {
521
- let pageCode
522
- if (jumpPageUrl && jumpPageUrl.indexOf('page:') !== -1) {
523
- pageCode = jumpPageUrl.substring(
524
- jumpPageUrl.indexOf('page:') + 'page:'.length
525
- )
526
- }
527
- return pageCode
528
- }
529
- // 使用页面组件内部调整
530
- function jumpWithSuperPage(
531
- jumpPageUrl,
532
- system,
533
- dataId,
534
- jumpPageSetting,
535
- ids,
536
- buttonCode,
537
- isHasIdParam
538
- ) {
539
- return new Promise((resolve, reject) => {
540
- // 表示是自定义系统跳转页面编码
541
- console.log(
542
- '----jumpWithSuperPage---',
543
- jumpPageUrl,
544
- system,
545
- dataId,
546
- jumpPageSetting
547
- )
548
- const pageCode = getPageCode(jumpPageUrl)
549
- let jumpMode = 'refresh'
550
- if (jumpPageSetting) {
551
- if (jumpPageSetting.jumpPageOpenMode) {
552
- jumpMode = jumpPageSetting.jumpPageOpenMode
553
- }
554
- }
555
- const jumpJsonData = {
556
- jumpMode: jumpMode,
557
- }
558
- window.sessionStorage.setItem(
559
- pageCode + '-jumpMode',
560
- JSON.stringify(jumpJsonData)
561
- )
562
- if (jumpMode === 'popup') {
563
- const path = packageOpenUrl(
564
- system,
565
- pageCode,
566
- dataId,
567
- jumpPageSetting,
568
- jumpMode,
569
- ids,
570
- buttonCode,
571
- isHasIdParam
572
- )
573
- // 页面布局中的按钮打开
574
- const popPageSetting = openDialogWhenPopup(
575
- jumpPageSetting,
576
- system,
577
- pageCode,
578
- dataId,
579
- jumpMode,
580
- ids,
581
- buttonCode
582
- )
583
- popPageSetting._path = path
584
- resolve(popPageSetting)
585
- } else if (jumpMode === 'newTab') {
586
- // 新页签打开
587
- const path =
588
- packageOpenUrl(
589
- system,
590
- pageCode,
591
- dataId,
592
- jumpPageSetting,
593
- jumpMode,
594
- ids,
595
- buttonCode,
596
- isHasIdParam
597
- ) +
598
- '&_t_=' +
599
- new Date().getTime()
600
- window.open(path)
601
- resolve()
602
- } else {
603
- // 刷新页面
604
- const queryParam = {
605
- pageCode: pageCode,
606
- customSystem: system.code,
607
- jumpMode: jumpMode,
608
- buttonCode: buttonCode,
609
- ids: ids ? ids.join(',') : '',
610
- }
611
- if (
612
- jumpPageSetting.isNeedId === undefined ||
613
- jumpPageSetting.isNeedId === null ||
614
- jumpPageSetting.isNeedId === true
615
- ) {
616
- if (!isHasIdParam && dataId) {
617
- // 表示是修改或查看页面,封装id参数
618
- queryParam.id = dataId
619
- }
620
- }
621
- const paramStoreId = jumpPageSetting.paramStoreId
622
- if (paramStoreId && paramStoreId !== '') {
623
- queryParam['paramStoreId'] = paramStoreId
624
- }
625
- const path = packageOpenUrl(
626
- system,
627
- pageCode,
628
- dataId,
629
- jumpPageSetting,
630
- jumpMode,
631
- ids,
632
- buttonCode,
633
- isHasIdParam
634
- )
635
- queryParam._path = path
636
- resolve(queryParam)
637
- }
638
- })
639
- }
640
- /**
641
- * 使用dialog打开弹框,页面布局中的按钮、自定义按钮等使用该方法
642
- * @param {*} jumpPageSetting
643
- * @param {*} system
644
- * @param {*} pageCode
645
- * @param {*} dataId
646
- * @param {*} jumpMode
647
- * @param {*} ids
648
- * @param {*} buttonCode
649
- */
650
- function openDialogWhenPopup(
651
- jumpPageSetting,
652
- system,
653
- pageCode,
654
- dataId,
655
- jumpMode,
656
- ids,
657
- buttonCode
658
- ) {
659
- const popPageSetting = {}
660
- if (jumpPageSetting) {
661
- popPageSetting.jumpPageTitle = jumpPageSetting.jumpPageTitle
662
- popPageSetting.jumpPageWidth = jumpPageSetting.jumpPageWidth
663
- popPageSetting.jumpPageHeight = jumpPageSetting.jumpPageHeight
664
- popPageSetting.valueMappings = jumpPageSetting.valueMappings
665
- popPageSetting.updateValueEvent = jumpPageSetting.updateValueEvent
666
- popPageSetting.closeEvent = jumpPageSetting.closeEvent
667
- popPageSetting.isRefreshWhenClosePopup =
668
- jumpPageSetting.isRefreshWhenClosePopup
669
- }
670
- // 是否是自定义系统
671
- let isDsc = false
672
- if (typeof system.standard !== 'undefined') {
673
- isDsc = !system.standard
674
- }
675
- popPageSetting.pageCode = pageCode
676
- if (
677
- jumpPageSetting.isNeedId === undefined ||
678
- jumpPageSetting.isNeedId === null ||
679
- jumpPageSetting.isNeedId === true
680
- ) {
681
- if (dataId) {
682
- // 表示是修改或查看页面,封装id参数
683
- popPageSetting.dataId = dataId
684
- }
685
- }
686
- popPageSetting.isDsc = isDsc
687
- // 用于获取window.sessionStorage中缓存的附加参数的key值
688
- popPageSetting.paramStoreId = jumpPageSetting.paramStoreId
689
- // 打开方式
690
- popPageSetting.jumpMode = jumpMode
691
- popPageSetting.ids = ids
692
- popPageSetting.buttonCode = buttonCode
693
- // eventBus.$emit('showDialogPage', buttonSetting)
694
- return popPageSetting
695
- }
696
-
697
- function packageOpenUrl(
698
- system,
699
- pageCode,
700
- dataId,
701
- jumpPageSetting,
702
- jumpMode,
703
- ids,
704
- buttonCode,
705
- isHasIdParam
706
- ) {
707
- const frontendUrl = getSystemFrontendUrl(system.frontendUrl)
708
- let path =
709
- frontendUrl +
710
- '/#/dsc-full-screen/page?customSystem=' +
711
- system.code +
712
- '&pageCode=' +
713
- pageCode +
714
- '&jumpMode=' +
715
- jumpMode
716
- const systemName = getSystemNameWithLanguage(system)
717
- if (systemName) {
718
- path += '&_systemName_=' + encodeURI(systemName)
719
- }
720
- return packagePathParams(
721
- dataId,
722
- path,
723
- jumpPageSetting,
724
- ids,
725
- buttonCode,
726
- isHasIdParam
727
- )
728
- }
729
-
730
- function getSystemNameWithLanguage(system) {
731
- if (system) {
732
- let locale = 'cn'
733
- if (window.$locale) {
734
- locale = window.$locale
735
- }
736
- if (locale === 'cn') {
737
- return system.name
738
- } else {
739
- return system.enName
740
- }
741
- }
742
- }
743
-
744
- // 解析跳转页面附带参数
745
- function analysisAdditionalParameter(paramStoreId) {
746
- const additionalParamMap = window.sessionStorage.getItem(paramStoreId)
747
- return analysisAdditionalParameterWithMap(additionalParamMap)
748
- }
749
-
750
- // 解析跳转页面附带参数
751
- function analysisAdditionalParameterWithMap(additionalParamMap) {
752
- let additionalParameterStr = ''
753
- if (additionalParamMap) {
754
- const additionalParameterMap = JSON.parse(additionalParamMap)
755
- const keys = Object.keys(additionalParameterMap)
756
- console.log(
757
- 'analysisAdditionalParameterWithMap--Object.keys(additionalParameterMap)=',
758
- keys
759
- )
760
- for (let i = 0; i < keys.length; i++) {
761
- if (additionalParameterStr !== '') {
762
- additionalParameterStr += '&'
763
- }
764
- additionalParameterStr += keys[i]
765
- additionalParameterStr += '='
766
- additionalParameterStr += additionalParameterMap[keys[i]]
767
- }
768
- }
769
- return additionalParameterStr
770
- }
771
-
772
- export function updateWithPageValue(
773
- sourceModel,
774
- sourceTableName,
775
- jumpPageSetting,
776
- entity,
777
- targetTableName,
778
- isNeedReplaceFieldName
779
- ) {
780
- if (
781
- sourceModel &&
782
- sourceModel !== null &&
783
- entity &&
784
- entity !== null &&
785
- jumpPageSetting &&
786
- jumpPageSetting !== null &&
787
- jumpPageSetting.valueMappings
788
- ) {
789
- let sourceEntity = sourceModel
790
- if (Array.isArray(sourceModel) && sourceModel.length > 0) {
791
- // 弹出框中列表选择了多行时,默认只赋值第一行记录
792
- sourceEntity = sourceModel[0]
793
- }
794
- const valueMappings = jumpPageSetting.valueMappings
795
- valueMappings.forEach((valueMapping) => {
796
- let sourceField = valueMapping.source
797
- let targetValue = getEntityFieldValue(sourceEntity, sourceField)
798
- // sql查询时,会把点“.”改为两个下划线"__"
799
- const replaceDot = '__'
800
- if (targetValue === undefined || targetValue === null) {
801
- // 如果通过字段没有获得字段,则再拼接表名作为字段,重新获得字段值
802
- if (sourceField && sourceTableName && sourceField.indexOf('.') > 0) {
803
- // 表示包括点“.”,需要把两个下划线"__"重新改为点“.”,否则会导致查询报500错误
804
- sourceField = sourceTableName + replaceDot + sourceField
805
- }
806
- // 重新获得字段值
807
- targetValue = getEntityFieldValue(sourceEntity, sourceField)
808
- }
809
-
810
- let targetField = valueMapping.target
811
- if (
812
- isNeedReplaceFieldName !== undefined &&
813
- isNeedReplaceFieldName === true &&
814
- targetField &&
815
- targetTableName &&
816
- targetField.indexOf('.') > 0
817
- ) {
818
- // 表示包括点“.”,需要把两个下划线"__"重新改为点“.”,否则会导致查询报500错误
819
- targetField = targetTableName + replaceDot + targetField
820
- }
821
- setEntityFieldValue(entity, targetField, targetValue)
822
- })
823
- }
824
- }
1
+ import * as Vue from 'vue'
2
+ import {
3
+ analysisCondition,
4
+ analysisValue,
5
+ getEntityFieldValue,
6
+ setEntityFieldValue,
7
+ } from './util'
8
+ import { getSystemFrontendUrl } from './common-util'
9
+ // 解析初始化条件,api方法;additionalParamMap是上个页面传过来的附加参数集合
10
+ export function initialization(
11
+ jumpPage,
12
+ entity,
13
+ isSql,
14
+ additionalParamerter,
15
+ contextParameter,
16
+ tableName,
17
+ parentFormData
18
+ ) {
19
+ const result = {}
20
+ if (jumpPage) {
21
+ // 页面附加参数
22
+ result.visible = true
23
+ let additionalParameterMap = {}
24
+ if (
25
+ additionalParamerter &&
26
+ typeof additionalParamerter === 'string' &&
27
+ additionalParamerter !== ''
28
+ ) {
29
+ additionalParameterMap = JSON.parse(additionalParamerter)
30
+ } else if (
31
+ additionalParamerter &&
32
+ typeof additionalParamerter === 'object'
33
+ ) {
34
+ additionalParameterMap = additionalParamerter
35
+ }
36
+ // 环境变量,例如:当前用户id、当前用户登录名等
37
+ let contextParameterMap = {}
38
+ if (
39
+ contextParameter &&
40
+ typeof contextParameter === 'string' &&
41
+ contextParameter !== ''
42
+ ) {
43
+ contextParameterMap = JSON.parse(contextParameter)
44
+ } else if (contextParameter && typeof contextParameter === 'object') {
45
+ contextParameterMap = contextParameter
46
+ }
47
+ if (jumpPage.displayTextJudge) {
48
+ // 例如:${obj.menu_code}-#-#${input.---}-#-#${context.currentTransactor}
49
+ const label = analysisValue(
50
+ jumpPage.displayText,
51
+ entity,
52
+ additionalParameterMap,
53
+ contextParameterMap
54
+ )
55
+ result.label = label
56
+ }
57
+ if (jumpPage.icon) {
58
+ result.icon = jumpPage.icon
59
+ }
60
+ if (jumpPage.linkTips) {
61
+ result.title = jumpPage.linkTips
62
+ }
63
+ if (jumpPage.buttonDisplayConditionsList) {
64
+ let displayJudgment = ''
65
+ if (jumpPage.buttonDisplayConditionsList) {
66
+ displayJudgment = JSON.stringify(jumpPage.buttonDisplayConditionsList)
67
+ }
68
+ if (displayJudgment && displayJudgment !== '') {
69
+ const visible = analysisCondition(
70
+ displayJudgment,
71
+ entity,
72
+ additionalParameterMap,
73
+ contextParameterMap,
74
+ isSql,
75
+ tableName,
76
+ parentFormData
77
+ )
78
+ result.visible = visible
79
+ }
80
+ }
81
+ }
82
+ return result
83
+ }
84
+
85
+ /**
86
+ * 弹框方法
87
+ * @param {*} pageSetting 格式为:
88
+ * {
89
+ * jumpPageSetting:{
90
+ * jumpPageUrl:'弹出的页面编码或路径',
91
+ * jumpPageAdditional:{附加参数},
92
+ * isNeedId:true/false 是否拼接id参数默认是true,
93
+ * jumpPageOpenMode:'popup/newTab/refresh 页面显示方式'
94
+ * jumpPageWidth: '500弹框宽度',
95
+ * jumpPageHeight: '600弹框高度'
96
+ * },
97
+ * system:{frontendUrl:'http://localhost:8080/dsc',code:xxx},
98
+ * dataId: 1,
99
+ * entity:{业务实体信息},
100
+ * additionalParamMap:{上个页面传过来的附加参数},
101
+ * ids:[1,2],
102
+ * parentFormData: {父表单实体,用于解析${parent.xxx}参数}
103
+ * }
104
+ */
105
+ export function openPage(pageSetting) {
106
+ if (pageSetting) {
107
+ const jumpPageSetting = pageSetting.jumpPageSetting
108
+ const system = pageSetting.system
109
+ const dataId = pageSetting.dataId
110
+ const ids = pageSetting.ids
111
+ const buttonCode = pageSetting.buttonCode
112
+ // 上个页面传过来的附加参数
113
+ const additionalParamMap = pageSetting.additionalParamMap
114
+ const entity = pageSetting.entity
115
+ const parentFormData = pageSetting.parentFormData
116
+ jumpToPage(
117
+ jumpPageSetting,
118
+ system,
119
+ dataId,
120
+ entity,
121
+ additionalParamMap,
122
+ ids,
123
+ buttonCode,
124
+ parentFormData
125
+ ).then((openPageParams) => {
126
+ let jumpMode
127
+ if (openPageParams) {
128
+ jumpMode = openPageParams.jumpMode
129
+ }
130
+ if (openPageParams) {
131
+ const popPageSetting = openPageParams
132
+ const path = popPageSetting._path
133
+ if (jumpMode === 'popup') {
134
+ let jumpPageWidth
135
+ let jumpPageHeight
136
+
137
+ if (openPageParams.jumpPageWidth) {
138
+ jumpPageWidth = openPageParams.jumpPageWidth
139
+ } else {
140
+ jumpPageWidth = window.innerWidth - 150
141
+ }
142
+
143
+ if (openPageParams.jumpPageHeight) {
144
+ jumpPageHeight = openPageParams.jumpPageHeight
145
+ } else {
146
+ jumpPageHeight = window.innerHeight - 150
147
+ }
148
+ // 弹出页面
149
+ window.open(
150
+ path,
151
+ '',
152
+ `height=` +
153
+ jumpPageHeight +
154
+ `,width=` +
155
+ jumpPageWidth +
156
+ `,top=100,left=100,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no`
157
+ )
158
+ } else if (jumpMode === 'refresh') {
159
+ window.location.href = path
160
+ }
161
+ }
162
+ })
163
+ }
164
+ }
165
+
166
+ // 附加参数中是否设值了ID参数。如果添加了id参数,则不需要自动添加dataId参数
167
+ function isHasIdAdditionalParam(jumpPageAdditional) {
168
+ if (jumpPageAdditional && jumpPageAdditional.length > 0) {
169
+ for (let i = 0; i < jumpPageAdditional.length; i++) {
170
+ const item = jumpPageAdditional[i]
171
+ if (
172
+ item.paramName &&
173
+ (item.paramName === 'id' || item.paramName === 'ID')
174
+ ) {
175
+ return true
176
+ }
177
+ }
178
+ }
179
+ }
180
+
181
+ // 页面跳转处理,api方法;additionalParamMap是上个页面传过来的附加参数集合;
182
+ // isFromChart 是否是从chart方面来,如果是,则弹窗和刷新页面都用winows方式打开
183
+ export function jumpToPage(
184
+ jumpPageSetting,
185
+ system,
186
+ dataId,
187
+ entity,
188
+ additionalParamMap,
189
+ ids,
190
+ buttonCode,
191
+ parentFormData
192
+ ) {
193
+ return new Promise((resolve, reject) => {
194
+ if (
195
+ jumpPageSetting &&
196
+ typeof jumpPageSetting === 'string' &&
197
+ jumpPageSetting !== ''
198
+ ) {
199
+ jumpPageSetting = JSON.parse(jumpPageSetting)
200
+ }
201
+ if (!jumpPageSetting.jumpPageUrl) {
202
+ resolve()
203
+ }
204
+ getSystem(system, jumpPageSetting.jumpPageUrl)
205
+ .then((system) => {
206
+ if (
207
+ jumpPageSetting.jumpPageAdditional &&
208
+ jumpPageSetting.jumpPageAdditional.length > 0
209
+ ) {
210
+ // 发送请求,获取附加参数,并存入缓存
211
+ const paramPath =
212
+ window.$vueApp.config.globalProperties.baseAPI +
213
+ '/component/super-pages/parsing-additional-parameters'
214
+ const paramMap = {}
215
+ paramMap.jumpPageAdditional = JSON.stringify(
216
+ jumpPageSetting.jumpPageAdditional
217
+ )
218
+ // 表单页面
219
+ paramMap.entity = entity
220
+ paramMap.additionalParamMap = additionalParamMap
221
+ console.log('paramMap.parentFormData', parentFormData)
222
+ paramMap.parentFormData = parentFormData
223
+ const isHasIdParam = isHasIdAdditionalParam(
224
+ jumpPageSetting.jumpPageAdditional
225
+ )
226
+
227
+ window.$vueApp.config.globalProperties.$http
228
+ .post(paramPath, paramMap)
229
+ .then((result) => {
230
+ let paramStoreId = ''
231
+ if (result && result.uuid) {
232
+ paramStoreId = result.uuid + '_additionalParamMap'
233
+ window.sessionStorage.setItem(
234
+ paramStoreId,
235
+ JSON.stringify(result.paramMap)
236
+ )
237
+ }
238
+ jumpPageSetting.paramStoreId = paramStoreId
239
+ // 存入缓存
240
+ jumpToPageTwo(
241
+ jumpPageSetting,
242
+ system,
243
+ dataId,
244
+ ids,
245
+ buttonCode,
246
+ isHasIdParam
247
+ ).then((openPageParams) => {
248
+ // openPageParams:xxx弹框打开页面时需要的参数 或 刷新页面时路由查询参数
249
+ resolve(openPageParams)
250
+ })
251
+ })
252
+ } else {
253
+ jumpToPageTwo(
254
+ jumpPageSetting,
255
+ system,
256
+ dataId,
257
+ ids,
258
+ buttonCode,
259
+ false
260
+ ).then((openPageParams) => {
261
+ // openPageParams:xxx弹框打开页面时需要的参数 或 刷新页面时路由查询参数
262
+ resolve(openPageParams)
263
+ })
264
+ }
265
+ })
266
+ .catch((error) => {
267
+ console.log(error)
268
+ reject(error)
269
+ })
270
+ })
271
+ }
272
+
273
+ function getSystem(system, jumpPageUrl) {
274
+ return new Promise((resolve, reject) => {
275
+ if (isFullPath(jumpPageUrl)) {
276
+ resolve(null)
277
+ } else {
278
+ if (!system || system === null) {
279
+ if (jumpPageUrl.indexOf('page:') === 0) {
280
+ const pageCode = jumpPageUrl.substring(
281
+ jumpPageUrl.indexOf('page:') + 'page:'.length
282
+ )
283
+ const path =
284
+ window.$vueApp.config.globalProperties.baseAPI +
285
+ '/component/business-systems/with-page-codes/' +
286
+ pageCode
287
+ window.$vueApp.config.globalProperties.$http
288
+ .get(path)
289
+ .then((data) => {
290
+ resolve(data)
291
+ })
292
+ .catch((error) => {
293
+ reject(error)
294
+ })
295
+ } else {
296
+ // 则根据当前系统编码获得系统
297
+ let systemCode = window.$vueApp.config.globalProperties.customSystem
298
+ if (!systemCode) {
299
+ systemCode = window.$vueApp.config.globalProperties.systemCode
300
+ }
301
+ const path =
302
+ window.$vueApp.config.globalProperties.baseAPI +
303
+ '/component/business-systems/' +
304
+ systemCode
305
+ window.$vueApp.config.globalProperties.$http
306
+ .get(path)
307
+ .then((data) => {
308
+ resolve(data)
309
+ })
310
+ .catch((error) => {
311
+ reject(error)
312
+ })
313
+ }
314
+ } else {
315
+ resolve(system)
316
+ }
317
+ }
318
+ })
319
+ }
320
+
321
+ // 表示是全路径
322
+ function isFullPath(path) {
323
+ return path.indexOf('http:') === 0 || path.indexOf('https:') === 0
324
+ }
325
+ // 正式跳转
326
+ function jumpToPageTwo(
327
+ jumpPageSetting,
328
+ system,
329
+ dataId,
330
+ ids,
331
+ buttonCode,
332
+ isHasIdParam
333
+ ) {
334
+ return new Promise((resolve, reject) => {
335
+ const jumpPageUrl = jumpPageSetting.jumpPageUrl
336
+ if (!jumpPageUrl) {
337
+ return
338
+ }
339
+ if (jumpPageUrl.indexOf('page:') === 0) {
340
+ // 表示是自定义系统跳转页面编码
341
+ jumpWithSuperPage(
342
+ jumpPageUrl,
343
+ system,
344
+ dataId,
345
+ jumpPageSetting,
346
+ ids,
347
+ buttonCode,
348
+ isHasIdParam
349
+ ).then((openPageParams) => {
350
+ resolve(openPageParams)
351
+ })
352
+ } else {
353
+ const additionalParameterStr = analysisAdditionalParameter(
354
+ jumpPageSetting.paramStoreId
355
+ )
356
+ // 表示是路径,格式如:http://www.baidu.com 或 http://localhost:9600/demo/#/demo/plan/list 或 /demo/plan/list
357
+ let path = jumpPageUrl
358
+ if (jumpPageUrl.indexOf('path:') >= 0) {
359
+ // 兼容历史数据
360
+ path = jumpPageUrl.substring(
361
+ jumpPageUrl.indexOf('path:') + 'path:'.length
362
+ )
363
+ }
364
+ if (isFullPath(path)) {
365
+ // 表示是全路径,例如:http://www.baidu.com 或 http://localhost:9600/demo/#/demo/plan/list
366
+ } else if (system) {
367
+ // 表示是路由路径,例如:/demo/plan/list
368
+ const frontendUrl = getSystemFrontendUrl(system.frontendUrl)
369
+ path = frontendUrl + '/#' + path
370
+ }
371
+ const systemName = getSystemNameWithLanguage(system)
372
+ jumpToPageWithFullPath(
373
+ dataId,
374
+ path,
375
+ additionalParameterStr,
376
+ jumpPageSetting,
377
+ ids,
378
+ buttonCode,
379
+ isHasIdParam,
380
+ systemName
381
+ )
382
+ resolve()
383
+ }
384
+ })
385
+ }
386
+ /**
387
+ * 全路径时跳转页面处理
388
+ * @param {*} dataId
389
+ * @param {*} path
390
+ * @param {*} additionalParameterStr
391
+ * @param {*} jumpPage
392
+ */
393
+ function jumpToPageWithFullPath(
394
+ dataId,
395
+ path,
396
+ additionalParameterStr,
397
+ jumpPage,
398
+ ids,
399
+ buttonCode,
400
+ isHasIdParam,
401
+ systemName
402
+ ) {
403
+ path = packagePathParams(
404
+ dataId,
405
+ path,
406
+ jumpPage,
407
+ ids,
408
+ buttonCode,
409
+ isHasIdParam
410
+ )
411
+ // 保持这种情况参数传递,是为了解决不同域时获得不到window.sessionStorage中存的附加参数问题
412
+ if (additionalParameterStr && additionalParameterStr !== '') {
413
+ let systemNameParam = ''
414
+ if (systemName) {
415
+ systemNameParam = '&_systemName_=' + encodeURI(systemName)
416
+ }
417
+ if (path.indexOf('?') !== -1) {
418
+ path += '&'
419
+ path += additionalParameterStr + systemNameParam
420
+ } else {
421
+ path += '?'
422
+ path += additionalParameterStr + systemNameParam
423
+ }
424
+ }
425
+ let jumpMode = 'refresh'
426
+ if (jumpPage) {
427
+ if (jumpPage.jumpPageOpenMode) {
428
+ jumpMode = jumpPage.jumpPageOpenMode
429
+ }
430
+ }
431
+ if (jumpMode === 'popup') {
432
+ // 弹框
433
+ let jumpPageWidth
434
+ let jumpPageHeight
435
+
436
+ if (jumpPage.jumpPageWidth) {
437
+ jumpPageWidth = jumpPage.jumpPageWidth
438
+ } else {
439
+ jumpPageWidth = window.innerWidth - 150
440
+ }
441
+
442
+ if (jumpPage.jumpPageHeight) {
443
+ jumpPageHeight = jumpPage.jumpPageHeight
444
+ } else {
445
+ jumpPageHeight = window.innerHeight - 150
446
+ }
447
+ const features =
448
+ 'height=' +
449
+ jumpPageHeight +
450
+ ', width=' +
451
+ jumpPageWidth +
452
+ ', top=0, left=0, toolbar=no, menubar=no,' +
453
+ 'scrollbars=no,resizable=no, location=no, status=no' // 设置新窗口的特性
454
+ window.open(path, 'newW', features) // 打开新窗口
455
+ } else if (jumpMode === 'newTab') {
456
+ // 新页签
457
+ window.open(path)
458
+ } else {
459
+ // 刷新页面
460
+ location.href = path
461
+ }
462
+ }
463
+
464
+ // path封装参数
465
+ function packagePathParams(
466
+ dataId,
467
+ path,
468
+ jumpPage,
469
+ ids,
470
+ buttonCode,
471
+ isHasIdParam
472
+ ) {
473
+ if (
474
+ jumpPage.isNeedId === undefined ||
475
+ jumpPage.isNeedId === null ||
476
+ jumpPage.isNeedId === true
477
+ ) {
478
+ if (!isHasIdParam && dataId) {
479
+ // 表示是修改或查看页面,封装id参数
480
+ let paramSeparator = '?'
481
+ if (path.indexOf('?') > 0) {
482
+ paramSeparator = '&'
483
+ }
484
+ path = path + paramSeparator + 'id=' + dataId
485
+ }
486
+ }
487
+ // window.sessionStorage中存储附加参数的key
488
+ const paramStoreId = jumpPage.paramStoreId
489
+ if (paramStoreId && paramStoreId !== '') {
490
+ const paramStoreIdParam = 'paramStoreId=' + paramStoreId
491
+ if (path.indexOf('?') !== -1) {
492
+ path += '&'
493
+ path += paramStoreIdParam
494
+ } else {
495
+ path += '?'
496
+ path += paramStoreIdParam
497
+ }
498
+ }
499
+ if (ids && ids.length > 0) {
500
+ const idsStr = ids.join(',')
501
+ const idsPath = 'ids=' + idsStr + '&_idsStr=' + idsStr
502
+ if (path.indexOf('?') !== -1) {
503
+ path += '&'
504
+ path += idsPath
505
+ } else {
506
+ path += '?'
507
+ path += idsPath
508
+ }
509
+ }
510
+ if (buttonCode) {
511
+ if (path.indexOf('?') !== -1) {
512
+ path += '&buttonCode=' + buttonCode
513
+ } else {
514
+ path += '?buttonCode=' + buttonCode
515
+ }
516
+ }
517
+ return path
518
+ }
519
+
520
+ function getPageCode(jumpPageUrl) {
521
+ let pageCode
522
+ if (jumpPageUrl && jumpPageUrl.indexOf('page:') !== -1) {
523
+ pageCode = jumpPageUrl.substring(
524
+ jumpPageUrl.indexOf('page:') + 'page:'.length
525
+ )
526
+ }
527
+ return pageCode
528
+ }
529
+ // 使用页面组件内部调整
530
+ function jumpWithSuperPage(
531
+ jumpPageUrl,
532
+ system,
533
+ dataId,
534
+ jumpPageSetting,
535
+ ids,
536
+ buttonCode,
537
+ isHasIdParam
538
+ ) {
539
+ return new Promise((resolve, reject) => {
540
+ // 表示是自定义系统跳转页面编码
541
+ console.log(
542
+ '----jumpWithSuperPage---',
543
+ jumpPageUrl,
544
+ system,
545
+ dataId,
546
+ jumpPageSetting
547
+ )
548
+ const pageCode = getPageCode(jumpPageUrl)
549
+ let jumpMode = 'refresh'
550
+ if (jumpPageSetting) {
551
+ if (jumpPageSetting.jumpPageOpenMode) {
552
+ jumpMode = jumpPageSetting.jumpPageOpenMode
553
+ }
554
+ }
555
+ const jumpJsonData = {
556
+ jumpMode: jumpMode,
557
+ }
558
+ window.sessionStorage.setItem(
559
+ pageCode + '-jumpMode',
560
+ JSON.stringify(jumpJsonData)
561
+ )
562
+ if (jumpMode === 'popup') {
563
+ const path = packageOpenUrl(
564
+ system,
565
+ pageCode,
566
+ dataId,
567
+ jumpPageSetting,
568
+ jumpMode,
569
+ ids,
570
+ buttonCode,
571
+ isHasIdParam
572
+ )
573
+ // 页面布局中的按钮打开
574
+ const popPageSetting = openDialogWhenPopup(
575
+ jumpPageSetting,
576
+ system,
577
+ pageCode,
578
+ dataId,
579
+ jumpMode,
580
+ ids,
581
+ buttonCode
582
+ )
583
+ popPageSetting._path = path
584
+ resolve(popPageSetting)
585
+ } else if (jumpMode === 'newTab') {
586
+ // 新页签打开
587
+ const path =
588
+ packageOpenUrl(
589
+ system,
590
+ pageCode,
591
+ dataId,
592
+ jumpPageSetting,
593
+ jumpMode,
594
+ ids,
595
+ buttonCode,
596
+ isHasIdParam
597
+ ) +
598
+ '&_t_=' +
599
+ new Date().getTime()
600
+ window.open(path)
601
+ resolve()
602
+ } else {
603
+ // 刷新页面
604
+ const queryParam = {
605
+ pageCode: pageCode,
606
+ customSystem: system.code,
607
+ jumpMode: jumpMode,
608
+ buttonCode: buttonCode,
609
+ ids: ids ? ids.join(',') : '',
610
+ }
611
+ if (
612
+ jumpPageSetting.isNeedId === undefined ||
613
+ jumpPageSetting.isNeedId === null ||
614
+ jumpPageSetting.isNeedId === true
615
+ ) {
616
+ if (!isHasIdParam && dataId) {
617
+ // 表示是修改或查看页面,封装id参数
618
+ queryParam.id = dataId
619
+ }
620
+ }
621
+ const paramStoreId = jumpPageSetting.paramStoreId
622
+ if (paramStoreId && paramStoreId !== '') {
623
+ queryParam['paramStoreId'] = paramStoreId
624
+ }
625
+ const path = packageOpenUrl(
626
+ system,
627
+ pageCode,
628
+ dataId,
629
+ jumpPageSetting,
630
+ jumpMode,
631
+ ids,
632
+ buttonCode,
633
+ isHasIdParam
634
+ )
635
+ queryParam._path = path
636
+ resolve(queryParam)
637
+ }
638
+ })
639
+ }
640
+ /**
641
+ * 使用dialog打开弹框,页面布局中的按钮、自定义按钮等使用该方法
642
+ * @param {*} jumpPageSetting
643
+ * @param {*} system
644
+ * @param {*} pageCode
645
+ * @param {*} dataId
646
+ * @param {*} jumpMode
647
+ * @param {*} ids
648
+ * @param {*} buttonCode
649
+ */
650
+ function openDialogWhenPopup(
651
+ jumpPageSetting,
652
+ system,
653
+ pageCode,
654
+ dataId,
655
+ jumpMode,
656
+ ids,
657
+ buttonCode
658
+ ) {
659
+ const popPageSetting = {}
660
+ if (jumpPageSetting) {
661
+ popPageSetting.jumpPageTitle = jumpPageSetting.jumpPageTitle
662
+ popPageSetting.jumpPageWidth = jumpPageSetting.jumpPageWidth
663
+ popPageSetting.jumpPageHeight = jumpPageSetting.jumpPageHeight
664
+ popPageSetting.valueMappings = jumpPageSetting.valueMappings
665
+ popPageSetting.updateValueEvent = jumpPageSetting.updateValueEvent
666
+ popPageSetting.closeEvent = jumpPageSetting.closeEvent
667
+ popPageSetting.isRefreshWhenClosePopup =
668
+ jumpPageSetting.isRefreshWhenClosePopup
669
+ }
670
+ // 是否是自定义系统
671
+ let isDsc = false
672
+ if (typeof system.standard !== 'undefined') {
673
+ isDsc = !system.standard
674
+ }
675
+ popPageSetting.pageCode = pageCode
676
+ if (
677
+ jumpPageSetting.isNeedId === undefined ||
678
+ jumpPageSetting.isNeedId === null ||
679
+ jumpPageSetting.isNeedId === true
680
+ ) {
681
+ if (dataId) {
682
+ // 表示是修改或查看页面,封装id参数
683
+ popPageSetting.dataId = dataId
684
+ }
685
+ }
686
+ popPageSetting.isDsc = isDsc
687
+ // 用于获取window.sessionStorage中缓存的附加参数的key值
688
+ popPageSetting.paramStoreId = jumpPageSetting.paramStoreId
689
+ // 打开方式
690
+ popPageSetting.jumpMode = jumpMode
691
+ popPageSetting.ids = ids
692
+ popPageSetting.buttonCode = buttonCode
693
+ // eventBus.$emit('showDialogPage', buttonSetting)
694
+ return popPageSetting
695
+ }
696
+
697
+ function packageOpenUrl(
698
+ system,
699
+ pageCode,
700
+ dataId,
701
+ jumpPageSetting,
702
+ jumpMode,
703
+ ids,
704
+ buttonCode,
705
+ isHasIdParam
706
+ ) {
707
+ const frontendUrl = getSystemFrontendUrl(system.frontendUrl)
708
+ let path =
709
+ frontendUrl +
710
+ '/#/dsc-full-screen/page?customSystem=' +
711
+ system.code +
712
+ '&pageCode=' +
713
+ pageCode +
714
+ '&jumpMode=' +
715
+ jumpMode
716
+ const systemName = getSystemNameWithLanguage(system)
717
+ if (systemName) {
718
+ path += '&_systemName_=' + encodeURI(systemName)
719
+ }
720
+ return packagePathParams(
721
+ dataId,
722
+ path,
723
+ jumpPageSetting,
724
+ ids,
725
+ buttonCode,
726
+ isHasIdParam
727
+ )
728
+ }
729
+
730
+ function getSystemNameWithLanguage(system) {
731
+ if (system) {
732
+ let locale = 'cn'
733
+ if (window.$locale) {
734
+ locale = window.$locale
735
+ }
736
+ if (locale === 'cn') {
737
+ return system.name
738
+ } else {
739
+ return system.enName
740
+ }
741
+ }
742
+ }
743
+
744
+ // 解析跳转页面附带参数
745
+ function analysisAdditionalParameter(paramStoreId) {
746
+ const additionalParamMap = window.sessionStorage.getItem(paramStoreId)
747
+ return analysisAdditionalParameterWithMap(additionalParamMap)
748
+ }
749
+
750
+ // 解析跳转页面附带参数
751
+ function analysisAdditionalParameterWithMap(additionalParamMap) {
752
+ let additionalParameterStr = ''
753
+ if (additionalParamMap) {
754
+ const additionalParameterMap = JSON.parse(additionalParamMap)
755
+ const keys = Object.keys(additionalParameterMap)
756
+ console.log(
757
+ 'analysisAdditionalParameterWithMap--Object.keys(additionalParameterMap)=',
758
+ keys
759
+ )
760
+ for (let i = 0; i < keys.length; i++) {
761
+ if (additionalParameterStr !== '') {
762
+ additionalParameterStr += '&'
763
+ }
764
+ additionalParameterStr += keys[i]
765
+ additionalParameterStr += '='
766
+ additionalParameterStr += additionalParameterMap[keys[i]]
767
+ }
768
+ }
769
+ return additionalParameterStr
770
+ }
771
+
772
+ export function updateWithPageValue(
773
+ sourceModel,
774
+ sourceTableName,
775
+ jumpPageSetting,
776
+ entity,
777
+ targetTableName,
778
+ isNeedReplaceFieldName
779
+ ) {
780
+ if (
781
+ sourceModel &&
782
+ sourceModel !== null &&
783
+ entity &&
784
+ entity !== null &&
785
+ jumpPageSetting &&
786
+ jumpPageSetting !== null &&
787
+ jumpPageSetting.valueMappings
788
+ ) {
789
+ let sourceEntity = sourceModel
790
+ if (Array.isArray(sourceModel) && sourceModel.length > 0) {
791
+ // 弹出框中列表选择了多行时,默认只赋值第一行记录
792
+ sourceEntity = sourceModel[0]
793
+ }
794
+ const valueMappings = jumpPageSetting.valueMappings
795
+ valueMappings.forEach((valueMapping) => {
796
+ let sourceField = valueMapping.source
797
+ let targetValue = getEntityFieldValue(sourceEntity, sourceField)
798
+ // sql查询时,会把点“.”改为两个下划线"__"
799
+ const replaceDot = '__'
800
+ if (targetValue === undefined || targetValue === null) {
801
+ // 如果通过字段没有获得字段,则再拼接表名作为字段,重新获得字段值
802
+ if (sourceField && sourceTableName && sourceField.indexOf('.') > 0) {
803
+ // 表示包括点“.”,需要把两个下划线"__"重新改为点“.”,否则会导致查询报500错误
804
+ sourceField = sourceTableName + replaceDot + sourceField
805
+ }
806
+ // 重新获得字段值
807
+ targetValue = getEntityFieldValue(sourceEntity, sourceField)
808
+ }
809
+
810
+ let targetField = valueMapping.target
811
+ if (
812
+ isNeedReplaceFieldName !== undefined &&
813
+ isNeedReplaceFieldName === true &&
814
+ targetField &&
815
+ targetTableName &&
816
+ targetField.indexOf('.') > 0
817
+ ) {
818
+ // 表示包括点“.”,需要把两个下划线"__"重新改为点“.”,否则会导致查询报500错误
819
+ targetField = targetTableName + replaceDot + targetField
820
+ }
821
+ setEntityFieldValue(entity, targetField, targetValue)
822
+ })
823
+ }
824
+ }