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,189 @@
1
+ <template>
2
+ <template-view
3
+ ref="TemplateView"
4
+ v-loading="loading"
5
+ :bizParams="viewBizParams"
6
+ :config="config"
7
+ :extraParams="extraParams"
8
+ :formData="formData"
9
+ :readOnly="readOnly"
10
+ v-on="bindEvents()"/>
11
+ </template>
12
+
13
+ <script>
14
+ import Props from './Props'
15
+ import TemplateView from "./components/TemplateViews";
16
+ import {getVarType} from "../../utils/utils";
17
+
18
+ /**
19
+ * 基础模板组件
20
+ * - 示例
21
+ *
22
+ * ```vue
23
+ * <easy-data-template ::biz-params="bizParams" :templateId="templateId" @loadOk="bizParamsOk">
24
+ * </easy-data-template>
25
+ * ```
26
+ * 详细用法参考下方链接
27
+ *
28
+ * [EasyDataTemplate组件使用示例](./web-comp/ExampleEasyDataTemplateCode.md)
29
+ *
30
+ * [](./EasyDataTemplateProps.md ':include')
31
+ */
32
+ export default {
33
+ name: "EasyDataTemplate",
34
+ components: {TemplateView},
35
+ props: Props,
36
+ data() {
37
+ return {
38
+ loading: true,
39
+ getTemplateUrl: '/easydata/template/getModule',
40
+ config: {},
41
+ viewBizParams: {}
42
+ }
43
+ },
44
+ watch: {
45
+ templateId: {
46
+ immediate: true,
47
+ handler: function (newVal, oldVal) {
48
+ if (newVal && newVal !== oldVal) {
49
+ this.getTemplate()
50
+ }
51
+ }
52
+ },
53
+ templateConfig: {
54
+ deep: true,
55
+ immediate: true,
56
+ handler: function (newVal, oldVal) {
57
+ if (newVal && newVal !== oldVal && getVarType(newVal.prop) !== "string") {
58
+ this.config = newVal
59
+ this.$nextTick(() => {
60
+ this.initBizParam()
61
+ })
62
+ }
63
+ }
64
+ },
65
+ bizParams: {
66
+ deep: true,
67
+ immediate: true,
68
+ handler: function (newVal, oldVal) {
69
+ if (newVal && Object.keys(this.config).length > 0) {
70
+ this.initBizParam()
71
+ }
72
+ }
73
+ },
74
+ },
75
+
76
+ methods: {
77
+ /**
78
+ * @private
79
+ * @returns {{} & Record<string, Function | Function[]>}
80
+ */
81
+ bindEvents() {
82
+ let events = Object.assign({}, this.$listeners);
83
+ events.loadOk = this.loadOk
84
+ return events
85
+ },
86
+
87
+ /**
88
+ * @private
89
+ * @name getTemplate
90
+ * @return {Promise<void>}
91
+ */
92
+ async getTemplate() {
93
+ try {
94
+ const res = await this.$EdFrame.postAction(this.getTemplateUrl, {id: this.templateId})
95
+ if (res.success) {
96
+ let modules = res.data.oneModules.filter(oneModule => {
97
+ return oneModule.prop ? getVarType(oneModule.prop.isHidden) === 'boolean' ? oneModule.prop.isHidden : true : true
98
+ })
99
+ this.config = {
100
+ prop: res.data.prop,
101
+ modules: modules,
102
+ template: res.data.template,
103
+ moduleInfo: res.data.moduleInfo.keyInfoObject
104
+ }
105
+ this.initBizParam()
106
+ } else {
107
+ this.$message.error(res.message)
108
+ }
109
+ } catch (e) {
110
+ this.$message.error(e)
111
+ this.loading = false
112
+ }
113
+ },
114
+
115
+ /**
116
+ * @name initBizParam
117
+ * @return {Object|*[]}
118
+ * @description 初始化BizParams
119
+ */
120
+ initBizParam() {
121
+ if (this.bizParams && Object.keys(this.bizParams).length > 0) {
122
+ this.viewBizParams = this.bizParams
123
+ } else {
124
+ const {biz_params} = this.config.moduleInfo
125
+ if (biz_params && biz_params.length > 0) {
126
+ biz_params.split(',').map((bizParam) => {
127
+ this.$set(this.viewBizParams, bizParam, "")
128
+ })
129
+ }
130
+ }
131
+ },
132
+ queryData() {
133
+ this.$refs.TemplateView.queryModuleData()
134
+ },
135
+ /**
136
+ * 获取业务参数
137
+ * @returns {{}}
138
+ */
139
+ getBizParams() {
140
+ return this.viewBizParams
141
+ },
142
+
143
+ /**
144
+ * 重置数据
145
+ */
146
+ resetData() {
147
+ if (this.$refs.TemplateView) {
148
+ this.$refs.TemplateView.resetData()
149
+ }
150
+ },
151
+
152
+
153
+ /**
154
+ * @name loadOk
155
+ * @description 数据加载完成
156
+ */
157
+ loadOk() {
158
+ this.loading = false
159
+ this.$emit('loadOk')
160
+ },
161
+ /**
162
+ * 获取表单数据
163
+ * @return {*}
164
+ * @param id
165
+ */
166
+ getFormData(id) {
167
+ return this.$refs.TemplateView.getFormData(id)
168
+ },
169
+ /**
170
+ * 验证表单
171
+ * @name validate
172
+ * @return {Promise<void>}
173
+ */
174
+ async validate(id) {
175
+ return this.$refs.TemplateView.validate(id)
176
+ },
177
+ /**
178
+ * 获取超级提交时的请求url、提交参数
179
+ */
180
+ async getSubmitData(isValidate) {
181
+ return this.$refs.TemplateView._getSubmitData(isValidate)
182
+ }
183
+ }
184
+ }
185
+ </script>
186
+
187
+ <style lang="scss" scoped>
188
+ @import "../../style/index.scss";
189
+ </style>
@@ -0,0 +1,64 @@
1
+ /**
2
+ * EasyDataTemplate组件属性
3
+ */
4
+ export default {
5
+ // 模板ID
6
+ templateId: {type: String},
7
+
8
+ /**
9
+ *
10
+ * 模板配置信息
11
+ * @default { prop: '', modules: "", template: "", moduleInfo: "" }
12
+ *
13
+ */
14
+ templateConfig: {
15
+ type: Object,
16
+ default: () => {
17
+ return {
18
+ prop: '', // 模板属性
19
+ modules: "", // 一级模块列表
20
+ template: "", // 模块基础信息表
21
+ moduleInfo: "" // 模板配置信息详细表
22
+ }
23
+ }
24
+ },
25
+
26
+ /**
27
+ * 查询参数
28
+ * @default {}
29
+ */
30
+ bizParams: {type: Object, default: () => {}},
31
+
32
+ /**
33
+ * 额外参数
34
+ * @default {}
35
+ */
36
+ extraParams: {type: Object, default: () => {}},
37
+
38
+ /**
39
+ * 参数(查询参数,额外参数)
40
+ * @default { biz: {},extra: {}}
41
+ */
42
+ params: {
43
+ type: Object,
44
+ default: () => {
45
+ return {
46
+ // 业务查询参数
47
+ biz: {}, // 额外参数
48
+ extra: {}
49
+ }
50
+ }
51
+ },
52
+
53
+ /**
54
+ * 业务数据
55
+ * @default {}
56
+ */
57
+ formData: {type: Object},
58
+
59
+ /**
60
+ * 只读
61
+ * @default false
62
+ */
63
+ readOnly: {type: Boolean, default: false},
64
+ }
@@ -0,0 +1,263 @@
1
+ <template>
2
+ <div>
3
+ <el-card v-for="(module, index) in modules" :key="index" class="es-box-card">
4
+ <div slot="header" class="es-box-card--header">
5
+ <span>{{ module.moduleName }}</span>
6
+ <el-button v-if="module.dataFrom.value === 'fromInterface'" :loading="queryLoading(module.id)"
7
+ @click="callInterface(module)">
8
+ {{ module.interfaceButtonName || '获取数据' }}
9
+ </el-button>
10
+ </div>
11
+
12
+ <div class="es-card--content">
13
+ <component :is="components[index].component" :id="components[index].id"
14
+ :ref="components[index].ref"
15
+ v-bind="buildProps(module)"
16
+ v-on="$listeners"/>
17
+ </div>
18
+ </el-card>
19
+ </div>
20
+ </template>
21
+
22
+ <script lang="jsx">
23
+ import {packages} from '../../index'
24
+ import business from '../hooks/business'
25
+ import {TempType} from "../../../api/easyData";
26
+ import { getVarType } from '../../../utils/utils';
27
+
28
+ export default {
29
+ name: "TemplateView",
30
+ mixins: [business],
31
+ inject: ['_tempV'],
32
+ props: {
33
+ modules: {type: [Object, Array]},
34
+ oneModuleName: {type: String},
35
+ oneModuleId: {type: String},
36
+ current: {type: Number, default: 0},
37
+ saveData: {type: Object},
38
+ errorMessage: {type: Object},
39
+ bizParams: {type: Object},
40
+ formData: {type: Object} //外部传入的初始化数据
41
+ },
42
+ data() {
43
+ return {
44
+ components: [],
45
+ showSubmit: true,
46
+ btnLoading: false
47
+ }
48
+ },
49
+ watch: {
50
+ modules: {
51
+ handler(newVal, oldVal) {
52
+ if (newVal && newVal !== oldVal) {
53
+ this.loadComponents()
54
+ this.clickInterfaceData()
55
+ }
56
+ },
57
+ deep: true,
58
+ immediate: true
59
+ },
60
+ },
61
+ methods: {
62
+ /**
63
+ * 查询二级模块返回数据
64
+ * @param module
65
+ */
66
+ showSaveDataModule(module) {
67
+ console.info(this.saveData[module.id], module)
68
+ },
69
+ /**
70
+ * @name buildProps
71
+ * @param module
72
+ * @return {{}}
73
+ * @description 组装props参数
74
+ */
75
+ buildProps(module) {
76
+ if (!this.saveData) return false
77
+ let props = {}
78
+ props.bizParams = this.bizParams
79
+ props.formData = this.initFormData(module);
80
+ props.dataSourceName = module.dataSourceName.value
81
+ props.viewId = module.dataSourceViewId ? module.dataSourceViewId.value : 'default'
82
+ props.passModuleIds = (module.passModule && getVarType(module.passModule) === 'array') ? module.passModule.map(modulesId=> modulesId[modulesId.length -1]) : []
83
+ props.extraParams = Object.assign({}, this.extraParams, module.customizeExtraParams ? JSON.parse(module.customizeExtraParams): {})
84
+
85
+ props.moduleProp = this.initModuleProp(module)
86
+ //console.info("props:::::", props)
87
+ return props
88
+ },
89
+
90
+ /** 初始化 */
91
+ initFormData(module) {
92
+ let initFormData = {}
93
+ let moduleId = module.id
94
+ if(this.formData && module.passFormData && !this.saveData[moduleId].key) {
95
+ module.passFormData.split(',').forEach(formDataKey=>{
96
+ if(!initFormData.key) initFormData.key= {}
97
+ if(formDataKey) initFormData.key[formDataKey] = this.formData[formDataKey]
98
+ })
99
+ }
100
+ return Object.assign({},initFormData, this.saveData[moduleId])
101
+ },
102
+
103
+ /**
104
+ * @name loadComponents
105
+ * @description 载入组件信息
106
+ */
107
+ loadComponents() {
108
+ this.modules.forEach((module, index) => {
109
+ this.components.push({
110
+ id: module.id,
111
+ ref: module.id,
112
+ index: index,
113
+ moduleName: module.moduleName,
114
+ oneModuleName: this.oneModuleName,
115
+ dataSourceName: module.dataSourceName.value,
116
+ component: this.getComponents(module)
117
+ })
118
+ })
119
+ },
120
+
121
+ /**
122
+ * @name clickInterfaceData
123
+ * @description 自动查询接口数据
124
+ */
125
+ clickInterfaceData(){
126
+ this.modules.forEach((module, index) => {
127
+ let {autoQuery} = module
128
+ if(autoQuery && autoQuery.value === true) {
129
+ this.callInterface(module)
130
+ }
131
+ })
132
+ },
133
+
134
+ // 导入组件
135
+ getComponents(module) {
136
+ // 自定义组件
137
+ if(module.dataFrom && "fromCustomize" === module.dataFrom.value && module.customizeRender) {
138
+ return module.customizeRender.value
139
+ }
140
+ // 默认组件
141
+ else if (module.dataSourceRender) {
142
+ return packages[module.dataSourceRender.value]
143
+ }
144
+ this.$message.error("未找到组件,请配置二级模块渲染组件:" + module.moduleName)
145
+ },
146
+
147
+ // 重置当前模块数据
148
+ async callInterface(module) {
149
+ this.btnLoading = true
150
+ await this._tempV.getQueryTwoData(this.oneModuleId, module)
151
+ this.$nextTick(() => {
152
+ this.btnLoading = false
153
+ })
154
+ },
155
+
156
+ // 设置二级模块数据
157
+ setFormData(id, data) {
158
+ this.$refs[id][0].formData = data
159
+ },
160
+
161
+ /**
162
+ * 获取单一模板数据
163
+ */
164
+ getFormData(isValidate) {
165
+ let currentData = []
166
+ return new Promise(async (resolve, reject) => {
167
+ try {
168
+ if (this.components.length === 0) {
169
+ reject('获取模板数据失败,未查询到模板信息')
170
+ }
171
+
172
+ for (let i = 0; i < this.components.length; i++) {
173
+ let {id, moduleName, oneModuleName} = this.components[i]
174
+ try {
175
+ if (this.$refs[id]) {
176
+ let refs = this.$refs[id][0]
177
+ let dataType = refs.getType()
178
+ if (dataType === TempType.save) {
179
+ let formData = await refs.getFormData(isValidate)
180
+ currentData.push(formData)
181
+ }
182
+ } else {
183
+ reject(`加载[${moduleName}]失败,原因:{0}${this.$refs[id]}`)
184
+ break;
185
+ }
186
+ } catch (err) {
187
+ console.log(err)
188
+ if (err) {
189
+ let errMessage = err[Object.keys(err)[0]][0].message
190
+ reject(`请检查一级模块[${oneModuleName}]子模块[${moduleName}],${errMessage}`)
191
+ break;
192
+ }
193
+ reject(`请检查一级模块[${oneModuleName}]子模块[${moduleName}]输入项`)
194
+ break;
195
+ }
196
+ }
197
+ resolve(currentData)
198
+ } catch (e) {
199
+ reject(e)
200
+ }
201
+ })
202
+ },
203
+
204
+ /**
205
+ * 校验二级模块数据
206
+ */
207
+ validate() {
208
+ let PromiseAll = []
209
+ this.modules.map(module => PromiseAll.push(this.$refs[module.id][0].getFormData(true)))
210
+ return new Promise((resolve, reject) => {
211
+ Promise.all(PromiseAll).then(valid => {
212
+ resolve(true)
213
+ }).catch(err => {
214
+ reject(err)
215
+ })
216
+ })
217
+ },
218
+
219
+
220
+ /**
221
+ * @name doShowSubmit
222
+ * @param isShow
223
+ */
224
+ doShowSubmit(isShow) {
225
+ this.showSubmit = isShow
226
+ },
227
+
228
+ /** 是否列表控制显示新增按钮 */
229
+ isShowEasyDataListAdd(module) {
230
+ const {dataSourceRender, showAddBtn} = module
231
+ return module && dataSourceRender && showAddBtn && 'EasyDataList' === dataSourceRender.value && showAddBtn.value === 'true'
232
+ },
233
+ addEasyDataList() {
234
+
235
+ },
236
+ queryLoading(moduleId) {
237
+ if (this.btnLoading) return this.btnLoading
238
+ let data = this.saveData[moduleId]
239
+ return Object.keys(data).length === 0;
240
+ },
241
+
242
+ /** 初始化二级模块自定义属性 */
243
+ initModuleProp(module) {
244
+ let moduleProp = {}
245
+ moduleProp.autoQuery = false //不做自动查询,传入formData直接显示
246
+ moduleProp.showAction = this.getModuleProp(module, 'showAction')
247
+ moduleProp.showAddBtn = this.getModuleProp(module, 'showAddBtn')
248
+ if (module.prop) {
249
+ Object.keys(module.prop).map(key => {
250
+ let item = module.prop[key]
251
+ moduleProp[key] = item ? item.value === 'true' ? true : item.value === 'false' ? false : item.value : item
252
+ })
253
+ }
254
+ return moduleProp
255
+ },
256
+ }
257
+ }
258
+ </script>
259
+ <style scoped>
260
+ .es-box-card {
261
+ margin-top: 10px;
262
+ }
263
+ </style>