vue2-client 1.20.45 → 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 (60) hide show
  1. package/.env.his +19 -19
  2. package/package.json +1 -1
  3. package/src/base-client/components/common/XMarkdownViewer/demo.vue +102 -102
  4. package/src/pages/userInfoDetailManage/TransferRecordQuery/index.vue +133 -19
  5. package/.history/src/base-client/components/common/HIS/HForm/HForm_20260413095325.vue +0 -509
  6. package/.history/src/base-client/components/common/HIS/HForm/HForm_20260413095341.vue +0 -506
  7. package/.history/src/base-client/components/common/HIS/HFormTable/HFormTable_20260310142713.vue +0 -512
  8. package/.history/src/base-client/components/common/HIS/HFormTable/HFormTable_20260310145118.vue +0 -511
  9. package/.history/src/base-client/components/common/HIS/HFormTable/HFormTable_20260311094834.vue +0 -696
  10. package/.history/src/base-client/components/common/HIS/HFormTable/HFormTable_20260320143028.vue +0 -693
  11. package/.history/src/base-client/components/common/HIS/HFormTable/HFormTable_20260409101450.vue +0 -677
  12. package/.history/src/base-client/components/common/XForm/XFormItem_20260320142959.vue +0 -1586
  13. package/.history/src/base-client/components/common/XForm/XFormItem_20260320143028.vue +0 -1584
  14. package/.history/src/base-client/components/common/XReportGrid/XReport_20260309171231.vue +0 -1241
  15. package/.history/src/base-client/components/common/XReportGrid/XReport_20260309171441.vue +0 -1223
  16. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203170042.vue +0 -1473
  17. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203170134.vue +0 -1473
  18. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203170203.vue +0 -1473
  19. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203171235.vue +0 -1473
  20. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203171318.vue +0 -1471
  21. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203171328.vue +0 -1471
  22. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203171333.vue +0 -1470
  23. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203171338.vue +0 -1470
  24. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203171352.vue +0 -1470
  25. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203171655.vue +0 -1471
  26. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203171715.vue +0 -1472
  27. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203171735.vue +0 -1472
  28. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203171738.vue +0 -1472
  29. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203171955.vue +0 -1472
  30. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203172007.vue +0 -1473
  31. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203172037.vue +0 -1473
  32. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203172045.vue +0 -1473
  33. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203172244.vue +0 -1473
  34. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203172258.vue +0 -1469
  35. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203172323.vue +0 -1469
  36. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203172337.vue +0 -1469
  37. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203172359.vue +0 -1469
  38. package/.history/src/base-client/components/his/XHDescriptions/XHDescriptions_20260203172404.vue +0 -1469
  39. package/.history/src/components/STable/index_20260409155138.js +0 -806
  40. package/.history/src/components/STable/index_20260409155218.js +0 -814
  41. package/.history/src/expression/core/Expression_20260305164427.js +0 -1371
  42. package/.history/src/expression/core/Expression_20260305170258.js +0 -1358
  43. package/.history/src/expression/core/Program_20260305111830.js +0 -944
  44. package/.history/src/expression/core/Program_20260305112041.js +0 -931
  45. package/.history/src/logic/LogicRunner_20260304154306.js +0 -170
  46. package/.history/src/logic/LogicRunner_20260304155553.js +0 -112
  47. package/.history/src/logic/LogicRunner_20260305105834.js +0 -112
  48. package/.history/src/logic/LogicRunner_20260305112718.js +0 -129
  49. package/.history/src/logic/LogicRunner_20260305182436.js +0 -133
  50. package/.history/src/logic/LogicRunner_20260306151301.js +0 -213
  51. package/.history/src/logic/LogicRunner_20260306152419.js +0 -213
  52. package/.history/src/logic/plugins/common/DateTools_20260305154159.js +0 -61
  53. package/.history/src/logic/plugins/common/DateTools_20260305154217.js +0 -44
  54. package/.history/src/logic/plugins/common/DateTools_20260305161014.js +0 -44
  55. package/.history/src/logic/plugins/common/HttpTools_20260305164352.js +0 -80
  56. package/.history/src/logic/plugins/common/HttpTools_20260305170258.js +0 -75
  57. package/.history/src/logic/plugins/common/HttpTools_20260305171634.js +0 -75
  58. package/.history/src/logic/plugins/common/HttpTools_20260306152419.js +0 -72
  59. package/.history/src/utils/indexedDB_20260306150918.js +0 -593
  60. 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.45",
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",
@@ -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>