imatrix-ui 0.2.6-up → 0.2.7-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 (206) 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 +2724 -1932
  5. package/lib/super-ui.umd.cjs +24 -24
  6. package/package.json +1 -1
  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 +353 -353
  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 +123 -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 -583
  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 +394 -394
  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/public-methods.js +30 -30
  89. package/packages/super-grid/src/row-operation.vue +193 -193
  90. package/packages/super-grid/src/search-button.vue +74 -74
  91. package/packages/super-grid/src/search-condition-input.vue +73 -73
  92. package/packages/super-grid/src/search-condition-list.vue +68 -68
  93. package/packages/super-grid/src/search-form-advancedQuery.vue +819 -819
  94. package/packages/super-grid/src/search-form-dialog.vue +77 -77
  95. package/packages/super-grid/src/search-form-item.vue +495 -495
  96. package/packages/super-grid/src/search-form-number.vue +111 -111
  97. package/packages/super-grid/src/search-form-ordinarySearch.vue +239 -239
  98. package/packages/super-grid/src/search-form.vue +762 -762
  99. package/packages/super-grid/src/search-methods.js +592 -592
  100. package/packages/super-grid/src/selection-column.vue +46 -46
  101. package/packages/super-grid/src/store.js +3 -3
  102. package/packages/super-grid/src/super-grid-service.js +728 -728
  103. package/packages/super-grid/src/super-grid.vue +3011 -3011
  104. package/packages/super-grid/src/utils.js +880 -880
  105. package/packages/super-grid/src/view-image-dialog.vue +176 -176
  106. package/packages/super-nine-grid/index.js +7 -7
  107. package/packages/super-nine-grid/src/apis.js +108 -108
  108. package/packages/super-nine-grid/src/custom-formatter.js +73 -73
  109. package/packages/super-nine-grid/src/formatter.js +134 -134
  110. package/packages/super-nine-grid/src/search-form-number.vue +35 -35
  111. package/packages/super-nine-grid/src/search-form.vue +700 -700
  112. package/packages/super-nine-grid/src/search-methods.js +151 -151
  113. package/packages/super-nine-grid/src/store.js +3 -3
  114. package/packages/super-nine-grid/src/super-grid-service.js +107 -107
  115. package/packages/svg-icon/index.js +6 -6
  116. package/packages/svg-icon/src/svg-icon.vue +43 -43
  117. package/packages/utils/date-util.js +292 -292
  118. package/packages/utils/dom.js +227 -227
  119. package/packages/utils/gogocodeTransfer.js +59 -59
  120. package/packages/utils/memory-cache-utils.js +117 -117
  121. package/packages/utils/utils.js +180 -180
  122. package/packages/utils/value-set.js +97 -97
  123. package/packages/valid-code/index.js +7 -7
  124. package/packages/valid-code/src/valid-code.vue +104 -104
  125. package/packages/workflow-button/index.js +6 -6
  126. package/packages/workflow-button/src/workflow-button.vue +550 -550
  127. package/packages/workflow-history-list/index.js +6 -6
  128. package/packages/workflow-history-list/src/api.js +7 -7
  129. package/packages/workflow-history-list/src/workflow-history-list.vue +291 -291
  130. package/packages/workgroup-tree/index.js +6 -6
  131. package/packages/workgroup-tree/src/workgroup-tree.vue +86 -86
  132. package/packages/workgroup-tree-inline/index.js +6 -6
  133. package/packages/workgroup-tree-inline/src/search-result.vue +222 -222
  134. package/packages/workgroup-tree-inline/src/workgroup-tree-inline.vue +516 -516
  135. package/packages/workgroup-tree-inline/src/workgroup-tree-service.js +93 -93
  136. package/packages/workgroup-user-tree/index.js +6 -6
  137. package/packages/workgroup-user-tree/src/workgroup-user-tree.vue +103 -103
  138. package/packages/workgroup-user-tree-inline/index.js +9 -9
  139. package/packages/workgroup-user-tree-inline/src/search-result.vue +266 -266
  140. package/packages/workgroup-user-tree-inline/src/workgroup-tree-inline-service.js +239 -239
  141. package/packages/workgroup-user-tree-inline/src/workgroup-user-tree-inline.vue +657 -657
  142. package/packages/year-range-picker/index.js +6 -6
  143. package/packages/year-range-picker/src/year-range-picker.vue +53 -53
  144. package/src/api/sso-service.js +172 -172
  145. package/src/api/tab.js +36 -36
  146. package/src/api/user-service.js +11 -11
  147. package/src/directives/permission/index.js +13 -13
  148. package/src/directives/permission/permission.js +20 -20
  149. package/src/i18n/langs/cn.js +259 -259
  150. package/src/i18n/langs/en.js +269 -269
  151. package/src/index.js +93 -93
  152. package/src/plugins.js +18 -18
  153. package/src/router/index.js +8 -26
  154. package/src/store/getters.js +15 -15
  155. package/src/store/index.js +19 -19
  156. package/src/store/modules/app.js +54 -54
  157. package/src/store/modules/tab-content.js +36 -36
  158. package/src/store/modules/user.js +285 -285
  159. package/src/utils/auth.js +61 -61
  160. package/src/utils/calculator/calculator-factory-wf.js +558 -558
  161. package/src/utils/calculator/calculator-factory.js +145 -145
  162. package/src/utils/calculator/calculator-util.js +166 -166
  163. package/src/utils/eventBus.js +2 -2
  164. package/src/utils/iconUtils.js +28 -28
  165. package/src/utils/index.js +102 -102
  166. package/src/utils/jump-page-utils.js +824 -824
  167. package/src/utils/menu.js +19 -19
  168. package/src/utils/permission.js +31 -31
  169. package/src/utils/permissionAuth.js +96 -96
  170. package/src/utils/range-selector.js +188 -188
  171. package/src/utils/request.js +269 -269
  172. package/src/utils/restful-interface-utils.js +57 -57
  173. package/src/utils/util.js +703 -703
  174. package/src/utils/validate.js +34 -34
  175. package/src/utils/watermark.js +108 -108
  176. package/src/utils/workflow-util.js +93 -93
  177. package/src/views/404.vue +248 -248
  178. package/src/views/dsc-component/Sidebar/Item.vue +84 -84
  179. package/src/views/dsc-component/Sidebar/Link.vue +38 -38
  180. package/src/views/dsc-component/Sidebar/SidebarItem.vue +198 -198
  181. package/src/views/dsc-component/Sidebar/index.vue +229 -229
  182. package/src/views/dsc-component/tabs/tab-content.vue +203 -203
  183. package/src/views/error-page/401.vue +106 -106
  184. package/src/views/error-page/404.vue +248 -248
  185. package/src/views/layout/EmptyLayout.vue +3 -3
  186. package/src/views/layout/Layout.vue +81 -81
  187. package/src/views/layout/NewLayout.vue +18 -18
  188. package/src/views/layout/components/AppMain.vue +39 -39
  189. package/src/views/layout/components/Breadcrumb/index.vue +158 -158
  190. package/src/views/layout/components/Menubar/Item.vue +79 -79
  191. package/src/views/layout/components/Menubar/Link.vue +38 -38
  192. package/src/views/layout/components/Menubar/index.vue +210 -210
  193. package/src/views/layout/components/Sidebar/Item.vue +53 -53
  194. package/src/views/layout/components/Sidebar/Link.vue +38 -38
  195. package/src/views/layout/components/Sidebar/index.vue +141 -141
  196. package/src/views/layout/components/iframe-page.vue +38 -38
  197. package/src/views/layout/components/index.js +4 -4
  198. package/src/views/layout/components/tabs/tab-content.vue +207 -207
  199. package/src/views/layout/mixin/ResizeHandler.js +41 -41
  200. package/src/views/layout/tab-content-iframe-index.vue +38 -38
  201. package/src/views/layout/tab-content-index.vue +93 -93
  202. package/src/views/login/authredirect.vue +10 -10
  203. package/src/views/login/index.vue +296 -296
  204. package/src/views/login/update-password.vue +243 -243
  205. package/src/views/redirect/index.vue +14 -14
  206. package/src/views/wf-history/tache-subprocess-history.vue +45 -45
@@ -1,38 +1,38 @@
1
- <template>
2
- <div>
3
- <!-- eslint-disable vue/require-component-is-->
4
- <!-- <a v-if="isExter" :href="to.path" target="_blank" rel="noopener">
5
- <slot />
6
- </a> -->
7
-
8
- <router-link v-if="!isOpenNewTab" :to="to">
9
- <slot />
10
- </router-link>
11
- <div v-else>
12
- <slot />
13
- </div>
14
- </div>
15
- </template>
16
-
17
- <script>
18
- export default {
19
- props: {
20
- to: {
21
- type: Object,
22
- required: true,
23
- },
24
- },
25
- data() {
26
- const isExter = this.to.isExternal
27
- const openWay = this.to.openWay
28
- let isOpenNewTab = false
29
- if (openWay && openWay === 'NEW_PAGE_OPEN') {
30
- isOpenNewTab = true
31
- }
32
- return {
33
- isExter,
34
- isOpenNewTab,
35
- }
36
- },
37
- }
38
- </script>
1
+ <template>
2
+ <div>
3
+ <!-- eslint-disable vue/require-component-is-->
4
+ <!-- <a v-if="isExter" :href="to.path" target="_blank" rel="noopener">
5
+ <slot />
6
+ </a> -->
7
+
8
+ <router-link v-if="!isOpenNewTab" :to="to">
9
+ <slot />
10
+ </router-link>
11
+ <div v-else>
12
+ <slot />
13
+ </div>
14
+ </div>
15
+ </template>
16
+
17
+ <script>
18
+ export default {
19
+ props: {
20
+ to: {
21
+ type: Object,
22
+ required: true,
23
+ },
24
+ },
25
+ data() {
26
+ const isExter = this.to.isExternal
27
+ const openWay = this.to.openWay
28
+ let isOpenNewTab = false
29
+ if (openWay && openWay === 'NEW_PAGE_OPEN') {
30
+ isOpenNewTab = true
31
+ }
32
+ return {
33
+ isExter,
34
+ isOpenNewTab,
35
+ }
36
+ },
37
+ }
38
+ </script>
@@ -1,198 +1,198 @@
1
- <template>
2
- <div class="menu-wrapper">
3
- <template v-if="!item.children || item.children.lenght === 0">
4
- <app-link :to="toPath(item)" @click="clickMenu(toPath(item))">
5
- <el-menu-item
6
- :index="resolvePath(item.code, item.path, item.pageType)"
7
- :class="{ 'submenu-title-noDropdown': !isNest }"
8
- >
9
- <item
10
- :icon="item.iconName"
11
- :title="getI18nName(item)"
12
- :is-root="true"
13
- />
14
- </el-menu-item>
15
- </app-link>
16
- </template>
17
-
18
- <el-sub-menu
19
- v-else
20
- :index="resolvePath(item.code, item.path, item.pageType)"
21
- :show-timeout="0"
22
- :hide-timeout="50"
23
- :popper-append-to-body="false"
24
- popper-class="sidebar-container-popper"
25
- >
26
- <template v-slot:title>
27
- <item
28
- :icon="item.iconName"
29
- :title="getI18nName(item)"
30
- :has-children="item.children.length > 0 ? true : false"
31
- />
32
- </template>
33
-
34
- <template v-for="child in item.children">
35
- <sidebar-item
36
- v-if="child.children && child.children.length > 0"
37
- :is-nest="true"
38
- :item="child"
39
- class="nest-menu"
40
- />
41
- <app-link v-else :to="toPath(child)" @click="clickMenu(toPath(child))">
42
- <el-menu-item
43
- :index="resolvePath(child.code, child.path, child.pageType)"
44
- >
45
- <item :icon="child.iconName" :title="getI18nName(child)" />
46
- </el-menu-item>
47
- </app-link>
48
- </template>
49
- </el-sub-menu>
50
- </div>
51
- </template>
52
-
53
- <script>
54
- // import { isExternal } from 'imatrix-ui/src/utils'
55
- import Item from './Item'
56
- import AppLink from './Link.vue'
57
- import * as Vue from 'vue'
58
- import tabJs from '../../../api/tab'
59
- import { getI18nName } from '../../../utils/menu'
60
- // import { SidebarItemChild } from './SidebarItemChild.vue'
61
- export default {
62
- name: 'SidebarItem',
63
- components: { Item, AppLink },
64
- props: {
65
- // route object
66
- item: {
67
- type: Object,
68
- required: true,
69
- },
70
- isNest: {
71
- type: Boolean,
72
- default: false,
73
- },
74
- // basePath: {
75
- // type: String,
76
- // default: ''
77
- // }
78
- },
79
- data() {
80
- return {
81
- onlyOneChild: null,
82
- }
83
- },
84
- methods: {
85
- ...tabJs,
86
- hasOneShowingChild(children, parent) {
87
- if (children && children.length > 0) {
88
- this.onlyOneChild = children[0]
89
- }
90
- // When there is only one child router, the child router is displayed by default
91
- if (children.length === 1) {
92
- return true
93
- }
94
-
95
- // Show parent if there are no child router to display
96
- if (!children || children.length === 0) {
97
- // children不存在
98
- this.onlyOneChild = { ...parent, path: '', noShowingChildren: true }
99
- return true
100
- }
101
-
102
- return false
103
- },
104
- resolvePath(menuCode, pageCode, pageType) {
105
- if (this.isExternalLink(pageType)) {
106
- return '/dsc/' + menuCode + '~~'
107
- } else {
108
- return '/dsc/' + menuCode + '~~' + pageCode
109
- }
110
- },
111
- toPath(menu) {
112
- const toPathObj = {}
113
- const routePath = menu.path
114
- toPathObj.openWay = menu.openWay
115
- if (this.isExternalLink(menu.pageType)) {
116
- toPathObj.path = '/dsc-index/iframe-page'
117
- toPathObj.tabPath = '/dsc/iframe-page'
118
- toPathObj.query = {}
119
- toPathObj.query.src = routePath
120
- toPathObj.isExternal = true
121
- // 如果路径中没有拼系统编码,才需要把系统编码放到参数中
122
- toPathObj.query.customSystem =
123
- window.$vueApp.config.globalProperties.customSystem
124
- toPathObj.query._menuCode = menu.code
125
- toPathObj.query._menuName = getI18nName(menu)
126
- } else {
127
- const pageCode = routePath
128
- toPathObj.path = '/dsc-index/page'
129
- toPathObj.tabPath = '/dsc/page'
130
- toPathObj.query = {}
131
- toPathObj.query.pageCode = pageCode
132
- toPathObj.query.customSystem =
133
- window.$vueApp.config.globalProperties.customSystem
134
- toPathObj.query._menuCode = menu.code
135
- toPathObj.query._menuName = getI18nName(menu)
136
- }
137
- return toPathObj
138
- },
139
- // 是否已存在customSystem参数
140
- isHasCustomSystem(routePath) {
141
- if (routePath && routePath.indexOf('?') > 0) {
142
- const params = routePath.substring(routePath.indexOf('?') + 1)
143
- const paramArr = params.split('&')
144
- for (let i = 0; i < paramArr.length; i++) {
145
- const item = paramArr[i]
146
- const key = item.split('=')[0]
147
- if (key === 'customSystem') {
148
- return true
149
- }
150
- }
151
- }
152
- return false
153
- },
154
- clickMenu(toPathObj) {
155
- // console.log('clickMenu----toPathObj=', toPathObj)
156
- if (
157
- toPathObj.openWay &&
158
- toPathObj.openWay === 'NEW_PAGE_OPEN' &&
159
- toPathObj.query
160
- ) {
161
- // 新页签打开菜单
162
- let url = toPathObj.query.src
163
- if (url && url.indexOf('?') > 0) {
164
- url += '&'
165
- } else {
166
- url += '?'
167
- }
168
- if (toPathObj.query.customSystem) {
169
- url += 'customSystem=' + toPathObj.query.customSystem
170
- }
171
- if (toPathObj.query._menuCode) {
172
- url += '_menuCode=' + toPathObj.query._menuCode
173
- }
174
- if (toPathObj.query._menuCode) {
175
- url += '_menuName=' + toPathObj.query._menuName
176
- }
177
- window.open(url, toPathObj.query._menuCode)
178
- } else {
179
- // 刷新页签打开菜单
180
- this.addTabs(
181
- toPathObj.query,
182
- this.$store.state.tabContent.openTab,
183
- toPathObj.tabPath
184
- )
185
- }
186
- },
187
- isExternalLink(pageType) {
188
- if (pageType && pageType === 'iframe') {
189
- return true
190
- }
191
- return false
192
- },
193
- getI18nName(menu) {
194
- return getI18nName(menu)
195
- },
196
- },
197
- }
198
- </script>
1
+ <template>
2
+ <div class="menu-wrapper">
3
+ <template v-if="!item.children || item.children.lenght === 0">
4
+ <app-link :to="toPath(item)" @click="clickMenu(toPath(item))">
5
+ <el-menu-item
6
+ :index="resolvePath(item.code, item.path, item.pageType)"
7
+ :class="{ 'submenu-title-noDropdown': !isNest }"
8
+ >
9
+ <item
10
+ :icon="item.iconName"
11
+ :title="getI18nName(item)"
12
+ :is-root="true"
13
+ />
14
+ </el-menu-item>
15
+ </app-link>
16
+ </template>
17
+
18
+ <el-sub-menu
19
+ v-else
20
+ :index="resolvePath(item.code, item.path, item.pageType)"
21
+ :show-timeout="0"
22
+ :hide-timeout="50"
23
+ :popper-append-to-body="false"
24
+ popper-class="sidebar-container-popper"
25
+ >
26
+ <template v-slot:title>
27
+ <item
28
+ :icon="item.iconName"
29
+ :title="getI18nName(item)"
30
+ :has-children="item.children.length > 0 ? true : false"
31
+ />
32
+ </template>
33
+
34
+ <template v-for="child in item.children">
35
+ <sidebar-item
36
+ v-if="child.children && child.children.length > 0"
37
+ :is-nest="true"
38
+ :item="child"
39
+ class="nest-menu"
40
+ />
41
+ <app-link v-else :to="toPath(child)" @click="clickMenu(toPath(child))">
42
+ <el-menu-item
43
+ :index="resolvePath(child.code, child.path, child.pageType)"
44
+ >
45
+ <item :icon="child.iconName" :title="getI18nName(child)" />
46
+ </el-menu-item>
47
+ </app-link>
48
+ </template>
49
+ </el-sub-menu>
50
+ </div>
51
+ </template>
52
+
53
+ <script>
54
+ // import { isExternal } from 'imatrix-ui/src/utils'
55
+ import Item from './Item'
56
+ import AppLink from './Link.vue'
57
+ import * as Vue from 'vue'
58
+ import tabJs from '../../../api/tab'
59
+ import { getI18nName } from '../../../utils/menu'
60
+ // import { SidebarItemChild } from './SidebarItemChild.vue'
61
+ export default {
62
+ name: 'SidebarItem',
63
+ components: { Item, AppLink },
64
+ props: {
65
+ // route object
66
+ item: {
67
+ type: Object,
68
+ required: true,
69
+ },
70
+ isNest: {
71
+ type: Boolean,
72
+ default: false,
73
+ },
74
+ // basePath: {
75
+ // type: String,
76
+ // default: ''
77
+ // }
78
+ },
79
+ data() {
80
+ return {
81
+ onlyOneChild: null,
82
+ }
83
+ },
84
+ methods: {
85
+ ...tabJs,
86
+ hasOneShowingChild(children, parent) {
87
+ if (children && children.length > 0) {
88
+ this.onlyOneChild = children[0]
89
+ }
90
+ // When there is only one child router, the child router is displayed by default
91
+ if (children.length === 1) {
92
+ return true
93
+ }
94
+
95
+ // Show parent if there are no child router to display
96
+ if (!children || children.length === 0) {
97
+ // children不存在
98
+ this.onlyOneChild = { ...parent, path: '', noShowingChildren: true }
99
+ return true
100
+ }
101
+
102
+ return false
103
+ },
104
+ resolvePath(menuCode, pageCode, pageType) {
105
+ if (this.isExternalLink(pageType)) {
106
+ return '/dsc/' + menuCode + '~~'
107
+ } else {
108
+ return '/dsc/' + menuCode + '~~' + pageCode
109
+ }
110
+ },
111
+ toPath(menu) {
112
+ const toPathObj = {}
113
+ const routePath = menu.path
114
+ toPathObj.openWay = menu.openWay
115
+ if (this.isExternalLink(menu.pageType)) {
116
+ toPathObj.path = '/dsc-index/iframe-page'
117
+ toPathObj.tabPath = '/dsc/iframe-page'
118
+ toPathObj.query = {}
119
+ toPathObj.query.src = routePath
120
+ toPathObj.isExternal = true
121
+ // 如果路径中没有拼系统编码,才需要把系统编码放到参数中
122
+ toPathObj.query.customSystem =
123
+ window.$vueApp.config.globalProperties.customSystem
124
+ toPathObj.query._menuCode = menu.code
125
+ toPathObj.query._menuName = getI18nName(menu)
126
+ } else {
127
+ const pageCode = routePath
128
+ toPathObj.path = '/dsc-index/page'
129
+ toPathObj.tabPath = '/dsc/page'
130
+ toPathObj.query = {}
131
+ toPathObj.query.pageCode = pageCode
132
+ toPathObj.query.customSystem =
133
+ window.$vueApp.config.globalProperties.customSystem
134
+ toPathObj.query._menuCode = menu.code
135
+ toPathObj.query._menuName = getI18nName(menu)
136
+ }
137
+ return toPathObj
138
+ },
139
+ // 是否已存在customSystem参数
140
+ isHasCustomSystem(routePath) {
141
+ if (routePath && routePath.indexOf('?') > 0) {
142
+ const params = routePath.substring(routePath.indexOf('?') + 1)
143
+ const paramArr = params.split('&')
144
+ for (let i = 0; i < paramArr.length; i++) {
145
+ const item = paramArr[i]
146
+ const key = item.split('=')[0]
147
+ if (key === 'customSystem') {
148
+ return true
149
+ }
150
+ }
151
+ }
152
+ return false
153
+ },
154
+ clickMenu(toPathObj) {
155
+ // console.log('clickMenu----toPathObj=', toPathObj)
156
+ if (
157
+ toPathObj.openWay &&
158
+ toPathObj.openWay === 'NEW_PAGE_OPEN' &&
159
+ toPathObj.query
160
+ ) {
161
+ // 新页签打开菜单
162
+ let url = toPathObj.query.src
163
+ if (url && url.indexOf('?') > 0) {
164
+ url += '&'
165
+ } else {
166
+ url += '?'
167
+ }
168
+ if (toPathObj.query.customSystem) {
169
+ url += 'customSystem=' + toPathObj.query.customSystem
170
+ }
171
+ if (toPathObj.query._menuCode) {
172
+ url += '_menuCode=' + toPathObj.query._menuCode
173
+ }
174
+ if (toPathObj.query._menuCode) {
175
+ url += '_menuName=' + toPathObj.query._menuName
176
+ }
177
+ window.open(url, toPathObj.query._menuCode)
178
+ } else {
179
+ // 刷新页签打开菜单
180
+ this.addTabs(
181
+ toPathObj.query,
182
+ this.$store.state.tabContent.openTab,
183
+ toPathObj.tabPath
184
+ )
185
+ }
186
+ },
187
+ isExternalLink(pageType) {
188
+ if (pageType && pageType === 'iframe') {
189
+ return true
190
+ }
191
+ return false
192
+ },
193
+ getI18nName(menu) {
194
+ return getI18nName(menu)
195
+ },
196
+ },
197
+ }
198
+ </script>