vue2-client 1.22.2 → 1.22.3

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 (170) hide show
  1. package/.claude/settings.local.json +30 -30
  2. package/.env.his +19 -19
  3. package/.eslintrc.js +74 -74
  4. package/.history/.eslintrc_20260521171150.js +74 -0
  5. package/.history/.eslintrc_20260521171213.js +74 -0
  6. package/.history/src/base-client/components/common/HIS/HAddNativeForm/HAddNativeForm_20260601154443.vue +726 -0
  7. package/.history/src/base-client/components/common/HIS/HAddNativeForm/HAddNativeForm_20260601154700.vue +478 -0
  8. package/.history/src/base-client/components/common/HIS/HButtons/HButtons_20260512175435.vue +706 -0
  9. package/.history/src/base-client/components/common/HIS/HButtons/HButtons_20260512175450.vue +694 -0
  10. package/.history/src/base-client/components/common/HIS/HButtons/HButtons_20260611152602.vue +755 -0
  11. package/.history/src/base-client/components/common/HIS/HForm/HForm_20260513145941.vue +524 -0
  12. package/.history/src/base-client/components/common/HIS/HForm/HForm_20260513153133.vue +731 -0
  13. package/.history/src/base-client/components/common/HIS/HForm/HForm_20260513160316.vue +525 -0
  14. package/.history/src/base-client/components/common/HIS/HForm/HForm_20260601144150.vue +1046 -0
  15. package/.history/src/base-client/components/common/HIS/HFormTable/HFormTable_20260310142713.vue +512 -0
  16. package/.history/src/base-client/components/common/HIS/HFormTable/HFormTable_20260310145118.vue +511 -0
  17. package/.history/src/base-client/components/common/HIS/HFormTable/HFormTable_20260311094834.vue +696 -0
  18. package/.history/src/base-client/components/common/HIS/HFormTable/HFormTable_20260320143028.vue +693 -0
  19. package/.history/src/base-client/components/common/HIS/HFormTable/HFormTable_20260409101450.vue +677 -0
  20. package/.history/src/base-client/components/common/HIS/HTab/HTab_20260508164645.vue +758 -0
  21. package/.history/src/base-client/components/common/HIS/HTab/HTab_20260508164714.vue +693 -0
  22. package/.history/src/base-client/components/common/HIS/HTab/HTab_20260508171651.vue +716 -0
  23. package/.history/src/base-client/components/common/HIS/HTab/HTab_20260509133717.vue +695 -0
  24. package/.history/src/base-client/components/common/HIS/HTab/HTab_20260509171115.vue +664 -0
  25. package/.history/src/base-client/components/common/XAddNativeForm/XAddNativeForm_20260513140637.vue +1455 -0
  26. package/.history/src/base-client/components/common/XAddNativeForm/XAddNativeForm_20260513140935.vue +1441 -0
  27. package/.history/src/base-client/components/common/XAddNativeForm/XAddNativeForm_20260513150818.vue +1441 -0
  28. package/.history/src/base-client/components/common/XAddNativeForm/XAddNativeForm_20260513153119.vue +1442 -0
  29. package/.history/src/base-client/components/common/XAddNativeForm/XAddNativeForm_20260513153126.vue +1486 -0
  30. package/.history/src/base-client/components/common/XForm/XFormItem_20260513140854.vue +1607 -0
  31. package/.history/src/base-client/components/common/XMarkdownViewer/XMarkdownViewer_20260519140403.vue +643 -0
  32. package/.history/src/base-client/components/common/XMarkdownViewer/XMarkdownViewer_20260519140829.vue +628 -0
  33. package/.history/src/base-client/components/common/XMarkdownViewer/demo_20260519142824.vue +104 -0
  34. package/.history/src/base-client/components/common/XMarkdownViewer/demo_20260519143155.vue +102 -0
  35. package/.history/src/base-client/components/common/XReportGrid/XReport_20260309171231.vue +1241 -0
  36. package/.history/src/base-client/components/common/XReportGrid/XReport_20260309171441.vue +1223 -0
  37. package/.history/src/base-client/components/his/HAi/HAi_20260612174826.vue +472 -0
  38. package/.history/src/base-client/components/his/HAi/HAi_20260612175839.vue +538 -0
  39. package/.history/src/base-client/components/his/HAi/HAi_20260615103331.vue +650 -0
  40. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260424134504.vue +1469 -0
  41. package/.history/src/base-client/components/his/XSidebar/XSidebar_20260610171133.vue +788 -0
  42. package/.history/src/base-client/components/his/XSidebar/XSidebar_20260610171151.vue +780 -0
  43. package/.history/src/base-client/components/his/XTransfer/XTransfer_20260511170841.vue +585 -0
  44. package/.history/src/base-client/components/his/XTransfer/XTransfer_20260511171138.vue +787 -0
  45. package/.history/src/base-client/components/his/XTransfer/XTransfer_20260512141830.vue +739 -0
  46. package/.history/src/components/STable/index_20260409155138.js +806 -0
  47. package/.history/src/components/STable/index_20260409155218.js +814 -0
  48. package/.history/src/expression/core/Expression_20260305164427.js +1371 -0
  49. package/.history/src/expression/core/Expression_20260305170258.js +1358 -0
  50. package/.history/src/expression/core/Program_20260305111830.js +944 -0
  51. package/.history/src/expression/core/Program_20260305112041.js +931 -0
  52. package/.history/src/logic/LogicRunner_20260304154306.js +170 -0
  53. package/.history/src/logic/LogicRunner_20260304155553.js +112 -0
  54. package/.history/src/logic/LogicRunner_20260305105834.js +112 -0
  55. package/.history/src/logic/LogicRunner_20260305112718.js +129 -0
  56. package/.history/src/logic/LogicRunner_20260305182436.js +133 -0
  57. package/.history/src/logic/LogicRunner_20260306151301.js +213 -0
  58. package/.history/src/logic/LogicRunner_20260306152419.js +213 -0
  59. package/.history/src/logic/plugins/common/DateTools_20260305154159.js +61 -0
  60. package/.history/src/logic/plugins/common/DateTools_20260305154217.js +44 -0
  61. package/.history/src/logic/plugins/common/DateTools_20260305161014.js +44 -0
  62. package/.history/src/logic/plugins/common/HttpTools_20260305164352.js +80 -0
  63. package/.history/src/logic/plugins/common/HttpTools_20260305170258.js +75 -0
  64. package/.history/src/logic/plugins/common/HttpTools_20260305171634.js +75 -0
  65. package/.history/src/logic/plugins/common/HttpTools_20260306152419.js +72 -0
  66. package/.history/src/services/api/restTools_20260427142149.js +245 -0
  67. package/.history/src/services/api/restTools_20260427142853.js +230 -0
  68. package/.history/src/services/api/restTools_20260519135558.js +230 -0
  69. package/.history/src/services/api/restTools_20260519140825.js +230 -0
  70. package/.history/src/services/api/restTools_20260519151223.js +230 -0
  71. package/.history/src/utils/indexedDB_20260306150918.js +593 -0
  72. package/.history/src/utils/indexedDB_20260306151301.js +586 -0
  73. package/.idea/af-vue2-client.iml +9 -0
  74. package/.idea/codeStyles/Project.xml +62 -0
  75. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  76. package/.idea/misc.xml +6 -0
  77. package/.idea/modules.xml +1 -1
  78. package/Components.md +60 -60
  79. package/index.js +31 -31
  80. package/jest-transform-stub.js +8 -8
  81. package/jest.setup.js +7 -7
  82. package/package.json +1 -1
  83. package/preview-input-box.html +180 -0
  84. package/src/assets/img/querySlotDemo.svg +15 -15
  85. package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +120 -120
  86. package/src/base-client/components/common/CitySelect/index.js +3 -3
  87. package/src/base-client/components/common/CitySelect/index.md +109 -109
  88. package/src/base-client/components/common/FormGroupEdit/index.js +3 -3
  89. package/src/base-client/components/common/FormGroupEdit/index.md +43 -43
  90. package/src/base-client/components/common/HIS/HButtons/HButtons.vue +55 -1
  91. package/src/base-client/components/common/HIS/HForm/HForm.vue +1186 -1186
  92. package/src/base-client/components/common/HIS/HTab/HTab.vue +88 -1
  93. package/src/base-client/components/common/JSONToTree/jsontotree.vue +271 -271
  94. package/src/base-client/components/common/PersonSetting/index.js +3 -3
  95. package/src/base-client/components/common/Tree/index.js +2 -2
  96. package/src/base-client/components/common/Upload/index.js +3 -3
  97. package/src/base-client/components/common/XAddNativeForm/index.md +146 -146
  98. package/src/base-client/components/common/XAddReport/XAddReport.vue +16 -1
  99. package/src/base-client/components/common/XCard/XCard.vue +64 -64
  100. package/src/base-client/components/common/XDataDrawer/XDataDrawer.vue +180 -180
  101. package/src/base-client/components/common/XDataDrawer/index.js +3 -3
  102. package/src/base-client/components/common/XDataDrawer/index.md +41 -41
  103. package/src/base-client/components/common/XDescriptions/index.js +3 -3
  104. package/src/base-client/components/common/XDescriptions/index.md +382 -382
  105. package/src/base-client/components/common/XForm/index.md +178 -178
  106. package/src/base-client/components/common/XInput/XInput.vue +32 -1
  107. package/src/base-client/components/common/XInspectionDetailDrawer/index.vue +1 -1
  108. package/src/base-client/components/common/XMarkdownViewer/demo.vue +102 -102
  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/index.md +255 -255
  113. package/src/base-client/components/his/HAi/HAi.vue +1177 -436
  114. package/src/base-client/components/his/XList/XList.vue +337 -58
  115. package/src/base-client/components/his/XSidebar/XSidebar.vue +36 -12
  116. package/src/base-client/components/his/XTransfer/index.md +327 -327
  117. package/src/base-client/components/system/DictionaryDetailsView/DictionaryDetailsView.vue +232 -232
  118. package/src/base-client/plugins/Config.js +19 -19
  119. package/src/base-client/plugins/tabs-page-plugin.js +39 -39
  120. package/src/components/Charts/Bar.vue +62 -62
  121. package/src/components/Charts/ChartCard.vue +134 -134
  122. package/src/components/Charts/Liquid.vue +67 -67
  123. package/src/components/Charts/MiniArea.vue +39 -39
  124. package/src/components/Charts/MiniBar.vue +39 -39
  125. package/src/components/Charts/MiniProgress.vue +75 -75
  126. package/src/components/Charts/MiniSmoothArea.vue +40 -40
  127. package/src/components/Charts/Radar.vue +68 -68
  128. package/src/components/Charts/RankList.vue +77 -77
  129. package/src/components/Charts/TagCloud.vue +113 -113
  130. package/src/components/Charts/TransferBar.vue +64 -64
  131. package/src/components/Charts/Trend.vue +82 -82
  132. package/src/components/Charts/chart.less +12 -12
  133. package/src/components/Charts/smooth.area.less +13 -13
  134. package/src/components/NumberInfo/NumberInfo.vue +54 -54
  135. package/src/components/NumberInfo/index.js +3 -3
  136. package/src/components/NumberInfo/index.less +54 -54
  137. package/src/components/NumberInfo/index.md +43 -43
  138. package/src/components/STable/index.js +953 -953
  139. package/src/components/card/ChartCard.vue +79 -79
  140. package/src/components/chart/Bar.vue +60 -60
  141. package/src/components/chart/MiniArea.vue +67 -67
  142. package/src/components/chart/MiniBar.vue +59 -59
  143. package/src/components/chart/MiniProgress.vue +57 -57
  144. package/src/components/chart/Radar.vue +80 -80
  145. package/src/components/chart/RankingList.vue +60 -60
  146. package/src/components/chart/Trend.vue +79 -79
  147. package/src/components/chart/index.less +9 -9
  148. package/src/components/checkbox/ColorCheckbox.vue +157 -157
  149. package/src/components/input/IInput.vue +66 -66
  150. package/src/components/menu/SideMenu.vue +75 -75
  151. package/src/components/menu/menu.js +273 -273
  152. package/src/components/tool/AStepItem.vue +60 -60
  153. package/src/layouts/CommonLayout.vue +56 -56
  154. package/src/lib.js +1 -1
  155. package/src/mock/extend/index.js +84 -84
  156. package/src/mock/goods/index.js +108 -108
  157. package/src/pages/dashboard/workplace/WorkPlace.vue +141 -141
  158. package/src/pages/system/dictionary/index.vue +44 -44
  159. package/src/pages/system/monitor/loginInfor/index.vue +37 -37
  160. package/src/pages/system/monitor/operLog/index.vue +37 -37
  161. package/src/services/api/cas.js +79 -79
  162. package/src/store/modules/setting.js +119 -119
  163. package/src/utils/errorCode.js +6 -6
  164. package//350/277/201/347/247/273/346/227/245/345/277/227.md +15 -15
  165. package/.idea/MarsCodeWorkspaceAppSettings.xml +0 -7
  166. package/.idea/google-java-format.xml +0 -6
  167. package/.idea/inspectionProfiles/Project_Default.xml +0 -24
  168. package/.idea/jsLinters/eslint.xml +0 -6
  169. package/.idea/vue2-client.iml +0 -12
  170. package/.vscode/settings.json +0 -28
@@ -1,178 +1,178 @@
1
- # XForm
2
-
3
- 动态表单控件,根据JSON配置生成一个完整的动态表单
4
-
5
-
6
- ## 何时使用
7
-
8
- 当需要一个动态生成的表单时
9
-
10
-
11
- 引用方式:
12
-
13
- ```javascript
14
- import XForm from '@vue2-client/base-client/components/XForm/XForm'
15
-
16
- export default {
17
- components: {
18
- XForm
19
- }
20
- }
21
- ```
22
-
23
-
24
-
25
- ## 代码演示
26
-
27
- ```html
28
- <x-form
29
- :json-data="json"
30
- :isExports="true"
31
- @onSubmit="onSubmit">
32
- </x-form>
33
- ```
34
-
35
- ## API
36
-
37
- | 参数 | 说明 | 类型 | 默认值 |
38
- |-----------|--------------------------|---------|------|
39
- | jsonData | JSON配置,根据[工具>查询配置生成]功能生成 | Object | {} |
40
- | isExports | 是否显示导出按钮 | Boolean | true |
41
- | getDataParams | 调用logic获取数据源的追加参数 | Object | - |
42
- | @onSubmit | 表单的提交事件 | event | - |
43
-
44
- ## 例子1
45
- ----
46
- (基础使用)
47
-
48
- ```vue
49
- <template>
50
- <x-form
51
- v-if="loaded"
52
- :json-data="formItemJson"
53
- :isExports="false"
54
- @onSubmit="onSubmit">
55
- </x-form>
56
- </template>
57
-
58
- <script>
59
- import XForm from '@vue2-client/base-client/components/XForm/XForm'
60
-
61
- export default {
62
- components: {
63
- XForm
64
- },
65
- data () {
66
- return {
67
- // 加载查询参数JSON配置文件是否完成
68
- loaded: false,
69
- // 从查询参数JSON配置中得到的生成表单的JSON
70
- formItemJson: undefined,
71
- // 表单
72
- form: {}
73
- }
74
- },
75
- created () {
76
- this.getQueryJson()
77
- },
78
- methods: {
79
- // 加载查询参数JSON配置文件
80
- getQueryJson () {
81
- this.formItemJson = [
82
- {
83
- "name":"燃气公司",
84
- "keyName":"orgList",
85
- "model":"orgName",
86
- "placeholder":"请选择",
87
- "type":"select"
88
- },
89
- {
90
- "name":"用户地址",
91
- "model":"f_address",
92
- "type":"input"
93
- },
94
- {
95
- "name":"指令类型",
96
- "keyName":"指令类型",
97
- "model":"f_instruct_type",
98
- "placeholder":"请选择",
99
- "type":"select"
100
- },
101
- {
102
- "name":"指令说明",
103
- "model":"f_instruct_title",
104
- "placeholder":"请输入指令说明",
105
- "type":"input"
106
- },
107
- {
108
- "name":"指令状态",
109
- "keyName":"指令状态",
110
- "model":"f_instruct_state",
111
- "placeholder":"请选择",
112
- "type":"select"
113
- },
114
- {
115
- "name":"响应结果",
116
- "model":"f_receive_state",
117
- "placeholder":"请输入响应结果",
118
- "type":"input"
119
- },
120
- {
121
- "name":"生成时间",
122
- "model":"f_instruct_date",
123
- "type":"rangePicker"
124
- },
125
- {
126
- "name":"操作人",
127
- "model":"f_inputtor",
128
- "placeholder":"请输入操作人员",
129
- "type":"input"
130
- }
131
- ]
132
- this.loaded = true
133
- },
134
- // 表单提交方法
135
- onSubmit (res) {
136
- // 如果通过校验
137
- if (res.valid) {
138
- // 表单赋值
139
- this.form = res.form
140
- } else {
141
- return false
142
- }
143
- }
144
- }
145
- }
146
- </script>
147
- ```
148
-
149
- 注意事项
150
- ----
151
-
152
- > 本组件已经实现了自适应布局,在不同分辨率下的设备均可得到基本理想的展示效果
153
- >
154
- > 以上示例查询参数配置为后台生成后的结果,此处为了方便调试,所以直接写在了代码中,实际使用请通过发起请求获取查询参数配置,如下:
155
- ```vue
156
- <script>
157
- import { commonApi } from '@vue2-client/base-client/api/common'
158
- import Vue from 'vue'
159
-
160
- export default {
161
- data () {
162
- return {
163
- // 查询配置文件名
164
- queryParamsName: 'instructQueryParams'
165
- }
166
- },
167
- methods: {
168
- getConfig () {
169
- Vue.resetpost(commonApi.getConfig, {str: this.queryParamsName}).then((res) => {
170
- this.formItemJson = res.formJson
171
- this.columnItemJson = res.columnJson
172
- this.loaded = true
173
- })
174
- }
175
- }
176
- }
177
- </script>
178
- ```
1
+ # XForm
2
+
3
+ 动态表单控件,根据JSON配置生成一个完整的动态表单
4
+
5
+
6
+ ## 何时使用
7
+
8
+ 当需要一个动态生成的表单时
9
+
10
+
11
+ 引用方式:
12
+
13
+ ```javascript
14
+ import XForm from '@vue2-client/base-client/components/XForm/XForm'
15
+
16
+ export default {
17
+ components: {
18
+ XForm
19
+ }
20
+ }
21
+ ```
22
+
23
+
24
+
25
+ ## 代码演示
26
+
27
+ ```html
28
+ <x-form
29
+ :json-data="json"
30
+ :isExports="true"
31
+ @onSubmit="onSubmit">
32
+ </x-form>
33
+ ```
34
+
35
+ ## API
36
+
37
+ | 参数 | 说明 | 类型 | 默认值 |
38
+ |-----------|--------------------------|---------|------|
39
+ | jsonData | JSON配置,根据[工具>查询配置生成]功能生成 | Object | {} |
40
+ | isExports | 是否显示导出按钮 | Boolean | true |
41
+ | getDataParams | 调用logic获取数据源的追加参数 | Object | - |
42
+ | @onSubmit | 表单的提交事件 | event | - |
43
+
44
+ ## 例子1
45
+ ----
46
+ (基础使用)
47
+
48
+ ```vue
49
+ <template>
50
+ <x-form
51
+ v-if="loaded"
52
+ :json-data="formItemJson"
53
+ :isExports="false"
54
+ @onSubmit="onSubmit">
55
+ </x-form>
56
+ </template>
57
+
58
+ <script>
59
+ import XForm from '@vue2-client/base-client/components/XForm/XForm'
60
+
61
+ export default {
62
+ components: {
63
+ XForm
64
+ },
65
+ data () {
66
+ return {
67
+ // 加载查询参数JSON配置文件是否完成
68
+ loaded: false,
69
+ // 从查询参数JSON配置中得到的生成表单的JSON
70
+ formItemJson: undefined,
71
+ // 表单
72
+ form: {}
73
+ }
74
+ },
75
+ created () {
76
+ this.getQueryJson()
77
+ },
78
+ methods: {
79
+ // 加载查询参数JSON配置文件
80
+ getQueryJson () {
81
+ this.formItemJson = [
82
+ {
83
+ "name":"燃气公司",
84
+ "keyName":"orgList",
85
+ "model":"orgName",
86
+ "placeholder":"请选择",
87
+ "type":"select"
88
+ },
89
+ {
90
+ "name":"用户地址",
91
+ "model":"f_address",
92
+ "type":"input"
93
+ },
94
+ {
95
+ "name":"指令类型",
96
+ "keyName":"指令类型",
97
+ "model":"f_instruct_type",
98
+ "placeholder":"请选择",
99
+ "type":"select"
100
+ },
101
+ {
102
+ "name":"指令说明",
103
+ "model":"f_instruct_title",
104
+ "placeholder":"请输入指令说明",
105
+ "type":"input"
106
+ },
107
+ {
108
+ "name":"指令状态",
109
+ "keyName":"指令状态",
110
+ "model":"f_instruct_state",
111
+ "placeholder":"请选择",
112
+ "type":"select"
113
+ },
114
+ {
115
+ "name":"响应结果",
116
+ "model":"f_receive_state",
117
+ "placeholder":"请输入响应结果",
118
+ "type":"input"
119
+ },
120
+ {
121
+ "name":"生成时间",
122
+ "model":"f_instruct_date",
123
+ "type":"rangePicker"
124
+ },
125
+ {
126
+ "name":"操作人",
127
+ "model":"f_inputtor",
128
+ "placeholder":"请输入操作人员",
129
+ "type":"input"
130
+ }
131
+ ]
132
+ this.loaded = true
133
+ },
134
+ // 表单提交方法
135
+ onSubmit (res) {
136
+ // 如果通过校验
137
+ if (res.valid) {
138
+ // 表单赋值
139
+ this.form = res.form
140
+ } else {
141
+ return false
142
+ }
143
+ }
144
+ }
145
+ }
146
+ </script>
147
+ ```
148
+
149
+ 注意事项
150
+ ----
151
+
152
+ > 本组件已经实现了自适应布局,在不同分辨率下的设备均可得到基本理想的展示效果
153
+ >
154
+ > 以上示例查询参数配置为后台生成后的结果,此处为了方便调试,所以直接写在了代码中,实际使用请通过发起请求获取查询参数配置,如下:
155
+ ```vue
156
+ <script>
157
+ import { commonApi } from '@vue2-client/base-client/api/common'
158
+ import Vue from 'vue'
159
+
160
+ export default {
161
+ data () {
162
+ return {
163
+ // 查询配置文件名
164
+ queryParamsName: 'instructQueryParams'
165
+ }
166
+ },
167
+ methods: {
168
+ getConfig () {
169
+ Vue.resetpost(commonApi.getConfig, {str: this.queryParamsName}).then((res) => {
170
+ this.formItemJson = res.formJson
171
+ this.columnItemJson = res.columnJson
172
+ this.loaded = true
173
+ })
174
+ }
175
+ }
176
+ }
177
+ </script>
178
+ ```
@@ -57,7 +57,8 @@ export default {
57
57
  const booleanStyleKeys = [
58
58
  'medical-history',
59
59
  'yizhu-input',
60
- 'custom-placeholder'
60
+ 'custom-placeholder',
61
+ 'custom-search'
61
62
  ]
62
63
  booleanStyleKeys.forEach(key => {
63
64
  const val = attrs[key]
@@ -206,6 +207,36 @@ export default {
206
207
  color: #A7A7A7;
207
208
  }
208
209
  }
210
+ &.xinput-custom-search {
211
+ width: 100%;
212
+ height: 32px;
213
+ border-radius: 6px;
214
+ opacity: 1;
215
+ background: #FFFFFF;
216
+ box-sizing: border-box;
217
+ border: 1px solid #D8D8D8;
218
+
219
+ :deep(.ant-input::placeholder) {
220
+ height: 23px;
221
+ opacity: 1;
222
+ font-family: Source Han Sans;
223
+ font-size: 16px;
224
+ font-weight: normal;
225
+ line-height: normal;
226
+ letter-spacing: 0em;
227
+ font-feature-settings: "kern" on;
228
+ color: #A7A7A7;
229
+ }
230
+
231
+ :deep(.clickable-icon) {
232
+ position: relative;
233
+ left: 1.32px;
234
+ top: 1.33px;
235
+ font-size: 13px;
236
+ color: #C5C6CE;
237
+ cursor: pointer;
238
+ }
239
+ }
209
240
  }
210
241
 
211
242
  </style>
@@ -212,7 +212,7 @@ import { FileImageGroup } from '@vue2-client/base-client/components/common/FileI
212
212
  import ImagePreviewModal from '@vue2-client/base-client/components/common/ImagePreviewModal/ImagePreviewModal.vue'
213
213
  import { printWithHtmlToImage, exportToPDFWithJpeg } from '@vue2-client/utils/htmlToImage'
214
214
  import { runLogic } from '@vue2-client/services/api/common'
215
- import { executeStrFunctionByContext } from 'vue2-client/src/utils/runEvalFunction'
215
+ import { executeStrFunctionByContext } from '@vue2-client/utils/runEvalFunction'
216
216
 
217
217
  export default {
218
218
  name: 'XInspectionDetailDrawer',
@@ -1,102 +1,102 @@
1
- <template>
2
- <div style="padding: 16px">
3
- <h2>XMarkdownViewer Demo</h2>
4
-
5
- <div style="margin: 12px 0; padding: 12px; background: #f5f5f5; border-radius: 4px">
6
- <h4 style="margin: 0 0 8px 0">流式 AI 调用示例</h4>
7
- <div style="margin-bottom: 8px">
8
- <input
9
- v-model="userMessage"
10
- type="text"
11
- placeholder="输入消息"
12
- style="width: 300px; padding: 6px 8px; border: 1px solid #ddd; border-radius: 4px"
13
- @keyup.enter="sendMessage"
14
- >
15
- <button
16
- type="button"
17
- style="margin-left: 8px; padding: 6px 16px; background: #1890ff; color: #fff; border: none; border-radius: 4px; cursor: pointer"
18
- @click="sendMessage"
19
- >
20
- 发送
21
- </button>
22
- <button
23
- v-if="isStreaming"
24
- type="button"
25
- style="margin-left: 8px; padding: 6px 16px; background: #ff4d4f; color: #fff; border: none; border-radius: 4px; cursor: pointer"
26
- @click="stopMessage"
27
- >
28
- 停止
29
- </button>
30
- </div>
31
- <div v-if="isStreaming" style="color: #1890ff; font-size: 12px">AI 正在思考中...</div>
32
- </div>
33
-
34
- <div style="margin: 8px 0; color: #666; font-size: 12px">
35
- <span v-if="fileName">当前文件:{{ fileName }}({{ md.length }} 字符)</span>
36
- <span v-else-if="md">当前内容:流式响应({{ md.length }} 字符)</span>
37
- <span v-else>请输入消息并点击发送</span>
38
- </div>
39
-
40
- <x-markdown-viewer ref="viewer" :markdown="md" />
41
- </div>
42
- </template>
43
-
44
- <script>
45
- import XMarkdownViewer from './XMarkdownViewer.vue'
46
-
47
- export default {
48
- name: 'XMarkdownViewerDemo',
49
- components: {
50
- XMarkdownViewer
51
- },
52
- data () {
53
- return {
54
- md: '',
55
- fileName: '',
56
- userMessage: '',
57
- isStreaming: false,
58
- currentStream: null
59
- }
60
- },
61
- methods: {
62
- async sendMessage () {
63
- const message = this.userMessage.trim()
64
- if (!message) return
65
-
66
- const viewer = this.$refs.viewer
67
- if (!viewer || typeof viewer.callAiStream !== 'function') {
68
- console.warn('[Demo] viewer 不存在或没有 callAiStream 方法')
69
- return
70
- }
71
-
72
- // 开始时显示提示
73
- viewer.receiveMarkdownString('### 思考中,请稍后...\n')
74
- this.isStreaming = true
75
-
76
- // 调用流式接口
77
- const stream = viewer.callAiStream(message, {
78
- onChunk: (text) => {
79
- viewer.receiveMarkdownString('### 思考中,请稍后...\n\n' + viewer.getStreamContent())
80
- },
81
- onEnd: (fullContent) => {
82
- viewer.receiveMarkdownString(fullContent)
83
- this.isStreaming = false
84
- },
85
- onError: (error) => {
86
- viewer.receiveMarkdownString('### 抱歉,发生了错误\n\n' + error)
87
- this.isStreaming = false
88
- }
89
- })
90
-
91
- this.currentStream = stream
92
- },
93
- stopMessage () {
94
- if (this.currentStream && typeof this.currentStream.stop === 'function') {
95
- this.currentStream.stop()
96
- this.isStreaming = false
97
- }
98
- }
99
- }
100
- }
101
- </script>
102
-
1
+ <template>
2
+ <div style="padding: 16px">
3
+ <h2>XMarkdownViewer Demo</h2>
4
+
5
+ <div style="margin: 12px 0; padding: 12px; background: #f5f5f5; border-radius: 4px">
6
+ <h4 style="margin: 0 0 8px 0">流式 AI 调用示例</h4>
7
+ <div style="margin-bottom: 8px">
8
+ <input
9
+ v-model="userMessage"
10
+ type="text"
11
+ placeholder="输入消息"
12
+ style="width: 300px; padding: 6px 8px; border: 1px solid #ddd; border-radius: 4px"
13
+ @keyup.enter="sendMessage"
14
+ >
15
+ <button
16
+ type="button"
17
+ style="margin-left: 8px; padding: 6px 16px; background: #1890ff; color: #fff; border: none; border-radius: 4px; cursor: pointer"
18
+ @click="sendMessage"
19
+ >
20
+ 发送
21
+ </button>
22
+ <button
23
+ v-if="isStreaming"
24
+ type="button"
25
+ style="margin-left: 8px; padding: 6px 16px; background: #ff4d4f; color: #fff; border: none; border-radius: 4px; cursor: pointer"
26
+ @click="stopMessage"
27
+ >
28
+ 停止
29
+ </button>
30
+ </div>
31
+ <div v-if="isStreaming" style="color: #1890ff; font-size: 12px">AI 正在思考中...</div>
32
+ </div>
33
+
34
+ <div style="margin: 8px 0; color: #666; font-size: 12px">
35
+ <span v-if="fileName">当前文件:{{ fileName }}({{ md.length }} 字符)</span>
36
+ <span v-else-if="md">当前内容:流式响应({{ md.length }} 字符)</span>
37
+ <span v-else>请输入消息并点击发送</span>
38
+ </div>
39
+
40
+ <x-markdown-viewer ref="viewer" :markdown="md" />
41
+ </div>
42
+ </template>
43
+
44
+ <script>
45
+ import XMarkdownViewer from './XMarkdownViewer.vue'
46
+
47
+ export default {
48
+ name: 'XMarkdownViewerDemo',
49
+ components: {
50
+ XMarkdownViewer
51
+ },
52
+ data () {
53
+ return {
54
+ md: '',
55
+ fileName: '',
56
+ userMessage: '',
57
+ isStreaming: false,
58
+ currentStream: null
59
+ }
60
+ },
61
+ methods: {
62
+ async sendMessage () {
63
+ const message = this.userMessage.trim()
64
+ if (!message) return
65
+
66
+ const viewer = this.$refs.viewer
67
+ if (!viewer || typeof viewer.callAiStream !== 'function') {
68
+ console.warn('[Demo] viewer 不存在或没有 callAiStream 方法')
69
+ return
70
+ }
71
+
72
+ // 开始时显示提示
73
+ viewer.receiveMarkdownString('### 思考中,请稍后...\n')
74
+ this.isStreaming = true
75
+
76
+ // 调用流式接口
77
+ const stream = viewer.callAiStream(message, {
78
+ onChunk: (text) => {
79
+ viewer.receiveMarkdownString('### 思考中,请稍后...\n\n' + viewer.getStreamContent())
80
+ },
81
+ onEnd: (fullContent) => {
82
+ viewer.receiveMarkdownString(fullContent)
83
+ this.isStreaming = false
84
+ },
85
+ onError: (error) => {
86
+ viewer.receiveMarkdownString('### 抱歉,发生了错误\n\n' + error)
87
+ this.isStreaming = false
88
+ }
89
+ })
90
+
91
+ this.currentStream = stream
92
+ },
93
+ stopMessage () {
94
+ if (this.currentStream && typeof this.currentStream.stop === 'function') {
95
+ this.currentStream.stop()
96
+ this.isStreaming = false
97
+ }
98
+ }
99
+ }
100
+ }
101
+ </script>
102
+