From cd9d88f882428a9de2b46b9b6c67f1d2de60d0d4 Mon Sep 17 00:00:00 2001
From: Jafeng <2998840497@qq.com>
Date: Tue, 26 May 2026 11:27:23 +0800
Subject: [PATCH] =?UTF-8?q?feat:=E8=B0=83=E5=A4=A7=E5=AD=97=E4=BD=93?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
App.vue | 8 +--
components/form-template/cell-style.css | 6 +-
.../form-template/form-cell/form-input.vue | 2 +-
.../form-template/form-cell/form-textarea.vue | 6 +-
.../form-template/form-cell/form-upload.vue | 2 +-
components/zh-readMore/zh-readMore.vue | 2 +-
pages/archive/verify-name-popup.vue | 2 +-
pages/archive/verify-popup.vue | 2 +-
pages/article/article-cate-list.vue | 14 ++--
pages/article/article-detail.vue | 10 +--
pages/article/article-list.vue | 10 +--
pages/article/send-article.vue | 16 ++---
pages/home/article-list.vue | 6 +-
pages/home/consult.vue | 4 +-
pages/home/customer-archive.vue | 12 ++--
pages/home/select-consultant-popup.vue | 12 ++--
pages/home/team-guide.vue | 2 +-
pages/home/team-head.vue | 6 +-
pages/home/team-mate.vue | 6 +-
pages/library/diagnosis-list.vue | 6 +-
pages/login/login.vue | 14 ++--
pages/message/chat.scss | 16 ++---
pages/message/components/chat-input.vue | 26 ++++++--
pages/message/components/consult-accept.vue | 4 +-
pages/message/components/consult-apply.vue | 6 +-
pages/message/components/consult-cancel.vue | 4 +-
.../components/reject-reason-modal.vue | 14 ++--
pages/message/components/system-message.vue | 2 +-
pages/message/index.vue | 64 ++++++++++++++-----
pages/message/message.vue | 22 +++----
pages/rate/rate-detail.vue | 2 +-
pages/rate/rate-list.vue | 10 +--
pages/survey/fill.vue | 16 ++---
pages/survey/survey-list.vue | 10 +--
pages/team/team-detail.vue | 6 +-
35 files changed, 198 insertions(+), 152 deletions(-)
diff --git a/App.vue b/App.vue
index bddf8cd..21114c2 100644
--- a/App.vue
+++ b/App.vue
@@ -334,19 +334,19 @@ page {
}
.text-sm {
- font-size: 24rpx;
+ font-size: 26rpx;
}
.text-base {
- font-size: 28rpx;
+ font-size: 30rpx;
}
.text-lg {
- font-size: 32rpx;
+ font-size: 34rpx;
}
.text-xl {
- font-size: 36rpx;
+ font-size: 38rpx;
}
.leading-normal {
diff --git a/components/form-template/cell-style.css b/components/form-template/cell-style.css
index 999e2e2..52e63c9 100644
--- a/components/form-template/cell-style.css
+++ b/components/form-template/cell-style.css
@@ -16,11 +16,11 @@
display: flex;
align-items: center;
text-align: right;
- font-size: 28rpx;
+ font-size: 30rpx;
}
.form__placeholder {
- font-size: 28rpx;
+ font-size: 30rpx;
color: #666;
}
@@ -44,7 +44,7 @@
align-items: center;
padding: 24rpx 30rpx;
border-bottom: 1px solid #eee;
- font-size: 28rpx;
+ font-size: 30rpx;
}
.form-row__label {
diff --git a/components/form-template/form-cell/form-input.vue b/components/form-template/form-cell/form-input.vue
index 80321eb..07267a4 100644
--- a/components/form-template/form-cell/form-input.vue
+++ b/components/form-template/form-cell/form-input.vue
@@ -61,7 +61,7 @@ function change(e) {
.form-input {
flex-grow: 1;
- font-size: 28rpx;
+ font-size: 30rpx;
}
.appendText {
diff --git a/components/form-template/form-cell/form-textarea.vue b/components/form-template/form-cell/form-textarea.vue
index 3b6b40b..762bcb2 100644
--- a/components/form-template/form-cell/form-textarea.vue
+++ b/components/form-template/form-cell/form-textarea.vue
@@ -66,12 +66,12 @@ function change(e) {
.textarea-row {
padding: 24rpx 30rpx;
border-bottom: 1px solid #eee;
- font-size: 28rpx;
+ font-size: 30rpx;
}
.form-textarea {
width: 100%;
- font-size: 28rpx;
+ font-size: 30rpx;
border: 1px solid #eee;
padding: 20rpx;
border-radius: 8rpx;
@@ -82,6 +82,6 @@ function change(e) {
padding-top: 20rpx;
text-align: right;
color: #666;
- font-size: 24rpx;
+ font-size: 26rpx;
}
\ No newline at end of file
diff --git a/components/form-template/form-cell/form-upload.vue b/components/form-template/form-cell/form-upload.vue
index 02ade2e..1c559e5 100644
--- a/components/form-template/form-cell/form-upload.vue
+++ b/components/form-template/form-cell/form-upload.vue
@@ -168,7 +168,7 @@ function remove(idx) {
.textarea-row {
padding: 24rpx 30rpx;
border-bottom: 1px solid #eee;
- font-size: 28rpx;
+ font-size: 30rpx;
}
diff --git a/components/zh-readMore/zh-readMore.vue b/components/zh-readMore/zh-readMore.vue
index 7a73ced..9be0d60 100644
--- a/components/zh-readMore/zh-readMore.vue
+++ b/components/zh-readMore/zh-readMore.vue
@@ -468,7 +468,7 @@
}
}
.zh-ellipsis {
- font-size: 30rpx;
+ font-size: 32rpx;
color: #434343;
}
.zh-overflowcont {
diff --git a/pages/archive/verify-name-popup.vue b/pages/archive/verify-name-popup.vue
index a0ae604..2ba55a2 100644
--- a/pages/archive/verify-name-popup.vue
+++ b/pages/archive/verify-name-popup.vue
@@ -105,7 +105,7 @@ watch(() => props.visible, n => {
line-height: 80rpx;
text-align: center;
border-radius: 8rpx;
- font-size: 28rpx;
+ font-size: 30rpx;
}
.btn-cancel {
diff --git a/pages/archive/verify-popup.vue b/pages/archive/verify-popup.vue
index fd79241..bd5607e 100644
--- a/pages/archive/verify-popup.vue
+++ b/pages/archive/verify-popup.vue
@@ -95,7 +95,7 @@ watch(codes, n => {
.code-cell {
width: 120rpx;
height: 120rpx;
- font-size: 52rpx;
+ font-size: 54rpx;
}
.code-input {
diff --git a/pages/article/article-cate-list.vue b/pages/article/article-cate-list.vue
index ba03acc..ed8f0d5 100644
--- a/pages/article/article-cate-list.vue
+++ b/pages/article/article-cate-list.vue
@@ -397,15 +397,15 @@ onReachBottom(() => {
}
.text-xs {
- font-size: 22rpx;
+ font-size: 24rpx;
}
.text-sm {
- font-size: 28rpx;
+ font-size: 30rpx;
}
.text-base {
- font-size: 32rpx;
+ font-size: 34rpx;
}
.font-bold {
@@ -514,7 +514,7 @@ onReachBottom(() => {
.article-title {
color: #333333;
- font-size: 32rpx;
+ font-size: 34rpx;
font-weight: 500;
line-height: normal;
}
@@ -523,7 +523,7 @@ onReachBottom(() => {
max-width: 402rpx;
color: #666666;
text-align: justify;
- font-size: 28rpx;
+ font-size: 30rpx;
font-weight: 400;
line-height: normal;
}
@@ -548,7 +548,7 @@ onReachBottom(() => {
.loading-text {
margin-top: 20rpx;
- font-size: 28rpx;
+ font-size: 30rpx;
color: #999;
}
@@ -558,7 +558,7 @@ onReachBottom(() => {
align-items: center;
justify-content: center;
padding: 30rpx 0;
- font-size: 24rpx;
+ font-size: 26rpx;
color: #999;
gap: 10rpx;
}
diff --git a/pages/article/article-detail.vue b/pages/article/article-detail.vue
index 8658e62..dfcd655 100644
--- a/pages/article/article-detail.vue
+++ b/pages/article/article-detail.vue
@@ -220,12 +220,12 @@ onLoad((options) => {
.loading-text {
margin-top: 20rpx;
- font-size: 28rpx;
+ font-size: 30rpx;
color: #999;
}
.error-text {
- font-size: 28rpx;
+ font-size: 30rpx;
color: #999;
margin-bottom: 30rpx;
text-align: center;
@@ -237,7 +237,7 @@ onLoad((options) => {
color: #fff;
border: none;
border-radius: 8rpx;
- font-size: 28rpx;
+ font-size: 30rpx;
}
.article-content {
@@ -251,7 +251,7 @@ onLoad((options) => {
.article-title {
display: block;
- font-size: 36rpx;
+ font-size: 38rpx;
font-weight: bold;
color: #333;
line-height: 1.6;
@@ -260,7 +260,7 @@ onLoad((options) => {
.article-date {
display: block;
- font-size: 24rpx;
+ font-size: 26rpx;
color: #999;
}
diff --git a/pages/article/article-list.vue b/pages/article/article-list.vue
index 5d33bcb..19f5e9b 100644
--- a/pages/article/article-list.vue
+++ b/pages/article/article-list.vue
@@ -394,15 +394,15 @@ onReachBottom(() => {
}
.text-xs {
- font-size: 22rpx;
+ font-size: 24rpx;
}
.text-sm {
- font-size: 28rpx;
+ font-size: 30rpx;
}
.text-base {
- font-size: 32rpx;
+ font-size: 34rpx;
}
.font-bold {
@@ -516,7 +516,7 @@ onReachBottom(() => {
.loading-text {
margin-top: 20rpx;
- font-size: 28rpx;
+ font-size: 30rpx;
color: #999;
}
@@ -526,7 +526,7 @@ onReachBottom(() => {
align-items: center;
justify-content: center;
padding: 30rpx 0;
- font-size: 24rpx;
+ font-size: 26rpx;
color: #999;
gap: 10rpx;
}
diff --git a/pages/article/send-article.vue b/pages/article/send-article.vue
index 2d086c8..ac0d436 100644
--- a/pages/article/send-article.vue
+++ b/pages/article/send-article.vue
@@ -410,7 +410,7 @@ onMounted(() => {
.search-input {
flex: 1;
margin-left: 16rpx;
- font-size: 28rpx;
+ font-size: 30rpx;
}
.content {
@@ -431,7 +431,7 @@ onMounted(() => {
.category-item {
padding: 20rpx 24rpx;
- font-size: 28rpx;
+ font-size: 30rpx;
color: #333;
text-align: center;
border-bottom: 1px solid #eee;
@@ -466,7 +466,7 @@ onMounted(() => {
.loading-text {
margin-top: 20rpx;
- font-size: 28rpx;
+ font-size: 30rpx;
color: #999;
}
@@ -487,7 +487,7 @@ onMounted(() => {
}
.article-title {
- font-size: 28rpx;
+ font-size: 30rpx;
color: #333;
line-height: 1.6;
word-break: break-all;
@@ -503,13 +503,13 @@ onMounted(() => {
.article-date {
flex: 1;
- font-size: 24rpx;
+ font-size: 26rpx;
color: #999;
}
.send-btn {
flex-shrink: 0;
- font-size: 26rpx;
+ font-size: 28rpx;
padding: 8rpx 32rpx;
height: auto;
line-height: 1.4;
@@ -521,7 +521,7 @@ onMounted(() => {
align-items: center;
justify-content: center;
padding: 30rpx 0;
- font-size: 24rpx;
+ font-size: 26rpx;
color: #999;
gap: 10rpx;
}
@@ -545,7 +545,7 @@ onMounted(() => {
.preview-title {
flex: 1;
- font-size: 32rpx;
+ font-size: 34rpx;
font-weight: bold;
color: #333;
}
diff --git a/pages/home/article-list.vue b/pages/home/article-list.vue
index e4b6653..37c1954 100644
--- a/pages/home/article-list.vue
+++ b/pages/home/article-list.vue
@@ -125,7 +125,7 @@ watch(
.module-title {
color: #000000;
- font-size: 36rpx;
+ font-size: 38rpx;
font-style: normal;
font-weight: 600;
line-height: normal;
@@ -162,7 +162,7 @@ watch(
.article-title {
color: #333333;
- font-size: 32rpx;
+ font-size: 34rpx;
font-weight: 500;
line-height: normal;
}
@@ -171,7 +171,7 @@ watch(
max-width: 402rpx;
color: #666666;
text-align: justify;
- font-size: 28rpx;
+ font-size: 30rpx;
font-weight: 400;
line-height: normal;
}
diff --git a/pages/home/consult.vue b/pages/home/consult.vue
index d3d6d05..f54ea88 100644
--- a/pages/home/consult.vue
+++ b/pages/home/consult.vue
@@ -207,7 +207,7 @@ defineExpose({
.consult-title {
color: #000000;
- font-size: 36rpx;
+ font-size: 38rpx;
font-style: normal;
font-weight: 600;
line-height: normal;
@@ -269,7 +269,7 @@ defineExpose({
}
.item-label {
- font-size: 28rpx;
+ font-size: 30rpx;
color: #666d76;
text-align: center;
font-weight: 400;
diff --git a/pages/home/customer-archive.vue b/pages/home/customer-archive.vue
index 06f879a..e7c95bb 100644
--- a/pages/home/customer-archive.vue
+++ b/pages/home/customer-archive.vue
@@ -4,7 +4,7 @@
成员档案
- 档案管理
+ 档案管理
@@ -254,7 +254,7 @@ defineExpose({
.module-title {
color: #000000;
- font-size: 36rpx;
+ font-size: 38rpx;
font-weight: 600;
line-height: normal;
}
@@ -282,7 +282,7 @@ defineExpose({
top: -2rpx;
right: -10rpx;
padding: 4rpx 16rpx;
- font-size: 20rpx;
+ font-size: 22rpx;
line-height: normal;
color: #fff;
border-top-left-radius: 16rpx;
@@ -397,14 +397,14 @@ defineExpose({
.info-title {
color: #213e80;
- font-size: 32rpx;
+ font-size: 34rpx;
font-weight: 400;
line-height: 56rpx;
}
.info-subtitle {
color: #78808f;
- font-size: 24rpx;
+ font-size: 26rpx;
}
.arrow-icon-small {
@@ -466,7 +466,7 @@ defineExpose({
}
.add-archive-btn-text {
- font-size: 28rpx;
+ font-size: 30rpx;
color: #ffffff;
font-weight: 500;
}
diff --git a/pages/home/select-consultant-popup.vue b/pages/home/select-consultant-popup.vue
index 6be280f..c18bf8c 100644
--- a/pages/home/select-consultant-popup.vue
+++ b/pages/home/select-consultant-popup.vue
@@ -152,7 +152,7 @@ defineExpose({
}
.popup-title {
- font-size: 32rpx;
+ font-size: 34rpx;
font-weight: 600;
color: #333;
text-align: center;
@@ -203,7 +203,7 @@ defineExpose({
padding: 8rpx 16rpx;
background: linear-gradient(135deg, #ffa726 0%, #ff9800 100%);
color: #fff;
- font-size: 22rpx;
+ font-size: 24rpx;
border-radius: 0 12rpx 0 12rpx;
font-weight: 600;
z-index: 2;
@@ -243,7 +243,7 @@ defineExpose({
}
.user-name {
- font-size: 30rpx;
+ font-size: 32rpx;
font-weight: 700;
color: #333;
margin-bottom: 6rpx;
@@ -253,7 +253,7 @@ defineExpose({
}
.user-detail {
- font-size: 26rpx;
+ font-size: 28rpx;
color: #666;
font-weight: 500;
}
@@ -279,7 +279,7 @@ defineExpose({
}
.add-text {
- font-size: 26rpx;
+ font-size: 28rpx;
color: #1989fa;
font-weight: 600;
}
@@ -294,7 +294,7 @@ defineExpose({
height: 80rpx;
background: linear-gradient(135deg, #1989fa 0%, #0d6efd 100%);
color: #fff;
- font-size: 32rpx;
+ font-size: 34rpx;
font-weight: 700;
border-radius: 12rpx;
border: none;
diff --git a/pages/home/team-guide.vue b/pages/home/team-guide.vue
index eaf073d..efbaa96 100644
--- a/pages/home/team-guide.vue
+++ b/pages/home/team-guide.vue
@@ -105,7 +105,7 @@ const qrcode = computed(() => {
.introduce-text {
color: #333;
- font-size: 24rpx;
+ font-size: 26rpx;
font-style: normal;
font-weight: 400;
line-height: 36rpx;
diff --git a/pages/home/team-head.vue b/pages/home/team-head.vue
index ec1d916..430536e 100644
--- a/pages/home/team-head.vue
+++ b/pages/home/team-head.vue
@@ -74,7 +74,7 @@
-
@@ -190,7 +190,7 @@ onMounted(() => {
.team-name {
color: #ffffff;
- font-size: 36rpx;
+ font-size: 38rpx;
font-style: normal;
font-weight: 600;
line-height: normal;
@@ -279,7 +279,7 @@ onMounted(() => {
.introduce-text {
color: #333;
- font-size: 24rpx;
+ font-size: 26rpx;
font-style: normal;
font-weight: 400;
line-height: 36rpx;
diff --git a/pages/home/team-mate.vue b/pages/home/team-mate.vue
index 16ef2c6..3c5c8d8 100644
--- a/pages/home/team-mate.vue
+++ b/pages/home/team-mate.vue
@@ -114,7 +114,7 @@ watch(teamates, val => {
.module-title {
color: #000000;
- font-size: 36rpx;
+ font-size: 38rpx;
font-style: normal;
font-weight: 600;
line-height: normal;
@@ -122,13 +122,13 @@ watch(teamates, val => {
.member-job {
color: #999999;
- font-size: 24rpx;
+ font-size: 26rpx;
font-weight: 400;
}
.member-name {
color: #333333;
- font-size: 32rpx;
+ font-size: 34rpx;
font-weight: 600;
line-height: normal;
}
diff --git a/pages/library/diagnosis-list.vue b/pages/library/diagnosis-list.vue
index e02349a..451d0cd 100644
--- a/pages/library/diagnosis-list.vue
+++ b/pages/library/diagnosis-list.vue
@@ -2,7 +2,7 @@
-
@@ -120,7 +120,7 @@ onLoad(options => {
border: 1px solid #eee;
padding: 16rpx 20rpx;
border-radius: 12rpx;
- font-size: 28rpx;
+ font-size: 30rpx;
}
@@ -149,7 +149,7 @@ onLoad(options => {
.name {
flex-grow: 1;
margin-right: 20rpx;
- font-size: 28rpx;
+ font-size: 30rpx;
}
.page-item {
diff --git a/pages/login/login.vue b/pages/login/login.vue
index 3d5cb48..23716f4 100644
--- a/pages/login/login.vue
+++ b/pages/login/login.vue
@@ -174,7 +174,7 @@ onLoad((opts) => {
line-height: 80rpx;
background: linear-gradient(270deg, #1b5cc8 2.26%, #0877f1 94.33%);
color: #fff;
- font-size: 30rpx;
+ font-size: 32rpx;
border-radius: 48rpx;
font-weight: 600;
box-shadow: 0 4rpx 16rpx rgba(59, 124, 255, 0.08);
@@ -259,14 +259,14 @@ onLoad((opts) => {
}
.doctor-name {
- font-size: 40rpx;
+ font-size: 42rpx;
font-weight: 600;
color: #1d2129;
margin-top: 40rpx;
}
.doctor-hospital {
- font-size: 28rpx;
+ font-size: 30rpx;
color: #78808f;
font-weight: 400;
margin-top: 20rpx;
@@ -279,13 +279,13 @@ onLoad((opts) => {
border-radius: 4rpx;
border: 1rpx solid #1a3e8433;
padding: 0 8rpx;
- font-size: 22rpx;
+ font-size: 24rpx;
font-weight: 400;
margin-top: 20rpx;
}
.login-tip {
- font-size: 32rpx;
+ font-size: 34rpx;
color: #000000;
font-weight: 500;
text-align: center;
@@ -310,7 +310,7 @@ onLoad((opts) => {
line-height: 96rpx;
background: linear-gradient(270deg, #1b5cc8 2.26%, #0877f1 94.33%);
color: #fff;
- font-size: 32rpx;
+ font-size: 34rpx;
border-radius: 48rpx;
font-weight: 600;
box-shadow: 0 4rpx 16rpx rgba(59, 124, 255, 0.08);
@@ -327,7 +327,7 @@ onLoad((opts) => {
justify-content: center;
align-items: center;
color: #b2b7c2;
- font-size: 22rpx;
+ font-size: 24rpx;
margin-top: 40rpx;
gap: 8rpx;
}
diff --git a/pages/message/chat.scss b/pages/message/chat.scss
index 285285d..dd38b2a 100644
--- a/pages/message/chat.scss
+++ b/pages/message/chat.scss
@@ -1,7 +1,7 @@
// SCSS 变量定义
-$font-size-text: 30rpx;
-$font-size-tip: 28rpx;
-$font-size-title: 32rpx;
+$font-size-text: 32rpx;
+$font-size-tip: 30rpx;
+$font-size-title: 34rpx;
$text-color-sub: #999;
$primary-color: #0877F1;
@@ -325,7 +325,7 @@ $primary-color: #0877F1;
}
.username-text {
- font-size: 22rpx;
+ font-size: 24rpx;
color: #999;
line-height: 1.2;
}
@@ -396,7 +396,7 @@ $primary-color: #0877F1;
}
.message-text {
- font-size: 30rpx;
+ font-size: 32rpx;
line-height: 1.4;
word-wrap: break-word;
word-break: break-all;
@@ -469,7 +469,7 @@ $primary-color: #0877F1;
.send-btn {
background: #3876f6;
color: #fff;
- font-size: 28rpx;
+ font-size: 30rpx;
font-weight: 600;
border: none;
border-radius: 40rpx;
@@ -504,7 +504,7 @@ $primary-color: #0877F1;
padding: 16rpx;
background-color: #f3f5fa;
border-radius: 10rpx;
- font-size: 28rpx;
+ font-size: 30rpx;
min-height: 80rpx;
max-height: 200rpx;
border: none;
@@ -1204,7 +1204,7 @@ $primary-color: #0877F1;
}
.voice-duration {
- font-size: 24rpx;
+ font-size: 26rpx;
color: inherit;
}
diff --git a/pages/message/components/chat-input.vue b/pages/message/components/chat-input.vue
index 1b24085..32e8a49 100644
--- a/pages/message/components/chat-input.vue
+++ b/pages/message/components/chat-input.vue
@@ -7,8 +7,9 @@
+ @confirm="sendTextMessage" @focus="handleInputFocus" @input="handleInput"
+ @blur="handleInputBlur" :focus="isInputFocused" :auto-height="true" :show-confirm-bar="false"
+ :adjust-position="false" :hold-keyboard="true" />
@@ -85,6 +86,7 @@ const emit = defineEmits(["messageSent", "scrollToBottom"]);
// 输入相关状态
const inputText = ref("");
+const isInputFocused = ref(false);
const showVoiceInput = ref(false);
const showMorePanel = ref(false);
const isRecording = ref(false);
@@ -153,9 +155,9 @@ const sendTextMessage = async () => {
const textToSend = inputText.value;
inputText.value = "";
-
+
await sendMessage("text", textToSend);
-
+
// 发送后保持焦点,不收起键盘
nextTick(() => {
// hold-keyboard 属性会自动保持键盘显示
@@ -346,11 +348,21 @@ const morePanelButtons = [
function handleInputFocus() {
console.log("handleInputFocus");
+ isInputFocused.value = true;
nextTick().then(() => {
emit("scrollToBottom");
});
}
+function handleInputBlur() {
+ isInputFocused.value = false;
+}
+
+function blurInput() {
+ isInputFocused.value = false;
+ uni.hideKeyboard();
+}
+
function handleInput(e) {
// textarea 输入时触发,可以在这里处理额外逻辑
nextTick().then(() => {
@@ -358,6 +370,10 @@ function handleInput(e) {
});
}
+defineExpose({
+ blurInput,
+});
+
onMounted(() => {
// 初始化录音管理器
initRecorderManager();
@@ -377,4 +393,4 @@ onUnmounted(() => {
\ No newline at end of file
+
diff --git a/pages/message/components/consult-accept.vue b/pages/message/components/consult-accept.vue
index a32bec6..0fd9a72 100644
--- a/pages/message/components/consult-accept.vue
+++ b/pages/message/components/consult-accept.vue
@@ -45,7 +45,7 @@ const handleReject = () => {
}
.accept-text {
- font-size: 28rpx;
+ font-size: 30rpx;
color: #333;
line-height: 1.6;
}
@@ -60,7 +60,7 @@ const handleReject = () => {
flex: 1;
height: 80rpx;
border-radius: 8rpx;
- font-size: 28rpx;
+ font-size: 30rpx;
border: none;
display: flex;
align-items: center;
diff --git a/pages/message/components/consult-apply.vue b/pages/message/components/consult-apply.vue
index bf86d75..dd32650 100644
--- a/pages/message/components/consult-apply.vue
+++ b/pages/message/components/consult-apply.vue
@@ -80,13 +80,13 @@ const handleApply = () => {
}
.apply-title {
- font-size: 32rpx;
+ font-size: 34rpx;
font-weight: 600;
color: #333;
}
.apply-desc {
- font-size: 24rpx;
+ font-size: 26rpx;
color: #999;
}
@@ -99,7 +99,7 @@ const handleApply = () => {
background-color: #1890ff;
color: #fff;
border-radius: 8rpx;
- font-size: 28rpx;
+ font-size: 30rpx;
font-weight: 500;
border: none;
display: flex;
diff --git a/pages/message/components/consult-cancel.vue b/pages/message/components/consult-cancel.vue
index 734d4ae..2676653 100644
--- a/pages/message/components/consult-cancel.vue
+++ b/pages/message/components/consult-cancel.vue
@@ -41,7 +41,7 @@ const handleCancel = () => {
}
.cancel-text {
- font-size: 28rpx;
+ font-size: 30rpx;
color: #333;
line-height: 1.6;
}
@@ -55,7 +55,7 @@ const handleCancel = () => {
.btn-reapply {
width: 100%;
heiger-radius: 8rpx;
- font-size: 28rpx;
+ font-size: 30rpx;
border: none;
display: flex;
align-items: center;
diff --git a/pages/message/components/reject-reason-modal.vue b/pages/message/components/reject-reason-modal.vue
index df589f8..b45b9e9 100644
--- a/pages/message/components/reject-reason-modal.vue
+++ b/pages/message/components/reject-reason-modal.vue
@@ -159,7 +159,7 @@ const handleConfirm = () => {
}
.modal-title {
- font-size: 32rpx;
+ font-size: 34rpx;
font-weight: 500;
color: #333;
line-height: 1.5;
@@ -194,7 +194,7 @@ const handleConfirm = () => {
}
.option-text {
- font-size: 28rpx;
+ font-size: 30rpx;
color: #333;
flex: 1;
}
@@ -220,13 +220,13 @@ const handleConfirm = () => {
}
.check-mark {
- font-size: 24rpx;
+ font-size: 26rpx;
color: #fff;
font-weight: bold;
}
.arrow-icon {
- font-size: 40rpx;
+ font-size: 42rpx;
color: #999;
font-weight: 300;
}
@@ -241,7 +241,7 @@ const handleConfirm = () => {
.custom-textarea {
width: 100%;
min-height: 120rpx;
- font-size: 28rpx;
+ font-size: 30rpx;
color: #333;
line-height: 1.6;
background-color: transparent;
@@ -253,7 +253,7 @@ const handleConfirm = () => {
.char-count {
display: block;
text-align: right;
- font-size: 24rpx;
+ font-size: 26rpx;
color: #999;
margin-top: 8rpx;
}
@@ -270,7 +270,7 @@ const handleConfirm = () => {
flex: 1;
height: 80rpx;
border-radius: 8rpx;
- font-size: 28rpx;
+ font-size: 30rpx;
border: none;
display: flex;
align-items: center;
diff --git a/pages/message/components/system-message.vue b/pages/message/components/system-message.vue
index de4a907..9b40a9b 100644
--- a/pages/message/components/system-message.vue
+++ b/pages/message/components/system-message.vue
@@ -147,7 +147,7 @@ const notifyText = computed(() => {
.notify-text {
margin: 0 20rpx;
- font-size: 24rpx;
+ font-size: 26rpx;
color: red;
white-space: nowrap;
flex-shrink: 0;
diff --git a/pages/message/index.vue b/pages/message/index.vue
index 7ec87ce..aab0745 100644
--- a/pages/message/index.vue
+++ b/pages/message/index.vue
@@ -20,10 +20,10 @@
-
+
@@ -572,16 +572,44 @@ const initTIMCallbacks = async () => {
) {
seenIds.add(message.ID);
uniqueMessages.push(message);
- }
- });
- messageList.value = uniqueMessages;
- console.log(
- "消息列表已更新,原始",
- messages.length,
- "条,过滤后",
- uniqueMessages.length,
- "条消息"
- );
+ }
+ });
+
+ const mergedMessages = [];
+ const mergedSeenIds = new Set();
+ const existingMessages = Array.isArray(messageList.value)
+ ? messageList.value
+ : [];
+
+ existingMessages.forEach((message) => {
+ if (!message?.ID) return;
+ if (message.conversationID !== chatInfo.value.conversationID) return;
+ if (mergedSeenIds.has(message.ID)) return;
+ mergedSeenIds.add(message.ID);
+ mergedMessages.push(message);
+ });
+
+ uniqueMessages.forEach((message) => {
+ if (!message?.ID) return;
+ if (mergedSeenIds.has(message.ID)) return;
+ mergedSeenIds.add(message.ID);
+ mergedMessages.push(message);
+ });
+
+ mergedMessages.sort((a, b) => {
+ const ta = Number(a?.lastTime || a?.time || 0) || 0;
+ const tb = Number(b?.lastTime || b?.time || 0) || 0;
+ return ta - tb;
+ });
+
+ messageList.value = mergedMessages;
+ console.log(
+ "消息列表已更新,原始",
+ messages.length,
+ "条,过滤后",
+ messageList.value.length,
+ "条消息"
+ );
isCompleted.value = data.isCompleted || false;
isLoadingMore.value = false;
@@ -749,9 +777,11 @@ const scrollToBottom = (immediate = false) => {
};
// 关闭功能栏
-const closeMorePanel = () => {
- uni.$emit("closeMorePanel");
-};
+const closeMorePanel = () => {
+ uni.$emit("closeMorePanel");
+ chatInputRef.value?.blurInput?.();
+ uni.hideKeyboard();
+};
// 滚动事件
const onScroll = throttle((e) => {
diff --git a/pages/message/message.vue b/pages/message/message.vue
index f0389f6..1b569ce 100644
--- a/pages/message/message.vue
+++ b/pages/message/message.vue
@@ -607,7 +607,7 @@ onUnmounted(() => {
}
.header-title {
- font-size: 36rpx;
+ font-size: 38rpx;
font-weight: 600;
color: #000;
}
@@ -624,7 +624,7 @@ onUnmounted(() => {
}
.badge-text {
- font-size: 24rpx;
+ font-size: 26rpx;
color: #fff;
font-weight: 600;
line-height: 1;
@@ -645,7 +645,7 @@ onUnmounted(() => {
}
.loading-text {
- font-size: 28rpx;
+ font-size: 30rpx;
color: #999;
}
@@ -656,7 +656,7 @@ onUnmounted(() => {
}
.empty-text {
- font-size: 28rpx;
+ font-size: 30rpx;
color: #999;
}
@@ -699,7 +699,7 @@ onUnmounted(() => {
}
.unread-text {
- font-size: 20rpx;
+ font-size: 22rpx;
color: #fff;
line-height: 1;
}
@@ -720,7 +720,7 @@ onUnmounted(() => {
}
.name {
- font-size: 32rpx;
+ font-size: 34rpx;
font-weight: 500;
color: #333;
flex: 1;
@@ -730,7 +730,7 @@ onUnmounted(() => {
}
.time {
- font-size: 24rpx;
+ font-size: 26rpx;
color: #999;
margin-left: 16rpx;
flex-shrink: 0;
@@ -743,7 +743,7 @@ onUnmounted(() => {
}
.preview-text {
- font-size: 26rpx;
+ font-size: 28rpx;
color: #999;
overflow: hidden;
text-overflow: ellipsis;
@@ -758,12 +758,12 @@ onUnmounted(() => {
}
.load-more-text {
- font-size: 24rpx;
+ font-size: 26rpx;
color: #999;
}
.patient-info {
- font-size: 26rpx;
+ font-size: 28rpx;
color: #999;
padding-bottom: 10rpx;
}
@@ -790,7 +790,7 @@ onUnmounted(() => {
.subscribe-entry-text {
width: 56rpx;
- font-size: 24rpx;
+ font-size: 26rpx;
line-height: 1.4;
color: #3876f6;
text-align: center;
diff --git a/pages/rate/rate-detail.vue b/pages/rate/rate-detail.vue
index 538103c..093bf72 100644
--- a/pages/rate/rate-detail.vue
+++ b/pages/rate/rate-detail.vue
@@ -244,7 +244,7 @@ onLoad(opts => {
}
@at-root &__txt {
- font-size: 32rpx;
+ font-size: 34rpx;
color: #666;
}
}
diff --git a/pages/rate/rate-list.vue b/pages/rate/rate-list.vue
index ca41d35..e4c5304 100644
--- a/pages/rate/rate-list.vue
+++ b/pages/rate/rate-list.vue
@@ -302,15 +302,15 @@ onShow(async () => {
}
.text-xs {
- font-size: 22rpx;
+ font-size: 24rpx;
}
.text-sm {
- font-size: 28rpx;
+ font-size: 30rpx;
}
.text-base {
- font-size: 32rpx;
+ font-size: 34rpx;
}
.font-bold {
@@ -424,7 +424,7 @@ onShow(async () => {
.loading-text {
margin-top: 20rpx;
- font-size: 28rpx;
+ font-size: 30rpx;
color: #999;
}
@@ -434,7 +434,7 @@ onShow(async () => {
align-items: center;
justify-content: center;
padding: 30rpx 0;
- font-size: 24rpx;
+ font-size: 26rpx;
color: #999;
gap: 10rpx;
}
diff --git a/pages/survey/fill.vue b/pages/survey/fill.vue
index cf486f7..bfc8fb7 100644
--- a/pages/survey/fill.vue
+++ b/pages/survey/fill.vue
@@ -141,7 +141,7 @@ onLoad(opts => {
@at-root &__customer {
text-align: right;
- font-size: 28rpx;
+ font-size: 30rpx;
padding-bottom: 16rpx;
margin-bottom: 24rpx;
color: #333;
@@ -150,7 +150,7 @@ onLoad(opts => {
@at-root &__title {
text-align: center;
- font-size: 32rpx;
+ font-size: 34rpx;
font-weight: 600;
margin-bottom: 24rpx;
}
@@ -158,7 +158,7 @@ onLoad(opts => {
@at-root &__desc {
text-align: left;
color: #666;
- font-size: 28rpx;
+ font-size: 30rpx;
margin-bottom: 24rpx;
}
@@ -169,7 +169,7 @@ onLoad(opts => {
@at-root &__question {
position: relative;
- font-size: 32rpx;
+ font-size: 34rpx;
margin-bottom: 24rpx;
@at-root &--require::before {
@@ -183,7 +183,7 @@ onLoad(opts => {
@at-root &__input {
padding: 10rpx 24rpx;
- font-size: 28rpx;
+ font-size: 30rpx;
border: 1px solid #eee;
border-radius: 8rpx;
}
@@ -199,7 +199,7 @@ onLoad(opts => {
margin-top: 30rpx;
padding: 24rpx 30rpx;
border-radius: 8rpx;
- font-size: 28rpx;
+ font-size: 30rpx;
color: #fff;
background: #006eff;
text-align: center;
@@ -217,7 +217,7 @@ onLoad(opts => {
@at-root &__label {
flex-grow: 1;
- font-size: 32rpx;
+ font-size: 34rpx;
}
}
@@ -236,7 +236,7 @@ onLoad(opts => {
}
@at-root &__txt {
- font-size: 32rpx;
+ font-size: 34rpx;
color: #666;
}
}
diff --git a/pages/survey/survey-list.vue b/pages/survey/survey-list.vue
index 77f560a..95b5986 100644
--- a/pages/survey/survey-list.vue
+++ b/pages/survey/survey-list.vue
@@ -347,15 +347,15 @@ onReachBottom(() => {
}
.text-xs {
- font-size: 22rpx;
+ font-size: 24rpx;
}
.text-sm {
- font-size: 28rpx;
+ font-size: 30rpx;
}
.text-base {
- font-size: 32rpx;
+ font-size: 34rpx;
}
.font-bold {
@@ -469,7 +469,7 @@ onReachBottom(() => {
.loading-text {
margin-top: 20rpx;
- font-size: 28rpx;
+ font-size: 30rpx;
color: #999;
}
@@ -479,7 +479,7 @@ onReachBottom(() => {
align-items: center;
justify-content: center;
padding: 30rpx 0;
- font-size: 24rpx;
+ font-size: 26rpx;
color: #999;
gap: 10rpx;
}
diff --git a/pages/team/team-detail.vue b/pages/team/team-detail.vue
index f6a6ace..4cdabc9 100644
--- a/pages/team/team-detail.vue
+++ b/pages/team/team-detail.vue
@@ -179,13 +179,13 @@ page {
.name-title {
height: 64rpx;
line-height: 64rpx;
- font-size: 44rpx;
+ font-size: 46rpx;
}
.corp-title {
height: 44rpx;
line-height: 44rpx;
- font-size: 28rpx;
+ font-size: 30rpx;
}
.text-blue {
@@ -238,7 +238,7 @@ page {
height: 48rpx;
text-align: center;
line-height: 48rpx;
- font-size: 24rpx;
+ font-size: 26rpx;
color: #fff;
font-weight: bold;
background: #065BD6;