feat:调大字体

This commit is contained in:
Jafeng 2026-05-26 11:27:23 +08:00
parent 915498379d
commit cd9d88f882
35 changed files with 198 additions and 152 deletions

View File

@ -334,19 +334,19 @@ page {
} }
.text-sm { .text-sm {
font-size: 24rpx; font-size: 26rpx;
} }
.text-base { .text-base {
font-size: 28rpx; font-size: 30rpx;
} }
.text-lg { .text-lg {
font-size: 32rpx; font-size: 34rpx;
} }
.text-xl { .text-xl {
font-size: 36rpx; font-size: 38rpx;
} }
.leading-normal { .leading-normal {

View File

@ -16,11 +16,11 @@
display: flex; display: flex;
align-items: center; align-items: center;
text-align: right; text-align: right;
font-size: 28rpx; font-size: 30rpx;
} }
.form__placeholder { .form__placeholder {
font-size: 28rpx; font-size: 30rpx;
color: #666; color: #666;
} }
@ -44,7 +44,7 @@
align-items: center; align-items: center;
padding: 24rpx 30rpx; padding: 24rpx 30rpx;
border-bottom: 1px solid #eee; border-bottom: 1px solid #eee;
font-size: 28rpx; font-size: 30rpx;
} }
.form-row__label { .form-row__label {

View File

@ -61,7 +61,7 @@ function change(e) {
.form-input { .form-input {
flex-grow: 1; flex-grow: 1;
font-size: 28rpx; font-size: 30rpx;
} }
.appendText { .appendText {

View File

@ -66,12 +66,12 @@ function change(e) {
.textarea-row { .textarea-row {
padding: 24rpx 30rpx; padding: 24rpx 30rpx;
border-bottom: 1px solid #eee; border-bottom: 1px solid #eee;
font-size: 28rpx; font-size: 30rpx;
} }
.form-textarea { .form-textarea {
width: 100%; width: 100%;
font-size: 28rpx; font-size: 30rpx;
border: 1px solid #eee; border: 1px solid #eee;
padding: 20rpx; padding: 20rpx;
border-radius: 8rpx; border-radius: 8rpx;
@ -82,6 +82,6 @@ function change(e) {
padding-top: 20rpx; padding-top: 20rpx;
text-align: right; text-align: right;
color: #666; color: #666;
font-size: 24rpx; font-size: 26rpx;
} }
</style> </style>

View File

@ -168,7 +168,7 @@ function remove(idx) {
.textarea-row { .textarea-row {
padding: 24rpx 30rpx; padding: 24rpx 30rpx;
border-bottom: 1px solid #eee; border-bottom: 1px solid #eee;
font-size: 28rpx; font-size: 30rpx;
} }

View File

@ -468,7 +468,7 @@
} }
} }
.zh-ellipsis { .zh-ellipsis {
font-size: 30rpx; font-size: 32rpx;
color: #434343; color: #434343;
} }
.zh-overflowcont { .zh-overflowcont {

View File

@ -105,7 +105,7 @@ watch(() => props.visible, n => {
line-height: 80rpx; line-height: 80rpx;
text-align: center; text-align: center;
border-radius: 8rpx; border-radius: 8rpx;
font-size: 28rpx; font-size: 30rpx;
} }
.btn-cancel { .btn-cancel {

View File

@ -95,7 +95,7 @@ watch(codes, n => {
.code-cell { .code-cell {
width: 120rpx; width: 120rpx;
height: 120rpx; height: 120rpx;
font-size: 52rpx; font-size: 54rpx;
} }
.code-input { .code-input {

View File

@ -397,15 +397,15 @@ onReachBottom(() => {
} }
.text-xs { .text-xs {
font-size: 22rpx; font-size: 24rpx;
} }
.text-sm { .text-sm {
font-size: 28rpx; font-size: 30rpx;
} }
.text-base { .text-base {
font-size: 32rpx; font-size: 34rpx;
} }
.font-bold { .font-bold {
@ -514,7 +514,7 @@ onReachBottom(() => {
.article-title { .article-title {
color: #333333; color: #333333;
font-size: 32rpx; font-size: 34rpx;
font-weight: 500; font-weight: 500;
line-height: normal; line-height: normal;
} }
@ -523,7 +523,7 @@ onReachBottom(() => {
max-width: 402rpx; max-width: 402rpx;
color: #666666; color: #666666;
text-align: justify; text-align: justify;
font-size: 28rpx; font-size: 30rpx;
font-weight: 400; font-weight: 400;
line-height: normal; line-height: normal;
} }
@ -548,7 +548,7 @@ onReachBottom(() => {
.loading-text { .loading-text {
margin-top: 20rpx; margin-top: 20rpx;
font-size: 28rpx; font-size: 30rpx;
color: #999; color: #999;
} }
@ -558,7 +558,7 @@ onReachBottom(() => {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
padding: 30rpx 0; padding: 30rpx 0;
font-size: 24rpx; font-size: 26rpx;
color: #999; color: #999;
gap: 10rpx; gap: 10rpx;
} }

View File

@ -220,12 +220,12 @@ onLoad((options) => {
.loading-text { .loading-text {
margin-top: 20rpx; margin-top: 20rpx;
font-size: 28rpx; font-size: 30rpx;
color: #999; color: #999;
} }
.error-text { .error-text {
font-size: 28rpx; font-size: 30rpx;
color: #999; color: #999;
margin-bottom: 30rpx; margin-bottom: 30rpx;
text-align: center; text-align: center;
@ -237,7 +237,7 @@ onLoad((options) => {
color: #fff; color: #fff;
border: none; border: none;
border-radius: 8rpx; border-radius: 8rpx;
font-size: 28rpx; font-size: 30rpx;
} }
.article-content { .article-content {
@ -251,7 +251,7 @@ onLoad((options) => {
.article-title { .article-title {
display: block; display: block;
font-size: 36rpx; font-size: 38rpx;
font-weight: bold; font-weight: bold;
color: #333; color: #333;
line-height: 1.6; line-height: 1.6;
@ -260,7 +260,7 @@ onLoad((options) => {
.article-date { .article-date {
display: block; display: block;
font-size: 24rpx; font-size: 26rpx;
color: #999; color: #999;
} }

View File

@ -394,15 +394,15 @@ onReachBottom(() => {
} }
.text-xs { .text-xs {
font-size: 22rpx; font-size: 24rpx;
} }
.text-sm { .text-sm {
font-size: 28rpx; font-size: 30rpx;
} }
.text-base { .text-base {
font-size: 32rpx; font-size: 34rpx;
} }
.font-bold { .font-bold {
@ -516,7 +516,7 @@ onReachBottom(() => {
.loading-text { .loading-text {
margin-top: 20rpx; margin-top: 20rpx;
font-size: 28rpx; font-size: 30rpx;
color: #999; color: #999;
} }
@ -526,7 +526,7 @@ onReachBottom(() => {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
padding: 30rpx 0; padding: 30rpx 0;
font-size: 24rpx; font-size: 26rpx;
color: #999; color: #999;
gap: 10rpx; gap: 10rpx;
} }

View File

@ -410,7 +410,7 @@ onMounted(() => {
.search-input { .search-input {
flex: 1; flex: 1;
margin-left: 16rpx; margin-left: 16rpx;
font-size: 28rpx; font-size: 30rpx;
} }
.content { .content {
@ -431,7 +431,7 @@ onMounted(() => {
.category-item { .category-item {
padding: 20rpx 24rpx; padding: 20rpx 24rpx;
font-size: 28rpx; font-size: 30rpx;
color: #333; color: #333;
text-align: center; text-align: center;
border-bottom: 1px solid #eee; border-bottom: 1px solid #eee;
@ -466,7 +466,7 @@ onMounted(() => {
.loading-text { .loading-text {
margin-top: 20rpx; margin-top: 20rpx;
font-size: 28rpx; font-size: 30rpx;
color: #999; color: #999;
} }
@ -487,7 +487,7 @@ onMounted(() => {
} }
.article-title { .article-title {
font-size: 28rpx; font-size: 30rpx;
color: #333; color: #333;
line-height: 1.6; line-height: 1.6;
word-break: break-all; word-break: break-all;
@ -503,13 +503,13 @@ onMounted(() => {
.article-date { .article-date {
flex: 1; flex: 1;
font-size: 24rpx; font-size: 26rpx;
color: #999; color: #999;
} }
.send-btn { .send-btn {
flex-shrink: 0; flex-shrink: 0;
font-size: 26rpx; font-size: 28rpx;
padding: 8rpx 32rpx; padding: 8rpx 32rpx;
height: auto; height: auto;
line-height: 1.4; line-height: 1.4;
@ -521,7 +521,7 @@ onMounted(() => {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
padding: 30rpx 0; padding: 30rpx 0;
font-size: 24rpx; font-size: 26rpx;
color: #999; color: #999;
gap: 10rpx; gap: 10rpx;
} }
@ -545,7 +545,7 @@ onMounted(() => {
.preview-title { .preview-title {
flex: 1; flex: 1;
font-size: 32rpx; font-size: 34rpx;
font-weight: bold; font-weight: bold;
color: #333; color: #333;
} }

View File

@ -125,7 +125,7 @@ watch(
.module-title { .module-title {
color: #000000; color: #000000;
font-size: 36rpx; font-size: 38rpx;
font-style: normal; font-style: normal;
font-weight: 600; font-weight: 600;
line-height: normal; line-height: normal;
@ -162,7 +162,7 @@ watch(
.article-title { .article-title {
color: #333333; color: #333333;
font-size: 32rpx; font-size: 34rpx;
font-weight: 500; font-weight: 500;
line-height: normal; line-height: normal;
} }
@ -171,7 +171,7 @@ watch(
max-width: 402rpx; max-width: 402rpx;
color: #666666; color: #666666;
text-align: justify; text-align: justify;
font-size: 28rpx; font-size: 30rpx;
font-weight: 400; font-weight: 400;
line-height: normal; line-height: normal;
} }

View File

@ -207,7 +207,7 @@ defineExpose({
.consult-title { .consult-title {
color: #000000; color: #000000;
font-size: 36rpx; font-size: 38rpx;
font-style: normal; font-style: normal;
font-weight: 600; font-weight: 600;
line-height: normal; line-height: normal;
@ -269,7 +269,7 @@ defineExpose({
} }
.item-label { .item-label {
font-size: 28rpx; font-size: 30rpx;
color: #666d76; color: #666d76;
text-align: center; text-align: center;
font-weight: 400; font-weight: 400;

View File

@ -4,7 +4,7 @@
<view class="module-title flex-shrink-0 truncate"> 成员档案 </view> <view class="module-title flex-shrink-0 truncate"> 成员档案 </view>
<view class="flex items-center leading-normal rounded-sm" style="padding-right: 0" @click="toManagePage()"> <view class="flex items-center leading-normal rounded-sm" style="padding-right: 0" @click="toManagePage()">
<image class="manage-icon mr-5" src="/static/home/archive-manage.png" mode="aspectFit"></image> <image class="manage-icon mr-5" src="/static/home/archive-manage.png" mode="aspectFit"></image>
<view style="font-size: 28rpx; color: #065bd6">档案管理</view> <view style="font-size: 30rpx; color: #065bd6">档案管理</view>
</view> </view>
</view> </view>
<view v-if="customers.length === 0" class="add-archive-card" @click="toManagePage()"> <view v-if="customers.length === 0" class="add-archive-card" @click="toManagePage()">
@ -254,7 +254,7 @@ defineExpose({
.module-title { .module-title {
color: #000000; color: #000000;
font-size: 36rpx; font-size: 38rpx;
font-weight: 600; font-weight: 600;
line-height: normal; line-height: normal;
} }
@ -282,7 +282,7 @@ defineExpose({
top: -2rpx; top: -2rpx;
right: -10rpx; right: -10rpx;
padding: 4rpx 16rpx; padding: 4rpx 16rpx;
font-size: 20rpx; font-size: 22rpx;
line-height: normal; line-height: normal;
color: #fff; color: #fff;
border-top-left-radius: 16rpx; border-top-left-radius: 16rpx;
@ -397,14 +397,14 @@ defineExpose({
.info-title { .info-title {
color: #213e80; color: #213e80;
font-size: 32rpx; font-size: 34rpx;
font-weight: 400; font-weight: 400;
line-height: 56rpx; line-height: 56rpx;
} }
.info-subtitle { .info-subtitle {
color: #78808f; color: #78808f;
font-size: 24rpx; font-size: 26rpx;
} }
.arrow-icon-small { .arrow-icon-small {
@ -466,7 +466,7 @@ defineExpose({
} }
.add-archive-btn-text { .add-archive-btn-text {
font-size: 28rpx; font-size: 30rpx;
color: #ffffff; color: #ffffff;
font-weight: 500; font-weight: 500;
} }

View File

@ -152,7 +152,7 @@ defineExpose({
} }
.popup-title { .popup-title {
font-size: 32rpx; font-size: 34rpx;
font-weight: 600; font-weight: 600;
color: #333; color: #333;
text-align: center; text-align: center;
@ -203,7 +203,7 @@ defineExpose({
padding: 8rpx 16rpx; padding: 8rpx 16rpx;
background: linear-gradient(135deg, #ffa726 0%, #ff9800 100%); background: linear-gradient(135deg, #ffa726 0%, #ff9800 100%);
color: #fff; color: #fff;
font-size: 22rpx; font-size: 24rpx;
border-radius: 0 12rpx 0 12rpx; border-radius: 0 12rpx 0 12rpx;
font-weight: 600; font-weight: 600;
z-index: 2; z-index: 2;
@ -243,7 +243,7 @@ defineExpose({
} }
.user-name { .user-name {
font-size: 30rpx; font-size: 32rpx;
font-weight: 700; font-weight: 700;
color: #333; color: #333;
margin-bottom: 6rpx; margin-bottom: 6rpx;
@ -253,7 +253,7 @@ defineExpose({
} }
.user-detail { .user-detail {
font-size: 26rpx; font-size: 28rpx;
color: #666; color: #666;
font-weight: 500; font-weight: 500;
} }
@ -279,7 +279,7 @@ defineExpose({
} }
.add-text { .add-text {
font-size: 26rpx; font-size: 28rpx;
color: #1989fa; color: #1989fa;
font-weight: 600; font-weight: 600;
} }
@ -294,7 +294,7 @@ defineExpose({
height: 80rpx; height: 80rpx;
background: linear-gradient(135deg, #1989fa 0%, #0d6efd 100%); background: linear-gradient(135deg, #1989fa 0%, #0d6efd 100%);
color: #fff; color: #fff;
font-size: 32rpx; font-size: 34rpx;
font-weight: 700; font-weight: 700;
border-radius: 12rpx; border-radius: 12rpx;
border: none; border: none;

View File

@ -105,7 +105,7 @@ const qrcode = computed(() => {
.introduce-text { .introduce-text {
color: #333; color: #333;
font-size: 24rpx; font-size: 26rpx;
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
line-height: 36rpx; line-height: 36rpx;

View File

@ -74,7 +74,7 @@
<!-- <view class="introduce-text flex-grow line-clamp-3"> <!-- <view class="introduce-text flex-grow line-clamp-3">
团队介绍: {{ team.teamTroduce }} 团队介绍: {{ team.teamTroduce }}
</view> --> </view> -->
<!-- <expandable-text textStyle="color:#333;font-size:24rpx" expandStyle="font-size:24rpx" <!-- <expandable-text textStyle="color:#333;font-size:26rpx" expandStyle="font-size:26rpx"
:longText="team.teamTroduce + team.teamTroduce" :line="3" :lineHeight="36" expandText="展开" foldText="收起" /> --> :longText="team.teamTroduce + team.teamTroduce" :line="3" :lineHeight="36" expandText="展开" foldText="收起" /> -->
<!-- <multi-lines-text :line="3" :text="team.teamTroduce + team.teamTroduce" :showButton="true" expandText="展开" <!-- <multi-lines-text :line="3" :text="team.teamTroduce + team.teamTroduce" :showButton="true" expandText="展开"
collapseText="收起" buttonTextColor="#333" /> --> collapseText="收起" buttonTextColor="#333" /> -->
@ -190,7 +190,7 @@ onMounted(() => {
.team-name { .team-name {
color: #ffffff; color: #ffffff;
font-size: 36rpx; font-size: 38rpx;
font-style: normal; font-style: normal;
font-weight: 600; font-weight: 600;
line-height: normal; line-height: normal;
@ -279,7 +279,7 @@ onMounted(() => {
.introduce-text { .introduce-text {
color: #333; color: #333;
font-size: 24rpx; font-size: 26rpx;
font-style: normal; font-style: normal;
font-weight: 400; font-weight: 400;
line-height: 36rpx; line-height: 36rpx;

View File

@ -114,7 +114,7 @@ watch(teamates, val => {
.module-title { .module-title {
color: #000000; color: #000000;
font-size: 36rpx; font-size: 38rpx;
font-style: normal; font-style: normal;
font-weight: 600; font-weight: 600;
line-height: normal; line-height: normal;
@ -122,13 +122,13 @@ watch(teamates, val => {
.member-job { .member-job {
color: #999999; color: #999999;
font-size: 24rpx; font-size: 26rpx;
font-weight: 400; font-weight: 400;
} }
.member-name { .member-name {
color: #333333; color: #333333;
font-size: 32rpx; font-size: 34rpx;
font-weight: 600; font-weight: 600;
line-height: normal; line-height: normal;
} }

View File

@ -2,7 +2,7 @@
<full-page> <full-page>
<template #header> <template #header>
<view class="page-item border-bottom bg-white"> <view class="page-item border-bottom bg-white">
<input class="search-input" placeholder-style="font-size:28rpx" placeholder="请搜索名称" v-model="name" <input class="search-input" placeholder-style="font-size:30rpx" placeholder="请搜索名称" v-model="name"
@input="search" /> @input="search" />
</view> </view>
</template> </template>
@ -120,7 +120,7 @@ onLoad(options => {
border: 1px solid #eee; border: 1px solid #eee;
padding: 16rpx 20rpx; padding: 16rpx 20rpx;
border-radius: 12rpx; border-radius: 12rpx;
font-size: 28rpx; font-size: 30rpx;
} }
@ -149,7 +149,7 @@ onLoad(options => {
.name { .name {
flex-grow: 1; flex-grow: 1;
margin-right: 20rpx; margin-right: 20rpx;
font-size: 28rpx; font-size: 30rpx;
} }
.page-item { .page-item {

View File

@ -174,7 +174,7 @@ onLoad((opts) => {
line-height: 80rpx; line-height: 80rpx;
background: linear-gradient(270deg, #1b5cc8 2.26%, #0877f1 94.33%); background: linear-gradient(270deg, #1b5cc8 2.26%, #0877f1 94.33%);
color: #fff; color: #fff;
font-size: 30rpx; font-size: 32rpx;
border-radius: 48rpx; border-radius: 48rpx;
font-weight: 600; font-weight: 600;
box-shadow: 0 4rpx 16rpx rgba(59, 124, 255, 0.08); box-shadow: 0 4rpx 16rpx rgba(59, 124, 255, 0.08);
@ -259,14 +259,14 @@ onLoad((opts) => {
} }
.doctor-name { .doctor-name {
font-size: 40rpx; font-size: 42rpx;
font-weight: 600; font-weight: 600;
color: #1d2129; color: #1d2129;
margin-top: 40rpx; margin-top: 40rpx;
} }
.doctor-hospital { .doctor-hospital {
font-size: 28rpx; font-size: 30rpx;
color: #78808f; color: #78808f;
font-weight: 400; font-weight: 400;
margin-top: 20rpx; margin-top: 20rpx;
@ -279,13 +279,13 @@ onLoad((opts) => {
border-radius: 4rpx; border-radius: 4rpx;
border: 1rpx solid #1a3e8433; border: 1rpx solid #1a3e8433;
padding: 0 8rpx; padding: 0 8rpx;
font-size: 22rpx; font-size: 24rpx;
font-weight: 400; font-weight: 400;
margin-top: 20rpx; margin-top: 20rpx;
} }
.login-tip { .login-tip {
font-size: 32rpx; font-size: 34rpx;
color: #000000; color: #000000;
font-weight: 500; font-weight: 500;
text-align: center; text-align: center;
@ -310,7 +310,7 @@ onLoad((opts) => {
line-height: 96rpx; line-height: 96rpx;
background: linear-gradient(270deg, #1b5cc8 2.26%, #0877f1 94.33%); background: linear-gradient(270deg, #1b5cc8 2.26%, #0877f1 94.33%);
color: #fff; color: #fff;
font-size: 32rpx; font-size: 34rpx;
border-radius: 48rpx; border-radius: 48rpx;
font-weight: 600; font-weight: 600;
box-shadow: 0 4rpx 16rpx rgba(59, 124, 255, 0.08); box-shadow: 0 4rpx 16rpx rgba(59, 124, 255, 0.08);
@ -327,7 +327,7 @@ onLoad((opts) => {
justify-content: center; justify-content: center;
align-items: center; align-items: center;
color: #b2b7c2; color: #b2b7c2;
font-size: 22rpx; font-size: 24rpx;
margin-top: 40rpx; margin-top: 40rpx;
gap: 8rpx; gap: 8rpx;
} }

View File

@ -1,7 +1,7 @@
// SCSS 变量定义 // SCSS 变量定义
$font-size-text: 30rpx; $font-size-text: 32rpx;
$font-size-tip: 28rpx; $font-size-tip: 30rpx;
$font-size-title: 32rpx; $font-size-title: 34rpx;
$text-color-sub: #999; $text-color-sub: #999;
$primary-color: #0877F1; $primary-color: #0877F1;
@ -325,7 +325,7 @@ $primary-color: #0877F1;
} }
.username-text { .username-text {
font-size: 22rpx; font-size: 24rpx;
color: #999; color: #999;
line-height: 1.2; line-height: 1.2;
} }
@ -396,7 +396,7 @@ $primary-color: #0877F1;
} }
.message-text { .message-text {
font-size: 30rpx; font-size: 32rpx;
line-height: 1.4; line-height: 1.4;
word-wrap: break-word; word-wrap: break-word;
word-break: break-all; word-break: break-all;
@ -469,7 +469,7 @@ $primary-color: #0877F1;
.send-btn { .send-btn {
background: #3876f6; background: #3876f6;
color: #fff; color: #fff;
font-size: 28rpx; font-size: 30rpx;
font-weight: 600; font-weight: 600;
border: none; border: none;
border-radius: 40rpx; border-radius: 40rpx;
@ -504,7 +504,7 @@ $primary-color: #0877F1;
padding: 16rpx; padding: 16rpx;
background-color: #f3f5fa; background-color: #f3f5fa;
border-radius: 10rpx; border-radius: 10rpx;
font-size: 28rpx; font-size: 30rpx;
min-height: 80rpx; min-height: 80rpx;
max-height: 200rpx; max-height: 200rpx;
border: none; border: none;
@ -1204,7 +1204,7 @@ $primary-color: #0877F1;
} }
.voice-duration { .voice-duration {
font-size: 24rpx; font-size: 26rpx;
color: inherit; color: inherit;
} }

View File

@ -8,7 +8,8 @@
<view class="input-area"> <view class="input-area">
<textarea v-if="!showVoiceInput" class="text-input" v-model="inputText" placeholder="我来说两句..." <textarea v-if="!showVoiceInput" class="text-input" v-model="inputText" placeholder="我来说两句..."
@confirm="sendTextMessage" @focus="handleInputFocus" @input="handleInput" @confirm="sendTextMessage" @focus="handleInputFocus" @input="handleInput"
:auto-height="true" :show-confirm-bar="false" :adjust-position="false" :hold-keyboard="true" /> @blur="handleInputBlur" :focus="isInputFocused" :auto-height="true" :show-confirm-bar="false"
:adjust-position="false" :hold-keyboard="true" />
<input v-else class="voice-input-btn" :class="{ recording: isRecording }" @touchstart="startRecord" <input v-else class="voice-input-btn" :class="{ recording: isRecording }" @touchstart="startRecord"
@touchmove="onRecordTouchMove" @touchend="stopRecord" @touchcancel="cancelRecord" :placeholder="isRecording ? '松开发送' : '按住说话'" disabled> @touchmove="onRecordTouchMove" @touchend="stopRecord" @touchcancel="cancelRecord" :placeholder="isRecording ? '松开发送' : '按住说话'" disabled>
</input> </input>
@ -85,6 +86,7 @@ const emit = defineEmits(["messageSent", "scrollToBottom"]);
// //
const inputText = ref(""); const inputText = ref("");
const isInputFocused = ref(false);
const showVoiceInput = ref(false); const showVoiceInput = ref(false);
const showMorePanel = ref(false); const showMorePanel = ref(false);
const isRecording = ref(false); const isRecording = ref(false);
@ -346,11 +348,21 @@ const morePanelButtons = [
function handleInputFocus() { function handleInputFocus() {
console.log("handleInputFocus"); console.log("handleInputFocus");
isInputFocused.value = true;
nextTick().then(() => { nextTick().then(() => {
emit("scrollToBottom"); emit("scrollToBottom");
}); });
} }
function handleInputBlur() {
isInputFocused.value = false;
}
function blurInput() {
isInputFocused.value = false;
uni.hideKeyboard();
}
function handleInput(e) { function handleInput(e) {
// textarea // textarea
nextTick().then(() => { nextTick().then(() => {
@ -358,6 +370,10 @@ function handleInput(e) {
}); });
} }
defineExpose({
blurInput,
});
onMounted(() => { onMounted(() => {
// //
initRecorderManager(); initRecorderManager();

View File

@ -45,7 +45,7 @@ const handleReject = () => {
} }
.accept-text { .accept-text {
font-size: 28rpx; font-size: 30rpx;
color: #333; color: #333;
line-height: 1.6; line-height: 1.6;
} }
@ -60,7 +60,7 @@ const handleReject = () => {
flex: 1; flex: 1;
height: 80rpx; height: 80rpx;
border-radius: 8rpx; border-radius: 8rpx;
font-size: 28rpx; font-size: 30rpx;
border: none; border: none;
display: flex; display: flex;
align-items: center; align-items: center;

View File

@ -80,13 +80,13 @@ const handleApply = () => {
} }
.apply-title { .apply-title {
font-size: 32rpx; font-size: 34rpx;
font-weight: 600; font-weight: 600;
color: #333; color: #333;
} }
.apply-desc { .apply-desc {
font-size: 24rpx; font-size: 26rpx;
color: #999; color: #999;
} }
@ -99,7 +99,7 @@ const handleApply = () => {
background-color: #1890ff; background-color: #1890ff;
color: #fff; color: #fff;
border-radius: 8rpx; border-radius: 8rpx;
font-size: 28rpx; font-size: 30rpx;
font-weight: 500; font-weight: 500;
border: none; border: none;
display: flex; display: flex;

View File

@ -41,7 +41,7 @@ const handleCancel = () => {
} }
.cancel-text { .cancel-text {
font-size: 28rpx; font-size: 30rpx;
color: #333; color: #333;
line-height: 1.6; line-height: 1.6;
} }
@ -55,7 +55,7 @@ const handleCancel = () => {
.btn-reapply { .btn-reapply {
width: 100%; width: 100%;
heiger-radius: 8rpx; heiger-radius: 8rpx;
font-size: 28rpx; font-size: 30rpx;
border: none; border: none;
display: flex; display: flex;
align-items: center; align-items: center;

View File

@ -159,7 +159,7 @@ const handleConfirm = () => {
} }
.modal-title { .modal-title {
font-size: 32rpx; font-size: 34rpx;
font-weight: 500; font-weight: 500;
color: #333; color: #333;
line-height: 1.5; line-height: 1.5;
@ -194,7 +194,7 @@ const handleConfirm = () => {
} }
.option-text { .option-text {
font-size: 28rpx; font-size: 30rpx;
color: #333; color: #333;
flex: 1; flex: 1;
} }
@ -220,13 +220,13 @@ const handleConfirm = () => {
} }
.check-mark { .check-mark {
font-size: 24rpx; font-size: 26rpx;
color: #fff; color: #fff;
font-weight: bold; font-weight: bold;
} }
.arrow-icon { .arrow-icon {
font-size: 40rpx; font-size: 42rpx;
color: #999; color: #999;
font-weight: 300; font-weight: 300;
} }
@ -241,7 +241,7 @@ const handleConfirm = () => {
.custom-textarea { .custom-textarea {
width: 100%; width: 100%;
min-height: 120rpx; min-height: 120rpx;
font-size: 28rpx; font-size: 30rpx;
color: #333; color: #333;
line-height: 1.6; line-height: 1.6;
background-color: transparent; background-color: transparent;
@ -253,7 +253,7 @@ const handleConfirm = () => {
.char-count { .char-count {
display: block; display: block;
text-align: right; text-align: right;
font-size: 24rpx; font-size: 26rpx;
color: #999; color: #999;
margin-top: 8rpx; margin-top: 8rpx;
} }
@ -270,7 +270,7 @@ const handleConfirm = () => {
flex: 1; flex: 1;
height: 80rpx; height: 80rpx;
border-radius: 8rpx; border-radius: 8rpx;
font-size: 28rpx; font-size: 30rpx;
border: none; border: none;
display: flex; display: flex;
align-items: center; align-items: center;

View File

@ -147,7 +147,7 @@ const notifyText = computed(() => {
.notify-text { .notify-text {
margin: 0 20rpx; margin: 0 20rpx;
font-size: 24rpx; font-size: 26rpx;
color: red; color: red;
white-space: nowrap; white-space: nowrap;
flex-shrink: 0; flex-shrink: 0;

View File

@ -23,7 +23,7 @@
<scroll-view class="chat-content" :style="{ <scroll-view class="chat-content" :style="{
bottom: (keyboardHeight > 0 ? keyboardHeight + 60 : 60) + 'px', bottom: (keyboardHeight > 0 ? keyboardHeight + 60 : 60) + 'px',
}" scroll-y="true" enhanced="true" bounces="false" :scroll-into-view="scrollIntoView" @scroll="onScroll" }" scroll-y="true" enhanced="true" bounces="false" :scroll-into-view="scrollIntoView" @scroll="onScroll"
@scrolltoupper="handleScrollToUpper" ref="chatScrollView"> @scrolltoupper="handleScrollToUpper" @click="closeMorePanel" ref="chatScrollView">
<!-- 加载更多提示 --> <!-- 加载更多提示 -->
<view class="load-more-tip" v-if="messageList.length >= 15"> <view class="load-more-tip" v-if="messageList.length >= 15">
<view class="loading" v-if="isLoadingMore"> <view class="loading" v-if="isLoadingMore">
@ -574,12 +574,40 @@ const initTIMCallbacks = async () => {
uniqueMessages.push(message); uniqueMessages.push(message);
} }
}); });
messageList.value = uniqueMessages;
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( console.log(
"消息列表已更新,原始", "消息列表已更新,原始",
messages.length, messages.length,
"条,过滤后", "条,过滤后",
uniqueMessages.length, messageList.value.length,
"条消息" "条消息"
); );
@ -751,6 +779,8 @@ const scrollToBottom = (immediate = false) => {
// //
const closeMorePanel = () => { const closeMorePanel = () => {
uni.$emit("closeMorePanel"); uni.$emit("closeMorePanel");
chatInputRef.value?.blurInput?.();
uni.hideKeyboard();
}; };
// //

View File

@ -607,7 +607,7 @@ onUnmounted(() => {
} }
.header-title { .header-title {
font-size: 36rpx; font-size: 38rpx;
font-weight: 600; font-weight: 600;
color: #000; color: #000;
} }
@ -624,7 +624,7 @@ onUnmounted(() => {
} }
.badge-text { .badge-text {
font-size: 24rpx; font-size: 26rpx;
color: #fff; color: #fff;
font-weight: 600; font-weight: 600;
line-height: 1; line-height: 1;
@ -645,7 +645,7 @@ onUnmounted(() => {
} }
.loading-text { .loading-text {
font-size: 28rpx; font-size: 30rpx;
color: #999; color: #999;
} }
@ -656,7 +656,7 @@ onUnmounted(() => {
} }
.empty-text { .empty-text {
font-size: 28rpx; font-size: 30rpx;
color: #999; color: #999;
} }
@ -699,7 +699,7 @@ onUnmounted(() => {
} }
.unread-text { .unread-text {
font-size: 20rpx; font-size: 22rpx;
color: #fff; color: #fff;
line-height: 1; line-height: 1;
} }
@ -720,7 +720,7 @@ onUnmounted(() => {
} }
.name { .name {
font-size: 32rpx; font-size: 34rpx;
font-weight: 500; font-weight: 500;
color: #333; color: #333;
flex: 1; flex: 1;
@ -730,7 +730,7 @@ onUnmounted(() => {
} }
.time { .time {
font-size: 24rpx; font-size: 26rpx;
color: #999; color: #999;
margin-left: 16rpx; margin-left: 16rpx;
flex-shrink: 0; flex-shrink: 0;
@ -743,7 +743,7 @@ onUnmounted(() => {
} }
.preview-text { .preview-text {
font-size: 26rpx; font-size: 28rpx;
color: #999; color: #999;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
@ -758,12 +758,12 @@ onUnmounted(() => {
} }
.load-more-text { .load-more-text {
font-size: 24rpx; font-size: 26rpx;
color: #999; color: #999;
} }
.patient-info { .patient-info {
font-size: 26rpx; font-size: 28rpx;
color: #999; color: #999;
padding-bottom: 10rpx; padding-bottom: 10rpx;
} }
@ -790,7 +790,7 @@ onUnmounted(() => {
.subscribe-entry-text { .subscribe-entry-text {
width: 56rpx; width: 56rpx;
font-size: 24rpx; font-size: 26rpx;
line-height: 1.4; line-height: 1.4;
color: #3876f6; color: #3876f6;
text-align: center; text-align: center;

View File

@ -244,7 +244,7 @@ onLoad(opts => {
} }
@at-root &__txt { @at-root &__txt {
font-size: 32rpx; font-size: 34rpx;
color: #666; color: #666;
} }
} }

View File

@ -302,15 +302,15 @@ onShow(async () => {
} }
.text-xs { .text-xs {
font-size: 22rpx; font-size: 24rpx;
} }
.text-sm { .text-sm {
font-size: 28rpx; font-size: 30rpx;
} }
.text-base { .text-base {
font-size: 32rpx; font-size: 34rpx;
} }
.font-bold { .font-bold {
@ -424,7 +424,7 @@ onShow(async () => {
.loading-text { .loading-text {
margin-top: 20rpx; margin-top: 20rpx;
font-size: 28rpx; font-size: 30rpx;
color: #999; color: #999;
} }
@ -434,7 +434,7 @@ onShow(async () => {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
padding: 30rpx 0; padding: 30rpx 0;
font-size: 24rpx; font-size: 26rpx;
color: #999; color: #999;
gap: 10rpx; gap: 10rpx;
} }

View File

@ -141,7 +141,7 @@ onLoad(opts => {
@at-root &__customer { @at-root &__customer {
text-align: right; text-align: right;
font-size: 28rpx; font-size: 30rpx;
padding-bottom: 16rpx; padding-bottom: 16rpx;
margin-bottom: 24rpx; margin-bottom: 24rpx;
color: #333; color: #333;
@ -150,7 +150,7 @@ onLoad(opts => {
@at-root &__title { @at-root &__title {
text-align: center; text-align: center;
font-size: 32rpx; font-size: 34rpx;
font-weight: 600; font-weight: 600;
margin-bottom: 24rpx; margin-bottom: 24rpx;
} }
@ -158,7 +158,7 @@ onLoad(opts => {
@at-root &__desc { @at-root &__desc {
text-align: left; text-align: left;
color: #666; color: #666;
font-size: 28rpx; font-size: 30rpx;
margin-bottom: 24rpx; margin-bottom: 24rpx;
} }
@ -169,7 +169,7 @@ onLoad(opts => {
@at-root &__question { @at-root &__question {
position: relative; position: relative;
font-size: 32rpx; font-size: 34rpx;
margin-bottom: 24rpx; margin-bottom: 24rpx;
@at-root &--require::before { @at-root &--require::before {
@ -183,7 +183,7 @@ onLoad(opts => {
@at-root &__input { @at-root &__input {
padding: 10rpx 24rpx; padding: 10rpx 24rpx;
font-size: 28rpx; font-size: 30rpx;
border: 1px solid #eee; border: 1px solid #eee;
border-radius: 8rpx; border-radius: 8rpx;
} }
@ -199,7 +199,7 @@ onLoad(opts => {
margin-top: 30rpx; margin-top: 30rpx;
padding: 24rpx 30rpx; padding: 24rpx 30rpx;
border-radius: 8rpx; border-radius: 8rpx;
font-size: 28rpx; font-size: 30rpx;
color: #fff; color: #fff;
background: #006eff; background: #006eff;
text-align: center; text-align: center;
@ -217,7 +217,7 @@ onLoad(opts => {
@at-root &__label { @at-root &__label {
flex-grow: 1; flex-grow: 1;
font-size: 32rpx; font-size: 34rpx;
} }
} }
@ -236,7 +236,7 @@ onLoad(opts => {
} }
@at-root &__txt { @at-root &__txt {
font-size: 32rpx; font-size: 34rpx;
color: #666; color: #666;
} }
} }

View File

@ -347,15 +347,15 @@ onReachBottom(() => {
} }
.text-xs { .text-xs {
font-size: 22rpx; font-size: 24rpx;
} }
.text-sm { .text-sm {
font-size: 28rpx; font-size: 30rpx;
} }
.text-base { .text-base {
font-size: 32rpx; font-size: 34rpx;
} }
.font-bold { .font-bold {
@ -469,7 +469,7 @@ onReachBottom(() => {
.loading-text { .loading-text {
margin-top: 20rpx; margin-top: 20rpx;
font-size: 28rpx; font-size: 30rpx;
color: #999; color: #999;
} }
@ -479,7 +479,7 @@ onReachBottom(() => {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
padding: 30rpx 0; padding: 30rpx 0;
font-size: 24rpx; font-size: 26rpx;
color: #999; color: #999;
gap: 10rpx; gap: 10rpx;
} }

View File

@ -179,13 +179,13 @@ page {
.name-title { .name-title {
height: 64rpx; height: 64rpx;
line-height: 64rpx; line-height: 64rpx;
font-size: 44rpx; font-size: 46rpx;
} }
.corp-title { .corp-title {
height: 44rpx; height: 44rpx;
line-height: 44rpx; line-height: 44rpx;
font-size: 28rpx; font-size: 30rpx;
} }
.text-blue { .text-blue {
@ -238,7 +238,7 @@ page {
height: 48rpx; height: 48rpx;
text-align: center; text-align: center;
line-height: 48rpx; line-height: 48rpx;
font-size: 24rpx; font-size: 26rpx;
color: #fff; color: #fff;
font-weight: bold; font-weight: bold;
background: #065BD6; background: #065BD6;