diff --git a/src/assets/images/videoCommunication/在线质控.svg b/src/assets/images/videoCommunication/在线质控.svg new file mode 100644 index 0000000..6b6b1f8 --- /dev/null +++ b/src/assets/images/videoCommunication/在线质控.svg @@ -0,0 +1,28 @@ + + + + + + + + 质控 + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/videoCommunication/实时会诊.svg b/src/assets/images/videoCommunication/实时会诊.svg new file mode 100644 index 0000000..ff89915 --- /dev/null +++ b/src/assets/images/videoCommunication/实时会诊.svg @@ -0,0 +1,32 @@ + + + + + + + + + + + + 会诊 + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/images/videoCommunication/带教培训.svg b/src/assets/images/videoCommunication/带教培训.svg new file mode 100644 index 0000000..3c84b5e --- /dev/null +++ b/src/assets/images/videoCommunication/带教培训.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + 教学 + + + + + + + + + + + + diff --git a/src/assets/images/videoCommunication/病例研讨.svg b/src/assets/images/videoCommunication/病例研讨.svg new file mode 100644 index 0000000..f7a6756 --- /dev/null +++ b/src/assets/images/videoCommunication/病例研讨.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + 研讨 + + + + + + + + + + + + + + + + + + diff --git a/src/assets/styles/index.scss b/src/assets/styles/index.scss index bb87292..7c6919a 100644 --- a/src/assets/styles/index.scss +++ b/src/assets/styles/index.scss @@ -10,7 +10,12 @@ body { -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; - font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif; + font-family: "Source Han Sans CN", "思源黑体", sans-serif; +} + +/* 覆盖所有 Element UI 组件字体 */ +[class^="el-"] { + font-family: "Source Han Sans CN", "思源黑体", sans-serif !important; } label { @@ -104,7 +109,7 @@ aside { display: block; line-height: 32px; font-size: 16px; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; + font-family: "Source Han Sans SC", "Noto Sans SC", sans-serif; color: #2c3e50; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; @@ -175,4 +180,4 @@ aside { vertical-align: middle; margin-bottom: 10px; } -} +} \ No newline at end of file diff --git a/src/assets/styles/sidebar.scss b/src/assets/styles/sidebar.scss index 56d300b..4ae10b5 100644 --- a/src/assets/styles/sidebar.scss +++ b/src/assets/styles/sidebar.scss @@ -80,6 +80,8 @@ margin: 0 2px !important; border-radius: 20px !important; color: #fff !important; + display: flex !important; + align-items: center !important; } // menu hover diff --git a/src/layout/components/Sidebar/Logo.vue b/src/layout/components/Sidebar/Logo.vue index 966e656..c2c8922 100644 --- a/src/layout/components/Sidebar/Logo.vue +++ b/src/layout/components/Sidebar/Logo.vue @@ -78,10 +78,8 @@ export default { display: inline-block; margin: 0; color: #fff; - font-weight: 600; line-height: 50px; font-size: 14px; - font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif; vertical-align: middle; } } diff --git a/src/utils/request.js b/src/utils/request.js index bf8b3ce..b9b9f2d 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -82,15 +82,27 @@ service.interceptors.response.use(res => { if (res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer') { return res.data } - if (code === 401) { + if (code === 401 || code == 910) { + // 防止重复弹窗,使用延时重置锁,兼容并发请求 if (!isRelogin.show) { isRelogin.show = true - MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', { confirmButtonText: '重新登录', cancelButtonText: '取消', type: 'warning' }).then(() => { - isRelogin.show = false - store.dispatch('LogOut').then(() => { - location.href = '/index' - }) + MessageBox.confirm( + '登录状态已过期,您可以继续留在该页面,或者重新登录', + '系统提示', + { + confirmButtonText: '重新登录', + cancelButtonText: '取消', + type: 'warning' + } + ).then(() => { + // 退出登录并跳转 + return store.dispatch('LogOut') + }).then(() => { + location.href = '/index' }).catch(() => { + // 捕获异常,保证锁一定释放 + }).finally(() => { + // 无论点确定/取消/报错,最终都解锁 isRelogin.show = false }) } diff --git a/src/views/videoCommunication/index.vue b/src/views/videoCommunication/index.vue index aa85a97..f525c28 100644 --- a/src/views/videoCommunication/index.vue +++ b/src/views/videoCommunication/index.vue @@ -8,21 +8,27 @@
- + 入会
-
+
{{ mode.title }}
-
- -
@@ -34,43 +40,78 @@
- - + + + + + - - + - +
- + - + {{ getStatusText(meetingDetail.status) }} @@ -98,11 +139,15 @@ - + @@ -117,9 +162,13 @@ - + @@ -283,7 +332,7 @@ export default { align-items: center; font-size: 16px; font-weight: 500; - color: #009393; + color: #009696; .line { display: inline-block; @@ -294,14 +343,6 @@ export default { } } - .table-wrapper { - .name { - display: flex; - align-items: center; - color: #009393; - } - } - // 口令入会区域 .join-area { display: flex; @@ -343,10 +384,8 @@ export default { overflow: hidden; cursor: pointer; transition: transform 0.2s ease, box-shadow 0.2s ease; - &:hover { - transform: translateY(-3px); - box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2); + transform: translateY(-1px); } &:active { @@ -359,47 +398,34 @@ export default { z-index: 1; } - .icon-bg { - position: absolute; - right: 20px; - bottom: 20px; - font-size: 40px; - opacity: 0.3; - } - - &::after { - content: ""; - position: absolute; - bottom: 0; - left: 0; - width: 100%; - height: 60px; - background: rgba(255, 255, 255, 0.1); - border-radius: 100% 100% 0 0; - } - &.blue { - background: linear-gradient(to right, #67c2ef, #2196f3); + background-image: url("~@/assets/images/videoCommunication/实时会诊.svg"); + background-size: 100% 100%; + background-repeat: no-repeat; + background-position: center; } &.yellow { - background: linear-gradient(to right, #ffd54f, #ff9800); + background-image: url("~@/assets/images/videoCommunication/带教培训.svg"); + background-size: 100% 100%; + background-repeat: no-repeat; + background-position: center; } &.grayblue { - background: linear-gradient(to right, #b0bec5, #29b6f6); + background-image: url("~@/assets/images/videoCommunication/在线质控.svg"); + background-size: 100% 100%; + background-repeat: no-repeat; + background-position: center; } &.greenblue { - background: linear-gradient(to right, #43d8c9, #29b6f6); + background-image: url("~@/assets/images/videoCommunication/病例研讨.svg"); + background-size: 100% 100%; + background-repeat: no-repeat; + background-position: center; } } } - - // 会诊记录表格 - .more-btn { - color: #009696; - cursor: pointer; - } } \ No newline at end of file