vue2-client 1.8.310 → 1.8.312

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 (222) 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/LowCode/lowcode.md +155 -155
  7. package/docs/LowCode/lowcodeForDeveloper.md +230 -230
  8. package/docs/index.md +30 -30
  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 +97 -97
  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 +438 -416
  23. package/src/base-client/components/common/AddressSearchCombobox/demo.vue +36 -36
  24. package/src/base-client/components/common/AddressSearchCombobox/ic_map.svg +6 -6
  25. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
  26. package/src/base-client/components/common/CitySelect/CitySelect.vue +342 -342
  27. package/src/base-client/components/common/CitySelect/index.js +3 -3
  28. package/src/base-client/components/common/CitySelect/index.md +109 -109
  29. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
  30. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +1014 -1014
  31. package/src/base-client/components/common/CreateQuery/index.js +3 -3
  32. package/src/base-client/components/common/CreateQuery/index.md +42 -42
  33. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +452 -452
  34. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +511 -511
  35. package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
  36. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
  37. package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +149 -149
  38. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  39. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  40. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
  41. package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
  42. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  43. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  44. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorPanel.vue +413 -350
  45. package/src/base-client/components/common/LowCodeComponent/LowCodePageOrganization.vue +502 -502
  46. package/src/base-client/components/common/LowCodeComponent/LowCodeRender.vue +728 -699
  47. package/src/base-client/components/common/LowCodeComponent/LowCodeRenderEnter.vue +29 -29
  48. package/src/base-client/components/common/LowCodeComponent/LowCodeUIStore.vue +219 -162
  49. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
  50. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  51. package/src/base-client/components/common/Tree/Tree.vue +149 -149
  52. package/src/base-client/components/common/Tree/index.js +2 -2
  53. package/src/base-client/components/common/Upload/Upload.vue +239 -239
  54. package/src/base-client/components/common/Upload/index.js +3 -3
  55. package/src/base-client/components/common/XAddForm/XAddForm.vue +105 -105
  56. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +807 -807
  57. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  58. package/src/base-client/components/common/XAddNativeForm/lowcodeEditorRegister.js +16 -16
  59. package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +303 -303
  60. package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
  61. package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
  62. package/src/base-client/components/common/XBadge/XBadge.vue +78 -78
  63. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  64. package/src/base-client/components/common/XDataCard/XDataCard.vue +355 -0
  65. package/src/base-client/components/common/XDataCard/index.js +3 -0
  66. package/src/base-client/components/common/XDataCard/index.md +1 -0
  67. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  68. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  69. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  70. package/src/base-client/components/common/XDescriptions/XDescriptions.vue +188 -187
  71. package/src/base-client/components/common/XDescriptions/XDescriptionsGroup.vue +306 -306
  72. package/src/base-client/components/common/XDescriptions/demo.vue +50 -50
  73. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  74. package/src/base-client/components/common/XDescriptions/index.md +83 -83
  75. package/src/base-client/components/common/XDetailsView/XDetailsView.vue +214 -214
  76. package/src/base-client/components/common/XDetailsView/index.js +3 -3
  77. package/src/base-client/components/common/XForm/XForm.vue +294 -294
  78. package/src/base-client/components/common/XForm/XFormItem.vue +911 -911
  79. package/src/base-client/components/common/XForm/XTreeSelect.vue +207 -207
  80. package/src/base-client/components/common/XForm/index.md +178 -178
  81. package/src/base-client/components/common/XFormCol/XFormCol.vue +36 -36
  82. package/src/base-client/components/common/XFormGroup/XFormGroup.vue +241 -241
  83. package/src/base-client/components/common/XFormGroup/demo.vue +40 -40
  84. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  85. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  86. package/src/base-client/components/common/XFormGroupDetails/XFormGroupDetails.vue +72 -72
  87. package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
  88. package/src/base-client/components/common/XFormTable/XFormTable.vue +545 -539
  89. package/src/base-client/components/common/XFormTable/demo.vue +72 -72
  90. package/src/base-client/components/common/XFormTable/index.md +98 -98
  91. package/src/base-client/components/common/XFormTable/lowcodeEditorRegister.js +30 -30
  92. package/src/base-client/components/common/XImportExcel/XImportExcel.vue +147 -147
  93. package/src/base-client/components/common/XReport/XReport.vue +858 -858
  94. package/src/base-client/components/common/XReport/XReportDemo.vue +266 -266
  95. package/src/base-client/components/common/XReport/XReportDesign.vue +509 -509
  96. package/src/base-client/components/common/XReport/XReportJsonRender.vue +295 -295
  97. package/src/base-client/components/common/XReport/XReportTrGroup.vue +801 -801
  98. package/src/base-client/components/common/XReport/index.js +3 -3
  99. package/src/base-client/components/common/XReport/index.md +44 -44
  100. package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
  101. package/src/base-client/components/common/XReportSlot/index.js +3 -3
  102. package/src/base-client/components/common/XSimpleDescriptions/XSimpleDescriptions.vue +137 -0
  103. package/src/base-client/components/common/XSimpleDescriptions/index.js +3 -0
  104. package/src/base-client/components/common/XSimpleDescriptions/index.md +7 -0
  105. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  106. package/src/base-client/components/common/XStepView/index.js +3 -3
  107. package/src/base-client/components/common/XStepView/index.md +31 -31
  108. package/src/base-client/components/common/XTable/XTable.vue +715 -676
  109. package/src/base-client/components/common/XTable/index.md +255 -255
  110. package/src/base-client/components/common/XTree/XTree.vue +423 -423
  111. package/src/base-client/components/common/XTree/index.js +3 -3
  112. package/src/base-client/components/common/XTree/index.md +36 -36
  113. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +114 -114
  114. package/src/base-client/components/common/XTreeOne/lowcodeEditorRegister.js +11 -11
  115. package/src/base-client/components/index.js +51 -51
  116. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  117. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  118. package/src/base-client/plugins/AppData.js +121 -121
  119. package/src/base-client/plugins/Config.js +19 -19
  120. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  121. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  122. package/src/bootstrap.js +39 -39
  123. package/src/components/CodeMirror/inedx.vue +118 -118
  124. package/src/components/CodeMirror/setting.js +40 -40
  125. package/src/components/FilePreview/FilePreview.vue +166 -166
  126. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  127. package/src/components/STable/index.js +361 -361
  128. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  129. package/src/components/checkbox/ImgCheckbox.vue +163 -163
  130. package/src/components/menu/SideMenu.vue +75 -75
  131. package/src/components/menu/menu.js +273 -273
  132. package/src/components/tool/AStepItem.vue +60 -60
  133. package/src/config/CreateQueryConfig.js +322 -322
  134. package/src/config/default/antd.config.js +89 -89
  135. package/src/config/default/setting.config.js +55 -55
  136. package/src/font-style/font.css +4 -4
  137. package/src/layouts/CommonLayout.vue +56 -56
  138. package/src/layouts/PageLayout.vue +151 -151
  139. package/src/layouts/SinglePageView.vue +138 -138
  140. package/src/layouts/header/AdminHeader.vue +132 -132
  141. package/src/layouts/header/HeaderNotice.vue +177 -177
  142. package/src/layouts/tabs/TabsHead.vue +189 -189
  143. package/src/layouts/tabs/TabsView.vue +387 -387
  144. package/src/lib.js +1 -1
  145. package/src/main.js +26 -26
  146. package/src/mock/extend/index.js +84 -84
  147. package/src/mock/goods/index.js +108 -108
  148. package/src/pages/AMisDemo/AMisDemo.vue +325 -325
  149. package/src/pages/AMisDemo/AMisDemo2.vue +74 -74
  150. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  151. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  152. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  153. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  154. package/src/pages/DynamicStatistics/FavoriteList.vue +51 -51
  155. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  156. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  157. package/src/pages/DynamicStatistics/index.vue +282 -282
  158. package/src/pages/Example/index.vue +193 -33
  159. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  160. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  161. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  162. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  163. package/src/pages/NewDynamicStatistics/FavoriteList.vue +51 -51
  164. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  165. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  166. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  167. package/src/pages/ServiceReview/index.vue +284 -284
  168. package/src/pages/XReportView/index.vue +62 -62
  169. package/src/pages/login/Login.vue +378 -378
  170. package/src/pages/login/LoginV3.vue +389 -389
  171. package/src/pages/lowCode/lowCodeEditor.vue +1219 -1030
  172. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  173. package/src/pages/resourceManage/orgListManage.vue +98 -98
  174. package/src/pages/system/dictionary/index.vue +44 -44
  175. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  176. package/src/pages/system/monitor/operLog/index.vue +37 -37
  177. package/src/pages/system/settings/modifyPassword.vue +117 -117
  178. package/src/pages/system/ticket/index.vue +480 -480
  179. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  180. package/src/router/async/config.async.js +34 -34
  181. package/src/router/async/router.map.js +104 -104
  182. package/src/router/guards.js +223 -223
  183. package/src/router/index.js +27 -27
  184. package/src/router.js +19 -19
  185. package/src/services/api/TicketDetailsViewApi.js +46 -46
  186. package/src/services/api/cas.js +79 -79
  187. package/src/services/api/common.js +307 -307
  188. package/src/services/api/entity.js +18 -18
  189. package/src/services/api/index.js +17 -17
  190. package/src/services/api/restTools.js +46 -46
  191. package/src/services/apiService.js +14 -14
  192. package/src/services/user.js +71 -71
  193. package/src/services/v3Api.js +81 -81
  194. package/src/store/modules/index.js +5 -5
  195. package/src/store/modules/lowCode.js +33 -33
  196. package/src/store/modules/setting.js +119 -119
  197. package/src/theme/default/style.less +58 -58
  198. package/src/theme/global.less +139 -139
  199. package/src/utils/authority-utils.js +85 -85
  200. package/src/utils/errorCode.js +6 -6
  201. package/src/utils/formatter.js +80 -80
  202. package/src/utils/htmlToPDF.js +108 -108
  203. package/src/utils/htmlToPDFApi.js +5 -5
  204. package/src/utils/indexedDB.js +258 -258
  205. package/src/utils/login.js +188 -188
  206. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  207. package/src/utils/lowcode/lowcodeLog.js +29 -29
  208. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  209. package/src/utils/lowcode/registerComponentForEditor.js +11 -11
  210. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  211. package/src/utils/map-utils.js +47 -47
  212. package/src/utils/reg.js +95 -95
  213. package/src/utils/request.js +347 -347
  214. package/src/utils/routerUtil.js +435 -435
  215. package/src/utils/runEvalFunction.js +6 -6
  216. package/src/utils/util.js +241 -241
  217. package/src/utils/waterMark.js +31 -31
  218. package/test/Amis.spec.js +163 -163
  219. package/test/Tree.spec.js +167 -167
  220. package/test/myDialog.spec.js +46 -46
  221. package/vue.config.js +181 -181
  222. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
@@ -1,149 +1,149 @@
1
- <template>
2
- <a-tree :treeData="treeData" :expandedKeys="expandedKeys" :selectedKeys="selectedKeys" @expand="handleExpand" @select="handleSelect"></a-tree>
3
- </template>
4
-
5
- <script>
6
- import { Tree } from 'ant-design-vue'
7
- import Vue from 'vue'
8
- import { getConfig, runLogic } from '@vue2-client/services/api/common'
9
-
10
- export default {
11
- components: {
12
- 'a-tree': Tree,
13
- },
14
- props: {
15
- configContent: {
16
- type: Object,
17
- default: {}
18
- },
19
- systemName: {
20
- type: String,
21
- default: ''
22
- },
23
- configName: {
24
- type: String,
25
- default: ''
26
- },
27
- },
28
- data () {
29
- return {
30
- treeData: [],
31
- expandedKeys: [],
32
- selectedKeys: [],
33
- actualConfig: null,
34
- }
35
- },
36
- async mounted () {
37
- try {
38
- this.actualConfig = await getConfig(this.configContent, this.configName, this.systemName)
39
- } catch (error) {
40
- console.error('Failed to get config:', error)
41
- }
42
- // 根据配置文件中的tableStructure字段生成树组件结构
43
- this.generateTreeData()
44
- },
45
- methods: {
46
- async generateTreeData () {
47
- try {
48
- // 定义逻辑名称和参数,这里需要根据实际情况来填写
49
- const logicName = 'get_root_nodes' // 例如: 'GenerateTreeStructure'
50
- const parameters = {
51
- // 你需要传递给后端逻辑的参数
52
- // 例如: key1: 'value1', key2: 'value2'
53
- }
54
-
55
- // 调用通用业务逻辑函数
56
- const response = await runLogic(logicName, parameters)
57
-
58
- // 检查返回的数据是否有效,这将依赖于你的后端服务发送什么样的响应
59
- if (response && response.data) {
60
- // 如果响应中有数据,则将其设置为树组件的数据
61
- this.treeData = response.data // 或者根据实际的返回结构调整,比如 response.data.treeStructure
62
- } else {
63
- // 处理没有返回数据的情况,可以是设置默认值或抛出错误
64
- throw new Error('No data returned from the logic execution')
65
- }
66
- } catch (error) {
67
- // 处理调用逻辑或设置数据时出现的错误
68
- console.error('There was an error generating the tree data:', error)
69
- // 这里可以进行更多的错误处理,比如显示一个错误消息到UI界面
70
- }
71
- },
72
- async handleExpand (expandedKeys, { expanded, node }) {
73
- console.log('handleExpand', expandedKeys, expanded, node)
74
- // 更新展开的节点列表,由于这不依赖于异步操作,因此可以立即设置
75
- this.expandedKeys = expandedKeys
76
-
77
- if (expanded) {
78
- try {
79
- // 向后端发送请求,获取子节点数据
80
- const path = this.getNodePath(node)
81
- const childNodes = await this.fetchChildNodes(path) // 等待子节点数据
82
-
83
- // 将子节点数据添加到当前节点下
84
- Vue.set(node, 'children', childNodes)
85
-
86
- // 现在,我们需要确保每个子节点都有一个指向其父节点的引用。
87
- // 这是必须的,因为 'getNodePath' 方法依赖于 'parentNode' 属性来重建节点的完整路径。
88
- if (childNodes && childNodes.length) {
89
- childNodes.forEach(child => {
90
- // 由于我们直接修改了节点,这可能不会触发视图的自动更新。
91
- // 如果你遇到了这个问题,你可能需要找到一种方法来手动触发组件的重新渲染。
92
- child.parentNode = node
93
- })
94
- }
95
- } catch (error) {
96
- // 处理或记录错误
97
- console.error('An error occurred:', error)
98
- // 这里可以执行其他错误处理逻辑,比如向用户显示错误消息
99
- }
100
- }
101
- // 如果没有展开,就没有更多要做的,因为 this.expandedKeys 已经更新
102
- },
103
- handleSelect (selectedKeys, { selected, node }) {
104
- if (selected) {
105
- // 触发节点选中事件,传递节点的完整路径
106
- const path = this.getNodePath(node)
107
- this.$emit('nodeSelected', path)
108
- } else {
109
- this.selectedKeys = selectedKeys
110
- }
111
- },
112
- getNodePath (node) {
113
- // 获取节点的完整路径
114
- let path = node.title
115
- let parent = node.parentNode
116
- while (parent) {
117
- path = parent.title + '/' + path
118
- parent = parent.parentNode
119
- }
120
- return path
121
- },
122
- async fetchChildNodes (path) {
123
- // 定义逻辑名称和参数 - 根据你的后端逻辑具体定义这些值
124
- const logicName = 'get_child_nodes' // 例如,这可能是后端服务识别的逻辑名称
125
- const parameters = {
126
- path: path, // 参数是什么取决于你的后端服务需要什么
127
- }
128
-
129
- try {
130
- // 调用通用业务逻辑函数并等待结果
131
- const response = await runLogic(logicName, parameters)
132
-
133
- // 确保响应包含我们期望的数据 - 如果你的后端服务使用不同的结构,你可能需要调整这里
134
- if (response && response.data) {
135
- return Promise.resolve(response.data) // 返回子节点数据
136
- } else {
137
- // 如果响应格式不符合预期,可以抛出一个错误或返回一个失败的Promise
138
- // eslint-disable-next-line prefer-promise-reject-errors
139
- return Promise.reject('Received unexpected response format')
140
- }
141
- } catch (error) {
142
- // 如果请求失败(例如网络错误、服务器错误等),我们捕获这个错误并将其向上传递
143
- console.error('Error fetching child nodes:', error)
144
- return Promise.reject(error.message || 'Error fetching child nodes')
145
- }
146
- }
147
- },
148
- }
149
- </script>
1
+ <template>
2
+ <a-tree :treeData="treeData" :expandedKeys="expandedKeys" :selectedKeys="selectedKeys" @expand="handleExpand" @select="handleSelect"></a-tree>
3
+ </template>
4
+
5
+ <script>
6
+ import { Tree } from 'ant-design-vue'
7
+ import Vue from 'vue'
8
+ import { getConfig, runLogic } from '@vue2-client/services/api/common'
9
+
10
+ export default {
11
+ components: {
12
+ 'a-tree': Tree,
13
+ },
14
+ props: {
15
+ configContent: {
16
+ type: Object,
17
+ default: {}
18
+ },
19
+ systemName: {
20
+ type: String,
21
+ default: ''
22
+ },
23
+ configName: {
24
+ type: String,
25
+ default: ''
26
+ },
27
+ },
28
+ data () {
29
+ return {
30
+ treeData: [],
31
+ expandedKeys: [],
32
+ selectedKeys: [],
33
+ actualConfig: null,
34
+ }
35
+ },
36
+ async mounted () {
37
+ try {
38
+ this.actualConfig = await getConfig(this.configContent, this.configName, this.systemName)
39
+ } catch (error) {
40
+ console.error('Failed to get config:', error)
41
+ }
42
+ // 根据配置文件中的tableStructure字段生成树组件结构
43
+ this.generateTreeData()
44
+ },
45
+ methods: {
46
+ async generateTreeData () {
47
+ try {
48
+ // 定义逻辑名称和参数,这里需要根据实际情况来填写
49
+ const logicName = 'get_root_nodes' // 例如: 'GenerateTreeStructure'
50
+ const parameters = {
51
+ // 你需要传递给后端逻辑的参数
52
+ // 例如: key1: 'value1', key2: 'value2'
53
+ }
54
+
55
+ // 调用通用业务逻辑函数
56
+ const response = await runLogic(logicName, parameters)
57
+
58
+ // 检查返回的数据是否有效,这将依赖于你的后端服务发送什么样的响应
59
+ if (response && response.data) {
60
+ // 如果响应中有数据,则将其设置为树组件的数据
61
+ this.treeData = response.data // 或者根据实际的返回结构调整,比如 response.data.treeStructure
62
+ } else {
63
+ // 处理没有返回数据的情况,可以是设置默认值或抛出错误
64
+ throw new Error('No data returned from the logic execution')
65
+ }
66
+ } catch (error) {
67
+ // 处理调用逻辑或设置数据时出现的错误
68
+ console.error('There was an error generating the tree data:', error)
69
+ // 这里可以进行更多的错误处理,比如显示一个错误消息到UI界面
70
+ }
71
+ },
72
+ async handleExpand (expandedKeys, { expanded, node }) {
73
+ console.log('handleExpand', expandedKeys, expanded, node)
74
+ // 更新展开的节点列表,由于这不依赖于异步操作,因此可以立即设置
75
+ this.expandedKeys = expandedKeys
76
+
77
+ if (expanded) {
78
+ try {
79
+ // 向后端发送请求,获取子节点数据
80
+ const path = this.getNodePath(node)
81
+ const childNodes = await this.fetchChildNodes(path) // 等待子节点数据
82
+
83
+ // 将子节点数据添加到当前节点下
84
+ Vue.set(node, 'children', childNodes)
85
+
86
+ // 现在,我们需要确保每个子节点都有一个指向其父节点的引用。
87
+ // 这是必须的,因为 'getNodePath' 方法依赖于 'parentNode' 属性来重建节点的完整路径。
88
+ if (childNodes && childNodes.length) {
89
+ childNodes.forEach(child => {
90
+ // 由于我们直接修改了节点,这可能不会触发视图的自动更新。
91
+ // 如果你遇到了这个问题,你可能需要找到一种方法来手动触发组件的重新渲染。
92
+ child.parentNode = node
93
+ })
94
+ }
95
+ } catch (error) {
96
+ // 处理或记录错误
97
+ console.error('An error occurred:', error)
98
+ // 这里可以执行其他错误处理逻辑,比如向用户显示错误消息
99
+ }
100
+ }
101
+ // 如果没有展开,就没有更多要做的,因为 this.expandedKeys 已经更新
102
+ },
103
+ handleSelect (selectedKeys, { selected, node }) {
104
+ if (selected) {
105
+ // 触发节点选中事件,传递节点的完整路径
106
+ const path = this.getNodePath(node)
107
+ this.$emit('nodeSelected', path)
108
+ } else {
109
+ this.selectedKeys = selectedKeys
110
+ }
111
+ },
112
+ getNodePath (node) {
113
+ // 获取节点的完整路径
114
+ let path = node.title
115
+ let parent = node.parentNode
116
+ while (parent) {
117
+ path = parent.title + '/' + path
118
+ parent = parent.parentNode
119
+ }
120
+ return path
121
+ },
122
+ async fetchChildNodes (path) {
123
+ // 定义逻辑名称和参数 - 根据你的后端逻辑具体定义这些值
124
+ const logicName = 'get_child_nodes' // 例如,这可能是后端服务识别的逻辑名称
125
+ const parameters = {
126
+ path: path, // 参数是什么取决于你的后端服务需要什么
127
+ }
128
+
129
+ try {
130
+ // 调用通用业务逻辑函数并等待结果
131
+ const response = await runLogic(logicName, parameters)
132
+
133
+ // 确保响应包含我们期望的数据 - 如果你的后端服务使用不同的结构,你可能需要调整这里
134
+ if (response && response.data) {
135
+ return Promise.resolve(response.data) // 返回子节点数据
136
+ } else {
137
+ // 如果响应格式不符合预期,可以抛出一个错误或返回一个失败的Promise
138
+ // eslint-disable-next-line prefer-promise-reject-errors
139
+ return Promise.reject('Received unexpected response format')
140
+ }
141
+ } catch (error) {
142
+ // 如果请求失败(例如网络错误、服务器错误等),我们捕获这个错误并将其向上传递
143
+ console.error('Error fetching child nodes:', error)
144
+ return Promise.reject(error.message || 'Error fetching child nodes')
145
+ }
146
+ }
147
+ },
148
+ }
149
+ </script>
@@ -1,2 +1,2 @@
1
- import Tree from './Tree'
2
- export default Tree
1
+ import Tree from './Tree'
2
+ export default Tree