@epxing/designer 0.0.0-stage → 5.3.0-beta.2

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 (491) hide show
  1. package/API.md +160 -0
  2. package/README.md +45 -2
  3. package/dist/_virtual/_plugin-vue_export-helper.js +10 -0
  4. package/dist/_virtual/preload-helper.js +88 -0
  5. package/dist/assets/default-icon-2193FMjv.png +0 -0
  6. package/dist/assets/technology_bg-oWIS2awO.jpg +0 -0
  7. package/dist/assets/theme_black-Ctdygcr4.png +0 -0
  8. package/dist/assets/theme_technology-DJk-2e7g.png +0 -0
  9. package/dist/assets/theme_white-uMQ6JYml.png +0 -0
  10. package/dist/src/assets/images/dashboard/theme_black.png.js +4 -0
  11. package/dist/src/assets/images/dashboard/theme_technology.png.js +4 -0
  12. package/dist/src/assets/images/dashboard/theme_white.png.js +4 -0
  13. package/dist/src/assets/images/default-icon.png.js +4 -0
  14. package/dist/src/index.js +53 -0
  15. package/dist/src/page-designer/PageConfigPreview.js +102 -0
  16. package/dist/src/page-designer/PageDesigner.js +844 -0
  17. package/dist/src/page-designer/designer.js +1120 -0
  18. package/dist/src/page-designer/index.js +52 -0
  19. package/dist/src/page-designer/mixins/dragSourceMixin.js +95 -0
  20. package/dist/src/page-designer/page-variable-panel/JsonEditor.js +106 -0
  21. package/dist/src/page-designer/page-variable-panel/PageVariablePanel.js +939 -0
  22. package/dist/src/page-designer/page-variable-panel/index.js +7 -0
  23. package/dist/src/page-designer/page-variable-panel/jsonlint.js +230 -0
  24. package/dist/src/page-designer/previews/add-form/Preview.js +8 -0
  25. package/dist/src/page-designer/previews/add-form/Preview.vue.js +328 -0
  26. package/dist/src/page-designer/previews/add-form-item/Preview.js +194 -0
  27. package/dist/src/page-designer/previews/button/Preview.js +30 -0
  28. package/dist/src/page-designer/previews/card/Preview.js +87 -0
  29. package/dist/src/page-designer/previews/carousel/CarouselItemPreview.js +33 -0
  30. package/dist/src/page-designer/previews/carousel/Preview.js +61 -0
  31. package/dist/src/page-designer/previews/collapse/CollapseItemPreview.js +118 -0
  32. package/dist/src/page-designer/previews/collapse/Preview.js +35 -0
  33. package/dist/src/page-designer/previews/dropdown/Preview.js +68 -0
  34. package/dist/src/page-designer/previews/entity-list/Preview.js +522 -0
  35. package/dist/src/page-designer/previews/entity-sub-list/Preview.js +352 -0
  36. package/dist/src/page-designer/previews/entity-virtual-list/Preview.js +11 -0
  37. package/dist/src/page-designer/previews/form-field/preview/Checkbox.js +91 -0
  38. package/dist/src/page-designer/previews/form-field/preview/Date.js +77 -0
  39. package/dist/src/page-designer/previews/form-field/preview/Input.js +74 -0
  40. package/dist/src/page-designer/previews/form-field/preview/InputNumber.js +74 -0
  41. package/dist/src/page-designer/previews/form-field/preview/Object.js +77 -0
  42. package/dist/src/page-designer/previews/form-field/preview/Radio.js +146 -0
  43. package/dist/src/page-designer/previews/form-field/preview/Select.js +78 -0
  44. package/dist/src/page-designer/previews/form-field/preview/Textarea.js +78 -0
  45. package/dist/src/page-designer/previews/grid/Preview.js +139 -0
  46. package/dist/src/page-designer/previews/html/Preview.js +18 -0
  47. package/dist/src/page-designer/previews/icon/Preview.js +20 -0
  48. package/dist/src/page-designer/previews/image/Preview.js +36 -0
  49. package/dist/src/page-designer/previews/index.js +74 -0
  50. package/dist/src/page-designer/previews/layout/ColumnPreview.js +47 -0
  51. package/dist/src/page-designer/previews/layout/Preview.js +110 -0
  52. package/dist/src/page-designer/previews/num/Preview.js +132 -0
  53. package/dist/src/page-designer/previews/page-tabs/Preview.js +75 -0
  54. package/dist/src/page-designer/previews/step/Preview.js +207 -0
  55. package/dist/src/page-designer/previews/tabs/Preview.js +95 -0
  56. package/dist/src/page-designer/previews/tabs/tab-pane/Preview.js +33 -0
  57. package/dist/src/page-designer/previews/text/Preview.js +38 -0
  58. package/dist/src/page-designer/previews/text-editor/Preview.js +23 -0
  59. package/dist/src/page-designer/previews/video/Preview.js +10 -0
  60. package/dist/src/page-designer/setting-panel/Advance.js +281 -0
  61. package/dist/src/page-designer/setting-panel/CodeEditor.js +94 -0
  62. package/dist/src/page-designer/setting-panel/Property.js +165 -0
  63. package/dist/src/page-designer/setting-panel/Setting.js +296 -0
  64. package/dist/src/page-designer/setting-panel/Style.js +1591 -0
  65. package/dist/src/page-designer/setting-panel/css-editor/CssEditor.js +98 -0
  66. package/dist/src/page-designer/setting-panel/css-editor/css-hint.js +84 -0
  67. package/dist/src/page-designer/setting-panel/index.js +11 -0
  68. package/dist/src/page-designer/template-attribute-panel/TemplateAttributePanel.js +487 -0
  69. package/dist/src/page-designer/template-attribute-panel/index.js +5 -0
  70. package/dist/src/page-designer/template-library/Library.js +219 -0
  71. package/dist/src/page-designer/template-library/index.js +5 -0
  72. package/dist/src/page-designer/widget-library/Base.js +170 -0
  73. package/dist/src/page-designer/widget-library/Library.js +213 -0
  74. package/dist/src/page-designer/widget-library/index.js +7 -0
  75. package/dist/src/page-designer/widget-preview/Container.js +80 -0
  76. package/dist/src/page-designer/widget-preview/DragGhost.js +54 -0
  77. package/dist/src/page-designer/widget-preview/DropZoneOverlay.js +42 -0
  78. package/dist/src/page-designer/widget-preview/HoverOverlay.js +61 -0
  79. package/dist/src/page-designer/widget-preview/Mixin.js +260 -0
  80. package/dist/src/page-designer/widget-preview/Placeholder.js +28 -0
  81. package/dist/src/page-designer/widget-preview/Preview.js +277 -0
  82. package/dist/src/page-designer/widget-preview/PreviewItem.js +83 -0
  83. package/dist/src/page-designer/widget-preview/SelectedOverlay.js +332 -0
  84. package/dist/src/page-designer/widget-preview/Template.js +66 -0
  85. package/dist/src/page-designer/widget-preview/WidgetWrapper.js +170 -0
  86. package/dist/src/page-designer/widget-preview/directive.js +159 -0
  87. package/dist/src/page-designer/widget-preview/dropPosition.js +50 -0
  88. package/dist/src/page-designer/widget-preview/index.js +23 -0
  89. package/dist/src/page-designer/widget-preview/overlayPositionMixin.js +87 -0
  90. package/dist/src/page-designer/widget-preview/resolvePreviewName.js +32 -0
  91. package/dist/src/page-designer/widget-tree/Item.js +580 -0
  92. package/dist/src/page-designer/widget-tree/Tree.js +855 -0
  93. package/dist/src/page-designer/widget-tree/index.js +7 -0
  94. package/dist/src/visual/AddForm.js +172 -0
  95. package/dist/src/visual/AddFormItem.js +480 -0
  96. package/dist/src/visual/AppIndex.js +243 -0
  97. package/dist/src/visual/ApplyForm.js +135 -0
  98. package/dist/src/visual/AttributeList.js +344 -0
  99. package/dist/src/visual/BasePage.js +77 -0
  100. package/dist/src/visual/Button.js +5 -0
  101. package/dist/src/visual/Button.vue.js +89 -0
  102. package/dist/src/visual/CardNum.js +74 -0
  103. package/dist/src/visual/CategoryList.js +569 -0
  104. package/dist/src/visual/Chart.js +27 -0
  105. package/dist/src/visual/ChartNew.js +5 -0
  106. package/dist/src/visual/ChartNew.vue.js +54 -0
  107. package/dist/src/visual/CheckForm.js +110 -0
  108. package/dist/src/visual/ClientList.js +41 -0
  109. package/dist/src/visual/CodeManage.js +113 -0
  110. package/dist/src/visual/Component.js +6 -0
  111. package/dist/src/visual/Component.vue.js +1332 -0
  112. package/dist/src/visual/ComponentList.js +280 -0
  113. package/dist/src/visual/Config.js +8 -0
  114. package/dist/src/visual/Config.vue.js +862 -0
  115. package/dist/src/visual/ConfigItem.js +8 -0
  116. package/dist/src/visual/ConfigItem.vue.js +192 -0
  117. package/dist/src/visual/ConfigSelectItems.js +8 -0
  118. package/dist/src/visual/ConfigSelectItems.vue.js +260 -0
  119. package/dist/src/visual/CreatePage.js +389 -0
  120. package/dist/src/visual/DashboardDiv.js +58 -0
  121. package/dist/src/visual/DashboardTabs.js +9 -0
  122. package/dist/src/visual/DashboardTabs.vue.js +127 -0
  123. package/dist/src/visual/DashboardWidget.js +5 -0
  124. package/dist/src/visual/DashboardWidget.vue.js +62 -0
  125. package/dist/src/visual/DblogList.js +82 -0
  126. package/dist/src/visual/EntityAddPage.js +49 -0
  127. package/dist/src/visual/EntityApplyPage.js +54 -0
  128. package/dist/src/visual/EntityCardList.js +455 -0
  129. package/dist/src/visual/EntityCheckPage.js +66 -0
  130. package/dist/src/visual/EntityFindPage.js +45 -0
  131. package/dist/src/visual/EntityList.js +6 -0
  132. package/dist/src/visual/EntityList.vue.js +1221 -0
  133. package/dist/src/visual/EntityListPage.js +43 -0
  134. package/dist/src/visual/EntityNoSubmitSubList.js +267 -0
  135. package/dist/src/visual/EntityRightSubList.js +29 -0
  136. package/dist/src/visual/EntitySubAdd.js +10 -0
  137. package/dist/src/visual/EntitySubGridItem.js +66 -0
  138. package/dist/src/visual/EntitySubList.js +434 -0
  139. package/dist/src/visual/EntityTreeFindPage.js +32 -0
  140. package/dist/src/visual/EntityTreeManage.js +49 -0
  141. package/dist/src/visual/EntityTreePage.js +42 -0
  142. package/dist/src/visual/ExcelPreview.js +10 -0
  143. package/dist/src/visual/FormField.js +5 -0
  144. package/dist/src/visual/FormField.vue.js +121 -0
  145. package/dist/src/visual/HeaderNew.js +161 -0
  146. package/dist/src/visual/Html.js +8 -0
  147. package/dist/src/visual/Html.vue.js +109 -0
  148. package/dist/src/visual/Import.js +53 -0
  149. package/dist/src/visual/InterfaceSubList.js +21 -0
  150. package/dist/src/visual/ListFirst.js +704 -0
  151. package/dist/src/visual/MEntityAddPage.js +66 -0
  152. package/dist/src/visual/MEntityList.js +485 -0
  153. package/dist/src/visual/MEntityListPage.js +40 -0
  154. package/dist/src/visual/MEntitySubList.js +237 -0
  155. package/dist/src/visual/MetaList.js +23 -0
  156. package/dist/src/visual/ModuleIndexPage.js +67 -0
  157. package/dist/src/visual/ModuleList.js +47 -0
  158. package/dist/src/visual/NavAddForm.js +173 -0
  159. package/dist/src/visual/NavFormCatalogItem.js +44 -0
  160. package/dist/src/visual/NumItem.js +70 -0
  161. package/dist/src/visual/NumStatistic.js +6 -0
  162. package/dist/src/visual/NumStatistic.vue.js +81 -0
  163. package/dist/src/visual/OrgChart.js +107 -0
  164. package/dist/src/visual/PageCatalog.js +27 -0
  165. package/dist/src/visual/PageConfig.js +223 -0
  166. package/dist/src/visual/PageTabs.js +49 -0
  167. package/dist/src/visual/Progress.js +40 -0
  168. package/dist/src/visual/ProgressItem.js +44 -0
  169. package/dist/src/visual/SystemManager.js +77 -0
  170. package/dist/src/visual/Title.js +45 -0
  171. package/dist/src/visual/TodoList.js +14 -0
  172. package/dist/src/visual/UserFormItem.js +41 -0
  173. package/dist/src/visual/UserManage.js +35 -0
  174. package/dist/src/visual/chart/CircularPie.js +9 -0
  175. package/dist/src/visual/chart/Column.js +70 -0
  176. package/dist/src/visual/chart/HoriColumn.js +9 -0
  177. package/dist/src/visual/chart/Line.js +9 -0
  178. package/dist/src/visual/chart/Pie.js +9 -0
  179. package/dist/src/visual/config/Background.js +526 -0
  180. package/dist/src/visual/config/Chart.js +154 -0
  181. package/dist/src/visual/config/Checkbox.js +63 -0
  182. package/dist/src/visual/config/Color.js +41 -0
  183. package/dist/src/visual/config/DesignReport.js +24 -0
  184. package/dist/src/visual/config/Event.js +304 -0
  185. package/dist/src/visual/config/Field.js +520 -0
  186. package/dist/src/visual/config/Font.js +202 -0
  187. package/dist/src/visual/config/FormItem.js +23 -0
  188. package/dist/src/visual/config/Function.js +114 -0
  189. package/dist/src/visual/config/Html.js +111 -0
  190. package/dist/src/visual/config/Image.js +102 -0
  191. package/dist/src/visual/config/Input.js +177 -0
  192. package/dist/src/visual/config/Input.vue.js +479 -0
  193. package/dist/src/visual/config/LazyDialog.js +41 -0
  194. package/dist/src/visual/config/List.js +65 -0
  195. package/dist/src/visual/config/ListField.js +2080 -0
  196. package/dist/src/visual/config/MField.js +733 -0
  197. package/dist/src/visual/config/Number.js +37 -0
  198. package/dist/src/visual/config/Object.js +168 -0
  199. package/dist/src/visual/config/Operate.js +1109 -0
  200. package/dist/src/visual/config/OperateItem.js +1186 -0
  201. package/dist/src/visual/config/Options.js +8 -0
  202. package/dist/src/visual/config/Options.vue.js +278 -0
  203. package/dist/src/visual/config/OrderField.js +505 -0
  204. package/dist/src/visual/config/Page.js +76 -0
  205. package/dist/src/visual/config/Params.js +353 -0
  206. package/dist/src/visual/config/Radio.js +127 -0
  207. package/dist/src/visual/config/Row.js +104 -0
  208. package/dist/src/visual/config/Scope.js +350 -0
  209. package/dist/src/visual/config/Select.js +95 -0
  210. package/dist/src/visual/config/Switch.js +37 -0
  211. package/dist/src/visual/config/Textarea.js +175 -0
  212. package/dist/src/visual/config/Textarea.vue.js +507 -0
  213. package/dist/src/visual/config/Tree.js +138 -0
  214. package/dist/src/visual/config/remote-cache.js +30 -0
  215. package/dist/src/visual/config/show-condition.js +20 -0
  216. package/dist/src/visual/config/variable-sources.js +27 -0
  217. package/dist/src/visual/config/wait-ref.js +19 -0
  218. package/dist/src/visual/config-page/ComponentLibrary.js +170 -0
  219. package/dist/src/visual/config-page/ComponentLibraryDialog.js +250 -0
  220. package/dist/src/visual/config-page/ComponentList.js +9 -0
  221. package/dist/src/visual/config-page/ComponentList.vue.js +292 -0
  222. package/dist/src/visual/config-page/ComponentPreview.js +8 -0
  223. package/dist/src/visual/config-page/ComponentPreview.vue.js +151 -0
  224. package/dist/src/visual/config-page/ConfigOption.js +13 -0
  225. package/dist/src/visual/config-page/ConfigPanel.js +302 -0
  226. package/dist/src/visual/config-page/Dashboard.js +2160 -0
  227. package/dist/src/visual/config-page/DashboardDesign.js +606 -0
  228. package/dist/src/visual/config-page/DashboardGlobalConfig.js +6 -0
  229. package/dist/src/visual/config-page/DashboardGlobalConfig.vue.js +292 -0
  230. package/dist/src/visual/config-page/DashboardMobile.js +1115 -0
  231. package/dist/src/visual/config-page/DashboardSetting.js +86 -0
  232. package/dist/src/visual/config-page/PagePreview.js +8 -0
  233. package/dist/src/visual/config-page/PagePreview.vue.js +72 -0
  234. package/dist/src/visual/config-page/StyleConfig.js +979 -0
  235. package/dist/src/visual/config-page/VisualConfigPage.js +645 -0
  236. package/dist/src/visual/config-page/dashboard-theme-setting/Background.js +180 -0
  237. package/dist/src/visual/config-page/dashboard-theme-setting/Border.js +314 -0
  238. package/dist/src/visual/config-page/dashboard-theme-setting/Font.js +192 -0
  239. package/dist/src/visual/config-page/dashboard-theme-setting/Index.js +545 -0
  240. package/dist/src/visual/config-page/dashboard-theme-setting/Shadow.js +174 -0
  241. package/dist/src/visual/config-page/index.js +90 -0
  242. package/dist/src/visual/index.js +151 -0
  243. package/dist/src/visual/mixins/innerGridMixin.js +122 -0
  244. package/dist/src/visual/search/Filter.js +49 -0
  245. package/dist/src/visual/step/Index.js +8 -0
  246. package/dist/src/visual/step/Index.vue.js +485 -0
  247. package/dist/src/visual/step/Item.js +139 -0
  248. package/dist/src/visual/widgets/CardFormItemVisual.js +45 -0
  249. package/dist/src/visual/widgets/CarouselVisual.js +8 -0
  250. package/dist/src/visual/widgets/CarouselVisual.vue.js +303 -0
  251. package/dist/src/visual/widgets/CollapseVisual.js +8 -0
  252. package/dist/src/visual/widgets/CollapseVisual.vue.js +202 -0
  253. package/dist/src/visual/widgets/DropdownVisual.js +8 -0
  254. package/dist/src/visual/widgets/DropdownVisual.vue.js +955 -0
  255. package/dist/src/visual/widgets/LayoutConfig.js +8 -0
  256. package/dist/src/visual/widgets/LayoutConfig.vue.js +168 -0
  257. package/dist/src/visual/widgets/ListVisual.js +349 -0
  258. package/dist/src/visual/widgets/MEntityListFindVisual.js +76 -0
  259. package/dist/src/visual/widgets/ProcessFormItemVisual.js +5 -0
  260. package/dist/src/visual/widgets/ProcessFormItemVisual.vue.js +45 -0
  261. package/dist/src/visual/widgets/TabsConfig.js +8 -0
  262. package/dist/src/visual/widgets/TabsConfig.vue.js +343 -0
  263. package/dist/style.css +9907 -0
  264. package/package.json +104 -3
  265. package/src/index.js +27 -0
  266. package/src/page-designer/PageConfigPreview.vue +103 -0
  267. package/src/page-designer/PageDesigner.vue +1017 -0
  268. package/src/page-designer/designer.js +1299 -0
  269. package/src/page-designer/index.js +38 -0
  270. package/src/page-designer/mixins/dragSourceMixin.js +113 -0
  271. package/src/page-designer/page-variable-panel/JsonEditor.vue +109 -0
  272. package/src/page-designer/page-variable-panel/PageVariablePanel.vue +781 -0
  273. package/src/page-designer/page-variable-panel/index.js +6 -0
  274. package/src/page-designer/page-variable-panel/jsonlint.js +2 -0
  275. package/src/page-designer/previews/add-form/Preview.vue +331 -0
  276. package/src/page-designer/previews/add-form-item/Preview.vue +167 -0
  277. package/src/page-designer/previews/button/Preview.vue +27 -0
  278. package/src/page-designer/previews/card/Preview.vue +78 -0
  279. package/src/page-designer/previews/carousel/CarouselItemPreview.vue +32 -0
  280. package/src/page-designer/previews/carousel/Preview.vue +36 -0
  281. package/src/page-designer/previews/collapse/CollapseItemPreview.vue +136 -0
  282. package/src/page-designer/previews/collapse/Preview.vue +28 -0
  283. package/src/page-designer/previews/dropdown/Preview.vue +21 -0
  284. package/src/page-designer/previews/entity-list/Preview.vue +382 -0
  285. package/src/page-designer/previews/entity-sub-list/Preview.vue +283 -0
  286. package/src/page-designer/previews/entity-virtual-list/Preview.vue +14 -0
  287. package/src/page-designer/previews/form-field/preview/Checkbox.vue +57 -0
  288. package/src/page-designer/previews/form-field/preview/Date.vue +56 -0
  289. package/src/page-designer/previews/form-field/preview/Input.vue +53 -0
  290. package/src/page-designer/previews/form-field/preview/InputNumber.vue +53 -0
  291. package/src/page-designer/previews/form-field/preview/Object.vue +53 -0
  292. package/src/page-designer/previews/form-field/preview/Radio.vue +69 -0
  293. package/src/page-designer/previews/form-field/preview/Select.vue +55 -0
  294. package/src/page-designer/previews/form-field/preview/Textarea.vue +57 -0
  295. package/src/page-designer/previews/grid/Preview.vue +156 -0
  296. package/src/page-designer/previews/html/Preview.vue +11 -0
  297. package/src/page-designer/previews/icon/Preview.vue +12 -0
  298. package/src/page-designer/previews/image/Preview.vue +37 -0
  299. package/src/page-designer/previews/index.js +74 -0
  300. package/src/page-designer/previews/layout/ColumnPreview.vue +89 -0
  301. package/src/page-designer/previews/layout/Preview.vue +96 -0
  302. package/src/page-designer/previews/num/Preview.vue +100 -0
  303. package/src/page-designer/previews/page-tabs/Preview.vue +53 -0
  304. package/src/page-designer/previews/step/Preview.vue +190 -0
  305. package/src/page-designer/previews/tabs/Preview.vue +66 -0
  306. package/src/page-designer/previews/tabs/tab-pane/Preview.vue +32 -0
  307. package/src/page-designer/previews/text/Preview.vue +26 -0
  308. package/src/page-designer/previews/text-editor/Preview.vue +14 -0
  309. package/src/page-designer/previews/video/Preview.vue +9 -0
  310. package/src/page-designer/setting-panel/Advance.vue +175 -0
  311. package/src/page-designer/setting-panel/CodeEditor.vue +88 -0
  312. package/src/page-designer/setting-panel/Property.vue +163 -0
  313. package/src/page-designer/setting-panel/Setting.vue +271 -0
  314. package/src/page-designer/setting-panel/Style.vue +1096 -0
  315. package/src/page-designer/setting-panel/css-editor/CssEditor.vue +93 -0
  316. package/src/page-designer/setting-panel/css-editor/css-hint.js +58 -0
  317. package/src/page-designer/setting-panel/index.js +10 -0
  318. package/src/page-designer/template-attribute-panel/TemplateAttributePanel.vue +383 -0
  319. package/src/page-designer/template-attribute-panel/index.js +2 -0
  320. package/src/page-designer/template-library/Library.vue +153 -0
  321. package/src/page-designer/template-library/index.js +4 -0
  322. package/src/page-designer/widget-library/Base.vue +156 -0
  323. package/src/page-designer/widget-library/Library.vue +282 -0
  324. package/src/page-designer/widget-library/index.js +6 -0
  325. package/src/page-designer/widget-preview/Container.vue +89 -0
  326. package/src/page-designer/widget-preview/DragGhost.vue +83 -0
  327. package/src/page-designer/widget-preview/DropZoneOverlay.vue +51 -0
  328. package/src/page-designer/widget-preview/HoverOverlay.vue +85 -0
  329. package/src/page-designer/widget-preview/Mixin.js +285 -0
  330. package/src/page-designer/widget-preview/Placeholder.vue +22 -0
  331. package/src/page-designer/widget-preview/Preview.vue +322 -0
  332. package/src/page-designer/widget-preview/PreviewItem.vue +162 -0
  333. package/src/page-designer/widget-preview/SelectedOverlay.vue +340 -0
  334. package/src/page-designer/widget-preview/Template.vue +77 -0
  335. package/src/page-designer/widget-preview/WidgetWrapper.vue +197 -0
  336. package/src/page-designer/widget-preview/directive.js +258 -0
  337. package/src/page-designer/widget-preview/dropPosition.js +51 -0
  338. package/src/page-designer/widget-preview/index.js +23 -0
  339. package/src/page-designer/widget-preview/overlayPositionMixin.js +88 -0
  340. package/src/page-designer/widget-preview/resolvePreviewName.js +33 -0
  341. package/src/page-designer/widget-tree/Item.vue +719 -0
  342. package/src/page-designer/widget-tree/Tree.vue +995 -0
  343. package/src/page-designer/widget-tree/index.js +6 -0
  344. package/src/visual/AddForm.vue +172 -0
  345. package/src/visual/AddFormItem.vue +482 -0
  346. package/src/visual/AppIndex.vue +245 -0
  347. package/src/visual/ApplyForm.vue +140 -0
  348. package/src/visual/AttributeList.vue +344 -0
  349. package/src/visual/BasePage.vue +76 -0
  350. package/src/visual/Button.vue +80 -0
  351. package/src/visual/CardNum.vue +73 -0
  352. package/src/visual/CategoryList.vue +563 -0
  353. package/src/visual/Chart.vue +29 -0
  354. package/src/visual/ChartNew.vue +49 -0
  355. package/src/visual/CheckForm.vue +106 -0
  356. package/src/visual/ClientList.vue +42 -0
  357. package/src/visual/CodeManage.vue +116 -0
  358. package/src/visual/Component.vue +1342 -0
  359. package/src/visual/ComponentList.vue +280 -0
  360. package/src/visual/Config.vue +881 -0
  361. package/src/visual/ConfigItem.vue +218 -0
  362. package/src/visual/ConfigSelectItems.vue +445 -0
  363. package/src/visual/CreatePage.vue +389 -0
  364. package/src/visual/DashboardDiv.vue +197 -0
  365. package/src/visual/DashboardTabs.vue +118 -0
  366. package/src/visual/DashboardWidget.vue +55 -0
  367. package/src/visual/DblogList.vue +84 -0
  368. package/src/visual/EntityAddPage.vue +52 -0
  369. package/src/visual/EntityApplyPage.vue +57 -0
  370. package/src/visual/EntityCardList.vue +449 -0
  371. package/src/visual/EntityCheckPage.vue +69 -0
  372. package/src/visual/EntityFindPage.vue +55 -0
  373. package/src/visual/EntityList.vue +838 -0
  374. package/src/visual/EntityListPage.vue +97 -0
  375. package/src/visual/EntityNoSubmitSubList.vue +273 -0
  376. package/src/visual/EntityRightSubList.vue +32 -0
  377. package/src/visual/EntitySubAdd.vue +11 -0
  378. package/src/visual/EntitySubGridItem.vue +67 -0
  379. package/src/visual/EntitySubList.vue +440 -0
  380. package/src/visual/EntityTreeFindPage.vue +36 -0
  381. package/src/visual/EntityTreeManage.vue +50 -0
  382. package/src/visual/EntityTreePage.vue +45 -0
  383. package/src/visual/ExcelPreview.vue +11 -0
  384. package/src/visual/FormField.vue +113 -0
  385. package/src/visual/HeaderNew.vue +176 -0
  386. package/src/visual/Html.vue +104 -0
  387. package/src/visual/Import.vue +55 -0
  388. package/src/visual/InterfaceSubList.vue +23 -0
  389. package/src/visual/ListFirst.vue +614 -0
  390. package/src/visual/MEntityAddPage.vue +71 -0
  391. package/src/visual/MEntityList.vue +488 -0
  392. package/src/visual/MEntityListPage.vue +46 -0
  393. package/src/visual/MEntitySubList.vue +237 -0
  394. package/src/visual/MetaList.vue +24 -0
  395. package/src/visual/ModuleIndexPage.vue +70 -0
  396. package/src/visual/ModuleList.vue +46 -0
  397. package/src/visual/NavAddForm.vue +177 -0
  398. package/src/visual/NavFormCatalogItem.vue +47 -0
  399. package/src/visual/NumItem.vue +69 -0
  400. package/src/visual/NumStatistic.vue +242 -0
  401. package/src/visual/OrgChart.vue +113 -0
  402. package/src/visual/PageCatalog.vue +26 -0
  403. package/src/visual/PageConfig.vue +278 -0
  404. package/src/visual/PageTabs.vue +55 -0
  405. package/src/visual/Progress.vue +39 -0
  406. package/src/visual/ProgressItem.vue +43 -0
  407. package/src/visual/SystemManager.vue +80 -0
  408. package/src/visual/Title.vue +44 -0
  409. package/src/visual/TodoList.vue +18 -0
  410. package/src/visual/UserFormItem.vue +49 -0
  411. package/src/visual/UserManage.vue +36 -0
  412. package/src/visual/chart/CircularPie.vue +7 -0
  413. package/src/visual/chart/Column.vue +73 -0
  414. package/src/visual/chart/HoriColumn.vue +7 -0
  415. package/src/visual/chart/Line.vue +7 -0
  416. package/src/visual/chart/Pie.vue +7 -0
  417. package/src/visual/config/Background.vue +398 -0
  418. package/src/visual/config/Chart.vue +139 -0
  419. package/src/visual/config/Checkbox.vue +64 -0
  420. package/src/visual/config/Color.vue +40 -0
  421. package/src/visual/config/DesignReport.vue +20 -0
  422. package/src/visual/config/Event.vue +220 -0
  423. package/src/visual/config/Field.vue +597 -0
  424. package/src/visual/config/Font.vue +149 -0
  425. package/src/visual/config/FormItem.vue +25 -0
  426. package/src/visual/config/Function.vue +78 -0
  427. package/src/visual/config/Html.vue +98 -0
  428. package/src/visual/config/Image.vue +132 -0
  429. package/src/visual/config/Input.vue +712 -0
  430. package/src/visual/config/LazyDialog.vue +44 -0
  431. package/src/visual/config/List.vue +68 -0
  432. package/src/visual/config/ListField.vue +1714 -0
  433. package/src/visual/config/MField.vue +601 -0
  434. package/src/visual/config/Number.vue +41 -0
  435. package/src/visual/config/Object.vue +177 -0
  436. package/src/visual/config/Operate.vue +1083 -0
  437. package/src/visual/config/OperateItem.vue +917 -0
  438. package/src/visual/config/Options.vue +330 -0
  439. package/src/visual/config/OrderField.vue +587 -0
  440. package/src/visual/config/Page.vue +45 -0
  441. package/src/visual/config/Params.vue +228 -0
  442. package/src/visual/config/Radio.vue +93 -0
  443. package/src/visual/config/Row.vue +78 -0
  444. package/src/visual/config/Scope.vue +363 -0
  445. package/src/visual/config/Select.vue +93 -0
  446. package/src/visual/config/Switch.vue +36 -0
  447. package/src/visual/config/Textarea.vue +754 -0
  448. package/src/visual/config/Tree.vue +135 -0
  449. package/src/visual/config/remote-cache.js +35 -0
  450. package/src/visual/config/show-condition.js +21 -0
  451. package/src/visual/config/variable-sources.js +27 -0
  452. package/src/visual/config/wait-ref.js +17 -0
  453. package/src/visual/config-page/ComponentLibrary.vue +220 -0
  454. package/src/visual/config-page/ComponentLibraryDialog.vue +262 -0
  455. package/src/visual/config-page/ComponentList.vue +580 -0
  456. package/src/visual/config-page/ComponentPreview.vue +206 -0
  457. package/src/visual/config-page/ConfigOption.vue +16 -0
  458. package/src/visual/config-page/ConfigPanel.vue +301 -0
  459. package/src/visual/config-page/Dashboard.vue +2331 -0
  460. package/src/visual/config-page/DashboardDesign.vue +656 -0
  461. package/src/visual/config-page/DashboardGlobalConfig.vue +158 -0
  462. package/src/visual/config-page/DashboardMobile.vue +1118 -0
  463. package/src/visual/config-page/DashboardSetting.vue +47 -0
  464. package/src/visual/config-page/PagePreview.vue +105 -0
  465. package/src/visual/config-page/StyleConfig.vue +656 -0
  466. package/src/visual/config-page/VisualConfigPage.vue +746 -0
  467. package/src/visual/config-page/dashboard-theme-setting/Background.vue +98 -0
  468. package/src/visual/config-page/dashboard-theme-setting/Border.vue +185 -0
  469. package/src/visual/config-page/dashboard-theme-setting/Font.vue +101 -0
  470. package/src/visual/config-page/dashboard-theme-setting/Index.vue +471 -0
  471. package/src/visual/config-page/dashboard-theme-setting/Shadow.vue +102 -0
  472. package/src/visual/config-page/index.js +93 -0
  473. package/src/visual/index.js +23 -0
  474. package/src/visual/mixins/innerGridMixin.js +128 -0
  475. package/src/visual/search/Filter.vue +50 -0
  476. package/src/visual/step/Index.vue +361 -0
  477. package/src/visual/step/Item.vue +140 -0
  478. package/src/visual/widgets/CardFormItemVisual.vue +46 -0
  479. package/src/visual/widgets/CarouselVisual.vue +291 -0
  480. package/src/visual/widgets/CollapseVisual.vue +203 -0
  481. package/src/visual/widgets/DropdownVisual.vue +541 -0
  482. package/src/visual/widgets/LayoutConfig.vue +186 -0
  483. package/src/visual/widgets/ListVisual.vue +349 -0
  484. package/src/visual/widgets/MEntityListFindVisual.vue +77 -0
  485. package/src/visual/widgets/ProcessFormItemVisual.vue +58 -0
  486. package/src/visual/widgets/TabsConfig.vue +266 -0
  487. package/types/index.d.ts +22 -0
  488. package/types/page-designer.d.ts +3 -0
  489. package/types/visual-component.d.ts +1 -0
  490. package/types/visual-entity-list.d.ts +1 -0
  491. package/types/visual-entity-sub-list.d.ts +1 -0
@@ -0,0 +1,917 @@
1
+ <template>
2
+ <div class="operate-config__options" v-if="selectOperate" :key="selectOperate.key || selectOperate.id">
3
+ <el-tabs class="operate-tabs" v-model="operateTab">
4
+ <el-tab-pane v-for="tab in operateTabs" :key="tab.key" :label="tab.title" :name="tab.key">
5
+ <el-form class="setting-field__config" label-position="right">
6
+ <el-form-item v-for="item in showOperateOptions(tab.options)" :key="item.key" :label="item.label">
7
+ <!-- 单选框 -->
8
+ <el-radio-group v-if="item.type==='radio'" :model-value="selectOperate[item.key]!=null ? selectOperate[item.key]: item.defaultValue">
9
+ <el-radio v-for="option in item.options" :key="option.value" :label="option.value" :value="option.value" @click="selectOperate[item.key] = option.value">
10
+ {{option.label}}
11
+ </el-radio>
12
+ </el-radio-group>
13
+ <epx-visual-config-select
14
+ v-else-if="item.type==='select'"
15
+ :allow-create="item.allowCreate"
16
+ :value="selectOperate[item.key]"
17
+ :defaultValue="item.defaultValue"
18
+ :placeholder="item.placeholder"
19
+ :option-list="item.options"
20
+ :multiple="item.multiple"
21
+ @change-configs="v=>(selectOperate[item.key] = v)"
22
+ ></epx-visual-config-select>
23
+ <!-- 多选框 -->
24
+ <epx-visual-config-checkbox
25
+ v-else-if="item.type==='checkbox'"
26
+ :code="item.code"
27
+ :option-list="item.options"
28
+ :value="selectOperate[item.key]"
29
+ :defaultValue="item.defaultValue"
30
+ @change-configs="v=>(selectOperate[item.key] = v)"
31
+ />
32
+ <!-- 开关 -->
33
+ <el-switch v-else-if="item.type==='switch'" :model-value="selectOperate[item.key]!=null ? selectOperate[item.key]: item.defaultValue" @update:model-value="v=>(selectOperate[item.key] = v)"></el-switch>
34
+ <!-- 对象 -->
35
+ <epx-visual-config-object
36
+ v-else-if="item.type==='object'"
37
+ :value="selectOperate[item.key]"
38
+ label=''
39
+ :dataKey="item.dataKey"
40
+ :object="item.entityId || item.object"
41
+ :flag="item.flag"
42
+ :fieldConfigs="item.fieldConfigs"
43
+ @change-configs="v=>(selectOperate[item.key] = v)"
44
+ ></epx-visual-config-object>
45
+ <epx-visual-config-field
46
+ v-else-if="item.type==='field'"
47
+ :value="selectOperate[item.key]"
48
+ :metaId="entityWay === 'custom' ? selectOperate.metaId|| metaId: metaId"
49
+ :treeFieldStore="treeFieldStore"
50
+ :multiple="item.multiple"
51
+ :limit="item.limit"
52
+ :scopeConfigs="scopeConfigs"
53
+ :defaultShowSubField="item.showSubField"
54
+ :showSubFlag="item.showSubFlag"
55
+ @change-configs="v=>(selectOperate[item.key] = v)"
56
+ />
57
+ <!-- 颜色 -->
58
+ <el-radio-group class="operate-item__ui-select" v-else-if="item.type==='ui-select'" v-model="selectOperate.ui" size="default">
59
+ <el-radio v-for="option in operateUi" :key="option.value" :label="option.value" :value="option.value" border>
60
+ <el-button size="small" :type="option.value" @click="selectOperate['ui'] = option.value">{{option.label}}</el-button>
61
+ </el-radio>
62
+ </el-radio-group>
63
+ <!-- <ul class="operate-color__list">
64
+
65
+ <li v-for="option in operateUi" :key="option.value"
66
+ :class="['operate-color__item']"
67
+ @click="$set(selectOperate, 'ui', option.value)">
68
+ <div :class="['operate-color', option.value, {active: option.value===(selectOperate.ui || 'default')}]" >
69
+ <i class="el-icon-check check-icon"></i>
70
+ </div>
71
+ <p class="operate-color__text">{{option.label}}</p>
72
+ </li>
73
+ </ul> -->
74
+ <!-- 预览 -->
75
+ <el-button v-bind="{[selectOperate.type]: true}" size="default"
76
+ v-else-if="item.type==='preview'"
77
+ :type="selectOperate.ui"
78
+ :plain="selectOperate.styles && selectOperate.styles.includes('plain')"
79
+ :circle="selectOperate.styles && selectOperate.styles.includes('circle')"
80
+ :round="selectOperate.styles && selectOperate.styles.includes('round')"
81
+ :icon="selectOperate.icon && (selectOperate.icon.id || selectOperate.icon)">
82
+ <template v-if="selectOperate.showName!==false">{{selectOperate.text}}</template>
83
+ </el-button>
84
+ <!-- 业务对象 -->
85
+ <template v-else-if="item.type==='entity'">
86
+ <el-radio-group v-model="entityWay">
87
+ <el-radio label="default" value="default">当前对象</el-radio>
88
+ <el-radio label="custom" value="custom">指定对象</el-radio>
89
+ <el-radio v-show="useProcessRight && ['applyEntity','checkEntity', 'batchCheck'].includes(selectOperate.handler)" label="process" value="process">流程对象</el-radio>
90
+ </el-radio-group>
91
+ <epx-object v-show="entityWay === 'custom'" :modelValue="selectOperate.metaId" @update:modelValue="v=>(selectOperate['metaId'] = v.id || v)" :fieldConfigs="{ state: 'ADD', attriLabel: '对象', codeKey: 'FM_ENTITY' }"></epx-object>
92
+ </template>
93
+ <!-- 接口 -->
94
+ <template v-else-if="item.type==='action'">
95
+ <div :style="{marginBottom: '10px'}">
96
+ <el-select :filterable="true" clearable v-model="selectOperate[item.key]" size="default" placeholder="">
97
+ <el-option
98
+ v-for="option in operateActionList"
99
+ :key="option.value"
100
+ :label="`${option.label}`"
101
+ :value="option.value"
102
+ >
103
+ </el-option>
104
+ </el-select>
105
+ <p :style="{fontSize: '12px', color: '#999', position: 'absolute', top: '30px', whiteSpace: 'nowrap'}">请求操作可用于控制操作权限:按钮是否显示</p>
106
+ </div>
107
+ </template>
108
+ <!-- 业务规则 -->
109
+ <el-select v-else-if="item.type==='rule'" clearable v-model="selectOperate[item.key]" size="default" placeholder="">
110
+ <el-option
111
+ v-for="option in operateRuleList"
112
+ :key="option.value"
113
+ :label="`${option.label}`"
114
+ :value="option.value"
115
+ >
116
+ </el-option>
117
+ </el-select>
118
+ <!-- 页面 -->
119
+ <template v-else-if="item.type==='page'">
120
+ <el-radio-group v-model="pageWay">
121
+ <el-radio label="component" value="component">指定页面模板</el-radio>
122
+ <el-radio label="page" value="page">指定页面</el-radio>
123
+ </el-radio-group>
124
+ <epx-object v-show="pageWay==='component'" v-model="selectOperate.component" :fieldConfigs="{ state: 'ADD', attriLabel: '页面模板', codeKey: 'FM_PAGE', scopeParams: [{lb: '(', field: 'SYSTEM', values: SYSTEM, link: 'or' }, { field:'LEVEL',values: '01', 'rb': ')' }] }"></epx-object>
125
+ <epx-object v-show="pageWay==='page'" v-model="selectOperate.pageId" :fieldConfigs="{ state: 'ADD', attriLabel: '页面', codeKey: 'FM_PAGE_CONFIG', scopeParams: [{ field: 'SYSTEM', values: SYSTEM }], addBtn: true, addPageFlag: 'page_add', detailPageFlag: 'page_config' }"></epx-object>
126
+ </template>
127
+ <!-- 流程 -->
128
+ <div v-else-if="item.type==='process'" >
129
+ <epx-visual-config-object :value="selectOperate.processCode" label='' :scopeParams="[{field: 'ENTITY', values: entityWay === 'custom' ? selectOperate.metaId|| metaId: metaId }, {field: 'CATEGORY', values: '1'}]" dataKey="KEY" object="ACT_RE_MODEL" @change-configs="v=>changeProcess(item, v)"></epx-visual-config-object>
130
+ <div>
131
+ <el-radio-group v-model="selectOperate[item.key+'Type']">
132
+ <el-radio label="line" value="line">自定义连线</el-radio>
133
+ <el-radio label="default" value="default">默认操作</el-radio>
134
+ </el-radio-group>
135
+ </div>
136
+ <el-select clearable v-if="selectOperate[item.key+'Type']==='default'" v-model="selectOperate[item.key]" size="default" placeholder="">
137
+ <el-option label="同意" value="agree"></el-option>
138
+ <el-option label="驳回" value="disagree"></el-option>
139
+ <el-option label="保存" value="save"></el-option>
140
+ <el-option label="退回" value="return"></el-option>
141
+ <el-option label="撤销" value="repeal"></el-option>
142
+ </el-select>
143
+ <el-select v-else clearable v-model="selectOperate[item.key]" size="default" placeholder="">
144
+ <el-option
145
+ v-for="option in (item.processType==='check'?checkProcessNodeList:processNodeList)"
146
+ :key="option.id"
147
+ :label="option.name"
148
+ :value="option.id"
149
+ >
150
+ </el-option>
151
+ </el-select>
152
+ </div>
153
+ <!-- 高级查询 -->
154
+ <epx-visual-config-scope v-bind="item" v-else-if="item.type==='scope'"
155
+ :value="selectOperate[item.key]"
156
+ :treeFieldStore="treeFieldStore"
157
+ :componentMetaId="item.metaId || metaId"
158
+ :scopeConfigs="scopeConfigs"
159
+
160
+ @change-configs="v=>changeScopeParmas(item.key, v)"
161
+ />
162
+ <epx-rule
163
+ v-else-if="item.type==='el'"
164
+ formulaType='web'
165
+ :modelValue="elData(selectOperate[item.key])||item.defaultValue"
166
+ @change="v=>changeEl(item.key, v)"
167
+ :metaId="item.metaId || metaId"
168
+ :extendVariable="variableTree"
169
+ :fieldConfigs="{ state: 'EDIT', functionType: 'web' }"
170
+ />
171
+ <!-- 自定义JS事件 -->
172
+ <template v-else-if="item.type==='function'">
173
+ <el-select clearable :model-value="selectOperate[item.key] || 'new'" @clear="selectOperate[item.key] = null">
174
+ <el-option @click="selectOperate[item.key] = option" v-for="option in functionList" :key="option" :value="option">{{option}}</el-option>
175
+ <el-option @click="selectOperate[item.key] = 'new'" value="new" label="添加新事件">添加新事件</el-option>
176
+ </el-select>
177
+ <div class="handler-function">
178
+ <el-input size="default" v-if="!selectOperate[item.key] || selectOperate[item.key]==='new'" v-model="selectOperate[item.key + 'Name']" ></el-input>
179
+ <el-button @click="editJS(item)">编辑JS代码</el-button>
180
+ </div>
181
+ </template>
182
+ <!-- 参数 -->
183
+ <div v-else-if="item.type === 'params'">
184
+ <p v-for="(value, key) in selectOperate[item.key]" class="operate-params-item" :key="key">
185
+ {{key}} = {{value}}
186
+ <i class="el-icon-edit" @click="editOperateParam(item.key, key, value)"></i>
187
+ <i class="el-icon-close" @click="deleteOperateParam(item.key, key)"></i>
188
+ </p>
189
+ <el-button type="primary" link @click="operateParamsDialog = `${item.key}`">添加参数</el-button>
190
+ </div>
191
+ <!-- 按钮 -->
192
+ <div v-else-if="item.type==='operate'">
193
+ <draggable
194
+ :list="selectOperate.operates"
195
+ class="list-group-operates"
196
+ ghost-class="ghost"
197
+ >
198
+ <transition-group type="transition" name="flip-list" >
199
+ <el-button size="default" v-for="operate in selectOperate.operates" :type="operate.ui" :key="operate.text">
200
+ <i :class="['fa', operate.icon]"></i>
201
+ {{operate.text}}
202
+ </el-button>
203
+ </transition-group>
204
+ </draggable>
205
+ <el-button type="primary" link :style="{ marginLeft: '12px' }" @click="$emit('set-dropdown')">设置</el-button>
206
+ </div>
207
+ <epx-visual-config-textarea
208
+ v-else-if="item.type==='textarea'"
209
+ :key="item.key"
210
+ :label="item.label"
211
+ :value="selectOperate[item.key]"
212
+ :defaultValue="item.defaultValue"
213
+ :i18nValue="selectOperate[item.key + '.i18n']"
214
+ @change-configs="v=>(selectOperate[item.key] = v)"
215
+ @change-language-config="v=>(selectOperate[item.key+'.i18n'] = v)"
216
+ >
217
+ </epx-visual-config-textarea>
218
+ <epx-visual-config-input
219
+ v-else
220
+ :label="item.label"
221
+ :value="selectOperate[item.key]"
222
+ :defaultValue="item.defaultValue"
223
+ :i18nValue="selectOperate[item.key + '.i18n']"
224
+ @change-configs="v=>(selectOperate[item.key] = v)"
225
+ @change-language-config="v=>(selectOperate[item.key+'.i18n'] = v)"
226
+ >
227
+ </epx-visual-config-input>
228
+ <el-tooltip class="operate-config-item__tip" :content="item.tip" placement="top" v-if="item.tip">
229
+ <i class="el-icon-warning-outline"></i>
230
+ </el-tooltip>
231
+ </el-form-item>
232
+ </el-form>
233
+ </el-tab-pane>
234
+ <el-tab-pane label="样式" name="style">
235
+ <epx-page-designer-setting-style :style="{width: '360px'}" v-model="selectOperate.css" inline-style></epx-page-designer-setting-style>
236
+ </el-tab-pane>
237
+ </el-tabs>
238
+ <epx-visual-config-lazy-dialog
239
+ title="添加参数"
240
+ append-to-body
241
+ :model-value="!!operateParamsDialog"
242
+ width="400px"
243
+ @close="operateParamsDialog = false; operateParamsType= null"
244
+ >
245
+ <div>
246
+ <div class="add-params-input">
247
+ <span>参数名:</span>
248
+ <div v-if="selectOperate && selectOperate.handler==='print' && selectOperate.printWay!=='fine'">
249
+ <el-radio-group v-model="operateParams.key">
250
+ <el-radio v-for="param in printFormParams" :key="param.ID" :label="param.CODE" :value="param.CODE">{{param.NAME}}</el-radio>
251
+ <el-radio label="custom" value="custom">自定义</el-radio>
252
+ </el-radio-group>
253
+ <el-input v-if="operateParams.key==='custom'" :model-value="operateParams.customKey" @update:model-value="v => (operateParams['customKey'] = v)"> </el-input>
254
+ </div>
255
+ <el-input v-else :model-value="operateParams.customKey" @update:model-value="v => (operateParams['customKey'] = v)"> </el-input>
256
+ </div>
257
+ <div class="add-params-input">
258
+ <span>参数类型:</span>
259
+ <el-radio-group v-model="paramType">
260
+ <el-radio label="str" value="str">固定值</el-radio>
261
+ <el-radio label="field" value="field">字段值 </el-radio>
262
+ <el-radio label="page" value="page">页面参数</el-radio>
263
+ </el-radio-group>
264
+ </div>
265
+ <div class="add-params-input" >
266
+ <span>参数值:</span>
267
+ <el-input v-if="paramType==='str'" :model-value="operateParams.value" @update:model-value="v => (operateParams['value'] = v)"></el-input>
268
+ <el-popover
269
+ v-else-if="paramType==='field'"
270
+ width="200"
271
+ trigger="click"
272
+ >
273
+ <template v-slot:reference><el-input :model-value="operateParams.value"></el-input></template>
274
+ <el-tree
275
+ :style="{maxHeight: '300px', overflow: 'auto'}"
276
+ :data="fieldStore"
277
+ :props="{
278
+ children: 'children',
279
+ label: 'text'
280
+ }"
281
+ >
282
+ <template v-slot="{node, data}"><span v-html="node.label" @click="operateParams.value=`#[${data.field.replace(/\./g, '|')}]`"></span></template>
283
+ </el-tree>
284
+ </el-popover>
285
+ <el-select v-else-if="paramType==='page'" v-model="operateParams.value">
286
+ <el-option
287
+ v-for="item in pageParams"
288
+ :key="item.code"
289
+ :label="item.name || item.code"
290
+ :value="`$[${item.code}]`">
291
+ </el-option>
292
+ </el-select>
293
+ </div>
294
+ <div class="add-params__footer">
295
+ <el-button type="primary" @click="addOperateParams">确定</el-button>
296
+ <el-button @click="operateParamsDialog = false;">取消</el-button>
297
+ </div>
298
+ </div>
299
+ </epx-visual-config-lazy-dialog>
300
+ </div>
301
+ </template>
302
+ <script>
303
+ import { mapGetters } from 'vuex'
304
+ export default {
305
+ props: {
306
+ designer: {
307
+ type: Object
308
+ },
309
+ useProcessRight: {
310
+ type: Boolean,
311
+ default: false
312
+ },
313
+ value: {
314
+ type: Object,
315
+ default () {
316
+ return {}
317
+ }
318
+ },
319
+ metaId: String,
320
+ operateTabs: {
321
+ type: Array,
322
+ default () {
323
+ return []
324
+ }
325
+ },
326
+ scopeConfigs: Object,
327
+ treeFieldStore: Array,
328
+ defaultActionList: Array,
329
+ defaultRuleList: Array
330
+ },
331
+ data () {
332
+ return {
333
+ operateTab: 'base',
334
+ selectOperate: null,
335
+ pageWay: 'component',
336
+ operateType: [
337
+ {
338
+ label: '默认',
339
+ value: 'default'
340
+ },
341
+ {
342
+ label: '空心按钮',
343
+ value: 'plain'
344
+ },
345
+ {
346
+ label: '圆角按钮',
347
+ value: 'round'
348
+ },
349
+ {
350
+ label: '圆形按钮',
351
+ value: 'circle'
352
+ },
353
+ {
354
+ label: '文字按钮',
355
+ value: 'text'
356
+ }
357
+ ],
358
+ operateUi: [
359
+ { label: '默认', value: 'default', color: '#fff' },
360
+ { label: '主要', value: 'primary' },
361
+ { label: '成功', value: 'success', color: '#67c23a' },
362
+ { label: '警告', value: 'warning', color: '#e6a23c' },
363
+ { label: '危险', value: 'danger', color: '#f56c6c' },
364
+ { label: '文字', value: 'text' }
365
+ ],
366
+ processNodeList: [],
367
+ checkProcessNodeList: [],
368
+ actionList: [],
369
+ ruleList: [],
370
+ paramType: 'str',
371
+ operateParamsDialog: false,
372
+ operateParams: {
373
+ key: '',
374
+ value: ''
375
+ },
376
+ printFormParams: []
377
+ }
378
+ },
379
+ computed: {
380
+ ...mapGetters([
381
+ 'getMetaViewFields'
382
+ ]),
383
+ widgetConfig () {
384
+ return this.designer.widgetConfig[this.designer.selectedWidget.id] || {}
385
+ },
386
+ functionList () {
387
+ const { JS = '' } = this.designer?.pageConfig || {}
388
+ const result = JS.match(/export\sfunction\s(\w+)/g)
389
+ const functionList = []
390
+ if (!result) return []
391
+ result.forEach(item => {
392
+ functionList.push(item.replace(/export\sfunction\s/, ''))
393
+ })
394
+ return functionList
395
+ },
396
+ fieldStore () {
397
+ const id = this.selectOperate.metaId
398
+ return this.getMetaViewFields(id || this.metaId) || this.treeFieldStore
399
+ },
400
+ operateActionList () {
401
+ if (this.selectOperate.metaId && this.entityWay === 'custom' && this.actionList) return this.actionList
402
+ return this.defaultActionList
403
+ },
404
+ operateRuleList () {
405
+ if (this.selectOperate.metaId && this.entityWay === 'custom' && this.ruleList) return this.ruleList
406
+ return this.defaultRuleList
407
+ },
408
+ showOperateOptions () {
409
+ return (operateOptions = []) => {
410
+ const operate = this.selectOperate
411
+ const operates = operateOptions.filter(item => {
412
+ let flag = true
413
+ if (!item) return false
414
+ if (item.showFlag) {
415
+ for (const key in item.showFlag) {
416
+ const relyOption = operateOptions.find(option => option && option.key === key) || {}
417
+ const value = operate && !this.$_.isNil(operate[key]) ? operate[key] : relyOption.defaultValue || null
418
+ const condition = item.showFlag[key]
419
+ if (typeof condition === 'object') {
420
+ if (Array.isArray(value)) {
421
+ flag = value.some(item => condition.includes(item))
422
+ if (!flag) return false
423
+ } else {
424
+ if (!condition.includes(value)) return false
425
+ }
426
+ } else if (condition !== value) {
427
+ return false
428
+ }
429
+ }
430
+ }
431
+ return flag
432
+ })
433
+ return operates
434
+ }
435
+ },
436
+ entityWay: {
437
+ get () {
438
+ const { metaMode, handler, metaId } = this.selectOperate
439
+ if (metaMode) {
440
+ return metaMode
441
+ } else {
442
+ if (this.useProcessRight && ['applyEntity', 'checkEntity', 'batchCheck'].includes(handler)) {
443
+ return 'process'
444
+ } else {
445
+ return metaId ? 'custom' : 'default'
446
+ }
447
+ }
448
+ },
449
+ set (v) {
450
+ this.selectOperate.metaMode = v
451
+ }
452
+ },
453
+ elData () {
454
+ return value => {
455
+ if (typeof value === 'object') {
456
+ return JSON.stringify(value)
457
+ } else {
458
+ return value
459
+ }
460
+ }
461
+ },
462
+ variableSets: {
463
+ get () {
464
+ return this.designer.pageConfig?.variableSets || []
465
+ }
466
+ },
467
+ variableTree () {
468
+ const { iterator } = this.widgetConfig
469
+ const variableList = this.variableSets.map(item => ({ ...item, type: 'variable', text: item.name || item.code, code: item.code }))
470
+ if (iterator?.data) {
471
+ variableList.push({
472
+ type: 'variable',
473
+ text: this.selectedWidget.title + '_迭代变量',
474
+ code: iterator.name || 'item'
475
+ })
476
+ }
477
+ variableList.push({
478
+ type: 'variable',
479
+ text: '页面状态',
480
+ code: 'pageType'
481
+ })
482
+ return [{
483
+ code: 'PAGE_VARIABLE',
484
+ text: '页面变量',
485
+ children: variableList
486
+ }]
487
+ }
488
+ },
489
+ watch: {
490
+ 'selectOperate.metaId' (v) {
491
+ if (v) {
492
+ const metaId = v.id || v
493
+ if (metaId !== this.metaId) {
494
+ this.getActionList(metaId)
495
+ this.getRuleList(metaId)
496
+ this.getFieldStore(metaId)
497
+ }
498
+ }
499
+ },
500
+ 'selectOperate.processCode' (v) {
501
+ this.getProcessNode(v)
502
+ this.getCheckProcessNode(v)
503
+ },
504
+ 'selectOperate.printCode' (v) {
505
+ const { printWay, handler } = this.selectOperate
506
+ if (printWay !== 'fine' && handler === 'print' && v) {
507
+ this.getPrintParams()
508
+ }
509
+ },
510
+ selectOperate: {
511
+ async handler (v) {
512
+ const operate = { ...v }
513
+ if (this.entityWay !== 'custom') {
514
+ operate.metaId = null
515
+ }
516
+ if (this.pageWay === 'component') {
517
+ operate.pageId = null
518
+ }
519
+ for (const key in operate) {
520
+ if (operate[key] && (typeof operate[key] === 'object' && !Array.isArray(operate[key])) && key !== 'params' && key !== 'limitCondition' && key !== 'showCondition' && key !== 'showConditionEl' && key !== 'afterTriggerParams' && key !== 'downloadReportNameFields' && key !== 'operates' && !key.includes('i18n')) {
521
+ operate[key] = operate[key].id
522
+ }
523
+ if (operate[key] === null) delete operate[key]
524
+ }
525
+ if (operate.component) {
526
+ const code = await this.getComponentCode(operate.component)
527
+ if (code) operate.component = code
528
+ }
529
+ this.$emit('change', operate)
530
+ },
531
+ deep: true
532
+ }
533
+ },
534
+ methods: {
535
+ getActionList (id) {
536
+ this.$http.list({
537
+ action: 'getEntityAllApi',
538
+ entityId: 'FM_ENTITY_API',
539
+ metaId: id
540
+ })
541
+ .then(data => {
542
+ this.actionList = data.entitys.map(item => ({ label: item.LABEL || item.NAME, value: item.NAME }))
543
+ })
544
+ },
545
+ getRuleList (id) {
546
+ this.$http.list({
547
+ entityId: 'ACT_RE_MODEL',
548
+ 'scope.ENTITY': id,
549
+ 'scope.CATEGORY': '2'
550
+ })
551
+ .then(data => {
552
+ this.ruleList = data.entitys.map(item => ({ label: item.NAME || item.KEY, value: item.KEY }))
553
+ })
554
+ },
555
+ getFieldStore (id) {
556
+ if (!id) return
557
+ if (!(this.fieldStore && this.fieldStore.length > 0)) {
558
+ this.$store.dispatch({
559
+ type: 'ADD_META_VIEW_FIELDS',
560
+ metaId: id
561
+ })
562
+ }
563
+ },
564
+ getPrintParams () {
565
+ const { printCode } = this.selectOperate
566
+ this.$http.list({
567
+ entityId: 'FM_FORM_PARAM',
568
+ 'scope.FORM|CODE': printCode
569
+ })
570
+ .then(data => {
571
+ this.printFormParams = data.entitys
572
+ })
573
+ },
574
+ getProcessNode (processCode) {
575
+ if (!processCode) return
576
+ const operateMeta = this.selectOperate.metaId
577
+ this.$http.get({
578
+ action: 'getProcessStartFlow',
579
+ entityId: 'ACT_RE_MODEL',
580
+ processCode,
581
+ currentMetaId: operateMeta || this.currentMetaId
582
+ })
583
+ .then(data => {
584
+ this.processNodeList = data
585
+ })
586
+ },
587
+ getCheckProcessNode (processCode) {
588
+ if (!processCode) return
589
+ const operateMeta = this.selectOperate.metaId
590
+ this.$http.get({
591
+ action: 'getProcessFlow',
592
+ entityId: 'ACT_RE_MODEL',
593
+ processCode,
594
+ currentMetaId: operateMeta || this.metaId
595
+ })
596
+ .then(data => {
597
+ this.checkProcessNodeList = data.map(item => ({ ...item, name: item.sourceFlowName + '-' + item.name }))
598
+ })
599
+ },
600
+ getComponentId (code) {
601
+ return new Promise(resolve => {
602
+ this.$http.find({
603
+ entityId: 'FM_PAGE',
604
+ 'scope.CODE': code
605
+ })
606
+ .then(data => {
607
+ if (data && data.data) {
608
+ resolve(data.data.ID)
609
+ }
610
+ resolve()
611
+ })
612
+ })
613
+ },
614
+ getComponentCode (id) {
615
+ return new Promise(resolve => {
616
+ this.$http.get({
617
+ entityId: 'FM_PAGE',
618
+ id
619
+ })
620
+ .then(data => {
621
+ if (data && data.data) {
622
+ resolve(data.data.CODE)
623
+ }
624
+ resolve()
625
+ })
626
+ })
627
+ },
628
+ changeSelect (item, v) {
629
+ this.selectOperate[item.key] = v
630
+ if (item.onChange) {
631
+ item.onChange(v)
632
+ }
633
+ },
634
+ changeProcess (item, v) {
635
+ this.selectOperate.processCode = v
636
+ if (!v) {
637
+ this.selectOperate[item.key] = null
638
+ }
639
+ },
640
+ changeScopeParmas (key, v, type) {
641
+ this.selectOperate[key] = v
642
+ },
643
+ changeEl (key, v, type) {
644
+ this.selectOperate[key] = v ? JSON.parse(v).el : null
645
+ },
646
+ addOperateParams () {
647
+ const operate = this.selectOperate
648
+ // 复制一份参数对象再修改,避免与其它按钮共享同一引用导致互相影响
649
+ const params = { ...(operate[this.operateParamsDialog] || {}) }
650
+ let key = this.operateParams.key.trim()
651
+ const value = this.operateParams.value.trim()
652
+ if (!key || key === 'custom') {
653
+ key = this.operateParams.customKey.trim()
654
+ }
655
+ if (!key) {
656
+ this.$message.error('请输入参数名')
657
+ return
658
+ }
659
+ if (!value) {
660
+ this.$message.error('请输入参数值')
661
+ return
662
+ }
663
+ if (this.operateParamKey) delete params[this.operateParamKey]
664
+ params[key] = value
665
+ this.selectOperate[this.operateParamsDialog] = params
666
+ this.operateParams = {
667
+ key: '',
668
+ customKey: '',
669
+ value: ''
670
+ }
671
+ this.operateParamsDialog = false
672
+ this.operateParamsType = null
673
+ this.operateParamKey = null
674
+ },
675
+ deleteOperateParam (itemKey, key) {
676
+ // 复制一份参数对象再删除,避免与其它按钮共享同一引用导致互相影响
677
+ const params = { ...(this.selectOperate[itemKey] || {}) }
678
+ delete params[key]
679
+ this.$set(this.selectOperate, itemKey, params)
680
+ },
681
+ editOperateParam (itemKey, key, value) {
682
+ this.operateParamsDialog = itemKey
683
+ this.operateParamKey = key
684
+ this.operateParams = {
685
+ key: 'custom',
686
+ customKey: key,
687
+ value
688
+ }
689
+ },
690
+ editJS (item, type) {
691
+ // 获取页面JS配置
692
+ // 创建新JS 添加到页面
693
+ // 弹出编辑窗口
694
+ const operate = { ...this.selectOperate }
695
+ const { JS = '' } = this.designer?.pageConfig || {}
696
+
697
+ if (!operate[item.key] || operate[item.key] === 'new') {
698
+ if (!operate[item.key + 'Name']) {
699
+ this.$message.error('请输入事件名')
700
+ return
701
+ }
702
+ if (this.functionList.includes(operate[item.key + 'Name'])) {
703
+ this.$message.error('该事件名称已存在')
704
+ return
705
+ }
706
+ const js = JS + `
707
+ /**
708
+ * Button ${operate[item.key + 'Name']}
709
+ */
710
+ export function ${operate[item.key + 'Name']} () {
711
+
712
+ }
713
+ `
714
+ this.designer.updatePageConfig({ JS: js })
715
+ this.selectOperate[item.key] = operate[item.key + 'Name']
716
+ this.selectOperate[item.key + 'Name'] = null
717
+ }
718
+ this.designer.openPanel('jsPanel')
719
+ }
720
+ },
721
+ async mounted () {
722
+ // 深拷贝一份再编辑,保证编辑当前按钮时不会原地修改外部传入对象(含 params 等嵌套对象)的引用
723
+ const selectOperate = this.$_.cloneDeep(this.value)
724
+ if (this.value.pageId) {
725
+ this.pageWay = 'page'
726
+ } else {
727
+ this.pageWay = 'component'
728
+ }
729
+ if (this.value.component) {
730
+ const id = await this.getComponentId(this.value.component)
731
+ if (id) selectOperate.component = id
732
+ }
733
+ this.selectOperate = selectOperate
734
+ }
735
+ }
736
+ </script>
737
+ <style lang="scss" scoped>
738
+ .operate-config__options {
739
+ width: 100%;
740
+ height: 100%;
741
+ }
742
+ .operate-tabs {
743
+ width: 100%;
744
+ height: 100%;
745
+ display: flex;
746
+ flex-direction: column ;
747
+
748
+ :deep(.el-tabs__nav-scroll) {
749
+ padding: 0 20px;
750
+ }
751
+ :deep(.el-tab-pane) {
752
+ height: 100%;
753
+ overflow: auto;
754
+ }
755
+
756
+ }
757
+ .operate-color__list {
758
+ display: flex;
759
+ }
760
+ .operate-color__item {
761
+ margin: 0 20px;
762
+ display: flex;
763
+ flex-direction: column;
764
+ align-items: center;
765
+ }
766
+ .operate-color {
767
+ width: 32px;
768
+ height: 32px;
769
+ border-radius: 50%;
770
+ line-height: 36px;
771
+ box-sizing: border-box;
772
+ text-align: center;
773
+ .check-icon {
774
+ display: none;
775
+ }
776
+ &.default {
777
+ border: 1px solid #e3e3e3;
778
+ }
779
+ &.primary {
780
+ @include bg_color_primary;
781
+ }
782
+ &.success {
783
+ background: #67c23a;
784
+ }
785
+ &.warning {
786
+ background: #e6a23c;
787
+ }
788
+ &.danger {
789
+ background: #f56c6c;
790
+ }
791
+ &.active {
792
+ .check-icon {
793
+ display: inline;
794
+ color: #fff;
795
+ font-size: 18px;
796
+ text-align: center
797
+ }
798
+ }
799
+ &.active.default {
800
+ .check-icon {
801
+ @include font_color_primary;
802
+ }
803
+ }
804
+ }
805
+ .setting-field__config {
806
+ flex: 1;
807
+ overflow: auto;
808
+
809
+ :deep(.el-form-item) {
810
+ width: 100%;
811
+ display: flex;
812
+ align-items: center;
813
+ margin: 10px 0;
814
+ }
815
+ :deep(.el-form-item__content) {}
816
+ :deep(.el-input) {
817
+ width: 220px!important;
818
+ .el-input__inner {
819
+ width: 220px;
820
+ }
821
+ }
822
+ :deep(.el-form-item__label) {
823
+ width: 120px;
824
+ &::after {
825
+ content: ':';
826
+ margin-right: 4px;
827
+ }
828
+ }
829
+
830
+ }
831
+ .handler-function {
832
+ margin-top: 10px;
833
+
834
+ :deep(.el-input) {
835
+ margin-right: 10px;
836
+ }
837
+
838
+ }
839
+ .operate-params-item {
840
+ cursor: pointer;
841
+ i {
842
+ display: none;
843
+ margin-left: 8px;
844
+ font-size: var(--epx-font-size-l);
845
+ @include font_color_primary;
846
+ &:last-child {
847
+ color: #F56C6C;
848
+ }
849
+ }
850
+ &:hover {
851
+ i {
852
+ display: inline;
853
+
854
+ }
855
+ }
856
+ }
857
+ .add-params-input {
858
+ display: flex;
859
+ align-items: center;
860
+ margin-bottom: 16px;
861
+ padding: 0 10px;
862
+ >span {
863
+ white-space: nowrap;
864
+ }
865
+
866
+ :deep(.el-input) {
867
+ width: 240px;
868
+ }
869
+
870
+ }
871
+ .add-params__footer {
872
+ text-align: center;
873
+ }
874
+ .operate-item__ui-select {
875
+
876
+ :deep(.el-radio.is-bordered) {
877
+ height: auto;
878
+ padding: 8px;
879
+ margin-right: 12px;
880
+ overflow: hidden;
881
+ }
882
+ :deep(.el-radio__label) {
883
+ padding: 0;
884
+ .el-button {
885
+ width: 60px;
886
+ }
887
+ }
888
+ :deep(.el-radio__input) {
889
+ position: absolute;
890
+ right: 0;
891
+ top: 0;
892
+ .el-radio__inner {
893
+ background: none;
894
+ border:none;
895
+ &::after {
896
+ display: none;
897
+ }
898
+ }
899
+
900
+ &.is-checked .el-radio__inner {
901
+ &::before {
902
+ content: '';
903
+ display: inline-block;
904
+ width: 1em;
905
+ height: 1em;
906
+ background-color: currentColor;
907
+ -webkit-mask: var(--epx-i-epx-icon-kapianxuanzhong) no-repeat center / 100%;
908
+ mask: var(--epx-i-epx-icon-kapianxuanzhong) no-repeat center / 100%;
909
+ vertical-align: -0.125em;
910
+ font-size: var(--epx-font-size-l);
911
+ @include font_color_primary;
912
+ }
913
+ }
914
+ }
915
+
916
+ }
917
+ </style>