@epxing/business 5.3.0-beta.1 → 5.3.0-beta.3

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 (404) hide show
  1. package/API.md +11 -6
  2. package/README.md +44 -43
  3. package/dist/src/base/AiPromptDesigner.js +1 -0
  4. package/dist/src/base/AiPromptView.js +1 -0
  5. package/dist/src/base/AiSkillEditor.js +2 -1
  6. package/dist/src/base/AiSkillEditor.vue.js +2 -0
  7. package/dist/src/base/AppConfigFormItem.js +2 -3
  8. package/dist/src/base/AppConfigFormItem.vue.js +210 -85
  9. package/dist/src/base/AppMarket.js +1 -0
  10. package/dist/src/base/AppMarketList.js +1 -0
  11. package/dist/src/base/AppMarketSystemDetail.js +1 -0
  12. package/dist/src/base/AttributeSubAdd.js +1 -0
  13. package/dist/src/base/ChooseApplication.js +1 -0
  14. package/dist/src/base/ClientAppItem.js +1 -0
  15. package/dist/src/base/ClientApplication.js +1 -0
  16. package/dist/src/base/ClientApplicationList.js +1 -0
  17. package/dist/src/base/ClientModule.js +1 -0
  18. package/dist/src/base/ClientModuleIndex.js +1 -0
  19. package/dist/src/base/ClientSystemDetail.js +1 -0
  20. package/dist/src/base/ClientSystemList.js +1 -0
  21. package/dist/src/base/CommonFieldList.js +2 -1
  22. package/dist/src/base/CommonFieldList.vue.js +2 -1
  23. package/dist/src/base/CommonSearchList.js +1 -0
  24. package/dist/src/base/CompayDetail.js +1 -0
  25. package/dist/src/base/ComponentGlobalSet.js +1 -0
  26. package/dist/src/base/ComponentParamsTree.js +1 -0
  27. package/dist/src/base/ConfigModuleIndex.js +39 -1
  28. package/dist/src/base/CurrentClientApplication.js +1 -0
  29. package/dist/src/base/CurrentVersionInfo.js +1 -0
  30. package/dist/src/base/EntityMatchCompare.js +1 -0
  31. package/dist/src/base/FieldRelationFormItem.js +1 -0
  32. package/dist/src/base/HelpDocSet.js +1 -0
  33. package/dist/src/base/IndexFormItem.js +1 -0
  34. package/dist/src/base/JobFormItem.js +1 -0
  35. package/dist/src/base/ManageAppNav.js +2 -1
  36. package/dist/src/base/ManageMenu.js +2 -1
  37. package/dist/src/base/ManageMenuItem.js +1 -0
  38. package/dist/src/base/NoInstallSystemList.js +1 -0
  39. package/dist/src/base/PageList.js +1 -0
  40. package/dist/src/base/PasswordFormItem.js +1 -0
  41. package/dist/src/base/ProcessFormItem.js +1 -0
  42. package/dist/src/base/PublishSystemApplyFormItem.js +1 -0
  43. package/dist/src/base/RequestLog.js +1 -0
  44. package/dist/src/base/RightRiskList.js +1 -0
  45. package/dist/src/base/RoleAccredit.js +1 -0
  46. package/dist/src/base/RoleBindTrace.js +253 -0
  47. package/dist/src/base/RoleGroupManage.js +1037 -0
  48. package/dist/src/base/RoleRightList.js +1 -0
  49. package/dist/src/base/RoleUserManage.js +1 -0
  50. package/dist/src/base/ServiceAccredit.js +1 -0
  51. package/dist/src/base/ServiceMenu.js +8 -6
  52. package/dist/src/base/ServiceMenuFormItem.js +1 -0
  53. package/dist/src/base/ServiceOperate.js +1 -0
  54. package/dist/src/base/SystemHelpTreeFind.js +1 -0
  55. package/dist/src/base/aiPromptMode.js +1 -0
  56. package/dist/src/base/data-check/DataChckDetail.js +1 -0
  57. package/dist/src/base/data-check/DataCheck.js +1 -0
  58. package/dist/src/base/data-check/DataCheckList.js +1 -0
  59. package/dist/src/base/data-check/DataCheckSubList.js +1 -0
  60. package/dist/src/base/entity-view/EntityViewFormItem.js +1 -0
  61. package/dist/src/base/entity-view/EntityViewSubList.js +1 -0
  62. package/dist/src/base/entity-view-config/BasicInfoDialog.js +1 -0
  63. package/dist/src/base/entity-view-config/FieldPanel.js +1 -0
  64. package/dist/src/base/entity-view-config/FieldPropForm.js +1 -0
  65. package/dist/src/base/entity-view-config/FormulaDialog.js +1 -0
  66. package/dist/src/base/entity-view-config/ObjectFieldDialog.js +1 -0
  67. package/dist/src/base/entity-view-config/RelationPanel.js +1 -0
  68. package/dist/src/base/entity-view-config/SourceManagerDialog.js +1 -0
  69. package/dist/src/base/entity-view-config/SqlPanel.js +1 -0
  70. package/dist/src/base/entity-view-config/UnionPanel.js +1 -0
  71. package/dist/src/base/entity-view-config/ViewConfig.js +1 -0
  72. package/dist/src/base/entity-view-config/constants.js +1 -0
  73. package/dist/src/base/user-type/UserTypeFormItem.js +1 -0
  74. package/dist/src/components/AddPageFormItem.js +1 -0
  75. package/dist/src/components/AddUsedInterface.js +1 -0
  76. package/dist/src/components/AiDocFormItem.js +1 -0
  77. package/dist/src/components/AiList.js +1279 -3
  78. package/dist/src/components/AiPermissionAssistant.js +1 -0
  79. package/dist/src/components/AppList.js +1 -0
  80. package/dist/src/components/Apply/AIApplyIndex.js +1 -0
  81. package/dist/src/components/Apply/ApplyIndex.js +1 -0
  82. package/dist/src/components/AttributeList.js +1 -0
  83. package/dist/src/components/Banner.js +1 -0
  84. package/dist/src/components/BatchAddFieldDialog.js +1 -0
  85. package/dist/src/components/CardO.js +1 -0
  86. package/dist/src/components/CheckForm.js +1 -0
  87. package/dist/src/components/ClientAdminFormItem.js +1 -0
  88. package/dist/src/components/ClientAdminList.js +1 -0
  89. package/dist/src/components/ClientFormItem.js +1 -0
  90. package/dist/src/components/ClientList.js +1 -0
  91. package/dist/src/components/CodeDetail.js +1 -0
  92. package/dist/src/components/CodeManage.js +1 -0
  93. package/dist/src/components/ComponentFind.js +1 -0
  94. package/dist/src/components/ComponentList.js +1 -0
  95. package/dist/src/components/ConfigParamFormItem.js +1 -0
  96. package/dist/src/components/CreatePage.js +1 -0
  97. package/dist/src/components/DashboardCreate.js +1 -0
  98. package/dist/src/components/DataLog.js +1 -0
  99. package/dist/src/components/DataLogTimeline.js +1 -0
  100. package/dist/src/components/DataSnapshot.js +1 -0
  101. package/dist/src/components/DataSnapshotList.js +1 -0
  102. package/dist/src/components/DataSyncInit.js +1 -0
  103. package/dist/src/components/DblogList.js +1 -0
  104. package/dist/src/components/DeptFind.js +1 -0
  105. package/dist/src/components/DynamicUserList.js +1 -0
  106. package/dist/src/components/EntityCheckboxFind.js +1 -0
  107. package/dist/src/components/EntityCheckboxFind.vue.js +14 -10
  108. package/dist/src/components/EntityRelationAdd.js +1 -0
  109. package/dist/src/components/EntityRelationAddFormItem.js +1 -0
  110. package/dist/src/components/EntityRightFormItem.js +2 -5
  111. package/dist/src/components/EntityRightFormItem.vue.js +3 -1
  112. package/dist/src/components/EntityRightSubList.js +1 -0
  113. package/dist/src/components/EntitySystemEr.js +492 -0
  114. package/dist/src/components/EntityTagSubList.js +1 -0
  115. package/dist/src/components/EntityTreeManage.js +1 -0
  116. package/dist/src/components/ExportSystemConfig.js +1 -0
  117. package/dist/src/components/FieldTreeFind.js +1 -0
  118. package/dist/src/components/FormulaEditor.js +1 -0
  119. package/dist/src/components/GenTestData.js +1 -0
  120. package/dist/src/components/HallNav.js +1 -0
  121. package/dist/src/components/HallNav.vue.js +7 -36
  122. package/dist/src/components/HeaderNav.js +1 -0
  123. package/dist/src/components/IconCard.js +1 -0
  124. package/dist/src/components/IconFontLibrary.js +23 -1
  125. package/dist/src/components/IconFontList.js +22 -1
  126. package/dist/src/components/IdentifyList.js +1 -0
  127. package/dist/src/components/ImportSystemConfig.js +1 -0
  128. package/dist/src/components/InterfaceSubList.js +1 -0
  129. package/dist/src/components/JsPanel.js +1 -0
  130. package/dist/src/components/LanguageImportPage.js +1 -0
  131. package/dist/src/components/LanguageSetting.js +1 -0
  132. package/dist/src/components/List/LinkItem.js +1 -0
  133. package/dist/src/components/List/List.js +1 -0
  134. package/dist/src/components/List/ListItem.js +1 -0
  135. package/dist/src/components/MenuTreeFind.js +1 -0
  136. package/dist/src/components/MessageList.js +1 -0
  137. package/dist/src/components/MessageRuleFormItem.js +1 -0
  138. package/dist/src/components/MessageRuleReceiverFormItem.js +1 -0
  139. package/dist/src/components/MessageTemplate.js +1 -0
  140. package/dist/src/components/MetaList.js +1 -0
  141. package/dist/src/components/Nav.js +1 -0
  142. package/dist/src/components/NavFormCatalogItem.js +1 -0
  143. package/dist/src/components/NumList.js +1 -0
  144. package/dist/src/components/OperateLog.js +1 -0
  145. package/dist/src/components/PageCatalog.js +1 -0
  146. package/dist/src/components/PageChart.js +1 -0
  147. package/dist/src/components/PageSwipes.js +1 -0
  148. package/dist/src/components/PersonFormItem.js +1 -0
  149. package/dist/src/components/Popup.js +1 -0
  150. package/dist/src/components/PrintFormList.js +3 -1
  151. package/dist/src/components/PrintFormList.vue.js +3 -1
  152. package/dist/src/components/PublishEntity.js +1 -0
  153. package/dist/src/components/RelyFieldTreeFind.js +1 -0
  154. package/dist/src/components/ReportFormList.js +1 -0
  155. package/dist/src/components/ReportList.js +1 -0
  156. package/dist/src/components/RightSubList.js +1 -0
  157. package/dist/src/components/RoleAddUser.js +1 -0
  158. package/dist/src/components/RoleApplicationCard.js +1 -0
  159. package/dist/src/components/RoleApplicationList.js +1 -0
  160. package/dist/src/components/RoleApplicationSet.js +1 -0
  161. package/dist/src/components/Search.js +1 -0
  162. package/dist/src/components/ServiceFormItem.js +1 -0
  163. package/dist/src/components/SnapshotDataList.js +1 -0
  164. package/dist/src/components/SystemAdminList.js +1 -0
  165. package/dist/src/components/SystemFormItem.js +1 -0
  166. package/dist/src/components/SystemNav.js +1 -0
  167. package/dist/src/components/TaskNumCard.js +1 -0
  168. package/dist/src/components/TimerRuleFormItem.js +1 -0
  169. package/dist/src/components/TodoList.js +1 -0
  170. package/dist/src/components/UpdateSystemConfig.js +1 -0
  171. package/dist/src/components/UserCard.js +1 -0
  172. package/dist/src/components/UserFind.js +1 -0
  173. package/dist/src/components/UserFormItem.js +1 -0
  174. package/dist/src/components/UserList.js +1 -0
  175. package/dist/src/components/UserManage.js +1 -0
  176. package/dist/src/components/UserRoleList.js +1 -0
  177. package/dist/src/components/ValidateRuleFormItem.js +1 -0
  178. package/dist/src/components/ViewFieldDefine.js +1 -0
  179. package/dist/src/components/WikiSpaceList.js +1 -0
  180. package/dist/src/components/WikiWorkbench.js +154 -129
  181. package/dist/src/components/authorization/AddApiPermiss.js +1 -0
  182. package/dist/src/components/authorization/AddAuthorization.js +1 -0
  183. package/dist/src/components/authorization/AddEntityFind.js +1 -0
  184. package/dist/src/components/authorization/AddNoApi.js +1 -0
  185. package/dist/src/components/authorization/AddRoleScope.js +1 -0
  186. package/dist/src/components/authorization/AiRolePlan.js +1 -0
  187. package/dist/src/components/authorization/ApiShareOtherList.js +1 -0
  188. package/dist/src/components/authorization/ApiSystemList.js +1 -0
  189. package/dist/src/components/authorization/AuthorizationInterface.js +4 -1
  190. package/dist/src/components/authorization/AuthorizationRoleSystem.js +1 -0
  191. package/dist/src/components/authorization/EntityConstraintFormItem.js +1 -0
  192. package/dist/src/components/authorization/OtherShareApiList.js +1 -0
  193. package/dist/src/components/authorization/PermissCommonRoleTabs.js +1 -0
  194. package/dist/src/components/authorization/PermissRoleAuthorization.js +1 -0
  195. package/dist/src/components/authorization/PermissRoleTabs.js +1 -0
  196. package/dist/src/components/authorization/RoleLevel.js +1 -0
  197. package/dist/src/components/authorization/RoleLevelScope.js +1 -0
  198. package/dist/src/components/authorization/SystemAddNoApi.js +1 -0
  199. package/dist/src/components/card/CardList.js +1 -0
  200. package/dist/src/components/card/CardListItem.js +1 -0
  201. package/dist/src/components/card/Title.js +1 -0
  202. package/dist/src/components/custom-bpmn/CustomContextPad.js +1 -0
  203. package/dist/src/components/custom-bpmn/CustomPalette.js +1 -0
  204. package/dist/src/components/custom-bpmn/CustomRenderer.js +1 -0
  205. package/dist/src/components/custom-bpmn/CustomRendererBpmn.js +1 -0
  206. package/dist/src/components/custom-bpmn/PropertiesView.js +1992 -1942
  207. package/dist/src/components/custom-bpmn/components/AiModel.js +1 -0
  208. package/dist/src/components/custom-bpmn/components/Api.js +1 -0
  209. package/dist/src/components/custom-bpmn/components/BatchOperation.js +1 -0
  210. package/dist/src/components/custom-bpmn/components/Copy.js +1 -0
  211. package/dist/src/components/custom-bpmn/components/DataTransform.js +1 -0
  212. package/dist/src/components/custom-bpmn/components/Demo.js +1 -0
  213. package/dist/src/components/custom-bpmn/components/EditDiv.js +1 -0
  214. package/dist/src/components/custom-bpmn/components/GenScope.js +1 -0
  215. package/dist/src/components/custom-bpmn/components/GlobalParamsTree.js +1 -0
  216. package/dist/src/components/custom-bpmn/components/Knowledges.js +1 -0
  217. package/dist/src/components/custom-bpmn/components/Login.js +1 -0
  218. package/dist/src/components/custom-bpmn/components/MessageQueue.js +1 -0
  219. package/dist/src/components/custom-bpmn/components/MetaSelect.js +1 -0
  220. package/dist/src/components/custom-bpmn/components/NumStatistic.js +1 -0
  221. package/dist/src/components/custom-bpmn/components/ObjectTransform.js +1 -0
  222. package/dist/src/components/custom-bpmn/components/OutPut.js +1 -0
  223. package/dist/src/components/custom-bpmn/components/ParamsMachining.js +1 -0
  224. package/dist/src/components/custom-bpmn/components/ParamsOutput.js +1 -0
  225. package/dist/src/components/custom-bpmn/components/ProcessAudit.js +1 -0
  226. package/dist/src/components/custom-bpmn/components/SingleMultipleFind.js +1 -0
  227. package/dist/src/components/custom-bpmn/components/TestDialog.js +1 -0
  228. package/dist/src/components/custom-bpmn/index.js +1 -0
  229. package/dist/src/components/custom-bpmn/palette.js +1 -0
  230. package/dist/src/components/custom-bpmn/util.js +1 -0
  231. package/dist/src/components/dashboard-create.js +1 -0
  232. package/dist/src/components/entity-relation-diagram/Er.js +1 -0
  233. package/dist/src/components/entity-relation-diagram/renderErNode.js +1 -0
  234. package/dist/src/components/expand/AddForm.js +1 -0
  235. package/dist/src/components/expand/AddFormItem.js +1 -0
  236. package/dist/src/components/filter/Filter.js +1 -0
  237. package/dist/src/components/filter/FilterItem.js +1 -0
  238. package/dist/src/components/hall/AppCollect.js +1 -0
  239. package/dist/src/components/hall/AppList.js +1 -0
  240. package/dist/src/components/hall/AppVisitRecord.js +1 -0
  241. package/dist/src/components/hall/Banner.js +1 -0
  242. package/dist/src/components/hall/ServiceCard.js +1 -0
  243. package/dist/src/components/hall/UserCard.js +1 -0
  244. package/dist/src/components/icon-gallery/IconGallery.js +193 -0
  245. package/dist/src/components/icon-gallery/mixin.js +150 -0
  246. package/dist/src/components/permiss/AddApi.js +1 -0
  247. package/dist/src/components/permiss/AddNoEntityApi.js +1 -0
  248. package/dist/src/components/permiss/AddSystemPermiss.js +1 -0
  249. package/dist/src/components/permiss/AllocateRole.js +1 -0
  250. package/dist/src/components/permiss/ApiSubList.js +1 -0
  251. package/dist/src/components/permiss/CommonRoleMenu.js +1 -0
  252. package/dist/src/components/permiss/FieldScope.js +1 -0
  253. package/dist/src/components/permiss/PermissManage.js +1 -0
  254. package/dist/src/components/permiss/RoleAppList.js +1 -0
  255. package/dist/src/components/permiss/RoleMenu.js +1 -0
  256. package/dist/src/components/permiss/RoleSubList.js +1 -0
  257. package/dist/src/components/permiss/jurisdiction.js +1 -0
  258. package/dist/src/components/process-healthcheck/HealthcheckChart.js +1 -0
  259. package/dist/src/components/process-healthcheck/HealthcheckRenderer.js +1 -0
  260. package/dist/src/components/process-healthcheck/index.js +1 -0
  261. package/dist/src/components/report/Config.js +1 -0
  262. package/dist/src/components/report/Design.js +1 -0
  263. package/dist/src/components/report/StatList.js +1 -0
  264. package/dist/src/components/right/EntityOtherSystemList.js +1 -0
  265. package/dist/src/components/right/SystemInterfaceList.js +1 -0
  266. package/dist/src/components/right/SystemList.js +1 -0
  267. package/dist/src/components/upLoad.js +1 -0
  268. package/dist/src/components/viewport/LookViewList.js +1 -0
  269. package/dist/src/components/viewport/ViewAddForm.js +1 -0
  270. package/dist/src/components/viewport/ViewDefineList.js +1 -0
  271. package/dist/src/components/viewport/ViewFiedList.js +1 -0
  272. package/dist/src/components/viewport/ViewScope.js +1 -0
  273. package/dist/src/components/wiki-workbench/WikiCites.js +1 -0
  274. package/dist/src/components/wiki-workbench/WikiIntake.js +87 -93
  275. package/dist/src/components/wiki-workbench/WikiIntake.vue.js +153 -73
  276. package/dist/src/components/wiki-workbench/WikiJobs.js +1 -0
  277. package/dist/src/components/wiki-workbench/WikiRevisions.js +1 -0
  278. package/dist/src/components/wiki-workbench/WikiSpaceSettings.js +1 -0
  279. package/dist/src/components/wiki-workbench/codes.js +1 -0
  280. package/dist/src/components/wiki-workbench/index.js +1 -0
  281. package/dist/src/index.js +27 -20
  282. package/dist/src/popup.js +1 -0
  283. package/dist/src/public-components.js +17 -14
  284. package/dist/src/remote.entry.js +1 -0
  285. package/dist/src/route-components.js +6 -5
  286. package/dist/src/system.component.index.js +2 -1
  287. package/dist/src/system.component.js +9 -3
  288. package/dist/src/system.component.lazy.js +2 -1
  289. package/dist/src/views/Add.js +2 -1
  290. package/dist/src/views/Add.vue.js +8 -3
  291. package/dist/src/views/AiToolManager.js +793 -317
  292. package/dist/src/views/App.js +4 -45
  293. package/dist/src/views/AppRoleSelect.js +4 -230
  294. package/dist/src/views/BatchEdit.js +1 -0
  295. package/dist/src/views/Bpmn.js +1 -0
  296. package/dist/src/views/EntityCheckPage.js +1 -0
  297. package/dist/src/views/EntityDetailPage.js +1 -0
  298. package/dist/src/views/EntityEditPage.js +1 -0
  299. package/dist/src/views/EntitySubListPage.js +1 -0
  300. package/dist/src/views/EntityTreePage.js +1 -0
  301. package/dist/src/views/Error.js +4 -207
  302. package/dist/src/views/ExcelDesign.js +327 -316
  303. package/dist/src/views/ExcelPreviewPage.js +1 -0
  304. package/dist/src/views/ExportFilePage.js +1 -0
  305. package/dist/src/views/ExportPage.js +1 -0
  306. package/dist/src/views/FormDesign.js +1 -0
  307. package/dist/src/views/I18nWorkbench.js +1 -0
  308. package/dist/src/views/ImportFilePage.js +1 -0
  309. package/dist/src/views/ImportPage.js +1 -0
  310. package/dist/src/views/JvmMemoryMonitor.js +463 -0
  311. package/dist/src/views/MEntityListPage.js +1 -0
  312. package/dist/src/views/MEntitySubListPage.js +1 -0
  313. package/dist/src/views/MinePage.js +1 -0
  314. package/dist/src/views/Module.js +4 -170
  315. package/dist/src/views/PageAttributeTreePage.js +1 -0
  316. package/dist/src/views/PageConfig.js +1 -0
  317. package/dist/src/views/Permission.js +1 -0
  318. package/dist/src/views/PersonalInfo.js +1 -0
  319. package/dist/src/views/QyWechat.js +1 -0
  320. package/dist/src/views/ReportFormListPage.js +1 -0
  321. package/dist/src/views/TaskPage.js +1 -0
  322. package/dist/src/views/WikiBinding.js +89 -25
  323. package/dist/src/views/client/AddForm.js +1 -0
  324. package/dist/src/views/client/AppMarket.js +1 -0
  325. package/dist/src/views/client/ClientIndex.js +1 -0
  326. package/dist/src/views/client/ClientModuleIndexPage.js +1 -0
  327. package/dist/src/views/client/CopySystem.js +1 -0
  328. package/dist/src/views/client/CreateAppFormItem.js +1 -0
  329. package/dist/src/views/client/CreateMethod.js +1 -0
  330. package/dist/src/views/client/InstallSystem.js +1 -0
  331. package/dist/src/views/client/ManageList.js +1 -0
  332. package/dist/src/views/client/OpenClientManage.js +1 -0
  333. package/dist/src/views/client/OpenSystemManage.js +1 -0
  334. package/dist/src/views/client/PageTabsCyclic.js +1 -0
  335. package/dist/src/views/client/SelfBuiltSystem.js +1 -0
  336. package/dist/src/views/client/StandardProduct.js +1 -0
  337. package/dist/src/views/client/SystemAppAccredit.js +1 -0
  338. package/dist/src/views/client/SystemAppManager.js +1 -0
  339. package/dist/src/views/client/SystemManager.js +1 -0
  340. package/dist/src/views/i18n/I18nAiTaskHistoryDialog.js +1 -0
  341. package/dist/src/views/i18n/I18nPublishDialog.js +1 -0
  342. package/dist/src/views/i18n/I18nTranslationList.js +1 -0
  343. package/dist/src/views/i18n/i18n-workbench-text.js +1 -0
  344. package/dist/src/views/layout/CardList.js +1 -0
  345. package/dist/src/views/layout/Grid.js +1 -0
  346. package/dist/src/views/match/AddTargetField.js +1 -0
  347. package/dist/src/views/match/MatchAddFormItem.js +1 -0
  348. package/dist/src/views/match/conversion.js +1 -0
  349. package/dist/src/views/match/customize.js +1 -0
  350. package/dist/src/views/match/fieldMatch.js +1 -0
  351. package/dist/src/views/report/AddFormItem.js +1 -0
  352. package/dist/src/views/report/DesignReport.js +1 -0
  353. package/dist/src/views/report/ReportTreeFind.js +1 -0
  354. package/dist/style.css +2867 -1487
  355. package/package.json +14 -7
  356. package/src/base/AiSkillEditor.vue +2 -0
  357. package/src/base/AppConfigFormItem.vue +211 -145
  358. package/src/base/CommonFieldList.vue +9 -6
  359. package/src/base/ConfigModuleIndex.vue +37 -1
  360. package/src/base/ManageAppNav.vue +1188 -1188
  361. package/src/base/ManageMenu.vue +933 -933
  362. package/src/base/RoleBindTrace.vue +364 -0
  363. package/src/base/RoleGroupManage.vue +1160 -0
  364. package/src/base/ServiceMenu.vue +6 -5
  365. package/src/components/AiList.vue +439 -113
  366. package/src/components/EntityCheckboxFind.vue +12 -8
  367. package/src/components/EntityRightFormItem.vue +9 -10
  368. package/src/components/EntitySystemEr.vue +517 -0
  369. package/src/components/HallNav.vue +6 -33
  370. package/src/components/IconFontLibrary.vue +27 -60
  371. package/src/components/IconFontList.vue +13 -64
  372. package/src/components/PrintFormList.vue +33 -27
  373. package/src/components/WikiWorkbench.vue +90 -60
  374. package/src/components/authorization/AuthorizationInterface.vue +2 -0
  375. package/src/components/custom-bpmn/CustomPalette.js +1 -1
  376. package/src/components/custom-bpmn/CustomRenderer.js +1 -1
  377. package/src/components/custom-bpmn/PropertiesView.vue +35 -4
  378. package/src/components/custom-bpmn/index.js +1 -1
  379. package/src/components/icon-gallery/IconGallery.vue +130 -0
  380. package/src/components/icon-gallery/mixin.jsx +109 -0
  381. package/src/components/wiki-workbench/WikiIntake.vue +178 -104
  382. package/src/index.js +24 -20
  383. package/src/public-components.js +1 -0
  384. package/src/route-components.js +4 -4
  385. package/src/system.component.index.js +1 -1
  386. package/src/views/Add.vue +8 -5
  387. package/src/views/AiToolManager.vue +326 -4
  388. package/src/views/App.vue +4 -53
  389. package/src/views/AppRoleSelect.vue +4 -334
  390. package/src/views/Error.vue +4 -63
  391. package/src/views/ExcelDesign.vue +24 -7
  392. package/src/views/JvmMemoryMonitor.vue +284 -0
  393. package/src/views/Module.vue +4 -210
  394. package/src/views/WikiBinding.vue +42 -0
  395. package/types/app.d.ts +1 -0
  396. package/types/dept-find.d.ts +1 -1
  397. package/types/index.d.ts +15 -14
  398. package/types/popup.d.ts +2 -2
  399. package/types/route-components.d.ts +1 -1
  400. package/types/user-find.d.ts +1 -1
  401. package/dist/assets/role_select-DTqRlFNz.webp +0 -0
  402. package/dist/src/components/AiList.vue.js +0 -93
  403. package/dist/src/components/IconFontLibrary.vue.js +0 -67
  404. package/dist/src/components/IconFontList.vue.js +0 -79
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@epxing/business",
3
- "version": "5.3.0-beta.1",
3
+ "version": "5.3.0-beta.3",
4
4
  "description": "平台业务组件与页面(Login/base/custom-bpmn 等;不含 designer 懒注册)",
5
5
  "type": "module",
6
6
  "exports": {
@@ -10,6 +10,11 @@
10
10
  "default": "./dist/src/index.js"
11
11
  },
12
12
  "./src": "./dist/src/index.js",
13
+ "./app": {
14
+ "types": "./types/app.d.ts",
15
+ "import": "./dist/src/views/App.js",
16
+ "default": "./dist/src/views/App.js"
17
+ },
13
18
  "./user-find": {
14
19
  "types": "./types/user-find.d.ts",
15
20
  "import": "./dist/src/components/UserFind.js",
@@ -100,11 +105,12 @@
100
105
  "tiny-svg": "^4.1.4",
101
106
  "@hufe921/canvas-editor": "^0.9.100",
102
107
  "@hufe921/canvas-editor-plugin-docx": "^0.0.5",
103
- "@epxing/dashboard": "^5.3.0-beta.1",
104
- "@epxing/core": "^5.3.0-beta.1",
105
- "@epxing/components": "^5.3.0-beta.1",
106
- "@epxing/utils": "^5.3.0-beta.1",
107
- "@epxing/theme": "^5.3.0-beta.1"
108
+ "@epxing/components": "^5.3.0-beta.3",
109
+ "@epxing/dashboard": "^5.3.0-beta.3",
110
+ "@epxing/core": "^5.3.0-beta.3",
111
+ "@epxing/icons": "^5.3.0-beta.3",
112
+ "@epxing/utils": "^5.3.0-beta.3",
113
+ "@epxing/theme": "^5.3.0-beta.3"
108
114
  },
109
115
  "peerDependencies": {
110
116
  "vue": "3.5.39",
@@ -123,7 +129,8 @@
123
129
  "./dist/src/store/**",
124
130
  "./dist/src/mixins/**",
125
131
  "./dist/src/runtime-utils/util.js",
126
- "./dist/src/runtime-services.js"
132
+ "./dist/src/runtime-services.js",
133
+ "./dist/**/*.js"
127
134
  ],
128
135
  "publishConfig": {
129
136
  "access": "public",
@@ -435,6 +435,8 @@ export default {
435
435
  name: 'epx-base-ai-skill-editor',
436
436
  mixins: [component],
437
437
  props: {
438
+ // 接收父表单实例,避免被作为 DOM 属性透传导致记忆设置渲染失败。
439
+ form: Object,
438
440
  value: {
439
441
  type: String,
440
442
  default: ''
@@ -2,18 +2,41 @@
2
2
  // @jsx-vue3(T30 JSX 批:Vue3 JSX 语法,@vue/babel-plugin-jsx 编译)
3
3
 
4
4
  import AddFormItem from '@epxing/components/src/add-form-item'
5
+ import TableForm from '@epxing/components/src/form'
6
+ import AppSettings from '@epxing/components/src/app-settings/AppSettings.vue'
7
+ import AppAppearancePreview from '@epxing/components/src/app-settings/AppAppearancePreview.vue'
8
+ import { createAppUiDraft } from '@epxing/core/src/app-ui-settings'
9
+ import { captureRef } from '@epxing/core/src/capture-ref'
5
10
  export default {
6
11
  name: 'epx-base-app-config-form-item',
7
12
  extends: AddFormItem,
13
+ components: { AppSettings, AppAppearancePreview, TableForm },
8
14
  data () {
9
15
  return {
10
16
  config: {},
11
- fieldsConfigs: []
17
+ fieldsConfigs: [],
18
+ layoutFieldsConfigs: [],
19
+ activeGroup: 'theme',
20
+ uiDraft: {},
21
+ initialConfig: '{}',
22
+ syncingDraft: true,
23
+ settingsGroups: [
24
+ { key: 'theme', label: '主题与配色' },
25
+ { key: 'layout', label: '导航与布局' },
26
+ { key: 'style', label: '界面风格' },
27
+ { key: 'tabs', label: '页签设置' },
28
+ { key: 'page', label: '页面与效果' }
29
+ ]
12
30
  }
13
31
  },
14
32
  computed: {
33
+ readOnly () { return ['DETAIL', 'READONLY'].includes(this.componentType) },
15
34
  showFieldsConfigs () {
16
- return this.fieldsConfigs.filter(item => {
35
+ return this.layoutFieldsConfigs.filter(item => {
36
+ const themeKeys = ['navBackgroundColorType', 'navBackgroundColor']
37
+ const pageKeys = ['pageBackgroundType', 'pageBackgroundColor', 'pageBackgroundGradient', 'pageBackgroundImage', 'pageBackgroundSize']
38
+ const group = themeKeys.includes(item.key) ? 'theme' : pageKeys.includes(item.key) ? 'page' : 'layout'
39
+ if (group !== this.activeGroup) return false
17
40
  let flag = true
18
41
  if (item.showFlag) {
19
42
  for (const key in item.showFlag) {
@@ -30,10 +53,20 @@ export default {
30
53
  watch: {
31
54
  config: {
32
55
  handler (v) {
56
+ if (this.syncingDraft || this.readOnly) return
33
57
  const APP_CONFIG = JSON.stringify(v)
34
58
  this.$emit('change', { ...this.data, APP_CONFIG })
35
59
  },
36
60
  deep: true
61
+ },
62
+ uiDraft: {
63
+ deep: true,
64
+ handler (value) {
65
+ if (!this.syncingDraft && !this.readOnly) this.config.uiDefaults = JSON.parse(JSON.stringify(value))
66
+ }
67
+ },
68
+ 'formData.APP_CONFIG' (value) {
69
+ if (value !== JSON.stringify(this.config)) this.loadConfig(value)
37
70
  }
38
71
  },
39
72
  methods: {
@@ -76,6 +109,7 @@ export default {
76
109
  key: 'navBackgroundColor',
77
110
  label: '自定义导航背景色',
78
111
  type: 'color',
112
+ showFlag: { navBackgroundColorType: 'custom' },
79
113
  predefineColors: []
80
114
  },
81
115
  {
@@ -188,69 +222,34 @@ export default {
188
222
  defaultValue: 992
189
223
  }
190
224
  ]
191
- if (this.appConfig['SYSTEM|TYPE'] === 'hall') {
192
- fieldsConfigs.splice(9, 0, {
193
- key: 'componentMargin',
194
- label: '页面组件间距',
195
- type: 'radio',
196
- options: [
197
- {
198
- label: '小',
199
- value: 'small'
200
- },
201
- {
202
- label: '中',
203
- value: 'medium'
204
- },
205
- {
206
- label: '默认',
207
- value: 'base'
208
- }
209
- ],
210
- defaultValue: 'base'
211
- },
212
- {
213
- key: 'borderRadius',
214
- label: '圆角',
215
- type: 'radio',
216
- options: [
217
- {
218
- label: '无',
219
- value: 'zero'
220
- },
221
- {
222
- label: '默认',
223
- value: 'base'
224
- },
225
- {
226
- label: '中',
227
- value: 'medium'
228
- },
229
- {
230
- label: '大',
231
- value: 'large'
232
- }
233
- ],
234
- defaultValue: 'base'
235
- })
236
- }
237
225
  for (const item of fieldsConfigs) {
238
226
  item.state = pageType
239
227
  if (item.options) item.options = item.options.map(item => ({ id: item.value, code: item.value, name: item.label, preview: item.preview }))
240
228
  }
241
- this.fieldsConfigs = fieldsConfigs
229
+ this.layoutFieldsConfigs = fieldsConfigs
230
+ // 父表单只提交 APP_CONFIG;导航等草稿字段均封装在该 JSON 内。
231
+ this.fieldsConfigs = [{ attriName: 'APP_CONFIG', state: 'HIDDEN' }]
242
232
  },
243
233
  changeConfigItem (key, value) {
234
+ if (this.readOnly) return
244
235
  this.config[key] = value
245
236
  },
246
237
  save () {
238
+ if (this.readOnly) return
239
+ // 优先交给父表单整表提交,保留应用的名称、权限等其他字段。
240
+ if (this.form?.submitForm && !this.isEdit) {
241
+ this.$nextTick(() => this.form.submitForm())
242
+ return
243
+ }
247
244
  const params = {}
248
245
  const submitFlag = true
249
246
  const { submitParams: querySumitParams = {} } = this.$query
250
247
  if (this.formData[this.$metaKey]) {
251
248
  params[`bean.${this.$metaKey}`] = this.formData[this.$metaKey]
252
249
  }
253
- params['bean.APP_CONFIG'] = this.formData.APP_CONFIG
250
+ Object.entries({ ...this.formData, APP_CONFIG: JSON.stringify(this.config) }).forEach(([key, value]) => {
251
+ params[`bean.${key}`] = value
252
+ })
254
253
 
255
254
  // 表单校验
256
255
  const { componentEvents = {} } = this.$configs
@@ -276,53 +275,112 @@ export default {
276
275
  })
277
276
  },
278
277
  switchNav (value, item) {
279
- if (item.state !== 'DETAIL') {
278
+ if (!['DETAIL', 'READONLY'].includes(item.state)) {
280
279
  this.config[item.key] = value
281
280
  }
282
281
  },
282
+ loadConfig (value = '{}') {
283
+ this.syncingDraft = true
284
+ const config = JSON.parse(value || '{}')
285
+ this.initialConfig = JSON.stringify(config)
286
+ for (const item of this.layoutFieldsConfigs) {
287
+ if (config[item.key] === undefined && item.defaultValue !== undefined) config[item.key] = item.defaultValue
288
+ }
289
+ this.config = config
290
+ this.uiDraft = createAppUiDraft(config)
291
+ this.$nextTick(() => { this.syncingDraft = false })
292
+ },
293
+ restorePlatform () {
294
+ if (this.readOnly) return
295
+ this.uiDraft = createAppUiDraft()
296
+ const businessKeys = ['appPageType', 'pageId', 'navComponent', 'navOperates', 'mobileSize']
297
+ for (const field of this.layoutFieldsConfigs) {
298
+ if (businessKeys.includes(field.key)) continue
299
+ if (field.defaultValue !== undefined) this.config[field.key] = field.defaultValue
300
+ else delete this.config[field.key]
301
+ }
302
+ },
303
+ discardDraft () {
304
+ const initial = this.initialConfig
305
+ this.loadConfig(initial)
306
+ this.$emit('change', { ...this.data, APP_CONFIG: initial })
307
+ },
283
308
  renderForm () {
284
309
  return (
285
- <el-form class="app-config-form" inline label-position="right" label-width="140px">
310
+ <section class="epx-app-interface-settings">
311
+ <div hidden>
312
+ <TableForm ref={captureRef(this, 'form')} fieldsConfigs={this.fieldsConfigs} modelValue={{ ...this.data, APP_CONFIG: JSON.stringify(this.config) }} type="auto" showRelyFlag={false} valueRelyFlag={false} requiredRelyFlag={false} />
313
+ </div>
314
+ <div class="epx-app-interface-settings__heading">
315
+ <p>设置当前应用的默认外观;用户的个人选择优先。右侧预览不会改变当前界面。</p>
316
+ </div>
317
+ <div class="epx-app-interface-settings__workspace">
318
+ <nav class="epx-app-interface-settings__nav" aria-label="界面设置分组">
319
+ {this.settingsGroups.map(group => (
320
+ <button type="button" key={group.key} class={{ 'is-active': this.activeGroup === group.key }} aria-current={this.activeGroup === group.key ? 'page' : undefined} onClick={() => { this.activeGroup = group.key }}>{group.label}</button>
321
+ ))}
322
+ </nav>
323
+ <div class="epx-app-interface-settings__editor">
324
+ <h4>{this.settingsGroups.find(group => group.key === this.activeGroup)?.label}</h4>
325
+ <AppSettings embedded settings={this.uiDraft} sections={[this.activeGroup]} disabled={this.readOnly} />
326
+ {this.renderLayoutFields()}
327
+ </div>
328
+ <AppAppearancePreview config={this.config} settings={this.uiDraft} title={this.data.NAME || '应用名称'} />
329
+ </div>
330
+ {!this.readOnly && <div class="epx-app-interface-settings__actions">
331
+ <el-button onClick={this.restorePlatform}>恢复平台默认</el-button>
332
+ <el-button onClick={this.discardDraft}>撤销本次修改</el-button>
333
+ <el-button type="primary" onClick={this.save}>保存</el-button>
334
+ </div>}
335
+ </section>
336
+ )
337
+ },
338
+ renderLayoutFields () {
339
+ return (
340
+ <el-form disabled={this.readOnly} class="epx-base-app-config-form-item__form">
286
341
  {
287
342
  this.showFieldsConfigs.map(item => (
288
- <el-form-item label={`${item.label}`} style={item.block ? { width: '100%' } : null}>
289
- {
290
- item.key === 'navType' ? (
291
- <div class={['nav-type', { 'is-disabled': item.state === 'DETAIL' }]}>
292
- {
293
- item.options.map(option => (
294
- <div class={['nav-type__item', { 'is-active': this.config[item.key] === option.id }]} key={option.id} onClick={this.switchNav.bind(this, option.id, item)}>
295
- <div>
296
- <img src={option.preview} />
297
- </div>
298
- <p>{option.name}</p>
299
- </div>
300
- ))
301
- }
302
- </div>
303
- ) : item.type === 'radio' ? (
304
- <epx-radio v-model={this.config[item.key]} fieldConfigs={{ state: item.state, attriName: item.key, attriLabel: item.label, options: item.options }}></epx-radio>
305
- ) : item.type === 'object' ? (
306
- <epx-visual-config-object v-model={this.config[item.key]} label={item.label} object={item.object} flag={item.flag} dataKey={item.dataKey} state={item.state}></epx-visual-config-object>
307
- ) : item.type === 'color' ? (
308
- <el-color-picker v-model={this.config[item.key]} predefine={item.predefineColors} disabled={item.state === 'DETAIL'}></el-color-picker>
309
- ) : item.type === 'gradient' ? (
310
- <epx-color-picker v-model={this.config[item.key]} disabled={item.state === 'DETAIL'}></epx-color-picker>
311
- ) : item.type === 'photo' ? (
312
- <epx-photo v-model={this.config[item.key]} fieldConfigs={{ state: item.state, attriName: item.key, attriLabel: item.label }}></epx-photo>
313
- ) : item.type === 'num' ? (
314
- <epx-number v-model={this.config[item.key]} fieldConfigs={{ state: item.state, attriName: item.key, attriLabel: item.label, value: item.defaultValue }}></epx-number>
315
- ) : item.type === 'operates' ? (
316
- <epx-visual-config-operate
317
- value={this.config[item.key]}
318
- state={item.state}
319
- onChangeConfigs={this.changeConfigItem.bind(this, item.key)}
320
- />
321
- ) : (
322
- <epx-input class="input" v-model={this.config[item.key]} fieldConfigs={{ state: item.state, attriName: item.key, attriLabel: item.label }}></epx-input>
323
- )
324
- }
325
- </el-form-item>
343
+ <div key={item.key} class={['epx-app-interface-settings__field', { 'epx-app-interface-settings__field--block': item.block || item.type === 'radio' }]}>
344
+ <span class="epx-app-interface-settings__label">{item.label}</span>
345
+ <div class="epx-app-interface-settings__control">
346
+ {
347
+ item.key === 'navType' ? (
348
+ <div class="nav-type" role="group" aria-label={item.label}>
349
+ {
350
+ item.options.map(option => (
351
+ <button type="button" class={['nav-type__item', { 'is-active': this.config[item.key] === option.id }]} key={option.id} disabled={this.readOnly} aria-pressed={this.config[item.key] === option.id} onClick={this.switchNav.bind(this, option.id, item)}>
352
+ <img src={option.preview} alt="" />
353
+ <span>{option.name}</span>
354
+ </button>
355
+ ))
356
+ }
357
+ </div>
358
+ ) : item.type === 'radio' ? (
359
+ <el-radio-group v-model={this.config[item.key]} size="small" aria-label={item.label}>
360
+ {item.options.map(option => <el-radio-button key={option.id} value={option.id}>{option.name}</el-radio-button>)}
361
+ </el-radio-group>
362
+ ) : item.type === 'object' ? (
363
+ <epx-visual-config-object value={this.config[item.key]} onChangeConfigs={this.changeConfigItem.bind(this, item.key)} label={item.label} object={item.object} flag={item.flag} dataKey={item.dataKey} state={item.state}></epx-visual-config-object>
364
+ ) : item.type === 'color' ? (
365
+ <el-color-picker v-model={this.config[item.key]} predefine={item.predefineColors} disabled={this.readOnly}></el-color-picker>
366
+ ) : item.type === 'gradient' ? (
367
+ <epx-color-picker v-model={this.config[item.key]} disabled={this.readOnly}></epx-color-picker>
368
+ ) : item.type === 'photo' ? (
369
+ <epx-photo v-model={this.config[item.key]} fieldConfigs={{ state: item.state, attriName: item.key, attriLabel: item.label }}></epx-photo>
370
+ ) : ['num', 'number'].includes(item.type) ? (
371
+ <epx-number v-model={this.config[item.key]} fieldConfigs={{ state: item.state, attriName: item.key, attriLabel: item.label, value: item.defaultValue }}></epx-number>
372
+ ) : item.type === 'operates' ? (
373
+ <epx-visual-config-operate
374
+ value={this.config[item.key]}
375
+ state={item.state}
376
+ onChangeConfigs={this.changeConfigItem.bind(this, item.key)}
377
+ />
378
+ ) : (
379
+ <epx-input class="input" v-model={this.config[item.key]} fieldConfigs={{ state: item.state, attriName: item.key, attriLabel: item.label }}></epx-input>
380
+ )
381
+ }
382
+ </div>
383
+ </div>
326
384
  ))
327
385
  }
328
386
 
@@ -331,74 +389,82 @@ export default {
331
389
  }
332
390
  },
333
391
  created () {
334
- const { APP_CONFIG = '{}' } = this.data
335
- const appConfig = JSON.parse(APP_CONFIG)
336
- for (const item of this.fieldsConfigs) {
337
- if (!appConfig[item.key] && item.defaultValue) {
338
- appConfig[item.key] = item.defaultValue
339
- }
340
- }
341
- this.config = appConfig
392
+ this.loadConfig(this.data.APP_CONFIG)
342
393
  }
343
394
  }
344
395
  </script>
345
396
 
346
- <style lang="scss" scoped>
347
- .app-config-form {
348
-
349
- :deep(.el-form-item) {
350
- padding: 10px;
351
- width: calc(50% - 30px);
352
- margin-bottom: 0;
353
- }
354
- :deep(.el-form-item__label::after) {
355
- content: ': '
356
- }
357
-
358
- }
359
-
360
- .nav-type {
361
- display: flex;
362
- flex-wrap: wrap;
363
- &.is-disabled {
364
- .nav-type__item {
365
- >div {
366
- cursor: not-allowed;
367
- }
368
- }
397
+ <style lang="scss">
398
+ // 通过表单根类隔离样式,避免继承渲染时丢失 scoped 标记导致预览恢复原图尺寸。
399
+ .epx-base-app-config-form-item__form {
400
+ .nav-type {
401
+ display: grid;
402
+ grid-template-columns: repeat(4, minmax(0, 1fr));
403
+ gap: var(--epx-space-2);
369
404
  }
370
- }
371
405
 
372
- .nav-type__item {
373
- width: 200px;
374
- margin-right: 20px;
375
- text-align: center;
376
- >div {
377
- background: #eee;
406
+ .nav-type__item {
407
+ min-width: 0;
408
+ padding: var(--epx-space-1);
409
+ text-align: center;
410
+ font: inherit;
411
+ font-size: var(--epx-font-size-s);
412
+ color: var(--epx-text-secondary);
413
+ background: transparent;
414
+ border: 1px solid var(--epx-border);
378
415
  border-radius: var(--epx-radius-base);
379
- border: 1px solid transparent;
380
- overflow: hidden;
381
416
  cursor: pointer;
382
- transition: all .5s;
383
- }
384
- img {
385
- width: 100%;
386
- opacity: 0.5;
387
- transition: all .5s;
388
- }
389
- &:hover {
390
417
  img {
391
- opacity: 1;
418
+ display: block;
419
+ width: 100%;
420
+ aspect-ratio: 10 / 7;
421
+ object-fit: contain;
422
+ margin-bottom: var(--epx-space-1);
392
423
  }
393
- }
394
- &.is-active {
395
- @include font_color_primary;
396
- >div {
424
+ &:focus-visible {
425
+ outline: 2px solid var(--el-color-primary);
426
+ outline-offset: 2px;
427
+ }
428
+ &:hover:not(:disabled), &.is-active {
429
+ @include font_color_primary;
397
430
  @include border_color_primary;
398
431
  }
399
- img {
400
- opacity: 1;
432
+ &:disabled {
433
+ cursor: not-allowed;
434
+ opacity: .6;
401
435
  }
402
436
  }
403
437
  }
438
+
439
+ .epx-app-interface-settings {
440
+ &__heading { margin-bottom: 20px; }
441
+ &__heading p { margin: 0; color: var(--el-text-color-secondary); font-size: 13px; }
442
+ &__workspace { display: grid; grid-template-columns: 140px minmax(300px, 1fr) minmax(300px, 420px); gap: 20px; align-items: start; }
443
+ &__nav { display: flex; flex-direction: column; gap: 6px; }
444
+ &__nav button { border: 0; border-radius: 6px; background: transparent; color: inherit; text-align: left; padding: 12px; cursor: pointer; }
445
+ &__nav button.is-active { background: var(--el-color-primary-light-9); color: var(--el-color-primary); }
446
+ &__editor { min-width: 0; }
447
+ &__editor h4 { margin: 0 0 12px; }
448
+ &__field { display: flex; align-items: center; justify-content: space-between; gap: var(--epx-space-2); min-height: 40px; padding: var(--epx-space-1) var(--epx-space-4); }
449
+ &__label { flex-shrink: 0; font-size: var(--epx-font-size-base); color: var(--epx-text); }
450
+ &__control { min-width: 0; max-width: 100%; }
451
+ &__field--block { flex-direction: column; align-items: stretch; padding-bottom: var(--epx-space-2); }
452
+ &__field--block .el-radio-group { display: flex; width: 100%; }
453
+ &__field--block .el-radio-button { flex: 1; }
454
+ &__field--block .el-radio-button__inner { width: 100%; padding-left: 0; padding-right: 0; }
455
+ &__control .el-input-number { width: 150px; }
456
+ &__editor .epx-app-settings__body { padding: 0; }
457
+ &__editor .el-collapse { border: 0; }
458
+ &__editor .el-collapse-item__header { display: none; }
459
+ &__actions { display: flex; justify-content: flex-end; gap: 8px; border-top: 1px solid var(--el-border-color-light); padding-top: 16px; margin-top: 20px; }
460
+ @media (max-width: 1200px) {
461
+ &__workspace { grid-template-columns: 130px minmax(0, 1fr); }
462
+ .epx-app-appearance-preview { grid-column: 2; }
463
+ }
464
+ @media (max-width: 650px) {
465
+ &__workspace { display: flex; flex-direction: column; }
466
+ &__nav { flex-direction: row; flex-wrap: wrap; }
467
+ &__editor, .epx-app-appearance-preview { width: 100%; }
468
+ }
469
+ }
404
470
  </style>
@@ -1,4 +1,4 @@
1
- <script>
1
+ <script lang="jsx">
2
2
  // @jsx-vue3(T30 JSX 批③:scopedSlots 集群 Vue3 化)
3
3
  import EntitySubList from '@epxing/components/src/entity-sub-list'
4
4
  import draggable from '@epxing/core/src/components/draggable'
@@ -324,7 +324,7 @@ export default {
324
324
  modelValue={this.showFieldDialog}
325
325
  {...{ 'onUpdate:modelValue': v => { this.showFieldDialog = v } }}
326
326
  append-to-body={true}
327
- class="show-field-dialog"
327
+ class="show-field-dialog epx-common-field-dialog"
328
328
  destroy-on-close
329
329
  width="800px"
330
330
  top="10vh"
@@ -402,7 +402,7 @@ export default {
402
402
  },
403
403
  renderNameDialog () {
404
404
  return (
405
- <el-dialog modelValue={this.addCommonFieldDialod} {...{ 'onUpdate:modelValue': v => { this.addCommonFieldDialod = v } }} width="400px" title="新增常用导出字段" v-slots={{
405
+ <el-dialog class="epx-common-field-dialog" modelValue={this.addCommonFieldDialod} {...{ 'onUpdate:modelValue': v => { this.addCommonFieldDialod = v } }} width="400px" title="新增常用导出字段" v-slots={{
406
406
  footer: () => (<span class="dialog-footer">
407
407
  <el-button onClick={() => { this.addCommonFieldDialod = false }}>取 消</el-button>
408
408
  <el-button type="primary" onClick={this.saveCommonField.bind(this)}>确 定</el-button>
@@ -1248,7 +1248,9 @@ $paddingSize: 16px;
1248
1248
  }
1249
1249
  </style>
1250
1250
 
1251
- <style scoped lang="scss">
1251
+ <style lang="scss">
1252
+ // 父类调用渲染函数时不会附加本组件的 scoped 标记,弹窗使用独立容器限定样式。
1253
+ .epx-common-field-dialog {
1252
1254
  .field-setting {
1253
1255
  display: flex;
1254
1256
  width: 100%;
@@ -1301,7 +1303,7 @@ $paddingSize: 16px;
1301
1303
  flex: 1;
1302
1304
  overflow: auto;
1303
1305
 
1304
- :deep(.el-tree-node__content) {
1306
+ .el-tree-node__content {
1305
1307
  height: 48px;
1306
1308
  }
1307
1309
 
@@ -1342,7 +1344,7 @@ $paddingSize: 16px;
1342
1344
  .setting-field__row {
1343
1345
  margin-bottom: 10px;
1344
1346
 
1345
- :deep(>.el-form-item) {
1347
+ >.el-form-item {
1346
1348
  vertical-align: auto;
1347
1349
  width: 100%;
1348
1350
  display: flex;
@@ -1394,4 +1396,5 @@ $paddingSize: 16px;
1394
1396
  width: 90px;
1395
1397
  }
1396
1398
  }
1399
+ }
1397
1400
  </style>
@@ -2,7 +2,7 @@
2
2
  <div class="container">
3
3
  <div class="content" v-if="data.ID">
4
4
  <keep-alive>
5
- <epx-menu id="menu" v-if="showMenu && uiShowSideNav" :showNav="false" class="aside hidden-sm-and-down" :modules="menu" :moduleName="`${data.NAME || $t('application')}${$t('configuration')}`" :subTitle="data['CLIENT#']" :toPages="toPages" :clickItem="toPage"></epx-menu>
5
+ <epx-menu id="menu" v-if="showMenu && uiShowSideNav" :showNav="false" class="aside hidden-sm-and-down" :modules="menu" :activeMenuId="configMenuKey" :moduleName="`${data.NAME || $t('application')}${$t('configuration')}`" :subTitle="data['CLIENT#']" :toPages="toPages" :clickItem="toPage"></epx-menu>
6
6
  </keep-alive>
7
7
  <div class="main">
8
8
  <epx-router-view ref="router" v-if="menu.length>0" :init-route="initRoute"></epx-router-view>
@@ -20,6 +20,7 @@
20
20
  <script>
21
21
  import ModuleIndexVue from '@epxing/components/src/menu-index'
22
22
  import { openExternalMenu } from '@epxing/utils/src/menu-open'
23
+ import { findMenuByKey, getRouteMenuKey } from '@epxing/core/src/menu-route'
23
24
  const _comp = {
24
25
  name: 'epx-base-config-module-index',
25
26
  extends: ModuleIndexVue,
@@ -28,7 +29,42 @@ const _comp = {
28
29
  data: {}
29
30
  }
30
31
  },
32
+ computed: {
33
+ configMenuKey () {
34
+ return this.$route.name === 'system' ? getRouteMenuKey(this.$route) : ''
35
+ },
36
+ initRoute () {
37
+ const menu = findMenuByKey(this.menu, this.configMenuKey)
38
+ if (menu && menu.OPEN_TYPE !== '1') {
39
+ return { moduleId: menu.ID, component: 'module-list-page', pageId: menu.MAIN_PAGE, menuTitle: menu.text }
40
+ }
41
+ return ModuleIndexVue.computed.initRoute.call(this)
42
+ }
43
+ },
44
+ watch: {
45
+ configMenuKey: 'restoreMenuFromRoute',
46
+ menu: 'restoreMenuFromRoute',
47
+ 'data.ID': 'restoreMenuFromRoute'
48
+ },
31
49
  methods: {
50
+ restoreMenuFromRoute () {
51
+ if (this.$route.name !== 'system') return
52
+ // 等专用菜单和系统上下文就绪后,沿用原有点击入口,保留页面参数与打开方式。
53
+ this.$nextTick(() => {
54
+ const view = this.$refs.router
55
+ if (!view || !this.data.ID) return
56
+ const menu = findMenuByKey(this.menu, this.configMenuKey)
57
+ if (menu) {
58
+ if (view.route?.moduleId === menu.ID) return
59
+ const activeTab = this.$tabs.find(tab => tab.active)
60
+ if (menu.OPEN_TYPE === '1' && activeTab?.moduleId === menu.ID) return
61
+ this.toPage(menu)
62
+ } else if (!this.configMenuKey) {
63
+ view.clearPage()
64
+ view.createPage(this.initRoute)
65
+ }
66
+ })
67
+ },
32
68
  getInfo () {
33
69
  const { name, params = {}, query = {} } = this.$route
34
70
  const { system: querySystem = '' } = query