Merge remote-tracking branch 'origin/dev-wdb'
This commit is contained in:
commit
aa9bc1ca3d
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
@ -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">{{ '' }}</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>
|
||||||
|
|||||||
@ -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
BIN
static/jianpan.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.1 KiB |
@ -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)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user