vue2-client 1.20.44 → 1.20.46

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 (62) hide show
  1. package/.env.his +19 -19
  2. package/package.json +1 -1
  3. package/src/base-client/components/common/XMarkdownViewer/XMarkdownViewer.vue +2 -2
  4. package/src/base-client/components/common/XMarkdownViewer/demo.vue +102 -102
  5. package/src/pages/userInfoDetailManage/TransferRecordQuery/index.vue +133 -19
  6. package/vue.config.js +0 -5
  7. package/.history/src/base-client/components/common/HIS/HForm/HForm_20260413095325.vue +0 -509
  8. package/.history/src/base-client/components/common/HIS/HForm/HForm_20260413095341.vue +0 -506
  9. package/.history/src/base-client/components/common/HIS/HFormTable/HFormTable_20260310142713.vue +0 -512
  10. package/.history/src/base-client/components/common/HIS/HFormTable/HFormTable_20260310145118.vue +0 -511
  11. package/.history/src/base-client/components/common/HIS/HFormTable/HFormTable_20260311094834.vue +0 -696
  12. package/.history/src/base-client/components/common/HIS/HFormTable/HFormTable_20260320143028.vue +0 -693
  13. package/.history/src/base-client/components/common/HIS/HFormTable/HFormTable_20260409101450.vue +0 -677
  14. package/.history/src/base-client/components/common/XForm/XFormItem_20260320142959.vue +0 -1586
  15. package/.history/src/base-client/components/common/XForm/XFormItem_20260320143028.vue +0 -1584
  16. package/.history/src/base-client/components/common/XReportGrid/XReport_20260309171231.vue +0 -1241
  17. package/.history/src/base-client/components/common/XReportGrid/XReport_20260309171441.vue +0 -1223
  18. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203170042.vue +0 -1473
  19. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203170134.vue +0 -1473
  20. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203170203.vue +0 -1473
  21. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203171235.vue +0 -1473
  22. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203171318.vue +0 -1471
  23. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203171328.vue +0 -1471
  24. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203171333.vue +0 -1470
  25. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203171338.vue +0 -1470
  26. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203171352.vue +0 -1470
  27. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203171655.vue +0 -1471
  28. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203171715.vue +0 -1472
  29. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203171735.vue +0 -1472
  30. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203171738.vue +0 -1472
  31. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203171955.vue +0 -1472
  32. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203172007.vue +0 -1473
  33. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203172037.vue +0 -1473
  34. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203172045.vue +0 -1473
  35. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203172244.vue +0 -1473
  36. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203172258.vue +0 -1469
  37. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203172323.vue +0 -1469
  38. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203172337.vue +0 -1469
  39. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203172359.vue +0 -1469
  40. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203172404.vue +0 -1469
  41. package/.history/src/components/STable/index_20260409155138.js +0 -806
  42. package/.history/src/components/STable/index_20260409155218.js +0 -814
  43. package/.history/src/expression/core/Expression_20260305164427.js +0 -1371
  44. package/.history/src/expression/core/Expression_20260305170258.js +0 -1358
  45. package/.history/src/expression/core/Program_20260305111830.js +0 -944
  46. package/.history/src/expression/core/Program_20260305112041.js +0 -931
  47. package/.history/src/logic/LogicRunner_20260304154306.js +0 -170
  48. package/.history/src/logic/LogicRunner_20260304155553.js +0 -112
  49. package/.history/src/logic/LogicRunner_20260305105834.js +0 -112
  50. package/.history/src/logic/LogicRunner_20260305112718.js +0 -129
  51. package/.history/src/logic/LogicRunner_20260305182436.js +0 -133
  52. package/.history/src/logic/LogicRunner_20260306151301.js +0 -213
  53. package/.history/src/logic/LogicRunner_20260306152419.js +0 -213
  54. package/.history/src/logic/plugins/common/DateTools_20260305154159.js +0 -61
  55. package/.history/src/logic/plugins/common/DateTools_20260305154217.js +0 -44
  56. package/.history/src/logic/plugins/common/DateTools_20260305161014.js +0 -44
  57. package/.history/src/logic/plugins/common/HttpTools_20260305164352.js +0 -80
  58. package/.history/src/logic/plugins/common/HttpTools_20260305170258.js +0 -75
  59. package/.history/src/logic/plugins/common/HttpTools_20260305171634.js +0 -75
  60. package/.history/src/logic/plugins/common/HttpTools_20260306152419.js +0 -72
  61. package/.history/src/utils/indexedDB_20260306150918.js +0 -593
  62. package/.history/src/utils/indexedDB_20260306151301.js +0 -586
package/.env.his CHANGED
@@ -1,19 +1,19 @@
1
- VUE_APP_PUBLIC_PATH=/
2
- VUE_APP_NAME=Admin
3
- VUE_APP_ROUTES_KEY=admin.routes
4
- VUE_APP_PERMISSIONS_KEY=admin.permissions
5
- VUE_APP_ROLES_KEY=admin.roles
6
- VUE_APP_USER_KEY=admin.user
7
- VUE_APP_LOGIN_KEY=admin.login
8
- VUE_APP_SETTING_KEY=admin.setting
9
- VUE_APP_TBAS_KEY=admin.tabs
10
- VUE_APP_TBAS_TITLES_KEY=admin.tabs.titles
11
- VUE_APP_DICTIONARY_KEY=admin.dictionary
12
- VUE_APP_BADGE_KEY=admin.badge
13
- VUE_APP_SINGLEVALUE_KEY=admin.singlevalue
14
- VUE_APP_DIVISIONSOHCHINA=admin.divisionsohchina
15
- VUE_APP_WEB_CONFIG_KEY=admin.webconfig
16
- VUE_APP_API_BASE_URL=http://123.60.214.109:8405
17
- VUE_APP_SYSTEM_NAME=af-his
18
- VUE_APP_LOGIN_VERSION=V4
19
-
1
+ VUE_APP_PUBLIC_PATH=/
2
+ VUE_APP_NAME=Admin
3
+ VUE_APP_ROUTES_KEY=admin.routes
4
+ VUE_APP_PERMISSIONS_KEY=admin.permissions
5
+ VUE_APP_ROLES_KEY=admin.roles
6
+ VUE_APP_USER_KEY=admin.user
7
+ VUE_APP_LOGIN_KEY=admin.login
8
+ VUE_APP_SETTING_KEY=admin.setting
9
+ VUE_APP_TBAS_KEY=admin.tabs
10
+ VUE_APP_TBAS_TITLES_KEY=admin.tabs.titles
11
+ VUE_APP_DICTIONARY_KEY=admin.dictionary
12
+ VUE_APP_BADGE_KEY=admin.badge
13
+ VUE_APP_SINGLEVALUE_KEY=admin.singlevalue
14
+ VUE_APP_DIVISIONSOHCHINA=admin.divisionsohchina
15
+ VUE_APP_WEB_CONFIG_KEY=admin.webconfig
16
+ VUE_APP_API_BASE_URL=http://123.60.214.109:8405
17
+ VUE_APP_SYSTEM_NAME=af-his
18
+ VUE_APP_LOGIN_VERSION=V4
19
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue2-client",
3
- "version": "1.20.44",
3
+ "version": "1.20.46",
4
4
  "private": false,
5
5
  "scripts": {
6
6
  "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint",
@@ -236,9 +236,9 @@ export default {
236
236
  let currentContent = ''
237
237
  let stopConnection = null
238
238
 
239
- // 使用代理路径,避免跨域问题
239
+ // 直接使用完整路径
240
240
  stopConnection = startEventStreamPOST(
241
- '/api/af-his/ai/chat/stream',
241
+ '/his-web/api/af-his/ai/chat/stream',
242
242
  {
243
243
  userMessage,
244
244
  chatId,
@@ -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
+
@@ -1,48 +1,127 @@
1
1
  <template>
2
- <a-card :bordered="false" v-if="currUserInfo">
2
+ <a-card :bordered="false">
3
3
  <x-form-table
4
- title="过户记录查询"
4
+ title="过户查询"
5
5
  :queryParamsName="queryParamsName"
6
- :fixedQueryForm="fixedQueryForm"
7
- service-name="af-revenue"
6
+ :fixedAddForm="fixedAddForm"
8
7
  @action="action"
8
+ @getimg="getimg"
9
9
  ref="xFormTable">
10
10
  </x-form-table>
11
+ <a-drawer
12
+ title="详情信息"
13
+ placement="right"
14
+ :destroy-on-close="true"
15
+ width="85vw"
16
+ :closable="false"
17
+ :visible="detailVisible"
18
+ @close="onClose">
19
+ <span>
20
+ 详情表单内容
21
+ </span>
22
+ </a-drawer>
23
+ <a-modal :zIndex="9999" :visible="showFilesModel" :footer="null" @cancel="handleCancel">
24
+ <div v-if="transferImages.length > 0">
25
+ <span
26
+ v-for="img in transferImages"
27
+ :key="img.id"
28
+ class="picture-card"
29
+ style="width: 150px; height: 150px ">
30
+ <img
31
+ :src="img"
32
+ width="100%"
33
+ :alt="img"
34
+ />
35
+ <span class="picture-action">
36
+ <a-icon type="eye" class="picture-preview-icon" @click="preview(img)"/>
37
+ </span>
38
+ </span>
39
+ </div>
40
+ <div v-if="transferImages.length === 0">
41
+ <a-empty/>
42
+ </div>
43
+ </a-modal>
44
+ <a-modal
45
+ :visible="previewVisible"
46
+ :dialogStyle="{maxWidth: '1200px'}"
47
+ :footer="null"
48
+ :z-index="10000"
49
+ width="80%"
50
+ @cancel="previewHandleCancel">
51
+ <img :src="previewImageSrc" style="width: 100%;" />
52
+ </a-modal>
11
53
  </a-card>
12
54
  </template>
13
55
 
14
56
  <script>
57
+ import XFormTable from '@vue2-client/base-client/components/common/XFormTable/XFormTable.vue'
15
58
  import { mapState } from 'vuex'
16
-
59
+ import { post } from '@vue2-client/services/api'
60
+ import { getRealKeyData } from 'vue2-client/src/utils/formatter'
17
61
  export default {
18
- name: 'TransferRecordQuery',
62
+ name: 'TransferQuery',
19
63
  components: {
20
- XFormTable: () => import('@vue2-client/base-client/components/common/XFormTable/XFormTable.vue')
64
+ XFormTable
21
65
  },
22
66
  data () {
23
67
  return {
24
68
  // 查询配置名称
25
- queryParamsName: 'UserTransferRecordQueryCRUD',
26
- // 查询表单固定值
27
- fixedQueryForm: { t_f_userinfo_id: this.currUserInfo.f_userinfo_id },
69
+ queryParamsName: 'transferQueryCRUD',
70
+ // 新增表单固定值
71
+ fixedAddForm: {},
72
+ transferImages: [],
73
+ showFilesModel: false,
74
+ previewVisible: false,
75
+ previewImageSrc: '',
28
76
  // 是否显示详情抽屉
29
77
  detailVisible: false,
30
78
  // 当前记录
31
79
  record: {}
32
80
  }
33
81
  },
34
- props: {
35
- currUserInfo: {
36
- type: Object,
37
- default: () => undefined
38
- }
39
- },
40
82
  created () {
41
83
  },
42
84
  mounted () {
43
- this.$refs.xFormTable.refresh(true)
85
+ console.log('==当前登录人', this.currUser)
44
86
  },
45
87
  methods: {
88
+ previewHandleCancel () {
89
+ this.previewVisible = false
90
+ this.previewImageSrc = ''
91
+ },
92
+ preview (val) {
93
+ console.log(val)
94
+ this.previewImageSrc = val
95
+ this.previewVisible = true
96
+ },
97
+ handleCancel () {
98
+ this.showFilesModel = false
99
+ },
100
+ getimg (record) {
101
+ console.log(record)
102
+ record = getRealKeyData(record)
103
+ console.log(record)
104
+ let condition = `f_blobid = '${record.f_userinfo_id}' and fusetype like '%过户%' `
105
+ if(record.id){
106
+ condition = `f_businessid = '${record.id}' and fusetype like '%过户%' `
107
+ }
108
+ const data = {
109
+ condition: condition
110
+ }
111
+ post('/api/af-revenue/sql/getFiles', { data: data }, null).then(res => {
112
+ if (res.length > 0) {
113
+ if (this.$refs.xFormTable.realQueryConfig?.$globalProp?.tenantAlias === 'aode') {
114
+ this.transferImages = res.map(item => 'http://192.168.11.160:31467/' + item.f_downloadpath.substring(item.f_downloadpath.lastIndexOf(':\\') + 2))
115
+ } else {
116
+ this.transferImages = res.map(item => item.f_downloadpath)
117
+ }
118
+ console.log(' this.disableImages', this.transferImages)
119
+ } else {
120
+ this.transferImages = []
121
+ }
122
+ })
123
+ this.showFilesModel = true
124
+ },
46
125
  action (record, id, actionType) {
47
126
  this.detailVisible = true
48
127
  console.log('触发了详情操作', record, id, actionType)
@@ -53,7 +132,6 @@ export default {
53
132
  this.$refs.xFormTable.refreshTable(true)
54
133
  }
55
134
  },
56
-
57
135
  computed: {
58
136
  ...mapState('account', { currUser: 'user' }),
59
137
  ...mapState('setting', { isMobile: 'isMobile' })
@@ -62,5 +140,41 @@ export default {
62
140
  </script>
63
141
 
64
142
  <style scoped>
65
-
143
+ .picture-card {
144
+ position: relative;
145
+ display: inline-block;
146
+ border: 1px solid #d9d9d9;
147
+ border-radius: 6px;
148
+ padding: 10px;
149
+ margin: 0 10px 10px 0;
150
+ overflow: hidden;
151
+ }
152
+ .picture-card img {
153
+ width: 100%;
154
+ height: 100%;
155
+ display: block;
156
+ }
157
+ .picture-action {
158
+ position: absolute;
159
+ top: 0;
160
+ left: 0;
161
+ width: 100%;
162
+ height: 100%;
163
+ display: flex;
164
+ justify-content: center;
165
+ align-items: center;
166
+ background: rgba(0, 0, 0, 0);
167
+ transition: all 0.3s;
168
+ }
169
+ .picture-action:hover {
170
+ background: rgba(0, 0, 0, 0.4);
171
+ }
172
+ .picture-preview-icon {
173
+ font-size: 22px;
174
+ color: transparent;
175
+ transition: color 0.3s;
176
+ }
177
+ .picture-action:hover .picture-preview-icon {
178
+ color: #fff;
179
+ }
66
180
  </style>
package/vue.config.js CHANGED
@@ -133,11 +133,6 @@ module.exports = {
133
133
  changeOrigin: true,
134
134
  secure: false,
135
135
  ws: false
136
- },
137
- '/api/af-his': {
138
- target: v3Server,
139
- pathRewrite: { '^/api/af-his': '/his-web/api/af-his' },
140
- changeOrigin: true
141
136
  }
142
137
  },
143
138
  client: {