8.25
This commit is contained in:
parent
1c08455389
commit
ccd33df9e0
20
pages.json
20
pages.json
@ -411,6 +411,16 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "setting/setting",
|
||||
"style": {
|
||||
"navigationStyle": "custom",
|
||||
"navigationBarTitleText": "uni-app分页",
|
||||
"app": {
|
||||
"bounce": "none"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "idcardAuth/idcardAuth",
|
||||
"style": {
|
||||
@ -421,6 +431,16 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "patientMsg/patientMsg",
|
||||
"style": {
|
||||
"navigationStyle": "custom",
|
||||
"navigationBarTitleText": "uni-app分页",
|
||||
"app": {
|
||||
"bounce": "none"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"path": "videoHistroy/videoHistroy",
|
||||
|
||||
286
pages_app/patientMsg/patientMsg.vue
Normal file
286
pages_app/patientMsg/patientMsg.vue
Normal file
@ -0,0 +1,286 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<!-- 顶部导航栏 -->
|
||||
<uni-nav-bar
|
||||
left-icon="left"
|
||||
title="患者消息"
|
||||
@clickLeft="goBack"
|
||||
fixed
|
||||
color="#8B2316"
|
||||
height="140rpx"
|
||||
:border="false"
|
||||
backgroundColor="#ffffff"
|
||||
>
|
||||
<template #right>
|
||||
<view class="nav-right">
|
||||
<uni-icons type="search" size="24" color="#8B2316" @click="searchPatients"></uni-icons>
|
||||
<uni-icons type="staff" size="24" color="#8B2316" @click="managePatients" style="margin-left: 30rpx;"></uni-icons>
|
||||
</view>
|
||||
</template>
|
||||
</uni-nav-bar>
|
||||
|
||||
<!-- 消息列表区域 -->
|
||||
<view class="message-list">
|
||||
<!-- 消息项 -->
|
||||
<view class="message-item" @click="openMessage">
|
||||
<view class="message-avatar">
|
||||
<view class="avatar-placeholder">
|
||||
<uni-icons type="person" size="32" color="#ffffff"></uni-icons>
|
||||
</view>
|
||||
</view>
|
||||
<view class="message-content">
|
||||
<view class="message-header">
|
||||
<text class="patient-name">测试</text>
|
||||
<text class="message-time">2025-08-11</text>
|
||||
</view>
|
||||
<view class="message-preview">
|
||||
<text class="preview-text">[图片]</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 空状态提示 -->
|
||||
<view class="empty-state" v-if="messageList.length === 0">
|
||||
<uni-icons type="chat" size="80" color="#cccccc"></uni-icons>
|
||||
<text class="empty-text">暂无患者消息</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 底部标签栏 -->
|
||||
<view class="tab-bar">
|
||||
<view class="tab-item active" @click="switchTab('message')">
|
||||
<text class="tab-text">患者消息</text>
|
||||
<view class="tab-line"></view>
|
||||
</view>
|
||||
<view class="tab-item" @click="switchTab('list')">
|
||||
<text class="tab-text">患者列表</text>
|
||||
</view>
|
||||
<view class="tab-item" @click="switchTab('plan')">
|
||||
<text class="tab-text">随访计划</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from 'vue';
|
||||
import { onShow } from "@dcloudio/uni-app";
|
||||
|
||||
// 消息列表数据
|
||||
const messageList = ref([
|
||||
{
|
||||
id: 1,
|
||||
patientName: '测试',
|
||||
messagePreview: '[图片]',
|
||||
time: '2025-08-11',
|
||||
avatar: ''
|
||||
}
|
||||
]);
|
||||
|
||||
// 当前激活的标签
|
||||
const activeTab = ref('message');
|
||||
|
||||
// 返回上一页
|
||||
const goBack = () => {
|
||||
uni.navigateBack();
|
||||
};
|
||||
|
||||
// 搜索患者
|
||||
const searchPatients = () => {
|
||||
uni.showToast({
|
||||
title: '搜索患者',
|
||||
icon: 'none'
|
||||
});
|
||||
};
|
||||
|
||||
// 管理患者
|
||||
const managePatients = () => {
|
||||
uni.showToast({
|
||||
title: '患者管理',
|
||||
icon: 'none'
|
||||
});
|
||||
};
|
||||
|
||||
// 打开消息
|
||||
const openMessage = () => {
|
||||
uni.showToast({
|
||||
title: '打开消息',
|
||||
icon: 'none'
|
||||
});
|
||||
};
|
||||
|
||||
// 切换标签
|
||||
const switchTab = (tab) => {
|
||||
activeTab.value = tab;
|
||||
|
||||
switch(tab) {
|
||||
case 'message':
|
||||
// 患者消息页面逻辑
|
||||
break;
|
||||
case 'list':
|
||||
// 跳转到患者列表页面
|
||||
uni.navigateTo({
|
||||
url: '/pages_app/myPatient/myPatient'
|
||||
});
|
||||
break;
|
||||
case 'plan':
|
||||
// 跳转到随访计划页面
|
||||
uni.showToast({
|
||||
title: '随访计划',
|
||||
icon: 'none'
|
||||
});
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
// 页面显示时加载数据
|
||||
onShow(() => {
|
||||
loadMessageList();
|
||||
});
|
||||
|
||||
// 加载消息列表
|
||||
const loadMessageList = () => {
|
||||
// 这里可以调用API获取消息列表
|
||||
console.log('加载患者消息列表');
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.content {
|
||||
background-color: #f5f5f5;
|
||||
min-height: 100vh;
|
||||
|
||||
}
|
||||
|
||||
/* 导航栏右侧按钮样式 */
|
||||
.nav-right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
/* 消息列表样式 */
|
||||
.message-list {
|
||||
background-color: #ffffff;
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
|
||||
.message-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 30rpx;
|
||||
border-bottom: 1rpx solid #f0f0f0;
|
||||
background-color: #ffffff;
|
||||
}
|
||||
|
||||
.message-item:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.message-avatar {
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
|
||||
.avatar-placeholder {
|
||||
width: 80rpx;
|
||||
height: 80rpx;
|
||||
background-color: #ff6b6b;
|
||||
border-radius: 10rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.message-content {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.message-header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
|
||||
.patient-name {
|
||||
font-size: 32rpx;
|
||||
color: #333333;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.message-time {
|
||||
font-size: 24rpx;
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
.message-preview {
|
||||
margin-top: 5rpx;
|
||||
}
|
||||
|
||||
.preview-text {
|
||||
font-size: 28rpx;
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
/* 空状态样式 */
|
||||
.empty-state {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 100rpx 0;
|
||||
}
|
||||
|
||||
.empty-text {
|
||||
margin-top: 20rpx;
|
||||
font-size: 28rpx;
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
/* 底部标签栏样式 */
|
||||
.tab-bar {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 100rpx;
|
||||
background-color: #f8f8f8;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border-top: 1rpx solid #e0e0e0;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
.tab-item {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
position: relative;
|
||||
height: 100%;
|
||||
}
|
||||
.tab-bar .tab-item:nth-child(2){
|
||||
border: 2rpx solid red;
|
||||
border-top: none;
|
||||
border-bottom: :none;
|
||||
}
|
||||
.tab-text {
|
||||
font-size: 28rpx;
|
||||
color: #999999;
|
||||
transition: color 0.3s;
|
||||
}
|
||||
|
||||
.tab-item.active .tab-text {
|
||||
color: #8B2316;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.tab-line {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
width: 60rpx;
|
||||
height: 4rpx;
|
||||
background-color: #8B2316;
|
||||
border-radius: 2rpx;
|
||||
}
|
||||
</style>
|
||||
370
pages_app/setting/setting.vue
Normal file
370
pages_app/setting/setting.vue
Normal file
@ -0,0 +1,370 @@
|
||||
<template>
|
||||
<view class="content">
|
||||
<!-- 导航栏 -->
|
||||
<!-- 顶部导航栏 -->
|
||||
<uni-nav-bar
|
||||
left-icon="left"
|
||||
title="设置与帮助"
|
||||
@clickLeft="goBack"
|
||||
fixed
|
||||
color="#8B2316"
|
||||
height="140rpx"
|
||||
:border="false"
|
||||
backgroundColor="#eeeeee"
|
||||
></uni-nav-bar>
|
||||
|
||||
|
||||
|
||||
<!-- 设置选项列表 -->
|
||||
<view class="settings-list">
|
||||
<!-- 消息通知 -->
|
||||
<view class="setting-item" @click="toggleNotification">
|
||||
<text class="setting-text">消息通知</text>
|
||||
<view class="setting-right">
|
||||
<text class="setting-status">已开启</text>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 修改登录密码 -->
|
||||
<view class="setting-item" @click="goToChangePassword">
|
||||
<text class="setting-text">修改登录密码</text>
|
||||
<uni-icons type="right" size="20" color="#999"></uni-icons>
|
||||
</view>
|
||||
|
||||
<!-- 更换手机号 -->
|
||||
<view class="setting-item" @click="goToChangeMobile">
|
||||
<text class="setting-text">更换手机号</text>
|
||||
<uni-icons type="right" size="20" color="#999"></uni-icons>
|
||||
</view>
|
||||
|
||||
<!-- 版本更新 -->
|
||||
<view class="setting-item" @click="checkUpdate">
|
||||
<text class="setting-text">版本更新</text>
|
||||
<uni-icons type="right" size="20" color="#999"></uni-icons>
|
||||
</view>
|
||||
|
||||
<!-- 关于肝胆相照 -->
|
||||
<view class="setting-item" @click="goToAbout">
|
||||
<text class="setting-text">关于肝胆相照</text>
|
||||
<uni-icons type="right" size="20" color="#999"></uni-icons>
|
||||
</view>
|
||||
|
||||
<!-- 分享肝胆相照APP -->
|
||||
<view class="setting-item" @click="shareApp">
|
||||
<text class="setting-text">分享肝胆相照APP</text>
|
||||
<uni-icons type="right" size="20" color="#999"></uni-icons>
|
||||
</view>
|
||||
|
||||
<!-- 肝胆相照直播群 -->
|
||||
<view class="setting-item" @click="goToLiveGroup">
|
||||
<text class="setting-text">肝胆相照直播群</text>
|
||||
<uni-icons type="right" size="20" color="#999"></uni-icons>
|
||||
</view>
|
||||
|
||||
<!-- 微信关联 -->
|
||||
<view class="setting-item" @click="goToWechatLink">
|
||||
<text class="setting-text">微信关联</text>
|
||||
<uni-icons type="right" size="20" color="#999"></uni-icons>
|
||||
</view>
|
||||
|
||||
<!-- 清除缓存 -->
|
||||
<view class="setting-item" @click="clearCache">
|
||||
<text class="setting-text">清除缓存</text>
|
||||
<view class="setting-right">
|
||||
<text class="cache-size">1.39MB</text>
|
||||
<uni-icons type="right" size="20" color="#999"></uni-icons>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 意见反馈 -->
|
||||
<view class="setting-item" @click="goToFeedback">
|
||||
<text class="setting-text">意见反馈</text>
|
||||
<uni-icons type="right" size="20" color="#999"></uni-icons>
|
||||
</view>
|
||||
|
||||
<!-- 注销账户 -->
|
||||
<view class="setting-item" @click="goToDeleteAccount">
|
||||
<text class="setting-text">注销账户</text>
|
||||
<uni-icons type="right" size="20" color="#999"></uni-icons>
|
||||
</view>
|
||||
|
||||
<!-- 注册协议 -->
|
||||
<view class="setting-item" @click="goToAgreement">
|
||||
<text class="setting-text">注册协议</text>
|
||||
<uni-icons type="right" size="20" color="#999"></uni-icons>
|
||||
</view>
|
||||
|
||||
<!-- 隐私政策 -->
|
||||
<view class="setting-item" @click="goToPrivacy">
|
||||
<text class="setting-text">隐私政策</text>
|
||||
<uni-icons type="right" size="20" color="#999"></uni-icons>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 退出登录按钮 -->
|
||||
<view class="logout-section">
|
||||
<button class="logout-btn" @click="logout">退出登录</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from 'vue';
|
||||
import { onShow } from "@dcloudio/uni-app";
|
||||
|
||||
// 返回上一页
|
||||
const goBack = () => {
|
||||
uni.navigateBack();
|
||||
};
|
||||
|
||||
// 切换消息通知
|
||||
const toggleNotification = () => {
|
||||
// 实现消息通知开关逻辑
|
||||
uni.showToast({
|
||||
title: '消息通知设置',
|
||||
icon: 'none'
|
||||
});
|
||||
};
|
||||
|
||||
// 跳转到修改密码页面
|
||||
const goToChangePassword = () => {
|
||||
uni.navigateTo({
|
||||
url: '/pages_app/pwdLogin/pwdLogin'
|
||||
});
|
||||
};
|
||||
|
||||
// 跳转到更换手机号页面
|
||||
const goToChangeMobile = () => {
|
||||
uni.navigateTo({
|
||||
url: '/pages_app/changeMobile/changeMobile'
|
||||
});
|
||||
};
|
||||
|
||||
// 检查版本更新
|
||||
const checkUpdate = () => {
|
||||
uni.showToast({
|
||||
title: '检查版本更新',
|
||||
icon: 'none'
|
||||
});
|
||||
};
|
||||
|
||||
// 跳转到关于页面
|
||||
const goToAbout = () => {
|
||||
uni.showToast({
|
||||
title: '关于肝胆相照',
|
||||
icon: 'none'
|
||||
});
|
||||
};
|
||||
|
||||
// 分享APP
|
||||
const shareApp = () => {
|
||||
uni.showToast({
|
||||
title: '分享APP',
|
||||
icon: 'none'
|
||||
});
|
||||
};
|
||||
|
||||
// 跳转到直播群页面
|
||||
const goToLiveGroup = () => {
|
||||
uni.navigateTo({
|
||||
url: '/pages_app/groupMsg/groupMsg'
|
||||
});
|
||||
};
|
||||
|
||||
// 跳转到微信关联页面
|
||||
const goToWechatLink = () => {
|
||||
uni.navigateTo({
|
||||
url: '/pages_app/wechatContact/wechatContact'
|
||||
});
|
||||
};
|
||||
|
||||
// 清除缓存
|
||||
const clearCache = () => {
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '确定要清除缓存吗?',
|
||||
success: (res) => {
|
||||
if (res.confirm) {
|
||||
uni.showToast({
|
||||
title: '缓存已清除',
|
||||
icon: 'success'
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// 跳转到意见反馈页面
|
||||
const goToFeedback = () => {
|
||||
uni.showToast({
|
||||
title: '意见反馈',
|
||||
icon: 'none'
|
||||
});
|
||||
};
|
||||
|
||||
// 跳转到注销账户页面
|
||||
const goToDeleteAccount = () => {
|
||||
uni.showModal({
|
||||
title: '注销账户',
|
||||
content: '确定要注销账户吗?此操作不可逆!',
|
||||
success: (res) => {
|
||||
if (res.confirm) {
|
||||
uni.showToast({
|
||||
title: '注销账户',
|
||||
icon: 'none'
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// 跳转到注册协议页面
|
||||
const goToAgreement = () => {
|
||||
uni.showToast({
|
||||
title: '注册协议',
|
||||
icon: 'none'
|
||||
});
|
||||
};
|
||||
|
||||
// 跳转到隐私政策页面
|
||||
const goToPrivacy = () => {
|
||||
uni.showToast({
|
||||
title: '隐私政策',
|
||||
icon: 'none'
|
||||
});
|
||||
};
|
||||
|
||||
// 退出登录
|
||||
const logout = () => {
|
||||
uni.showModal({
|
||||
title: '退出登录',
|
||||
content: '确定要退出登录吗?',
|
||||
success: (res) => {
|
||||
if (res.confirm) {
|
||||
// 清除登录状态
|
||||
uni.clearStorageSync();
|
||||
// 跳转到登录页面
|
||||
uni.reLaunch({
|
||||
url: '/pages_app/login/login'
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
.content {
|
||||
background-color: #f5f5f5;
|
||||
min-height: 100vh;
|
||||
padding-bottom: 160rpx; /* 为固定的退出登录按钮留出空间 */
|
||||
}
|
||||
|
||||
/* 导航栏样式 */
|
||||
.nav-bar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 88rpx;
|
||||
background-color: #ffffff;
|
||||
padding: 0 30rpx;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.nav-left {
|
||||
position: absolute;
|
||||
left: 30rpx;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.nav-icon {
|
||||
font-size: 40rpx;
|
||||
color: #ff0000;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.nav-title {
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
font-size: 36rpx;
|
||||
color: #ff0000;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
/* 设置列表样式 */
|
||||
.settings-list {
|
||||
background-color: transparent;
|
||||
|
||||
}
|
||||
|
||||
.setting-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 30rpx;
|
||||
border-bottom: 1rpx solid #f0f0f0;
|
||||
background-color: #ffffff;
|
||||
}
|
||||
.setting-item:nth-child(2){
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
.setting-item:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.setting-text {
|
||||
font-size: 32rpx;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.setting-right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.setting-status {
|
||||
font-size: 28rpx;
|
||||
color: #666666;
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
|
||||
.cache-size {
|
||||
font-size: 28rpx;
|
||||
color: #666666;
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
|
||||
.setting-arrow {
|
||||
font-size: 32rpx;
|
||||
color: #cccccc;
|
||||
}
|
||||
|
||||
/* 退出登录按钮样式 */
|
||||
.logout-section {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
padding: 30rpx;
|
||||
background-color: #fff;
|
||||
border-top: 1rpx solid #e0e0e0;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
.logout-btn {
|
||||
width: 100%;
|
||||
height: 88rpx;
|
||||
background-color: #ffffff;
|
||||
border: 2rpx solid #8B2316;
|
||||
border-radius: 10rpx;
|
||||
color: #8B2316;
|
||||
font-size: 32rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.logout-btn:active {
|
||||
background-color: #fff0f0;
|
||||
}
|
||||
</style>
|
||||
@ -41,7 +41,7 @@
|
||||
|
||||
<script setup>
|
||||
import { ref } from 'vue';
|
||||
import wxIcon from '@/static/wechat_icon.png';
|
||||
import wxIcon from '@/static/wechat.png';
|
||||
|
||||
const goBack = () => {
|
||||
uni.navigateBack();
|
||||
@ -55,15 +55,15 @@ const onBind = () => {
|
||||
<style lang="scss" scoped>
|
||||
.wechat-contact-page {
|
||||
min-height: 100vh;
|
||||
background: #ffffff;
|
||||
padding-top: 160rpx;
|
||||
background: #f7f7f7;
|
||||
|
||||
}
|
||||
|
||||
.card {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
background: #ffffff;
|
||||
margin: 20rpx 0;
|
||||
|
||||
padding: 30rpx;
|
||||
border-bottom: 2rpx solid #f0f0f0;
|
||||
.wx-left { margin-right: 24rpx; }
|
||||
@ -79,6 +79,9 @@ const onBind = () => {
|
||||
background: #2ecc71;
|
||||
color: #ffffff;
|
||||
border: none;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
border-radius: 12rpx;
|
||||
font-size: 28rpx;
|
||||
padding: 0 24rpx;
|
||||
|
||||
BIN
static/wechat.png
Normal file
BIN
static/wechat.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.4 KiB |
Loading…
x
Reference in New Issue
Block a user