vue2-client 1.18.3 → 1.18.5

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 (244) hide show
  1. package/.claude/settings.local.json +20 -20
  2. package/.cursorrules +19 -19
  3. package/.env.apply +19 -19
  4. package/.env.gaslink +19 -19
  5. package/.env.his +19 -19
  6. package/.env.liuli +20 -20
  7. package/.env.scada +19 -19
  8. package/.serena/memories/code_style_conventions.md +217 -217
  9. package/.serena/memories/project_overview.md +54 -54
  10. package/.serena/memories/project_structure.md +329 -329
  11. package/.serena/memories/suggested_commands.md +127 -127
  12. package/.serena/memories/task_completion_checklist.md +183 -183
  13. package/.serena/memories/tech_stack.md +94 -94
  14. package/CHANGELOG.md +830 -830
  15. package/CLAUDE.md +97 -97
  16. package/docs/LowCode/lowcode.md +155 -155
  17. package/docs/LowCode/lowcodeForDeveloper.md +230 -230
  18. package/jsconfig.json +19 -19
  19. package/package.json +1 -1
  20. package/public/his/editor/editor.html +51 -51
  21. package/public/his/editor/mock/bind_data.html +779 -779
  22. package/public/his/editor/mock/data_table.html +40 -40
  23. package/public/his/editor/mock/sign.html +75 -75
  24. package/public/his/editor/vender/JsBarcode.all.js +3669 -3669
  25. package/public/his/editor/vender/date97/My97DatePicker.htm +65 -65
  26. package/public/his/editor/vender/date97/WdatePicker.js +677 -677
  27. package/public/his/editor/vender/date97/calendar.js +4 -4
  28. package/public/his/editor/vender/date97/lang/en.js +13 -13
  29. package/public/his/editor/vender/date97/lang/zh-cn.js +13 -13
  30. package/public/his/editor/vender/date97/lang/zh-tw.js +13 -13
  31. package/public/his/editor/vender/date97/skin/WdatePicker.css +10 -10
  32. package/public/his/editor/vender/date97/skin/default/datepicker.css +328 -328
  33. package/public/his/editor/vender/date97/skin/ext/datepicker.css +308 -308
  34. package/public/his/editor/vender/date97/skin/whyGreen/datepicker.css +255 -255
  35. package/public/his/editor/vender/diff.js +1627 -1627
  36. package/public/his/editor/vender/editor.js +1 -1
  37. package/public/his/editor/vender/fabric.js +31187 -31187
  38. package/public/his/editor/vender/jquery/jquery.base64.js +190 -190
  39. package/public/his/editor/vender/jquery/jquery.js +10872 -10872
  40. package/public/his/editor/vender/jquery/jquery.print.js +255 -255
  41. package/public/his/editor/vender/jquery/zTreeStyle/zTreeStyle.css +96 -96
  42. package/public/his/editor/vender/mui/mui.min.css +4 -4
  43. package/public/his/editor/vender/mui/mui.min.js +5 -5
  44. package/public/his/editor/vender/mui/mui.picker.min.css +6 -6
  45. package/public/his/editor/vender/mui/mui.picker.min.js +6 -6
  46. package/public/his/editor/vender/qrcode.js +7 -7
  47. package/public/his/editor/vender/requirejs/require.js +2145 -2145
  48. package/public/his/editor/vender/signature/jSignature.CompressorSVG.js +518 -518
  49. package/public/his/editor/vender/signature/jSignature.UndoButton.js +164 -164
  50. package/public/his/editor/vender/signature/jSignature.js +1486 -1486
  51. package/public/his/editor/vender/validator.js +5094 -5094
  52. package/public/his/editor/vender/weui/weui.css +5659 -5659
  53. package/public/his/editor/vender/weui/weui.min.css +4 -4
  54. package/public/his/editor/vender/weui/weui.min.js +11 -11
  55. package/src/assets/img/paymentMethod/package.info +1 -1
  56. package/src/assets/svg/badtwo.svg +1 -1
  57. package/src/assets/svg/goodtwo.svg +1 -1
  58. package/src/base-client/components/AI/AskAiBtn.vue +136 -136
  59. package/src/base-client/components/AI/demo.vue +31 -31
  60. package/src/base-client/components/common/AddressSearchCombobox/IcMapIcon.vue +16 -16
  61. package/src/base-client/components/common/AddressSearchCombobox/demo.vue +36 -36
  62. package/src/base-client/components/common/AddressSearchCombobox/ic_map.svg +6 -6
  63. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +1014 -1014
  64. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +452 -452
  65. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +511 -511
  66. package/src/base-client/components/common/HIS/demo.vue +61 -61
  67. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorModal.vue +108 -108
  68. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorPanel.vue +413 -413
  69. package/src/base-client/components/common/LowCodeComponent/LowCodePageOrganization.vue +502 -502
  70. package/src/base-client/components/common/LowCodeComponent/LowCodeRender.vue +728 -728
  71. package/src/base-client/components/common/LowCodeComponent/LowCodeRenderEnter.vue +29 -29
  72. package/src/base-client/components/common/LowCodeComponent/LowCodeUIStore.vue +219 -219
  73. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeAddPageModal.vue +117 -117
  74. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeCustomJSModal.vue +80 -80
  75. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeEventEditorModal.vue +398 -398
  76. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLifeCycleModal.vue +65 -65
  77. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicCallbackModal.vue +64 -64
  78. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicParamModal.vue +73 -73
  79. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeRunFunctionParamModal.vue +76 -76
  80. package/src/base-client/components/common/Recording/Recording.vue +243 -243
  81. package/src/base-client/components/common/Recording/index.js +3 -3
  82. package/src/base-client/components/common/XAddForm/XAddForm.vue +113 -113
  83. package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +304 -304
  84. package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
  85. package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
  86. package/src/base-client/components/common/XAddReport/index.js +3 -3
  87. package/src/base-client/components/common/XAddReport/index.md +56 -56
  88. package/src/base-client/components/common/XBadge/XBadge.vue +94 -94
  89. package/src/base-client/components/common/XButtons/XButtonDemo.vue +28 -28
  90. package/src/base-client/components/common/XButtons/index.js +3 -3
  91. package/src/base-client/components/common/XButtons/index.md +61 -61
  92. package/src/base-client/components/common/XCalendar/XCalendar.vue +4 -4
  93. package/src/base-client/components/common/XCheckList/XCheckList.vue +106 -106
  94. package/src/base-client/components/common/XCheckList/XCheckListDemo.vue +41 -41
  95. package/src/base-client/components/common/XDataCard/index.js +3 -3
  96. package/src/base-client/components/common/XDataCard/index.md +1 -1
  97. package/src/base-client/components/common/XDatePicker/demo.vue +153 -153
  98. package/src/base-client/components/common/XDetailsView/XDetailsView.vue +238 -238
  99. package/src/base-client/components/common/XDetailsView/index.js +3 -3
  100. package/src/base-client/components/common/XForm/XStatusButton.vue +54 -54
  101. package/src/base-client/components/common/XForm/itemComponent/XClickChangeBtn/index.vue +49 -49
  102. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  103. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  104. package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
  105. package/src/base-client/components/common/XFormTable/XFormTable.vue +1258 -1257
  106. package/src/base-client/components/common/XFormTable/index.md +92 -92
  107. package/src/base-client/components/common/XLabelSelect/XLabelSelect.vue +110 -110
  108. package/src/base-client/components/common/XLabelSelect/XLabelSelectDemo.vue +35 -35
  109. package/src/base-client/components/common/XLicensePlate/XLicensePlate.vue +193 -193
  110. package/src/base-client/components/common/XLicensePlate/XLicensePlateDemo.vue +48 -48
  111. package/src/base-client/components/common/XPrint/OpenInvoice.vue +21 -21
  112. package/src/base-client/components/common/XPrint/PrintHtml.js +98 -98
  113. package/src/base-client/components/common/XPrint/css/hiPrintCss.js +359 -359
  114. package/src/base-client/components/common/XPrint/css/lodopCss.js +26 -26
  115. package/src/base-client/components/common/XPrint/css/print-lock.css +351 -351
  116. package/src/base-client/components/common/XPrint/index.vue +97 -97
  117. package/src/base-client/components/common/XReport/XReportDesign.vue +463 -463
  118. package/src/base-client/components/common/XReport/XReportJsonRender.vue +381 -381
  119. package/src/base-client/components/common/XReport/index.js +3 -3
  120. package/src/base-client/components/common/XReport/print.js +186 -186
  121. package/src/base-client/components/common/XReportDrawer/index.js +3 -3
  122. package/src/base-client/components/common/XReportGrid/index.js +3 -3
  123. package/src/base-client/components/common/XReportGrid/index.md +44 -44
  124. package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
  125. package/src/base-client/components/common/XReportSlot/index.js +3 -3
  126. package/src/base-client/components/common/XReportSlot/index.md +48 -48
  127. package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +166 -166
  128. package/src/base-client/components/common/XSimpleDescriptions/index.js +3 -3
  129. package/src/base-client/components/common/XSimpleDescriptions/index.md +7 -7
  130. package/src/base-client/components/common/XTab/XTabDemo.vue +22 -22
  131. package/src/base-client/components/common/XTab/index.js +3 -3
  132. package/src/base-client/components/common/XTable/CustomFuncCel.vue +51 -51
  133. package/src/base-client/components/common/XTable/TableCellRenderer.vue +161 -161
  134. package/src/base-client/components/common/XTable/XTableWrapper.vue +1 -1
  135. package/src/base-client/components/common/XTagGroup/index.vue +52 -52
  136. package/src/base-client/components/common/XTree/XTree.vue +424 -424
  137. package/src/base-client/components/common/XTree/index.js +3 -3
  138. package/src/base-client/components/common/XTree/index.md +36 -36
  139. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +113 -113
  140. package/src/base-client/components/common/XTreeOne/XTreeOnePro.vue +128 -128
  141. package/src/base-client/components/common/richTextModal/index.vue +56 -56
  142. package/src/base-client/components/common/richTextModal/richDemo.vue +48 -48
  143. package/src/base-client/components/his/XCharge/XChargeDemo.vue +145 -145
  144. package/src/base-client/components/his/XHisEditor/index.js +3 -3
  145. package/src/base-client/components/index.js +51 -51
  146. package/src/base-client/components/layout/XTreeView/XTreeView.vue +130 -130
  147. package/src/base-client/components/layout/XTreeView/index.js +3 -3
  148. package/src/base-client/components/layout/XTreeView/index.md +46 -46
  149. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  150. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  151. package/src/base-client/plugins/Recording.js +258 -258
  152. package/src/base-client/plugins/index.js +23 -23
  153. package/src/components/CodeMirror/inedx.vue +118 -118
  154. package/src/components/CodeMirror/setting.js +40 -40
  155. package/src/components/checkbox/ImgCheckbox.vue +117 -117
  156. package/src/components/checkbox/ImgCheckboxGroup.vue +76 -76
  157. package/src/components/checkbox/index.js +9 -9
  158. package/src/components/exception/ExceptionPage.vue +70 -70
  159. package/src/components/g2Charts/constants.js +202 -202
  160. package/src/components/g2Charts/demo.vue +808 -808
  161. package/src/components/g2Charts/designer.vue +228 -228
  162. package/src/components/g2Charts/designerBaseConfig.vue +61 -61
  163. package/src/components/g2Charts/designerDataConfig.vue +259 -259
  164. package/src/components/g2Charts/designerStyleConfig.vue +16 -16
  165. package/src/components/g2Charts/index.vue +397 -397
  166. package/src/components/setting/Setting.vue +234 -234
  167. package/src/config/CreateQueryConfig.js +325 -325
  168. package/src/config/default/antd.config.js +89 -89
  169. package/src/config/default/setting.config.js +55 -55
  170. package/src/font-style/font.css +60 -60
  171. package/src/layouts/PageLayout.vue +151 -151
  172. package/src/layouts/SinglePageView.vue +136 -136
  173. package/src/layouts/header/AdminHeader.vue +132 -132
  174. package/src/layouts/header/InstitutionDetail.vue +181 -181
  175. package/src/layouts/tabs/TabsHead.vue +189 -189
  176. package/src/pages/DefaultExample/index.vue +77 -77
  177. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  178. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  179. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  180. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  181. package/src/pages/DynamicStatistics/FavoriteList.vue +50 -50
  182. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  183. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  184. package/src/pages/DynamicStatistics/index.vue +282 -282
  185. package/src/pages/Example/childIndex.vue +15 -15
  186. package/src/pages/Example/index.vue +30 -30
  187. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  188. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  189. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  190. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  191. package/src/pages/NewDynamicStatistics/FavoriteList.vue +50 -50
  192. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  193. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  194. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  195. package/src/pages/Recording/index.vue +77 -77
  196. package/src/pages/ServiceReview/index.vue +284 -284
  197. package/src/pages/SubExample/index.vue +26 -26
  198. package/src/pages/WorkflowDetail/WorkflowPageDetail/TrimTextTail.vue +23 -23
  199. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandle.vue +1815 -1815
  200. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowTimeline.vue +1014 -1014
  201. package/src/pages/XReportView/index.vue +64 -64
  202. package/src/pages/XTreeOneProExample/index.vue +67 -67
  203. package/src/pages/login/Login.vue +379 -379
  204. package/src/pages/login/LoginV3.vue +389 -389
  205. package/src/pages/lowCode/lowCodeEditor.vue +1219 -1219
  206. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  207. package/src/pages/report/ReportTable.js +124 -124
  208. package/src/pages/resourceManage/orgListManage.vue +98 -98
  209. package/src/pages/system/settings/modifyPassword.vue +117 -117
  210. package/src/pages/system/ticket/index.vue +480 -480
  211. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  212. package/src/pages/userInfoDetailManage/ChangeMeterRecordQuery/index.vue +64 -64
  213. package/src/pages/userInfoDetailManage/InfoChangeRecordQuery/index.vue +64 -64
  214. package/src/pages/userInfoDetailManage/InstructRecordQuery/index.vue +64 -64
  215. package/src/pages/userInfoDetailManage/MeterParamRecordQuery/index.vue +64 -64
  216. package/src/pages/userInfoDetailManage/TransferRecordQuery/index.vue +66 -66
  217. package/src/pages/userInfoDetailManage/WatchCollectionRecordQuery/index.vue +64 -64
  218. package/src/plugins/EventLogPlugin.js +33 -33
  219. package/src/plugins/FindParentsData.js +17 -17
  220. package/src/services/DataModel.js +30 -30
  221. package/src/services/LodopFuncs.js +137 -137
  222. package/src/services/api/TicketDetailsViewApi.js +46 -46
  223. package/src/services/api/entity.js +18 -18
  224. package/src/services/api/index.js +17 -17
  225. package/src/store/modules/account.js +121 -121
  226. package/src/store/modules/index.js +5 -5
  227. package/src/store/modules/lowCode.js +33 -33
  228. package/src/theme/default/style.less +58 -58
  229. package/src/theme/global.less +313 -313
  230. package/src/utils/formatter.js +74 -74
  231. package/src/utils/htmlToPDF.js +108 -108
  232. package/src/utils/htmlToPDFApi.js +5 -5
  233. package/src/utils/login.js +188 -188
  234. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  235. package/src/utils/lowcode/lowcodeLog.js +29 -29
  236. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  237. package/src/utils/lowcode/registerComponentForEditor.js +1 -1
  238. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  239. package/src/utils/map-utils.js +47 -47
  240. package/src/utils/reg.js +95 -95
  241. package/src/utils/runEvalFunction.js +14 -14
  242. package/src/utils/theme-color-replacer-extend.js +92 -92
  243. package/src/utils/util.js +329 -329
  244. package/src/utils/waterMark.js +31 -31
package/CLAUDE.md CHANGED
@@ -1,98 +1,98 @@
1
- # CLAUDE.md
2
-
3
- This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
-
5
- ## 常用开发命令
6
-
7
- ### 开发服务器
8
- - `npm run serve` - 在端口8020启动开发服务器(Windows需要SET命令设置NODE_OPTIONS)
9
- - `npm run mac-serve` - 在macOS/Linux启动开发服务器
10
- - 支持多环境启动命令:gaslink、revenue、liuli、scada、iot、his、runtime、message、apply
11
-
12
- ### 构建命令
13
- - `npm run build` - 生产环境构建
14
- - `npm run build:preview` - 预览环境构建
15
-
16
- ### 测试
17
- - `npm test` - 运行Jest测试
18
- - `npm run test:unit` - 运行Vue CLI单元测试
19
-
20
- ### 代码质量
21
- - `npm run lint` - 运行ESLint并自动修复问题
22
- - `npm run lint:nofix` - 运行ESLint但不自动修复
23
-
24
- ## 项目架构
25
-
26
- ### Vue 2.7 + Ant Design Vue应用
27
- 这是一个使用Vue 2.7和Ant Design Vue 1.7.8作为UI框架的项目。项目采用模块化组件架构,包含自定义的base-client基础组件库。
28
-
29
- ### 核心架构组件
30
-
31
- #### 基础客户端系统 (`src/base-client/`)
32
- - **Components**: 可复用的UI组件,使用X前缀命名(XForm、XTable、XCard等)
33
- - **Plugins**: 全局Vue插件,包括认证、i18n扩展和页面管理
34
- - **全局注册**: base-client中的组件会全局注册,整个应用可用
35
-
36
- #### 组件库结构
37
- - **X组件**: 核心表单和表格组件(XForm、XTable、XFormTable),通过JSON配置动态生成UI
38
- - **布局组件**: XPageView用于复杂页面布局,支持基于行的渲染
39
- - **业务组件**: 针对工单、系统管理、HIS(医院信息系统)等特定领域的组件
40
-
41
- #### 配置驱动开发
42
- - 组件使用JSON配置动态生成表单、表格和布局
43
- - `src/config/`中的配置文件定义组件行为和系统设置
44
- - 支持多环境配置的特定部署模式
45
-
46
- #### 模块系统
47
- - **Pages**: 按功能组织的应用页面
48
- - **Services**: API层,包含数据模型和服务抽象
49
- - **Utils**: 共享工具,包括加密、格式化和低代码辅助工具
50
- - **Store**: Vuex状态管理,包含账户、设置和低代码模块
51
-
52
- #### 低代码平台集成
53
- - 内置低代码编辑器和渲染器组件
54
- - 低代码环境的自定义组件注册系统
55
- - 表达式求值的逻辑运行器系统
56
-
57
- ### 开发模式
58
-
59
- #### 组件开发
60
- - 遵循现有X组件模式保持一致性
61
- - 使用mixins共享表单验证逻辑
62
- - 使用XFormCol栅格系统实现响应式设计
63
-
64
- #### API集成
65
- - 使用`src/services/apiService.js`进行API调用
66
- - 遵循DataModel模式进行数据转换
67
- - 使用axios拦截器实现正确的错误处理
68
-
69
- #### 样式开发
70
- - 使用Less预处理器,主题变量在`src/theme/`中
71
- - Ant Design Vue主题系统,支持动态颜色替换
72
- - 组件特定样式与组件共同放置
73
-
74
- #### 测试策略
75
- - Jest进行单元测试
76
- - Vue Test Utils进行组件测试
77
- - 测试文件位于`test/`和`tests/unit/`
78
-
79
- ### 环境配置
80
- 项目通过Vue CLI模式支持多个部署环境:
81
- - gaslink、revenue、liuli、scada、iot、his、runtime、message、apply
82
- - 每个模式在vue.config.js中有特定的代理配置
83
- - 环境变量控制API端点和功能标志
84
-
85
- ### 代码风格指南(来自.cursorrules)
86
- - 使用Vue 2.7组合API和setup语法糖,避免选项API(除非修改现有代码)
87
- - 目录名使用kebab-case(如components/auth-wizard)
88
- - 组件名使用PascalCase(如AuthWizard.vue)
89
- - 可组合函数使用camelCase(如useAuthState.js)
90
- - 方法和计算属性使用箭头函数
91
- - 避免条件语句中不必要的花括号,使用简洁语法
92
- - 模块化和迭代式代码,避免重复
93
-
94
- ### 重要配置说明
95
- - **NODE_OPTIONS**: Windows环境需要设置`--openssl-legacy-provider`解决OpenSSL兼容性问题
96
- - **Webpack别名**: 引入项目需添加别名配置:`@vue2-client` → `node_modules/vue2-client/src`
97
- - **端口**: 开发服务器默认运行在8020端口
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## 常用开发命令
6
+
7
+ ### 开发服务器
8
+ - `npm run serve` - 在端口8020启动开发服务器(Windows需要SET命令设置NODE_OPTIONS)
9
+ - `npm run mac-serve` - 在macOS/Linux启动开发服务器
10
+ - 支持多环境启动命令:gaslink、revenue、liuli、scada、iot、his、runtime、message、apply
11
+
12
+ ### 构建命令
13
+ - `npm run build` - 生产环境构建
14
+ - `npm run build:preview` - 预览环境构建
15
+
16
+ ### 测试
17
+ - `npm test` - 运行Jest测试
18
+ - `npm run test:unit` - 运行Vue CLI单元测试
19
+
20
+ ### 代码质量
21
+ - `npm run lint` - 运行ESLint并自动修复问题
22
+ - `npm run lint:nofix` - 运行ESLint但不自动修复
23
+
24
+ ## 项目架构
25
+
26
+ ### Vue 2.7 + Ant Design Vue应用
27
+ 这是一个使用Vue 2.7和Ant Design Vue 1.7.8作为UI框架的项目。项目采用模块化组件架构,包含自定义的base-client基础组件库。
28
+
29
+ ### 核心架构组件
30
+
31
+ #### 基础客户端系统 (`src/base-client/`)
32
+ - **Components**: 可复用的UI组件,使用X前缀命名(XForm、XTable、XCard等)
33
+ - **Plugins**: 全局Vue插件,包括认证、i18n扩展和页面管理
34
+ - **全局注册**: base-client中的组件会全局注册,整个应用可用
35
+
36
+ #### 组件库结构
37
+ - **X组件**: 核心表单和表格组件(XForm、XTable、XFormTable),通过JSON配置动态生成UI
38
+ - **布局组件**: XPageView用于复杂页面布局,支持基于行的渲染
39
+ - **业务组件**: 针对工单、系统管理、HIS(医院信息系统)等特定领域的组件
40
+
41
+ #### 配置驱动开发
42
+ - 组件使用JSON配置动态生成表单、表格和布局
43
+ - `src/config/`中的配置文件定义组件行为和系统设置
44
+ - 支持多环境配置的特定部署模式
45
+
46
+ #### 模块系统
47
+ - **Pages**: 按功能组织的应用页面
48
+ - **Services**: API层,包含数据模型和服务抽象
49
+ - **Utils**: 共享工具,包括加密、格式化和低代码辅助工具
50
+ - **Store**: Vuex状态管理,包含账户、设置和低代码模块
51
+
52
+ #### 低代码平台集成
53
+ - 内置低代码编辑器和渲染器组件
54
+ - 低代码环境的自定义组件注册系统
55
+ - 表达式求值的逻辑运行器系统
56
+
57
+ ### 开发模式
58
+
59
+ #### 组件开发
60
+ - 遵循现有X组件模式保持一致性
61
+ - 使用mixins共享表单验证逻辑
62
+ - 使用XFormCol栅格系统实现响应式设计
63
+
64
+ #### API集成
65
+ - 使用`src/services/apiService.js`进行API调用
66
+ - 遵循DataModel模式进行数据转换
67
+ - 使用axios拦截器实现正确的错误处理
68
+
69
+ #### 样式开发
70
+ - 使用Less预处理器,主题变量在`src/theme/`中
71
+ - Ant Design Vue主题系统,支持动态颜色替换
72
+ - 组件特定样式与组件共同放置
73
+
74
+ #### 测试策略
75
+ - Jest进行单元测试
76
+ - Vue Test Utils进行组件测试
77
+ - 测试文件位于`test/`和`tests/unit/`
78
+
79
+ ### 环境配置
80
+ 项目通过Vue CLI模式支持多个部署环境:
81
+ - gaslink、revenue、liuli、scada、iot、his、runtime、message、apply
82
+ - 每个模式在vue.config.js中有特定的代理配置
83
+ - 环境变量控制API端点和功能标志
84
+
85
+ ### 代码风格指南(来自.cursorrules)
86
+ - 使用Vue 2.7组合API和setup语法糖,避免选项API(除非修改现有代码)
87
+ - 目录名使用kebab-case(如components/auth-wizard)
88
+ - 组件名使用PascalCase(如AuthWizard.vue)
89
+ - 可组合函数使用camelCase(如useAuthState.js)
90
+ - 方法和计算属性使用箭头函数
91
+ - 避免条件语句中不必要的花括号,使用简洁语法
92
+ - 模块化和迭代式代码,避免重复
93
+
94
+ ### 重要配置说明
95
+ - **NODE_OPTIONS**: Windows环境需要设置`--openssl-legacy-provider`解决OpenSSL兼容性问题
96
+ - **Webpack别名**: 引入项目需添加别名配置:`@vue2-client` → `node_modules/vue2-client/src`
97
+ - **端口**: 开发服务器默认运行在8020端口
98
98
  - **ESLint**: 开发模式默认禁用ESLint(--no-eslint),使用`npm run lint`单独执行检查
@@ -1,155 +1,155 @@
1
- # 奥枫低代码平台
2
-
3
- > 奥枫低代码平台是一个前端低代码框架,它使用JSON配置来生成页面
4
-
5
-
6
-
7
- ## 概念
8
-
9
- ### 配置与组件
10
-
11
- #### 结构
12
-
13
- > 一个配置的结构是这样的
14
- >
15
- > ```json
16
- > {
17
- > "page": [
18
- > {
19
- > "id": "page_tvV9Ci",
20
- > "type": "page",
21
- > "title": "11",
22
- > "body": [
23
- > {
24
- > "id": "page_tvV9Ci_0",
25
- > "config": {
26
- > "align": "top",
27
- > "gutter": 0,
28
- > "justify": "start"
29
- > },
30
- > "type": "row",
31
- > "body": [
32
- > {
33
- > "type": "XFormTable",
34
- > "selected": false,
35
- > "span": 24,
36
- > "id": "XFormTable_76UItw",
37
- > "props": {
38
- > "queryParamsName": "",
39
- > "serviceName": ""
40
- > },
41
- > "selfEvent": [
42
- > "action"
43
- > ]
44
- > }
45
- > ]
46
- > }
47
- > ]
48
- > }
49
- > ]
50
- > }
51
- > ```
52
- > page下的每一个对象,表示一个`页面容器`
53
- >
54
- > body中的每一个对象,表示一`行`
55
- >
56
- > 每行中body下的每个元素,表示一个`组件`
57
-
58
- > 组件的完整配置是这样的
59
- >
60
- > ```json
61
- > {
62
- > "type": "xx组件",
63
- > "span": 12,
64
- > "id": "xx组件_001",
65
- > "selected": false,
66
- > "props": {
67
- > "值1": "111",
68
- > "值2": "222",
69
- > ...
70
- > },
71
- > "selfEvent": [
72
- > "action",
73
- > ...
74
- > ],
75
- > "onEvent": {
76
- > "action": [
77
- > {
78
- > "emitType": "action",
79
- > "eventType": "changeValue",
80
- > "target": "组件_00x",
81
- > "targetKey": "data"
82
- > },
83
- > {...}
84
- > ]
85
- > }
86
- > }
87
- > ```
88
- >
89
- > `type`定义了组件的类型
90
- >
91
- > `span`定义了组件的宽度
92
- >
93
- > `selected`定义了组件当前是否被选中
94
- >
95
- > `id`表示组件的唯一标识
96
- >
97
- > `props`中定义的是组件可以被改变的值
98
- >
99
- > `selfEvent`定义了组件可以发出哪些事件交给低代码平台处理
100
- >
101
- > `onEvent`表示每一个事件的具体定义
102
- >
103
- > `onEvent`中的每一个对象的key代表了是针对哪种事件的处理
104
-
105
- > 在低代码平台中,最小的单位是`组件`,最大的单位是`页面容器`
106
-
107
-
108
-
109
- #### 页面容器
110
-
111
- > 一个`页面容器`可以是`页面`,`弹框`,`抽屉`等
112
- >
113
- > `页面容器`是所有`组件`的容器,`组件`组成了`行`,`行`组成了`页面`
114
-
115
-
116
-
117
- #### 组件
118
-
119
- > `组件`是低代码平台的最小单位
120
- >
121
- > 一个组件是某种功能的封装,比如XFormTable是为了展示CRUD表单,XTree是为了展示树型结构
122
-
123
-
124
-
125
- #### 组件的拆分
126
-
127
- > 如同栅格化布局一样,每一行套每一列
128
- >
129
- > 某个列又可被看做一个整体,在其下继续拆分为多行,每行又包含多列
130
-
131
- > 比如一个页面,左侧是导航栏,右侧是内容栏
132
- >
133
- > 这就是第一行,第一行分为两列,左侧列是导航栏,右侧列是内容栏
134
- >
135
- > 内容栏又被分为了两行
136
- >
137
- > 第一行是标题,第二行是主要内容
138
-
139
-
140
-
141
- ### 事件
142
-
143
- > 在组件中,会因为各种各样的原因,修改一些状态,比如点击搜索,切换标签
144
- >
145
- > 这些改动,要通过`事件`的形式,向外层触发,来通知其他组件进行联动。比如在树组件中切换了标签,根据不同的标签在CRUD表单中渲染不同的内容
146
- >
147
- > 这个时候我们就需要对触发改动的`组件`添加`事件`,比如在XFormTable中点击详情,我们希望打开一个抽屉,我们就需要为XFormTable添加一个点击详情的事件
148
-
149
-
150
-
151
- ### 行为
152
-
153
- > 行为是`组件`自身内部进行的一系列变动。比如其他组件触发了某个`事件`,这个`组件`需要对这个`事件`进行响应,并在自身内部进行一系列的更新。这就是一种行为
154
- >
155
- > 还是刚才的例子在XFormTable中点击详情,我们希望打开一个抽屉。那抽屉改变自身的显隐,就是响应点击详情`事件`的一种`行为`
1
+ # 奥枫低代码平台
2
+
3
+ > 奥枫低代码平台是一个前端低代码框架,它使用JSON配置来生成页面
4
+
5
+
6
+
7
+ ## 概念
8
+
9
+ ### 配置与组件
10
+
11
+ #### 结构
12
+
13
+ > 一个配置的结构是这样的
14
+ >
15
+ > ```json
16
+ > {
17
+ > "page": [
18
+ > {
19
+ > "id": "page_tvV9Ci",
20
+ > "type": "page",
21
+ > "title": "11",
22
+ > "body": [
23
+ > {
24
+ > "id": "page_tvV9Ci_0",
25
+ > "config": {
26
+ > "align": "top",
27
+ > "gutter": 0,
28
+ > "justify": "start"
29
+ > },
30
+ > "type": "row",
31
+ > "body": [
32
+ > {
33
+ > "type": "XFormTable",
34
+ > "selected": false,
35
+ > "span": 24,
36
+ > "id": "XFormTable_76UItw",
37
+ > "props": {
38
+ > "queryParamsName": "",
39
+ > "serviceName": ""
40
+ > },
41
+ > "selfEvent": [
42
+ > "action"
43
+ > ]
44
+ > }
45
+ > ]
46
+ > }
47
+ > ]
48
+ > }
49
+ > ]
50
+ > }
51
+ > ```
52
+ > page下的每一个对象,表示一个`页面容器`
53
+ >
54
+ > body中的每一个对象,表示一`行`
55
+ >
56
+ > 每行中body下的每个元素,表示一个`组件`
57
+
58
+ > 组件的完整配置是这样的
59
+ >
60
+ > ```json
61
+ > {
62
+ > "type": "xx组件",
63
+ > "span": 12,
64
+ > "id": "xx组件_001",
65
+ > "selected": false,
66
+ > "props": {
67
+ > "值1": "111",
68
+ > "值2": "222",
69
+ > ...
70
+ > },
71
+ > "selfEvent": [
72
+ > "action",
73
+ > ...
74
+ > ],
75
+ > "onEvent": {
76
+ > "action": [
77
+ > {
78
+ > "emitType": "action",
79
+ > "eventType": "changeValue",
80
+ > "target": "组件_00x",
81
+ > "targetKey": "data"
82
+ > },
83
+ > {...}
84
+ > ]
85
+ > }
86
+ > }
87
+ > ```
88
+ >
89
+ > `type`定义了组件的类型
90
+ >
91
+ > `span`定义了组件的宽度
92
+ >
93
+ > `selected`定义了组件当前是否被选中
94
+ >
95
+ > `id`表示组件的唯一标识
96
+ >
97
+ > `props`中定义的是组件可以被改变的值
98
+ >
99
+ > `selfEvent`定义了组件可以发出哪些事件交给低代码平台处理
100
+ >
101
+ > `onEvent`表示每一个事件的具体定义
102
+ >
103
+ > `onEvent`中的每一个对象的key代表了是针对哪种事件的处理
104
+
105
+ > 在低代码平台中,最小的单位是`组件`,最大的单位是`页面容器`
106
+
107
+
108
+
109
+ #### 页面容器
110
+
111
+ > 一个`页面容器`可以是`页面`,`弹框`,`抽屉`等
112
+ >
113
+ > `页面容器`是所有`组件`的容器,`组件`组成了`行`,`行`组成了`页面`
114
+
115
+
116
+
117
+ #### 组件
118
+
119
+ > `组件`是低代码平台的最小单位
120
+ >
121
+ > 一个组件是某种功能的封装,比如XFormTable是为了展示CRUD表单,XTree是为了展示树型结构
122
+
123
+
124
+
125
+ #### 组件的拆分
126
+
127
+ > 如同栅格化布局一样,每一行套每一列
128
+ >
129
+ > 某个列又可被看做一个整体,在其下继续拆分为多行,每行又包含多列
130
+
131
+ > 比如一个页面,左侧是导航栏,右侧是内容栏
132
+ >
133
+ > 这就是第一行,第一行分为两列,左侧列是导航栏,右侧列是内容栏
134
+ >
135
+ > 内容栏又被分为了两行
136
+ >
137
+ > 第一行是标题,第二行是主要内容
138
+
139
+
140
+
141
+ ### 事件
142
+
143
+ > 在组件中,会因为各种各样的原因,修改一些状态,比如点击搜索,切换标签
144
+ >
145
+ > 这些改动,要通过`事件`的形式,向外层触发,来通知其他组件进行联动。比如在树组件中切换了标签,根据不同的标签在CRUD表单中渲染不同的内容
146
+ >
147
+ > 这个时候我们就需要对触发改动的`组件`添加`事件`,比如在XFormTable中点击详情,我们希望打开一个抽屉,我们就需要为XFormTable添加一个点击详情的事件
148
+
149
+
150
+
151
+ ### 行为
152
+
153
+ > 行为是`组件`自身内部进行的一系列变动。比如其他组件触发了某个`事件`,这个`组件`需要对这个`事件`进行响应,并在自身内部进行一系列的更新。这就是一种行为
154
+ >
155
+ > 还是刚才的例子在XFormTable中点击详情,我们希望打开一个抽屉。那抽屉改变自身的显隐,就是响应点击详情`事件`的一种`行为`