3.6修改

This commit is contained in:
zoujiandong
2026-03-06 19:01:31 +08:00
parent 89848ba321
commit 1fa822ed72
15 changed files with 360 additions and 78 deletions
+65 -23
View File
@@ -16,7 +16,7 @@
<template #right>
<view class="nav-right">
<up-icon name="share" color="#8B2316" size="24"></up-icon>
<up-icon name="map" color="#8B2316" size="24" @click="goSite"></up-icon>
<up-image :src="siteImg" width="36rpx" height="36rpx" @click="goSite"></up-image>
</view>
</template>
</uni-nav-bar>
@@ -38,13 +38,14 @@
<!-- 停诊公告卡片 -->
<view v-if="currentTab === 'suspension'">
<view class="announcement-card" v-for="announcement in stopOutPatientList" :key="announcement.uuid">
<image :src="dateBg" mode="widthFix" class="date-bg"></image>
<view class="card-header">
<view class="date-tag">
<view class="tag-dot"></view>
<view class="date-tag" >
<text class="tag-date">{{ formatDate(announcement.expire_date) }}</text>
</view>
<view class="delete-btn" @click="deleteAnnouncement(announcement.uuid)">
<text class="delete-icon">−</text>
<uni-icons type="minus" size="30" color="#8B2316" ></uni-icons>
</view>
</view>
@@ -58,7 +59,7 @@
<text class="info-label">停诊时间:</text>
<text class="info-value">{{ announcement.date_list[0]?.param1 }} ~ {{ announcement.date_list[0]?.param2 }}</text>
</view>
<view class="divider"></view>
<view class="info-row remarks-row">
<text class="info-label">备注:</text>
<view class="remarks-input" v-if="announcement.note">{{ announcement.note }}</view>
@@ -68,7 +69,7 @@
<!-- 空状态 -->
<view v-if="stopOutPatientList.length === 0" class="empty-state">
<text class="empty-text">暂无停诊公告</text>
<empty :emptyDesc="'暂无停诊公告'"></empty>
</view>
</view>
@@ -117,7 +118,7 @@
</view>
</view>
<view v-else class="empty-state">
<text class="empty-text">暂无门诊安排</text>
<empty :emptyDesc="'暂无门诊安排'"></empty>
</view>
</view>
</view>
@@ -131,7 +132,7 @@
<!-- 浮动编辑按钮 -->
<view class="floating-edit-btn" @click="editAnnouncement">
<text class="edit-icon">✎</text>
<up-image :src="sendImg" width="88rpx" height="88rpx"></up-image>
</view>
</view>
</template>
@@ -141,7 +142,12 @@ import { ref, reactive } from 'vue'
import api from '@/api/api'
import {onShow,onUnload,onLoad,onBackPress} from '@dcloudio/uni-app'
import navTo from '@/utils/navTo'
import siteImg from '@/static/zhiyedidian.png'
import empty from '@/components/empty/empty.vue'
import sendImg from '@/static/send_feed.png'
import dateBg from '@/static/data_sign.png'
const page=ref(1);
const addressList = ref([]);
// 响应式数据
const from = ref('');
const currentTab = ref('suspension')
@@ -161,6 +167,7 @@ onLoad((options) => {
if(options.from){
from.value = options.from;
}
fetchList();
});
const getListOutPatient = async () => {
const res = await api.listOutPatient({
@@ -253,6 +260,12 @@ const share = () => {
icon: 'none'
})
}
const fetchList = async () => {
const res = await api.listWorkPlace({})
if (res && res.code === 200 && Array.isArray(res.data)) {
addressList.value = res.data
}
}
const addNew = () => {
uni.showToast({
@@ -337,6 +350,13 @@ const refreshData = () => {
// 门诊安排相关方法
const addSchedule = () => {
if(addressList.value.length === 0){
uni.showToast({
title: '请先点击右上角设置执业地点',
icon: 'none'
})
return
}
navTo({
url: '/pages_chat/outManage/outManage'
})
@@ -437,7 +457,12 @@ const deleteSchedule = async (uuid) => {
font-size: 24rpx;
color: #333;
}
.divider{
width: 100%;
height: 2rpx;
background-color: #ccc;
margin: 20rpx 0;
}
/* 导航栏样式 */
.nav-bar {
display: flex;
@@ -540,11 +565,21 @@ const deleteSchedule = async (uuid) => {
.announcement-card {
background-color: #fff;
border-radius: 16rpx;
padding: 30rpx;
margin-bottom: 20rpx;
position: relative;
.date-bg{
position: absolute;
top: 30rpx;
left: -12rpx;;
width: 241rpx;
height: 64rpx;
z-index: 1;
}
}
.card-header {
padding:30rpx 30rpx 0 30rpx;
display: flex;
justify-content: space-between;
align-items: center;
@@ -552,30 +587,28 @@ const deleteSchedule = async (uuid) => {
}
.date-tag {
position: relative;
z-index: 2;
display: flex;
align-items: center;
background-color: #20c997;
padding: 10rpx 20rpx;
background-repeat: no-repeat;
background-size: 100% 100%;
padding: 10rpx 8rpx;
border-radius: 20rpx;
gap: 10rpx;
}
.tag-dot {
width: 12rpx;
height: 12rpx;
background-color: #fff;
border-radius: 50%;
}
.tag-date {
color: #fff;
font-size: 24rpx;
font-size: 28rpx;
}
.announcement-card .delete-btn {
width: 40rpx;
height: 40rpx;
background-color: #8B2316;
border-radius: 50%;
display: flex;
align-items: center;
@@ -596,7 +629,8 @@ const deleteSchedule = async (uuid) => {
.info-row {
display: flex;
align-items: center;
margin-bottom: 20rpx;
margin: 0 30rpx 20rpx;
}
.info-label {
@@ -614,6 +648,14 @@ const deleteSchedule = async (uuid) => {
.remarks-row {
align-items: flex-start;
.info-label{
font-size: 26rpx;
}
.info-value{
font-size: 26rpx;
}
}
.remarks-input {
@@ -817,7 +859,7 @@ const deleteSchedule = async (uuid) => {
/* 浮动编辑按钮 */
.floating-edit-btn {
position: fixed;
bottom: 120rpx;
bottom: 180rpx;
right: 30rpx;
width: 80rpx;
height: 80rpx;