vue2-client 1.22.46 → 1.22.51
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.
- package/CHANGELOG.md +4 -0
- package/package.json +1 -1
- package/src/base-client/components/common/XInspectionDetailDrawer/components/RecordingPlayer.vue +18 -1
- package/src/base-client/components/common/XInspectionDetailDrawer/demo.vue +1 -6
- package/src/base-client/components/his/XTitle/XTitle.vue +1 -1
- package/src/base-client/plugins/GetLoginInfoService.js +3 -1
- package/src/pages/WorkflowDetail/WorkflowPageDetail/WorkFlowHandle.vue +1 -1
- package/src/router/async/router.map.js +1 -6
- package/vue.config.js +1 -2
package/CHANGELOG.md
CHANGED
package/package.json
CHANGED
package/src/base-client/components/common/XInspectionDetailDrawer/components/RecordingPlayer.vue
CHANGED
|
@@ -20,6 +20,11 @@
|
|
|
20
20
|
<div class="progress-handle" :style="{ left: progressPercent + '%' }"></div>
|
|
21
21
|
</div>
|
|
22
22
|
</div>
|
|
23
|
+
<div class="player-actions">
|
|
24
|
+
<a-button size="small" type="link" class="download-button" @click="handleDownload">
|
|
25
|
+
<a-icon type="download" />
|
|
26
|
+
</a-button>
|
|
27
|
+
</div>
|
|
23
28
|
</div>
|
|
24
29
|
<audio ref="audio" :src="recording.url" @loadedmetadata="onLoadedMetadata" @timeupdate="onTimeUpdate" @ended="onEnded" style="display: none;" />
|
|
25
30
|
</div>
|
|
@@ -50,6 +55,14 @@ export default {
|
|
|
50
55
|
}
|
|
51
56
|
},
|
|
52
57
|
methods: {
|
|
58
|
+
handleDownload () {
|
|
59
|
+
const a = document.createElement('a')
|
|
60
|
+
a.href = this.recording.url
|
|
61
|
+
a.download = this.recording.name || `录音_${this.recording.id}`
|
|
62
|
+
document.body.appendChild(a)
|
|
63
|
+
a.click()
|
|
64
|
+
document.body.removeChild(a)
|
|
65
|
+
},
|
|
53
66
|
handleTogglePlay () {
|
|
54
67
|
if (this.isPlaying) this.$emit('pause', this.recording)
|
|
55
68
|
else this.$emit('play', this.recording)
|
|
@@ -90,9 +103,13 @@ export default {
|
|
|
90
103
|
.play-button { width: 40px; height: 40px; border: none; border-radius: 50%; background: #3b82f6; color: white; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.3s ease; }
|
|
91
104
|
.play-button:hover { background: #2563eb; transform: scale(1.05); }
|
|
92
105
|
.play-button.playing { background: #ef4444; }
|
|
93
|
-
.player-info { flex:
|
|
106
|
+
.player-info { flex: 0 0 auto; min-width: 0; margin-right: 12px; max-width: 180px; }
|
|
107
|
+
.player-progress { flex: 1; min-width: 60px; margin-right: 12px; }
|
|
94
108
|
.recording-title { font-size: 14px; font-weight: 600; color: #1f2937; margin-bottom: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
95
109
|
.recording-duration { display: flex; align-items: center; gap: 4px; font-size: 12px; color: #6b7280; }
|
|
110
|
+
.player-actions { display: flex; align-items: center; }
|
|
111
|
+
.download-button { color: #9ca3af; font-size: 16px; padding: 4px; }
|
|
112
|
+
.download-button:hover { color: #3b82f6; }
|
|
96
113
|
.progress-bar { position: relative; height: 6px; background: #e5e7eb; border-radius: 3px; cursor: pointer; }
|
|
97
114
|
.progress-fill { height: 100%; background: linear-gradient(90deg, #3b82f6, #1d4ed8); border-radius: 3px; transition: width 0.1s ease; }
|
|
98
115
|
.progress-handle { position: absolute; top: 50%; width: 14px; height: 14px; background: #3b82f6; border: 2px solid white; border-radius: 50%; transform: translateY(-50%) translateX(-7px); cursor: grab; opacity: 0; }
|
|
@@ -48,12 +48,7 @@ export default {
|
|
|
48
48
|
this.$message.warning('请输入有效的安检 ID')
|
|
49
49
|
return
|
|
50
50
|
}
|
|
51
|
-
this.$refs.detailDrawer.init({
|
|
52
|
-
historyListParams: {
|
|
53
|
-
f_content: '合规'
|
|
54
|
-
},
|
|
55
|
-
f_userinfo_id: 96448
|
|
56
|
-
})
|
|
51
|
+
this.$refs.detailDrawer.init({ id })
|
|
57
52
|
},
|
|
58
53
|
handleRefresh () {
|
|
59
54
|
this.$message.success('详情已刷新')
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import Vue from 'vue'
|
|
2
2
|
import { SEARCH } from '@vue2-client/services/apiService'
|
|
3
3
|
import { post } from '@vue2-client/services/api'
|
|
4
|
+
import { getSystemVersion } from '@vue2-client/utils/request'
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* 获取片区
|
|
@@ -153,7 +154,8 @@ function searchFun (fun, name) {
|
|
|
153
154
|
const loginGen = async function (response, jwt) {
|
|
154
155
|
Vue.$login.f = response
|
|
155
156
|
const viewPermissions = resolveViewPermissions(response)
|
|
156
|
-
|
|
157
|
+
const compatible = getSystemVersion()
|
|
158
|
+
if (viewPermissions !== null || compatible === 'V4') {
|
|
157
159
|
// 响应已带界面权限,与 guards.js 中 r || permissions 逻辑一致
|
|
158
160
|
Vue.$login.r = viewPermissions
|
|
159
161
|
} else {
|
|
@@ -1249,7 +1249,7 @@ export default {
|
|
|
1249
1249
|
// 如果一个都没匹配上,兼容旧逻辑:把原对象转成数组
|
|
1250
1250
|
if (formDataArr.length === 0 && dataObj && typeof dataObj === 'object') {
|
|
1251
1251
|
for (const key in dataObj) {
|
|
1252
|
-
if (Object.prototype.hasOwnProperty.call(dataObj, key)) {
|
|
1252
|
+
if (key !== 'FilesId' && Object.prototype.hasOwnProperty.call(dataObj, key)) {
|
|
1253
1253
|
formDataArr.push({ label: key, value: dataObj[key] })
|
|
1254
1254
|
}
|
|
1255
1255
|
}
|
|
@@ -57,7 +57,7 @@ routerResource.example = {
|
|
|
57
57
|
path: 'example',
|
|
58
58
|
name: '示例主页面',
|
|
59
59
|
// component: () => import('@vue2-client/pages/LayoutTest/index.vue')
|
|
60
|
-
|
|
60
|
+
component: () => import('@vue2-client/base-client/components/common/XDescriptions/demo.vue')
|
|
61
61
|
// component: () => import('@vue2-client/base-client/components/his/HChart/demo.vue'),
|
|
62
62
|
// component: () => import('@vue2-client/pages/WorkflowDetail/WorkFlowDemo.vue'),
|
|
63
63
|
// component: () => import('@vue2-client/base-client/components/common/XFormTable/demo.vue')
|
|
@@ -94,11 +94,6 @@ routerResource.example = {
|
|
|
94
94
|
// component: () => import('@vue2-client/pages/ReportGrid/index.vue'),
|
|
95
95
|
// component: () => import('@vue2-client/base-client/components/common/HIS/demo.vue'),
|
|
96
96
|
// component: () => import('@vue2-client/components/MarkdownEditor/demo.vue'),
|
|
97
|
-
// component: () => import('@vue2-client/base-client/components/his/XHisEditor/ImageReportDemo.vue')
|
|
98
|
-
// component: () => import('@vue2-client/components/MarkdownEditor/demo.vue'),
|
|
99
|
-
component: () => import('@vue2-client/base-client/components/common/HIS/HButtons/HButtonsSuffixDemo.vue')
|
|
100
|
-
|
|
101
|
-
|
|
102
97
|
}
|
|
103
98
|
// routerResource.example = () =>
|
|
104
99
|
// import('@vue2-client/pages/Example')
|
package/vue.config.js
CHANGED
|
@@ -12,8 +12,7 @@ const isProd = process.env.NODE_ENV === 'production'
|
|
|
12
12
|
|
|
13
13
|
// v4 产品演示
|
|
14
14
|
const liuli = 'http://192.168.50.67:31567'
|
|
15
|
-
|
|
16
|
-
const v3Server = 'http://192.168.50.67:31567'
|
|
15
|
+
const v3Server = 'http://127.0.0.1:8077'
|
|
17
16
|
const geoserver = 'http://192.168.50.67:31567'
|
|
18
17
|
// const gateway = 'http://192.168.50.67:31467'
|
|
19
18
|
// const testUpload = 'http://123.60.214.109:8406'
|