vue2-client 1.8.310 → 1.8.311

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 (215) 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/LowCodeEditorModal.vue +108 -108
  45. package/src/base-client/components/common/LowCodeComponent/LowCodeEditorPanel.vue +350 -350
  46. package/src/base-client/components/common/LowCodeComponent/LowCodePageOrganization.vue +502 -502
  47. package/src/base-client/components/common/LowCodeComponent/LowCodeRender.vue +699 -699
  48. package/src/base-client/components/common/LowCodeComponent/LowCodeRenderEnter.vue +29 -29
  49. package/src/base-client/components/common/LowCodeComponent/LowCodeUIStore.vue +162 -162
  50. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeAddPageModal.vue +117 -117
  51. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeCustomJSModal.vue +80 -80
  52. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeEventEditorModal.vue +398 -398
  53. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLifeCycleModal.vue +65 -65
  54. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicCallbackModal.vue +64 -64
  55. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeLogicParamModal.vue +73 -73
  56. package/src/base-client/components/common/LowCodeComponent/modal/lowCodeRunFunctionParamModal.vue +76 -76
  57. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
  58. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  59. package/src/base-client/components/common/Tree/Tree.vue +149 -149
  60. package/src/base-client/components/common/Tree/index.js +2 -2
  61. package/src/base-client/components/common/Upload/Upload.vue +239 -239
  62. package/src/base-client/components/common/Upload/index.js +3 -3
  63. package/src/base-client/components/common/XAddForm/XAddForm.vue +105 -105
  64. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +807 -807
  65. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  66. package/src/base-client/components/common/XAddNativeForm/lowcodeEditorRegister.js +16 -16
  67. package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +303 -303
  68. package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
  69. package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
  70. package/src/base-client/components/common/XBadge/XBadge.vue +78 -78
  71. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  72. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  73. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  74. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  75. package/src/base-client/components/common/XDescriptions/XDescriptions.vue +187 -187
  76. package/src/base-client/components/common/XDescriptions/XDescriptionsGroup.vue +306 -306
  77. package/src/base-client/components/common/XDescriptions/demo.vue +50 -50
  78. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  79. package/src/base-client/components/common/XDescriptions/index.md +83 -83
  80. package/src/base-client/components/common/XDescriptions/lowcodeEditorRegister.js +31 -31
  81. package/src/base-client/components/common/XDetailsView/XDetailsView.vue +214 -214
  82. package/src/base-client/components/common/XDetailsView/index.js +3 -3
  83. package/src/base-client/components/common/XForm/XForm.vue +294 -294
  84. package/src/base-client/components/common/XForm/XFormItem.vue +911 -911
  85. package/src/base-client/components/common/XForm/XTreeSelect.vue +207 -207
  86. package/src/base-client/components/common/XForm/index.md +178 -178
  87. package/src/base-client/components/common/XFormCol/XFormCol.vue +36 -36
  88. package/src/base-client/components/common/XFormGroup/XFormGroup.vue +241 -241
  89. package/src/base-client/components/common/XFormGroup/demo.vue +40 -40
  90. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  91. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  92. package/src/base-client/components/common/XFormGroupDetails/XFormGroupDetails.vue +72 -72
  93. package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
  94. package/src/base-client/components/common/XFormTable/XFormTable.vue +539 -539
  95. package/src/base-client/components/common/XFormTable/demo.vue +72 -72
  96. package/src/base-client/components/common/XFormTable/index.md +98 -98
  97. package/src/base-client/components/common/XFormTable/lowcodeEditorRegister.js +30 -30
  98. package/src/base-client/components/common/XImportExcel/XImportExcel.vue +147 -147
  99. package/src/base-client/components/common/XReport/XReport.vue +858 -858
  100. package/src/base-client/components/common/XReport/XReportDemo.vue +266 -266
  101. package/src/base-client/components/common/XReport/XReportDesign.vue +509 -509
  102. package/src/base-client/components/common/XReport/XReportJsonRender.vue +295 -295
  103. package/src/base-client/components/common/XReport/XReportTrGroup.vue +801 -801
  104. package/src/base-client/components/common/XReport/index.js +3 -3
  105. package/src/base-client/components/common/XReport/index.md +44 -44
  106. package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
  107. package/src/base-client/components/common/XReportSlot/index.js +3 -3
  108. package/src/base-client/components/common/XReportSlot/index.md +48 -48
  109. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  110. package/src/base-client/components/common/XStepView/index.js +3 -3
  111. package/src/base-client/components/common/XStepView/index.md +31 -31
  112. package/src/base-client/components/common/XTable/XTable.vue +676 -676
  113. package/src/base-client/components/common/XTable/index.md +255 -255
  114. package/src/base-client/components/common/XTree/XTree.vue +423 -423
  115. package/src/base-client/components/common/XTree/index.js +3 -3
  116. package/src/base-client/components/common/XTree/index.md +36 -36
  117. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +114 -114
  118. package/src/base-client/components/common/XTreeOne/lowcodeEditorRegister.js +11 -11
  119. package/src/base-client/components/index.js +51 -51
  120. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  121. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  122. package/src/base-client/plugins/AppData.js +121 -121
  123. package/src/base-client/plugins/Config.js +19 -19
  124. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  125. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  126. package/src/bootstrap.js +39 -39
  127. package/src/components/FilePreview/FilePreview.vue +166 -166
  128. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  129. package/src/components/STable/index.js +361 -361
  130. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  131. package/src/components/checkbox/ImgCheckbox.vue +163 -163
  132. package/src/components/menu/SideMenu.vue +75 -75
  133. package/src/components/menu/menu.js +273 -273
  134. package/src/components/tool/AStepItem.vue +60 -60
  135. package/src/config/default/antd.config.js +89 -89
  136. package/src/config/default/setting.config.js +55 -55
  137. package/src/font-style/font.css +4 -4
  138. package/src/layouts/CommonLayout.vue +56 -56
  139. package/src/layouts/PageLayout.vue +151 -151
  140. package/src/layouts/SinglePageView.vue +138 -138
  141. package/src/layouts/header/AdminHeader.vue +132 -132
  142. package/src/layouts/header/HeaderNotice.vue +177 -177
  143. package/src/layouts/tabs/TabsHead.vue +189 -189
  144. package/src/layouts/tabs/TabsView.vue +387 -387
  145. package/src/lib.js +1 -1
  146. package/src/main.js +26 -26
  147. package/src/mock/extend/index.js +84 -84
  148. package/src/mock/goods/index.js +108 -108
  149. package/src/pages/AMisDemo/AMisDemo.vue +325 -325
  150. package/src/pages/AMisDemo/AMisDemo2.vue +74 -74
  151. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  152. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  153. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  154. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  155. package/src/pages/DynamicStatistics/FavoriteList.vue +51 -51
  156. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  157. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  158. package/src/pages/DynamicStatistics/index.vue +282 -282
  159. package/src/pages/Example/index.vue +33 -33
  160. package/src/pages/ServiceReview/index.vue +284 -284
  161. package/src/pages/XReportView/index.vue +62 -62
  162. package/src/pages/login/Login.vue +378 -378
  163. package/src/pages/login/LoginV3.vue +389 -389
  164. package/src/pages/lowCode/lowCodeEditor.vue +1030 -1030
  165. package/src/pages/lowCode/lowCodeRenderPage.vue +43 -43
  166. package/src/pages/resourceManage/orgListManage.vue +98 -98
  167. package/src/pages/system/dictionary/index.vue +44 -44
  168. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  169. package/src/pages/system/monitor/operLog/index.vue +37 -37
  170. package/src/pages/system/settings/modifyPassword.vue +117 -117
  171. package/src/pages/system/ticket/index.vue +480 -480
  172. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  173. package/src/router/async/config.async.js +34 -34
  174. package/src/router/async/router.map.js +104 -104
  175. package/src/router/guards.js +223 -223
  176. package/src/router/index.js +27 -27
  177. package/src/router.js +19 -19
  178. package/src/services/api/TicketDetailsViewApi.js +46 -46
  179. package/src/services/api/cas.js +79 -79
  180. package/src/services/api/common.js +307 -307
  181. package/src/services/api/entity.js +18 -18
  182. package/src/services/api/index.js +17 -17
  183. package/src/services/api/restTools.js +46 -46
  184. package/src/services/apiService.js +14 -14
  185. package/src/services/user.js +71 -71
  186. package/src/services/v3Api.js +81 -81
  187. package/src/store/modules/index.js +5 -5
  188. package/src/store/modules/lowCode.js +33 -33
  189. package/src/store/modules/setting.js +119 -119
  190. package/src/theme/default/style.less +58 -58
  191. package/src/theme/global.less +139 -139
  192. package/src/utils/authority-utils.js +85 -85
  193. package/src/utils/errorCode.js +6 -6
  194. package/src/utils/formatter.js +80 -80
  195. package/src/utils/htmlToPDF.js +108 -108
  196. package/src/utils/htmlToPDFApi.js +5 -5
  197. package/src/utils/indexedDB.js +258 -258
  198. package/src/utils/login.js +188 -188
  199. package/src/utils/lowcode/lowcodeComponentMixin.js +120 -120
  200. package/src/utils/lowcode/lowcodeLog.js +29 -29
  201. package/src/utils/lowcode/lowcodeUtils.js +373 -373
  202. package/src/utils/lowcode/registerComponentForEditor.js +11 -11
  203. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  204. package/src/utils/map-utils.js +47 -47
  205. package/src/utils/reg.js +95 -95
  206. package/src/utils/request.js +347 -347
  207. package/src/utils/routerUtil.js +435 -435
  208. package/src/utils/runEvalFunction.js +6 -6
  209. package/src/utils/util.js +241 -241
  210. package/src/utils/waterMark.js +31 -31
  211. package/test/Amis.spec.js +163 -163
  212. package/test/Tree.spec.js +167 -167
  213. package/test/myDialog.spec.js +46 -46
  214. package/vue.config.js +181 -181
  215. 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