vue2-client 1.18.4 → 1.18.6

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 (243) 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 +46 -51
  133. package/src/base-client/components/common/XTable/TableCellRenderer.vue +161 -161
  134. package/src/base-client/components/common/XTagGroup/index.vue +52 -52
  135. package/src/base-client/components/common/XTree/XTree.vue +424 -424
  136. package/src/base-client/components/common/XTree/index.js +3 -3
  137. package/src/base-client/components/common/XTree/index.md +36 -36
  138. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +113 -113
  139. package/src/base-client/components/common/XTreeOne/XTreeOnePro.vue +128 -128
  140. package/src/base-client/components/common/richTextModal/index.vue +56 -56
  141. package/src/base-client/components/common/richTextModal/richDemo.vue +48 -48
  142. package/src/base-client/components/his/XCharge/XChargeDemo.vue +145 -145
  143. package/src/base-client/components/his/XHisEditor/index.js +3 -3
  144. package/src/base-client/components/index.js +51 -51
  145. package/src/base-client/components/layout/XTreeView/XTreeView.vue +130 -130
  146. package/src/base-client/components/layout/XTreeView/index.js +3 -3
  147. package/src/base-client/components/layout/XTreeView/index.md +46 -46
  148. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  149. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  150. package/src/base-client/plugins/Recording.js +258 -258
  151. package/src/base-client/plugins/index.js +23 -23
  152. package/src/components/CodeMirror/inedx.vue +118 -118
  153. package/src/components/CodeMirror/setting.js +40 -40
  154. package/src/components/checkbox/ImgCheckbox.vue +117 -117
  155. package/src/components/checkbox/ImgCheckboxGroup.vue +76 -76
  156. package/src/components/checkbox/index.js +9 -9
  157. package/src/components/exception/ExceptionPage.vue +70 -70
  158. package/src/components/g2Charts/constants.js +202 -202
  159. package/src/components/g2Charts/demo.vue +808 -808
  160. package/src/components/g2Charts/designer.vue +228 -228
  161. package/src/components/g2Charts/designerBaseConfig.vue +61 -61
  162. package/src/components/g2Charts/designerDataConfig.vue +259 -259
  163. package/src/components/g2Charts/designerStyleConfig.vue +16 -16
  164. package/src/components/g2Charts/index.vue +397 -397
  165. package/src/components/setting/Setting.vue +234 -234
  166. package/src/config/CreateQueryConfig.js +325 -325
  167. package/src/config/default/antd.config.js +89 -89
  168. package/src/config/default/setting.config.js +55 -55
  169. package/src/font-style/font.css +60 -60
  170. package/src/layouts/PageLayout.vue +151 -151
  171. package/src/layouts/SinglePageView.vue +136 -136
  172. package/src/layouts/header/AdminHeader.vue +132 -132
  173. package/src/layouts/header/InstitutionDetail.vue +181 -181
  174. package/src/layouts/tabs/TabsHead.vue +189 -189
  175. package/src/pages/DefaultExample/index.vue +77 -77
  176. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  177. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  178. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  179. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  180. package/src/pages/DynamicStatistics/FavoriteList.vue +50 -50
  181. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  182. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  183. package/src/pages/DynamicStatistics/index.vue +282 -282
  184. package/src/pages/Example/childIndex.vue +15 -15
  185. package/src/pages/Example/index.vue +30 -30
  186. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  187. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  188. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  189. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  190. package/src/pages/NewDynamicStatistics/FavoriteList.vue +50 -50
  191. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  192. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  193. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  194. package/src/pages/Recording/index.vue +77 -77
  195. package/src/pages/ServiceReview/index.vue +284 -284
  196. package/src/pages/SubExample/index.vue +26 -26
  197. package/src/pages/WorkflowDetail/WorkflowPageDetail/TrimTextTail.vue +23 -23
  198. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandle.vue +1815 -1815
  199. package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowTimeline.vue +1014 -1014
  200. package/src/pages/XReportView/index.vue +64 -64
  201. package/src/pages/XTreeOneProExample/index.vue +67 -67
  202. package/src/pages/login/Login.vue +379 -379
  203. package/src/pages/login/LoginV3.vue +389 -389
  204. package/src/pages/lowCode/lowCodeEditor.vue +1219 -1219
  205. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  206. package/src/pages/report/ReportTable.js +124 -124
  207. package/src/pages/resourceManage/orgListManage.vue +98 -98
  208. package/src/pages/system/settings/modifyPassword.vue +117 -117
  209. package/src/pages/system/ticket/index.vue +480 -480
  210. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  211. package/src/pages/userInfoDetailManage/ChangeMeterRecordQuery/index.vue +64 -64
  212. package/src/pages/userInfoDetailManage/InfoChangeRecordQuery/index.vue +64 -64
  213. package/src/pages/userInfoDetailManage/InstructRecordQuery/index.vue +64 -64
  214. package/src/pages/userInfoDetailManage/MeterParamRecordQuery/index.vue +64 -64
  215. package/src/pages/userInfoDetailManage/TransferRecordQuery/index.vue +66 -66
  216. package/src/pages/userInfoDetailManage/WatchCollectionRecordQuery/index.vue +64 -64
  217. package/src/plugins/EventLogPlugin.js +33 -33
  218. package/src/plugins/FindParentsData.js +17 -17
  219. package/src/services/DataModel.js +30 -30
  220. package/src/services/LodopFuncs.js +137 -137
  221. package/src/services/api/TicketDetailsViewApi.js +46 -46
  222. package/src/services/api/entity.js +18 -18
  223. package/src/services/api/index.js +17 -17
  224. package/src/store/modules/account.js +121 -121
  225. package/src/store/modules/index.js +5 -5
  226. package/src/store/modules/lowCode.js +33 -33
  227. package/src/theme/default/style.less +58 -58
  228. package/src/theme/global.less +313 -313
  229. package/src/utils/formatter.js +74 -74
  230. package/src/utils/htmlToPDF.js +108 -108
  231. package/src/utils/htmlToPDFApi.js +5 -5
  232. package/src/utils/login.js +188 -188
  233. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  234. package/src/utils/lowcode/lowcodeLog.js +29 -29
  235. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  236. package/src/utils/lowcode/registerComponentForEditor.js +1 -1
  237. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  238. package/src/utils/map-utils.js +47 -47
  239. package/src/utils/reg.js +95 -95
  240. package/src/utils/runEvalFunction.js +14 -14
  241. package/src/utils/theme-color-replacer-extend.js +92 -92
  242. package/src/utils/util.js +329 -329
  243. package/src/utils/waterMark.js +31 -31
@@ -1,218 +1,218 @@
1
- # Vue2-Client 代码风格和约定
2
-
3
- ## 总体原则
4
- - 编写简洁、技术性的JavaScript代码
5
- - 提供准确的代码示例
6
- - 优先迭代和模块化,避免代码重复
7
- - 使用描述性变量名(如:isLoading, hasError)
8
-
9
- ## Vue组件开发规范
10
-
11
- ### 组件API风格
12
- **优先使用**:
13
- - Vue 2.7组合API + setup语法糖
14
- - 声明式编程模式
15
-
16
- **避免使用**(除非修改现有代码):
17
- - 选项API (Options API)
18
- - 传统的setup标签形式
19
-
20
- ### 示例:推荐的组件结构
21
- ```vue
22
- <script setup>
23
- import { ref, computed } from 'vue'
24
-
25
- // 使用组合API
26
- const isLoading = ref(false)
27
- const hasError = ref(false)
28
-
29
- // 计算属性使用箭头函数
30
- const displayText = computed(() => {
31
- return isLoading.value ? '加载中...' : '已完成'
32
- })
33
-
34
- // 方法使用箭头函数
35
- const handleClick = () => {
36
- isLoading.value = true
37
- }
38
- </script>
39
-
40
- <template>
41
- <div>{{ displayText }}</div>
42
- </template>
43
- ```
44
-
45
- ## 命名约定
46
-
47
- ### 目录命名
48
- - 使用kebab-case(小写带破折号)
49
- - 示例:`components/auth-wizard`、`pages/user-manage`
50
-
51
- ### 文件命名
52
- - **组件文件**:使用PascalCase
53
- - 示例:`AuthWizard.vue`、`UserTable.vue`
54
- - **可组合函数**:使用camelCase
55
- - 示例:`useAuthState.js`、`useFormValidation.js`
56
- - **工具函数**:使用camelCase
57
- - 示例:`formatDate.js`、`encryptData.js`
58
-
59
- ### 变量命名
60
- - **布尔值**:使用助动词前缀
61
- - `isLoading`、`hasError`、`canEdit`、`shouldShow`
62
- - **普通变量**:使用camelCase
63
- - `userData`、`pageTitle`、`apiResponse`
64
- - **常量**:使用UPPER_SNAKE_CASE
65
- - `API_BASE_URL`、`MAX_RETRY_COUNT`
66
-
67
- ## 项目特定约定
68
-
69
- ### X组件命名规范
70
- Base-client中的核心组件使用X前缀:
71
- - `XForm`:表单组件
72
- - `XTable`:表格组件
73
- - `XCard`:卡片组件
74
- - `XPageView`:页面视图组件
75
-
76
- ### 组件文件结构
77
- ```
78
- src/
79
- ├── base-client/ # 基础组件(全局注册)
80
- │ ├── components/ # X系列组件
81
- │ └── plugins/ # 全局插件
82
- ├── components/ # 通用组件(按需引入)
83
- ├── pages/ # 页面组件
84
- └── layouts/ # 布局组件
85
- ```
86
-
87
- ## 代码格式规范
88
-
89
- ### 语法和格式
90
- - **箭头函数**:方法和计算属性统一使用箭头函数
91
- - **简洁语法**:避免条件语句中不必要的花括号
92
- ```javascript
93
- // 推荐
94
- if (isValid) return true
95
-
96
- // 避免(简单语句)
97
- if (isValid) {
98
- return true
99
- }
100
- ```
101
- - **模板语法**:使用声明式渲染,避免在模板中写复杂逻辑
102
-
103
- ### 导入顺序
104
- 文件导入按以下顺序组织:
105
- 1. Vue核心和第三方库
106
- 2. 组件导入
107
- 3. 可组合函数(composables)
108
- 4. 工具函数(helpers)
109
- 5. 静态内容(assets、styles)
110
- 6. 类型定义(如果有)
111
-
112
- 示例:
113
- ```javascript
114
- // 1. 核心库
115
- import { ref, computed } from 'vue'
116
- import { message } from 'ant-design-vue'
117
-
118
- // 2. 组件
119
- import UserForm from '@/components/UserForm.vue'
120
-
121
- // 3. 可组合函数
122
- import { useAuth } from '@/composables/useAuth'
123
-
124
- // 4. 工具
125
- import { formatDate } from '@/utils/date'
126
-
127
- // 5. 样式
128
- import './styles.less'
129
- ```
130
-
131
- ## Less样式规范
132
-
133
- ### 样式组织
134
- - 使用Less预处理器
135
- - 主题变量定义在`src/theme/`
136
- - 组件样式与组件文件共同放置
137
- - 使用BEM命名规范(可选,但推荐)
138
-
139
- ### 示例
140
- ```less
141
- .user-table {
142
- &__header {
143
- padding: 16px;
144
- }
145
-
146
- &__body {
147
- min-height: 400px;
148
- }
149
- }
150
- ```
151
-
152
- ## 注释规范
153
-
154
- ### 注释语言
155
- - **必须使用中文**编写注释
156
- - 代码注释、文档、说明都使用中文
157
-
158
- ### 注释格式
159
- ```javascript
160
- /**
161
- * 用户认证可组合函数
162
- * @returns {Object} 返回认证状态和方法
163
- */
164
- const useAuth = () => {
165
- // 检查用户是否已登录
166
- const isLoggedIn = ref(false)
167
-
168
- return { isLoggedIn }
169
- }
170
- ```
171
-
172
- ## 配置驱动开发规范
173
-
174
- ### JSON配置
175
- 项目采用配置驱动模式,组件行为通过JSON配置定义:
176
- ```javascript
177
- // XForm配置示例
178
- const formConfig = {
179
- columns: [
180
- {
181
- title: '用户名',
182
- key: 'username',
183
- type: 'input',
184
- required: true
185
- }
186
- ]
187
- }
188
- ```
189
-
190
- ### 配置文件位置
191
- - 系统配置:`src/config/`
192
- - 默认配置:`src/config/default/`
193
- - 配置替换器:`src/config/replacer/`
194
-
195
- ## ESLint规范
196
- - 开发时默认禁用ESLint(--no-eslint)
197
- - 提交前必须运行`npm run lint`检查
198
- - 遵循Vue官方ESLint规则
199
- - 标准JavaScript风格(@vue/eslint-config-standard)
200
-
201
- ## Git提交规范
202
- 虽然项目未强制要求,但推荐使用约定式提交:
203
- - `feat:` 新功能
204
- - `fix:` 修复bug
205
- - `docs:` 文档更新
206
- - `style:` 代码格式调整
207
- - `refactor:` 重构
208
- - `test:` 测试相关
209
- - `chore:` 构建或工具变更
210
-
211
- ## 最佳实践
212
- 1. **组件复用**:优先使用base-client中的X组件
213
- 2. **配置优于编码**:能用配置实现的不写硬编码
214
- 3. **mixins使用**:表单验证等共享逻辑使用mixins
215
- 4. **响应式设计**:使用XFormCol栅格系统
216
- 5. **API调用**:统一使用`src/services/apiService.js`
217
- 6. **数据转换**:遵循DataModel模式
1
+ # Vue2-Client 代码风格和约定
2
+
3
+ ## 总体原则
4
+ - 编写简洁、技术性的JavaScript代码
5
+ - 提供准确的代码示例
6
+ - 优先迭代和模块化,避免代码重复
7
+ - 使用描述性变量名(如:isLoading, hasError)
8
+
9
+ ## Vue组件开发规范
10
+
11
+ ### 组件API风格
12
+ **优先使用**:
13
+ - Vue 2.7组合API + setup语法糖
14
+ - 声明式编程模式
15
+
16
+ **避免使用**(除非修改现有代码):
17
+ - 选项API (Options API)
18
+ - 传统的setup标签形式
19
+
20
+ ### 示例:推荐的组件结构
21
+ ```vue
22
+ <script setup>
23
+ import { ref, computed } from 'vue'
24
+
25
+ // 使用组合API
26
+ const isLoading = ref(false)
27
+ const hasError = ref(false)
28
+
29
+ // 计算属性使用箭头函数
30
+ const displayText = computed(() => {
31
+ return isLoading.value ? '加载中...' : '已完成'
32
+ })
33
+
34
+ // 方法使用箭头函数
35
+ const handleClick = () => {
36
+ isLoading.value = true
37
+ }
38
+ </script>
39
+
40
+ <template>
41
+ <div>{{ displayText }}</div>
42
+ </template>
43
+ ```
44
+
45
+ ## 命名约定
46
+
47
+ ### 目录命名
48
+ - 使用kebab-case(小写带破折号)
49
+ - 示例:`components/auth-wizard`、`pages/user-manage`
50
+
51
+ ### 文件命名
52
+ - **组件文件**:使用PascalCase
53
+ - 示例:`AuthWizard.vue`、`UserTable.vue`
54
+ - **可组合函数**:使用camelCase
55
+ - 示例:`useAuthState.js`、`useFormValidation.js`
56
+ - **工具函数**:使用camelCase
57
+ - 示例:`formatDate.js`、`encryptData.js`
58
+
59
+ ### 变量命名
60
+ - **布尔值**:使用助动词前缀
61
+ - `isLoading`、`hasError`、`canEdit`、`shouldShow`
62
+ - **普通变量**:使用camelCase
63
+ - `userData`、`pageTitle`、`apiResponse`
64
+ - **常量**:使用UPPER_SNAKE_CASE
65
+ - `API_BASE_URL`、`MAX_RETRY_COUNT`
66
+
67
+ ## 项目特定约定
68
+
69
+ ### X组件命名规范
70
+ Base-client中的核心组件使用X前缀:
71
+ - `XForm`:表单组件
72
+ - `XTable`:表格组件
73
+ - `XCard`:卡片组件
74
+ - `XPageView`:页面视图组件
75
+
76
+ ### 组件文件结构
77
+ ```
78
+ src/
79
+ ├── base-client/ # 基础组件(全局注册)
80
+ │ ├── components/ # X系列组件
81
+ │ └── plugins/ # 全局插件
82
+ ├── components/ # 通用组件(按需引入)
83
+ ├── pages/ # 页面组件
84
+ └── layouts/ # 布局组件
85
+ ```
86
+
87
+ ## 代码格式规范
88
+
89
+ ### 语法和格式
90
+ - **箭头函数**:方法和计算属性统一使用箭头函数
91
+ - **简洁语法**:避免条件语句中不必要的花括号
92
+ ```javascript
93
+ // 推荐
94
+ if (isValid) return true
95
+
96
+ // 避免(简单语句)
97
+ if (isValid) {
98
+ return true
99
+ }
100
+ ```
101
+ - **模板语法**:使用声明式渲染,避免在模板中写复杂逻辑
102
+
103
+ ### 导入顺序
104
+ 文件导入按以下顺序组织:
105
+ 1. Vue核心和第三方库
106
+ 2. 组件导入
107
+ 3. 可组合函数(composables)
108
+ 4. 工具函数(helpers)
109
+ 5. 静态内容(assets、styles)
110
+ 6. 类型定义(如果有)
111
+
112
+ 示例:
113
+ ```javascript
114
+ // 1. 核心库
115
+ import { ref, computed } from 'vue'
116
+ import { message } from 'ant-design-vue'
117
+
118
+ // 2. 组件
119
+ import UserForm from '@/components/UserForm.vue'
120
+
121
+ // 3. 可组合函数
122
+ import { useAuth } from '@/composables/useAuth'
123
+
124
+ // 4. 工具
125
+ import { formatDate } from '@/utils/date'
126
+
127
+ // 5. 样式
128
+ import './styles.less'
129
+ ```
130
+
131
+ ## Less样式规范
132
+
133
+ ### 样式组织
134
+ - 使用Less预处理器
135
+ - 主题变量定义在`src/theme/`
136
+ - 组件样式与组件文件共同放置
137
+ - 使用BEM命名规范(可选,但推荐)
138
+
139
+ ### 示例
140
+ ```less
141
+ .user-table {
142
+ &__header {
143
+ padding: 16px;
144
+ }
145
+
146
+ &__body {
147
+ min-height: 400px;
148
+ }
149
+ }
150
+ ```
151
+
152
+ ## 注释规范
153
+
154
+ ### 注释语言
155
+ - **必须使用中文**编写注释
156
+ - 代码注释、文档、说明都使用中文
157
+
158
+ ### 注释格式
159
+ ```javascript
160
+ /**
161
+ * 用户认证可组合函数
162
+ * @returns {Object} 返回认证状态和方法
163
+ */
164
+ const useAuth = () => {
165
+ // 检查用户是否已登录
166
+ const isLoggedIn = ref(false)
167
+
168
+ return { isLoggedIn }
169
+ }
170
+ ```
171
+
172
+ ## 配置驱动开发规范
173
+
174
+ ### JSON配置
175
+ 项目采用配置驱动模式,组件行为通过JSON配置定义:
176
+ ```javascript
177
+ // XForm配置示例
178
+ const formConfig = {
179
+ columns: [
180
+ {
181
+ title: '用户名',
182
+ key: 'username',
183
+ type: 'input',
184
+ required: true
185
+ }
186
+ ]
187
+ }
188
+ ```
189
+
190
+ ### 配置文件位置
191
+ - 系统配置:`src/config/`
192
+ - 默认配置:`src/config/default/`
193
+ - 配置替换器:`src/config/replacer/`
194
+
195
+ ## ESLint规范
196
+ - 开发时默认禁用ESLint(--no-eslint)
197
+ - 提交前必须运行`npm run lint`检查
198
+ - 遵循Vue官方ESLint规则
199
+ - 标准JavaScript风格(@vue/eslint-config-standard)
200
+
201
+ ## Git提交规范
202
+ 虽然项目未强制要求,但推荐使用约定式提交:
203
+ - `feat:` 新功能
204
+ - `fix:` 修复bug
205
+ - `docs:` 文档更新
206
+ - `style:` 代码格式调整
207
+ - `refactor:` 重构
208
+ - `test:` 测试相关
209
+ - `chore:` 构建或工具变更
210
+
211
+ ## 最佳实践
212
+ 1. **组件复用**:优先使用base-client中的X组件
213
+ 2. **配置优于编码**:能用配置实现的不写硬编码
214
+ 3. **mixins使用**:表单验证等共享逻辑使用mixins
215
+ 4. **响应式设计**:使用XFormCol栅格系统
216
+ 5. **API调用**:统一使用`src/services/apiService.js`
217
+ 6. **数据转换**:遵循DataModel模式
218
218
  7. **错误处理**:使用axios拦截器统一处理
@@ -1,55 +1,55 @@
1
- # Vue2-Client 项目概述
2
-
3
- ## 项目目的
4
- Vue2-Client是一个基于Vue Antd Admin封装的**通用基础组件库**,旨在为企业级应用提供统一的UI组件和开发框架。
5
-
6
- ## 核心定位
7
- - **可复用组件库**:提供一套完整的企业级UI组件
8
- - **低代码平台基础**:支持通过JSON配置驱动的动态UI生成
9
- - **多业务场景支持**:适用于医院信息系统(HIS)、工单管理、系统管理等多个领域
10
- - **多环境部署**:支持gaslink、revenue、liuli、scada、iot、his等多个部署环境
11
-
12
- ## 主要功能模块
13
-
14
- ### 1. Base-Client基础组件系统
15
- 核心组件库,包含:
16
- - **X系列组件**:XForm、XTable、XFormTable、XPageView等配置驱动组件
17
- - **全局插件**:认证、国际化、页面管理等Vue插件
18
- - 所有base-client组件全局注册,整个应用直接可用
19
-
20
- ### 2. 低代码平台集成
21
- - 内置低代码编辑器和渲染器
22
- - 支持通过JSON配置动态生成表单、表格和页面布局
23
- - 逻辑运行器系统(LogicRunner)和表达式求值(ExpressionRunner)
24
- - 自定义组件注册系统
25
-
26
- ### 3. 业务页面模块
27
- - **系统管理**:用户、角色、权限管理
28
- - **工单流程**:工单详情、流程审批
29
- - **资源管理**:资源分配和管理
30
- - **动态统计**:数据可视化和报表
31
- - **HIS医院系统**:医疗信息管理相关功能
32
-
33
- ### 4. 配置驱动开发
34
- - 通过`src/config/`中的配置文件定义组件行为
35
- - 支持多环境配置切换
36
- - 统一的配置管理和替换机制
37
-
38
- ## 技术特点
39
- 1. **配置优于编码**:大部分UI通过JSON配置生成,减少重复代码
40
- 2. **组件化架构**:高度模块化,易于维护和扩展
41
- 3. **主题定制**:支持动态主题色替换
42
- 4. **国际化支持**:内置i18n支持多语言
43
- 5. **响应式设计**:基于Ant Design栅格系统的响应式布局
44
-
45
- ## 目标用户
46
- - 企业内部开发团队
47
- - 需要快速构建管理系统的项目
48
- - 低代码平台的二次开发者
49
- - 需要统一UI规范的多系统项目
50
-
51
- ## 项目状态
52
- - 当前版本:v1.17.13
53
- - 维护状态:活跃开发中
54
- - Git分支:dev分支
1
+ # Vue2-Client 项目概述
2
+
3
+ ## 项目目的
4
+ Vue2-Client是一个基于Vue Antd Admin封装的**通用基础组件库**,旨在为企业级应用提供统一的UI组件和开发框架。
5
+
6
+ ## 核心定位
7
+ - **可复用组件库**:提供一套完整的企业级UI组件
8
+ - **低代码平台基础**:支持通过JSON配置驱动的动态UI生成
9
+ - **多业务场景支持**:适用于医院信息系统(HIS)、工单管理、系统管理等多个领域
10
+ - **多环境部署**:支持gaslink、revenue、liuli、scada、iot、his等多个部署环境
11
+
12
+ ## 主要功能模块
13
+
14
+ ### 1. Base-Client基础组件系统
15
+ 核心组件库,包含:
16
+ - **X系列组件**:XForm、XTable、XFormTable、XPageView等配置驱动组件
17
+ - **全局插件**:认证、国际化、页面管理等Vue插件
18
+ - 所有base-client组件全局注册,整个应用直接可用
19
+
20
+ ### 2. 低代码平台集成
21
+ - 内置低代码编辑器和渲染器
22
+ - 支持通过JSON配置动态生成表单、表格和页面布局
23
+ - 逻辑运行器系统(LogicRunner)和表达式求值(ExpressionRunner)
24
+ - 自定义组件注册系统
25
+
26
+ ### 3. 业务页面模块
27
+ - **系统管理**:用户、角色、权限管理
28
+ - **工单流程**:工单详情、流程审批
29
+ - **资源管理**:资源分配和管理
30
+ - **动态统计**:数据可视化和报表
31
+ - **HIS医院系统**:医疗信息管理相关功能
32
+
33
+ ### 4. 配置驱动开发
34
+ - 通过`src/config/`中的配置文件定义组件行为
35
+ - 支持多环境配置切换
36
+ - 统一的配置管理和替换机制
37
+
38
+ ## 技术特点
39
+ 1. **配置优于编码**:大部分UI通过JSON配置生成,减少重复代码
40
+ 2. **组件化架构**:高度模块化,易于维护和扩展
41
+ 3. **主题定制**:支持动态主题色替换
42
+ 4. **国际化支持**:内置i18n支持多语言
43
+ 5. **响应式设计**:基于Ant Design栅格系统的响应式布局
44
+
45
+ ## 目标用户
46
+ - 企业内部开发团队
47
+ - 需要快速构建管理系统的项目
48
+ - 低代码平台的二次开发者
49
+ - 需要统一UI规范的多系统项目
50
+
51
+ ## 项目状态
52
+ - 当前版本:v1.17.13
53
+ - 维护状态:活跃开发中
54
+ - Git分支:dev分支
55
55
  - 部署环境:支持多环境部署