vue2-client 1.8.259 → 1.8.261

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 (210) hide show
  1. package/.env +19 -19
  2. package/.eslintrc.js +90 -90
  3. package/CHANGELOG.md +824 -824
  4. package/Components.md +60 -60
  5. package/babel.config.js +21 -21
  6. package/docs/index.md +30 -30
  7. package/docs/lowcode.md +188 -188
  8. package/docs/lowcodeForDeveloper.md +200 -192
  9. package/index.js +31 -31
  10. package/jest-transform-stub.js +8 -8
  11. package/jest.config.js +21 -21
  12. package/jest.setup.js +7 -7
  13. package/package.json +95 -95
  14. package/public/index.html +27 -27
  15. package/src/App.vue +188 -188
  16. package/src/ReportView.js +19 -19
  17. package/src/assets/img/querySlotDemo.svg +15 -15
  18. package/src/assets/svg/badtwo.svg +1 -1
  19. package/src/assets/svg/goodtwo.svg +1 -1
  20. package/src/base-client/components/common/AMisRender/index.js +3 -3
  21. package/src/base-client/components/common/AMisRender/index.vue +263 -263
  22. package/src/base-client/components/common/AddressSearchCombobox/AddressSearchCombobox.vue +413 -413
  23. package/src/base-client/components/common/AddressSearchCombobox/demo.vue +36 -36
  24. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
  25. package/src/base-client/components/common/CitySelect/CitySelect.vue +348 -348
  26. package/src/base-client/components/common/CitySelect/index.js +3 -3
  27. package/src/base-client/components/common/CitySelect/index.md +109 -109
  28. package/src/base-client/components/common/CreateQuery/CreateQuery.vue +669 -669
  29. package/src/base-client/components/common/CreateQuery/CreateQueryItem.vue +1014 -1014
  30. package/src/base-client/components/common/CreateQuery/index.js +3 -3
  31. package/src/base-client/components/common/CreateQuery/index.md +42 -42
  32. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQuery.vue +452 -452
  33. package/src/base-client/components/common/CreateSimpleFormQuery/CreateSimpleFormQueryItem.vue +511 -511
  34. package/src/base-client/components/common/CreateSimpleFormQuery/index.js +3 -3
  35. package/src/base-client/components/common/CreateSimpleFormQuery/index.md +42 -42
  36. package/src/base-client/components/common/FormGroupEdit/FormGroupEdit.vue +149 -149
  37. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  38. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  39. package/src/base-client/components/common/FormGroupQuery/FormGroupQuery.vue +166 -166
  40. package/src/base-client/components/common/FormGroupQuery/index.js +3 -3
  41. package/src/base-client/components/common/FormGroupQuery/index.md +43 -43
  42. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  43. package/src/base-client/components/common/LowCodeComponent/LowCodePageOrganization.vue +394 -355
  44. package/src/base-client/components/common/LowCodePageRender/LowCodePageRender.vue +29 -29
  45. package/src/base-client/components/common/LowCodePageRender/editorPageRender.vue +533 -467
  46. package/src/base-client/components/common/LowCodePageRender/index.js +3 -3
  47. package/src/base-client/components/common/PersonSetting/PersonSetting.vue +208 -208
  48. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  49. package/src/base-client/components/common/Tree/Tree.vue +149 -149
  50. package/src/base-client/components/common/Tree/index.js +2 -2
  51. package/src/base-client/components/common/Upload/Upload.vue +197 -197
  52. package/src/base-client/components/common/Upload/index.js +3 -3
  53. package/src/base-client/components/common/XAddForm/XAddForm.vue +98 -98
  54. package/src/base-client/components/common/XAddNativeForm/XAddNativeForm.vue +732 -732
  55. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  56. package/src/base-client/components/common/XAddNativeForm/lowcodeEditorRegister.js +16 -12
  57. package/src/base-client/components/common/XAddNativeFormOA/XAddNativeFormOA.vue +303 -303
  58. package/src/base-client/components/common/XAddNativeFormOA/index.js +3 -3
  59. package/src/base-client/components/common/XAddNativeFormOA/index.md +146 -146
  60. package/src/base-client/components/common/XBadge/XBadge.vue +78 -78
  61. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  62. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  63. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  64. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  65. package/src/base-client/components/common/XDescriptions/XDescriptions.vue +167 -167
  66. package/src/base-client/components/common/XDescriptions/XDescriptionsGroup.vue +299 -299
  67. package/src/base-client/components/common/XDescriptions/demo.vue +50 -50
  68. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  69. package/src/base-client/components/common/XDescriptions/index.md +83 -83
  70. package/src/base-client/components/common/XDescriptions/lowcodeEditorRegister.js +15 -5
  71. package/src/base-client/components/common/XDetailsView/XDetailsView.vue +214 -214
  72. package/src/base-client/components/common/XDetailsView/index.js +3 -3
  73. package/src/base-client/components/common/XForm/XForm.vue +281 -281
  74. package/src/base-client/components/common/XForm/XFormItem.vue +807 -807
  75. package/src/base-client/components/common/XForm/XTreeSelect.vue +206 -206
  76. package/src/base-client/components/common/XForm/index.md +178 -178
  77. package/src/base-client/components/common/XFormCol/XFormCol.vue +36 -36
  78. package/src/base-client/components/common/XFormGroup/XFormGroup.vue +241 -241
  79. package/src/base-client/components/common/XFormGroup/demo.vue +40 -40
  80. package/src/base-client/components/common/XFormGroup/index.js +3 -3
  81. package/src/base-client/components/common/XFormGroup/index.md +38 -38
  82. package/src/base-client/components/common/XFormGroupDetails/XFormGroupDetails.vue +72 -72
  83. package/src/base-client/components/common/XFormGroupDetails/index.js +3 -3
  84. package/src/base-client/components/common/XFormTable/XFormTable.vue +519 -519
  85. package/src/base-client/components/common/XFormTable/index.md +98 -98
  86. package/src/base-client/components/common/XFormTable/lowcodeEditorRegister.js +16 -12
  87. package/src/base-client/components/common/XImportExcel/XImportExcel.vue +147 -147
  88. package/src/base-client/components/common/XReport/XReport.vue +843 -843
  89. package/src/base-client/components/common/XReport/XReportDemo.vue +2233 -2233
  90. package/src/base-client/components/common/XReport/XReportDesign.vue +470 -470
  91. package/src/base-client/components/common/XReport/XReportJsonRender.vue +267 -267
  92. package/src/base-client/components/common/XReport/XReportTrGroup.vue +745 -742
  93. package/src/base-client/components/common/XReport/index.js +3 -3
  94. package/src/base-client/components/common/XReport/index.md +44 -44
  95. package/src/base-client/components/common/XReportSlot/XReportSlot.vue +110 -110
  96. package/src/base-client/components/common/XReportSlot/index.js +3 -3
  97. package/src/base-client/components/common/XStepView/XStepView.vue +252 -252
  98. package/src/base-client/components/common/XStepView/index.js +3 -3
  99. package/src/base-client/components/common/XStepView/index.md +31 -31
  100. package/src/base-client/components/common/XTable/XTable.vue +636 -636
  101. package/src/base-client/components/common/XTable/index.md +255 -255
  102. package/src/base-client/components/common/XTree/XTree.vue +318 -318
  103. package/src/base-client/components/common/XTree/index.js +3 -3
  104. package/src/base-client/components/common/XTree/index.md +36 -36
  105. package/src/base-client/components/common/XTreeOne/XTreeOne.vue +114 -114
  106. package/src/base-client/components/common/XTreeOne/lowcodeEditorRegister.js +11 -9
  107. package/src/base-client/components/index.js +51 -51
  108. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  109. package/src/base-client/components/system/QueryParamsDetailsView/QueryParamsDetailsView.vue +281 -281
  110. package/src/base-client/plugins/AppData.js +115 -115
  111. package/src/base-client/plugins/Config.js +19 -19
  112. package/src/base-client/plugins/GetLoginInfoService.js +183 -183
  113. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  114. package/src/bootstrap.js +39 -39
  115. package/src/components/CodeMirror/inedx.vue +118 -118
  116. package/src/components/CodeMirror/setting.js +40 -40
  117. package/src/components/FilePreview/FilePreview.vue +166 -166
  118. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  119. package/src/components/STable/index.js +323 -323
  120. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  121. package/src/components/checkbox/ImgCheckbox.vue +163 -163
  122. package/src/components/menu/SideMenu.vue +75 -75
  123. package/src/components/menu/menu.js +273 -273
  124. package/src/components/tool/AStepItem.vue +60 -60
  125. package/src/config/CreateQueryConfig.js +322 -322
  126. package/src/config/default/antd.config.js +89 -89
  127. package/src/config/default/setting.config.js +55 -55
  128. package/src/font-style/font.css +4 -4
  129. package/src/layouts/CommonLayout.vue +56 -56
  130. package/src/layouts/PageLayout.vue +151 -151
  131. package/src/layouts/SinglePageView.vue +138 -138
  132. package/src/layouts/header/AdminHeader.vue +132 -132
  133. package/src/layouts/header/HeaderNotice.vue +177 -177
  134. package/src/layouts/tabs/TabsHead.vue +189 -189
  135. package/src/layouts/tabs/TabsView.vue +387 -387
  136. package/src/lib.js +1 -1
  137. package/src/main.js +26 -26
  138. package/src/mock/extend/index.js +84 -84
  139. package/src/mock/goods/index.js +108 -108
  140. package/src/pages/AMisDemo/AMisDemo.vue +325 -325
  141. package/src/pages/AMisDemo/AMisDemo2.vue +74 -74
  142. package/src/pages/DynamicStatistics/ChartSelector.vue +331 -331
  143. package/src/pages/DynamicStatistics/DataTabs.vue +83 -83
  144. package/src/pages/DynamicStatistics/DynamicTable.vue +128 -128
  145. package/src/pages/DynamicStatistics/EvaluationArea.vue +69 -69
  146. package/src/pages/DynamicStatistics/FavoriteList.vue +51 -51
  147. package/src/pages/DynamicStatistics/QuestionHistoryAndFavorites.vue +591 -591
  148. package/src/pages/DynamicStatistics/SearchBar.vue +192 -192
  149. package/src/pages/DynamicStatistics/index.vue +282 -282
  150. package/src/pages/Example/index.vue +32 -32
  151. package/src/pages/NewDynamicStatistics/ChartSelector.vue +331 -331
  152. package/src/pages/NewDynamicStatistics/DataTabs.vue +122 -122
  153. package/src/pages/NewDynamicStatistics/DynamicTable.vue +128 -128
  154. package/src/pages/NewDynamicStatistics/EvaluationArea.vue +69 -69
  155. package/src/pages/NewDynamicStatistics/FavoriteList.vue +51 -51
  156. package/src/pages/NewDynamicStatistics/QuestionHistoryAndFavorites.vue +289 -289
  157. package/src/pages/NewDynamicStatistics/SearchBar.vue +193 -193
  158. package/src/pages/NewDynamicStatistics/index.vue +258 -258
  159. package/src/pages/ServiceReview/index.vue +284 -284
  160. package/src/pages/XReportView/index.vue +62 -62
  161. package/src/pages/login/Login.vue +378 -378
  162. package/src/pages/login/LoginV3.vue +389 -389
  163. package/src/pages/lowCode/lowCodeEditor.vue +1501 -1285
  164. package/src/pages/lowCode/lowCodeRender.vue +39 -39
  165. package/src/pages/resourceManage/orgListManage.vue +98 -98
  166. package/src/pages/system/dictionary/index.vue +44 -44
  167. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  168. package/src/pages/system/monitor/operLog/index.vue +37 -37
  169. package/src/pages/system/settings/modifyPassword.vue +117 -117
  170. package/src/pages/system/ticket/index.vue +480 -480
  171. package/src/pages/system/ticket/submitTicketSuccess.vue +484 -484
  172. package/src/router/async/config.async.js +33 -33
  173. package/src/router/async/router.map.js +107 -107
  174. package/src/router/guards.js +220 -220
  175. package/src/router/index.js +27 -27
  176. package/src/router.js +19 -19
  177. package/src/services/api/TicketDetailsViewApi.js +46 -46
  178. package/src/services/api/cas.js +79 -79
  179. package/src/services/api/common.js +284 -284
  180. package/src/services/api/entity.js +18 -18
  181. package/src/services/api/index.js +17 -17
  182. package/src/services/api/restTools.js +46 -46
  183. package/src/services/apiService.js +14 -14
  184. package/src/services/user.js +71 -71
  185. package/src/store/modules/setting.js +119 -119
  186. package/src/theme/default/style.less +57 -57
  187. package/src/theme/global.less +130 -130
  188. package/src/utils/authority-utils.js +85 -85
  189. package/src/utils/errorCode.js +6 -6
  190. package/src/utils/htmlToPDF.js +108 -108
  191. package/src/utils/htmlToPDFApi.js +5 -5
  192. package/src/utils/indexedDB.js +201 -201
  193. package/src/utils/login.js +144 -144
  194. package/src/utils/lowcode/lowcodeComponentMixin.js +112 -78
  195. package/src/utils/lowcode/lowcodeLog.js +29 -29
  196. package/src/utils/lowcode/lowcodeUtils.js +276 -129
  197. package/src/utils/lowcode/registerComponentForEditor.js +11 -11
  198. package/src/utils/lowcode/registerComponentForRender.js +11 -11
  199. package/src/utils/map-utils.js +47 -47
  200. package/src/utils/reg.js +19 -19
  201. package/src/utils/request.js +343 -343
  202. package/src/utils/routerUtil.js +435 -435
  203. package/src/utils/runEvalFunction.js +6 -6
  204. package/src/utils/util.js +241 -241
  205. package/src/utils/waterMark.js +31 -31
  206. package/test/Amis.spec.js +163 -163
  207. package/test/Tree.spec.js +167 -167
  208. package/test/myDialog.spec.js +46 -46
  209. package/vue.config.js +177 -177
  210. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
@@ -1,282 +1,282 @@
1
- <template>
2
- <div class="dynamic-statistics">
3
- <div class="data-nav-card-back">
4
- <div class="data-nav-card">
5
- <div class="search-card">
6
- <a-row class="search-title-card">
7
- <img class="search-title-logo" src="@vue2-client/assets/img/logo.png"/>
8
- <a-col class="search-title-text">数据检索平台</a-col>
9
- </a-row>
10
- <!-- <div class="blue-overlay"></div>-->
11
- <div class="search-card-main">
12
- <!-- 搜索栏组件 -->
13
- <search-bar ref="searchBar" @search="handleSearch"></search-bar>
14
- </div>
15
- </div>
16
- </div>
17
- </div>
18
- <div class="data-main-card">
19
- <a-row style="height:100%">
20
- <a-col :span="6" style="height:100%;">
21
- <question-history-and-favorites
22
- ref="qhaf"
23
- @handleOpenFavorite="handleOpenFavorite"
24
- @handleOnlyOpen="handleOnlyOpen"
25
- :currentuuid="currentuuid"
26
- @handleSearch="handleSearch">
27
- </question-history-and-favorites>
28
- </a-col>
29
- <a-col :span="18" style="height:100%">
30
- <a-spin :spinning="loading" tip="正在努力加载..." wrapperClassName="spingclass">
31
- <!-- 数据展示Tabs -->
32
- <data-tabs
33
- v-show="!loading"
34
- ref="tabs"
35
- @tab-change="handleTabChange"
36
- @submitEvaluationLib="submitEvaluationLib"
37
- @remove-cache="remove"
38
- ></data-tabs>
39
- </a-spin>
40
- </a-col>
41
- </a-row>
42
- </div>
43
- </div>
44
- </template>
45
-
46
- <script>
47
- import SearchBar from './SearchBar.vue'
48
- import DataTabs from './DataTabs.vue'
49
- // import { post } from '@vue2-client/services/api'
50
- import { formatDate } from '@vue2-client/utils/util'
51
- import QuestionHistoryAndFavorites from './QuestionHistoryAndFavorites.vue'
52
- import { post } from '@vue2-client/services/api'
53
- // import { indexedDB } from '@vue2-client/utils/indexedDB'
54
-
55
- export default {
56
- name: 'DynamicStatistics',
57
- components: {
58
- SearchBar,
59
- DataTabs,
60
- QuestionHistoryAndFavorites
61
- },
62
- data () {
63
- return {
64
- cacheSearchArray: {},
65
- loading: false,
66
- // 当前选中的uuid
67
- currentuuid: ''
68
- }
69
- },
70
- methods: {
71
- // 处理搜索逻辑,这里简化为直接赋值,实际应调用API
72
- async handleSearch (value, queryType, callback, uuid) {
73
- if (!value) {
74
- this.$message.warn('请先输入查询的数据')
75
- callback()
76
- return
77
- }
78
- // 何总说我们自己用 不需要判断有没有评论了
79
- this.handleSearchMain(value, queryType, callback, uuid)
80
-
81
- // const that = this
82
- // indexedDB.getAll((data) => {
83
- // let evaluation = true
84
- // for (const datum of data) {
85
- // if (datum.key.includes('question') && !datum.key.includes('question-lib')) {
86
- // const item = datum.data
87
- // console.warn(item)
88
- // if (item.evaluation === undefined && item.sql) {
89
- // evaluation = false
90
- // break
91
- // }
92
- // }
93
- // }
94
- // // if (evaluation) {
95
- // that.handleSearchMain(value, queryType, callback, uuid)
96
- // } else {
97
- // that.$message.warn('请先对已发起的对话进行评价!')
98
- // callback()
99
- // return false
100
- // }
101
- // })
102
- },
103
- handleSearchMain (value, queryType, callback, uuid) {
104
- this.loading = true
105
- if (!uuid) {
106
- uuid = this.uuid()
107
- }
108
-
109
- this.$refs.qhaf.add({
110
- uuid: uuid,
111
- question: value,
112
- queryType: queryType,
113
- isFavorite: false,
114
- date: formatDate('now')
115
- })
116
- const url = '/ai/question/'
117
- // if (queryType !== 'all') {
118
- // url = '/' + url + queryType + '/'
119
- // }
120
- post(url, {
121
- messages: [{
122
- content: value,
123
- role: 'user'
124
- }]
125
- }).then(res => {
126
- this.loading = false
127
- const sql = res.sql ? res.sql.replace(/'/g, "''") : null
128
- const oldSql = res.old_sql ? res.old_sql.replace(/'/g, "''") : null
129
- const questionInfo = {
130
- uuid: uuid,
131
- question: value,
132
- queryType: queryType,
133
- evaluation: -1,
134
- filterTable: res.filter_table,
135
- prompt: res.prompt,
136
- relationTable: res.relation_table,
137
- similarTable: res.similar_table,
138
- sql: sql,
139
- oldSql: oldSql,
140
- date: formatDate('now'),
141
- data: res.result,
142
- isFavorite: false
143
- }
144
- // 保存到数据库中
145
- post('/api/af-system/logic/openapi/addCommonData', {
146
- type: 'ai-question',
147
- content: questionInfo
148
- })
149
- this.addTab(questionInfo, false)
150
- }).catch(e => {
151
- this.$message.warning(e)
152
- }).finally(() => {
153
- callback()
154
- this.loading = false
155
- })
156
- },
157
- addTab (questionInfo, reSearch = false) {
158
- const { uuid } = questionInfo
159
- this.cacheSearchArray[uuid] = questionInfo
160
- this.currentuuid = uuid
161
- this.$refs.tabs.show(this.cacheSearchArray[uuid], reSearch)
162
- this.$refs.qhaf.add(this.cacheSearchArray[uuid])
163
- this.$refs.searchBar.setObj(this.cacheSearchArray[uuid])
164
- },
165
- // 处理Tab变更,可以在这里进行额外的逻辑处理
166
- handleTabChange (uuid) {
167
- if (uuid) {
168
- this.$refs.searchBar.setObj(this.cacheSearchArray[uuid])
169
- } else {
170
- this.cacheSearchArray = []
171
- this.$refs.searchBar.init()
172
- }
173
- },
174
- // 处理从对话历史/收藏夹打开收藏项
175
- handleOpenFavorite (item, reSearch) {
176
- this.addTab(item, reSearch)
177
- },
178
- // 处理从对话历史/收藏夹打开收藏项
179
- handleOnlyOpen (item) {
180
- this.$refs.tabs.show(item)
181
- },
182
- submitEvaluationLib (value, uuid) {
183
- console.log(value, uuid)
184
- this.currentuuid = uuid
185
- this.$refs.qhaf.submitEvaluationLib(value, uuid)
186
- },
187
- uuid () {
188
- const tempUrl = URL.createObjectURL(new Blob())
189
- const uuid = tempUrl.toString() // blob:https://xxx.com/b250d159-e1b6-4a87-9002-885d90033be3
190
- URL.revokeObjectURL(tempUrl)
191
- return uuid.substr(uuid.lastIndexOf('/') + 1)
192
- },
193
- remove (uuid) {
194
- delete this.cacheSearchArray[uuid]
195
- }
196
- }
197
- }
198
- </script>
199
-
200
- <style lang="less" scoped>
201
- .dynamic-statistics {
202
- position: relative;
203
- overflow: auto;
204
- height: 100vh;
205
- background-color: #f5f7fb;
206
- margin: 0 auto;
207
-
208
- .data-nav-card-back {
209
- width: 100%;
210
- height: auto;
211
- }
212
-
213
- .data-nav-card {
214
- z-index: 999;
215
- //position: fixed;
216
- width: 100%;
217
- height: 150px;
218
- top: 0;
219
- background: #fff;
220
-
221
- .search-title-card {
222
- height: 65px;
223
- width: 94%;
224
- margin: 0 auto;
225
- position: absolute;
226
- top: 30%;
227
- left: 5%;
228
- display: flex;
229
-
230
- .search-title-logo {
231
- width: 60px;
232
- margin-right: 8px;
233
- }
234
-
235
- .search-title-text {
236
- line-height: 60px;
237
- font-size: 20px;
238
- font-weight: bold;
239
- }
240
- }
241
-
242
- .search-card {
243
-
244
- width: 100%;
245
- height: 100%;
246
- background-image: url('@vue2-client/assets/img/dynamicStatistics/1080.jpg');
247
- background-size: cover;
248
- position: relative;
249
- }
250
- }
251
-
252
- .data-main-card {
253
- //width: 75%;
254
- height: calc(100vh - 150px);
255
- padding: 15px 15px 15px 15px;
256
- background-color: #f5f7fb;
257
- }
258
-
259
- .blue-overlay {
260
- position: absolute;
261
- top: 0;
262
- left: 0;
263
- width: 100%;
264
- height: 100%;
265
- //background-color: rgba(#4F93FE, 0.8) // 这里设置蓝色蒙版的颜色和透明度
266
- }
267
-
268
- .search-card-main {
269
- height: 100%;
270
- }
271
- }
272
-
273
- .spingclass {
274
- height: 100%;
275
- background-color: #fff;
276
- transition: none;
277
- }
278
-
279
- :deep(.ant-spin-container) {
280
- height: 100%;
281
- }
282
- </style>
1
+ <template>
2
+ <div class="dynamic-statistics">
3
+ <div class="data-nav-card-back">
4
+ <div class="data-nav-card">
5
+ <div class="search-card">
6
+ <a-row class="search-title-card">
7
+ <img class="search-title-logo" src="@vue2-client/assets/img/logo.png"/>
8
+ <a-col class="search-title-text">数据检索平台</a-col>
9
+ </a-row>
10
+ <!-- <div class="blue-overlay"></div>-->
11
+ <div class="search-card-main">
12
+ <!-- 搜索栏组件 -->
13
+ <search-bar ref="searchBar" @search="handleSearch"></search-bar>
14
+ </div>
15
+ </div>
16
+ </div>
17
+ </div>
18
+ <div class="data-main-card">
19
+ <a-row style="height:100%">
20
+ <a-col :span="6" style="height:100%;">
21
+ <question-history-and-favorites
22
+ ref="qhaf"
23
+ @handleOpenFavorite="handleOpenFavorite"
24
+ @handleOnlyOpen="handleOnlyOpen"
25
+ :currentuuid="currentuuid"
26
+ @handleSearch="handleSearch">
27
+ </question-history-and-favorites>
28
+ </a-col>
29
+ <a-col :span="18" style="height:100%">
30
+ <a-spin :spinning="loading" tip="正在努力加载..." wrapperClassName="spingclass">
31
+ <!-- 数据展示Tabs -->
32
+ <data-tabs
33
+ v-show="!loading"
34
+ ref="tabs"
35
+ @tab-change="handleTabChange"
36
+ @submitEvaluationLib="submitEvaluationLib"
37
+ @remove-cache="remove"
38
+ ></data-tabs>
39
+ </a-spin>
40
+ </a-col>
41
+ </a-row>
42
+ </div>
43
+ </div>
44
+ </template>
45
+
46
+ <script>
47
+ import SearchBar from './SearchBar.vue'
48
+ import DataTabs from './DataTabs.vue'
49
+ // import { post } from '@vue2-client/services/api'
50
+ import { formatDate } from '@vue2-client/utils/util'
51
+ import QuestionHistoryAndFavorites from './QuestionHistoryAndFavorites.vue'
52
+ import { post } from '@vue2-client/services/api'
53
+ // import { indexedDB } from '@vue2-client/utils/indexedDB'
54
+
55
+ export default {
56
+ name: 'DynamicStatistics',
57
+ components: {
58
+ SearchBar,
59
+ DataTabs,
60
+ QuestionHistoryAndFavorites
61
+ },
62
+ data () {
63
+ return {
64
+ cacheSearchArray: {},
65
+ loading: false,
66
+ // 当前选中的uuid
67
+ currentuuid: ''
68
+ }
69
+ },
70
+ methods: {
71
+ // 处理搜索逻辑,这里简化为直接赋值,实际应调用API
72
+ async handleSearch (value, queryType, callback, uuid) {
73
+ if (!value) {
74
+ this.$message.warn('请先输入查询的数据')
75
+ callback()
76
+ return
77
+ }
78
+ // 何总说我们自己用 不需要判断有没有评论了
79
+ this.handleSearchMain(value, queryType, callback, uuid)
80
+
81
+ // const that = this
82
+ // indexedDB.getAll((data) => {
83
+ // let evaluation = true
84
+ // for (const datum of data) {
85
+ // if (datum.key.includes('question') && !datum.key.includes('question-lib')) {
86
+ // const item = datum.data
87
+ // console.warn(item)
88
+ // if (item.evaluation === undefined && item.sql) {
89
+ // evaluation = false
90
+ // break
91
+ // }
92
+ // }
93
+ // }
94
+ // // if (evaluation) {
95
+ // that.handleSearchMain(value, queryType, callback, uuid)
96
+ // } else {
97
+ // that.$message.warn('请先对已发起的对话进行评价!')
98
+ // callback()
99
+ // return false
100
+ // }
101
+ // })
102
+ },
103
+ handleSearchMain (value, queryType, callback, uuid) {
104
+ this.loading = true
105
+ if (!uuid) {
106
+ uuid = this.uuid()
107
+ }
108
+
109
+ this.$refs.qhaf.add({
110
+ uuid: uuid,
111
+ question: value,
112
+ queryType: queryType,
113
+ isFavorite: false,
114
+ date: formatDate('now')
115
+ })
116
+ const url = '/ai/question/'
117
+ // if (queryType !== 'all') {
118
+ // url = '/' + url + queryType + '/'
119
+ // }
120
+ post(url, {
121
+ messages: [{
122
+ content: value,
123
+ role: 'user'
124
+ }]
125
+ }).then(res => {
126
+ this.loading = false
127
+ const sql = res.sql ? res.sql.replace(/'/g, "''") : null
128
+ const oldSql = res.old_sql ? res.old_sql.replace(/'/g, "''") : null
129
+ const questionInfo = {
130
+ uuid: uuid,
131
+ question: value,
132
+ queryType: queryType,
133
+ evaluation: -1,
134
+ filterTable: res.filter_table,
135
+ prompt: res.prompt,
136
+ relationTable: res.relation_table,
137
+ similarTable: res.similar_table,
138
+ sql: sql,
139
+ oldSql: oldSql,
140
+ date: formatDate('now'),
141
+ data: res.result,
142
+ isFavorite: false
143
+ }
144
+ // 保存到数据库中
145
+ post('/api/af-system/logic/openapi/addCommonData', {
146
+ type: 'ai-question',
147
+ content: questionInfo
148
+ })
149
+ this.addTab(questionInfo, false)
150
+ }).catch(e => {
151
+ this.$message.warning(e)
152
+ }).finally(() => {
153
+ callback()
154
+ this.loading = false
155
+ })
156
+ },
157
+ addTab (questionInfo, reSearch = false) {
158
+ const { uuid } = questionInfo
159
+ this.cacheSearchArray[uuid] = questionInfo
160
+ this.currentuuid = uuid
161
+ this.$refs.tabs.show(this.cacheSearchArray[uuid], reSearch)
162
+ this.$refs.qhaf.add(this.cacheSearchArray[uuid])
163
+ this.$refs.searchBar.setObj(this.cacheSearchArray[uuid])
164
+ },
165
+ // 处理Tab变更,可以在这里进行额外的逻辑处理
166
+ handleTabChange (uuid) {
167
+ if (uuid) {
168
+ this.$refs.searchBar.setObj(this.cacheSearchArray[uuid])
169
+ } else {
170
+ this.cacheSearchArray = []
171
+ this.$refs.searchBar.init()
172
+ }
173
+ },
174
+ // 处理从对话历史/收藏夹打开收藏项
175
+ handleOpenFavorite (item, reSearch) {
176
+ this.addTab(item, reSearch)
177
+ },
178
+ // 处理从对话历史/收藏夹打开收藏项
179
+ handleOnlyOpen (item) {
180
+ this.$refs.tabs.show(item)
181
+ },
182
+ submitEvaluationLib (value, uuid) {
183
+ console.log(value, uuid)
184
+ this.currentuuid = uuid
185
+ this.$refs.qhaf.submitEvaluationLib(value, uuid)
186
+ },
187
+ uuid () {
188
+ const tempUrl = URL.createObjectURL(new Blob())
189
+ const uuid = tempUrl.toString() // blob:https://xxx.com/b250d159-e1b6-4a87-9002-885d90033be3
190
+ URL.revokeObjectURL(tempUrl)
191
+ return uuid.substr(uuid.lastIndexOf('/') + 1)
192
+ },
193
+ remove (uuid) {
194
+ delete this.cacheSearchArray[uuid]
195
+ }
196
+ }
197
+ }
198
+ </script>
199
+
200
+ <style lang="less" scoped>
201
+ .dynamic-statistics {
202
+ position: relative;
203
+ overflow: auto;
204
+ height: 100vh;
205
+ background-color: #f5f7fb;
206
+ margin: 0 auto;
207
+
208
+ .data-nav-card-back {
209
+ width: 100%;
210
+ height: auto;
211
+ }
212
+
213
+ .data-nav-card {
214
+ z-index: 999;
215
+ //position: fixed;
216
+ width: 100%;
217
+ height: 150px;
218
+ top: 0;
219
+ background: #fff;
220
+
221
+ .search-title-card {
222
+ height: 65px;
223
+ width: 94%;
224
+ margin: 0 auto;
225
+ position: absolute;
226
+ top: 30%;
227
+ left: 5%;
228
+ display: flex;
229
+
230
+ .search-title-logo {
231
+ width: 60px;
232
+ margin-right: 8px;
233
+ }
234
+
235
+ .search-title-text {
236
+ line-height: 60px;
237
+ font-size: 20px;
238
+ font-weight: bold;
239
+ }
240
+ }
241
+
242
+ .search-card {
243
+
244
+ width: 100%;
245
+ height: 100%;
246
+ background-image: url('@vue2-client/assets/img/dynamicStatistics/1080.jpg');
247
+ background-size: cover;
248
+ position: relative;
249
+ }
250
+ }
251
+
252
+ .data-main-card {
253
+ //width: 75%;
254
+ height: calc(100vh - 150px);
255
+ padding: 15px 15px 15px 15px;
256
+ background-color: #f5f7fb;
257
+ }
258
+
259
+ .blue-overlay {
260
+ position: absolute;
261
+ top: 0;
262
+ left: 0;
263
+ width: 100%;
264
+ height: 100%;
265
+ //background-color: rgba(#4F93FE, 0.8) // 这里设置蓝色蒙版的颜色和透明度
266
+ }
267
+
268
+ .search-card-main {
269
+ height: 100%;
270
+ }
271
+ }
272
+
273
+ .spingclass {
274
+ height: 100%;
275
+ background-color: #fff;
276
+ transition: none;
277
+ }
278
+
279
+ :deep(.ant-spin-container) {
280
+ height: 100%;
281
+ }
282
+ </style>
@@ -1,32 +1,32 @@
1
- <template>
2
- <div id="test">
3
- <!-- 修改 import 路径展示不同的组件 Demo -->
4
- <demo></demo>
5
- </div>
6
- </template>
7
-
8
- <script>
9
- import XReport from '@vue2-client/base-client/components/common/XReport'
10
- // import Demo from '@vue2-client/base-client/components/common/XFormGroup/demo.vue'
11
- // import Demo from '@vue2-client/base-client/components/common/XDescriptions/demo.vue'
12
- import Demo from '@vue2-client/base-client/components/common/AddressSearchCombobox/demo.vue'
13
-
14
- export default {
15
- name: 'Example',
16
- components: {
17
- Demo,
18
- XReport
19
- },
20
- mounted () {
21
- },
22
- data () {
23
- return {
24
- }
25
- },
26
- methods: {
27
- }
28
- }
29
- </script>
30
- <style scoped>
31
-
32
- </style>
1
+ <template>
2
+ <div id="test">
3
+ <!-- 修改 import 路径展示不同的组件 Demo -->
4
+ <demo></demo>
5
+ </div>
6
+ </template>
7
+
8
+ <script>
9
+ import XReport from '@vue2-client/base-client/components/common/XReport'
10
+ // import Demo from '@vue2-client/base-client/components/common/XFormGroup/demo.vue'
11
+ // import Demo from '@vue2-client/base-client/components/common/XDescriptions/demo.vue'
12
+ import Demo from '@vue2-client/base-client/components/common/AddressSearchCombobox/demo.vue'
13
+
14
+ export default {
15
+ name: 'Example',
16
+ components: {
17
+ Demo,
18
+ XReport
19
+ },
20
+ mounted () {
21
+ },
22
+ data () {
23
+ return {
24
+ }
25
+ },
26
+ methods: {
27
+ }
28
+ }
29
+ </script>
30
+ <style scoped>
31
+
32
+ </style>