@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,656 @@
1
+ <template>
2
+ <div class="style-config">
3
+ <!-- 内外边距 -->
4
+ <div v-for="item in [{ label: $t('margin'), value: 'margin' }, { label: $t('padding'), value: 'padding' }]" :key="item.value" :class="{'style-config__item': true, 'style-config__item--unfold':unfold[item.value] }" >
5
+ <div class="style-config__header">
6
+ <span>
7
+ <i class="fold-icon el-icon-caret-right" @click="unfold[item.value] = !unfold[item.value]"></i>
8
+ <label class="style-config__label" for="">{{item.label}}</label>
9
+ </span>
10
+ <el-select class="selection" size="small" v-model="style[item.value]" :placeholder="$t('default')">
11
+ <el-option
12
+ v-for="item in space"
13
+ :key="item.value"
14
+ :label="item.label"
15
+ :value="item.value">
16
+ </el-option>
17
+ <el-input-number class="space-input" size="small" :model-value="clearSuffix(style[item.value])" controls-position="right" @change="v=>changePx(item.value, v)"></el-input-number>
18
+ </el-select>
19
+ </div>
20
+ <div class="style-config__content">
21
+ <div class="style-config__subitem" v-for="subItem in [{label: $t('top margin'), value: 'Top'}, {label: $t('right margin'), value: 'Right'}, {label: $t('bottom margin'), value: 'Bottom'},{label: $t('left margin'), value: 'Left'}]" :key="subItem.value">
22
+ <label class="style-config__label" for="">{{subItem.label}}</label>
23
+ <el-select class="selection" size="small" v-model="style[item.value + subItem.value]" :placeholder="$t('default')">
24
+ <el-option
25
+ v-for="item in space"
26
+ :key="item.value"
27
+ :label="item.label"
28
+ :value="item.value">
29
+ </el-option>
30
+ <el-input-number class="space-input" size="small" :model-value="clearSuffix(style[item.value+ subItem.value])" controls-position="right" @change="v=>(style[item.value + subItem.value] = v+'px')"></el-input-number>
31
+ </el-select>
32
+ </div>
33
+ </div>
34
+ </div>
35
+ <!-- 文字 -->
36
+ <div :class="{'style-config__item': true, 'style-config__item--unfold':unfold.text }">
37
+ <div class="style-config__header">
38
+ <span>
39
+ <i class="fold-icon el-icon-caret-right" @click="unfold['text'] = !unfold.text"></i>
40
+ <label class="style-config__label" for="">{{$t('word')}}</label>
41
+ </span>
42
+ <el-select class="selection" size="small" v-model="style.text" :placeholder="$t('default')">
43
+ <el-option
44
+ v-for="item in textOption"
45
+ :key="item.value"
46
+ :label="item.label"
47
+ :value="item.value">
48
+ </el-option>
49
+ </el-select>
50
+ </div>
51
+ <div class="style-config__content">
52
+ <div class="style-config__subitem">
53
+ <label class="style-config__label" for="">{{$t('word size')}}</label>
54
+ <el-input-number size="small" :model-value="clearSuffix(style.fontSize)" controls-position="right" @change="v=>(style['fontSize'] = v+'px')"></el-input-number>
55
+ </div>
56
+ <div class="style-config__subitem">
57
+ <label class="style-config__label" for="">{{$t('row height')}}</label>
58
+ <el-input-number size="small" :model-value="clearSuffix(style.lineHeight)" controls-position="right" @change="v=>(style['lineHeight'] = v+'px')"></el-input-number>
59
+ </div>
60
+ <div class="style-config__subitem">
61
+ <label class="style-config__label" for="">{{$t('text direction')}}</label>
62
+ <el-radio-group v-model="style.textAlign" size="default">
63
+ <el-radio-button label="left" value="left">
64
+ <i class="epx-icon-left"></i>
65
+ </el-radio-button>
66
+ <el-radio-button label="center" value="center">
67
+ <i class="epx-icon-center"></i>
68
+ </el-radio-button>
69
+ <el-radio-button label="right" value="right">
70
+ <i class="epx-icon-right"></i>
71
+ </el-radio-button>
72
+ </el-radio-group>
73
+ </div>
74
+ <div class="style-config__subitem">
75
+ <label class="style-config__label" for="">{{$t('word again')}}</label>
76
+ <el-select class="selection" size="small" v-model="style.fontWeight" :placeholder="$t('default')">
77
+ <el-option
78
+ v-for="item in fontWeightOption"
79
+ :key="item.value"
80
+ :label="item.label"
81
+ :value="item.value">
82
+ </el-option>
83
+ </el-select>
84
+ </div>
85
+ <div class="style-config__subitem">
86
+ <label class="style-config__label" for="">{{$t('font color')}}</label>
87
+ <el-color-picker
88
+ v-model="style.color"
89
+ show-alpha
90
+ :predefine="predefineColors">
91
+ </el-color-picker>
92
+ </div>
93
+ </div>
94
+ </div>
95
+ <!-- 背景 -->
96
+ <div :class="{'style-config__item': true, 'style-config__item--unfold':unfold.background }">
97
+ <div class="style-config__header">
98
+ <span>
99
+ <i class="fold-icon el-icon-caret-right" @click="unfold['background'] = !unfold.background"></i>
100
+ <label class="style-config__label" for="">{{$t('background')}}</label>
101
+ </span>
102
+ </div>
103
+ <div class="style-config__content">
104
+ <div class="style-config__subitem">
105
+ <label class="style-config__label" for="">背景色样式</label>
106
+ <div class="style-config__upload">
107
+ <el-radio-group v-model="backgroundStyle" size="default" @change="style['backgroundImage'] = '';style['backgroundColor'] = ''">
108
+ <el-radio label="color" value="color">纯色</el-radio>
109
+ <el-radio label="gradient" value="gradient">渐变色色</el-radio>
110
+ </el-radio-group>
111
+ </div>
112
+ </div>
113
+ </div>
114
+ <div v-if="backgroundStyle==='gradient'" class="style-config__content">
115
+ <div class="style-config__subitem">
116
+ <label class="style-config__label" for="">{{$t('background color')}}</label>
117
+ <epx-color-picker v-model="style.backgroundImage" ></epx-color-picker>
118
+ </div>
119
+ </div>
120
+ <template v-else>
121
+ <div class="style-config__content">
122
+ <div class="style-config__subitem">
123
+ <label class="style-config__label" for="">{{$t('background color')}}</label>
124
+ <el-color-picker
125
+ v-model="style.backgroundColor"
126
+ show-alpha
127
+ :predefine="predefineColors">
128
+ </el-color-picker>
129
+ </div>
130
+ </div>
131
+ <div class="style-config__content">
132
+ <div class="style-config__subitem">
133
+ <label class="style-config__label" for="">背景图片</label>
134
+ <div class="style-config__upload">
135
+ <el-input class="input upload-input" :model-value="style.backgroundImage" type="text" size="default" clearable @clear="style['backgroundImage'] = ''">
136
+ <template v-slot:suffix><i class="el-icon-upload" @click="$refs.fileInput.click()"></i></template>
137
+ </el-input>
138
+ <input :style="{width:0,height:0}" ref="fileInput" type="file" @change="changeBgImage" />
139
+ </div>
140
+ </div>
141
+ </div>
142
+ <div class="style-config__content">
143
+ <div class="style-config__subitem">
144
+ <label class="style-config__label" for="">背景适应模式</label>
145
+ <div class="style-config__upload">
146
+ <el-radio-group v-model="style.backgroundSize" size="default">
147
+ <el-radio label="cover" value="cover">裁剪</el-radio>
148
+ <el-radio label="contain" value="contain">适应</el-radio>
149
+ <el-radio label="100% 100%" value="100% 100%">拉伸</el-radio>
150
+ </el-radio-group>
151
+ </div>
152
+ </div>
153
+ </div>
154
+ </template>
155
+ </div>
156
+ <!-- 边框 -->
157
+ <div :class="{'style-config__item': true, 'style-config__item--unfold':unfold.border }">
158
+ <div class="style-config__header">
159
+ <span>
160
+ <i class="fold-icon el-icon-caret-right" @click="unfold['border'] = !unfold.border"></i>
161
+ <label class="style-config__label" for="">{{$t('border')}}</label>
162
+ </span>
163
+ </div>
164
+ <div class="style-config__content">
165
+ <div class="style-config__subitem">
166
+ <label class="style-config__label" for="">{{$t('linear')}}</label>
167
+ <el-select class="selection" size="small" v-model="style.borderStyle" :placeholder="$t('not')">
168
+ <el-option
169
+ v-for="item in borderStyleOption"
170
+ :key="item.value"
171
+ :label="item.label"
172
+ :value="item.value">
173
+ </el-option>
174
+ </el-select>
175
+ </div>
176
+ <div class="style-config__subitem">
177
+ <label class="style-config__label" for="">{{$t('width')}}</label>
178
+ <el-input-number size="small" :model-value="clearSuffix(style.borderWidth)" controls-position="right" @change="v=>(style['borderWidth'] = v+'px')"></el-input-number>
179
+ </div>
180
+ <div class="style-config__subitem">
181
+ <label class="style-config__label" for="">{{$t('color')}}</label>
182
+ <el-color-picker
183
+ v-model="style.borderColor"
184
+ show-alpha
185
+ :predefine="predefineColors">
186
+ </el-color-picker>
187
+ </div>
188
+ <div class="style-config__subitem">
189
+ <label class="style-config__label" for="">{{$t('filleted corner')}}</label>
190
+ <el-input-number size="small" :model-value="clearSuffix(style.borderRadius)" controls-position="right" @change="v=>(style['borderRadius'] = v+'px')"></el-input-number>
191
+ </div>
192
+ </div>
193
+ </div>
194
+ <!-- 阴影 -->
195
+ <div :class="{'style-config__item': true, 'style-config__item--unfold':unfold.shadow }">
196
+ <div class="style-config__header">
197
+ <span>
198
+ <i class="fold-icon el-icon-caret-right" @click="unfold['shadow'] = !unfold.shadow"></i>
199
+ <label class="style-config__label" for="">{{$t('shadow')}}</label>
200
+ </span>
201
+ </div>
202
+ <div class="style-config__content">
203
+ <div class="style-config__subitem">
204
+ <label class="style-config__label" for="">{{$t('level of the shadow')}}</label>
205
+ <el-input-number size="small" :model-value="clearSuffix(style.hShadow)" controls-position="right" @change="v=>(style['hShadow'] = v+'px')"></el-input-number>
206
+ </div>
207
+ <div class="style-config__subitem">
208
+ <label class="style-config__label" for="">{{$t('vertical shadow')}}</label>
209
+ <el-input-number size="small" :model-value="clearSuffix(style.vShadow)" controls-position="right" @change="v=>(style['vShadow'] = v+'px')"></el-input-number>
210
+ </div>
211
+ <div class="style-config__subitem">
212
+ <label class="style-config__label" for="">{{$t('fuzzy distance')}}</label>
213
+ <el-input-number size="small" :model-value="clearSuffix(style.shadowBlur)" controls-position="right" @change="v=>(style['shadowBlur'] = v+'px')"></el-input-number>
214
+ </div>
215
+ <div class="style-config__subitem">
216
+ <label class="style-config__label" for="">{{$t('size of the shadow')}}</label>
217
+ <el-input-number size="small" :model-value="clearSuffix(style.shadowSpread)" controls-position="right" @change="v=>(style['shadowSpread'] = v+'px')"></el-input-number>
218
+ </div>
219
+ <div class="style-config__subitem">
220
+ <label class="style-config__label" for="">{{$t('shadow color')}}</label>
221
+ <el-color-picker
222
+ v-model="style.shadowColor"
223
+ show-alpha
224
+ :predefine="predefineColors">
225
+ </el-color-picker>
226
+ </div>
227
+ </div>
228
+ </div>
229
+ </div>
230
+ </template>
231
+
232
+ <script>
233
+ // 组件样式配置(从 ConfigPanel.vue 的「样式」Tab 提取的公共组件)
234
+ // 维护内部编辑态(margin/padding/shadow 拆分、backgroundImage 包 url()),componentStyle 产出真实 CSS
235
+ // props.value = 组件当前 style(真实 CSS 对象);@change 发出新的真实 CSS style 对象
236
+ export default {
237
+ name: 'epx-component-style-config',
238
+ props: {
239
+ value: {
240
+ type: Object,
241
+ default () {
242
+ return {}
243
+ }
244
+ }
245
+ },
246
+ data () {
247
+ return {
248
+ style: {},
249
+ unfold: {},
250
+ space: [
251
+ { label: '超大', value: '24px' },
252
+ { label: '大', value: '16px' },
253
+ { label: '中', value: '12px' },
254
+ { label: '小', value: '4px' },
255
+ { label: '无', value: '0px' },
256
+ { label: '默认', value: 'default' },
257
+ { label: '自定义', value: 'custom' }
258
+ ],
259
+ backgroundStyle: 'color'
260
+ }
261
+ },
262
+ computed: {
263
+ clearSuffix () {
264
+ return (v = '') => Number((v || '').toString().replace(/px/, ''))
265
+ },
266
+ isSameMargin () {
267
+ const { marginTop, marginRight, marginBottom, marginLeft } = this.style
268
+ return marginTop === marginRight && marginTop === marginBottom && marginTop === marginLeft
269
+ },
270
+ isSamePadding () {
271
+ const { paddingTop, paddingRight, paddingBottom, paddingLeft } = this.style
272
+ return paddingTop === paddingRight && paddingTop === paddingBottom && paddingTop === paddingLeft
273
+ },
274
+ componentStyle () {
275
+ const {
276
+ margin, marginTop, marginRight, marginBottom, marginLeft,
277
+ padding, paddingTop, paddingRight, paddingBottom, paddingLeft,
278
+ hShadow = 0, vShadow = 0, shadowBlur = 0, shadowSpread = 0, shadowColor,
279
+ backgroundImage,
280
+ text,
281
+ ...otherStyle
282
+ } = this.style
283
+ const style = {
284
+ ...otherStyle
285
+ }
286
+ if (hShadow || vShadow || shadowBlur) {
287
+ style.boxShadow = `${hShadow} ${vShadow} ${shadowBlur} ${shadowSpread} ${shadowColor}`
288
+ }
289
+ if (margin) {
290
+ if (!this.isSameMargin) {
291
+ if (![marginTop, marginRight, marginBottom, marginLeft].includes('default') && ![marginTop, marginRight, marginBottom, marginLeft].includes(undefined)) {
292
+ style.margin = `${marginTop} ${marginRight} ${marginBottom} ${marginLeft}`
293
+ } else {
294
+ if (marginTop && marginTop !== 'default') style.marginTop = marginTop
295
+ if (marginRight && marginRight !== 'default') style.marginRight = marginRight
296
+ if (marginBottom && marginBottom !== 'default') style.marginBottom = marginBottom
297
+ if (marginLeft && marginLeft !== 'default') style.marginLeft = marginLeft
298
+ }
299
+ } else {
300
+ style.margin = margin
301
+ }
302
+ }
303
+ if (padding) {
304
+ if (!this.isSamePadding) {
305
+ if (![paddingTop, paddingRight, paddingBottom, paddingLeft].includes('default') && ![paddingTop, paddingRight, paddingBottom, paddingLeft].includes(undefined)) {
306
+ style.padding = `${paddingTop} ${paddingRight} ${paddingBottom} ${paddingLeft}`
307
+ } else {
308
+ if (paddingTop && paddingTop !== 'default') style.paddingTop = paddingTop
309
+ if (paddingRight && paddingRight !== 'default') style.paddingRight = paddingRight
310
+ if (paddingBottom && paddingBottom !== 'default') style.paddingBottom = paddingBottom
311
+ if (paddingLeft && paddingLeft !== 'default') style.paddingLeft = paddingLeft
312
+ }
313
+ } else {
314
+ style.padding = padding
315
+ }
316
+ }
317
+ if (backgroundImage) {
318
+ if (this.backgroundStyle === 'gradient') {
319
+ style.backgroundImage = backgroundImage
320
+ } else {
321
+ style.backgroundImage = `url(${backgroundImage})`
322
+ style.backgroundRepeat = 'no-repeat'
323
+ style.backgroundPosition = 'center'
324
+ if (!style.backgroundSize) style.backgroundSize = 'cover'
325
+ }
326
+ } else {
327
+ delete style.backgroundRepet
328
+ delete style.backgroundSize
329
+ delete style.backgroundPosition
330
+ }
331
+ return style
332
+ }
333
+ },
334
+ watch: {
335
+ componentStyle (v = {}) {
336
+ this.$emit('change', v)
337
+ },
338
+ 'style.margin' (v) {
339
+ if (v && v !== 'custom') {
340
+ ['Top', 'Right', 'Bottom', 'Left'].forEach(item => {
341
+ this.style['margin' + item] = v
342
+ })
343
+ }
344
+ },
345
+ 'style.padding' (v) {
346
+ if (v && v !== 'custom') {
347
+ ['Top', 'Right', 'Bottom', 'Left'].forEach(item => {
348
+ this.style['padding' + item] = v
349
+ })
350
+ }
351
+ },
352
+ 'style.text' (v) {
353
+ // 获取选项对应style
354
+ const option = this.textOption.find(item => item.value === v)
355
+ if (option && option.style) {
356
+ for (const key in option.style) {
357
+ this.style[key] = option.style[key]
358
+ }
359
+ }
360
+ },
361
+ isSameMargin (v) {
362
+ if (v) {
363
+ this.style.margin = this.style.marginTop
364
+ } else {
365
+ this.style.margin = 'custom'
366
+ }
367
+ },
368
+ isSamePadding (v) {
369
+ if (v) {
370
+ this.style.padding = this.style.paddingTop
371
+ } else {
372
+ this.style.padding = 'custom'
373
+ }
374
+ }
375
+ },
376
+ methods: {
377
+ getOption () {
378
+ const textOption = [
379
+ {
380
+ label: this.$t('Translation of the title'),
381
+ value: 'h1',
382
+ style: {
383
+ fontSize: '20px',
384
+ fontWeight: '700',
385
+ lineHeight: '32px'
386
+ }
387
+ },
388
+ {
389
+ label: this.$t('SubTitle'),
390
+ value: 'h2',
391
+ style: {
392
+ fontSize: '16px',
393
+ fontWeight: '700',
394
+ lineHeight: '24px'
395
+ }
396
+ },
397
+ {
398
+ label: this.$t('main body'),
399
+ value: 'default',
400
+ style: {
401
+ fontSize: '14px',
402
+ lineHeight: '20px'
403
+ }
404
+ },
405
+ {
406
+ label: this.$t('auxiliary words'),
407
+ value: 'second',
408
+ style: {
409
+ fontSize: '12px',
410
+ color: '#666',
411
+ lineHeight: '16px'
412
+ }
413
+ },
414
+ {
415
+ label: this.$t('user-defined'),
416
+ value: 'custom'
417
+ }
418
+ ]
419
+ this.textOption = textOption
420
+ this.predefineColors = ['#ff4500', '#ff8c00', '#ffd700', '#90ee90']
421
+ this.fontWeightOption = [
422
+ {
423
+ label: this.$t('overstriking'),
424
+ value: '700'
425
+ },
426
+ {
427
+ label: this.$t('thin'),
428
+ value: '400'
429
+ },
430
+ {
431
+ label: this.$t('default'),
432
+ value: '500'
433
+ }
434
+ ]
435
+ this.borderStyleOption = [
436
+ {
437
+ label: this.$t('full line'),
438
+ value: 'solid'
439
+ },
440
+ {
441
+ label: this.$t('dotted line'),
442
+ value: 'dashed'
443
+ },
444
+ {
445
+ label: this.$t('stipple line'),
446
+ value: 'dotted'
447
+ },
448
+ {
449
+ label: this.$t('not'),
450
+ value: 'none'
451
+ }
452
+ ]
453
+ },
454
+ changePx (key, v) {
455
+ this.style[key] = v + 'px'
456
+ },
457
+ // value(组件真实 style)→ 编辑态 this.style:margin/padding/boxShadow 拆分,backgroundImage 剥 url()。
458
+ // 预置所有编辑键为 undefined:Vue3 的 reactive 对新增键也能触发更新,这里保留预置只是为了
459
+ // 与 develop 版本行为一致、且不依赖后续 v-model 首次写入的时机(值仍是 undefined,不影响
460
+ // componentStyle 的输出——undefined 值的键会被 style 绑定/JSON 序列化自然丢弃)
461
+ setDefaultStyle () {
462
+ const style = this.value || {}
463
+ const { margin, padding, boxShadow, backgroundImage, ...otherStyle } = style
464
+ const componentStyle = {
465
+ margin: undefined,
466
+ marginTop: undefined,
467
+ marginRight: undefined,
468
+ marginBottom: undefined,
469
+ marginLeft: undefined,
470
+ padding: undefined,
471
+ paddingTop: undefined,
472
+ paddingRight: undefined,
473
+ paddingBottom: undefined,
474
+ paddingLeft: undefined,
475
+ text: undefined,
476
+ fontSize: undefined,
477
+ lineHeight: undefined,
478
+ textAlign: undefined,
479
+ fontWeight: undefined,
480
+ color: undefined,
481
+ backgroundColor: undefined,
482
+ backgroundImage: undefined,
483
+ backgroundSize: undefined,
484
+ borderStyle: undefined,
485
+ borderWidth: undefined,
486
+ borderColor: undefined,
487
+ borderRadius: undefined,
488
+ hShadow: undefined,
489
+ vShadow: undefined,
490
+ shadowBlur: undefined,
491
+ shadowSpread: undefined,
492
+ shadowColor: undefined
493
+ }
494
+ if (boxShadow) {
495
+ const shadowArr = boxShadow.split(' ')
496
+ componentStyle.hShadow = shadowArr[0] || 0
497
+ componentStyle.vShadow = shadowArr[1] || 0
498
+ componentStyle.shadowBlur = shadowArr[2] || 0
499
+ componentStyle.shadowSpread = shadowArr[3] || 0
500
+ componentStyle.shadowColor = shadowArr[4] || ''
501
+ }
502
+ if (margin) {
503
+ const arr = margin.split(' ')
504
+ if (arr.length === 2) {
505
+ componentStyle.margin = 'custom'
506
+ componentStyle.marginTop = arr[0]
507
+ componentStyle.marginRight = arr[1]
508
+ componentStyle.marginBottom = arr[0]
509
+ componentStyle.marginLeft = arr[1]
510
+ } else if (arr.length === 3) {
511
+ componentStyle.margin = 'custom'
512
+ componentStyle.marginTop = arr[0]
513
+ componentStyle.marginRight = arr[1]
514
+ componentStyle.marginBottom = arr[2]
515
+ componentStyle.marginLeft = arr[1]
516
+ } else if (arr.length === 4) {
517
+ componentStyle.margin = 'custom'
518
+ componentStyle.marginTop = arr[0]
519
+ componentStyle.marginRight = arr[1]
520
+ componentStyle.marginBottom = arr[2]
521
+ componentStyle.marginLeft = arr[3]
522
+ } else {
523
+ componentStyle.margin = margin
524
+ }
525
+ }
526
+ if (padding) {
527
+ const arr = padding.split(' ')
528
+ if (arr.length === 2) {
529
+ componentStyle.padding = 'custom'
530
+ componentStyle.paddingTop = arr[0]
531
+ componentStyle.paddingRight = arr[1]
532
+ componentStyle.paddingBottom = arr[0]
533
+ componentStyle.paddingLeft = arr[1]
534
+ } else if (arr.length === 3) {
535
+ componentStyle.padding = 'custom'
536
+ componentStyle.paddingTop = arr[0]
537
+ componentStyle.paddingRight = arr[1]
538
+ componentStyle.paddingBottom = arr[2]
539
+ componentStyle.paddingLeft = arr[1]
540
+ } else if (arr.length === 4) {
541
+ componentStyle.padding = 'custom'
542
+ componentStyle.paddingTop = arr[0]
543
+ componentStyle.paddingRight = arr[1]
544
+ componentStyle.paddingBottom = arr[2]
545
+ componentStyle.paddingLeft = arr[3]
546
+ } else {
547
+ componentStyle.padding = padding
548
+ }
549
+ }
550
+ if (backgroundImage) {
551
+ if (backgroundImage.includes('linear-gradient(')) {
552
+ this.backgroundStyle = 'gradient'
553
+ componentStyle.backgroundImage = backgroundImage
554
+ } else {
555
+ componentStyle.backgroundImage = backgroundImage.replace(/url\((.+)\)/, '$1')
556
+ }
557
+ }
558
+ this.style = { ...componentStyle, ...otherStyle }
559
+ },
560
+ changeBgImage (e) {
561
+ const file = e.target.files[0]
562
+ if (file) {
563
+ this.$http.save({
564
+ action: 'upload',
565
+ file: file,
566
+ SOURCE: 'page'
567
+ }, {
568
+ requestType: 'formData'
569
+ })
570
+ .then(data => {
571
+ if (data && data.bean) {
572
+ this.style.backgroundImage = data.bean
573
+ }
574
+ })
575
+ }
576
+ }
577
+ },
578
+ created () {
579
+ this.getOption()
580
+ this.setDefaultStyle()
581
+ }
582
+ }
583
+ </script>
584
+
585
+ <style lang="scss" scoped>
586
+ .style-config {
587
+ padding: 10px;
588
+
589
+ :deep(.el-select),
590
+ :deep(.el-input-number),
591
+ :deep(.el-input) {
592
+ width: 190px;
593
+ }
594
+
595
+ }
596
+ .space-input {
597
+ width: 100%;
598
+ margin-top: 10px;
599
+ }
600
+ .style-config__header {
601
+ display: flex;
602
+ align-items: center;
603
+ margin: 10px 0 ;
604
+ padding-right: 10px;
605
+ // 图标 + label 不收缩、不换行,避免窄抽屉里被挤换行;收缩让给右侧控件
606
+ > span {
607
+ flex-shrink: 0;
608
+ white-space: nowrap;
609
+ }
610
+ }
611
+ .fold-icon {
612
+ color: rgba(0,0,0,.65);
613
+ font-size: var(--epx-font-size-l);
614
+ margin-left: 8px;
615
+ margin-right: 4px;
616
+ }
617
+ .style-config__label {
618
+ display: inline-block;
619
+ color: #666;
620
+ width: 90px;
621
+ flex-shrink: 0;
622
+ white-space: nowrap;
623
+ }
624
+ .style-config__content {
625
+ display: none;
626
+ background: #F5F7FA;
627
+ overflow: hidden;
628
+ padding: 0 10px 0 28px;
629
+ }
630
+ .style-config__subitem {
631
+ display: flex;
632
+ align-items: center;
633
+ margin: 10px 0 ;
634
+ }
635
+ .style-config__item--unfold {
636
+ .fold-icon {
637
+ transform: rotate(90deg);
638
+ }
639
+ .style-config__content {
640
+ display: block;
641
+ }
642
+ }
643
+ .style-config__upload {
644
+ .el-icon-upload {
645
+ line-height: 36px;
646
+ cursor: pointer;
647
+ }
648
+ }
649
+ .upload-input {
650
+
651
+ :deep(.el-input__inner) {
652
+ padding-right: 48px;
653
+ }
654
+
655
+ }
656
+ </style>