feat:调大字体
This commit is contained in:
parent
915498379d
commit
cd9d88f882
8
App.vue
8
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 {
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -61,7 +61,7 @@ function change(e) {
|
||||
|
||||
.form-input {
|
||||
flex-grow: 1;
|
||||
font-size: 28rpx;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
|
||||
.appendText {
|
||||
|
||||
@ -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;
|
||||
}
|
||||
</style>
|
||||
@ -168,7 +168,7 @@ function remove(idx) {
|
||||
.textarea-row {
|
||||
padding: 24rpx 30rpx;
|
||||
border-bottom: 1px solid #eee;
|
||||
font-size: 28rpx;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -468,7 +468,7 @@
|
||||
}
|
||||
}
|
||||
.zh-ellipsis {
|
||||
font-size: 30rpx;
|
||||
font-size: 32rpx;
|
||||
color: #434343;
|
||||
}
|
||||
.zh-overflowcont {
|
||||
|
||||
@ -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 {
|
||||
|
||||
@ -95,7 +95,7 @@ watch(codes, n => {
|
||||
.code-cell {
|
||||
width: 120rpx;
|
||||
height: 120rpx;
|
||||
font-size: 52rpx;
|
||||
font-size: 54rpx;
|
||||
}
|
||||
|
||||
.code-input {
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
<view class="module-title flex-shrink-0 truncate"> 成员档案 </view>
|
||||
<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>
|
||||
<view style="font-size: 28rpx; color: #065bd6">档案管理</view>
|
||||
<view style="font-size: 30rpx; color: #065bd6">档案管理</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-if="customers.length === 0" class="add-archive-card" @click="toManagePage()">
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -74,7 +74,7 @@
|
||||
<!-- <view class="introduce-text flex-grow line-clamp-3">
|
||||
团队介绍: {{ team.teamTroduce }}
|
||||
</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="收起" /> -->
|
||||
<!-- <multi-lines-text :line="3" :text="team.teamTroduce + team.teamTroduce" :showButton="true" expandText="展开"
|
||||
collapseText="收起" buttonTextColor="#333" /> -->
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
<full-page>
|
||||
<template #header>
|
||||
<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" />
|
||||
</view>
|
||||
</template>
|
||||
@ -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 {
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -7,8 +7,9 @@
|
||||
</view>
|
||||
<view class="input-area">
|
||||
<textarea v-if="!showVoiceInput" class="text-input" v-model="inputText" placeholder="我来说两句..."
|
||||
@confirm="sendTextMessage" @focus="handleInputFocus" @input="handleInput"
|
||||
:auto-height="true" :show-confirm-bar="false" :adjust-position="false" :hold-keyboard="true" />
|
||||
@confirm="sendTextMessage" @focus="handleInputFocus" @input="handleInput"
|
||||
@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"
|
||||
@touchmove="onRecordTouchMove" @touchend="stopRecord" @touchcancel="cancelRecord" :placeholder="isRecording ? '松开发送' : '按住说话'" disabled>
|
||||
</input>
|
||||
@ -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(() => {
|
||||
|
||||
<style scoped lang="scss">
|
||||
@import "../chat.scss";
|
||||
</style>
|
||||
</style>
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -20,10 +20,10 @@
|
||||
</view>
|
||||
|
||||
<!-- 聊天消息区域 -->
|
||||
<scroll-view class="chat-content" :style="{
|
||||
bottom: (keyboardHeight > 0 ? keyboardHeight + 60 : 60) + 'px',
|
||||
}" scroll-y="true" enhanced="true" bounces="false" :scroll-into-view="scrollIntoView" @scroll="onScroll"
|
||||
@scrolltoupper="handleScrollToUpper" ref="chatScrollView">
|
||||
<scroll-view class="chat-content" :style="{
|
||||
bottom: (keyboardHeight > 0 ? keyboardHeight + 60 : 60) + 'px',
|
||||
}" scroll-y="true" enhanced="true" bounces="false" :scroll-into-view="scrollIntoView" @scroll="onScroll"
|
||||
@scrolltoupper="handleScrollToUpper" @click="closeMorePanel" ref="chatScrollView">
|
||||
<!-- 加载更多提示 -->
|
||||
<view class="load-more-tip" v-if="messageList.length >= 15">
|
||||
<view class="loading" v-if="isLoadingMore">
|
||||
@ -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) => {
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -244,7 +244,7 @@ onLoad(opts => {
|
||||
}
|
||||
|
||||
@at-root &__txt {
|
||||
font-size: 32rpx;
|
||||
font-size: 34rpx;
|
||||
color: #666;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user