vue2-client 1.8.263 → 1.8.264

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 (209) hide show
  1. package/.env +19 -19
  2. package/.eslintrc.js +90 -90
  3. package/CHANGELOG.md +824 -824
  4. package/Components.md +60 -60
  5. package/babel.config.js +21 -21
  6. package/docs/index.md +30 -30
  7. package/docs/lowcode.md +188 -188
  8. package/docs/lowcodeForDeveloper.md +200 -200
  9. package/index.js +31 -31
  10. package/jest-transform-stub.js +8 -8
  11. package/jest.config.js +21 -21
  12. package/jest.setup.js +7 -7
  13. package/package.json +95 -95
  14. package/public/index.html +27 -27
  15. package/src/App.vue +188 -188
  16. package/src/ReportView.js +19 -19
  17. package/src/assets/img/querySlotDemo.svg +15 -15
  18. package/src/assets/svg/badtwo.svg +1 -1
  19. package/src/assets/svg/goodtwo.svg +1 -1
  20. package/src/base-client/components/common/AMisRender/index.js +3 -3
  21. package/src/base-client/components/common/AMisRender/index.vue +263 -263
  22. package/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox.vue +413 -413
  23. package/src/base-client/components/common/AddressSearchCombobox/demo.vue +36 -36
  24. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
  25. package/src/base-client/components/common/CitySelect/CitySelect.vue +348 -348
  26. package/src/base-client/components/common/CitySelect/index.js +3 -3
  27. package/src/base-client/components/common/CitySelect/index.md +109 -109
  28. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
  29. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +1014 -1014
  30. package/src/base-client/components/common/CreateQuery/index.js +3 -3
  31. package/src/base-client/components/common/CreateQuery/index.md +42 -42
  32. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +452 -452
  33. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +511 -511
  34. package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
  35. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
  36. package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +149 -149
  37. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  38. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  39. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
  40. package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
  41. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  42. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  43. package/src/base-client/components/common/LowCodeComponent/LowCodePageOrganization.vue +471 -440
  44. package/src/base-client/components/common/LowCodePageRender/LowCodePageRender.vue +29 -29
  45. package/src/base-client/components/common/LowCodePageRender/editorPageRender.vue +559 -541
  46. package/src/base-client/components/common/LowCodePageRender/index.js +3 -3
  47. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
  48. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  49. package/src/base-client/components/common/Tree/Tree.vue +149 -149
  50. package/src/base-client/components/common/Tree/index.js +2 -2
  51. package/src/base-client/components/common/Upload/Upload.vue +207 -207
  52. package/src/base-client/components/common/Upload/index.js +3 -3
  53. package/src/base-client/components/common/XAddForm/XAddForm.vue +98 -98
  54. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +792 -732
  55. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  56. package/src/base-client/components/common/XAddNativeForm/lowcodeEditorRegister.js +16 -16
  57. package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +303 -303
  58. package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
  59. package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
  60. package/src/base-client/components/common/XBadge/XBadge.vue +78 -78
  61. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  62. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  63. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  64. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  65. package/src/base-client/components/common/XDescriptions/XDescriptions.vue +167 -167
  66. package/src/base-client/components/common/XDescriptions/XDescriptionsGroup.vue +299 -299
  67. package/src/base-client/components/common/XDescriptions/demo.vue +50 -50
  68. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  69. package/src/base-client/components/common/XDescriptions/index.md +83 -83
  70. package/src/base-client/components/common/XDetailsView/XDetailsView.vue +214 -214
  71. package/src/base-client/components/common/XDetailsView/index.js +3 -3
  72. package/src/base-client/components/common/XForm/XForm.vue +281 -281
  73. package/src/base-client/components/common/XForm/XFormItem.vue +807 -807
  74. package/src/base-client/components/common/XForm/XTreeSelect.vue +206 -206
  75. package/src/base-client/components/common/XForm/index.md +178 -178
  76. package/src/base-client/components/common/XFormCol/XFormCol.vue +36 -36
  77. package/src/base-client/components/common/XFormGroup/XFormGroup.vue +241 -241
  78. package/src/base-client/components/common/XFormGroup/demo.vue +40 -40
  79. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  80. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  81. package/src/base-client/components/common/XFormGroupDetails/XFormGroupDetails.vue +72 -72
  82. package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
  83. package/src/base-client/components/common/XFormTable/XFormTable.vue +519 -519
  84. package/src/base-client/components/common/XFormTable/index.md +98 -98
  85. package/src/base-client/components/common/XFormTable/lowcodeEditorRegister.js +16 -16
  86. package/src/base-client/components/common/XImportExcel/XImportExcel.vue +147 -147
  87. package/src/base-client/components/common/XReport/XReport.vue +852 -852
  88. package/src/base-client/components/common/XReport/XReportDemo.vue +2233 -2233
  89. package/src/base-client/components/common/XReport/XReportDesign.vue +496 -496
  90. package/src/base-client/components/common/XReport/XReportJsonRender.vue +277 -277
  91. package/src/base-client/components/common/XReport/XReportTrGroup.vue +757 -757
  92. package/src/base-client/components/common/XReport/index.js +3 -3
  93. package/src/base-client/components/common/XReport/index.md +44 -44
  94. package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
  95. package/src/base-client/components/common/XReportSlot/index.js +3 -3
  96. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  97. package/src/base-client/components/common/XStepView/index.js +3 -3
  98. package/src/base-client/components/common/XStepView/index.md +31 -31
  99. package/src/base-client/components/common/XTable/XTable.vue +636 -636
  100. package/src/base-client/components/common/XTable/index.md +255 -255
  101. package/src/base-client/components/common/XTree/XTree.vue +318 -318
  102. package/src/base-client/components/common/XTree/index.js +3 -3
  103. package/src/base-client/components/common/XTree/index.md +36 -36
  104. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +114 -114
  105. package/src/base-client/components/common/XTreeOne/lowcodeEditorRegister.js +11 -11
  106. package/src/base-client/components/index.js +51 -51
  107. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  108. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  109. package/src/base-client/plugins/AppData.js +115 -115
  110. package/src/base-client/plugins/Config.js +19 -19
  111. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  112. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  113. package/src/bootstrap.js +39 -39
  114. package/src/components/CodeMirror/inedx.vue +118 -118
  115. package/src/components/CodeMirror/setting.js +40 -40
  116. package/src/components/FilePreview/FilePreview.vue +166 -166
  117. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  118. package/src/components/STable/index.js +323 -323
  119. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  120. package/src/components/checkbox/ImgCheckbox.vue +163 -163
  121. package/src/components/menu/SideMenu.vue +75 -75
  122. package/src/components/menu/menu.js +273 -273
  123. package/src/components/tool/AStepItem.vue +60 -60
  124. package/src/config/CreateQueryConfig.js +322 -322
  125. package/src/config/default/antd.config.js +89 -89
  126. package/src/config/default/setting.config.js +55 -55
  127. package/src/font-style/font.css +4 -4
  128. package/src/layouts/CommonLayout.vue +56 -56
  129. package/src/layouts/PageLayout.vue +151 -151
  130. package/src/layouts/SinglePageView.vue +138 -138
  131. package/src/layouts/header/AdminHeader.vue +132 -132
  132. package/src/layouts/header/HeaderNotice.vue +177 -177
  133. package/src/layouts/tabs/TabsHead.vue +189 -189
  134. package/src/layouts/tabs/TabsView.vue +387 -387
  135. package/src/lib.js +1 -1
  136. package/src/main.js +26 -26
  137. package/src/mock/extend/index.js +84 -84
  138. package/src/mock/goods/index.js +108 -108
  139. package/src/pages/AMisDemo/AMisDemo.vue +325 -325
  140. package/src/pages/AMisDemo/AMisDemo2.vue +74 -74
  141. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  142. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  143. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  144. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  145. package/src/pages/DynamicStatistics/FavoriteList.vue +51 -51
  146. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  147. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  148. package/src/pages/DynamicStatistics/index.vue +282 -282
  149. package/src/pages/Example/index.vue +32 -32
  150. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  151. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  152. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  153. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  154. package/src/pages/NewDynamicStatistics/FavoriteList.vue +51 -51
  155. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  156. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  157. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  158. package/src/pages/ServiceReview/index.vue +284 -284
  159. package/src/pages/XReportView/index.vue +62 -62
  160. package/src/pages/login/Login.vue +378 -378
  161. package/src/pages/login/LoginV3.vue +389 -389
  162. package/src/pages/lowCode/lowCodeEditor.vue +1824 -1554
  163. package/src/pages/lowCode/lowCodeRender.vue +39 -39
  164. package/src/pages/resourceManage/orgListManage.vue +98 -98
  165. package/src/pages/system/dictionary/index.vue +44 -44
  166. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  167. package/src/pages/system/monitor/operLog/index.vue +37 -37
  168. package/src/pages/system/settings/modifyPassword.vue +117 -117
  169. package/src/pages/system/ticket/index.vue +480 -480
  170. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  171. package/src/router/async/config.async.js +33 -33
  172. package/src/router/async/router.map.js +107 -107
  173. package/src/router/guards.js +220 -220
  174. package/src/router/index.js +27 -27
  175. package/src/router.js +19 -19
  176. package/src/services/api/TicketDetailsViewApi.js +46 -46
  177. package/src/services/api/cas.js +79 -79
  178. package/src/services/api/common.js +284 -284
  179. package/src/services/api/entity.js +18 -18
  180. package/src/services/api/index.js +17 -17
  181. package/src/services/api/restTools.js +46 -46
  182. package/src/services/apiService.js +14 -14
  183. package/src/services/user.js +71 -71
  184. package/src/store/modules/setting.js +119 -119
  185. package/src/theme/default/style.less +57 -57
  186. package/src/theme/global.less +130 -130
  187. package/src/utils/authority-utils.js +85 -85
  188. package/src/utils/errorCode.js +6 -6
  189. package/src/utils/htmlToPDF.js +108 -108
  190. package/src/utils/htmlToPDFApi.js +5 -5
  191. package/src/utils/indexedDB.js +201 -201
  192. package/src/utils/login.js +144 -144
  193. package/src/utils/lowcode/lowcodeComponentMixin.js +112 -112
  194. package/src/utils/lowcode/lowcodeLog.js +29 -29
  195. package/src/utils/lowcode/lowcodeUtils.js +331 -276
  196. package/src/utils/lowcode/registerComponentForEditor.js +11 -11
  197. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  198. package/src/utils/map-utils.js +47 -47
  199. package/src/utils/reg.js +19 -19
  200. package/src/utils/request.js +343 -343
  201. package/src/utils/routerUtil.js +435 -435
  202. package/src/utils/runEvalFunction.js +6 -6
  203. package/src/utils/util.js +241 -241
  204. package/src/utils/waterMark.js +31 -31
  205. package/test/Amis.spec.js +163 -163
  206. package/test/Tree.spec.js +167 -167
  207. package/test/myDialog.spec.js +46 -46
  208. package/vue.config.js +177 -177
  209. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
@@ -1,200 +1,200 @@
1
- # 奥枫低代码平台 —— 开发篇
2
-
3
- > 低代码平台在使用时分为两个大部分
4
- >
5
- > 1. 插件
6
- > 2. 渲染器
7
- >
8
- > 所以在使用时要将这两个配置好,才可以正确的在编辑器中显示并编辑
9
-
10
- > ---------------- **注意** ----------------
11
- >
12
- > 所有文件中引用其他文件,请使用@vue2-client,而不是@。
13
- > 不然琉璃中会将@符解析到自己的src下
14
-
15
-
16
- ## 组件注册使用
17
-
18
- > 组件要想在低代码平台中展示,并可编辑需要完成一下几点
19
-
20
- ### 插件
21
-
22
- > 插件的用途是,在编辑器中定义该组件有哪些**事件**,哪些可以编辑的**属性**
23
-
24
- #### 插件定义
25
-
26
- > 以下是一个简单的插件声明示例
27
- ```js
28
- export const XFormTableConfig = {
29
- type: 'XFormTable',
30
- properties: {
31
- queryParamsName: {
32
- type: 'string',
33
- label: '查询配置名',
34
- desc: '在琉璃CRUD表单中配置好的查询配置名'
35
- }
36
- },
37
- selfEvent: ['action']
38
- }
39
- ```
40
-
41
- > `type`
42
- >
43
- > 该字段用于描述本组件使用渲染器的类型,如type: '111'
44
- > 这个组件就会去找名称为'111'的渲染器,来将配置渲染为页面
45
-
46
- > `properties`
47
- >
48
- > 该字段用于描述本组件右侧属性编辑栏中,可以展示哪些属性供编辑,
49
- > 通常所有的props都需要在这里声明
50
- >
51
- > 每一个properties含有三个属性
52
- >
53
- > * type:为其指定类型
54
- > * label:用于给用户展示该属性的中文名
55
- > * desc:用户将鼠标放在标题上显示该属性的描述
56
-
57
- > `selfEvent`
58
- >
59
- > 该字段用于描述该组件中有哪些事件会交给编辑器统一调用
60
-
61
- #### 插件注册
62
-
63
- > 定义完成后的插件,需要注册,才会被低代码平台识别
64
- >
65
- > 在src/utils/lowcode/registerComponentForEditor.js文件中注册插件
66
- >
67
- > 以下是一个简单的实例,导入刚刚定义好的插件js文件,并将其暴露
68
- >
69
- > 低代码平台会自动来扫描该文件中的定义
70
-
71
-
72
- ```js
73
- import { XFormTableConfig } from '@vue2-client/base-client/components/common/XFormTable/lowcodeEditorRegister'
74
-
75
- export {
76
- XFormTableConfig
77
- }
78
- ```
79
-
80
- ### 渲染器
81
-
82
- > 渲染器决定了配置中的每一个组件,该用哪个VUE对象来渲染
83
- >
84
- > 渲染器不需要配置文件,只需要注册
85
- >
86
- > 在src/utils/lowcode/registerComponentForRender.js文件中
87
- >
88
- > 导入vue对象,并将其暴露即可
89
- >
90
- > vue组件名,就是插件中的type类型
91
- ```js
92
- import XFormTable from '@vue2-client/base-client/components/common/XFormTable/XFormTable.vue'
93
-
94
- export {
95
- XFormTable
96
- }
97
- ```
98
-
99
- ### 组件本身修改
100
-
101
- > 在组件中有些内容需要做出修改以适配低代码平台
102
- >
103
- > 1. mixin
104
- > 2. 事件emit
105
- > 3. props的定义
106
- > 4. 暴露data
107
-
108
- #### mixin
109
-
110
- > 在低代码平台中,所有组件注册,组件通信都要依赖于mixin。
111
- >
112
- > 在渲染器中,必须引入mixin
113
- >
114
- > mixin所在位置为:src/utils/lowcode/lowcodeComponentMixin.js
115
-
116
- ```js
117
- import lowcodeComponentMixin from '@vue2-client/utils/lowcode/lowcodeComponentMixin'
118
-
119
- export default {
120
- ...
121
- mixins: [lowcodeComponentMixin],
122
- ...
123
- ```
124
- #### 事件emit
125
-
126
- > 在低代码平台中,如果需要与其他组件进行通信,
127
- > 则必须使用低代码平台指定的传递事件的方式
128
- >
129
- > 该方法已在mixin中定义,只需要调用即可
130
-
131
- ```js
132
- action (record, id, actionType, fun = 'action') {
133
- this.$emit(fun, record, id, actionType)
134
- this.$lowCodeEmit('action', record)
135
- }
136
- ```
137
-
138
- #### props
139
-
140
- > require不能为true
141
- >
142
- > 如果require为true会导致组件无法正确初始化,要么给props一个默认值,
143
- > 要么从propsData中取值
144
- >
145
- > 所有在插件中定义的properties,都会通过propsData传递,其格式为
146
- > { a: aValue, b: bValue}
147
-
148
-
149
-
150
- #### 暴露data
151
-
152
- > 组件经常会改变自身的状态,在低代码平台中,组件在交互时,会用到很多其他组件的状态
153
- >
154
- > 比如在XFormTable中,点击了一条信息,弹出一个弹框。在这个弹框编辑完成的时候,我希望给XFormTable点击的那条信息新增几个属性。这个时候就需要在XFormTable点击的时候,就将id保存下来。但我们又不能将这个属性保存为低代码平台全局属性,因为那样会加大日后排查问题的难度
155
- >
156
- > 所以需要每个组件,把自身会被调用的属性自己定义,自己暴露给外界
157
-
158
- > 组件在引入了mixin之后,会携带一个属性
159
- >
160
- > 这个属性就是会暴露给外界的属性,dataForLowCode
161
-
162
- > **实现方法**
163
- >
164
- > 1. 直接修改属性
165
- >
166
- > 直接修改本组件的dataForLowCode即可
167
- >
168
- > 2. 调用方法
169
- >
170
- > 调用$lowCodeSetData(key, value)方法
171
- >
172
- > 3. 在emit时自动保存
173
- >
174
- > 在emit时,大概率是要向外界传递参数的,所以我们在$lowCodeEmit方法中,将emit的数据直接保存在了dataForLowCode中,它的key为emit的事件名
175
-
176
-
177
-
178
- ## 功能新增
179
-
180
- ### 事件处理新增
181
- > 在mixin中,handleComponentCommunication函数新增新的case
182
- ```js
183
- handleComponentCommunication (actionType, data, targetKey = undefined, eventOriginalVM = undefined) {
184
- ...
185
- switch (actionType) {
186
- case ...
187
- case 'log':
188
- this.handleComponentLog(data)
189
- break
190
- }
191
- ...
192
- }
193
- > ```
194
- > 将新增的处理方法,声明在supportedEventType数组中
195
- ```js
196
- supportedEventType: [
197
- ...
198
- 'log'
199
- ]
200
- ```
1
+ # 奥枫低代码平台 —— 开发篇
2
+
3
+ > 低代码平台在使用时分为两个大部分
4
+ >
5
+ > 1. 插件
6
+ > 2. 渲染器
7
+ >
8
+ > 所以在使用时要将这两个配置好,才可以正确的在编辑器中显示并编辑
9
+
10
+ > ---------------- **注意** ----------------
11
+ >
12
+ > 所有文件中引用其他文件,请使用@vue2-client,而不是@。
13
+ > 不然琉璃中会将@符解析到自己的src下
14
+
15
+
16
+ ## 组件注册使用
17
+
18
+ > 组件要想在低代码平台中展示,并可编辑需要完成一下几点
19
+
20
+ ### 插件
21
+
22
+ > 插件的用途是,在编辑器中定义该组件有哪些**事件**,哪些可以编辑的**属性**
23
+
24
+ #### 插件定义
25
+
26
+ > 以下是一个简单的插件声明示例
27
+ ```js
28
+ export const XFormTableConfig = {
29
+ type: 'XFormTable',
30
+ properties: {
31
+ queryParamsName: {
32
+ type: 'string',
33
+ label: '查询配置名',
34
+ desc: '在琉璃CRUD表单中配置好的查询配置名'
35
+ }
36
+ },
37
+ selfEvent: ['action']
38
+ }
39
+ ```
40
+
41
+ > `type`
42
+ >
43
+ > 该字段用于描述本组件使用渲染器的类型,如type: '111'
44
+ > 这个组件就会去找名称为'111'的渲染器,来将配置渲染为页面
45
+
46
+ > `properties`
47
+ >
48
+ > 该字段用于描述本组件右侧属性编辑栏中,可以展示哪些属性供编辑,
49
+ > 通常所有的props都需要在这里声明
50
+ >
51
+ > 每一个properties含有三个属性
52
+ >
53
+ > * type:为其指定类型
54
+ > * label:用于给用户展示该属性的中文名
55
+ > * desc:用户将鼠标放在标题上显示该属性的描述
56
+
57
+ > `selfEvent`
58
+ >
59
+ > 该字段用于描述该组件中有哪些事件会交给编辑器统一调用
60
+
61
+ #### 插件注册
62
+
63
+ > 定义完成后的插件,需要注册,才会被低代码平台识别
64
+ >
65
+ > 在src/utils/lowcode/registerComponentForEditor.js文件中注册插件
66
+ >
67
+ > 以下是一个简单的实例,导入刚刚定义好的插件js文件,并将其暴露
68
+ >
69
+ > 低代码平台会自动来扫描该文件中的定义
70
+
71
+
72
+ ```js
73
+ import { XFormTableConfig } from '@vue2-client/base-client/components/common/XFormTable/lowcodeEditorRegister'
74
+
75
+ export {
76
+ XFormTableConfig
77
+ }
78
+ ```
79
+
80
+ ### 渲染器
81
+
82
+ > 渲染器决定了配置中的每一个组件,该用哪个VUE对象来渲染
83
+ >
84
+ > 渲染器不需要配置文件,只需要注册
85
+ >
86
+ > 在src/utils/lowcode/registerComponentForRender.js文件中
87
+ >
88
+ > 导入vue对象,并将其暴露即可
89
+ >
90
+ > vue组件名,就是插件中的type类型
91
+ ```js
92
+ import XFormTable from '@vue2-client/base-client/components/common/XFormTable/XFormTable.vue'
93
+
94
+ export {
95
+ XFormTable
96
+ }
97
+ ```
98
+
99
+ ### 组件本身修改
100
+
101
+ > 在组件中有些内容需要做出修改以适配低代码平台
102
+ >
103
+ > 1. mixin
104
+ > 2. 事件emit
105
+ > 3. props的定义
106
+ > 4. 暴露data
107
+
108
+ #### mixin
109
+
110
+ > 在低代码平台中,所有组件注册,组件通信都要依赖于mixin。
111
+ >
112
+ > 在渲染器中,必须引入mixin
113
+ >
114
+ > mixin所在位置为:src/utils/lowcode/lowcodeComponentMixin.js
115
+
116
+ ```js
117
+ import lowcodeComponentMixin from '@vue2-client/utils/lowcode/lowcodeComponentMixin'
118
+
119
+ export default {
120
+ ...
121
+ mixins: [lowcodeComponentMixin],
122
+ ...
123
+ ```
124
+ #### 事件emit
125
+
126
+ > 在低代码平台中,如果需要与其他组件进行通信,
127
+ > 则必须使用低代码平台指定的传递事件的方式
128
+ >
129
+ > 该方法已在mixin中定义,只需要调用即可
130
+
131
+ ```js
132
+ action (record, id, actionType, fun = 'action') {
133
+ this.$emit(fun, record, id, actionType)
134
+ this.$lowCodeEmit('action', record)
135
+ }
136
+ ```
137
+
138
+ #### props
139
+
140
+ > require不能为true
141
+ >
142
+ > 如果require为true会导致组件无法正确初始化,要么给props一个默认值,
143
+ > 要么从propsData中取值
144
+ >
145
+ > 所有在插件中定义的properties,都会通过propsData传递,其格式为
146
+ > { a: aValue, b: bValue}
147
+
148
+
149
+
150
+ #### 暴露data
151
+
152
+ > 组件经常会改变自身的状态,在低代码平台中,组件在交互时,会用到很多其他组件的状态
153
+ >
154
+ > 比如在XFormTable中,点击了一条信息,弹出一个弹框。在这个弹框编辑完成的时候,我希望给XFormTable点击的那条信息新增几个属性。这个时候就需要在XFormTable点击的时候,就将id保存下来。但我们又不能将这个属性保存为低代码平台全局属性,因为那样会加大日后排查问题的难度
155
+ >
156
+ > 所以需要每个组件,把自身会被调用的属性自己定义,自己暴露给外界
157
+
158
+ > 组件在引入了mixin之后,会携带一个属性
159
+ >
160
+ > 这个属性就是会暴露给外界的属性,dataForLowCode
161
+
162
+ > **实现方法**
163
+ >
164
+ > 1. 直接修改属性
165
+ >
166
+ > 直接修改本组件的dataForLowCode即可
167
+ >
168
+ > 2. 调用方法
169
+ >
170
+ > 调用$lowCodeSetData(key, value)方法
171
+ >
172
+ > 3. 在emit时自动保存
173
+ >
174
+ > 在emit时,大概率是要向外界传递参数的,所以我们在$lowCodeEmit方法中,将emit的数据直接保存在了dataForLowCode中,它的key为emit的事件名
175
+
176
+
177
+
178
+ ## 功能新增
179
+
180
+ ### 事件处理新增
181
+ > 在mixin中,handleComponentCommunication函数新增新的case
182
+ ```js
183
+ handleComponentCommunication (actionType, data, targetKey = undefined, eventOriginalVM = undefined) {
184
+ ...
185
+ switch (actionType) {
186
+ case ...
187
+ case 'log':
188
+ this.handleComponentLog(data)
189
+ break
190
+ }
191
+ ...
192
+ }
193
+ > ```
194
+ > 将新增的处理方法,声明在supportedEventType数组中
195
+ ```js
196
+ supportedEventType: [
197
+ ...
198
+ 'log'
199
+ ]
200
+ ```
package/index.js CHANGED
@@ -1,31 +1,31 @@
1
- import Vue from 'vue'
2
- import { initRouter } from '@vue2-client/router/index.js'
3
- import { initI18n } from '@vue2-client/utils/i18n'
4
- import bootstrap from '@vue2-client/bootstrap'
5
- import { modules } from '@vue2-client/store'
6
- import '@vue2-client/theme/index.less'
7
- import '@vue2-client/utils/filter'
8
- import 'animate.css/source/animate.css'
9
- import 'moment/locale/zh-cn'
10
- import Antd from 'ant-design-vue'
11
- import Viser from 'viser-vue'
12
- // 插件
13
- import Plugins from '@vue2-client/base-client/plugins'
14
-
15
- const routerOptions = initRouter()
16
- const i18n = initI18n('CN', 'US')
17
-
18
- Vue.use(Antd)
19
- Vue.use(Viser)
20
- Vue.use(Plugins)
21
-
22
- Vue.config.productionTip = false
23
- const message = Vue.prototype.$message
24
-
25
- export {
26
- routerOptions,
27
- modules,
28
- i18n,
29
- message,
30
- bootstrap
31
- }
1
+ import Vue from 'vue'
2
+ import { initRouter } from '@vue2-client/router/index.js'
3
+ import { initI18n } from '@vue2-client/utils/i18n'
4
+ import bootstrap from '@vue2-client/bootstrap'
5
+ import { modules } from '@vue2-client/store'
6
+ import '@vue2-client/theme/index.less'
7
+ import '@vue2-client/utils/filter'
8
+ import 'animate.css/source/animate.css'
9
+ import 'moment/locale/zh-cn'
10
+ import Antd from 'ant-design-vue'
11
+ import Viser from 'viser-vue'
12
+ // 插件
13
+ import Plugins from '@vue2-client/base-client/plugins'
14
+
15
+ const routerOptions = initRouter()
16
+ const i18n = initI18n('CN', 'US')
17
+
18
+ Vue.use(Antd)
19
+ Vue.use(Viser)
20
+ Vue.use(Plugins)
21
+
22
+ Vue.config.productionTip = false
23
+ const message = Vue.prototype.$message
24
+
25
+ export {
26
+ routerOptions,
27
+ modules,
28
+ i18n,
29
+ message,
30
+ bootstrap
31
+ }
@@ -1,8 +1,8 @@
1
- module.exports = {
2
- process () {
3
- return 'module.exports = {};'
4
- },
5
- getCacheKey () {
6
- return 'lessTransform'
7
- },
8
- }
1
+ module.exports = {
2
+ process () {
3
+ return 'module.exports = {};'
4
+ },
5
+ getCacheKey () {
6
+ return 'lessTransform'
7
+ },
8
+ }
package/jest.config.js CHANGED
@@ -1,21 +1,21 @@
1
- const path = require('path')
2
- require('dotenv').config({ path: path.resolve(__dirname, '.env') })
3
-
4
- module.exports = {
5
- setupFiles: ['<rootDir>/jest.setup.js'],
6
- moduleNameMapper: {
7
- '^@vue2-client/(.*)$': '<rootDir>/src/$1',
8
- '\\.(css|less)$': 'identity-obj-proxy',
9
- },
10
- moduleFileExtensions: ['js', 'json', 'jsx', 'ts', 'tsx', 'node', 'vue'], // 注意 'vue' 在这里
11
- testEnvironment: 'jsdom',
12
- transform: {
13
- '^.+\\.js$': 'babel-jest',
14
- '^.+\\.vue$': 'vue-jest',
15
- '^.+\\.less$': 'jest-transform-stub', // 添加这一行
16
- },
17
- transformIgnorePatterns: [
18
- '/node_modules/(?!ant-design-vue)',
19
- ]
20
- // 其他 Jest 配置项...
21
- }
1
+ const path = require('path')
2
+ require('dotenv').config({ path: path.resolve(__dirname, '.env') })
3
+
4
+ module.exports = {
5
+ setupFiles: ['<rootDir>/jest.setup.js'],
6
+ moduleNameMapper: {
7
+ '^@vue2-client/(.*)$': '<rootDir>/src/$1',
8
+ '\\.(css|less)$': 'identity-obj-proxy',
9
+ },
10
+ moduleFileExtensions: ['js', 'json', 'jsx', 'ts', 'tsx', 'node', 'vue'], // 注意 'vue' 在这里
11
+ testEnvironment: 'jsdom',
12
+ transform: {
13
+ '^.+\\.js$': 'babel-jest',
14
+ '^.+\\.vue$': 'vue-jest',
15
+ '^.+\\.less$': 'jest-transform-stub', // 添加这一行
16
+ },
17
+ transformIgnorePatterns: [
18
+ '/node_modules/(?!ant-design-vue)',
19
+ ]
20
+ // 其他 Jest 配置项...
21
+ }
package/jest.setup.js CHANGED
@@ -1,7 +1,7 @@
1
- global.matchMedia = global.matchMedia || function () {
2
- return {
3
- matches: false,
4
- addListener: function () {},
5
- removeListener: function () {}
6
- }
7
- }
1
+ global.matchMedia = global.matchMedia || function () {
2
+ return {
3
+ matches: false,
4
+ addListener: function () {},
5
+ removeListener: function () {}
6
+ }
7
+ }