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

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 +159 -0
  2. package/README.md +44 -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 +52 -0
  15. package/dist/src/page-designer/PageConfigPreview.js +101 -0
  16. package/dist/src/page-designer/PageDesigner.js +843 -0
  17. package/dist/src/page-designer/designer.js +1119 -0
  18. package/dist/src/page-designer/index.js +51 -0
  19. package/dist/src/page-designer/mixins/dragSourceMixin.js +94 -0
  20. package/dist/src/page-designer/page-variable-panel/JsonEditor.js +105 -0
  21. package/dist/src/page-designer/page-variable-panel/PageVariablePanel.js +938 -0
  22. package/dist/src/page-designer/page-variable-panel/index.js +6 -0
  23. package/dist/src/page-designer/page-variable-panel/jsonlint.js +229 -0
  24. package/dist/src/page-designer/previews/add-form/Preview.js +7 -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 +193 -0
  27. package/dist/src/page-designer/previews/button/Preview.js +29 -0
  28. package/dist/src/page-designer/previews/card/Preview.js +86 -0
  29. package/dist/src/page-designer/previews/carousel/CarouselItemPreview.js +32 -0
  30. package/dist/src/page-designer/previews/carousel/Preview.js +60 -0
  31. package/dist/src/page-designer/previews/collapse/CollapseItemPreview.js +117 -0
  32. package/dist/src/page-designer/previews/collapse/Preview.js +34 -0
  33. package/dist/src/page-designer/previews/dropdown/Preview.js +67 -0
  34. package/dist/src/page-designer/previews/entity-list/Preview.js +521 -0
  35. package/dist/src/page-designer/previews/entity-sub-list/Preview.js +351 -0
  36. package/dist/src/page-designer/previews/entity-virtual-list/Preview.js +10 -0
  37. package/dist/src/page-designer/previews/form-field/preview/Checkbox.js +90 -0
  38. package/dist/src/page-designer/previews/form-field/preview/Date.js +76 -0
  39. package/dist/src/page-designer/previews/form-field/preview/Input.js +73 -0
  40. package/dist/src/page-designer/previews/form-field/preview/InputNumber.js +73 -0
  41. package/dist/src/page-designer/previews/form-field/preview/Object.js +76 -0
  42. package/dist/src/page-designer/previews/form-field/preview/Radio.js +145 -0
  43. package/dist/src/page-designer/previews/form-field/preview/Select.js +77 -0
  44. package/dist/src/page-designer/previews/form-field/preview/Textarea.js +77 -0
  45. package/dist/src/page-designer/previews/grid/Preview.js +138 -0
  46. package/dist/src/page-designer/previews/html/Preview.js +17 -0
  47. package/dist/src/page-designer/previews/icon/Preview.js +19 -0
  48. package/dist/src/page-designer/previews/image/Preview.js +35 -0
  49. package/dist/src/page-designer/previews/index.js +73 -0
  50. package/dist/src/page-designer/previews/layout/ColumnPreview.js +46 -0
  51. package/dist/src/page-designer/previews/layout/Preview.js +109 -0
  52. package/dist/src/page-designer/previews/num/Preview.js +131 -0
  53. package/dist/src/page-designer/previews/page-tabs/Preview.js +74 -0
  54. package/dist/src/page-designer/previews/step/Preview.js +206 -0
  55. package/dist/src/page-designer/previews/tabs/Preview.js +94 -0
  56. package/dist/src/page-designer/previews/tabs/tab-pane/Preview.js +32 -0
  57. package/dist/src/page-designer/previews/text/Preview.js +37 -0
  58. package/dist/src/page-designer/previews/text-editor/Preview.js +22 -0
  59. package/dist/src/page-designer/previews/video/Preview.js +9 -0
  60. package/dist/src/page-designer/setting-panel/Advance.js +280 -0
  61. package/dist/src/page-designer/setting-panel/CodeEditor.js +93 -0
  62. package/dist/src/page-designer/setting-panel/Property.js +164 -0
  63. package/dist/src/page-designer/setting-panel/Setting.js +295 -0
  64. package/dist/src/page-designer/setting-panel/Style.js +1590 -0
  65. package/dist/src/page-designer/setting-panel/css-editor/CssEditor.js +97 -0
  66. package/dist/src/page-designer/setting-panel/css-editor/css-hint.js +83 -0
  67. package/dist/src/page-designer/setting-panel/index.js +10 -0
  68. package/dist/src/page-designer/template-attribute-panel/TemplateAttributePanel.js +486 -0
  69. package/dist/src/page-designer/template-attribute-panel/index.js +4 -0
  70. package/dist/src/page-designer/template-library/Library.js +218 -0
  71. package/dist/src/page-designer/template-library/index.js +4 -0
  72. package/dist/src/page-designer/widget-library/Base.js +169 -0
  73. package/dist/src/page-designer/widget-library/Library.js +212 -0
  74. package/dist/src/page-designer/widget-library/index.js +6 -0
  75. package/dist/src/page-designer/widget-preview/Container.js +79 -0
  76. package/dist/src/page-designer/widget-preview/DragGhost.js +53 -0
  77. package/dist/src/page-designer/widget-preview/DropZoneOverlay.js +41 -0
  78. package/dist/src/page-designer/widget-preview/HoverOverlay.js +60 -0
  79. package/dist/src/page-designer/widget-preview/Mixin.js +259 -0
  80. package/dist/src/page-designer/widget-preview/Placeholder.js +27 -0
  81. package/dist/src/page-designer/widget-preview/Preview.js +276 -0
  82. package/dist/src/page-designer/widget-preview/PreviewItem.js +82 -0
  83. package/dist/src/page-designer/widget-preview/SelectedOverlay.js +331 -0
  84. package/dist/src/page-designer/widget-preview/Template.js +65 -0
  85. package/dist/src/page-designer/widget-preview/WidgetWrapper.js +169 -0
  86. package/dist/src/page-designer/widget-preview/directive.js +158 -0
  87. package/dist/src/page-designer/widget-preview/dropPosition.js +49 -0
  88. package/dist/src/page-designer/widget-preview/index.js +22 -0
  89. package/dist/src/page-designer/widget-preview/overlayPositionMixin.js +86 -0
  90. package/dist/src/page-designer/widget-preview/resolvePreviewName.js +31 -0
  91. package/dist/src/page-designer/widget-tree/Item.js +579 -0
  92. package/dist/src/page-designer/widget-tree/Tree.js +854 -0
  93. package/dist/src/page-designer/widget-tree/index.js +6 -0
  94. package/dist/src/visual/AddForm.js +171 -0
  95. package/dist/src/visual/AddFormItem.js +479 -0
  96. package/dist/src/visual/AppIndex.js +242 -0
  97. package/dist/src/visual/ApplyForm.js +134 -0
  98. package/dist/src/visual/AttributeList.js +343 -0
  99. package/dist/src/visual/BasePage.js +76 -0
  100. package/dist/src/visual/Button.js +4 -0
  101. package/dist/src/visual/Button.vue.js +89 -0
  102. package/dist/src/visual/CardNum.js +73 -0
  103. package/dist/src/visual/CategoryList.js +568 -0
  104. package/dist/src/visual/Chart.js +26 -0
  105. package/dist/src/visual/ChartNew.js +4 -0
  106. package/dist/src/visual/ChartNew.vue.js +54 -0
  107. package/dist/src/visual/CheckForm.js +109 -0
  108. package/dist/src/visual/ClientList.js +40 -0
  109. package/dist/src/visual/CodeManage.js +112 -0
  110. package/dist/src/visual/Component.js +5 -0
  111. package/dist/src/visual/Component.vue.js +1332 -0
  112. package/dist/src/visual/ComponentList.js +279 -0
  113. package/dist/src/visual/Config.js +7 -0
  114. package/dist/src/visual/Config.vue.js +862 -0
  115. package/dist/src/visual/ConfigItem.js +7 -0
  116. package/dist/src/visual/ConfigItem.vue.js +192 -0
  117. package/dist/src/visual/ConfigSelectItems.js +7 -0
  118. package/dist/src/visual/ConfigSelectItems.vue.js +260 -0
  119. package/dist/src/visual/CreatePage.js +388 -0
  120. package/dist/src/visual/DashboardDiv.js +57 -0
  121. package/dist/src/visual/DashboardTabs.js +8 -0
  122. package/dist/src/visual/DashboardTabs.vue.js +127 -0
  123. package/dist/src/visual/DashboardWidget.js +4 -0
  124. package/dist/src/visual/DashboardWidget.vue.js +62 -0
  125. package/dist/src/visual/DblogList.js +81 -0
  126. package/dist/src/visual/EntityAddPage.js +48 -0
  127. package/dist/src/visual/EntityApplyPage.js +53 -0
  128. package/dist/src/visual/EntityCardList.js +454 -0
  129. package/dist/src/visual/EntityCheckPage.js +65 -0
  130. package/dist/src/visual/EntityFindPage.js +44 -0
  131. package/dist/src/visual/EntityList.js +5 -0
  132. package/dist/src/visual/EntityList.vue.js +1221 -0
  133. package/dist/src/visual/EntityListPage.js +42 -0
  134. package/dist/src/visual/EntityNoSubmitSubList.js +266 -0
  135. package/dist/src/visual/EntityRightSubList.js +28 -0
  136. package/dist/src/visual/EntitySubAdd.js +9 -0
  137. package/dist/src/visual/EntitySubGridItem.js +65 -0
  138. package/dist/src/visual/EntitySubList.js +433 -0
  139. package/dist/src/visual/EntityTreeFindPage.js +31 -0
  140. package/dist/src/visual/EntityTreeManage.js +48 -0
  141. package/dist/src/visual/EntityTreePage.js +41 -0
  142. package/dist/src/visual/ExcelPreview.js +9 -0
  143. package/dist/src/visual/FormField.js +4 -0
  144. package/dist/src/visual/FormField.vue.js +121 -0
  145. package/dist/src/visual/HeaderNew.js +160 -0
  146. package/dist/src/visual/Html.js +7 -0
  147. package/dist/src/visual/Html.vue.js +109 -0
  148. package/dist/src/visual/Import.js +52 -0
  149. package/dist/src/visual/InterfaceSubList.js +20 -0
  150. package/dist/src/visual/ListFirst.js +703 -0
  151. package/dist/src/visual/MEntityAddPage.js +65 -0
  152. package/dist/src/visual/MEntityList.js +484 -0
  153. package/dist/src/visual/MEntityListPage.js +39 -0
  154. package/dist/src/visual/MEntitySubList.js +236 -0
  155. package/dist/src/visual/MetaList.js +22 -0
  156. package/dist/src/visual/ModuleIndexPage.js +66 -0
  157. package/dist/src/visual/ModuleList.js +46 -0
  158. package/dist/src/visual/NavAddForm.js +172 -0
  159. package/dist/src/visual/NavFormCatalogItem.js +43 -0
  160. package/dist/src/visual/NumItem.js +69 -0
  161. package/dist/src/visual/NumStatistic.js +5 -0
  162. package/dist/src/visual/NumStatistic.vue.js +81 -0
  163. package/dist/src/visual/OrgChart.js +106 -0
  164. package/dist/src/visual/PageCatalog.js +26 -0
  165. package/dist/src/visual/PageConfig.js +222 -0
  166. package/dist/src/visual/PageTabs.js +48 -0
  167. package/dist/src/visual/Progress.js +39 -0
  168. package/dist/src/visual/ProgressItem.js +43 -0
  169. package/dist/src/visual/SystemManager.js +76 -0
  170. package/dist/src/visual/Title.js +44 -0
  171. package/dist/src/visual/TodoList.js +13 -0
  172. package/dist/src/visual/UserFormItem.js +40 -0
  173. package/dist/src/visual/UserManage.js +34 -0
  174. package/dist/src/visual/chart/CircularPie.js +8 -0
  175. package/dist/src/visual/chart/Column.js +69 -0
  176. package/dist/src/visual/chart/HoriColumn.js +8 -0
  177. package/dist/src/visual/chart/Line.js +8 -0
  178. package/dist/src/visual/chart/Pie.js +8 -0
  179. package/dist/src/visual/config/Background.js +525 -0
  180. package/dist/src/visual/config/Chart.js +153 -0
  181. package/dist/src/visual/config/Checkbox.js +62 -0
  182. package/dist/src/visual/config/Color.js +40 -0
  183. package/dist/src/visual/config/DesignReport.js +23 -0
  184. package/dist/src/visual/config/Event.js +303 -0
  185. package/dist/src/visual/config/Field.js +519 -0
  186. package/dist/src/visual/config/Font.js +201 -0
  187. package/dist/src/visual/config/FormItem.js +22 -0
  188. package/dist/src/visual/config/Function.js +113 -0
  189. package/dist/src/visual/config/Html.js +110 -0
  190. package/dist/src/visual/config/Image.js +101 -0
  191. package/dist/src/visual/config/Input.js +176 -0
  192. package/dist/src/visual/config/Input.vue.js +479 -0
  193. package/dist/src/visual/config/LazyDialog.js +40 -0
  194. package/dist/src/visual/config/List.js +64 -0
  195. package/dist/src/visual/config/ListField.js +2079 -0
  196. package/dist/src/visual/config/MField.js +732 -0
  197. package/dist/src/visual/config/Number.js +36 -0
  198. package/dist/src/visual/config/Object.js +167 -0
  199. package/dist/src/visual/config/Operate.js +1108 -0
  200. package/dist/src/visual/config/OperateItem.js +1185 -0
  201. package/dist/src/visual/config/Options.js +7 -0
  202. package/dist/src/visual/config/Options.vue.js +278 -0
  203. package/dist/src/visual/config/OrderField.js +504 -0
  204. package/dist/src/visual/config/Page.js +75 -0
  205. package/dist/src/visual/config/Params.js +352 -0
  206. package/dist/src/visual/config/Radio.js +126 -0
  207. package/dist/src/visual/config/Row.js +103 -0
  208. package/dist/src/visual/config/Scope.js +349 -0
  209. package/dist/src/visual/config/Select.js +94 -0
  210. package/dist/src/visual/config/Switch.js +36 -0
  211. package/dist/src/visual/config/Textarea.js +174 -0
  212. package/dist/src/visual/config/Textarea.vue.js +507 -0
  213. package/dist/src/visual/config/Tree.js +137 -0
  214. package/dist/src/visual/config/remote-cache.js +29 -0
  215. package/dist/src/visual/config/show-condition.js +19 -0
  216. package/dist/src/visual/config/variable-sources.js +26 -0
  217. package/dist/src/visual/config/wait-ref.js +18 -0
  218. package/dist/src/visual/config-page/ComponentLibrary.js +169 -0
  219. package/dist/src/visual/config-page/ComponentLibraryDialog.js +249 -0
  220. package/dist/src/visual/config-page/ComponentList.js +8 -0
  221. package/dist/src/visual/config-page/ComponentList.vue.js +292 -0
  222. package/dist/src/visual/config-page/ComponentPreview.js +7 -0
  223. package/dist/src/visual/config-page/ComponentPreview.vue.js +151 -0
  224. package/dist/src/visual/config-page/ConfigOption.js +12 -0
  225. package/dist/src/visual/config-page/ConfigPanel.js +301 -0
  226. package/dist/src/visual/config-page/Dashboard.js +2159 -0
  227. package/dist/src/visual/config-page/DashboardDesign.js +605 -0
  228. package/dist/src/visual/config-page/DashboardGlobalConfig.js +5 -0
  229. package/dist/src/visual/config-page/DashboardGlobalConfig.vue.js +292 -0
  230. package/dist/src/visual/config-page/DashboardMobile.js +1114 -0
  231. package/dist/src/visual/config-page/DashboardSetting.js +85 -0
  232. package/dist/src/visual/config-page/PagePreview.js +7 -0
  233. package/dist/src/visual/config-page/PagePreview.vue.js +72 -0
  234. package/dist/src/visual/config-page/StyleConfig.js +978 -0
  235. package/dist/src/visual/config-page/VisualConfigPage.js +644 -0
  236. package/dist/src/visual/config-page/dashboard-theme-setting/Background.js +179 -0
  237. package/dist/src/visual/config-page/dashboard-theme-setting/Border.js +313 -0
  238. package/dist/src/visual/config-page/dashboard-theme-setting/Font.js +191 -0
  239. package/dist/src/visual/config-page/dashboard-theme-setting/Index.js +544 -0
  240. package/dist/src/visual/config-page/dashboard-theme-setting/Shadow.js +173 -0
  241. package/dist/src/visual/config-page/index.js +89 -0
  242. package/dist/src/visual/index.js +150 -0
  243. package/dist/src/visual/mixins/innerGridMixin.js +121 -0
  244. package/dist/src/visual/search/Filter.js +48 -0
  245. package/dist/src/visual/step/Index.js +7 -0
  246. package/dist/src/visual/step/Index.vue.js +485 -0
  247. package/dist/src/visual/step/Item.js +138 -0
  248. package/dist/src/visual/widgets/CardFormItemVisual.js +44 -0
  249. package/dist/src/visual/widgets/CarouselVisual.js +7 -0
  250. package/dist/src/visual/widgets/CarouselVisual.vue.js +303 -0
  251. package/dist/src/visual/widgets/CollapseVisual.js +7 -0
  252. package/dist/src/visual/widgets/CollapseVisual.vue.js +202 -0
  253. package/dist/src/visual/widgets/DropdownVisual.js +7 -0
  254. package/dist/src/visual/widgets/DropdownVisual.vue.js +955 -0
  255. package/dist/src/visual/widgets/LayoutConfig.js +7 -0
  256. package/dist/src/visual/widgets/LayoutConfig.vue.js +168 -0
  257. package/dist/src/visual/widgets/ListVisual.js +348 -0
  258. package/dist/src/visual/widgets/MEntityListFindVisual.js +75 -0
  259. package/dist/src/visual/widgets/ProcessFormItemVisual.js +4 -0
  260. package/dist/src/visual/widgets/ProcessFormItemVisual.vue.js +45 -0
  261. package/dist/src/visual/widgets/TabsConfig.js +7 -0
  262. package/dist/src/visual/widgets/TabsConfig.vue.js +343 -0
  263. package/dist/style.css +9907 -0
  264. package/package.json +103 -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,6 @@
1
+ import PageVariablePanel from './PageVariablePanel.vue'
2
+ import JsonEditor from './JsonEditor.vue'
3
+ export {
4
+ PageVariablePanel,
5
+ JsonEditor
6
+ }
@@ -0,0 +1,2 @@
1
+ // eslint-disable-next-line
2
+ window.jsonlint = (function () { var a = !0; var b = !1; var c = {}; var d = (function () { var a = { trace: function () {}, yy: {}, symbols_: { error: 2, JSONString: 3, STRING: 4, JSONNumber: 5, NUMBER: 6, JSONNullLiteral: 7, NULL: 8, JSONBooleanLiteral: 9, TRUE: 10, FALSE: 11, JSONText: 12, JSONValue: 13, EOF: 14, JSONObject: 15, JSONArray: 16, '{': 17, '}': 18, JSONMemberList: 19, JSONMember: 20, ':': 21, ',': 22, '[': 23, ']': 24, JSONElementList: 25, $accept: 0, $end: 1 }, terminals_: { 2: 'error', 4: 'STRING', 6: 'NUMBER', 8: 'NULL', 10: 'TRUE', 11: 'FALSE', 14: 'EOF', 17: '{', 18: '}', 21: ':', 22: ',', 23: '[', 24: ']' }, productions_: [0, [3, 1], [5, 1], [7, 1], [9, 1], [9, 1], [12, 2], [13, 1], [13, 1], [13, 1], [13, 1], [13, 1], [13, 1], [15, 2], [15, 3], [20, 3], [19, 1], [19, 3], [16, 2], [16, 3], [25, 1], [25, 3]], performAction: function (b, c, d, e, f, g, h) { var i = g.length - 1; switch (f) { case 1:this.$ = b.replace(/\\(\\|")/g, '$1').replace(/\\n/g, '\n').replace(/\\r/g, '\r').replace(/\\t/g, ' ').replace(/\\v/g, ' ').replace(/\\f/g, '\f').replace(/\\b/g, '\b'); break; case 2:this.$ = Number(b); break; case 3:this.$ = null; break; case 4:this.$ = !0; break; case 5:this.$ = !1; break; case 6:return this.$ = g[i - 1]; case 13:this.$ = {}; break; case 14:this.$ = g[i - 1]; break; case 15:this.$ = [g[i - 2], g[i]]; break; case 16:this.$ = {}, this.$[g[i][0]] = g[i][1]; break; case 17:this.$ = g[i - 2], g[i - 2][g[i][0]] = g[i][1]; break; case 18:this.$ = []; break; case 19:this.$ = g[i - 1]; break; case 20:this.$ = [g[i]]; break; case 21:this.$ = g[i - 2], g[i - 2].push(g[i]) } }, table: [{ 3: 5, 4: [1, 12], 5: 6, 6: [1, 13], 7: 3, 8: [1, 9], 9: 4, 10: [1, 10], 11: [1, 11], 12: 1, 13: 2, 15: 7, 16: 8, 17: [1, 14], 23: [1, 15] }, { 1: [3] }, { 14: [1, 16] }, { 14: [2, 7], 18: [2, 7], 22: [2, 7], 24: [2, 7] }, { 14: [2, 8], 18: [2, 8], 22: [2, 8], 24: [2, 8] }, { 14: [2, 9], 18: [2, 9], 22: [2, 9], 24: [2, 9] }, { 14: [2, 10], 18: [2, 10], 22: [2, 10], 24: [2, 10] }, { 14: [2, 11], 18: [2, 11], 22: [2, 11], 24: [2, 11] }, { 14: [2, 12], 18: [2, 12], 22: [2, 12], 24: [2, 12] }, { 14: [2, 3], 18: [2, 3], 22: [2, 3], 24: [2, 3] }, { 14: [2, 4], 18: [2, 4], 22: [2, 4], 24: [2, 4] }, { 14: [2, 5], 18: [2, 5], 22: [2, 5], 24: [2, 5] }, { 14: [2, 1], 18: [2, 1], 21: [2, 1], 22: [2, 1], 24: [2, 1] }, { 14: [2, 2], 18: [2, 2], 22: [2, 2], 24: [2, 2] }, { 3: 20, 4: [1, 12], 18: [1, 17], 19: 18, 20: 19 }, { 3: 5, 4: [1, 12], 5: 6, 6: [1, 13], 7: 3, 8: [1, 9], 9: 4, 10: [1, 10], 11: [1, 11], 13: 23, 15: 7, 16: 8, 17: [1, 14], 23: [1, 15], 24: [1, 21], 25: 22 }, { 1: [2, 6] }, { 14: [2, 13], 18: [2, 13], 22: [2, 13], 24: [2, 13] }, { 18: [1, 24], 22: [1, 25] }, { 18: [2, 16], 22: [2, 16] }, { 21: [1, 26] }, { 14: [2, 18], 18: [2, 18], 22: [2, 18], 24: [2, 18] }, { 22: [1, 28], 24: [1, 27] }, { 22: [2, 20], 24: [2, 20] }, { 14: [2, 14], 18: [2, 14], 22: [2, 14], 24: [2, 14] }, { 3: 20, 4: [1, 12], 20: 29 }, { 3: 5, 4: [1, 12], 5: 6, 6: [1, 13], 7: 3, 8: [1, 9], 9: 4, 10: [1, 10], 11: [1, 11], 13: 30, 15: 7, 16: 8, 17: [1, 14], 23: [1, 15] }, { 14: [2, 19], 18: [2, 19], 22: [2, 19], 24: [2, 19] }, { 3: 5, 4: [1, 12], 5: 6, 6: [1, 13], 7: 3, 8: [1, 9], 9: 4, 10: [1, 10], 11: [1, 11], 13: 31, 15: 7, 16: 8, 17: [1, 14], 23: [1, 15] }, { 18: [2, 17], 22: [2, 17] }, { 18: [2, 15], 22: [2, 15] }, { 22: [2, 21], 24: [2, 21] }], defaultActions: { 16: [2, 6] }, parseError: function (b, c) { throw new Error(b) }, parse: function (b) { function o (a) { d.length = d.length - 2 * a, e.length = e.length - a, f.length = f.length - a } function p () { var a; return a = c.lexer.lex() || 1, typeof a !== 'number' && (a = c.symbols_[a] || a), a } var c = this; var d = [0]; var e = [null]; var f = []; var g = this.table; var h = ''; var i = 0; var j = 0; var k = 0; var l = 2; var m = 1; this.lexer.setInput(b), this.lexer.yy = this.yy, this.yy.lexer = this.lexer, typeof this.lexer.yylloc === 'undefined' && (this.lexer.yylloc = {}); var n = this.lexer.yylloc; f.push(n), typeof this.yy.parseError === 'function' && (this.parseError = this.yy.parseError); var q; var r; var s; var t; var u; var v; var w = {}; var x; var y; var z; var A; for (;;) { s = d[d.length - 1], this.defaultActions[s] ? t = this.defaultActions[s] : (q == null && (q = p()), t = g[s] && g[s][q]); if (typeof t === 'undefined' || !t.length || !t[0]) { if (!k) { A = []; for (x in g[s]) this.terminals_[x] && x > 2 && A.push("'" + this.terminals_[x] + "'"); var B = ''; this.lexer.showPosition ? B = '请输入字符串、数字、布尔值、对象{...}、数组[...]等类型' : B = 'Parse error on line ' + (i + 1) + ': Unexpected ' + (q == 1 ? 'end of input' : "'" + (this.terminals_[q] || q) + "'"), this.parseError(B, { text: this.lexer.match, token: this.terminals_[q] || q, line: this.lexer.yylineno, loc: n, expected: A }) } if (k == 3) { if (q == m) throw new Error(B || 'Parsing halted.'); j = this.lexer.yyleng, h = this.lexer.yytext, i = this.lexer.yylineno, n = this.lexer.yylloc, q = p() } for (;;) { if (l.toString() in g[s]) break; if (s == 0) throw new Error(B || 'Parsing halted.'); o(1), s = d[d.length - 1] }r = q, q = l, s = d[d.length - 1], t = g[s] && g[s][l], k = 3 } if (t[0] instanceof Array && t.length > 1) throw new Error('Parse Error: multiple actions possible at state: ' + s + ', token: ' + q); switch (t[0]) { case 1:d.push(q), e.push(this.lexer.yytext), f.push(this.lexer.yylloc), d.push(t[1]), q = null, r ? (q = r, r = null) : (j = this.lexer.yyleng, h = this.lexer.yytext, i = this.lexer.yylineno, n = this.lexer.yylloc, k > 0 && k--); break; case 2:y = this.productions_[t[1]][1], w.$ = e[e.length - y], w._$ = { first_line: f[f.length - (y || 1)].first_line, last_line: f[f.length - 1].last_line, first_column: f[f.length - (y || 1)].first_column, last_column: f[f.length - 1].last_column }, v = this.performAction.call(w, h, j, i, this.yy, t[1], e, f); if (typeof v !== 'undefined') return v; y && (d = d.slice(0, -1 * y * 2), e = e.slice(0, -1 * y), f = f.slice(0, -1 * y)), d.push(this.productions_[t[1]][0]), e.push(w.$), f.push(w._$), z = g[d[d.length - 2]][d[d.length - 1]], d.push(z); break; case 3:return !0 } } return !0 } }; var b = (function () { var a = { EOF: 1, parseError: function (b, c) { if (!this.yy.parseError) throw new Error(b); this.yy.parseError(b, c) }, setInput: function (a) { return this._input = a, this._more = this._less = this.done = !1, this.yylineno = this.yyleng = 0, this.yytext = this.matched = this.match = '', this.conditionStack = ['INITIAL'], this.yylloc = { first_line: 1, first_column: 0, last_line: 1, last_column: 0 }, this }, input: function () { var a = this._input[0]; this.yytext += a, this.yyleng++, this.match += a, this.matched += a; var b = a.match(/\n/); return b && this.yylineno++, this._input = this._input.slice(1), a }, unput: function (a) { return this._input = a + this._input, this }, more: function () { return this._more = !0, this }, less: function (a) { this._input = this.match.slice(a) + this._input }, pastInput: function () { var a = this.matched.substr(0, this.matched.length - this.match.length); return (a.length > 20 ? '...' : '') + a.substr(-20).replace(/\n/g, '') }, upcomingInput: function () { var a = this.match; return a.length < 20 && (a += this._input.substr(0, 20 - a.length)), (a.substr(0, 20) + (a.length > 20 ? '...' : '')).replace(/\n/g, '') }, showPosition: function () { var a = this.pastInput(); var b = (new Array(a.length + 1)).join('-'); return a + this.upcomingInput() + '\n' + b + '^' }, next: function () { if (this.done) return this.EOF; this._input || (this.done = !0); var a, b, c, d, e, f; this._more || (this.yytext = '', this.match = ''); var g = this._currentRules(); for (var h = 0; h < g.length; h++) { c = this._input.match(this.rules[g[h]]); if (c && (!b || c[0].length > b[0].length)) { b = c, d = h; if (!this.options.flex) break } } if (b) { f = b[0].match(/\n.*/g), f && (this.yylineno += f.length), this.yylloc = { first_line: this.yylloc.last_line, last_line: this.yylineno + 1, first_column: this.yylloc.last_column, last_column: f ? f[f.length - 1].length - 1 : this.yylloc.last_column + b[0].length }, this.yytext += b[0], this.match += b[0], this.yyleng = this.yytext.length, this._more = !1, this._input = this._input.slice(b[0].length), this.matched += b[0], a = this.performAction.call(this, this.yy, this, g[d], this.conditionStack[this.conditionStack.length - 1]), this.done && this._input && (this.done = !1); if (a) return a; return } if (this._input === '') return this.EOF; this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), { text: '', token: null, line: this.yylineno }) }, lex: function () { var b = this.next(); return typeof b !== 'undefined' ? b : this.lex() }, begin: function (b) { this.conditionStack.push(b) }, popState: function () { return this.conditionStack.pop() }, _currentRules: function () { return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules }, topState: function () { return this.conditionStack[this.conditionStack.length - 2] }, pushState: function (b) { this.begin(b) } }; return a.options = {}, a.performAction = function (b, c, d, e) { var f = e; switch (d) { case 0:break; case 1:return 6; case 2:return c.yytext = c.yytext.substr(1, c.yyleng - 2), 4; case 3:return 17; case 4:return 18; case 5:return 23; case 6:return 24; case 7:return 22; case 8:return 21; case 9:return 10; case 10:return 11; case 11:return 8; case 12:return 14; case 13:return 'INVALID' } }, a.rules = [/^(?:\s+)/, /^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/, /^(?:"(?:\\[\\"bfnrt/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/, /^(?:\{)/, /^(?:\})/, /^(?:\[)/, /^(?:\])/, /^(?:,)/, /^(?::)/, /^(?:true\b)/, /^(?:false\b)/, /^(?:null\b)/, /^(?:$)/, /^(?:.)/], a.conditions = { INITIAL: { rules: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13], inclusive: !0 } }, a }()); return a.lexer = b, a }()); return typeof a !== 'undefined' && typeof c !== 'undefined' && (c.parser = d, c.parse = function () { return d.parse.apply(d, arguments) }, c.main = function (d) { if (!d[1]) throw new Error('Usage: ' + d[0] + ' FILE'); if (typeof process !== 'undefined') var e = a('fs').readFileSync(a('path').join(process.cwd(), d[1]), 'utf8'); else var f = a('file').path(a('file').cwd()); var e = f.join(d[1]).read({ charset: 'utf-8' }); return c.parser.parse(e) }, typeof b !== 'undefined' && a.main === b && c.main(typeof process !== 'undefined' ? process.argv.slice(1) : a('system').args)), c }())
@@ -0,0 +1,331 @@
1
+ <script>
2
+ // @jsx-vue3(T30 JSX 批②:Vue3 JSX 语法)
3
+ import previewMixin from '@epxing/designer/src/page-designer/widget-preview/Mixin'
4
+ import { MobileActionSheet } from '@epxing/components/src/mobile'
5
+ export default {
6
+ name: 'epx-add-form--preview',
7
+ mixins: [previewMixin],
8
+ props: {
9
+ compId: String,
10
+ component: {
11
+ type: Object,
12
+ default () {
13
+ return {}
14
+ }
15
+ },
16
+ selectComponent: Object,
17
+ itemConfigs: {
18
+ type: Object,
19
+ default () {
20
+ return {}
21
+ }
22
+ }
23
+ },
24
+ data () {
25
+ return {
26
+ data: {},
27
+ catalogList: [],
28
+ openCatalogIds: [],
29
+ // 当前高亮的目录项 id
30
+ activeIndex: null,
31
+ httpLoading: {},
32
+ // ⚠️ 这个字段模板里读(v-model)也写(onClick),但**本文件与 mixin 都没声明过**
33
+ // (mixin 的 data() 返回空对象)。Vue 3 下给未声明的属性赋值会挂上一个**非响应式**
34
+ // 属性——赋值本身成功、但视图永不更新 ⇒ 设计器预览里点「更多操作」**永远打不开面板**。
35
+ // 与 Tag.vue 的 showPicker 零定义、Add.vue 的 value= 是同一类"面板打不开"(存量缺陷)。
36
+ showMobileAction: false
37
+ }
38
+ },
39
+ computed: {
40
+ operates () {
41
+ const { operates = [] } = this.$configs
42
+ return operates || []
43
+ },
44
+ pageType () {
45
+ const { pageType } = this.$configs
46
+ return pageType
47
+ },
48
+ readonly () {
49
+ return this.pageType === 'READONLY'
50
+ }
51
+ },
52
+ methods: {
53
+ // 覆盖 Mixin 的方法,返回表单的列表元素
54
+ getDropListElement () {
55
+ return this.$refs.addForm?.querySelector('.epx-page-designer-widget-preview__draggable')
56
+ },
57
+ getCatalogList () {
58
+ const id = this.compId
59
+ const { items = [] } = this.widget
60
+ const formatCatalog = (parent, item) => {
61
+ const id = parent + '-' + item.id
62
+ const children = item.items
63
+ ? item.items.map(catalog => formatCatalog(id, catalog))
64
+ : []
65
+ return { ...item, contentType: item.contentType, id, title: item.title, children }
66
+ }
67
+ this.catalogList = items.map(item => formatCatalog(id, item))
68
+ if (this.catalogList.length > 0) {
69
+ this.activeIndex = this.catalogList[0].id
70
+ }
71
+ },
72
+ openComponent (id, event) {
73
+ event && event.stopPropagation()
74
+ const index = this.openCatalogIds.findIndex(item => item === id)
75
+ if (index !== -1) {
76
+ this.openCatalogIds.splice(index, 1)
77
+ } else {
78
+ this.openCatalogIds.push(id)
79
+ }
80
+ },
81
+ renderComponent (component) {
82
+ return (
83
+ <epx-page-designer-widget-preview-item
84
+ designer={this.designer}
85
+ key={component.id}
86
+ widget={component}
87
+ parent-widget={this.widget}
88
+ component={component}
89
+ ref={'component-' + component.id}
90
+ comp-id={component.id}
91
+ {...this.$forwardAttrs(this.$attrs)}
92
+ selectComponent={this.selectComponent}
93
+ formData={this.data}
94
+ pageType={this.pageType}
95
+ showTitle={this.childWidgetList.length > 1}
96
+ pageRelationList={this.pageRelationList}
97
+ ></epx-page-designer-widget-preview-item>
98
+ )
99
+ },
100
+ renderCatalogList (catalogList = [], parent) {
101
+ return (
102
+ <ul class="epx-catalog__list">
103
+ {
104
+ catalogList.map(item => (
105
+ <li class={['epx-catalog__item', { 'epx-catalog__subitem': !!parent }, { 'is-active': this.activeIndex === item.id }, { 'is-opened': this.openCatalogIds.includes(item.id) }]} key={item.id}>
106
+ <p class="epx-catalog__item-title" onClick={this.openComponent.bind(this, item.id)}>
107
+ <span>
108
+ <span class="epx-catalog__item-title-left">
109
+ </span>
110
+ {item.title}
111
+ </span>
112
+ { item.children && item.children.length > 0 && <i class="epx-catalog__item-icon el-icon-arrow-down" onClick={this.openComponent.bind(this, item.id)}></i>}
113
+ </p>
114
+ { this.renderCatalogList(item.children, item) }
115
+ </li>
116
+ ))
117
+ }
118
+ </ul>
119
+ )
120
+ },
121
+ renderCatalog () {
122
+ const { operateFlag = true, operateEllipsis = 2 } = this.$configs
123
+ return (
124
+ <div ref="catalogContainer" style={{ display: 'inline-block', width: '280px' }}>
125
+ <div class="nav-base">
126
+ {
127
+ !this.readonly && operateFlag && (
128
+ <div class="epx-add-form__button-group">
129
+ {
130
+ this.operates.map((operate, index) => {
131
+ if (index < operateEllipsis) {
132
+ return <el-button loading={this.httpLoading[operate.handler + '-' + operate.text]} size="default" key={operate.text} {...{ [operate.type]: true }} type={operate.type === 'text' ? 'text' : operate.ui} style={{ width: operate.width + 'px' }}>{operate.text}</el-button>
133
+ }
134
+ })
135
+ }
136
+ {
137
+ this.operates.length > operateEllipsis && (
138
+ <el-dropdown class="more-table-operates" trigger="click" v-slots={{
139
+ dropdown: () => (<el-dropdown-menu>
140
+ {
141
+ this.operates.map((operate, index) => {
142
+ if (index > operateEllipsis) {
143
+ return <el-dropdown-item key={operate.text} >{operate.text}</el-dropdown-item>
144
+ }
145
+ })
146
+ }
147
+ </el-dropdown-menu>)
148
+ }}>
149
+ <el-button size="default">
150
+ <i class="el-icon-more"></i> {this.$t('more')}
151
+ </el-button>
152
+
153
+ </el-dropdown>
154
+ )
155
+ }
156
+ </div>
157
+ )
158
+ }
159
+ </div>
160
+ <div ref="catalog" class="epx-catalog" style={{ position: 'static' }}>
161
+ { this.renderCatalogList(this.childWidgetList) }
162
+ </div>
163
+ </div>
164
+ )
165
+ },
166
+ renderForm () {
167
+ const { operateFlag, showCatalog } = this.$configs
168
+ return (
169
+ <div class="epx-add-form__content">
170
+ <div
171
+ class="epx-add-form__field-group epx-page-designer-widget-preview__drop-zone"
172
+ ref="addForm"
173
+ >
174
+ <div class="epx-page-designer-widget-preview__draggable">
175
+ {
176
+ this.childWidgetList
177
+ .map((component, index) => {
178
+ const { split } = this.$configs
179
+ return (
180
+ <div
181
+ class={['epx-add-form__field-item', { 'is-mobile': this.$isMobile }]}
182
+ style={{ marginBottom: split + 'px' }}
183
+ key={component.id}
184
+ >
185
+ { this.renderComponent(component)}
186
+ </div>
187
+ )
188
+ })
189
+ }
190
+ {
191
+ this.childWidgetList.length === 0 && <div class="epx-page-designer-widget-preview__no-widget">拖拽表单项到这里</div>
192
+ }
193
+ </div>
194
+ </div>
195
+ {
196
+ !this.readonly && operateFlag && !(showCatalog && !this.$isMobile) && (
197
+ <div>
198
+ {
199
+ this.$isMobile ? (
200
+ <div class={['epx-add-form__m-buttongroup', { 'epx-add-form__m-button-more': this.operates.length > 3 }]}>
201
+ <div class={['epx-add-form__m-button-inner', { 'epx-add-form__m-button-change': !this.screenHeightNoChange }]}>
202
+ {
203
+ this.operates.length > 3 ? (
204
+ <div class="epx-add-form__m-operate">
205
+ <MobileActionSheet
206
+ v-model={this.showMobileAction}
207
+ actions={this.operates.map(item => ({ ...item, name: item.text }))}
208
+ cancel-text={this.$t('cancel')}
209
+ close-on-click-action
210
+ // ⚠️ 必须显式传 null 作第二参:select 的 payload 是 (action, index)
211
+ // (Vant 4 与 MobileActionSheet 同形),而 $handler 的签名是
212
+ // (buttonConfigs, row, ...params) ⇒ index 会落进 row。
213
+ // row 不是惰性参数:global.js 里 `this.$operateItem = row`,且
214
+ // `if (row) selections = [{ ...row }]` —— index≥1 时把数字展开成 {},
215
+ // 操作就作用在一个空对象上而不是当前选中行/表单数据。
216
+ // (存量缺陷:Vant 也是这个 payload,换件前就坏,本次一并修。)
217
+ onSelect={action => this.$handler(action, null)}
218
+ />
219
+ <el-button class="epx-add-form__m-button" size="default" onClick={() => (this.showMobileAction = true)}>{this.$t('operation')}</el-button>
220
+ </div>
221
+ ) : this.operates.map(operate => (
222
+ <el-button loading={this.httpLoading[operate.handler + '-' + operate.text]} class="epx-add-form__m-button-one" key={operate.text} type={operate.ui}>{operate.text}</el-button>
223
+ ))
224
+ }
225
+ </div>
226
+ </div>
227
+ ) : (
228
+ <div class="epx-add-form__button-group">
229
+ {
230
+ this.operates.map(operate => (
231
+ <el-button loading={this.httpLoading[operate.handler + '-' + operate.text]} size="default" style={{ width: operate.width + 'px' }} key={operate.text} {...{ [operate.type]: true }} type={operate.type === 'text' ? 'text' : operate.ui}>
232
+ { operate.icon && <i class={[operate.icon]}></i> }
233
+ {operate.text}
234
+ </el-button>
235
+ ))
236
+ }
237
+ </div>
238
+ )
239
+ }
240
+ </div>
241
+ )
242
+ }
243
+
244
+ </div>
245
+ )
246
+ }
247
+ },
248
+ created () {
249
+ },
250
+ mounted () {
251
+ this.getCatalogList()
252
+
253
+ // 为表单容器手动绑定拖拽事件(因为使用了 JSX render)
254
+ this.$nextTick(() => {
255
+ const dropZone = this.$refs.addForm
256
+ if (dropZone) {
257
+ this._dragEnterHandler = this.onContainerDragEnter.bind(this)
258
+ this._dragOverHandler = (e) => {
259
+ e.preventDefault()
260
+ this.onContainerDragOver(e)
261
+ }
262
+ this._dragLeaveHandler = this.onContainerDragLeave.bind(this)
263
+ this._dropHandler = (e) => {
264
+ e.preventDefault()
265
+ this.onContainerDrop(e)
266
+ }
267
+
268
+ dropZone.addEventListener('dragenter', this._dragEnterHandler)
269
+ dropZone.addEventListener('dragover', this._dragOverHandler)
270
+ dropZone.addEventListener('dragleave', this._dragLeaveHandler)
271
+ dropZone.addEventListener('drop', this._dropHandler)
272
+ }
273
+ })
274
+ },
275
+ beforeUnmount () {
276
+ // 移除拖拽事件监听
277
+ const dropZone = this.$refs.addForm
278
+ if (this._dragEnterHandler && dropZone) {
279
+ dropZone.removeEventListener('dragenter', this._dragEnterHandler)
280
+ dropZone.removeEventListener('dragover', this._dragOverHandler)
281
+ dropZone.removeEventListener('dragleave', this._dragLeaveHandler)
282
+ dropZone.removeEventListener('drop', this._dropHandler)
283
+ }
284
+ },
285
+ render () {
286
+ const { showCatalog, catalogPosition } = this.$configs
287
+ return (
288
+ <div ref="container" style={this.style} class={['epx-add-form', { 'is-catalog': showCatalog && !this.$isMobile }, `is-catalog__${catalogPosition}`]}>
289
+ {/** 目录 **/}
290
+ { showCatalog && !this.$isMobile && this.renderCatalog() }
291
+ {/** 表单 **/ }
292
+ { this.renderForm() }
293
+ </div>
294
+ )
295
+ }
296
+ }
297
+ </script>
298
+
299
+ <style lang="scss" scoped>
300
+ .epx-page-designer-widget-preview__drop-zone {
301
+ min-height: 60px;
302
+ }
303
+
304
+ .epx-page-designer-widget-preview__no-widget {
305
+ pointer-events: none;
306
+ }
307
+
308
+ .layout-placeholder {
309
+ min-height: 60px;
310
+ height: 100%;
311
+ width: 100%;
312
+ background-color: #f0f0f0;
313
+ border: 1px dotted #a7b1bd;
314
+ position: relative;
315
+ &::before {
316
+ width: 100%;
317
+ text-align: center;
318
+ content: '拖拽组件到这里';
319
+ color: #666;
320
+ position: absolute;
321
+ top: 50%;
322
+ left: 50%;
323
+ transform: translate(-50%, -50%);
324
+ }
325
+ }
326
+ .has-component {
327
+ &::before {
328
+ display: none;
329
+ }
330
+ }
331
+ </style>
@@ -0,0 +1,167 @@
1
+ <template>
2
+ <div :class="['epx-add-form-item', { 'is-fold': isFold }]" :style="$configs.style">
3
+ <p :class="['epx-add-form-item__header', `epx-add-form-item__header--${$configs.formTitleStyle}`]">
4
+ <span class="epx-add-form-item__title">{{$configs.componentName || widget.title}}</span>
5
+ <span class="epx-add-form-item__title-operate fr">
6
+ <span v-if="componentType!=='READONLY' && $configs.editable" class="epx-add-form-item__title-edit" @click="editFn">
7
+ <i class="el-icon-edit-outline"></i>
8
+ {{$t('edit')}}
9
+ </span>
10
+ <i :class="['epx-add-form-item__title-foldicon', 'el-icon-caret-top']" @click="isFold = !isFold"></i>
11
+ </span>
12
+ </p>
13
+ <p class="epx-add-form-item__note" v-if="$configs.note">
14
+ <i class="el-icon-info"></i>
15
+ <span class="epx-add-form-item__note-html">
16
+ <span v-html="$configs.note"></span>
17
+ <el-button v-if="$configs.help" size="small" type="primary" link class="epx-add-form-item__help">了解更多</el-button>
18
+ </span>
19
+ </p>
20
+ <epx-table-form
21
+ class="epx-add-form-item__content"
22
+ ref="form"
23
+ :metaId="currentMetaId"
24
+ :fieldsConfigs="fieldsConfigs"
25
+ pageType="componentType"
26
+ :value="data"
27
+ :showRelyFlag="false"
28
+ :valueRelyFlag="false"
29
+ :requiredRelyFlag="false"
30
+ :fieldRelation="[]"
31
+ :column="column"
32
+ :labelAlign="$configs.labelAlign"
33
+ :lineSpace="$configs.lineSpace"
34
+ :labelWidth="labelWidth"
35
+ :labelFontSize="$configs.labelFontSize"
36
+ :valueWidth="valueWidth"
37
+ :valueFontSize="$configs.valueFontSize"
38
+ :mFormStyle="$configs.mFormStyle"
39
+ :mFormPadding="$configs.mFormPadding"
40
+ >
41
+ </epx-table-form>
42
+ </div>
43
+ </template>
44
+
45
+ <script>
46
+ import previewMixin from '@epxing/designer/src/page-designer/widget-preview/Mixin'
47
+ export default {
48
+ name: 'epx-add-form-item--preview',
49
+ mixins: [previewMixin],
50
+ props: {
51
+ formConfigs: {
52
+ type: Object,
53
+ default () {
54
+ return {}
55
+ }
56
+ },
57
+ pageType: String
58
+ },
59
+ data () {
60
+ return {
61
+ isFold: false,
62
+ fieldsConfigs: [],
63
+ data: {}
64
+ }
65
+ },
66
+ computed: {
67
+ // 与运行时 AddFormItem 一致,从 store 取屏幕档位(此前未定义,渲染期报未定义属性)
68
+ isPcMd () {
69
+ return this.$store.state.config.isPcMd
70
+ },
71
+ isPcLg () {
72
+ return this.$store.state.config.isPcLg
73
+ },
74
+ componentType () {
75
+ const { componentType } = this.$configs
76
+ if (this.isEdit) return 'EDIT'
77
+ if (!componentType) {
78
+ return this.pageType
79
+ } else {
80
+ return componentType
81
+ }
82
+ },
83
+ currentMetaId () {
84
+ const { metaId = this.designer.page.metaId } = this.$configs
85
+ return metaId
86
+ },
87
+ column () {
88
+ let { column = this.formConfigs.column, columnAuto = false } = this.$configs
89
+ if (columnAuto) {
90
+ if (this.isPcMd) {
91
+ column = column < 2 ? column : 2
92
+ } else if (this.isPcLg) {
93
+ column = column < 3 ? column : 3
94
+ }
95
+ }
96
+ return column
97
+ },
98
+ labelWidth () {
99
+ const { labelWidthType, labelWidth } = this.$configs
100
+ return labelWidthType === 'auto' ? 'auto' : labelWidth
101
+ },
102
+ valueWidth () {
103
+ const { valueWidthType, valueWidth } = this.$configs
104
+ return valueWidthType === 'auto' ? 'auto' : valueWidth
105
+ }
106
+ },
107
+ watch: {
108
+ componentType () {
109
+ this.getFieldsConfigs()
110
+ },
111
+ '$configs.fields': {
112
+ handler (v) {
113
+ this.getFieldsConfigs()
114
+ },
115
+ immediate: true
116
+ }
117
+ },
118
+ methods: {
119
+ init () {
120
+ this.getFieldsConfigs()
121
+ },
122
+ getFieldsConfigs () {
123
+ const { fields } = this.$configs
124
+
125
+ this.$FieldFactory.createFields({
126
+ metaId: this.$metaId,
127
+ pageType: this.componentType,
128
+ fields: fields,
129
+ type: 'form'
130
+ })
131
+ .then(data => {
132
+ this.fieldsConfigs = [...data]
133
+ })
134
+ },
135
+ editFn () {
136
+ this.getFieldsConfigs('EDIT')
137
+ this.isEdit = true
138
+ this.isFold = false
139
+ this.loadForm = false
140
+ this.$nextTick(() => {
141
+ this.loadForm = true
142
+ })
143
+ },
144
+ cancel (finish) {
145
+ this.isEdit = false
146
+ this.$emit('cancel-edit', finish)
147
+ this.getFieldsConfigs()
148
+ if (finish && this.form) {
149
+ this.form.$refesh()
150
+ }
151
+ }
152
+ },
153
+ created () {
154
+ this.init()
155
+ }
156
+ }
157
+ </script>
158
+
159
+ <style scoped lang="scss">
160
+ .container {
161
+ background: var(--epx-bg-card);
162
+ }
163
+ .button-group {
164
+ text-align: center;
165
+ padding-bottom: 12px;
166
+ }
167
+ </style>
@@ -0,0 +1,27 @@
1
+ <template>
2
+ <div>
3
+ <el-button :type="$configs.type" class="button" >
4
+ <i class="button-icon" :class="['fa',$configs.icon]"></i>
5
+ {{$configs.name || $t('operating button')}}
6
+ </el-button>
7
+ </div>
8
+
9
+ </template>
10
+
11
+ <script>
12
+ import previewMixin from '@epxing/designer/src/page-designer/widget-preview/Mixin'
13
+ export default {
14
+ name: 'epx-button--preview',
15
+ mixins: [previewMixin]
16
+ }
17
+ </script>
18
+
19
+ <style scoped lang="scss">
20
+ .button {
21
+ display: block;
22
+ width: 100%;
23
+ }
24
+ .button-icon {
25
+ margin-right: 4px;
26
+ }
27
+ </style>
@@ -0,0 +1,78 @@
1
+ <template>
2
+ <el-card :class="['epx-card', {'epx-card--split': $configs.split}]" :style="widgetStyle" shadow="never" >
3
+ <template v-slot:header><div v-if="$configs.showHeader!==false" :class="['clearfix']">
4
+ <span class="epx-card__title">
5
+ <i :class="['epx-card__title-icon', $configs.icon || 'epx-icon-kapianmorentubiao']"></i>
6
+ <span>{{widget.title || $configs.componentName}}</span>
7
+ </span>
8
+ </div></template>
9
+ <div class="epx-card__component-content" :style="{padding: $util.toPx($configs.padding)}">
10
+ <div class="epx-card__component-list epx-page-designer-widget-preview__drop-zone">
11
+ <el-row>
12
+ <template v-for="childWidget in childWidgetList" :key="childWidget.id">
13
+ <el-col v-bind="colAttribute(childWidget)" column="false">
14
+ <widget-preview v-bind="$forwardAttrs($attrs)" :designer="designer"
15
+ :widget="childWidget"
16
+ :parent-widget="widget"
17
+
18
+ />
19
+ </el-col>
20
+ </template>
21
+ </el-row>
22
+ <div class="epx-page-designer-widget-preview__no-widget" v-if="childWidgetList.length===0">拖拽组件到这里</div>
23
+ </div>
24
+ </div>
25
+ </el-card>
26
+ </template>
27
+
28
+ <script>
29
+ import previewMixin from '@epxing/designer/src/page-designer/widget-preview/Mixin'
30
+ export default {
31
+ name: 'epx-card--preview',
32
+ mixins: [previewMixin],
33
+ computed: {
34
+ colAttribute () {
35
+ return (component = {}) => {
36
+ const { xsspan = 24, span } = component
37
+ return {
38
+ span: this.$isMobile ? xsspan : span || this.$configs.columnWidth || 24
39
+ }
40
+ }
41
+ }
42
+ }
43
+ // 所有拖拽方法已在 Mixin 中实现
44
+ }
45
+ </script>
46
+
47
+ <style lang="scss" scoped>
48
+ .epx-page-designer-widget-preview__drop-zone {
49
+ min-height: 60px;
50
+ }
51
+
52
+ .epx-page-designer-widget-preview__no-widget {
53
+ pointer-events: none;
54
+ }
55
+
56
+ .layout-placeholder {
57
+ min-height: 60px;
58
+ height: 100%;
59
+ width: 100%;
60
+ border: 1px dotted #a7b1bd;
61
+ position: relative;
62
+ &::before {
63
+ width: 100%;
64
+ text-align: center;
65
+ content: '拖拽组件到这里';
66
+ color: #666;
67
+ position: absolute;
68
+ top: 50%;
69
+ left: 50%;
70
+ transform: translate(-50%, -50%);
71
+ }
72
+ }
73
+ .has-component {
74
+ &::before {
75
+ display: none;
76
+ }
77
+ }
78
+ </style>
@@ -0,0 +1,32 @@
1
+ <template>
2
+ <div class="epx-page-designer-widget-preview__drop-zone">
3
+ <widget-preview v-bind="$forwardAttrs($attrs)" v-for="childWidget in childWidgetList"
4
+ :key="childWidget.id"
5
+ :widget="childWidget"
6
+ :parent-widget="widget"
7
+ :designer="designer"
8
+
9
+ />
10
+ <div class="epx-page-designer-widget-preview__no-widget" v-if="childWidgetList.length===0">拖拽组件到这里</div>
11
+ </div>
12
+ </template>
13
+
14
+ <script>
15
+ import previewMixin from '@epxing/designer/src/page-designer/widget-preview/Mixin.js'
16
+
17
+ export default {
18
+ name: 'epx-carousel-item--preview',
19
+ mixins: [previewMixin]
20
+ // 所有拖拽方法已在 Mixin 中实现
21
+ }
22
+ </script>
23
+
24
+ <style lang="scss" scoped>
25
+ .epx-page-designer-widget-preview__drop-zone {
26
+ min-height: 60px;
27
+ }
28
+
29
+ .epx-page-designer-widget-preview__no-widget {
30
+ pointer-events: none;
31
+ }
32
+ </style>