@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,781 @@
1
+ <template>
2
+ <div class="epx-page-designer-page-variable">
3
+ <div class="epx-page-designer-page-variable__header">
4
+ <span>页面变量</span>
5
+ <i class="el-icon-close" @click="$emit('close')"></i>
6
+ </div>
7
+ <div class="epx-page-designer-page-variable__content">
8
+ <div class="epx-page-designer-page-variable__operates">
9
+ <el-button block type="primary" size="default" @click="addVariable">+新增页面变量</el-button>
10
+ </div>
11
+ <draggable tag="ul" v-model="variableSets" handle=".epx-page-designer-page-variable__drag-icon" class="epx-page-designer-page-variable__list">
12
+ <li class="epx-page-designer-page-variable__item" v-for="(item) in variableSets" :key="item.code">
13
+ <i class="epx-page-designer-page-variable__drag-icon epx-icon-tuozhuai"></i>
14
+ <div class="epx-page-designer-page-variable__item-content">
15
+ <div class="epx-page-designer-page-variable__title">
16
+ <span v-if="item.name">{{item.name}}</span>
17
+ <span>{{item.code}}</span>
18
+ </div>
19
+ <div class="epx-page-designer-page-variable__detail">
20
+ <div class="epx-page-designer-page-variable__detail-item">获取方式:{{typeOptions.find(t=>t.value===item.type).label}}</div>
21
+ <div class="epx-page-designer-page-variable__detail-item" v-if="item.value">变量值:{{item.value}}</div>
22
+ </div>
23
+ </div>
24
+ <div class="epx-page-designer-page-variable__extra">
25
+ <el-dropdown>
26
+ <span>
27
+ <i class="el-icon-more"></i>
28
+ </span>
29
+ <template v-slot:dropdown><el-dropdown-menu>
30
+ <el-dropdown-item command="view" @click="viewVariable(item)">查看</el-dropdown-item>
31
+ <el-dropdown-item command="edit" @click="editVariable(item)">编辑</el-dropdown-item>
32
+ <el-dropdown-item command="remove" @click="removeVariable(item)">删除</el-dropdown-item>
33
+ </el-dropdown-menu></template>
34
+ </el-dropdown>
35
+ </div>
36
+ </li>
37
+ </draggable>
38
+ </div>
39
+ <el-dialog
40
+ class="epx-page-designer-page-variable__variable-dialog"
41
+ :title="variableOperateType==='add'? '新增变量':variableOperateType==='detail'? '查看变量': '编辑变量'"
42
+ v-model="variableDialog"
43
+ width="600px"
44
+ append-to-body
45
+ :close-on-click-modal="false"
46
+ >
47
+ <div v-if="variableDialog">
48
+ <el-form ref="variableForm" class="epx-page-designer-page-variable__form" label-position="left" label-width="80px" :model="variableForm">
49
+ <el-form-item label="变量编号" required>
50
+ <span v-if="variableOperateType==='detail'">{{variableForm.code}}</span>
51
+ <el-input v-else v-model="variableForm.code" size="default" placeholder="请输入"></el-input>
52
+ </el-form-item>
53
+ <el-form-item label="变量名">
54
+ <span v-if="variableOperateType==='detail'">{{variableForm.name}}</span>
55
+ <el-input v-else v-model="variableForm.name" size="default" placeholder="请输入"></el-input>
56
+ </el-form-item>
57
+ <el-form-item label="来源">
58
+ <span v-if="variableOperateType==='detail'">{{variableForm.type && typeOptions.find(item=>item.value===variableForm.type).label}}</span>
59
+ <el-radio-group v-else v-model="variableForm.type" @change="variableForm.value=''">
60
+ <el-radio v-for="type in typeOptions" :key="type.value" :label="type.value" :value="type.value">{{type.label}}</el-radio>
61
+ </el-radio-group>
62
+ </el-form-item>
63
+ <template v-if="variableForm.type === 'request'">
64
+ <el-form-item label="请求对象">
65
+ <epx-visual-config-object
66
+ v-model="variableForm.metaId"
67
+ type="object"
68
+ label="请求对象"
69
+ object='FM_ENTITY'
70
+ :state="variableOperateType==='detail'? 'DETAIL': 'EDIT'"
71
+ ></epx-visual-config-object>
72
+ </el-form-item>
73
+ <el-form-item label="请求方式">
74
+ <el-radio-group v-model="interfaceType" >
75
+ <el-radio label="api" value="api">接口</el-radio>
76
+ <el-radio label="rule" value="rule">逻辑编排</el-radio>
77
+ </el-radio-group>
78
+ </el-form-item>
79
+ <el-form-item v-if="interfaceType==='rule'" label="逻辑编排">
80
+ <el-select clearable v-model="variableForm.rule" size="default" placeholder="">
81
+ <el-option
82
+ v-for="option in ruleMap[variableForm.metaId || designer.page.metaId]"
83
+ :key="option.value"
84
+ :label="`${option.label}`"
85
+ :value="option.value"
86
+ >
87
+ </el-option>
88
+ </el-select>
89
+ </el-form-item>
90
+ <el-form-item v-else label="请求接口">
91
+ <epx-visual-config-select
92
+ :value="variableForm.action"
93
+ :state="variableOperateType==='detail'? 'DETAIL': 'EDIT'"
94
+ :optionList="actionMap[variableForm.metaId || designer.page.metaId]"
95
+ placeholder="请选择"
96
+ @change-configs="v=>(variableForm['action'] = v)"
97
+ >
98
+ </epx-visual-config-select>
99
+ </el-form-item>
100
+ </template>
101
+ <el-form-item label="变量值" :required="variableForm.type!=='request'" v-if="variableForm.type!=='query'">
102
+ <span v-if="variableOperateType==='detail'">{{variableForm.type==='component' ? componentVariableShowLabel(variableForm.value):variableForm.value}}</span>
103
+ <template v-else>
104
+ <epx-page-variable-panel-json-editor class="epx-page-designer-page-variable__json-editor" v-if="variableForm.type==='fixed'" v-model="variableForm.value" placeholder="请输入字符串、数字、布尔值、对象{...}、数组[...]等类型"></epx-page-variable-panel-json-editor>
105
+ <el-input
106
+ v-else-if="variableForm.type==='component'"
107
+ type="text"
108
+ size="default"
109
+ placeholder="请选择组件变量"
110
+ suffix-icon="el-icon-search"
111
+ :model-value="componentVariableShowLabel(variableForm.value)"
112
+ @focus="openComponentVariableDialog" clearable
113
+ @clear="variableForm.value=''"
114
+ ></el-input>
115
+ <template v-else-if="variableForm.type==='request'">
116
+ <el-popover
117
+ ref="popover"
118
+ placement="bottom"
119
+ width="200"
120
+ trigger="focus"
121
+ >
122
+ <el-tree ref="apiParamsTree" :data="apiOutParams" node-key="id" :props="{label: 'REMARK', children: 'children'}"
123
+ :filter-node-method="apiParamsFilterNode"
124
+ @node-click="selectApiParams"
125
+ ></el-tree>
126
+ </el-popover>
127
+ <el-input v-model="apiParamsValue" :placeholder="apiParamsFocused?apiParamsValueLabel:'请选择'" size="default" v-popover:popover @focus="apiParamsFocused = true" @blur="apiParamsInputBlur" suffix-icon="el-icon-search"></el-input>
128
+ </template>
129
+ <el-input type="text" size="default" v-else v-model="variableForm.value"></el-input>
130
+ </template>
131
+ </el-form-item>
132
+ <template v-if="variableForm.type==='request'">
133
+ <el-form-item label="请求方式">
134
+ <span v-if="variableOperateType==='detail'">{{variableForm.requestType==='sync'? '同步':'异步'}}</span>
135
+ <el-radio-group v-else v-model="variableForm.requestType">
136
+ <el-radio label="async" value="async">异步</el-radio>
137
+ <el-radio label="sync" value="sync">同步</el-radio>
138
+ </el-radio-group>
139
+ </el-form-item>
140
+ <el-form-item label="请求参数">
141
+ <epx-visual-config-params
142
+ :state="variableOperateType==='detail'? 'DETAIL': 'EDIT'"
143
+ :value="variableForm.requestParams"
144
+ :metaId="variableForm.metaId || designer.page.metaId"
145
+ :treeFieldStore="treeFieldStore"
146
+ :paramList="apiInParams"
147
+ :pageParams="variableSets"
148
+ :showParamsType="['str', 'page']"
149
+ @change-configs="v=>(variableForm['requestParams'] = v)"
150
+ />
151
+ </el-form-item>
152
+ <el-form-item label="查询条件">
153
+ <epx-visual-config-scope
154
+ :state="variableOperateType==='detail'? 'DETAIL': 'EDIT'"
155
+ :value="variableForm.scopeParams"
156
+ :treeFieldStore="treeFieldStore"
157
+ :componentMetaId="variableForm.metaId || designer.page.metaId"
158
+ @change-configs="v=>(variableForm['scopeParams'] = v)"
159
+ />
160
+ </el-form-item>
161
+ </template>
162
+ <el-form-item label="数据加工">
163
+ <epx-rule
164
+ formulaType='web'
165
+ v-model="dataFormat"
166
+ :metaId="designer.page.metaId"
167
+ :variableList="variableTree"
168
+ :fieldConfigs="{state: 'EDIT', functionType: 'web' }"
169
+ >
170
+ </epx-rule>
171
+ </el-form-item>
172
+ <el-form-item label="变量说明">
173
+ <span v-if="variableOperateType==='detail'">{{variableForm.note}}</span>
174
+ <el-input v-else type="textarea" placeholder="请输入" v-model="variableForm.note"></el-input>
175
+ </el-form-item>
176
+ </el-form>
177
+ </div>
178
+ <template v-slot:footer><span v-if="variableOperateType!=='detail'" class="dialog-footer">
179
+ <el-button type="primary" @click="saveVariable" size="default">保 存</el-button>
180
+ <el-button @click="variableDialog = false" size="default">取 消</el-button>
181
+ </span></template>
182
+ </el-dialog>
183
+ <el-dialog
184
+ title="选择组件变量"
185
+ v-model="componentVariableDialog"
186
+ width="960px"
187
+ append-to-body
188
+ class="epx-page-designer-page-variable__component-dialog"
189
+ >
190
+ <div class="epx-page-designer-page-variable__component-variable">
191
+ <div class="epx-page-designer-page-variable__component-tree">
192
+ <el-input class="epx-page-designer-page-variable__component-search-input" size="small" suffix-icon="el-icon-search" v-model="componentVariableSearch" placeholder="输入变量名称查询"></el-input>
193
+ <el-tree ref="componentVariableTree" :data="widgetListWithInfo" :props="componentVariableTreeProps" @node-click="data=>selectedWidget=data" :filter-node-method="filterNode">
194
+ <template v-slot="{ data }"><span class="epx-page-designer-page-variable__component-node">
195
+ <span>
196
+ <i :class="[ data.data.ICON || 'el-icon-box']"></i>
197
+ <span>{{ data.title }}</span>
198
+ </span>
199
+ <i class="epx-icon-bianliang fr" v-if="data.data.variables"></i>
200
+ </span></template>
201
+ </el-tree>
202
+ </div>
203
+ <div class="epx-page-designer-page-variable__component-variable-content" v-if="selectedWidget">
204
+ <el-radio-group class="epx-page-designer-page-variable__component-variable-radio-group" v-if="selectedWidgetInfo.variables" v-model="variableForm.value">
205
+ <el-radio v-for="item in selectedWidgetInfo.variables" :key="item.data.CODE" :label="`${selectedWidget.id}.${item.data.CODE}`" :value="`${selectedWidget.id}.${item.data.CODE}`">{{item.data.NAME}}</el-radio>
206
+ </el-radio-group>
207
+ <div class="epx-page-designer-page-variable__null-data" v-else>
208
+ <i class="epx-icon-color-kong1"></i>
209
+ <span>暂无组件变量</span>
210
+ </div>
211
+ </div>
212
+ </div>
213
+ </el-dialog>
214
+ </div>
215
+ </template>
216
+ <script>
217
+ import { mapGetters } from 'vuex'
218
+ import draggable from '@epxing/core/src/components/draggable'
219
+ export default {
220
+ name: 'epx-page-designer-page-variable-panel',
221
+ components: {
222
+ draggable
223
+ },
224
+ props: {
225
+ designer: Object
226
+ },
227
+ data () {
228
+ return {
229
+ variableDialog: false,
230
+ variableOperateType: '',
231
+ interfaceType: 'api',
232
+ variableForm: {
233
+ type: 'fixed',
234
+ value: ''
235
+ },
236
+ componentVariableDialog: false,
237
+ selectVariableList: [],
238
+ typeOptions: [
239
+ {
240
+ label: '固定值',
241
+ value: 'fixed'
242
+ },
243
+ {
244
+ label: '组件变量',
245
+ value: 'component'
246
+ },
247
+ {
248
+ label: '请求获取',
249
+ value: 'request'
250
+ },
251
+ {
252
+ label: '页面传递',
253
+ value: 'query'
254
+ }
255
+ ],
256
+ actionMap: {},
257
+ ruleMap: {},
258
+ apiMap: {},
259
+ componentVariableTreeProps: {
260
+ children: 'items',
261
+ label: 'title'
262
+ },
263
+ selectedWidget: null,
264
+ apiParamsFilterText: '',
265
+ apiParamsFocused: false,
266
+ variableSets: [],
267
+ componentVariableSearch: ''
268
+ }
269
+ },
270
+ computed: {
271
+ ...mapGetters([
272
+ 'getMetaViewFields'
273
+ ]),
274
+ pageVariableSets: {
275
+ get () {
276
+ return this.designer.pageConfig.variableSets || []
277
+ }
278
+
279
+ },
280
+ treeFieldStore () {
281
+ return this.getMetaViewFields(this.variableForm.metaId || this.designer.page.metaId)
282
+ },
283
+ widgetList () {
284
+ return this.designer.widgetList || []
285
+ },
286
+ widgetListWithInfo () {
287
+ const widgetList = [...this.designer.widgetList]
288
+ const formatWidget = (widgetList) => {
289
+ return widgetList.map(widget => {
290
+ const newWidget = { ...widget }
291
+ const widgetInfo = this.designer.getWidgetByType(widget.contentType) || {}
292
+ newWidget.data = widgetInfo
293
+ if (newWidget.items) {
294
+ newWidget.items = formatWidget(newWidget.items)
295
+ }
296
+ return newWidget
297
+ })
298
+ }
299
+ return formatWidget(widgetList)
300
+ },
301
+ widgetInfo () {
302
+ return widget => {
303
+ return this.designer.getWidgetByType(this.selectedWidget.contentType) || {}
304
+ }
305
+ },
306
+ selectedWidgetInfo () {
307
+ if (this.selectedWidget) {
308
+ return this.designer.getWidgetByType(this.selectedWidget.contentType) || {}
309
+ }
310
+ return {}
311
+ },
312
+ componentVariableShowLabel () {
313
+ return v => {
314
+ if (!v) return ''
315
+ const widgetId = v.split('.')[0]
316
+ const variableCode = v.replace(`${widgetId}.`, '')
317
+ const widget = this.designer.getWidgetItemById(widgetId)
318
+ if (!widget) return ''
319
+ const widgetInfo = this.designer.getWidgetByType(widget.contentType) || {}
320
+ if (widgetInfo.variables) {
321
+ const variable = widgetInfo.variables.find(item => item.data.CODE === variableCode)
322
+ return `${widget.title}-${variable.data.NAME}`
323
+ }
324
+ return `${widget.title}-${variableCode}`
325
+ }
326
+ },
327
+ apiOutParams () {
328
+ let apiOutParams = []
329
+ const metaId = this.variableForm.metaId || this.designer.page.metaId
330
+ if (!metaId || !this.variableForm.action) {
331
+ apiOutParams = []
332
+ } else if (this.apiMap[metaId + '_' + this.variableForm.action]) {
333
+ apiOutParams = this.apiMap[metaId + '_' + this.variableForm.action].outParams
334
+ }
335
+ return apiOutParams
336
+ },
337
+ apiInParams () {
338
+ let apiInParams = []
339
+ const metaId = this.variableForm.metaId || this.designer.page.metaId
340
+ if (!metaId || !this.variableForm.action) {
341
+ apiInParams = []
342
+ } else if (this.apiMap[metaId + '_' + this.variableForm.action]) {
343
+ apiInParams = this.apiMap[metaId + '_' + this.variableForm.action].inParams
344
+ }
345
+ return apiInParams
346
+ },
347
+ apiParamsValue: {
348
+ get () {
349
+ if (this.apiParamsFocused) {
350
+ return this.apiParamsFilterText
351
+ } else {
352
+ return this.apiParamsValueLabel
353
+ }
354
+ },
355
+ set (v) {
356
+ this.apiParamsFilterText = v
357
+ }
358
+
359
+ },
360
+ apiParamsValueLabel () {
361
+ if (this.variableForm.value) {
362
+ const findItem = (arr) => {
363
+ for (const item of arr) {
364
+ if (item.NAME === this.variableForm.value) {
365
+ return item
366
+ } else if (item.children) {
367
+ const child = findItem(item.children)
368
+ if (child) return child
369
+ }
370
+ }
371
+ }
372
+ const item = findItem(this.apiOutParams)
373
+ return item?.REMARK || this.variableForm.value
374
+ }
375
+ return ''
376
+ },
377
+ variableTree () {
378
+ const variableList = this.variableSets.map(item => ({ ...item, type: 'variable', text: item.name || item.code, code: item.code }))
379
+ return [{
380
+ code: 'PAGE_VARIABLE',
381
+ text: '页面变量',
382
+ children: [{ type: 'variable', text: '当前变量', code: 'CURRENT_VALUE_' }, ...variableList]
383
+ }]
384
+ },
385
+ dataFormat: {
386
+ get () {
387
+ return this.variableForm.dataFormat
388
+ },
389
+ set (v) {
390
+ if (v) {
391
+ this.variableForm.dataFormat = JSON.parse(v).el
392
+ } else {
393
+ this.variableForm.dataFormat = ''
394
+ }
395
+ }
396
+ }
397
+ },
398
+ watch: {
399
+ componentVariableSearch (val) {
400
+ this.$refs.componentVariableTree.filter(val)
401
+ },
402
+ variableSets (v) {
403
+ this.designer.updatePageConfig({ variableSets: v })
404
+ },
405
+ 'variableForm.metaId': {
406
+ handler (v) {
407
+ const metaId = v || this.designer.page.metaId
408
+ if (!this.actionMap[metaId]) {
409
+ this.getActionList(metaId)
410
+ }
411
+ if (!this.ruleMap[metaId]) {
412
+ this.getRuleList(metaId)
413
+ }
414
+ },
415
+ immediate: true
416
+ },
417
+ 'variableForm.action': {
418
+ handler (v) {
419
+ if (v && this.variableForm.type === 'request') {
420
+ const metaId = this.variableForm.metaId || this.designer.page.metaId
421
+ if (!this.apiMap[metaId + '_' + v]) { this.getApiInfo(v) }
422
+ }
423
+ }
424
+ },
425
+ apiParamsFilterText (val) {
426
+ const node = this.$refs.apiParamsTree.getNode('custom')
427
+ if (node) this.$refs.apiParamsTree.remove(node)
428
+ if (val) {
429
+ const data = this.apiOutParams.find(item => item.NAME === val || item.REMARK === val)
430
+ if (!data) {
431
+ if (this.apiOutParams.length > 0) {
432
+ this.$refs.apiParamsTree.insertBefore({ id: 'custom', NAME: val, REMARK: val }, this.apiOutParams[0].id)
433
+ } else {
434
+ this.$refs.apiParamsTree.append({ id: 'custom', NAME: val, REMARK: val })
435
+ }
436
+ }
437
+ }
438
+
439
+ this.$refs.apiParamsTree.filter(val)
440
+ }
441
+ },
442
+ methods: {
443
+ filterNode (value, data) {
444
+ if (!value) return true
445
+ return (data.title).indexOf(value) !== -1
446
+ },
447
+ apiParamsFilterNode (value, data) {
448
+ if (!value) return true
449
+
450
+ return data.REMARK.indexOf(value) !== -1 || data.NAME.indexOf(value) !== -1
451
+ },
452
+ apiParamsInputBlur () {
453
+ setTimeout(() => {
454
+ this.apiParamsFocused = false
455
+ this.apiParamsFilterText = ''
456
+ }, 300)
457
+ },
458
+ selectApiParams (data) {
459
+ this.variableForm.value = data.NAME
460
+ },
461
+ addVariable () {
462
+ this.interfaceType = 'api'
463
+ this.variableForm = {
464
+ type: 'fixed',
465
+ requestType: 'async',
466
+ value: ''
467
+ }
468
+ this.variableOperateType = 'add'
469
+ this.variableDialog = true
470
+ },
471
+ editVariable (row) {
472
+ this.variableForm = { ...row }
473
+ if (this.variableForm.type === 'request' && this.variableForm.rule) {
474
+ this.interfaceType = 'rule'
475
+ } else {
476
+ this.interfaceType = 'api'
477
+ }
478
+ this.variableOperateType = 'edit'
479
+ this.variableDialog = true
480
+ },
481
+ viewVariable (row) {
482
+ this.variableForm = { ...row }
483
+ this.variableOperateType = 'detail'
484
+ this.variableDialog = true
485
+ },
486
+ openComponentVariableDialog () {
487
+ this.componentVariableDialog = true
488
+ },
489
+ removeVariable (row) {
490
+ const selected = [row.code]
491
+ if (selected.length === 0) {
492
+ this.$message.warning('请选择要删除的变量')
493
+ return
494
+ }
495
+ this.$confirm('确认删除?', '提示', {
496
+ confirmButtonText: '确定',
497
+ cancelButtonText: '取消',
498
+ type: 'warning'
499
+ }).then(() => {
500
+ this.variableSets = [...this.variableSets.filter(item => !selected.includes(item.code))]
501
+ })
502
+ },
503
+ saveVariable () {
504
+ this.$refs.variableForm.validate(valid => {
505
+ if (valid) {
506
+ if (!this.variableForm.code) {
507
+ this.$message.error('请输入变量名')
508
+ return
509
+ }
510
+ if (!['request', 'query'].includes(this.variableForm.type) && !this.variableForm.value) {
511
+ this.$message.error('请输入变量值')
512
+ return
513
+ }
514
+ const variableSets = [...this.variableSets]
515
+ if (this.variableOperateType === 'edit') {
516
+ const index = variableSets.findIndex(item => item.code === this.variableForm.code)
517
+ variableSets.splice(index, 1, this.variableForm)
518
+ } else {
519
+ variableSets.push(this.variableForm)
520
+ }
521
+ if (variableSets.filter(item => item.code === this.variableForm.code).length > 1) {
522
+ this.$message.warning('变量名重复,请重新输入')
523
+ return
524
+ }
525
+ this.variableSets = variableSets
526
+ this.variableDialog = false
527
+ }
528
+ })
529
+ },
530
+ getActionList (v) {
531
+ this.$http.list({
532
+ action: 'getEntityAllApi',
533
+ entityId: 'FM_ENTITY_API',
534
+ metaId: v
535
+ })
536
+ .then(data => {
537
+ const actionList = data.entitys.map(item => ({ label: item.LABEL || item.NAME, value: item.NAME }))
538
+ this.actionMap[v] = actionList
539
+ })
540
+ },
541
+ getRuleList (id) {
542
+ if (this.ruleMap[id]) return
543
+ this.$http.list({
544
+ entityId: 'ACT_RE_MODEL',
545
+ 'scope.ENTITY': id,
546
+ 'scope.CATEGORY': '2'
547
+ })
548
+ .then(data => {
549
+ this.ruleMap[id] = data.entitys.map(item => ({ label: item.NAME || item.KEY, value: item.KEY }))
550
+ })
551
+ },
552
+ // 筛选条件字段
553
+ getAllFields (v) {
554
+ if (!v) return []
555
+ if (!this.treeFieldStore) {
556
+ return this.$store.dispatch({
557
+ type: 'ADD_META_VIEW_FIELDS',
558
+ metaId: v
559
+ })
560
+ }
561
+ return this.treeFieldStore
562
+ },
563
+ getApiInfo (v) {
564
+ return this.$http.list({
565
+ action: 'getEntityApiInfo',
566
+ entityId: 'FM_ENTITY_API',
567
+ metaId: this.variableForm.metaId || this.designer.page.metaId,
568
+ api: v
569
+ })
570
+ .then(data => {
571
+ const metaId = this.variableForm.metaId || this.designer.page.metaId
572
+ this.apiMap[metaId + '_' + v] = data
573
+ })
574
+ }
575
+ },
576
+ mounted () {
577
+ if (this.pageVariableSets) {
578
+ this.variableSets = [...this.pageVariableSets]
579
+ }
580
+ }
581
+ }
582
+ </script>
583
+ <style lang="scss">
584
+ @include b(page-designer-page-variable) {
585
+ width: 360px;
586
+ position: absolute;
587
+ left: 51px;
588
+ background: var(--epx-bg-card);
589
+ z-index: 101;
590
+ height: 100%;
591
+ @include e(header) {
592
+ height: 48px;
593
+ display: flex;
594
+ justify-content: space-between;
595
+ align-items: center;
596
+ padding: 0 20px;
597
+ border-bottom: 1px solid #e3e3e3;
598
+ >span {
599
+ font-size: var(--epx-font-size-l);
600
+ font-weight: 600;
601
+ }
602
+ >i {
603
+ color: rgba(0, 0, 0, 0.65);
604
+ cursor: pointer;
605
+ }
606
+ }
607
+ @include e(content) {
608
+ padding: 10px 20px;
609
+ height:calc(100% - 48px);
610
+ overflow-y: auto;
611
+ }
612
+ @include e(operates) {
613
+ padding: 12px 10px;
614
+ display: flex;
615
+ .el-button {
616
+ flex: 1;
617
+ }
618
+ }
619
+ @include e(form) {
620
+ .el-form-item__content {
621
+ .el-input,.edit-object, .el-select {
622
+ width: 200px;
623
+ .el-input, .el-input__inner {
624
+ width: 100%;
625
+ }
626
+ }
627
+ }
628
+ }
629
+ @include e(json-editor) {
630
+ .CodeMirror {
631
+ border: 1px solid #e3e3e3;
632
+ border-radius: var(--epx-radius-base);
633
+ line-height: 28px;
634
+ }
635
+ .CodeMirror-gutters {
636
+ border-right: 1px solid transparent;
637
+ background-color: transparent;
638
+ }
639
+ }
640
+ @include e(item) {
641
+ display: flex;
642
+ align-items: center;
643
+ background: #F5F7FA;
644
+ border-radius: var(--epx-radius-base);
645
+ padding: 16px 20px;
646
+ padding-left: 10px;
647
+ padding-right: 32px;
648
+ margin-bottom: 20px;
649
+ position: relative;
650
+ &:hover {
651
+ box-shadow: 0px 4px 8px 0px rgba(0,0,0,0.15);
652
+ @include e(extra) {
653
+ display: block;
654
+ }
655
+ }
656
+ }
657
+ @include e(item-content) {
658
+ flex: 1;
659
+ }
660
+ @include e(drag-icon) {
661
+ cursor: move;
662
+ margin-right: 8px;
663
+ color: #999;
664
+ }
665
+ @include e(title) {
666
+ color: #222222;
667
+ font-weight: bold;
668
+ margin-bottom: 8px;
669
+ >span:nth-child(2){
670
+ font-weight: normal;
671
+ border-left: 1px solid #e3e3e3;
672
+ padding-left: 8px;
673
+ margin-left: 8px;
674
+ }
675
+ }
676
+ @include e(detail) {
677
+ color: #444;
678
+ word-break: break-all;
679
+ }
680
+ @include e(extra) {
681
+ display: none;
682
+ position: absolute;
683
+ right: 12px;
684
+ top: 50%;
685
+ margin-top: -7px;
686
+ cursor: pointer;
687
+ }
688
+ @include e(component-variable) {
689
+ display: flex;
690
+ }
691
+ @include e(component-tree) {
692
+ width: 360px;
693
+ border-right: 1px solid #e3e3e3;
694
+ .el-tree-node{
695
+ &.is-current {
696
+ >.el-tree-node__content {
697
+ @include bg_color_primary(0.2);
698
+ @include font_color_primary;
699
+ }
700
+
701
+ }
702
+ }
703
+ .el-tree-node__content {
704
+ height: 48px;
705
+ }
706
+ }
707
+ @include e(component-search-input) {
708
+ margin: 10px;
709
+ width: calc(100% - 20px);
710
+ }
711
+ @include e(variable-dialog) {
712
+ .el-dialog__header {
713
+ padding: 10px 20px;
714
+ border-bottom: 1px solid #e3e3e3;
715
+ }
716
+ .el-dialog__headerbtn {
717
+ top: 10px;
718
+ }
719
+ .el-dialog__body {
720
+ max-height: 500px;
721
+ overflow: auto;
722
+ }
723
+ .el-dialog__footer {
724
+ border-top:1px solid #e3e3e3;
725
+ padding: 10px 20px;
726
+ text-align: center;
727
+ }
728
+ }
729
+ @include e(component-dialog) {
730
+ .el-dialog__header {
731
+ padding-bottom: 20px;
732
+ border-bottom: 1px solid #e3e3e3;
733
+ }
734
+ .el-dialog__body {
735
+ padding: 0;
736
+ }
737
+ }
738
+ @include e(component-node) {
739
+ line-height: 48px;
740
+ flex: 1;
741
+ >i {
742
+ margin-right: 12px;
743
+ }
744
+ >span {
745
+ flex: 1;
746
+ >i {
747
+ margin-right: 4px;
748
+ }
749
+ }
750
+ display: flex;
751
+ justify-content: space-between;
752
+ }
753
+ @include e(component-variable-content) {
754
+ flex: 1;
755
+ padding: 10px 20px;
756
+ }
757
+ @include e(component-variable-radio-group) {
758
+ display: block;
759
+ .el-radio {
760
+ display: block;
761
+ margin: 10px 0;
762
+ padding: 12px 20px;
763
+ background: #F5F7FA;
764
+ }
765
+ }
766
+ @include e(null-data) {
767
+ display: flex;
768
+ flex-direction: column;
769
+ justify-content: center;
770
+ align-items: center;
771
+ height: 80%;
772
+ font-size: var(--epx-font-size-base);
773
+ color: #999;
774
+ >i {
775
+ font-size: 200px;
776
+ line-height: 1;
777
+ margin-bottom: 20px;
778
+ }
779
+ }
780
+ }
781
+ </style>