Merge remote-tracking branch 'origin/dev-wdb'

This commit is contained in:
huxuejian 2026-02-08 10:42:06 +08:00
commit aa9bc1ca3d
6 changed files with 54 additions and 36 deletions

View File

@ -1,20 +1,38 @@
<template> <template>
<view class="archive-container"> <view class="archive-container">
<view class="mb-10 flex items-center justify-between"> <view class="mb-10 flex items-center justify-between">
<view class="module-title flex-shrink-0 truncate"> <view class="module-title flex-shrink-0 truncate"> 成员档案 </view>
成员档案 <view
</view> class="flex items-center leading-normal rounded-sm"
<view class="flex items-center leading-normal rounded-sm" style="padding-right: 0" @click="toManagePage()"> style="padding-right: 0"
<image class="manage-icon mr-5" src="/static/home/archive-manage.png" mode="aspectFit"></image> @click="toManagePage()"
<view style="font-size: 28rpx; color: #065BD6;">档案管理</view> >
<image
class="manage-icon mr-5"
src="/static/home/archive-manage.png"
mode="aspectFit"
></image>
<view style="font-size: 28rpx; 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()"
>
<view class="add-archive-btn"> <view class="add-archive-btn">
<image class="add-archive-btn-icon" src="/static/home/add-archive-btn.png" mode="aspectFit"></image> <image
class="add-archive-btn-icon"
src="/static/home/add-archive-btn.png"
mode="aspectFit"
></image>
<text class="add-archive-btn-text">新建档案</text> <text class="add-archive-btn-text">新建档案</text>
</view> </view>
<image class="add-archive-bg" src="/static/home/add-archive-bg.png" mode="aspectFit"></image> <image
class="add-archive-bg"
src="/static/home/add-archive-bg.png"
mode="aspectFit"
></image>
</view> </view>
<scroll-view scroll-x="true"> <scroll-view scroll-x="true">
<view class="flex flex-nowrap pb-5"> <view class="flex flex-nowrap pb-5">
@ -26,8 +44,12 @@
{{ i.relationship }} {{ i.relationship }}
</view> </view>
<view class="flex flex-col items-center"> <view class="flex flex-col items-center">
<view class="customer-name text-lg leading-normal font-semibold whitespace-nowrap mb-8" <view
:class="current && i._id === current._id ? 'text-primary' : 'text-dark'"> class="customer-name text-lg leading-normal font-semibold whitespace-nowrap mb-8"
:class="
current && i._id === current._id ? 'text-primary' : 'text-dark'
"
>
{{ i.name }} {{ i.name }}
</view> </view>
</view> </view>
@ -412,7 +434,7 @@ watch(
.add-archive-card { .add-archive-card {
height: 140rpx; height: 140rpx;
border-radius: 16rpx; border-radius: 16rpx;
background: linear-gradient(95deg, #ECFBFF -7.38%, #A5CBFF 72.72%); background: linear-gradient(95deg, #ecfbff -7.38%, #a5cbff 72.72%);
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
@ -426,7 +448,7 @@ watch(
width: 188rpx; width: 188rpx;
height: 56rpx; height: 56rpx;
border-radius: 40rpx; border-radius: 40rpx;
background: linear-gradient(90deg, #33A0F9 0%, #065BD6 100%); background: linear-gradient(90deg, #33a0f9 0%, #065bd6 100%);
box-shadow: 0 8rpx 8rpx 0 rgba(6, 91, 214, 0.3); box-shadow: 0 8rpx 8rpx 0 rgba(6, 91, 214, 0.3);
display: flex; display: flex;
align-items: center; align-items: center;
@ -442,7 +464,7 @@ watch(
.add-archive-btn-text { .add-archive-btn-text {
font-size: 28rpx; font-size: 28rpx;
color: #FFFFFF; color: #ffffff;
font-weight: 500; font-weight: 500;
} }

View File

@ -6,14 +6,11 @@ $text-color-sub: #999;
$primary-color: #0877F1; $primary-color: #0877F1;
.chat-page { .chat-page {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
height: 100vh;
background-color: #f5f5f5; background-color: #f5f5f5;
overflow: hidden;
} }
/* 患者信息栏样式 */ /* 患者信息栏样式 */
@ -115,6 +112,7 @@ $primary-color: #0877F1;
flex: 1; flex: 1;
box-sizing: border-box; box-sizing: border-box;
overflow-x: hidden; overflow-x: hidden;
min-height: 0;
} }
.chat-content-compressed { .chat-content-compressed {
@ -384,6 +382,7 @@ $primary-color: #0877F1;
position: relative; position: relative;
z-index: 200; z-index: 200;
padding-bottom: env(safe-area-inset-bottom); padding-bottom: env(safe-area-inset-bottom);
flex-shrink: 0;
} }
.input-toolbar { .input-toolbar {
@ -403,6 +402,14 @@ $primary-color: #0877F1;
padding: 0; padding: 0;
} }
.voice-toggle-icon {
width: 56rpx;
height: 56rpx;
display: flex;
align-items: center;
justify-content: center;
}
.plus-btn { .plus-btn {
width: 56rpx; width: 56rpx;
height: 56rpx; height: 56rpx;

View File

@ -2,13 +2,13 @@
<view class="input-section"> <view class="input-section">
<view class="input-toolbar"> <view class="input-toolbar">
<view @click="toggleVoiceInput" class="voice-toggle-btn"> <view @click="toggleVoiceInput" class="voice-toggle-btn">
<uni-icons v-if="showVoiceInput" fontFamily="keyboard" :size="28">{{ '&#xe61a;' }}</uni-icons> <image v-if="showVoiceInput" src="/static/jianpan.png" class="voice-toggle-icon" mode="aspectFit"></image>
<uni-icons v-else type="mic" size="28" color="#666" /> <uni-icons v-else type="mic" size="28" color="#666" />
</view> </view>
<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="true" :cursor-spacing="40" /> :auto-height="true" :show-confirm-bar="false" :adjust-position="true" :cursor-spacing="80" />
<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>

View File

@ -239,7 +239,7 @@ const showConsultApply = computed(
() => () =>
orderStatus.value === "finished" || orderStatus.value === "finished" ||
orderStatus.value === "cancelled" || orderStatus.value === "cancelled" ||
orderStatus.value === "rejected" orderStatus.value === "consult_ended"
); );
// //

BIN
static/jianpan.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@ -2735,20 +2735,9 @@ class TimChatManager {
if (!conversationID.startsWith('GROUP')) { if (!conversationID.startsWith('GROUP')) {
formattedConversationID = `GROUP${conversationID}` formattedConversationID = `GROUP${conversationID}`
} }
this.triggerCallback('onConversationListUpdated', {
console.log('📖 标记会话为已读:', formattedConversationID); conversationID: formattedConversationID,
unreadCount: 0
this.tim.setMessageRead({
conversationID: formattedConversationID
}).then(() => {
console.log('✓ 会话已标记为已读:', formattedConversationID);
// 触发会话列表更新回调,通知消息列表页面清空未读数
this.triggerCallback('onConversationListUpdated', {
conversationID: formattedConversationID,
unreadCount: 0
})
}).catch(error => {
console.error('✗ 标记会话已读失败:', error)
}) })
} catch (error) { } catch (error) {
console.error('✗ 标记会话已读异常:', error) console.error('✗ 标记会话已读异常:', error)