simple-frame-unit 1.0.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 (260) hide show
  1. package/.env.dev +14 -0
  2. package/CHANGELOG.md +9 -0
  3. package/README.md +24 -0
  4. package/dist/ed-frame-vue.common.1.js +11046 -0
  5. package/dist/ed-frame-vue.common.1.js.map +1 -0
  6. package/dist/ed-frame-vue.common.2.js +1715 -0
  7. package/dist/ed-frame-vue.common.2.js.map +1 -0
  8. package/dist/ed-frame-vue.common.js +53427 -0
  9. package/dist/ed-frame-vue.common.js.map +1 -0
  10. package/dist/ed-frame-vue.umd.1.js +11046 -0
  11. package/dist/ed-frame-vue.umd.1.js.map +1 -0
  12. package/dist/ed-frame-vue.umd.2.js +1715 -0
  13. package/dist/ed-frame-vue.umd.2.js.map +1 -0
  14. package/dist/ed-frame-vue.umd.js +53437 -0
  15. package/dist/ed-frame-vue.umd.js.map +1 -0
  16. package/dist/ed-frame-vue.umd.min.1.js +17 -0
  17. package/dist/ed-frame-vue.umd.min.1.js.map +1 -0
  18. package/dist/ed-frame-vue.umd.min.2.js +4 -0
  19. package/dist/ed-frame-vue.umd.min.2.js.map +1 -0
  20. package/dist/ed-frame-vue.umd.min.js +470 -0
  21. package/dist/ed-frame-vue.umd.min.js.map +1 -0
  22. package/import.easydata.js +46 -0
  23. package/lib/CHANGELOG.md +18 -0
  24. package/lib/README.md +27 -0
  25. package/lib/api/ds/index.js +124 -0
  26. package/lib/api/easyData.js +90 -0
  27. package/lib/api/easyform/easyForm.js +32 -0
  28. package/lib/api/index.js +61 -0
  29. package/lib/api/interface/index.js +32 -0
  30. package/lib/api/system.js +20 -0
  31. package/lib/index.js +80 -0
  32. package/lib/packages/BasicTemplate/EasyDataTemplate.vue +189 -0
  33. package/lib/packages/BasicTemplate/Props.js +64 -0
  34. package/lib/packages/BasicTemplate/components/TemplateComp.vue +263 -0
  35. package/lib/packages/BasicTemplate/components/TemplateViews.vue +292 -0
  36. package/lib/packages/BasicTemplate/hooks/business.js +74 -0
  37. package/lib/packages/BasicTemplate/hooks/getFormData.js +89 -0
  38. package/lib/packages/BasicTemplate/hooks/queryFormData.js +194 -0
  39. package/lib/packages/BasicTemplate/hooks/submitForm.js +53 -0
  40. package/lib/packages/BasicTemplate/hooks/useEmits.js +15 -0
  41. package/lib/packages/BasicTemplate/hooks/validate.js +42 -0
  42. package/lib/packages/EasyDataForm/EasyDataForm.vue +597 -0
  43. package/lib/packages/EasyDataForm/Props.js +22 -0
  44. package/lib/packages/EasyDataForm/components/FormItem.vue +228 -0
  45. package/lib/packages/EasyDataForm/hooks/useChosePopup.js +85 -0
  46. package/lib/packages/EasyDataForm/hooks/useEmits.js +19 -0
  47. package/lib/packages/EasyDataForm/hooks/useForm.js +169 -0
  48. package/lib/packages/EasyDataForm/hooks/useUpload.js +168 -0
  49. package/lib/packages/EasyDataList/EasyDataList.vue +348 -0
  50. package/lib/packages/EasyDataList/Props.js +116 -0
  51. package/lib/packages/EasyDataList/components/BasicModal.vue +150 -0
  52. package/lib/packages/EasyDataList/components/FormAction.vue +63 -0
  53. package/lib/packages/EasyDataList/hooks/useEmits.js +30 -0
  54. package/lib/packages/EasyDataList/hooks/useForm.js +62 -0
  55. package/lib/packages/EasyDataList/hooks/useTable.js +314 -0
  56. package/lib/packages/EasyDataTable/EasyDataTable.vue +233 -0
  57. package/lib/packages/EasyDataView/EasyDataView.vue +105 -0
  58. package/lib/packages/EdRichPreview/index.js +32 -0
  59. package/lib/packages/EdRichText/index.vue +167 -0
  60. package/lib/packages/EdRichText/replaceUrl.js +49 -0
  61. package/lib/packages/components/FileView.vue +97 -0
  62. package/lib/packages/index.js +11 -0
  63. package/lib/packages/mixins/EasyDataMixins.js +133 -0
  64. package/lib/packages/mixins/useTable.jsx +130 -0
  65. package/lib/pages/DataSource/index.js +8 -0
  66. package/lib/pages/DataSource/src/components/ControlViews/BaseProps.js +103 -0
  67. package/lib/pages/DataSource/src/components/ControlViews/control.js +1089 -0
  68. package/lib/pages/DataSource/src/components/ControlViews/index.vue +301 -0
  69. package/lib/pages/DataSource/src/components/TableOperationModal.vue +225 -0
  70. package/lib/pages/DataSource/src/components/TablePropsModal.vue +367 -0
  71. package/lib/pages/DataSource/src/components/ViewPropsModal.vue +737 -0
  72. package/lib/pages/DataSource/src/components/modal/ChooseDict.vue +119 -0
  73. package/lib/pages/DataSource/src/hooks/useTable.js +138 -0
  74. package/lib/pages/DataSource/src/index.vue +431 -0
  75. package/lib/pages/Interface/index.js +8 -0
  76. package/lib/pages/Interface/src/components/InterfaceCall.vue +73 -0
  77. package/lib/pages/Interface/src/components/InterfaceDepend.vue +299 -0
  78. package/lib/pages/Interface/src/components/InterfaceFee.vue +131 -0
  79. package/lib/pages/Interface/src/components/InterfaceMessage.vue +878 -0
  80. package/lib/pages/Interface/src/components/InterfaceMock.vue +203 -0
  81. package/lib/pages/Interface/src/components/InterfaceParam.vue +308 -0
  82. package/lib/pages/Interface/src/components/InterfaceRepeat.vue +281 -0
  83. package/lib/pages/Interface/src/components/InterfaceVariable.vue +31 -0
  84. package/lib/pages/Interface/src/index.vue +216 -0
  85. package/lib/pages/Template/index.js +8 -0
  86. package/lib/pages/Template/src/components/DefineModal.vue +524 -0
  87. package/lib/pages/Template/src/components/TemplatePreview.vue +109 -0
  88. package/lib/pages/Template/src/components/model/AddDialog.vue +60 -0
  89. package/lib/pages/Template/src/components/model/TemplatePreview2.vue +101 -0
  90. package/lib/pages/Template/src/hooks/index.js +3 -0
  91. package/lib/pages/Template/src/hooks/useEmits.js +64 -0
  92. package/lib/pages/Template/src/index.vue +124 -0
  93. package/lib/popup/index.js +8 -0
  94. package/lib/popup/src/DataSourceChoose.vue +44 -0
  95. package/lib/popup/src/DataSourceViewIdChoose.vue +67 -0
  96. package/lib/popup/src/DictChoose.vue +104 -0
  97. package/lib/popup/src/InterfaceChoose.vue +46 -0
  98. package/lib/popup/src/OrgChoose.vue +121 -0
  99. package/lib/popup/src/RoleChoose.vue +101 -0
  100. package/lib/popup/src/TemplateChoose.vue +43 -0
  101. package/lib/popup/src/UserChoose.vue +161 -0
  102. package/lib/popup//347/273/204/344/273/266/345/274/200/345/217/221/350/247/204/350/214/203.md +25 -0
  103. package/lib/style/custom.scss +126 -0
  104. package/lib/style/deep.scss +109 -0
  105. package/lib/style/index.scss +4 -0
  106. package/lib/utils/MapLoader.js +48 -0
  107. package/lib/utils/dateUtils.js +58 -0
  108. package/lib/utils/index.js +8 -0
  109. package/lib/utils/setting.js +25 -0
  110. package/lib/utils/sortable/index.js +3784 -0
  111. package/lib/utils/useBusiness.js +212 -0
  112. package/lib/utils/utils.js +588 -0
  113. package/package.json +77 -0
  114. package/src/App.vue +12 -0
  115. package/src/assets/Vue.png +0 -0
  116. package/src/assets/avatar.png +0 -0
  117. package/src/assets/images/bg.png +0 -0
  118. package/src/assets/images/logo-bills.png +0 -0
  119. package/src/assets/images/pic.png +0 -0
  120. package/src/assets/images/weplus-logo.png +0 -0
  121. package/src/assets/marker.png +0 -0
  122. package/src/assets/styles/common.scss +359 -0
  123. package/src/assets/styles/ele-docs.css +3278 -0
  124. package/src/assets/styles/fonts/icomoon.eot +0 -0
  125. package/src/assets/styles/fonts/icomoon.svg +14 -0
  126. package/src/assets/styles/fonts/icomoon.ttf +0 -0
  127. package/src/assets/styles/fonts/icomoon.woff +0 -0
  128. package/src/assets/styles/fonts/style.css +39 -0
  129. package/src/assets/styles/higtlightEle.css +84 -0
  130. package/src/assets/svg/code.svg +7 -0
  131. package/src/assets/svg/password.svg +1 -0
  132. package/src/components/Popups/DiyCompDictChoose.vue +112 -0
  133. package/src/components/Popups/index.js +28 -0
  134. package/src/components/ed-base-vue/global/variable.js +8 -0
  135. package/src/components/ed-base-vue/index.js +81 -0
  136. package/src/components/ed-base-vue/package/EdCard/index.js +7 -0
  137. package/src/components/ed-base-vue/package/EdCard/src/index.vue +87 -0
  138. package/src/components/ed-base-vue/package/EdCodeEditor/index.js +8 -0
  139. package/src/components/ed-base-vue/package/EdCodeEditor/src/AceEditor/AceConfig.js +71 -0
  140. package/src/components/ed-base-vue/package/EdCodeEditor/src/AceEditor/Editor.vue +137 -0
  141. package/src/components/ed-base-vue/package/EdCodeEditor/src/AceEditor/Toolbar.vue +68 -0
  142. package/src/components/ed-base-vue/package/EdCodeEditor/src/AceEditor/index.vue +119 -0
  143. package/src/components/ed-base-vue/package/EdCodeEditor/src/AceEditor/webpack-resolver.js +51 -0
  144. package/src/components/ed-base-vue/package/EdCodeEditor/src/Codemirror/Toolbar.vue +57 -0
  145. package/src/components/ed-base-vue/package/EdCodeEditor/src/Codemirror/config.js +64 -0
  146. package/src/components/ed-base-vue/package/EdCodeEditor/src/Codemirror/index.vue +309 -0
  147. package/src/components/ed-base-vue/package/EdCodeEditor/src/EdCodeEditor.vue +238 -0
  148. package/src/components/ed-base-vue/package/EdDate/index.js +8 -0
  149. package/src/components/ed-base-vue/package/EdDate/src/index.js +50 -0
  150. package/src/components/ed-base-vue/package/EdDescriptions/index.js +8 -0
  151. package/src/components/ed-base-vue/package/EdDescriptions/src/EdDescriptions.vue +46 -0
  152. package/src/components/ed-base-vue/package/EdDescriptions/src/EdDescriptionsItem.js +20 -0
  153. package/src/components/ed-base-vue/package/EdDescriptions/src/Props.js +20 -0
  154. package/src/components/ed-base-vue/package/EdDialog/index.js +8 -0
  155. package/src/components/ed-base-vue/package/EdDialog/src/EdDialog.vue +138 -0
  156. package/src/components/ed-base-vue/package/EdDialog/src/Props.js +91 -0
  157. package/src/components/ed-base-vue/package/EdDialog/src/components/DialogFooter.vue +42 -0
  158. package/src/components/ed-base-vue/package/EdDialog/src/components/DialogWrapper.vue +53 -0
  159. package/src/components/ed-base-vue/package/EdDrawer/index.js +8 -0
  160. package/src/components/ed-base-vue/package/EdDrawer/src/DrawerFooter.vue +41 -0
  161. package/src/components/ed-base-vue/package/EdDrawer/src/EdDrawer.vue +150 -0
  162. package/src/components/ed-base-vue/package/EdDrawer/src/props.js +71 -0
  163. package/src/components/ed-base-vue/package/EdFlow/index.js +8 -0
  164. package/src/components/ed-base-vue/package/EdFlow/src/EdFlowItem.vue +733 -0
  165. package/src/components/ed-base-vue/package/EdFlow/src/index.vue +148 -0
  166. package/src/components/ed-base-vue/package/EdForm/index.js +8 -0
  167. package/src/components/ed-base-vue/package/EdForm/src/EdForm.vue +172 -0
  168. package/src/components/ed-base-vue/package/EdForm/src/Props.js +33 -0
  169. package/src/components/ed-base-vue/package/EdForm/src/components/EdFormItem.vue +34 -0
  170. package/src/components/ed-base-vue/package/EdIcons/index.js +8 -0
  171. package/src/components/ed-base-vue/package/EdIcons/src/hooks/Icons.js +406 -0
  172. package/src/components/ed-base-vue/package/EdIcons/src/hooks/Icons1.js +830 -0
  173. package/src/components/ed-base-vue/package/EdIcons/src/index.vue +13 -0
  174. package/src/components/ed-base-vue/package/EdImage/index.js +8 -0
  175. package/src/components/ed-base-vue/package/EdImage/src/index.vue +28 -0
  176. package/src/components/ed-base-vue/package/EdInputArray/index.js +8 -0
  177. package/src/components/ed-base-vue/package/EdInputArray/src/Props.js +26 -0
  178. package/src/components/ed-base-vue/package/EdInputArray/src/index.vue +97 -0
  179. package/src/components/ed-base-vue/package/EdInputColor/index.js +8 -0
  180. package/src/components/ed-base-vue/package/EdInputColor/src/InputColor.vue +81 -0
  181. package/src/components/ed-base-vue/package/EdInputMap/index.js +9 -0
  182. package/src/components/ed-base-vue/package/EdInputMap/src/EdInputMap.vue +246 -0
  183. package/src/components/ed-base-vue/package/EdInputMap/src/EdInputMapProps.js +6 -0
  184. package/src/components/ed-base-vue/package/EdInputPop/index.js +13 -0
  185. package/src/components/ed-base-vue/package/EdInputPop/src/EdInputPop.vue +144 -0
  186. package/src/components/ed-base-vue/package/EdInputPop/src/Props.js +48 -0
  187. package/src/components/ed-base-vue/package/EdInputTable/index.js +8 -0
  188. package/src/components/ed-base-vue/package/EdInputTable/src/EdInputTable.vue +368 -0
  189. package/src/components/ed-base-vue/package/EdInputTable/src/Fetch.js +40 -0
  190. package/src/components/ed-base-vue/package/EdJsonEditor/index.js +13 -0
  191. package/src/components/ed-base-vue/package/EdJsonEditor/src/EdJsonEditor.vue +198 -0
  192. package/src/components/ed-base-vue/package/EdJsonEditor/src/assets/img/jsoneditor-icons.svg +749 -0
  193. package/src/components/ed-base-vue/package/EdJsonEditor/src/assets/jsoneditor.css +2031 -0
  194. package/src/components/ed-base-vue/package/EdJsonEditor/src/assets/plus.svg +1 -0
  195. package/src/components/ed-base-vue/package/EdJsonEditor/src/hooks.js +63 -0
  196. package/src/components/ed-base-vue/package/EdJsonViewer/index.js +8 -0
  197. package/src/components/ed-base-vue/package/EdJsonViewer/src/EdJsonViewer.vue +44 -0
  198. package/src/components/ed-base-vue/package/EdLable/index.js +8 -0
  199. package/src/components/ed-base-vue/package/EdLable/src/index.vue +34 -0
  200. package/src/components/ed-base-vue/package/EdLink/index.js +8 -0
  201. package/src/components/ed-base-vue/package/EdLink/src/index.vue +43 -0
  202. package/src/components/ed-base-vue/package/EdMarkEditor/index.js +15 -0
  203. package/src/components/ed-base-vue/package/EdMarkEditor/src/EdMarkEditor.vue +368 -0
  204. package/src/components/ed-base-vue/package/EdMarkEditor/src/extra-function.js +538 -0
  205. package/src/components/ed-base-vue/package/EdMarkEditor/src/highlight.js +95 -0
  206. package/src/components/ed-base-vue/package/EdTable/index.js +8 -0
  207. package/src/components/ed-base-vue/package/EdTable/src/EdTable.vue +240 -0
  208. package/src/components/ed-base-vue/package/EdTable/src/Props.js +97 -0
  209. package/src/components/ed-base-vue/package/EdTable/src/components/TableColumnItem.js +24 -0
  210. package/src/components/ed-base-vue/package/EdTable/src/components/TablePagination.vue +73 -0
  211. package/src/components/ed-base-vue/package/EdTableEditor/index.js +8 -0
  212. package/src/components/ed-base-vue/package/EdTableEditor/src/EdTableEditor.vue +282 -0
  213. package/src/components/ed-base-vue/package/EdTableEditor/src/Props.js +107 -0
  214. package/src/components/ed-base-vue/package/EdTableEditor/src/hooks/validate.js +90 -0
  215. package/src/components/ed-base-vue/package/EdUpload/index.js +8 -0
  216. package/src/components/ed-base-vue/package/EdUpload/src/Props.js +90 -0
  217. package/src/components/ed-base-vue/package/EdUpload/src/index.vue +88 -0
  218. package/src/components/ed-base-vue/package/EdViewer/index.js +8 -0
  219. package/src/components/ed-base-vue/package/EdViewer/src/EdViewer.vue +310 -0
  220. package/src/components/ed-base-vue/package/EdWangEditor/index.js +14 -0
  221. package/src/components/ed-base-vue/package/EdWangEditor/src/EdWangEditor.vue +127 -0
  222. package/src/components/ed-base-vue/package/ExtendSlot.js +12 -0
  223. package/src/components/ed-base-vue/package/OptionSlot.js +65 -0
  224. package/src/components/ed-base-vue/plugin/Message/index.js +2 -0
  225. package/src/components/ed-base-vue/plugin/Message/src/main.js +91 -0
  226. package/src/components/ed-base-vue/plugin/Message/src/main.vue +253 -0
  227. package/src/components/ed-base-vue/plugin/print/index.js +156 -0
  228. package/src/components/ed-base-vue/plugin/sortable/index.js +3784 -0
  229. package/src/components/ed-base-vue/style/custom.scss +107 -0
  230. package/src/components/ed-base-vue/style/deep.scss +100 -0
  231. package/src/components/ed-base-vue/style/index.scss +4 -0
  232. package/src/components/ed-base-vue/tools/date-format.js +315 -0
  233. package/src/components/ed-base-vue/tools/utils.js +124 -0
  234. package/src/layouts/components/AppMain.vue +17 -0
  235. package/src/layouts/components/Header.vue +256 -0
  236. package/src/layouts/components/Logo.vue +56 -0
  237. package/src/layouts/components/Navbar.vue +169 -0
  238. package/src/layouts/components/SideBar.vue +107 -0
  239. package/src/layouts/components/index.js +5 -0
  240. package/src/layouts/index.vue +57 -0
  241. package/src/main.js +42 -0
  242. package/src/request/config.js +6 -0
  243. package/src/request/index.js +85 -0
  244. package/src/request/request.js +147 -0
  245. package/src/router/index.js +65 -0
  246. package/src/router/modules/baseRouter.js +43 -0
  247. package/src/router/modules/easydata.js +49 -0
  248. package/src/views/base/BaseRichPreview.vue +23 -0
  249. package/src/views/base/BaseRichText.vue +28 -0
  250. package/src/views/base/EdFormView.vue +54 -0
  251. package/src/views/base/EdTable.vue +98 -0
  252. package/src/views/base/inputTable.vue +103 -0
  253. package/src/views/easydata/Interface.vue +3 -0
  254. package/src/views/easydata/dataSource.vue +13 -0
  255. package/src/views/easydata/dataSourceView.vue +71 -0
  256. package/src/views/easydata/templateDemo.vue +89 -0
  257. package/src/views/easydata/templateInfo.vue +13 -0
  258. package/src/views/index.vue +17 -0
  259. package/src/views/login.vue +208 -0
  260. package/src/views/redirect.vue +15 -0
@@ -0,0 +1,524 @@
1
+ <template>
2
+ <span class="pages">
3
+ <ed-dialog :close-on-press-escape="false" :destroy-on-close="true" :fullscreen="true"
4
+ :visible.sync="dialogVisible" class="easy-dialog">
5
+ <template slot="title">
6
+ <div class="es-dialog--operate">
7
+ <span @click="updateRightProp('global')">{{ title }}</span>
8
+ <div>
9
+ <el-button :loading="loading" size="mini" type="primary" @click="preview">预览</el-button>
10
+ <el-button :loading="loading" size="mini" @click="loadData">刷新</el-button>
11
+ </div>
12
+ </div>
13
+ </template>
14
+ <el-row :gutter="10" class="es-row">
15
+ <el-col :span="5" class="es-row--col">
16
+ <el-card class="es-box-card" style="overflow:auto">
17
+ <div slot="header" class="es-box-card--header">
18
+ <div>模板定义</div>
19
+ <div>
20
+ <el-button type="text" @click="addOneModule"><i class="el-icon-plus"/>新增一级模块</el-button>
21
+ </div>
22
+ </div>
23
+ <el-card v-for="(module, index) in oneModules" :key="module.id"
24
+ :class="['view-list-card', { active: oneModuleActive == index }]"
25
+ shadow="never"
26
+ @click.native="clickOneModule(module, index)">
27
+ <span> {{
28
+ module.moduleCode ? `${module.moduleName}【${module.moduleCode}】` : module.moduleName
29
+ }}</span>
30
+ <span style="float: right;">
31
+ <i v-show="index < oneModules.length - 1" class="el-icon-bottom icon"
32
+ @click.stop="downModule(module, index, 'one')"/>
33
+ <i v-show="index > 0" class="el-icon-top icon"
34
+ @click.stop="upModule(module, index, 'one')"/>
35
+ <i class="el-icon-edit icon" @click.stop="editModule(module, index, 'one')"/>
36
+ <el-popconfirm :title="`确定删除一级模块【${module.moduleName}】吗?`"
37
+ @confirm="deleteModule(module, index, 'one')">
38
+ <i slot="reference" class="el-icon-delete icon"/>
39
+ </el-popconfirm>
40
+ </span>
41
+ </el-card>
42
+ </el-card>
43
+ </el-col>
44
+ <el-col :span="14" class="es-row--col">
45
+ <el-card v-if="oneModuleActive >= 0 && oneModules.length > oneModuleActive" class="es-box-card"
46
+ style="overflow:auto">
47
+ <div slot="header" class="es-box-card--header">
48
+ <div>{{ oneModules[oneModuleActive].moduleName }}-二级模块</div>
49
+ <div>
50
+ <el-button type="text" @click="addTwoModule"><i class="el-icon-plus"/>新增二级模块</el-button>
51
+ </div>
52
+ </div>
53
+ <el-card v-for="(twoModule, index) in oneModules[oneModuleActive]?.twoModules"
54
+ :key="twoModule.id"
55
+ class="el-card-margin" shadow="never" @click.native="clickTwoModule(twoModule, index)">
56
+ <div slot="header" class="clearfix">
57
+ <span> {{
58
+ twoModule?.moduleCode ? `${twoModule?.moduleName}【${twoModule?.moduleCode}】` :
59
+ twoModule?.moduleName
60
+ }}</span>
61
+ <span style="float: right;">
62
+ <i v-show="index < oneModules[oneModuleActive]?.twoModules?.length - 1"
63
+ class="el-icon-bottom icon"
64
+ @click.stop="downModule(twoModule, index)"/>
65
+ <i v-show="index > 0" class="el-icon-top icon"
66
+ @click.stop="upModule(twoModule, index)"/>
67
+ <i class="el-icon-edit icon" @click.stop="editModule(twoModule, index, 'two')"/>
68
+ <el-popconfirm :title="`确定删除二级模块【${twoModule.moduleName}】吗?`"
69
+ @confirm="deleteModule(twoModule, index)">
70
+ <i slot="reference" class="el-icon-delete icon"/>
71
+ </el-popconfirm>
72
+ </span>
73
+ </div>
74
+ <easy-data-view v-if="oneModuleActive >= 0" ref="TwoBasicDescribe"
75
+ :column="3" :dataSourceName="twoForm.dataSourceName"
76
+ :formData="{keyInfoView: twoModule}" :moduleProp="{showNull: false}">
77
+ <template v-slot:passModule="{formData, column}">
78
+ {{ getOptionsLabel(formData, column) }}
79
+ </template>
80
+ </easy-data-view>
81
+ </el-card>
82
+ </el-card>
83
+ <el-card v-else class="es-box-card">
84
+ 请选择左侧一级模块
85
+ </el-card>
86
+ </el-col>
87
+ <el-col :span="5" class="es-row--col">
88
+ <el-card v-if="oneModuleActive >= 0" class="es-box-card" style="overflow:auto">
89
+ <el-collapse v-model="propActiveName" accordion>
90
+ <el-collapse-item name="global" title="全局属性">
91
+ <el-card class="es-box-card">
92
+ <EasyDataForm v-if="dialogVisible" ref="GlobalPropEasyDataList"
93
+ :dataSourceName="global.dataSourceName" :formData="global.formData"
94
+ :label-position="labelPosition"/>
95
+ </el-card>
96
+ </el-collapse-item>
97
+ <el-collapse-item name="oneProp" title="一级模块属性">
98
+ <el-card class="es-box-card">
99
+ <EasyDataForm
100
+ v-if="dialogVisible"
101
+ ref="OnePropEasyDataList" :dataSourceName="oneProp.dataSourceName"
102
+ :formData="oneProp.formData" :label-position="labelPosition"
103
+ labelWidth="120px"/>
104
+ </el-card>
105
+ </el-collapse-item>
106
+ <el-collapse-item name="twoProp" title="二级模块属性">
107
+ <el-card class="es-box-card">
108
+ <EasyDataForm v-if="dialogVisible" ref="TwoPropEasyDataList"
109
+ :dataSourceName="twoProp.dataSourceName" :formData="twoProp.formData"
110
+ :label-position="labelPosition"/>
111
+ </el-card>
112
+ </el-collapse-item>
113
+ </el-collapse>
114
+ </el-card>
115
+ </el-col>
116
+ </el-row>
117
+ <template slot="footer">
118
+ <el-button :loading="loading" size="small" type="primary" @click="save">保存</el-button>
119
+ <el-button :loading="loading" size="small" type="success" @click="saveAndClose">保存并关闭</el-button>
120
+ <el-button size="small" type="info" @click="close">关 闭</el-button>
121
+ </template>
122
+ </ed-dialog>
123
+
124
+ <AddDialog ref="oneAddModuleRef" :dataSourceName="oneForm.dataSourceName" @ok="saveNewOneModule">
125
+ </AddDialog>
126
+
127
+ <AddDialog ref="twoAddModuleRef" :dataSourceName="twoForm.dataSourceName" @ok="saveNewTwoModule">
128
+ </AddDialog>
129
+
130
+ <TemplatePreview ref="templatePreviewRef" :bizParamStr="templateModel?.moduleInfo?.keyInfoObject.biz_params"
131
+ :title="templateModel?.moduleInfo?.keyInfoObject.template_name"/>
132
+ </span>
133
+ </template>
134
+
135
+ <script>
136
+ import {randomUUID} from '../../../../utils/utils'
137
+ import AddDialog from './model/AddDialog'
138
+ import hooks from '../hooks'
139
+ import {initControls} from "../../../../api/easyData";
140
+ import {setFormData} from "../../../../utils/useBusiness";
141
+ import TemplatePreview from './model/TemplatePreview2';
142
+
143
+ export default {
144
+ name: 'DefineModal',
145
+ mixins: hooks,
146
+ components: {AddDialog, TemplatePreview},
147
+ data() {
148
+ return {
149
+ title: '模板定义-',
150
+ dialogVisible: false,
151
+ loading: false,
152
+ templateId: '',
153
+ //动态模版
154
+ templateModel: {},
155
+ //一级模块
156
+ oneModules: [],
157
+ oneModuleActive: -1,
158
+ twoModuleActive: -1,
159
+ labelPosition: 'right',
160
+ url: {
161
+ getModule: '/easydata/template/getModule',
162
+ saveModule: '/easydata/template/saveModule',
163
+ previewModule: '/easydata/template/getPreviewTemplate'
164
+ },
165
+
166
+ propActiveName: 'global',
167
+ //一级模块表单
168
+ oneForm: {
169
+ dataSourceName: "easy_template_module_one_form",
170
+ controlInfos: [],
171
+ title: '',
172
+ formData: {},
173
+ visible: false
174
+ },
175
+ //二级模块表单
176
+ twoForm: {
177
+ dataSourceName: "easy_template_module_form",
178
+ controlInfos: [],
179
+ formData: {},
180
+ title: '',
181
+ visible: false
182
+ },
183
+ //全局模版属性
184
+ global: {
185
+ dataSourceName: "easy_template_prop_form",
186
+ formData: {},
187
+ controlInfos: [],
188
+ },
189
+ //一级模块属性
190
+ oneProp: {
191
+ dataSourceName: "easy_template_module_prop_form",
192
+ formData: {},
193
+ controlInfos: []
194
+ },
195
+ //二级模块属性
196
+ twoProp: {
197
+ dataSourceName: "easy_template_module_prop_form_view",
198
+ formData: {},
199
+ controlConfig: null,
200
+ controlInfos: []
201
+ },
202
+ options: []
203
+ }
204
+ },
205
+ methods: {
206
+ async showModal(record) {
207
+ this.title = '模板定义-' + record.keyInfo.template_name
208
+ this.templateId = record.id
209
+ this.clear()
210
+ this.loadData()
211
+ await this.queryControlInfos();
212
+ this.dialogVisible = true
213
+ },
214
+ clear() {
215
+ this.templateModel = {}
216
+ this.oneModules = []
217
+ this.global.formData = {}
218
+ this.oneProp.formData = {}
219
+ this.twoProp.formData = {}
220
+ this.oneModuleActive = -1
221
+ this.twoModuleActive = -1
222
+ },
223
+ /**
224
+ * 查询各个数据源的配置信息
225
+ */
226
+ async queryControlInfos() {
227
+ const result1 = await initControls(this.oneForm.dataSourceName)
228
+ this.oneForm.controlInfos = result1?.data?.controlInfos
229
+ const result2 = await initControls(this.twoForm.dataSourceName)
230
+ this.twoForm.controlInfos = result2?.data?.controlInfos
231
+ const result3 = await initControls(this.oneProp.dataSourceName)
232
+ this.oneProp.controlInfos = result3?.data?.controlInfos
233
+ const result4 = await initControls(this.twoProp.dataSourceName)
234
+ this.twoProp.controlInfos = result4?.data?.controlInfos
235
+ },
236
+ async loadData() {
237
+ if (this.templateId) {
238
+ this.loading = true
239
+ const res = await this.$EdFrame.postAction(this.url.getModule, {id: this.templateId});
240
+ this.loading = false;
241
+ if (res && res.success && res.data) {
242
+ this.templateModel = res.data
243
+ this.global.formData = Object.assign({id: this.templateModel.template.id}, {key: this.templateModel.prop})
244
+ this.oneModules = res.data.oneModules
245
+ this.oneModuleActive = 0
246
+ this.updateRightProp("global");
247
+ if (this.oneModules.length > 0) {
248
+ let oneModule = this.oneModules[0]
249
+ this.clickOneModule(oneModule, 0)
250
+ if (oneModule.twoModules && oneModule.twoModules.length > 0) {
251
+ this.clickTwoModule(oneModule.twoModules[0], 0)
252
+ }
253
+ }
254
+ this.getOptions();
255
+ }
256
+ //查询一级模块、二级模块配置信息
257
+ }
258
+ },
259
+ //点击一级模块
260
+ async clickOneModule(item, index) {
261
+ this.oneModuleActive = index
262
+ await this.updateRightProp('oneProp')
263
+ },
264
+ //点击二级模块
265
+ clickTwoModule(item, index) {
266
+ this.twoModuleActive = index
267
+ this.updateRightProp('twoProp')
268
+ },
269
+ addOneModule() {
270
+ this.$refs.oneAddModuleRef.showModel({}, '新增一级模块')
271
+ },
272
+ addTwoModule() {
273
+ if (this.oneModuleActive >= 0 && this.oneModules.length > this.oneModuleActive) {
274
+ this.$refs.twoAddModuleRef.showModel({}, '新增二级模块')
275
+ } else {
276
+ this.$message.warning("请选择左侧一级模块")
277
+ }
278
+ },
279
+ /**
280
+ * 删除模块
281
+ * @param {*} module
282
+ * @param {*} index
283
+ */
284
+ deleteModule(module, index, type) {
285
+ if ('one' == type) {
286
+ this.oneModules.splice(index, 1)
287
+ } else {
288
+ let {twoModules} = this.oneModules[this.oneModuleActive]
289
+ twoModules.splice(index, 1)
290
+ this.$set(this.oneModules[this.oneModuleActive], 'twoModules', twoModules)
291
+ }
292
+ },
293
+ /**
294
+ * 下移模块
295
+ * @param {*} module
296
+ * @param {*} index
297
+ */
298
+ downModule(module, index, type) {
299
+ if ('one' == type) {
300
+ if (this.oneModules.length == index + 1) {
301
+ return;
302
+ }
303
+ if (this.oneModuleActive == index) {
304
+ this.oneModuleActive = index + 1
305
+ } else if (this.oneModuleActive == index + 1) {
306
+ this.oneModuleActive = index
307
+ }
308
+ this.oneModules.splice(index, 1)
309
+ this.oneModules.splice(index + 1, 0, module)
310
+ } else {
311
+ let {twoModules} = this.oneModules[this.oneModuleActive]
312
+ if (twoModules.length == index + 1) {
313
+ return;
314
+ }
315
+ twoModules.splice(index, 1)
316
+ twoModules.splice(index + 1, 0, module)
317
+ this.$set(this.oneModules[this.oneModuleActive], 'twoModules', twoModules)
318
+ }
319
+ },
320
+ /**
321
+ * 上移模块
322
+ * @param {*} module
323
+ * @param {*} index
324
+ */
325
+ upModule(module, index, type) {
326
+ if (index == 0) {
327
+ return;
328
+ }
329
+ if ('one' == type) {
330
+ if (this.oneModuleActive == index) {
331
+ this.oneModuleActive = index - 1
332
+ } else if (this.oneModuleActive == index - 1) {
333
+ this.oneModuleActive = index
334
+ }
335
+ this.oneModules.splice(index, 1)
336
+ this.oneModules.splice(index - 1, 0, module)
337
+ } else {
338
+ let {twoModules} = this.oneModules[this.oneModuleActive]
339
+ twoModules.splice(index, 1)
340
+ twoModules.splice(index - 1, 0, module)
341
+ this.$set(this.oneModules[this.oneModuleActive], 'twoModules', twoModules)
342
+ }
343
+ },
344
+ async editModule(module, index, type) {
345
+ let options = await this.getOptions();
346
+ this.$refs[type + 'AddModuleRef'].showModel(Object.assign({}, {
347
+ id: module.id,
348
+ key: module
349
+ }), `编辑${type === 'one' ? '一级' : '二级'}模块`, options)
350
+ },
351
+ getOptionsLabel(formData, column) {
352
+ let columnName = column ? column.prop.replace('keyInfoView.', '') : column
353
+ let itemValue = ""
354
+ if (columnName === 'passModule') {
355
+ itemValue = formData.passModule
356
+ return itemValue && itemValue.length && itemValue.map(checkedTree => {
357
+ let i = 0
358
+ let item = this.options.find(o => o.value == checkedTree[0])
359
+ while (item && item.children) {
360
+ i++
361
+ item = item.children.find(o => o.value == checkedTree[i])
362
+ }
363
+ return item ? item.label : checkedTree
364
+ }).join(",")
365
+ } else {
366
+ return itemValue
367
+ }
368
+ },
369
+ /** 实时加载模块传递的options */
370
+ async getOptions() {
371
+ let options = []
372
+ if (this.oneModules) {
373
+ let param = await this.getSaveData();
374
+ if (param.data && param.data.length > 0) {
375
+ options = param.data.map(oneModule => {
376
+ let children = []
377
+ if (oneModule.twoModules && oneModule.twoModules.length > 0) {
378
+ children = oneModule.twoModules.map(twoModule => {
379
+ return {
380
+ value: twoModule.id,
381
+ label: twoModule.moduleName
382
+ }
383
+ })
384
+ }
385
+ return {
386
+ value: oneModule.id,
387
+ label: oneModule.moduleName,
388
+ children: children
389
+ }
390
+ })
391
+ console.info("options", options, param.data)
392
+ this.options = options
393
+ }
394
+ }
395
+ return this.options;
396
+ },
397
+ /**
398
+ * 保存新增或修改的一级模块
399
+ */
400
+ async saveNewOneModule(record) {
401
+ if (record && record.key) {
402
+ let fromData = record.key
403
+ if (fromData.id) {
404
+ let updateIndex = this.oneModules.findIndex(e => {
405
+ if (e.id === fromData.id) {
406
+ return e
407
+ }
408
+ })
409
+ this.oneModules.splice(updateIndex, 1, fromData)
410
+ this.clickOneModule(fromData, updateIndex)
411
+ } else {
412
+ let newOneModule = {
413
+ id: randomUUID(),
414
+ twoModules: [],
415
+ ...fromData,
416
+ }
417
+ this.oneModules.push(newOneModule)
418
+ this.clickOneModule(newOneModule, this.oneModules.length - 1)
419
+ }
420
+ }
421
+ },
422
+ async saveNewTwoModule(record) {
423
+ if (this.oneModuleActive >= 0 && this.oneModules.length > this.oneModuleActive && record && record.key) {
424
+ let oneModule = this.oneModules[this.oneModuleActive]
425
+ let twoModules = this.oneModules[this.oneModuleActive].twoModules || []
426
+ let fromData = record.key
427
+ if (record.id) {
428
+ let updateIndex = twoModules.findIndex(e => {
429
+ if (e.id == fromData.id) {
430
+ return e
431
+ }
432
+ })
433
+ twoModules.splice(updateIndex, 1, fromData)
434
+ this.clickTwoModule(fromData, updateIndex)
435
+ } else {
436
+ let newTwoModule = {
437
+ id: randomUUID(),
438
+ prop: {},
439
+ ...fromData,
440
+ }
441
+ twoModules.push(newTwoModule)
442
+ this.clickTwoModule(newTwoModule, twoModules.length - 1)
443
+ }
444
+ this.$set(this.oneModules[this.oneModuleActive], 'twoModules', twoModules)
445
+ }
446
+ this.twoForm.visible = false
447
+ },
448
+ async saveAndClose() {
449
+ await this.save();
450
+ this.close();
451
+ },
452
+ close() {
453
+ this.clear()
454
+ this.dialogVisible = false
455
+ },
456
+ /** 预览 */
457
+ async preview() {
458
+ if (this.oneModules) {
459
+ let param = await this.getSaveData();
460
+ let res = await this.$EdFrame.postAction(this.url.previewModule, param)
461
+ let config = {
462
+ prop: res.data.prop,
463
+ modules: res.data.oneModules,
464
+ template: res.data.template,
465
+ moduleInfo: res.data.moduleInfo.keyInfoObject
466
+ }
467
+
468
+ console.info("previe!!!!!!!!!!w", res, param, this.templateModel)
469
+ this.$refs.templatePreviewRef.showModal(config);
470
+ } else {
471
+ this.$message.warning("请至少添加一个一级模块,一个二级模块")
472
+ }
473
+ },
474
+ async save() {
475
+ let param = await this.getSaveData();
476
+ try {
477
+ let res = await this.$EdFrame.postAction(this.url.saveModule, param);
478
+ if (res.success) {
479
+ this.$message.success(res.msg)
480
+ } else {
481
+ this.$message.error(res.msg)
482
+ }
483
+ } catch (error) {
484
+ this.$message.error(error)
485
+ }
486
+ },
487
+ async getSaveData() {
488
+ await this.recordRightProp()
489
+ let param = Object.assign({}, this.templateModel.template)
490
+ // 获取全局属性
491
+ const formData = await this.$refs.GlobalPropEasyDataList?.getFormData();
492
+ param.key = Object.assign({template_id: this.templateId}, formData?.key)
493
+ if (this.oneModules) {
494
+ param.data = this.oneModules.map(oneModule => {
495
+ let newOneModule = setFormData(Object.assign({id: oneModule.id}, {key: oneModule}), this.oneForm.controlInfos)
496
+ newOneModule.prop = setFormData(Object.assign({}, {key: oneModule.prop}), this.oneProp.controlInfos)
497
+ let {twoModules} = oneModule
498
+ if (twoModules) {
499
+ newOneModule.twoModules = twoModules.map(twoModule => {
500
+ let newTwoModule = setFormData(Object.assign({id: twoModule.id}, {key: twoModule}), this.twoForm.controlInfos)
501
+ newTwoModule.prop = setFormData(Object.assign({}, {key: twoModule.prop}), this.twoProp.controlInfos)
502
+ return newTwoModule
503
+ })
504
+ }
505
+ return newOneModule;
506
+ })
507
+ }
508
+ return param
509
+ }
510
+ }
511
+ }
512
+ </script>
513
+ <style lang="scss" scoped>
514
+ .icon {
515
+ margin: 0px 5px;
516
+ cursor: pointer;
517
+ }
518
+
519
+ .el-card-margin {
520
+ margin-bottom: 20px;
521
+ }
522
+
523
+ @import "../../../../style/index.scss";
524
+ </style>
@@ -0,0 +1,109 @@
1
+ <template>
2
+ <ed-dialog ref="TemplatePreview" v-loading="loading" :destroy-on-close="true" :fullscreen="true" :title="title"
3
+ :visible="visible"
4
+ @close="close">
5
+ <el-form v-if="showBizParams" ref="form" label-width="80px" size="mini">
6
+ <el-form-item v-for="(bizParam, index) in bizParamMaps" :key="index" :label="bizParam.label">
7
+ <el-input v-model="bizParam.value" @change="onChange"/>
8
+ </el-form-item>
9
+ <el-form-item>
10
+ <el-button type="primary" @click="onSubmit">查询</el-button>
11
+ <el-button type="primary" @click="templateEvents(1)">获取所有数据</el-button>
12
+ <el-button type="primary" @click="templateEvents(2)">校验所有模块</el-button>
13
+ <el-button @click="onReset">重置</el-button>
14
+ </el-form-item>
15
+ </el-form>
16
+ <EasyDataTemplate v-if="templateId" ref="TemplateView" :biz-params="bizParams" :templateId="templateId"
17
+ @loadOk="bizParamsOk"></EasyDataTemplate>
18
+ </ed-dialog>
19
+ </template>
20
+ <script>
21
+
22
+ export default {
23
+ name: "TemplatePreview",
24
+ props: {
25
+ showBizParams: {
26
+ type: Boolean,
27
+ default: true
28
+ },
29
+ title: {
30
+ type: String,
31
+ default: ''
32
+ }
33
+ },
34
+ data() {
35
+ return {
36
+ visible: false,
37
+ loading: false,
38
+ url: {
39
+ getTemplate: '/easydata/template/getModule'
40
+ },
41
+ templateId: null,
42
+ config: {},
43
+ bizParams: {},
44
+ bizParamMaps: []
45
+ }
46
+ },
47
+ methods: {
48
+ /**
49
+ * 根据模版编号查询加载
50
+ * @param {*} templateId
51
+ * @param config
52
+ */
53
+ showModal(templateId, config) {
54
+ this.templateId = templateId;
55
+ this.config = config
56
+ this.visible = true;
57
+ },
58
+ bizParamsOk() {
59
+ const bizParams = this.$refs.TemplateView.getBizParams();
60
+ Object.keys(bizParams).map((item) => {
61
+ let hasParam = this.bizParamMaps.filter(t => t.label === item);
62
+ if (hasParam.length === 0) {
63
+ this.bizParamMaps.push({label: item, value: bizParams[item]})
64
+ }
65
+ });
66
+ },
67
+ onChange() {
68
+
69
+
70
+ console.log(this.bizParams)
71
+ },
72
+ onSubmit() {
73
+ this.bizParamMaps.map(item => {
74
+ this.$set(this.bizParams, item.label, item.value)
75
+ })
76
+ },
77
+ async templateEvents(ev) {
78
+ if (ev === 1) {
79
+ let data = await this.$refs.TemplateView.getFormData()
80
+ console.log(data)
81
+ } else if (ev === 2) {
82
+ let valid = await this.$refs.TemplateView.validate()
83
+ console.log(valid)
84
+ }
85
+ },
86
+ onReset() {
87
+ this.bizParamMaps.map(item => {
88
+ item.value = ""
89
+ })
90
+ },
91
+ close() {
92
+ this.visible = false
93
+ this.bizParams = {}
94
+ this.bizParamMaps = []
95
+ }
96
+ }
97
+ }
98
+ </script>
99
+
100
+ <style scoped>
101
+ .my-label {
102
+ background: #E1F3D8;
103
+ }
104
+
105
+ .pages :deep(.el-dialog) {
106
+ max-width: 95% !important;
107
+ max-height: 98% !important;
108
+ }
109
+ </style>
@@ -0,0 +1,60 @@
1
+ <template>
2
+ <el-dialog :title="title" :visible.sync="visiable" center width="40%">
3
+ <easy-data-form v-if="visiable" ref="AddDialogEasyDataList" :dataSourceName="dataSourceName"
4
+ :formData="formModel" :label-position="labelPosition" labelWidth="120px">
5
+
6
+ <template v-slot:passModule="data">
7
+ <el-cascader
8
+ v-model="data.model.passModule"
9
+ :options="options"
10
+ :props="{ multiple: true }"
11
+ :show-all-levels="false"
12
+ clearable
13
+ @change="changePassModule($event, data)"></el-cascader>
14
+ </template>
15
+ </easy-data-form>
16
+ <span slot="footer" class="dialog-footer">
17
+ <el-button @click="visiable = false">取 消</el-button>
18
+ <el-button type="primary" @click="save">确 定</el-button>
19
+ </span>
20
+ </el-dialog>
21
+ </template>
22
+ <script>
23
+
24
+ export default {
25
+ props: {
26
+ dataSourceName: {
27
+ type: String,
28
+ default: null
29
+ },
30
+ labelPosition: {
31
+ type: String,
32
+ default: 'right'
33
+ }
34
+ },
35
+ data() {
36
+ return {
37
+ //新增一级模块
38
+ visiable: false,
39
+ formModel: {},
40
+ title: '',
41
+ options: []
42
+ }
43
+ },
44
+ methods: {
45
+ showModel(formModel, title, options) {
46
+ this.title = title
47
+ this.formModel = formModel
48
+ this.options = options
49
+ this.visiable = true
50
+ },
51
+ async save() {
52
+ const formData = await this.$refs.AddDialogEasyDataList.getFormData(true, true);
53
+ this.$emit('ok', formData)
54
+ this.visiable = false
55
+ },
56
+ changePassModule(value, data) {
57
+ },
58
+ }
59
+ }
60
+ </script>