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,193 +1,193 @@
1
- <template>
2
- <div class="search-bar">
3
- <!-- <a-select default-value="all" class="select" @change="handleChange" :dropdownMatchSelectWidth="false">-->
4
- <!-- <a-select-option v-for="d in selectOption" :key="d.value">-->
5
- <!-- {{ d.text }}-->
6
- <!-- </a-select-option>-->
7
- <!-- </a-select>-->
8
- <a-auto-complete
9
- v-model="searchInput"
10
- class="search-input"
11
- ref="autoComplete"
12
- placeholder="请输入查询的内容"
13
- option-label-prop="title"
14
- @search="fetchFunction"
15
- >
16
- <a-spin v-if="searching" slot="notFoundContent" size="small" />
17
- <template slot="dataSource">
18
- <a-select-option v-for="item in dataSourceResults" :key="item.category" :title="item.category">
19
- <span>{{ item.category.substr(0,item.category.indexOf(searchInput)) }}</span>
20
- <span style="color: red">{{ searchInput }}</span>
21
- <span>{{ item.category.substr(item.category.indexOf(searchInput)+searchInput.length) }}</span>
22
- </a-select-option>
23
- </template>
24
- <a-input
25
- class="contentInput"
26
- v-model="searchInput"
27
- placeholder="请输入查询的内容">
28
- </a-input>
29
- </a-auto-complete>
30
- <a-button-group size="large" class="btn_group">
31
- <a-button @click="onSearch(searchInput)" :loading="loading">
32
- <a-icon type="search"/>
33
- 搜索
34
- </a-button>
35
- </a-button-group>
36
- </div>
37
- </template>
38
-
39
- <script>
40
- import FavoriteList from './FavoriteList.vue'
41
- import { get, post } from '@vue2-client/services/api'
42
- import { debounce } from 'ant-design-vue/lib/vc-table/src/utils'
43
-
44
- export default {
45
- name: 'SearchBar',
46
- components: { FavoriteList },
47
- data () {
48
- // 检索去抖
49
- this.fetchFunction = debounce(this.fetchFunction, 300)
50
- return {
51
- // 最后检索版本
52
- lastFetchId: 0,
53
- searching: false,
54
- searchInput: '', // 绑定搜索输入框的数据,
55
- favoriteState: false, // 是否收藏
56
- obj: undefined,
57
- favoriteListVisible: false,
58
- loading: false,
59
- dataSourceResults: [],
60
- selectOption: [],
61
- queryType: 'all',
62
- }
63
- },
64
- computed: {
65
- },
66
- created () {
67
- this.selectOption = [
68
- { value: 'all', text: '全部' }
69
- ]
70
- get('/ai/question_types', {}).then(res => {
71
- for (const item of res) {
72
- this.selectOption.push({ value: item, text: item })
73
- }
74
- })
75
- },
76
- mounted () {
77
- this.init()
78
- },
79
- methods: {
80
- handleChange (value) {
81
- this.queryType = value
82
- },
83
- fetchFunction (value) {
84
- this.dataSourceResults = []
85
- if (value) {
86
- this.searching = true
87
- this.lastFetchId += 1
88
- const fetchId = this.lastFetchId
89
- post('/api/af-system/logic/openapi/getCommonData', {
90
- type: 'ai-question',
91
- content: value
92
- }).then(res => {
93
- if (fetchId !== this.lastFetchId) {
94
- return
95
- }
96
- if (res != null && Array.isArray(res)) {
97
- // 提取 json 中的 question, 并去重
98
- this.dataSourceResults = res.map(item => JSON.parse(item.f_json).question)
99
- .filter((item, index, arr) => arr.indexOf(item) === index)
100
- .map(item => ({ category: item }))
101
- }
102
- }).finally(() => {
103
- this.searching = false
104
- })
105
- }
106
- },
107
- // 处理搜索操作
108
- onSearch (value) {
109
- this.loading = true
110
- // 触发父组件的搜索事件,传递搜索输入的值
111
- this.$emit('search', value, this.queryType, () => {
112
- this.loading = false
113
- })
114
- this.searchInput = ''
115
- },
116
- // // 处理打开收藏操作
117
- // openFavorites (uuid) {
118
- // this.$emit('openFavorites', uuid)
119
- // },
120
- // 收藏夹显示隐藏的回调
121
- favoriteListVisibleAction (visible) {
122
- if (this.$refs.favoriteList && visible) {
123
- this.$refs.favoriteList.loadData()
124
- }
125
- },
126
- init () {
127
- this.searchInput = ''
128
- this.obj = undefined
129
- this.favoriteState = false
130
- },
131
- setObj (obj) {
132
- this.obj = obj
133
- this.searchInput = obj.question
134
- this.favoriteState = obj.isFavorite
135
- },
136
- setFavorite (uuid, isFavorite) {
137
- if (this.obj && uuid === this.obj.uuid) {
138
- this.favoriteState = isFavorite
139
- }
140
- this.favoriteListVisibleAction(true)
141
- }
142
- }
143
- }
144
- </script>
145
-
146
- <style lang="less" scoped>
147
- .search-bar {
148
- display: flex;
149
- justify-content: center;
150
- align-items: center; /* 添加这一行来实现垂直居中 */
151
- height:100%;
152
-
153
- .btn_group {
154
- padding-left: 6px;
155
-
156
- :deep(.ant-btn) {
157
- height: 3rem;
158
- color: #4F93FE;
159
- }
160
-
161
- .star_button {
162
- color: #ffba00;
163
- }
164
- }
165
-
166
- :deep(.ant-select-selection--single) {
167
- height: 100%;
168
- }
169
- :deep(.search__field__mirror) {
170
- height: 100%;
171
- }
172
- .contentInput{
173
- height: 48px;
174
- width: 35rem;
175
- background-color: #fff;
176
- padding: 4px 80px 4px 40px;
177
- font-size: 16px;
178
- }
179
- .select {
180
- width: 160px;
181
- height: 48px;
182
- padding-right: 6px;
183
- font-size: 16px;
184
- text-align: center;
185
- :deep(.ant-select-selection-selected-value) {
186
- width: 120px;
187
- height: 48px;
188
- line-height: 48px;
189
- }
190
- }
191
- }
192
-
193
- </style>
1
+ <template>
2
+ <div class="search-bar">
3
+ <!-- <a-select default-value="all" class="select" @change="handleChange" :dropdownMatchSelectWidth="false">-->
4
+ <!-- <a-select-option v-for="d in selectOption" :key="d.value">-->
5
+ <!-- {{ d.text }}-->
6
+ <!-- </a-select-option>-->
7
+ <!-- </a-select>-->
8
+ <a-auto-complete
9
+ v-model="searchInput"
10
+ class="search-input"
11
+ ref="autoComplete"
12
+ placeholder="请输入查询的内容"
13
+ option-label-prop="title"
14
+ @search="fetchFunction"
15
+ >
16
+ <a-spin v-if="searching" slot="notFoundContent" size="small" />
17
+ <template slot="dataSource">
18
+ <a-select-option v-for="item in dataSourceResults" :key="item.category" :title="item.category">
19
+ <span>{{ item.category.substr(0,item.category.indexOf(searchInput)) }}</span>
20
+ <span style="color: red">{{ searchInput }}</span>
21
+ <span>{{ item.category.substr(item.category.indexOf(searchInput)+searchInput.length) }}</span>
22
+ </a-select-option>
23
+ </template>
24
+ <a-input
25
+ class="contentInput"
26
+ v-model="searchInput"
27
+ placeholder="请输入查询的内容">
28
+ </a-input>
29
+ </a-auto-complete>
30
+ <a-button-group size="large" class="btn_group">
31
+ <a-button @click="onSearch(searchInput)" :loading="loading">
32
+ <a-icon type="search"/>
33
+ 搜索
34
+ </a-button>
35
+ </a-button-group>
36
+ </div>
37
+ </template>
38
+
39
+ <script>
40
+ import FavoriteList from './FavoriteList.vue'
41
+ import { get, post } from '@vue2-client/services/api'
42
+ import { debounce } from 'ant-design-vue/lib/vc-table/src/utils'
43
+
44
+ export default {
45
+ name: 'SearchBar',
46
+ components: { FavoriteList },
47
+ data () {
48
+ // 检索去抖
49
+ this.fetchFunction = debounce(this.fetchFunction, 300)
50
+ return {
51
+ // 最后检索版本
52
+ lastFetchId: 0,
53
+ searching: false,
54
+ searchInput: '', // 绑定搜索输入框的数据,
55
+ favoriteState: false, // 是否收藏
56
+ obj: undefined,
57
+ favoriteListVisible: false,
58
+ loading: false,
59
+ dataSourceResults: [],
60
+ selectOption: [],
61
+ queryType: 'all',
62
+ }
63
+ },
64
+ computed: {
65
+ },
66
+ created () {
67
+ this.selectOption = [
68
+ { value: 'all', text: '全部' }
69
+ ]
70
+ get('/ai/question_types', {}).then(res => {
71
+ for (const item of res) {
72
+ this.selectOption.push({ value: item, text: item })
73
+ }
74
+ })
75
+ },
76
+ mounted () {
77
+ this.init()
78
+ },
79
+ methods: {
80
+ handleChange (value) {
81
+ this.queryType = value
82
+ },
83
+ fetchFunction (value) {
84
+ this.dataSourceResults = []
85
+ if (value) {
86
+ this.searching = true
87
+ this.lastFetchId += 1
88
+ const fetchId = this.lastFetchId
89
+ post('/api/af-system/logic/openapi/getCommonData', {
90
+ type: 'ai-question',
91
+ content: value
92
+ }).then(res => {
93
+ if (fetchId !== this.lastFetchId) {
94
+ return
95
+ }
96
+ if (res != null && Array.isArray(res)) {
97
+ // 提取 json 中的 question, 并去重
98
+ this.dataSourceResults = res.map(item => JSON.parse(item.f_json).question)
99
+ .filter((item, index, arr) => arr.indexOf(item) === index)
100
+ .map(item => ({ category: item }))
101
+ }
102
+ }).finally(() => {
103
+ this.searching = false
104
+ })
105
+ }
106
+ },
107
+ // 处理搜索操作
108
+ onSearch (value) {
109
+ this.loading = true
110
+ // 触发父组件的搜索事件,传递搜索输入的值
111
+ this.$emit('search', value, this.queryType, () => {
112
+ this.loading = false
113
+ })
114
+ this.searchInput = ''
115
+ },
116
+ // // 处理打开收藏操作
117
+ // openFavorites (uuid) {
118
+ // this.$emit('openFavorites', uuid)
119
+ // },
120
+ // 收藏夹显示隐藏的回调
121
+ favoriteListVisibleAction (visible) {
122
+ if (this.$refs.favoriteList && visible) {
123
+ this.$refs.favoriteList.loadData()
124
+ }
125
+ },
126
+ init () {
127
+ this.searchInput = ''
128
+ this.obj = undefined
129
+ this.favoriteState = false
130
+ },
131
+ setObj (obj) {
132
+ this.obj = obj
133
+ this.searchInput = obj.question
134
+ this.favoriteState = obj.isFavorite
135
+ },
136
+ setFavorite (uuid, isFavorite) {
137
+ if (this.obj && uuid === this.obj.uuid) {
138
+ this.favoriteState = isFavorite
139
+ }
140
+ this.favoriteListVisibleAction(true)
141
+ }
142
+ }
143
+ }
144
+ </script>
145
+
146
+ <style lang="less" scoped>
147
+ .search-bar {
148
+ display: flex;
149
+ justify-content: center;
150
+ align-items: center; /* 添加这一行来实现垂直居中 */
151
+ height:100%;
152
+
153
+ .btn_group {
154
+ padding-left: 6px;
155
+
156
+ :deep(.ant-btn) {
157
+ height: 3rem;
158
+ color: #4F93FE;
159
+ }
160
+
161
+ .star_button {
162
+ color: #ffba00;
163
+ }
164
+ }
165
+
166
+ :deep(.ant-select-selection--single) {
167
+ height: 100%;
168
+ }
169
+ :deep(.search__field__mirror) {
170
+ height: 100%;
171
+ }
172
+ .contentInput{
173
+ height: 48px;
174
+ width: 35rem;
175
+ background-color: #fff;
176
+ padding: 4px 80px 4px 40px;
177
+ font-size: 16px;
178
+ }
179
+ .select {
180
+ width: 160px;
181
+ height: 48px;
182
+ padding-right: 6px;
183
+ font-size: 16px;
184
+ text-align: center;
185
+ :deep(.ant-select-selection-selected-value) {
186
+ width: 120px;
187
+ height: 48px;
188
+ line-height: 48px;
189
+ }
190
+ }
191
+ }
192
+
193
+ </style>