@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,471 @@
1
+ <template>
2
+ <div class="theme-setting">
3
+ <div class="theme-setting__header">
4
+ <span v-if="editTheme">{{editTheme.NAME}}</span>
5
+ <el-button v-else type="primary" link @click="$emit('save')">
6
+ <i class="epx-icon-save"></i>
7
+ <span>保存为预设</span>
8
+ </el-button>
9
+ </div>
10
+ <div class="theme-setting__content">
11
+ <!-- PC / 移动端 切换:移动端态下编辑写入 mobile 覆盖层,仅 ≤992px 生效,未设项继承 PC -->
12
+ <div class="theme-setting__device-switch">
13
+ <el-radio-group :model-value="mobileEdit ? 'mobile' : 'pc'" size="small" @change="v=>mobileEdit = v==='mobile'">
14
+ <el-radio-button label="pc" value="pc">PC 端</el-radio-button>
15
+ <el-radio-button label="mobile" value="mobile">移动端</el-radio-button>
16
+ </el-radio-group>
17
+ <span v-if="mobileEdit" class="theme-setting__device-tip">仅覆盖移动端(≤992px),未设项继承 PC</span>
18
+ </div>
19
+ <!-- 分类 -->
20
+ <ul class="theme-setting__tree">
21
+ <li class="theme-setting__tree-item" :class="{'is-fold': fold[item.key]}" v-for="item in visibleSettingTree" :key="item.key">
22
+ <div class="theme-setting__tree-header" @click="fold[item.key] = !fold[item.key]">
23
+ <span>{{item.label}}</span>
24
+ <i class="el-icon-arrow-down"></i>
25
+ </div>
26
+ <div class="theme-setting__tree-content">
27
+ <!-- 默认/悬浮 切换:悬浮态下编辑器读写 hoverStyle -->
28
+ <div v-if="item.hover" class="theme-setting__mode-switch">
29
+ <el-radio-group :model-value="hoverMode[item.key] ? 'hover' : 'default'" size="small" @change="v=>(hoverMode[item.key] = v==='hover')">
30
+ <el-radio-button label="default" value="default">默认</el-radio-button>
31
+ <el-radio-button label="hover" value="hover">悬浮</el-radio-button>
32
+ </el-radio-group>
33
+ </div>
34
+ <template v-for="config in item.children" :key="item.key+'-'+config.key">
35
+ <template v-if="!hoverMode[item.key] || config.hover">
36
+ <!-- 背景 -->
37
+ <theme-setting-background :key="item.key+'-'+config.key+'-'+(mobileEdit?'m':'p')+'-'+(hoverMode[item.key]?'h':'d')" v-if="config.type==='background'" :label="config.label" :value="cfgValue(item, config)" @change="v=>onChange(item, config, v)"></theme-setting-background>
38
+ <!-- 边框 -->
39
+ <theme-setting-border :key="item.key+'-'+config.key+'-'+(mobileEdit?'m':'p')+'-'+(hoverMode[item.key]?'h':'d')" v-else-if="config.type==='border'" :label="config.label" :value="cfgValue(item, config)" @change="v=>onChange(item, config, v)"></theme-setting-border>
40
+ <!-- 文字 -->
41
+ <theme-setting-font :key="item.key+'-'+config.key+'-'+(mobileEdit?'m':'p')+'-'+(hoverMode[item.key]?'h':'d')" v-else-if="config.type==='font'" :label="config.label" :value="cfgValue(item, config)" @change="v=>onChange(item, config, v)"></theme-setting-font>
42
+ <!-- 阴影 -->
43
+ <theme-setting-shadow :key="item.key+'-'+config.key+'-'+(mobileEdit?'m':'p')+'-'+(hoverMode[item.key]?'h':'d')" v-else-if="config.type==='shadow'" :label="config.label" :value="cfgValue(item, config)" @change="v=>onChange(item, config, v)"></theme-setting-shadow>
44
+ <!-- 单色 -->
45
+ <div :key="item.key+'-'+config.key+'-'+(mobileEdit?'m':'p')" v-else-if="config.type==='color'" class="epx-page-designer-setting-style__item--alone">
46
+ <label class="epx-page-designer-setting-style__label" for="">{{config.label}}</label>
47
+ <el-color-picker :model-value="cfgValue(item, config)" show-alpha :predefine="predefineColors" @change="v=>changeConfig(item, config, v)"></el-color-picker>
48
+ </div>
49
+ <!-- 多色色板 -->
50
+ <div :key="item.key+'-'+config.key+'-'+(mobileEdit?'m':'p')" v-else-if="config.type==='colors'" class="theme-setting__palette">
51
+ <label class="epx-page-designer-setting-style__label" for="">{{config.label}}</label>
52
+ <div class="theme-setting__palette-list">
53
+ <div class="theme-setting__palette-item" v-for="(color, index) in getColors(item, config)" :key="index">
54
+ <el-color-picker :model-value="color" show-alpha :predefine="predefineColors" @change="v=>setColor(item, config, index, v)"></el-color-picker>
55
+ <i class="el-icon-close theme-setting__palette-remove" @click="removeColor(item, config, index)"></i>
56
+ </div>
57
+ <el-button class="theme-setting__palette-add" icon="el-icon-plus" @click="addColor(item, config)"></el-button>
58
+ </div>
59
+ </div>
60
+ <!-- 数字 -->
61
+ <div :key="item.key+'-'+config.key+'-'+(mobileEdit?'m':'p')" v-else-if="config.type==='number'" class="epx-page-designer-setting-style__item--alone">
62
+ <label class="epx-page-designer-setting-style__label" for="">{{config.label}}</label>
63
+ <el-input-number :model-value="cfgValue(item, config)" controls-position="right" :min="0" size="default" @change="v=>changeConfig(item, config, v)"></el-input-number>
64
+ </div>
65
+ <!-- 文本 -->
66
+ <div :key="item.key+'-'+config.key+'-'+(mobileEdit?'m':'p')" v-else-if="config.type==='text'" class="epx-page-designer-setting-style__item--alone">
67
+ <label class="epx-page-designer-setting-style__label" for="">{{config.label}}</label>
68
+ <el-input :model-value="cfgValue(item, config)" size="default" :placeholder="config.placeholder" clearable @input="v=>changeConfig(item, config, v)"></el-input>
69
+ </div>
70
+ <!-- 多行文本 -->
71
+ <div :key="item.key+'-'+config.key+'-'+(mobileEdit?'m':'p')" v-else-if="config.type==='textarea'" class="epx-page-designer-setting-style__item--alone">
72
+ <label class="epx-page-designer-setting-style__label" for="">{{config.label}}</label>
73
+ <el-input type="textarea" :rows="8" :model-value="cfgValue(item, config)" :placeholder="config.placeholder" @input="v=>changeConfig(item, config, v)"></el-input>
74
+ </div>
75
+ <!-- CSS 编辑器(CodeMirror 语法高亮 + 自动补全) -->
76
+ <div :key="item.key+'-'+config.key+'-'+(mobileEdit?'m':'p')" v-else-if="config.type==='css'" class="theme-setting__css">
77
+ <label class="epx-page-designer-setting-style__label" for="">{{config.label}}</label>
78
+ <css-editor :value="cfgValue(item, config)" @change="v=>changeConfig(item, config, v)"></css-editor>
79
+ </div>
80
+ </template>
81
+ </template>
82
+ </div>
83
+ </li>
84
+ </ul>
85
+ </div>
86
+ </div>
87
+ </template>
88
+
89
+ <script>
90
+ import Background from './Background.vue'
91
+ import Border from './Border.vue'
92
+ import Font from './Font.vue'
93
+ import Shadow from './Shadow.vue'
94
+ import CssEditor from '@epxing/designer/src/page-designer/setting-panel/css-editor/CssEditor.vue'
95
+ export default {
96
+ name: 'epx-dashboard-designer-theme-setting',
97
+ components: {
98
+ ThemeSettingBackground: Background,
99
+ ThemeSettingBorder: Border,
100
+ ThemeSettingFont: Font,
101
+ ThemeSettingShadow: Shadow,
102
+ CssEditor
103
+ },
104
+ props: {
105
+ editTheme: Object,
106
+ value: Object
107
+ },
108
+ data () {
109
+ return {
110
+ settingTree: [],
111
+ fold: {},
112
+ hoverMode: {}, // 各分区是否处于"悬浮"编辑态,key 为分区 key
113
+ mobileEdit: false, // 是否处于"移动端"编辑态:写入 themeConfig.mobile 覆盖层
114
+ predefineColors: ['#4078ff', '#00c78b', '#ff8c42', '#a855f7', '#ef4444', '#f59e0b', '#06b6d4', '#84cc16'],
115
+ themeConfig: {
116
+ page: {},
117
+ component: {},
118
+ num: {},
119
+ chart: {},
120
+ custom: {},
121
+ mobile: {} // 移动端覆盖层(只存被覆盖的键,结构同顶层 page/component/num)
122
+ }
123
+ }
124
+ },
125
+ computed: {
126
+ // 移动端态只展示支持覆盖的样式分区(page/component/num);chart 走 JS、custom 走基础层,暂不支持移动端覆盖
127
+ visibleSettingTree () {
128
+ return this.mobileEdit ? this.settingTree.filter(s => s.mobileOverride) : this.settingTree
129
+ }
130
+ },
131
+ watch: {
132
+ // 上报"移动端编辑态",供设计器加 .is-mobile-preview 类预览移动端覆盖
133
+ mobileEdit (v) {
134
+ this.$emit('mobile-edit', v)
135
+ }
136
+ },
137
+ methods: {
138
+ getSetting () {
139
+ this.settingTree = [
140
+ {
141
+ key: 'page',
142
+ label: '页面样式',
143
+ mobileOverride: true,
144
+ children: [
145
+ {
146
+ key: 'background',
147
+ label: '背景',
148
+ type: 'background'
149
+ },
150
+ {
151
+ key: 'margin',
152
+ label: '间距',
153
+ type: 'num'
154
+ }
155
+ ]
156
+ },
157
+ {
158
+ key: 'component',
159
+ label: '图表组件样式',
160
+ hover: true, // 支持"默认/悬浮"切换
161
+ mobileOverride: true,
162
+ children: [
163
+ {
164
+ key: 'titleBackground',
165
+ label: '标题背景',
166
+ type: 'background'
167
+ },
168
+ {
169
+ key: 'titleIcon',
170
+ label: '标题图标',
171
+ type: 'image'
172
+ },
173
+ {
174
+ key: 'titleIconSize',
175
+ label: '图标大小',
176
+ type: 'number'
177
+ },
178
+ {
179
+ key: 'titleFontStyle',
180
+ label: '标题文字',
181
+ type: 'font'
182
+ },
183
+ {
184
+ key: 'background',
185
+ label: '组件背景',
186
+ type: 'background',
187
+ hover: true // 悬浮态可配
188
+ },
189
+ {
190
+ key: 'fontStyle',
191
+ label: '组件文字',
192
+ type: 'font',
193
+ hover: true
194
+ },
195
+ {
196
+ key: 'border',
197
+ label: '组件边框',
198
+ type: 'border',
199
+ hover: true
200
+ },
201
+ {
202
+ key: 'shadow',
203
+ label: '组件阴影',
204
+ type: 'shadow',
205
+ hover: true
206
+ }
207
+ ]
208
+ },
209
+ {
210
+ key: 'num',
211
+ label: '数字统计样式',
212
+ hover: true,
213
+ mobileOverride: true,
214
+ children: [
215
+ {
216
+ key: 'background',
217
+ label: '组件背景',
218
+ type: 'background',
219
+ hover: true
220
+ },
221
+ {
222
+ key: 'border',
223
+ label: '组件边框',
224
+ type: 'border',
225
+ hover: true
226
+ },
227
+ {
228
+ key: 'shadow',
229
+ label: '组件阴影',
230
+ type: 'shadow',
231
+ hover: true
232
+ },
233
+ {
234
+ key: 'fontStyle',
235
+ label: '数字文字',
236
+ type: 'font',
237
+ hover: true
238
+ },
239
+ {
240
+ key: 'titleFontStyle',
241
+ label: '标题文字',
242
+ type: 'font'
243
+ }
244
+ ]
245
+ },
246
+ {
247
+ key: 'chart',
248
+ label: '图表配色',
249
+ mobileOverride: true,
250
+ children: [
251
+ {
252
+ key: 'colors',
253
+ label: '系列色板',
254
+ type: 'colors'
255
+ },
256
+ {
257
+ key: 'splitLineColor',
258
+ label: '分割线颜色',
259
+ type: 'color'
260
+ },
261
+ {
262
+ key: 'axisLineColor',
263
+ label: '轴线颜色',
264
+ type: 'color'
265
+ }
266
+ ]
267
+ },
268
+ {
269
+ key: 'custom',
270
+ label: '高级自定义',
271
+ children: [
272
+ {
273
+ key: 'css',
274
+ label: '自定义 CSS(& 代表当前仪表盘作用域)',
275
+ type: 'css'
276
+ }
277
+ ]
278
+ }
279
+ ]
280
+ },
281
+ // 读分区容器:移动端态走 themeConfig.mobile 子树,否则顶层。不创建,缺失返回 {}
282
+ readSection (itemKey) {
283
+ const root = this.mobileEdit ? (this.themeConfig.mobile || {}) : this.themeConfig
284
+ return root[itemKey] || {}
285
+ },
286
+ // 写分区容器:移动端态写入 themeConfig.mobile 子树
287
+ writeSection (itemKey, updated) {
288
+ if (this.mobileEdit) {
289
+ if (!this.themeConfig.mobile) this.themeConfig.mobile = {}
290
+ this.themeConfig.mobile[itemKey] = updated
291
+ } else {
292
+ this.themeConfig[itemKey] = updated
293
+ }
294
+ this.$emit('change', this.themeConfig)
295
+ },
296
+ changeConfig (item, config, value) {
297
+ this.writeSection(item.key, { ...this.readSection(item.key), [config.key]: value })
298
+ },
299
+ // 悬浮态:把编辑结果写进分区的 hoverStyle 子对象(与默认态键名对称,引擎渲染时拍平为 :hover 规则)
300
+ changeHoverConfig (item, config, value) {
301
+ const section = this.readSection(item.key)
302
+ const hoverStyle = { ...(section.hoverStyle || {}), [config.key]: value }
303
+ this.writeSection(item.key, { ...section, hoverStyle })
304
+ },
305
+ // 编辑器取值:悬浮态读 hoverStyle 子对象,默认态读分区本身(移动端态读 mobile 子树)
306
+ cfgValue (item, config) {
307
+ const section = this.readSection(item.key)
308
+ if (this.hoverMode[item.key]) {
309
+ return (section.hoverStyle || {})[config.key]
310
+ }
311
+ return section[config.key]
312
+ },
313
+ onChange (item, config, value) {
314
+ if (this.hoverMode[item.key]) {
315
+ this.changeHoverConfig(item, config, value)
316
+ } else {
317
+ this.changeConfig(item, config, value)
318
+ }
319
+ },
320
+ // 色板:兼容旧的逗号分隔字符串,统一取成数组
321
+ getColors (item, config) {
322
+ const v = this.readSection(item.key)[config.key]
323
+ if (Array.isArray(v)) return v
324
+ if (typeof v === 'string' && v.trim()) return v.split(/[,,\s]+/).filter(Boolean)
325
+ return []
326
+ },
327
+ addColor (item, config) {
328
+ this.changeConfig(item, config, [...this.getColors(item, config), '#4078ff'])
329
+ },
330
+ setColor (item, config, index, value) {
331
+ const list = [...this.getColors(item, config)]
332
+ if (value) {
333
+ list.splice(index, 1, value)
334
+ } else {
335
+ list.splice(index, 1) // 清空取色器视为删除该色
336
+ }
337
+ this.changeConfig(item, config, list)
338
+ },
339
+ removeColor (item, config, index) {
340
+ const list = [...this.getColors(item, config)]
341
+ list.splice(index, 1)
342
+ this.changeConfig(item, config, list)
343
+ }
344
+ },
345
+ created () {
346
+ this.getSetting()
347
+ if (this.editTheme) {
348
+ const themeConfig = JSON.parse(this.editTheme.CONTENT)
349
+ // 兜底补齐分区,兼容旧主题数据缺少 chart/custom 等分区的情况
350
+ if (themeConfig) this.themeConfig = { ...this.themeConfig, ...themeConfig }
351
+ } else if (this.value) {
352
+ this.themeConfig = { ...this.themeConfig, ...this.value }
353
+ }
354
+ },
355
+ beforeUnmount () {
356
+ // 关闭主题面板时清掉设计器的移动端预览态
357
+ this.$emit('mobile-edit', false)
358
+ }
359
+ }
360
+ </script>
361
+
362
+ <style lang="scss" scoped>
363
+ .theme-setting__header {
364
+ padding: 0 12px;
365
+ border-bottom: 1px solid #e3e3e3;
366
+ i {
367
+ margin-right: 4px;
368
+ }
369
+ >span {
370
+ font-weight: bold;
371
+ font-size: var(--epx-font-size-l);
372
+ color: #333333;
373
+ line-height: 48px;
374
+ }
375
+ }
376
+ .theme-setting__tree-item {
377
+ padding: 12px 0;
378
+ &:not(:last-child) {
379
+ border-bottom: 1px solid #e3e3e3;
380
+ }
381
+ &.is-fold {
382
+ .theme-setting__tree-content {
383
+ height: 0;
384
+ overflow: hidden;
385
+ }
386
+ .theme-setting__tree-header >i{
387
+ transform: rotate(180deg);
388
+ }
389
+ }
390
+ }
391
+ .theme-setting__tree-header {
392
+ padding: 0 12px;
393
+ height: 24px;
394
+ display: flex;
395
+ justify-content: space-between;
396
+ align-items: center;
397
+ >span {
398
+ font-weight: bold;
399
+ }
400
+ >i {
401
+ font-size: var(--epx-font-size-l);
402
+ color: #666;
403
+ cursor: pointer;
404
+ transition: all .3s;
405
+ }
406
+ }
407
+ .theme-setting__tree-content {
408
+
409
+ :deep(.el-select),
410
+ :deep(.epx-page-designer-setting-style__upload) {
411
+ width: 160px;
412
+ }
413
+
414
+ }
415
+ .theme-setting__mode-switch {
416
+ padding: 4px 12px 8px;
417
+ }
418
+ .theme-setting__device-switch {
419
+ padding: 10px 12px;
420
+ border-bottom: 1px solid #e3e3e3;
421
+ text-align: center;
422
+ }
423
+ .theme-setting__device-tip {
424
+ display: block;
425
+ margin-top: 6px;
426
+ font-size: 12px;
427
+ color: #999;
428
+ }
429
+ .theme-setting__palette {
430
+ padding: 6px 12px;
431
+ }
432
+ .theme-setting__palette-list {
433
+ display: flex;
434
+ flex-wrap: wrap;
435
+ align-items: center;
436
+ gap: 8px;
437
+ margin-top: 6px;
438
+ }
439
+ .theme-setting__palette-item {
440
+ position: relative;
441
+ &:hover .theme-setting__palette-remove {
442
+ display: block;
443
+ }
444
+ }
445
+ .theme-setting__palette-remove {
446
+ display: none;
447
+ position: absolute;
448
+ top: -6px;
449
+ right: -6px;
450
+ font-size: 12px;
451
+ color: #fff;
452
+ background: #909399;
453
+ border-radius: 50%;
454
+ cursor: pointer;
455
+ }
456
+ .theme-setting__palette-add {
457
+ width: 40px;
458
+ height: 40px;
459
+ padding: 0;
460
+ border-radius: 4px; // 方形,与取色块一致(去掉 circle 圆形)
461
+ font-size: 16px;
462
+ }
463
+ .theme-setting__css {
464
+ padding: 6px 12px;
465
+ .epx-page-designer-setting-style__label {
466
+ display: block;
467
+ width: auto; // 覆盖基础类的 90px,避免长标题被挤成多行
468
+ margin-bottom: 6px;
469
+ }
470
+ }
471
+ </style>
@@ -0,0 +1,102 @@
1
+ <template>
2
+ <div :class="{'epx-page-designer-setting-style__item': true, 'epx-page-designer-setting-style__item--unfold':unfold }">
3
+ <div class="epx-page-designer-setting-style__header">
4
+ <span>
5
+ <i class="epx-page-designer-setting-style__fold-icon el-icon-caret-right" @click="unfold=!unfold"></i>
6
+ <label class="epx-page-designer-setting-style__label" for="">{{label}}</label>
7
+ </span>
8
+ </div>
9
+ <div class="epx-page-designer-setting-style__content">
10
+ <div class="epx-page-designer-setting-style__subitem">
11
+ <label class="epx-page-designer-setting-style__label" for="">颜色</label>
12
+ <el-color-picker v-model="shadow.color" show-alpha :predefine="predefineColors"></el-color-picker>
13
+ </div>
14
+ <div class="epx-page-designer-setting-style__subitem">
15
+ <label class="epx-page-designer-setting-style__label" for="">水平偏移</label>
16
+ <el-input-number v-model="shadow.x" controls-position="right" size="small"></el-input-number>
17
+ </div>
18
+ <div class="epx-page-designer-setting-style__subitem">
19
+ <label class="epx-page-designer-setting-style__label" for="">垂直偏移</label>
20
+ <el-input-number v-model="shadow.y" controls-position="right" size="small"></el-input-number>
21
+ </div>
22
+ <div class="epx-page-designer-setting-style__subitem">
23
+ <label class="epx-page-designer-setting-style__label" for="">模糊</label>
24
+ <el-input-number v-model="shadow.blur" :min="0" controls-position="right" size="small"></el-input-number>
25
+ </div>
26
+ <div class="epx-page-designer-setting-style__subitem">
27
+ <label class="epx-page-designer-setting-style__label" for="">扩展</label>
28
+ <el-input-number v-model="shadow.spread" controls-position="right" size="small"></el-input-number>
29
+ </div>
30
+ <div class="epx-page-designer-setting-style__subitem">
31
+ <label class="epx-page-designer-setting-style__label" for="">内阴影</label>
32
+ <el-switch v-model="shadow.inset"></el-switch>
33
+ </div>
34
+ </div>
35
+ </div>
36
+ </template>
37
+ <script>
38
+ export default {
39
+ props: {
40
+ label: String,
41
+ value: Object
42
+ },
43
+ data () {
44
+ return {
45
+ unfold: false,
46
+ predefineColors: ['#ff4500', '#ff8c00', '#ffd700', '#90ee90', '#00ced1', '#1e90ff', '#c71585'],
47
+ shadow: { x: undefined, y: undefined, blur: undefined, spread: undefined, color: '', inset: false }
48
+ }
49
+ },
50
+ watch: {
51
+ shadow: {
52
+ handler () {
53
+ this.emitChange()
54
+ },
55
+ deep: true
56
+ }
57
+ },
58
+ methods: {
59
+ // 解析 box-shadow 字符串到结构化字段(容错:颜色用 rgba/hex 匹配,其余按 px 长度顺序取 x/y/blur/spread)
60
+ parse (value) {
61
+ const out = { x: undefined, y: undefined, blur: undefined, spread: undefined, color: '', inset: false }
62
+ const str = (value && value['box-shadow']) || ''
63
+ if (!str) return out
64
+ let s = String(str).trim()
65
+ if (/\binset\b/.test(s)) {
66
+ out.inset = true
67
+ s = s.replace(/\binset\b/, ' ')
68
+ }
69
+ const colorMatch = s.match(/rgba?\([^)]+\)|hsla?\([^)]+\)|#[0-9a-fA-F]{3,8}/)
70
+ if (colorMatch) {
71
+ out.color = colorMatch[0]
72
+ s = s.replace(colorMatch[0], ' ')
73
+ }
74
+ const nums = (s.match(/-?\d*\.?\d+/g) || []).map(Number)
75
+ out.x = nums[0]
76
+ out.y = nums[1]
77
+ out.blur = nums[2]
78
+ out.spread = nums[3]
79
+ return out
80
+ },
81
+ // 组合为 box-shadow 样式组;全空则发空对象(清除阴影)
82
+ emitChange () {
83
+ const { x, y, blur, spread, color, inset } = this.shadow
84
+ const isNum = v => typeof v === 'number' && !isNaN(v)
85
+ const hasLen = [x, y, blur, spread].some(isNum)
86
+ if (!hasLen && !color) {
87
+ this.$emit('change', {})
88
+ return
89
+ }
90
+ const px = v => `${isNum(v) ? v : 0}px`
91
+ const parts = []
92
+ if (inset) parts.push('inset')
93
+ parts.push(px(x), px(y), px(blur), px(spread))
94
+ if (color) parts.push(color)
95
+ this.$emit('change', { 'box-shadow': parts.join(' ') })
96
+ }
97
+ },
98
+ created () {
99
+ this.shadow = this.parse(this.value)
100
+ }
101
+ }
102
+ </script>
@@ -0,0 +1,93 @@
1
+ import VisualConfigPage from './VisualConfigPage.vue'
2
+ import ComponentList from './ComponentList.vue'
3
+ import ComponentLibrary from './ComponentLibrary.vue'
4
+ import ComponentLibraryDialog from './ComponentLibraryDialog.vue'
5
+ import JsPanel from '@epxing/business/src/components/JsPanel.vue'
6
+ import PagePreview from './PagePreview.vue'
7
+ import ConfigPanel from './ConfigPanel.vue'
8
+ // 数据看板预览
9
+ import Dashboard from './Dashboard.vue'
10
+ import DashboardDesign from './DashboardDesign.vue'
11
+ import DashboardGlobalConfig from './DashboardGlobalConfig.vue'
12
+ import DashboardSetting from './DashboardSetting.vue'
13
+ import DashboardMobile from './DashboardMobile.vue'
14
+
15
+ // 基础类型组件
16
+ import Chart from '@epxing/designer/src/visual/config/Chart'
17
+ import Color from '@epxing/designer/src/visual/config/Color'
18
+ import Event from '@epxing/designer/src/visual/config/Event'
19
+ import Field from '@epxing/designer/src/visual/config/Field'
20
+ import Font from '@epxing/designer/src/visual/config/Font'
21
+ import Html from '@epxing/designer/src/visual/config/Html'
22
+ import Image from '@epxing/designer/src/visual/config/Image'
23
+ import Input from '@epxing/designer/src/visual/config/Input'
24
+ import List from '@epxing/designer/src/visual/config/List'
25
+ import ListField from '@epxing/designer/src/visual/config/ListField'
26
+ import MField from '@epxing/designer/src/visual/config/MField'
27
+ import Number from '@epxing/designer/src/visual/config/Number'
28
+ import Object from '@epxing/designer/src/visual/config/Object'
29
+ import Operate from '@epxing/designer/src/visual/config/Operate'
30
+ import OrderField from '@epxing/designer/src/visual/config/OrderField'
31
+ import Page from '@epxing/designer/src/visual/config/Page'
32
+ import Params from '@epxing/designer/src/visual/config/Params'
33
+ import Radio from '@epxing/designer/src/visual/config/Radio'
34
+ import Row from '@epxing/designer/src/visual/config/Row'
35
+ import Scope from '@epxing/designer/src/visual/config/Scope'
36
+ import Select from '@epxing/designer/src/visual/config/Select'
37
+ import Switch from '@epxing/designer/src/visual/config/Switch'
38
+ import Textarea from '@epxing/designer/src/visual/config/Textarea'
39
+ import Tree from '@epxing/designer/src/visual/config/Tree'
40
+
41
+ VisualConfigPage.install = function install (Vue) {
42
+ Vue.component(VisualConfigPage.name, VisualConfigPage)
43
+ Vue.component(ComponentList.name, ComponentList)
44
+ Vue.component(ComponentLibrary.name, ComponentLibrary)
45
+ Vue.component(ComponentLibraryDialog.name, ComponentLibraryDialog)
46
+ Vue.component(JsPanel.name, JsPanel)
47
+ Vue.component(PagePreview.name, PagePreview)
48
+ Vue.component(ConfigPanel.name, ConfigPanel)
49
+ Vue.component(Dashboard.name, Dashboard)
50
+ Vue.component(DashboardDesign.name, DashboardDesign)
51
+ Vue.component(DashboardGlobalConfig.name, DashboardGlobalConfig)
52
+ Vue.component(DashboardSetting.name, DashboardSetting)
53
+ Vue.component(DashboardMobile.name, DashboardMobile)
54
+ Vue.component(Chart.name, Chart)
55
+ Vue.component(Color.name, Color)
56
+ Vue.component(Event.name, Event)
57
+ Vue.component(Field.name, Field)
58
+ Vue.component(Font.name, Font)
59
+ Vue.component(Html.name, Html)
60
+ Vue.component(Image.name, Image)
61
+ Vue.component(Input.name, Input)
62
+ Vue.component(List.name, List)
63
+ Vue.component(ListField.name, ListField)
64
+ Vue.component(MField.name, MField)
65
+ Vue.component(Number.name, Number)
66
+ Vue.component(Object.name, Object)
67
+ Vue.component(Operate.name, Operate)
68
+ Vue.component(OrderField.name, OrderField)
69
+ Vue.component(Page.name, Page)
70
+ Vue.component(Params.name, Params)
71
+ Vue.component(Radio.name, Radio)
72
+ Vue.component(Row.name, Row)
73
+ Vue.component(Scope.name, Scope)
74
+ Vue.component(Select.name, Select)
75
+ Vue.component(Switch.name, Switch)
76
+ Vue.component(Textarea.name, Textarea)
77
+ Vue.component(Tree.name, Tree)
78
+ }
79
+
80
+ export default VisualConfigPage
81
+
82
+ export {
83
+ ComponentList,
84
+ ComponentLibrary,
85
+ ComponentLibraryDialog,
86
+ JsPanel,
87
+ PagePreview,
88
+ ConfigPanel,
89
+ Dashboard,
90
+ DashboardDesign,
91
+ DashboardGlobalConfig,
92
+ DashboardMobile
93
+ }