@lambo-design/shared 1.0.0-beta.36 → 1.0.0-beta.361

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 (259) hide show
  1. package/config/config.js +20 -3
  2. package/config/index.js +7 -2
  3. package/config/locale.js +61 -0
  4. package/config/themes/atrovirens/atrovirens.css +590 -0
  5. package/config/themes/atrovirens/atrovirens.css.map +1 -0
  6. package/config/themes/atrovirens/atrovirens.less +681 -0
  7. package/config/themes/atrovirens/var.css +29 -0
  8. package/config/themes/atrovirens/var.css.map +1 -0
  9. package/config/themes/atrovirens/var.less +689 -0
  10. package/config/themes/blue/blue.css +590 -0
  11. package/config/themes/blue/blue.css.map +1 -0
  12. package/config/themes/blue/blue.less +684 -0
  13. package/config/themes/blue/var.less +692 -0
  14. package/config/themes/blue-208/blue-208.css +590 -0
  15. package/config/themes/blue-208/blue-208.css.map +1 -0
  16. package/config/themes/blue-208/blue-208.less +685 -0
  17. package/config/themes/blue-208/var.less +691 -0
  18. package/config/themes/blue-digital/blue-digital.css +590 -0
  19. package/config/themes/blue-digital/blue-digital.css.map +1 -0
  20. package/config/themes/blue-digital/blue-digital.less +684 -0
  21. package/config/themes/blue-digital/var.less +692 -0
  22. package/config/themes/blue-leaf/blue-leaf.css +590 -0
  23. package/config/themes/blue-leaf/blue-leaf.css.map +1 -0
  24. package/config/themes/blue-leaf/blue-leaf.less +685 -0
  25. package/config/themes/blue-leaf/var.less +691 -0
  26. package/config/themes/blue-white/blue-white.css +590 -0
  27. package/config/themes/blue-white/blue-white.css.map +1 -0
  28. package/config/themes/blue-white/blue-white.less +685 -0
  29. package/config/themes/blue-white/var.less +691 -0
  30. package/config/themes/blue-white-big/blue-white-big.css +590 -0
  31. package/config/themes/blue-white-big/blue-white-big.css.map +1 -0
  32. package/config/themes/blue-white-big/blue-white-big.less +685 -0
  33. package/config/themes/blue-white-big/var.less +691 -0
  34. package/config/themes/blue-white-tight/blue-white-tight.css +591 -0
  35. package/config/themes/blue-white-tight/blue-white-tight.css.map +1 -0
  36. package/config/themes/blue-white-tight/blue-white-tight.less +685 -0
  37. package/config/themes/blue-white-tight/var.less +693 -0
  38. package/config/themes/canglan/canglan.css +590 -0
  39. package/config/themes/canglan/canglan.css.map +1 -0
  40. package/config/themes/canglan/canglan.less +682 -0
  41. package/config/themes/canglan/var.less +693 -0
  42. package/config/themes/cuiwei/cuiwei.css +590 -0
  43. package/config/themes/cuiwei/cuiwei.css.map +1 -0
  44. package/config/themes/cuiwei/cuiwei.less +682 -0
  45. package/config/themes/cuiwei/var.less +691 -0
  46. package/config/themes/danqing/danqing.css +590 -0
  47. package/config/themes/danqing/danqing.css.map +1 -0
  48. package/config/themes/danqing/danqing.less +682 -0
  49. package/config/themes/danqing/danqing.wxss +576 -0
  50. package/config/themes/danqing/var.less +696 -0
  51. package/config/themes/deep/deep.css +590 -0
  52. package/config/themes/deep/deep.css.map +1 -0
  53. package/config/themes/deep/deep.less +682 -0
  54. package/config/themes/deep/var.less +694 -0
  55. package/config/themes/default/default.css +404 -57
  56. package/config/themes/default/default.css.map +1 -1
  57. package/config/themes/default/default.less +381 -16
  58. package/config/themes/default/var.less +390 -11
  59. package/config/themes/eap/eap.css +590 -0
  60. package/config/themes/eap/eap.css.map +1 -0
  61. package/config/themes/eap/eap.less +685 -0
  62. package/config/themes/eap/var.less +693 -0
  63. package/config/themes/gold/gold.css +590 -0
  64. package/config/themes/gold/gold.css.map +1 -0
  65. package/config/themes/gold/gold.less +685 -0
  66. package/config/themes/gold/var.css +0 -0
  67. package/config/themes/gold/var.css.map +0 -0
  68. package/config/themes/gold/var.less +386 -5
  69. package/config/themes/index.js +32 -4
  70. package/config/themes/lime/lime.css +590 -0
  71. package/config/themes/lime/lime.css.map +1 -0
  72. package/config/themes/lime/lime.less +685 -0
  73. package/config/themes/lime/var.less +385 -5
  74. package/config/themes/orange/orange.css +354 -7
  75. package/config/themes/orange/orange.css.map +1 -1
  76. package/config/themes/orange/orange.less +366 -0
  77. package/config/themes/orange/var.less +386 -5
  78. package/config/themes/red/red.css +354 -7
  79. package/config/themes/red/red.css.map +1 -1
  80. package/config/themes/red/red.less +366 -0
  81. package/config/themes/red/var.less +386 -5
  82. package/config/themes/sichuan/sichuan.css +590 -0
  83. package/config/themes/sichuan/sichuan.css.map +1 -0
  84. package/config/themes/sichuan/sichuan.less +685 -0
  85. package/config/themes/sichuan/var.less +691 -0
  86. package/config/themes/theme-atrovirens.js +572 -0
  87. package/config/themes/theme-b208.js +572 -0
  88. package/config/themes/theme-bd.js +572 -0
  89. package/config/themes/theme-bl.js +572 -0
  90. package/config/themes/theme-blue.js +572 -0
  91. package/config/themes/theme-bw.js +572 -0
  92. package/config/themes/theme-bwb.js +572 -0
  93. package/config/themes/theme-bwt.js +573 -0
  94. package/config/themes/theme-canglan.js +574 -0
  95. package/config/themes/theme-cuiwei.js +574 -0
  96. package/config/themes/theme-danqing.js +575 -0
  97. package/config/themes/theme-deep.js +572 -0
  98. package/config/themes/theme-default.js +379 -60
  99. package/config/themes/theme-eap.js +572 -0
  100. package/config/themes/theme-gold.js +327 -8
  101. package/config/themes/theme-lime.js +327 -8
  102. package/config/themes/theme-orange.js +561 -29
  103. package/config/themes/theme-red.js +564 -33
  104. package/config/themes/theme-sichuan.js +572 -0
  105. package/config/themes/theme-white.js +572 -0
  106. package/config/themes/white/var.less +692 -0
  107. package/config/themes/white/white.css +590 -0
  108. package/config/themes/white/white.css.map +1 -0
  109. package/config/themes/white/white.less +685 -0
  110. package/directives/module/print.js +1 -0
  111. package/directives/module/vue-print-nb/README.md +63 -0
  112. package/directives/module/vue-print-nb/print.js +94 -0
  113. package/directives/module/vue-print-nb/printarea.js +532 -0
  114. package/index.js +7 -1
  115. package/nstyles/common.less +197 -0
  116. package/nstyles/components/404.less +46 -0
  117. package/nstyles/components/button.less +34 -0
  118. package/nstyles/components/date-picker.less +41 -0
  119. package/nstyles/components/drawer.less +20 -0
  120. package/nstyles/components/dropdown.less +18 -0
  121. package/nstyles/components/excel-flow.less +72 -0
  122. package/nstyles/components/form.less +314 -0
  123. package/nstyles/components/index.less +23 -0
  124. package/nstyles/components/layout/collect.less +10 -0
  125. package/nstyles/components/layout/detail-view.less +107 -0
  126. package/nstyles/components/layout/full-screen.less +7 -0
  127. package/nstyles/components/layout/index.less +7 -0
  128. package/nstyles/components/layout/other-menu.less +142 -0
  129. package/nstyles/components/layout/page-view.less +101 -0
  130. package/nstyles/components/layout/sider-trigger.less +41 -0
  131. package/nstyles/components/layout/tags-nav.less +113 -0
  132. package/nstyles/components/modal.less +90 -0
  133. package/nstyles/components/n-button.less +131 -0
  134. package/nstyles/components/n-image-preview.less +131 -0
  135. package/nstyles/components/n-model/index.less +19 -0
  136. package/nstyles/components/n-model/report-index.less +43 -0
  137. package/nstyles/components/n-panel.less +41 -0
  138. package/nstyles/components/n-picker.less +37 -0
  139. package/nstyles/components/n-sign.less +17 -0
  140. package/nstyles/components/n-tooltip.less +10 -0
  141. package/nstyles/components/panel.less +31 -0
  142. package/nstyles/components/select.less +3 -0
  143. package/nstyles/components/sign.less +27 -0
  144. package/nstyles/components/table.less +523 -0
  145. package/nstyles/components/tree.less +166 -0
  146. package/nstyles/components/upload.less +174 -0
  147. package/nstyles/index.css +2676 -0
  148. package/nstyles/index.css.map +1 -0
  149. package/nstyles/index.less +5 -0
  150. package/nstyles/reset.less +73 -0
  151. package/nstyles/third/ag.less +226 -0
  152. package/nstyles/third/icons/sort-desc.svg +1 -0
  153. package/nstyles/third/icons/sort-up.svg +1 -0
  154. package/nstyles/third/icons/sorting.svg +1 -0
  155. package/nstyles/third/index.less +11 -0
  156. package/nstyles/third/view-design.less +402 -0
  157. package/nstyles/variables/base.less +143 -0
  158. package/nstyles/variables/index.less +4 -0
  159. package/nstyles/variables/theme/default/button.less +7 -0
  160. package/nstyles/variables/theme/default/common.less +60 -0
  161. package/nstyles/variables/theme/default/index.less +7 -0
  162. package/nstyles/variables/theme/default/layout.less +40 -0
  163. package/nstyles/variables/theme/default/table.less +37 -0
  164. package/nstyles/variables/theme/default/tag.less +3 -0
  165. package/nstyles/variables/theme/default/upload.less +3 -0
  166. package/nstyles/variables/theme/index.less +13 -0
  167. package/nstyles/variables/theme/lsv/button.less +7 -0
  168. package/nstyles/variables/theme/lsv/common.less +39 -0
  169. package/nstyles/variables/theme/lsv/index.less +5 -0
  170. package/nstyles/variables/theme/lsv/layout.less +21 -0
  171. package/nstyles/variables/theme/lsv/table.less +20 -0
  172. package/nstyles/variables/theme/lsv/tag.less +3 -0
  173. package/nstyles/variables/theme/small/button.less +7 -0
  174. package/nstyles/variables/theme/small/common.less +41 -0
  175. package/nstyles/variables/theme/small/index.less +5 -0
  176. package/nstyles/variables/theme/small/layout.less +21 -0
  177. package/nstyles/variables/theme/small/table.less +17 -0
  178. package/nstyles/variables/theme/small/tag.less +3 -0
  179. package/package.json +28 -7
  180. package/plugin/index.js +12 -0
  181. package/plugin/module/date-format.js +30 -0
  182. package/plugin/module/loading.js +26 -0
  183. package/plugin/module/warn-handler.js +11 -0
  184. package/styles/image/indicator-card-header.png +0 -0
  185. package/styles/image/inspur.png +0 -0
  186. package/styles/image/lan_navigator.png +0 -0
  187. package/styles/image/layout-header-bg-canglan.png +0 -0
  188. package/styles/image/layout-header-bg-cuiwei.png +0 -0
  189. package/styles/image/lv_navigator.png +0 -0
  190. package/utils/ajax/abort-controller.js +70 -0
  191. package/utils/ajax/cancel-reason.js +25 -0
  192. package/utils/ajax/cancel-token.js +83 -0
  193. package/utils/ajax/content-type.js +30 -0
  194. package/utils/ajax/headers.js +11 -0
  195. package/utils/ajax/interceptors.js +45 -10
  196. package/utils/ajax/sseFetchUtil.js +118 -0
  197. package/utils/ajax/throttle.js +49 -0
  198. package/utils/assist.js +155 -27
  199. package/utils/base64.js +126 -0
  200. package/utils/blob.js +47 -0
  201. package/utils/context-menu.js +264 -0
  202. package/utils/crypto/aes.js +23 -0
  203. package/utils/crypto/index.js +10 -0
  204. package/utils/crypto/rsa.js +23 -0
  205. package/utils/date.js +334 -305
  206. package/utils/dict/built-in-dict.js +20 -0
  207. package/utils/dict/index.js +191 -0
  208. package/utils/event.js +72 -0
  209. package/utils/excel.js +504 -290
  210. package/utils/file.js +19 -0
  211. package/utils/form/validate.js +29 -0
  212. package/utils/getChild.js +87 -0
  213. package/utils/half-year.js +68 -0
  214. package/utils/index.js +37 -0
  215. package/utils/json.js +44 -0
  216. package/utils/locale/en-US.js +179 -0
  217. package/utils/locale/zh-CN.js +183 -0
  218. package/utils/lodop.js +5 -0
  219. package/utils/menu/generatorDynamicRouter.js +301 -0
  220. package/utils/menu/index.js +426 -15
  221. package/utils/mime_type.js +67 -0
  222. package/utils/modelerUtil.js +4 -1
  223. package/utils/n/api.js +42 -0
  224. package/utils/n/date.js +57 -0
  225. package/utils/n/index.js +10 -0
  226. package/utils/n/is-type.js +176 -0
  227. package/utils/n/number.js +144 -0
  228. package/utils/n/permission-cache.js +11 -0
  229. package/utils/n/reuqest/axiosN.js +17 -0
  230. package/utils/n/reuqest/content-type.js +19 -0
  231. package/utils/n/reuqest/interceptors.js +95 -0
  232. package/utils/n/reuqest/url-params.js +12 -0
  233. package/utils/n/storage.js +51 -0
  234. package/utils/n/token.js +51 -0
  235. package/utils/n/user-cache.js +11 -0
  236. package/utils/n/user.js +34 -0
  237. package/utils/n/uuid.js +16 -0
  238. package/utils/n-generator-routers.js +208 -0
  239. package/utils/n-router.js +205 -0
  240. package/utils/n-theme.js +30 -0
  241. package/utils/number.js +72 -15
  242. package/utils/oss.js +57 -0
  243. package/utils/platform.js +951 -31
  244. package/utils/quarter.js +58 -0
  245. package/utils/storage.js +198 -0
  246. package/utils/style.js +24 -0
  247. package/utils/theme.js +98 -3
  248. package/utils/transfer-queue.js +7 -0
  249. package/utils/transform.js +205 -0
  250. package/utils/type.js +102 -0
  251. package/utils/util.js +795 -0
  252. package/utils/vForm.js +349 -0
  253. package/utils/validator.js +181 -0
  254. package/config/themes/gold/default.css +0 -243
  255. package/config/themes/gold/default.css.map +0 -1
  256. package/config/themes/gold/default.less +0 -320
  257. package/config/themes/lime/default.css +0 -243
  258. package/config/themes/lime/default.css.map +0 -1
  259. package/config/themes/lime/default.less +0 -320
@@ -1,3 +1,8 @@
1
+ import config from "../../config/config"
2
+ import {deepCopy} from "../assist";
3
+ import {getLocalStorage, getUrlParams} from "../platform"
4
+ import {generatorMenuRouter as generatorMenuRouterNew} from "./generatorDynamicRouter";
5
+ import {getRootPermission} from "../getChild";
1
6
  /**
2
7
  * 判断是否存在路由
3
8
  * @param $router
@@ -16,16 +21,58 @@ export const hasRoute = ($router, name) => {
16
21
  * @returns {*|boolean}
17
22
  */
18
23
  export const hasRoutePath = ($router, path) => {
19
- let routes = $router.getRoutes();
20
- let res = routes.filter(item => item.path === path)
21
- return res && res.length > 0
24
+ if ($router && path) {
25
+ let routes = $router.getRoutes();
26
+ if (path.trim().startsWith("dida/")) {
27
+ path = path.trim().replace("dida/","");
28
+ if (!path.startsWith("/")) {
29
+ path = "/" + path;
30
+ }
31
+ } else if (path.trim().startsWith("dareport/")) {
32
+ path = path.trim().replace("dareport/","");
33
+ if (!path.startsWith("/")) {
34
+ path = "/" + path;
35
+ }
36
+ } else if (path.trim().startsWith("/" + config.routerBase + "/")) {
37
+ path = "/" + path.replace("/" + config.routerBase + "/","")
38
+ }
39
+ let res = routes.filter(item => item.path === path)
40
+ return res && res.length > 0
41
+ }
42
+ return false
22
43
  }
23
44
  /**
24
45
  * 动态生成菜单
25
46
  * @param permissionList
26
47
  * @returns []
27
48
  */
28
- export const generatorMenuList = (permissionList,appId) => {
49
+ export const generatorMenuList = (permissionList,appId,generateType = 'router') => {
50
+ let menuRouter = generatorMenuRouterNew(permissionList,appId,generateType);
51
+ return menuRouter && menuRouter.menuData ? menuRouter.menuData : [];
52
+ };
53
+
54
+ /**
55
+ * 生成租户路由参数
56
+ * @returns {*|object}
57
+ */
58
+ export const generateTenantQuery = () => {
59
+ let systemType = getLocalStorage('systemType')
60
+ let tenantCode = getLocalStorage('tenantCode')
61
+ let query = {}
62
+ if (systemType && tenantCode) {
63
+ query = {
64
+ systemType: systemType,
65
+ tenantCode: tenantCode
66
+ }
67
+ }
68
+ return query
69
+ }
70
+ /**
71
+ * 动态生成菜单
72
+ * @param generatorMenuRouter
73
+ * @returns []
74
+ */
75
+ export const generatorMenuRouter = (permissionList,appId,generateType = 'router') => {
29
76
  let menuData = [],
30
77
  pageNode = {
31
78
  path: "/page",
@@ -37,36 +84,38 @@ export const generatorMenuList = (permissionList,appId) => {
37
84
  component: "Main",
38
85
  children: []
39
86
  };
40
- listToMenuTree(permissionList, menuData, pageNode, "0", [], true,appId);
41
-
42
- /*if (pageNode.children.length > 0) {
43
- menuData.push(pageNode);
44
- }*/
45
- return menuData;
87
+ listToMenuTree(permissionList, menuData, pageNode, "0", [], true,appId,generateType);
88
+ return {menuData,pageNode};
46
89
  };
47
90
 
48
91
 
49
-
50
92
  /**
51
93
  * 数组转树形结构
52
94
  */
53
- const listToMenuTree = (list, menuTree, pageNode, parentId, crumbs, root, appId) => {
95
+ const listToMenuTree = (list, menuTree, pageNode, parentId, crumbs, root, appId,generateType = 'router') => {
54
96
  if (list == null) {
55
97
  return;
56
98
  }
57
99
  list.forEach(item => {
58
- if (item.appId == appId) {
100
+ let appIdCondition = !appId || item.appId == appId || appId.indexOf(item.appId) > -1;//过滤是否要求的应用
101
+ let hideInMenuCondition = !(item.hasOwnProperty("hideInMenu") && item.hideInMenu);//过滤是否隐藏的菜单
102
+ if ((generateType && generateType == 'router' && appIdCondition) ||
103
+ (generateType == 'menu' && appIdCondition && hideInMenuCondition)) {
59
104
  // 判断是否为父级菜单
60
105
  if (item.pid === parentId) {
61
106
  if (item.type === 1 || item.type === 2) {
62
107
  let node = {
63
108
  meta: {
109
+ data: deepCopy(item),
64
110
  appId: item.appId,
65
111
  title: item.label,
66
112
  icon: item.icon,
67
113
  crumbs: [...crumbs],
68
- activeName: item.name
114
+ activeName: item.name,
115
+ notCache: item.notCache ? true : false,
116
+ hideInMenu: item.hideInMenu ? true : false
69
117
  },
118
+ permissionId: item.permissionId,
70
119
  type: item.type,
71
120
  pid: item.pid,
72
121
  component: item.name,
@@ -96,7 +145,8 @@ const listToMenuTree = (list, menuTree, pageNode, parentId, crumbs, root, appId)
96
145
  item.permissionId,
97
146
  node.meta.crumbs,
98
147
  false,
99
- appId
148
+ appId,
149
+ generateType
100
150
  );
101
151
  // 删掉不存在 children 值的属性
102
152
  if (node.children.length <= 0) {
@@ -108,12 +158,15 @@ const listToMenuTree = (list, menuTree, pageNode, parentId, crumbs, root, appId)
108
158
  if (item.type === 4) {
109
159
  let child = {
110
160
  meta: {
161
+ data: deepCopy(item),
162
+ appId: item.appId,
111
163
  title: item.label,
112
164
  hideInMenu: true,
113
165
  notCache: true,
114
166
  crumbs: [...crumbs],
115
167
  type: item.type
116
168
  },
169
+ permissionId: item.permissionId,
117
170
  type: item.type,
118
171
  pid: item.pid,
119
172
  component: item.name,
@@ -132,4 +185,362 @@ const listToMenuTree = (list, menuTree, pageNode, parentId, crumbs, root, appId)
132
185
  }
133
186
  });
134
187
  };
188
+
189
+ /**
190
+ * 动态生成路由
191
+ * @param generatorMenuRouter
192
+ * @returns []
193
+ */
194
+ export const generatorDynamicRouter = (permissionList,constantRouterComponents,appIds = null,generateType = 'router') => {
195
+ let allMenu = generatorMenuRouter(permissionList, appIds,generateType);
196
+ let menuData = allMenu.menuData;
197
+ let pageNode = allMenu.pageNode;
198
+ if (menuData && pageNode && pageNode.children.length > 0) {
199
+ menuData.push(pageNode);
200
+ }
201
+ //给路由添加面包屑属性,解决示例页面左侧菜单点击不选中的问题
202
+ //routesAddCrumbs(exampleMenuData,[]);
203
+ //menuData = menuData.concat(exampleMenuData)
204
+ let dynamicRouter = generator(menuData,constantRouterComponents);
205
+
206
+ return dynamicRouter;
207
+ }
208
+ /**
209
+ * 路由添加面包屑属性
210
+ */
211
+ export const routesAddCrumbs = (routes ,crumbs) => {
212
+ routes.forEach(item => {
213
+ if (item.meta.hasOwnProperty('crumbs')){
214
+ item.meta.crumbs.push({
215
+ icon: item.meta.icon,
216
+ name: item.name,
217
+ title: item.meta.title,
218
+ type: item.type
219
+ });
220
+ }else{
221
+ item.meta['crumbs'] = [...crumbs];
222
+ item.meta.crumbs.push({
223
+ icon: item.meta.icon,
224
+ name: item.name,
225
+ title: item.meta.title,
226
+ type: item.type
227
+ });
228
+ }
229
+ if (item.hasOwnProperty("children")){
230
+ routesAddCrumbs(item.children,item.meta.crumbs)
231
+ }
232
+ });
233
+ }
234
+
235
+ /*
236
+ 生成 vue-router 层级路由表
237
+ */
238
+ const generator = (menuData,constantRouterComponents) => {
239
+ for (let item of menuData) {
240
+ if (item.component && typeof item.component == "string") {
241
+ const target = constantRouterComponents[item.component];
242
+ if (target) {
243
+ if (target.component) {
244
+ if (typeof target.component == "string") {
245
+ // 解决路由name与组件name不一致导致的keeplive不生效的问题
246
+ try {
247
+ //let componentPath = '@/view/' + target.component;
248
+ item.component = resolve =>
249
+ require(['@/view/'+ target.component], data => {
250
+ data.default.name = item.name;
251
+ resolve(data);
252
+ });
253
+ }catch (e) {
254
+ delete item.component
255
+ }
256
+ } else {
257
+ item.component = target.component;
258
+ }
259
+ }
260
+ if (target.url) {
261
+ let path = target.url;
262
+ let query = {};
263
+ if (path.indexOf("?") > -1) {
264
+ query = getUrlParams(path.substr(path.indexOf("?")));
265
+ item.query = query;
266
+ path = path.substr(0,path.indexOf("?"));
267
+ }
268
+ item.path = path;
269
+ }
270
+ if (item.uri) {
271
+ item.meta.uriParam = item.uri;
272
+ }
273
+ if (target.notCache) {
274
+ item.meta.notCache = target.notCache;
275
+ }
276
+ if (target.hideInMenu) {
277
+ item.meta.hideInMenu = target.hideInMenu;
278
+ }
279
+ }
280
+ if (item.uri) {
281
+ if (item.uri.startsWith("/")) {
282
+ item.uri = item.uri.substr(1);
283
+ }
284
+ let uri = item.uri;
285
+ if (uri.startsWith(config.routerBase + "/")) {
286
+ uri = uri.replace(config.routerBase + "/","")
287
+ }
288
+ if (uri.startsWith("dida/")) {
289
+ item.meta.notCache = true;
290
+ let path = uri;
291
+ let query = {};
292
+ if (path.indexOf("?") > -1) {
293
+ query = getUrlParams(path.substr(path.indexOf("?")));
294
+ item.query = query;
295
+ path = path.substr(0,path.indexOf("?"));
296
+ }
297
+ try{
298
+ //let path = '@/view/dida/dida-page';
299
+ item.component = resolve => {
300
+ require(['@/view/dida/dida-page'], data => {
301
+ data.default.name = item.name;
302
+ resolve(data);
303
+ });
304
+ };
305
+ }catch (e){
306
+ delete item.component
307
+ }
308
+ item.path = "/" + path;
309
+ } else if(uri.startsWith("dareport/")){
310
+ item.meta.notCache = true;
311
+ let path = uri;
312
+ let query = {};
313
+ if (path.indexOf("?") > -1) {
314
+ query = getUrlParams(path.substr(path.indexOf("?")));
315
+ item.query = query;
316
+ path = path.substr(0,path.indexOf("?"));
317
+ }
318
+ try{
319
+ item.component = resolve => {
320
+ require(['@/view/dida/dida-page'], data => {
321
+ data.default.name = item.name;
322
+ resolve(data);
323
+ });
324
+ };
325
+ }catch (e){
326
+ delete item.component
327
+ }
328
+ item.path = "/" + path;
329
+ } else {
330
+ try{
331
+ let path = item.uri;
332
+ if (item.uri.startsWith(config.routerBase + "/")) {
333
+ path = path.replace(config.routerBase + "/","")
334
+ }
335
+ let query = {};
336
+ if (path.indexOf("?") > -1) {
337
+ query = getUrlParams(path.substr(path.indexOf("?")));
338
+ path = path.substr(0,path.indexOf("?"));
339
+ }
340
+ if (target && target.component) {
341
+
342
+ } else {
343
+ let component = require('@/view/' + path);
344
+ if (component) {
345
+ item.component = resolve => {
346
+ require(['@/view/' + path], data => {
347
+ data.default.name = item.name;
348
+ resolve(data);
349
+ });
350
+ };
351
+ } else {
352
+ //console.warn(`${item.name}(${item.uri})页面不存在`)
353
+ delete item.component;
354
+ }
355
+ }
356
+ if (target && target.url) {
357
+
358
+ } else {
359
+ item.path = "/" + path;
360
+ item.query = query;
361
+ }
362
+ }catch (e){
363
+ //console.warn(`${item.name}(${item.uri})页面不存在`)
364
+ delete item.component;
365
+ }
366
+ }
367
+ }
368
+ if (item.path == null) {
369
+ item.path = "";
370
+ }
371
+ if (item.component && typeof item.component == "string") {
372
+ delete item.component;
373
+ }
374
+ if (item.children && item.children.length > 0) {
375
+ generator(item.children,constantRouterComponents);
376
+ }
377
+ }
378
+ }
379
+ return menuData;
380
+ };
381
+
382
+ /**
383
+ * 根据权限组织tab数据
384
+ * @param originMenuList
385
+ * @param name
386
+ * @param appId
387
+ * @returns {{}}
388
+ */
389
+ export const generateTabDataFromPermission = (originMenuList,name,appId) => {
390
+ let menuItem = {};
391
+ if (name && originMenuList) {
392
+ let originalMenu = originMenuList.find(item => item.name == name && item.type && item.type == '2' && (appId && item.appId == appId || !appId));
393
+ if (originalMenu && originalMenu.name) {
394
+ menuItem = {
395
+ meta: {
396
+ data: originalMenu,
397
+ appId: originalMenu.appId,
398
+ title: originalMenu.label,
399
+ icon: originalMenu.icon,
400
+ crumbs: [],
401
+ activeName: originalMenu.name
402
+ },
403
+ permissionId: originalMenu.permissionId,
404
+ pid: originalMenu.pid,
405
+ type: originalMenu.type,
406
+ name: originalMenu.name,
407
+ uri: originalMenu.uri
408
+ }
409
+ }
410
+ }
411
+ return menuItem;
412
+ }
413
+
414
+ /**
415
+ * 根据权限组织tab数据
416
+ * @param originMenuList
417
+ * @param name
418
+ * @param appList
419
+ * @param appId
420
+ * @returns {{}}
421
+ */
422
+ export const generateTabDataFromPermissionDefaultMain = (originMenuList,name,appList,appId) => {
423
+ let menuItem = {};
424
+ if (name && originMenuList) {
425
+ let originalMenu = originMenuList.find(item => item.name == name && item.type && item.type == '2' && appList.some(app => app.appId === item.appId) && (appId && item.appId == appId || !appId));
426
+ if (originalMenu && originalMenu.name) {
427
+ menuItem = {
428
+ meta: {
429
+ data: originalMenu,
430
+ appId: originalMenu.appId,
431
+ title: originalMenu.label,
432
+ icon: originalMenu.icon,
433
+ crumbs: [],
434
+ activeName: originalMenu.name
435
+ },
436
+ permissionId: originalMenu.permissionId,
437
+ pid: originalMenu.pid,
438
+ type: originalMenu.type,
439
+ name: originalMenu.name,
440
+ uri: originalMenu.uri
441
+ }
442
+ }
443
+ }
444
+ return menuItem;
445
+ }
446
+
447
+
448
+ /**
449
+ * singleApp根据权限组织tab数据
450
+ * @param originMenuList
451
+ * @param name
452
+ * @param appId
453
+ * @returns {{}}
454
+ */
455
+ export const generateTabDataFromPermissionSingleApp = (originMenuList,name,appList,appId) => {
456
+ let menuItem = {};
457
+ if (name && originMenuList) {
458
+ let originalMenu = originMenuList.find(item => item.name == name && item.type && item.type == '2' && appList.some(app => app.appId === item.appId) && (appId && item.appId == appId || !appId));
459
+ if (originalMenu && originalMenu.name) {
460
+ const rootPermission = getRootPermission(originMenuList, originalMenu)
461
+ menuItem = {
462
+ meta: {
463
+ data: originalMenu,
464
+ appId: rootPermission.permissionId,
465
+ title: originalMenu.label,
466
+ icon: originalMenu.icon,
467
+ crumbs: [],
468
+ activeName: originalMenu.name
469
+ },
470
+ permissionId: originalMenu.permissionId,
471
+ pid: originalMenu.pid,
472
+ type: originalMenu.type,
473
+ name: originalMenu.name,
474
+ uri: originalMenu.uri
475
+ }
476
+ }
477
+ }
478
+ return menuItem;
479
+ }
480
+
481
+ /**
482
+ * 构建详情菜单对象
483
+ * @param {Object} parentMenu - 父级菜单
484
+ * @param {Object} childMenu - 子菜单
485
+ * @param {Object} detailInfoJson - 详情信息 JSON
486
+ * @returns {Object} 菜单对象
487
+ */
488
+ export const buildDetailMenu = (parentMenu, childMenu, detailInfoJson) => {
489
+ const params = buildParams(detailInfoJson, ['name', 'detailName'])
490
+
491
+ parentMenu.fullPath = childMenu.uri + params
492
+ parentMenu.uri = parentMenu.fullPath
493
+
494
+ return parentMenu
495
+ }
496
+
497
+ /**
498
+ * 构建 URL 参数字符串
499
+ * @param {Object} data - 参数对象
500
+ * @param {Array} excludeKeys - 需要排除的键名数组
501
+ * @returns {String} 参数字符串
502
+ */
503
+ export const buildParams = (data, excludeKeys = []) => {
504
+ const keys = Object.keys(data)
505
+ if (keys.length <= excludeKeys.length) {
506
+ return ''
507
+ }
508
+
509
+ let params = ''
510
+ for (let queryKey in data) {
511
+ if (excludeKeys.includes(queryKey)) {
512
+ continue
513
+ }
514
+ params += queryKey + '=' + data[queryKey] + '&'
515
+ }
516
+
517
+ params = '?' + params
518
+ return params.slice(0, -1);
519
+ }
520
+
521
+ /**
522
+ * 查找父级菜单
523
+ * @param {Array} originalPermissionList - 权限列表
524
+ * @param {Array} appList - 应用列表
525
+ * @param {String} menuName - 菜单名称
526
+ * @returns {Array} 父级菜单数组
527
+ */
528
+ export const findParentMenu = (originalPermissionList, appList, menuName) => {
529
+ return originalPermissionList.filter((item) => {
530
+ return menuName === item.name && item.type == '2' && appList && appList.some(app => app.appId === item.appId)
531
+ })
532
+ }
533
+ /**
534
+ * 查找子菜单
535
+ * @param {Array} originalPermissionList - 权限列表
536
+ * @param {Object} parentMenu - 父级菜单
537
+ * @param {String} detailName - 详情名称
538
+ * @returns {Array} 子菜单数组
539
+ */
540
+ export const findChildMenu = (originalPermissionList, parentMenu, detailName) => {
541
+ return originalPermissionList.filter((item) => {
542
+ return item.type && item.type == '4' && item.pid == parentMenu.permissionId && detailName === item.name
543
+ })
544
+ }
545
+
135
546
  export default generatorMenuList;
@@ -0,0 +1,67 @@
1
+ export const MIME_TYPE = {
2
+ aac: 'audio/aac',
3
+ abw: 'application/x-abiword',
4
+ arc: 'application/x-freearc',
5
+ avi: 'video/x-msvideo',
6
+ azw: 'application/vnd.amazon.ebook',
7
+ bin: 'application/octet-stream',
8
+ bmp: 'image/bmp',
9
+ bz: 'application/x-bzip',
10
+ bz2: 'application/x-bzip2',
11
+ csh: 'application/x-csh',
12
+ css: 'text/css',
13
+ csv: 'text/csv',
14
+ doc: 'application/msword',
15
+ docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
16
+ eot: 'application/vnd.ms-fontobject',
17
+ epub: 'application/epub+zip',
18
+ gif: 'image/gif',
19
+ html: 'text/html',
20
+ ico: 'image/vnd.microsoft.icon',
21
+ ics: 'text/calendar',
22
+ jar: 'application/java-archive',
23
+ jpg: 'image/jpeg',
24
+ jpeg: 'image/jpeg',
25
+ js: 'text/javascript',
26
+ json: 'application/json',
27
+ jsonld: 'application/ld+json',
28
+ mid: 'audio/midi',
29
+ midi: 'audio/x-midi',
30
+ mjs: 'text/javascript',
31
+ mp3: 'audio/mpeg',
32
+ mpeg: 'video/mpeg',
33
+ mpkg: 'application/vnd.apple.installer+xml',
34
+ odp: 'application/vnd.oasis.opendocument.presentation',
35
+ ods: 'application/vnd.oasis.opendocument.spreadsheet',
36
+ odt: 'application/vnd.oasis.opendocument.text',
37
+ oga: 'audio/ogg',
38
+ ogv: 'video/ogg',
39
+ ogx: 'application/ogg',
40
+ otf: 'font/otf',
41
+ png: 'image/png',
42
+ pdf: 'application/pdf',
43
+ ppt: 'application/vnd.ms-powerpoint',
44
+ pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
45
+ rar: 'application/x-rar-compressed',
46
+ rtf: 'application/rtf',
47
+ sh: 'application/x-sh',
48
+ svg: 'image/svg+xml',
49
+ swf: 'application/x-shockwave-flash',
50
+ tar: 'application/x-tar',
51
+ tiff: 'image/tiff',
52
+ ttf: 'font/ttf',
53
+ txt: 'text/plain',
54
+ vsd: 'application/vnd.visio',
55
+ wav: 'audio/wav',
56
+ weba: 'audio/webm',
57
+ webm: 'video/webm',
58
+ webp: 'image/webp',
59
+ woff: 'font/woff',
60
+ woff2: 'font/woff2',
61
+ xhtml: 'application/xhtml+xml',
62
+ xls: 'application/vnd.ms-excel',
63
+ xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
64
+ xul: 'application/vnd.mozilla.xul+xml',
65
+ zip: 'application/zip',
66
+ '7z': 'application/x-7z-compressed',
67
+ }
@@ -1,6 +1,9 @@
1
1
  import config from "@/config/config"
2
2
  import ajax from '@/utils/ajax'
3
3
 
4
+ /**
5
+ * 工作流工具
6
+ */
4
7
  export const tools = {
5
8
 
6
9
  registerFileDrop(container, callback) {
@@ -10,7 +13,7 @@ export const tools = {
10
13
 
11
14
  /**
12
15
  * 通过xml创建bpmn
13
- * @param {string} xml 创建bpms xml
16
+ * @param {string} xml 创建bpmn xml
14
17
  * @param {object} bpmnModeler bpmn对象
15
18
  * @param {object} container 容器对象
16
19
  */
package/utils/n/api.js ADDED
@@ -0,0 +1,42 @@
1
+ import { axiosN } from "./reuqest/axiosN";
2
+ import config from "../../config/config";
3
+
4
+ const CONTEXT = `${config.immServerContext}/manage/pub/dateperiod`;
5
+
6
+ export function getWeeksByMonthAPI(params) {
7
+ return axiosN.get(`${CONTEXT}/getWeekByMonth`, { params });
8
+ }
9
+
10
+ /**
11
+ * 获取文档中心预览URL
12
+ *
13
+ * @param fileId 文件Id
14
+ * @returns 文件内容
15
+ */
16
+ export function getPreviewUrlApi(fileId) {
17
+ const isWeb = location.protocol === "https:" ? "1" : "";
18
+
19
+ const axiosConfig = {};
20
+ return axiosN.get(
21
+ `${location.protocol}//${location.host}${
22
+ config.ucExtServerContext || "/ind-uc-ext-server"
23
+ }/api/wps/getPreviewUrl/${fileId}?isWeb=${isWeb}&previewMode=high_definition`,
24
+ axiosConfig,
25
+ );
26
+ }
27
+
28
+ /**
29
+ * 获取文档中心在线编辑URL
30
+ *
31
+ * @param fileId 文件Id
32
+ * @returns 文件内容
33
+ */
34
+ export function getEditUrlApi(fileId) {
35
+ const axiosConfig = {};
36
+ return axiosN.get(
37
+ `${location.protocol}//${location.host}${
38
+ config.ucExtServerContext || "/ind-uc-ext-server"
39
+ }/api/wps/getEditUrl/${fileId}`,
40
+ axiosConfig,
41
+ );
42
+ }
@@ -0,0 +1,57 @@
1
+ import dayjs from 'dayjs'
2
+
3
+ export function str2Date(value) {
4
+ if (value) {
5
+ return dayjs(value, ['YYYYMMDDHHmmss', 'YYYYMMDDHHmm', 'YYYYMMDD', 'YYYYMM', 'YYYY']).toDate()
6
+ } else {
7
+ return null
8
+ }
9
+ }
10
+
11
+ export function formatDate(value) {
12
+ if (value && /^[0-9]+$/.test(value)) {
13
+ switch (value.length) {
14
+ case 14: {
15
+ return dayjs(value, ['YYYYMMDDHHmmss']).format('YYYY-MM-DD HH:mm:ss')
16
+ }
17
+ case 12: {
18
+ return dayjs(value, ['YYYYMMDDHHmmss']).format('YYYY-MM-DD HH:mm')
19
+ }
20
+ case 8: {
21
+ return dayjs(value, ['YYYYMMDD']).format('YYYY-MM-DD')
22
+ }
23
+ case 6: {
24
+ return dayjs(value, ['YYYYMM']).format('YYYY-MM')
25
+ }
26
+ case 4: {
27
+ return value.substring(0, 2) + '-' + value.substring(2, 2)
28
+ }
29
+ }
30
+ } else {
31
+ return value || ''
32
+ }
33
+ }
34
+
35
+ export function formatDateChinese(value) {
36
+ if (value && /^[0-9]+$/.test(value)) {
37
+ switch (value.length) {
38
+ case 14: {
39
+ return dayjs(value, ['YYYYMMDDHHmmss']).format('YYYY年MM月DD日 HH:mm:ss')
40
+ }
41
+ case 12: {
42
+ return dayjs(value, ['YYYYMMDDHHmmss']).format('YYYY年MM月DD日 HH:mm')
43
+ }
44
+ case 8: {
45
+ return dayjs(value, ['YYYYMMDD']).format('YYYY年MM月DD日')
46
+ }
47
+ case 6: {
48
+ return dayjs(value, ['YYYYMM']).format('YYYY年MM月')
49
+ }
50
+ case 4: {
51
+ return value.substring(0, 2) + '年' + value.substring(2, 2) + '月'
52
+ }
53
+ }
54
+ } else {
55
+ return value || ''
56
+ }
57
+ }