3.6修改
This commit is contained in:
parent
89848ba321
commit
1fa822ed72
@ -42,13 +42,13 @@
|
|||||||
|
|
||||||
@click="oncancel"
|
@click="oncancel"
|
||||||
>
|
>
|
||||||
<text class="btn-text">取消</text>
|
<text class="btn-text">{{ cancelText }}</text>
|
||||||
</view>
|
</view>
|
||||||
<view
|
<view
|
||||||
class="dialog-btn confirm"
|
class="dialog-btn confirm"
|
||||||
@click="onconfirm"
|
@click="onconfirm"
|
||||||
>
|
>
|
||||||
<text class="btn-text">确定</text>
|
<text class="btn-text">{{ confirmText }}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|||||||
44
pages.json
44
pages.json
@ -771,6 +771,16 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "caseRecord/caseRecord",
|
||||||
|
"style": {
|
||||||
|
"navigationStyle": "custom",
|
||||||
|
"navigationBarTitleText": "uni-app分页",
|
||||||
|
"app": {
|
||||||
|
"bounce": "none"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "visitPlan/visitPlan",
|
"path": "visitPlan/visitPlan",
|
||||||
"style": {
|
"style": {
|
||||||
@ -934,6 +944,17 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "selectPatientSingle/selectPatientSingle",
|
||||||
|
"style": {
|
||||||
|
"navigationStyle": "custom",
|
||||||
|
"navigationBarRightButton":{ "hide": true},
|
||||||
|
"navigationBarTitleText": "uni-app分页",
|
||||||
|
"app": {
|
||||||
|
"bounce": "none"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "visitNote/visitNote",
|
"path": "visitNote/visitNote",
|
||||||
"style": {
|
"style": {
|
||||||
@ -1000,17 +1021,7 @@
|
|||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// },
|
// },
|
||||||
// {
|
|
||||||
// "path": "selectPatientSingle/selectPatientSingle",
|
|
||||||
// "style": {
|
|
||||||
// "navigationStyle": "custom",
|
|
||||||
// "navigationBarRightButton":{ "hide": true},
|
|
||||||
// "navigationBarTitleText": "uni-app分页",
|
|
||||||
// "app": {
|
|
||||||
// "bounce": "none"
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// },
|
|
||||||
// {
|
// {
|
||||||
// "path": "patientInfo/patientInfo",
|
// "path": "patientInfo/patientInfo",
|
||||||
// "style": {
|
// "style": {
|
||||||
@ -1114,16 +1125,7 @@
|
|||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// },
|
// },
|
||||||
// {
|
|
||||||
// "path": "caseRecord/caseRecord",
|
|
||||||
// "style": {
|
|
||||||
// "navigationStyle": "custom",
|
|
||||||
// "navigationBarTitleText": "uni-app分页",
|
|
||||||
// "app": {
|
|
||||||
// "bounce": "none"
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// },
|
|
||||||
// {
|
// {
|
||||||
// "path": "searchPatient/searchPatient",
|
// "path": "searchPatient/searchPatient",
|
||||||
// "style": {
|
// "style": {
|
||||||
|
|||||||
@ -1,13 +1,13 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="container">
|
<view class="container">
|
||||||
<!-- 头部导航 -->
|
<!-- 头部导航 -->
|
||||||
<uni-nav-bar
|
<view class="navbox">
|
||||||
|
<view class="status_bar"></view>
|
||||||
|
<uni-nav-bar
|
||||||
left-icon="left"
|
left-icon="left"
|
||||||
title="病情记录"
|
title="病情记录"
|
||||||
@clickLeft="goBack"
|
@clickLeft="goBack"
|
||||||
fixed
|
|
||||||
color="#8B2316"
|
color="#8B2316"
|
||||||
height="180rpx"
|
|
||||||
:border="false"
|
:border="false"
|
||||||
backgroundColor="#eee"
|
backgroundColor="#eee"
|
||||||
>
|
>
|
||||||
@ -16,10 +16,11 @@
|
|||||||
<text class="modify-btn" @click="saveRecord" v-if="recordUuid"
|
<text class="modify-btn" @click="saveRecord" v-if="recordUuid"
|
||||||
>修改</text
|
>修改</text
|
||||||
>
|
>
|
||||||
<text class="save-btn" @click="saveRecord" v-else>保存</text>
|
<text class="save-btn" @click="saveRecord" v-else>提交</text>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
</uni-nav-bar>
|
</uni-nav-bar>
|
||||||
|
</view>
|
||||||
|
|
||||||
<!-- 主要内容区域 -->
|
<!-- 主要内容区域 -->
|
||||||
<view class="main-content">
|
<view class="main-content">
|
||||||
@ -337,7 +338,16 @@ const saveRecord = () => {
|
|||||||
|
|
||||||
/* 主要内容区域 */
|
/* 主要内容区域 */
|
||||||
.main-content {
|
.main-content {
|
||||||
padding: 0rpx 30rpx;
|
position: fixed;
|
||||||
|
top: calc(var(--status-bar-height) + 44px);
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
width: 100%;
|
||||||
|
box-sizing: border-box;
|
||||||
|
bottom:150rpx;
|
||||||
|
z-index:1;
|
||||||
|
overflow-y: scroll;
|
||||||
|
padding: 30rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.form-item {
|
.form-item {
|
||||||
|
|||||||
@ -15,7 +15,8 @@
|
|||||||
</uni-nav-bar> -->
|
</uni-nav-bar> -->
|
||||||
|
|
||||||
<!-- 患者行 -->
|
<!-- 患者行 -->
|
||||||
<view class="row" @click="noop">
|
<view class="contentbox">
|
||||||
|
<view class="row" @click="noop">
|
||||||
<text class="row-label">患者</text>
|
<text class="row-label">患者</text>
|
||||||
<text class="row-value">{{ patientName }}</text>
|
<text class="row-value">{{ patientName }}</text>
|
||||||
</view>
|
</view>
|
||||||
@ -30,6 +31,7 @@
|
|||||||
<view class="note-box">
|
<view class="note-box">
|
||||||
<textarea class="note-textarea" v-model.trim="note" placeholder="请填写随访内容" auto-height :maxlength="200" />
|
<textarea class="note-textarea" v-model.trim="note" placeholder="请填写随访内容" auto-height :maxlength="200" />
|
||||||
</view>
|
</view>
|
||||||
|
</view>
|
||||||
<!-- 底部删除按钮 -->
|
<!-- 底部删除按钮 -->
|
||||||
<view class="fixed-footer">
|
<view class="fixed-footer">
|
||||||
<view class="fixed-btn" @click="deleteFollowUp">删除该条记录</view>
|
<view class="fixed-btn" @click="deleteFollowUp">删除该条记录</view>
|
||||||
@ -93,6 +95,16 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
.contentbox{
|
||||||
|
position: fixed;
|
||||||
|
top: calc(var(--status-bar-height) + 44px);
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
overflow-y: scroll;
|
||||||
|
bottom:128rpx;
|
||||||
|
z-index:1;
|
||||||
|
|
||||||
|
}
|
||||||
.visit-note-page{
|
.visit-note-page{
|
||||||
min-height: 100vh; background:#f5f5f5; padding-bottom: 120rpx;
|
min-height: 100vh; background:#f5f5f5; padding-bottom: 120rpx;
|
||||||
}
|
}
|
||||||
@ -100,12 +112,12 @@
|
|||||||
.submit-text{ color:#8B2316; font-size: 30rpx; }
|
.submit-text{ color:#8B2316; font-size: 30rpx; }
|
||||||
|
|
||||||
.row{
|
.row{
|
||||||
margin-top: 20rpx; background:#fff; padding: 26rpx 30rpx; display:flex; align-items:center; justify-content:space-between; border-bottom: 1rpx solid #eee;
|
background:#fff; padding: 26rpx 30rpx; display:flex; align-items:center; justify-content:space-between; border-bottom: 1rpx solid #eee;
|
||||||
.row-label{ font-size: 32rpx; color:#8B2316; font-weight: 500; }
|
.row-label{ font-size: 32rpx; color:#8B2316; font-weight: 500; }
|
||||||
.row-value{ font-size: 32rpx; color:#333; }
|
.row-value{ font-size: 32rpx; color:#333; }
|
||||||
}
|
}
|
||||||
|
|
||||||
.section-title{ background:#fff; padding: 22rpx 30rpx; color:#8B2316; font-size: 30rpx; border-top: 1rpx solid #eee; border-bottom: 1rpx solid #eee; }
|
.section-title{ background:#fff; padding: 22rpx 30rpx; color:#8B2316; font-size: 30rpx;border-bottom: 1rpx solid #eee; }
|
||||||
|
|
||||||
.note-box{ background:#fff; padding: 20rpx 24rpx; }
|
.note-box{ background:#fff; padding: 20rpx 24rpx; }
|
||||||
.note-textarea{
|
.note-textarea{
|
||||||
|
|||||||
@ -405,8 +405,6 @@
|
|||||||
},1000);
|
},1000);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// 申请列表数据
|
// 申请列表数据
|
||||||
const applyList = ref([]);
|
const applyList = ref([]);
|
||||||
const hasNewPatient = computed(() => applyList.value.length > 0);
|
const hasNewPatient = computed(() => applyList.value.length > 0);
|
||||||
@ -912,6 +910,9 @@
|
|||||||
|
|
||||||
// 患者列表样式
|
// 患者列表样式
|
||||||
.patient-list {
|
.patient-list {
|
||||||
|
:deep(.u-index-list__scroll-view){
|
||||||
|
height:calc(100vh - var(--status-bar-height) - 44px - 103rpx);
|
||||||
|
}
|
||||||
// position: fixed;
|
// position: fixed;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
|
|||||||
@ -1,12 +1,14 @@
|
|||||||
<template>
|
<template>
|
||||||
<view class="content">
|
<view class="content">
|
||||||
<uni-nav-bar
|
<view class="navbox">
|
||||||
|
<view class="status_bar"></view>
|
||||||
|
<uni-nav-bar
|
||||||
left-icon="left"
|
left-icon="left"
|
||||||
title="随访计划"
|
title="随访计划"
|
||||||
@clickLeft="goBack"
|
@clickLeft="goBack"
|
||||||
fixed
|
|
||||||
color="#8B2316"
|
color="#8B2316"
|
||||||
height="180rpx"
|
|
||||||
:border="false"
|
:border="false"
|
||||||
backgroundColor="#eee"
|
backgroundColor="#eee"
|
||||||
>
|
>
|
||||||
@ -17,7 +19,8 @@
|
|||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
</uni-nav-bar>
|
</uni-nav-bar>
|
||||||
<view class="plan">
|
</view>
|
||||||
|
|
||||||
<scroll-view
|
<scroll-view
|
||||||
class="plan-scroll"
|
class="plan-scroll"
|
||||||
scroll-y="true"
|
scroll-y="true"
|
||||||
@ -75,7 +78,7 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -182,8 +185,8 @@ onShow(() => {
|
|||||||
|
|
||||||
.content { background-color: #f5f5f5; height: 100vh; overflow-y: hidden; }
|
.content { background-color: #f5f5f5; height: 100vh; overflow-y: hidden; }
|
||||||
.linebox{ margin:0 20rpx; }
|
.linebox{ margin:0 20rpx; }
|
||||||
.plan{ position: fixed; top: 180rpx; left: 0; right: 0; bottom:0rpx; }
|
.plan-scroll{ position: fixed; top: calc(var(--status-bar-height) + 44px); left: 0; right: 0; bottom:0rpx;z-index:1; }
|
||||||
.plan-scroll { height: 100%; }
|
|
||||||
.plan-list{ padding-bottom: 20rpx; }
|
.plan-list{ padding-bottom: 20rpx; }
|
||||||
.plan-group{ background:#f5f5f5; }
|
.plan-group{ background:#f5f5f5; }
|
||||||
.group-header{ text-align: center; background:#e4e4e4; color:#333; font-size: 30rpx; padding: 20rpx 30rpx; }
|
.group-header{ text-align: center; background:#e4e4e4; color:#333; font-size: 30rpx; padding: 20rpx 30rpx; }
|
||||||
|
|||||||
@ -17,15 +17,16 @@
|
|||||||
|
|
||||||
<view class="card-actions">
|
<view class="card-actions">
|
||||||
<view class="action" @click="edit(item)">
|
<view class="action" @click="edit(item)">
|
||||||
<text class="icon">✎</text>
|
<up-image :src="editImg" width="30rpx" height="30rpx"></up-image>
|
||||||
<text class="text">编辑</text>
|
<text class="text">编辑</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="action" @click="remove(item)">
|
<view class="action" @click="remove(item)">
|
||||||
<text class="icon">🗑</text>
|
<up-image :src="deleteImg" width="30rpx" height="30rpx"></up-image>
|
||||||
<text class="text">删除</text>
|
<text class="text">删除</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<empty v-if="addressList.length === 0" :emptyDesc="'暂无执业地点'"/>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 底部新增按钮 -->
|
<!-- 底部新增按钮 -->
|
||||||
@ -41,9 +42,12 @@
|
|||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
import { onShow } from '@dcloudio/uni-app'
|
import { onShow } from '@dcloudio/uni-app'
|
||||||
import navBar from '@/components/navBar/navBar.vue'
|
import navBar from '@/components/navBar/navBar.vue'
|
||||||
|
import empty from '@/components/empty/empty.vue'
|
||||||
import api from '@/api/api.js'
|
import api from '@/api/api.js'
|
||||||
import navTo from '@/utils/navTo'
|
import navTo from '@/utils/navTo'
|
||||||
const title = ref('执业地点管理')
|
const title = ref('执业地点管理')
|
||||||
|
import editImg from '@/static/images/edit_icon.png'
|
||||||
|
import deleteImg from '@/static/images/delete_icon.png'
|
||||||
const addressList = ref([])
|
const addressList = ref([])
|
||||||
|
|
||||||
const getTypeTag = (type) => {
|
const getTypeTag = (type) => {
|
||||||
|
|||||||
@ -34,7 +34,7 @@
|
|||||||
<view class="form-item">
|
<view class="form-item">
|
||||||
<view class="label">地址 <text class="required">*</text></view>
|
<view class="label">地址 <text class="required">*</text></view>
|
||||||
<view class="value">
|
<view class="value">
|
||||||
<input class="input" v-model.trim="form.location" placeholder="请输入地址" />
|
<input class="input" v-model.trim="form.location" placeholder="如门诊楼东侧502室" />
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
@ -53,18 +53,71 @@
|
|||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="bottom-actions">
|
<view class="bottom-actions">
|
||||||
<view class="submit-btn" @click="submit">
|
<view class="submit-btn" @click="alertDialog">
|
||||||
<text class="btn-text">{{form.uuid?'确定修改':'确定新增'}}</text>
|
<text class="btn-text">{{form.uuid?'确定修改':'确定新增'}}</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<unidialog
|
||||||
|
:visible="noticeVisible"
|
||||||
|
:title="'执业地点'"
|
||||||
|
:cancelText="'返回修改'"
|
||||||
|
:confirmText="'确认发布'"
|
||||||
|
|
||||||
|
@close="noticeVisible=false"
|
||||||
|
@confirm="noticeConfirm"
|
||||||
|
>
|
||||||
|
<template v-slot:content>
|
||||||
|
<view class="ppt-content">
|
||||||
|
<view class="notice-row">
|
||||||
|
<view class="name">医院:</view>
|
||||||
|
<view class="value" v-if="reason==1">{{ form.hospital_name }}</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
<view class="notice-row">
|
||||||
|
<view class="name">科室:</view>
|
||||||
|
<view class="value">
|
||||||
|
{{ form.office_name }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="notice-row">
|
||||||
|
<view class="name">地址:</view>
|
||||||
|
<view class="value">
|
||||||
|
{{ form.location }}
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="notice-row">
|
||||||
|
<view class="name">门诊类型:</view>
|
||||||
|
<view class="value" v-if="form.type==1">
|
||||||
|
普通门诊
|
||||||
|
</view>
|
||||||
|
<view class="value" v-if="form.type==2">
|
||||||
|
专家门诊
|
||||||
|
</view>
|
||||||
|
<view class="value" v-if="form.type==3">
|
||||||
|
特需门诊
|
||||||
|
</view>
|
||||||
|
<view class="value" v-if="form.type==4">
|
||||||
|
专科/专病门诊
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
</unidialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
import { onLoad } from '@dcloudio/uni-app'
|
import { onLoad } from '@dcloudio/uni-app'
|
||||||
import navBar from '@/components/navBar/navBar.vue'
|
import navBar from '@/components/navBar/navBar.vue'
|
||||||
|
import unidialog from '@/components/dialog/dialog.vue'
|
||||||
import api from '@/api/api.js'
|
import api from '@/api/api.js'
|
||||||
|
const noticeVisible = ref(false)
|
||||||
|
const noticeConfirm = () => {
|
||||||
|
noticeVisible.value = false
|
||||||
|
submit()
|
||||||
|
}
|
||||||
|
|
||||||
const pageTitle = ref('新增执业地点')
|
const pageTitle = ref('新增执业地点')
|
||||||
const form = ref({
|
const form = ref({
|
||||||
@ -72,7 +125,7 @@ const form = ref({
|
|||||||
hospital_name: '',
|
hospital_name: '',
|
||||||
office_name: '',
|
office_name: '',
|
||||||
location: '',
|
location: '',
|
||||||
type: 4
|
type: 1
|
||||||
})
|
})
|
||||||
|
|
||||||
const selectType = (t) => { form.value.type = t }
|
const selectType = (t) => { form.value.type = t }
|
||||||
@ -111,9 +164,15 @@ const validate = () => {
|
|||||||
return ''
|
return ''
|
||||||
}
|
}
|
||||||
|
|
||||||
const submit = async () => {
|
|
||||||
|
|
||||||
|
const alertDialog = () => {
|
||||||
const err = validate()
|
const err = validate()
|
||||||
if (err) { uni.showToast({ title: err, icon: 'none' }); return }
|
if (err) { uni.showToast({ title: err, icon: 'none' }); return }
|
||||||
|
noticeVisible.value = true
|
||||||
|
}
|
||||||
|
const submit = async () => {
|
||||||
|
|
||||||
// 示例更新接口;若不存在可替换为新增或本地处理
|
// 示例更新接口;若不存在可替换为新增或本地处理
|
||||||
try {
|
try {
|
||||||
const res =form.value.uuid?await api.updateWorkPlace(form.value) : await api.addWorkPlace(form.value)
|
const res =form.value.uuid?await api.updateWorkPlace(form.value) : await api.addWorkPlace(form.value)
|
||||||
@ -146,6 +205,19 @@ onLoad((options) => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
.notice-row{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
.name{
|
||||||
|
width: 160rpx;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.value{
|
||||||
|
flex: 1;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
}
|
||||||
.edit-address-page { min-height: 100vh; background: #fff; }
|
.edit-address-page { min-height: 100vh; background: #fff; }
|
||||||
.form-container { padding: 24rpx;margin-top: calc(var(--status-bar-height) + 44px); }
|
.form-container { padding: 24rpx;margin-top: calc(var(--status-bar-height) + 44px); }
|
||||||
|
|
||||||
|
|||||||
@ -16,7 +16,7 @@
|
|||||||
<template #right>
|
<template #right>
|
||||||
<view class="nav-right">
|
<view class="nav-right">
|
||||||
<up-icon name="share" color="#8B2316" size="24"></up-icon>
|
<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>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
</uni-nav-bar>
|
</uni-nav-bar>
|
||||||
@ -38,13 +38,14 @@
|
|||||||
<!-- 停诊公告卡片 -->
|
<!-- 停诊公告卡片 -->
|
||||||
<view v-if="currentTab === 'suspension'">
|
<view v-if="currentTab === 'suspension'">
|
||||||
<view class="announcement-card" v-for="announcement in stopOutPatientList" :key="announcement.uuid">
|
<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="card-header">
|
||||||
<view class="date-tag">
|
<view class="date-tag" >
|
||||||
<view class="tag-dot"></view>
|
|
||||||
<text class="tag-date">{{ formatDate(announcement.expire_date) }}</text>
|
<text class="tag-date">{{ formatDate(announcement.expire_date) }}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="delete-btn" @click="deleteAnnouncement(announcement.uuid)">
|
<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>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
@ -58,7 +59,7 @@
|
|||||||
<text class="info-label">停诊时间:</text>
|
<text class="info-label">停诊时间:</text>
|
||||||
<text class="info-value">{{ announcement.date_list[0]?.param1 }} ~ {{ announcement.date_list[0]?.param2 }}</text>
|
<text class="info-value">{{ announcement.date_list[0]?.param1 }} ~ {{ announcement.date_list[0]?.param2 }}</text>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="divider"></view>
|
||||||
<view class="info-row remarks-row">
|
<view class="info-row remarks-row">
|
||||||
<text class="info-label">备注:</text>
|
<text class="info-label">备注:</text>
|
||||||
<view class="remarks-input" v-if="announcement.note">{{ announcement.note }}</view>
|
<view class="remarks-input" v-if="announcement.note">{{ announcement.note }}</view>
|
||||||
@ -68,7 +69,7 @@
|
|||||||
|
|
||||||
<!-- 空状态 -->
|
<!-- 空状态 -->
|
||||||
<view v-if="stopOutPatientList.length === 0" class="empty-state">
|
<view v-if="stopOutPatientList.length === 0" class="empty-state">
|
||||||
<text class="empty-text">暂无停诊公告</text>
|
<empty :emptyDesc="'暂无停诊公告'"></empty>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
@ -117,7 +118,7 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view v-else class="empty-state">
|
<view v-else class="empty-state">
|
||||||
<text class="empty-text">暂无门诊安排</text>
|
<empty :emptyDesc="'暂无门诊安排'"></empty>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -131,7 +132,7 @@
|
|||||||
|
|
||||||
<!-- 浮动编辑按钮 -->
|
<!-- 浮动编辑按钮 -->
|
||||||
<view class="floating-edit-btn" @click="editAnnouncement">
|
<view class="floating-edit-btn" @click="editAnnouncement">
|
||||||
<text class="edit-icon">✎</text>
|
<up-image :src="sendImg" width="88rpx" height="88rpx"></up-image>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
@ -141,7 +142,12 @@ import { ref, reactive } from 'vue'
|
|||||||
import api from '@/api/api'
|
import api from '@/api/api'
|
||||||
import {onShow,onUnload,onLoad,onBackPress} from '@dcloudio/uni-app'
|
import {onShow,onUnload,onLoad,onBackPress} from '@dcloudio/uni-app'
|
||||||
import navTo from '@/utils/navTo'
|
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 page=ref(1);
|
||||||
|
const addressList = ref([]);
|
||||||
// 响应式数据
|
// 响应式数据
|
||||||
const from = ref('');
|
const from = ref('');
|
||||||
const currentTab = ref('suspension')
|
const currentTab = ref('suspension')
|
||||||
@ -161,6 +167,7 @@ onLoad((options) => {
|
|||||||
if(options.from){
|
if(options.from){
|
||||||
from.value = options.from;
|
from.value = options.from;
|
||||||
}
|
}
|
||||||
|
fetchList();
|
||||||
});
|
});
|
||||||
const getListOutPatient = async () => {
|
const getListOutPatient = async () => {
|
||||||
const res = await api.listOutPatient({
|
const res = await api.listOutPatient({
|
||||||
@ -253,6 +260,12 @@ const share = () => {
|
|||||||
icon: 'none'
|
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 = () => {
|
const addNew = () => {
|
||||||
uni.showToast({
|
uni.showToast({
|
||||||
@ -337,6 +350,13 @@ const refreshData = () => {
|
|||||||
|
|
||||||
// 门诊安排相关方法
|
// 门诊安排相关方法
|
||||||
const addSchedule = () => {
|
const addSchedule = () => {
|
||||||
|
if(addressList.value.length === 0){
|
||||||
|
uni.showToast({
|
||||||
|
title: '请先点击右上角设置执业地点',
|
||||||
|
icon: 'none'
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
navTo({
|
navTo({
|
||||||
url: '/pages_chat/outManage/outManage'
|
url: '/pages_chat/outManage/outManage'
|
||||||
})
|
})
|
||||||
@ -437,7 +457,12 @@ const deleteSchedule = async (uuid) => {
|
|||||||
font-size: 24rpx;
|
font-size: 24rpx;
|
||||||
color: #333;
|
color: #333;
|
||||||
}
|
}
|
||||||
|
.divider{
|
||||||
|
width: 100%;
|
||||||
|
height: 2rpx;
|
||||||
|
background-color: #ccc;
|
||||||
|
margin: 20rpx 0;
|
||||||
|
}
|
||||||
/* 导航栏样式 */
|
/* 导航栏样式 */
|
||||||
.nav-bar {
|
.nav-bar {
|
||||||
display: flex;
|
display: flex;
|
||||||
@ -540,11 +565,21 @@ const deleteSchedule = async (uuid) => {
|
|||||||
.announcement-card {
|
.announcement-card {
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
border-radius: 16rpx;
|
border-radius: 16rpx;
|
||||||
padding: 30rpx;
|
|
||||||
margin-bottom: 20rpx;
|
margin-bottom: 20rpx;
|
||||||
|
position: relative;
|
||||||
|
.date-bg{
|
||||||
|
position: absolute;
|
||||||
|
top: 30rpx;
|
||||||
|
left: -12rpx;;
|
||||||
|
width: 241rpx;
|
||||||
|
height: 64rpx;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-header {
|
.card-header {
|
||||||
|
padding:30rpx 30rpx 0 30rpx;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@ -552,30 +587,28 @@ const deleteSchedule = async (uuid) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.date-tag {
|
.date-tag {
|
||||||
|
position: relative;
|
||||||
|
z-index: 2;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
background-color: #20c997;
|
background-repeat: no-repeat;
|
||||||
padding: 10rpx 20rpx;
|
background-size: 100% 100%;
|
||||||
|
padding: 10rpx 8rpx;
|
||||||
border-radius: 20rpx;
|
border-radius: 20rpx;
|
||||||
gap: 10rpx;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.tag-dot {
|
|
||||||
width: 12rpx;
|
|
||||||
height: 12rpx;
|
|
||||||
background-color: #fff;
|
|
||||||
border-radius: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tag-date {
|
.tag-date {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
font-size: 24rpx;
|
font-size: 28rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.announcement-card .delete-btn {
|
.announcement-card .delete-btn {
|
||||||
width: 40rpx;
|
width: 40rpx;
|
||||||
height: 40rpx;
|
height: 40rpx;
|
||||||
background-color: #8B2316;
|
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
@ -596,7 +629,8 @@ const deleteSchedule = async (uuid) => {
|
|||||||
.info-row {
|
.info-row {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
margin-bottom: 20rpx;
|
margin: 0 30rpx 20rpx;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.info-label {
|
.info-label {
|
||||||
@ -614,6 +648,14 @@ const deleteSchedule = async (uuid) => {
|
|||||||
|
|
||||||
.remarks-row {
|
.remarks-row {
|
||||||
align-items: flex-start;
|
align-items: flex-start;
|
||||||
|
.info-label{
|
||||||
|
font-size: 26rpx;
|
||||||
|
|
||||||
|
}
|
||||||
|
.info-value{
|
||||||
|
font-size: 26rpx;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.remarks-input {
|
.remarks-input {
|
||||||
@ -817,7 +859,7 @@ const deleteSchedule = async (uuid) => {
|
|||||||
/* 浮动编辑按钮 */
|
/* 浮动编辑按钮 */
|
||||||
.floating-edit-btn {
|
.floating-edit-btn {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 120rpx;
|
bottom: 180rpx;
|
||||||
right: 30rpx;
|
right: 30rpx;
|
||||||
width: 80rpx;
|
width: 80rpx;
|
||||||
height: 80rpx;
|
height: 80rpx;
|
||||||
|
|||||||
@ -27,13 +27,22 @@
|
|||||||
<view class="add-more" @click="addRange">+ 再次添加</view>
|
<view class="add-more" @click="addRange">+ 再次添加</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="range-list">
|
<view class="range-list" v-if="reason!=3">
|
||||||
<view class="range-row" v-for="(item,idx) in ranges" :key="idx">
|
<view class="range-row" v-for="(item,idx) in ranges" :key="idx">
|
||||||
<uni-datetime-picker type="daterange" value="item" :start="start" @change="(e)=>handleChange(e,idx)" />
|
<uni-datetime-picker type="daterange" value="item" :start="start" @change="(e)=>handleChange(e,idx)" />
|
||||||
<uni-icons type="minus" size="30" color="#8B2316" @click="removeRange(idx)" v-if="idx > 0"></uni-icons>
|
<uni-icons type="minus" size="30" color="#8B2316" @click="removeRange(idx)" v-if="idx > 0"></uni-icons>
|
||||||
|
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
<view class="range-list" v-if="reason==3">
|
||||||
|
<view class="range-row" v-for="(item,idx) in ranges" :key="idx">
|
||||||
|
<uni-datetime-picker type="date" value="item[0]" :start="start" @change="(e)=>handleChangeDate(e,idx)" />
|
||||||
|
<view class="rowbox">
|
||||||
|
<uni-data-select v-model="item[1]" placeholder="请选择时段" :localdata="rangeData" @change="(e)=>changeRangeData(e,idx)"></uni-data-select>
|
||||||
|
</view>
|
||||||
|
<uni-icons type="minus" size="30" color="#8B2316" @click="removeRange(idx)" v-if="idx > 0"></uni-icons>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 备注 -->
|
<!-- 备注 -->
|
||||||
@ -52,13 +61,65 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
|
<unidialog
|
||||||
|
:visible="noticeVisible"
|
||||||
|
:title="'公告内容'"
|
||||||
|
:cancelText="'返回修改'"
|
||||||
|
:confirmText="'确认发布'"
|
||||||
|
|
||||||
|
@close="noticeVisible=false"
|
||||||
|
@confirm="noticeConfirm"
|
||||||
|
>
|
||||||
|
<template v-slot:content>
|
||||||
|
<view class="ppt-content">
|
||||||
|
<view class="notice-row">
|
||||||
|
<view class="name">停诊原因:</view>
|
||||||
|
<view class="value" v-if="reason==1">出差</view>
|
||||||
|
<view class="value" v-if="reason==2">休假</view>
|
||||||
|
<view class="value" v-if="reason==3">临时安排</view>
|
||||||
|
<view class="value" v-if="reason==4">其他</view>
|
||||||
|
</view>
|
||||||
|
<view class="notice-row">
|
||||||
|
<view class="name">停诊时间:</view>
|
||||||
|
<view class="value">
|
||||||
|
<view class="value-item" v-for="(item,idx) in ranges" :key="idx">
|
||||||
|
<view class="value-item-date">{{ item[0] }}</view>
|
||||||
|
<view class="value-item-separator" >{{ reason==3?' ':'至' }}</view>
|
||||||
|
<view class="value-item-time">{{ item[1] }}</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view class="notice-row" v-if="remark">
|
||||||
|
<view class="name">备注:</view>
|
||||||
|
<view class="value">{{ remark }}</view>
|
||||||
|
</view>
|
||||||
|
<view class="tip">
|
||||||
|
<view class="name"></view>
|
||||||
|
<view class="value">{{date}}由医生本人发布</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</template>
|
||||||
|
</unidialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
import { onShow } from '@dcloudio/uni-app'
|
import { onShow } from '@dcloudio/uni-app'
|
||||||
|
import unidialog from '@/components/dialog/dialog.vue'
|
||||||
import navBar from '@/components/navBar/navBar.vue'
|
import navBar from '@/components/navBar/navBar.vue'
|
||||||
|
|
||||||
|
import dayjs from 'dayjs'
|
||||||
import api from '@/api/api'
|
import api from '@/api/api'
|
||||||
|
const noticeVisible = ref(false)
|
||||||
|
const date = ref(dayjs().format('YYYY年MM月DD日'))
|
||||||
|
const removeRange = (idx) => {
|
||||||
|
ranges.value.splice(idx,1)
|
||||||
|
}
|
||||||
|
const noticeConfirm = () => {
|
||||||
|
noticeVisible.value = false
|
||||||
|
addStopPatient()
|
||||||
|
}
|
||||||
|
|
||||||
const title = ref('发布停诊')
|
const title = ref('发布停诊')
|
||||||
const reason = ref(1)
|
const reason = ref(1)
|
||||||
@ -69,11 +130,20 @@ const start = ref(new Date().getTime())
|
|||||||
const end = ref( Date.now()+10*365*24*3600*1000)
|
const end = ref( Date.now()+10*365*24*3600*1000)
|
||||||
const selectReason = (val) => { reason.value = val }
|
const selectReason = (val) => { reason.value = val }
|
||||||
const addRange = () => { ranges.value.push([]) }
|
const addRange = () => { ranges.value.push([]) }
|
||||||
|
const rangeData=ref([{text:'上午',value:'上午'},{text:'下午',value:'下午'},{text:'晚上',value:'晚上'},{text:'全天',value:'全天'}])
|
||||||
|
|
||||||
const handleChange = (e,idx) => {
|
const handleChange = (e,idx) => {
|
||||||
console.log(e)
|
console.log(e)
|
||||||
ranges.value[idx] =e;
|
ranges.value[idx] =e;
|
||||||
}
|
}
|
||||||
|
const handleChangeDate = (e,idx) => {
|
||||||
|
console.log(e)
|
||||||
|
ranges.value[idx][0] =e;
|
||||||
|
}
|
||||||
|
const changeRangeData = (e,idx) => {
|
||||||
|
console.log(e)
|
||||||
|
ranges.value[idx][1] =e;
|
||||||
|
}
|
||||||
const addStopPatient = async () => {
|
const addStopPatient = async () => {
|
||||||
let date_arr=[]
|
let date_arr=[]
|
||||||
ranges.value.forEach(item=>{
|
ranges.value.forEach(item=>{
|
||||||
@ -98,24 +168,90 @@ const recordVoice = () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const submit = () => {
|
const submit = () => {
|
||||||
console.log(ranges.value)
|
console.log(ranges.value);
|
||||||
const invalid = ranges.value.some(r => r.length==0)
|
let invalid=invalid = ranges.value.some(r => !r[0] || !r[1])
|
||||||
if (invalid) {
|
if (invalid) {
|
||||||
|
if(reason.value==3){
|
||||||
|
uni.showToast({ title: '请选择停诊时间或者时间段', icon: 'none' })
|
||||||
|
return
|
||||||
|
}else{
|
||||||
uni.showToast({ title: '请选择停诊起止时间', icon: 'none' })
|
uni.showToast({ title: '请选择停诊起止时间', icon: 'none' })
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
addStopPatient()
|
|
||||||
|
}
|
||||||
|
//addStopPatient()
|
||||||
|
noticeVisible.value = true
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.stop-page { min-height: 100vh; background: #fff; }
|
.ppt-content{
|
||||||
.content-area { padding: 30rpx; margin-top: calc(var(--status-bar-height) + 44px);}
|
|
||||||
|
.tip{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-top:50rpx;
|
||||||
|
text-align: right;
|
||||||
|
color: #999;
|
||||||
|
font-size: 28rpx;
|
||||||
|
.name{
|
||||||
|
width: 160rpx;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.value{
|
||||||
|
flex: 1;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.notice-row{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 20rpx;
|
||||||
|
.value-item-separator{
|
||||||
|
min-width: 20rpx;
|
||||||
|
}
|
||||||
|
.name{
|
||||||
|
width: 160rpx;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
.value{
|
||||||
|
flex: 1;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
.value-item{
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.rowbox{
|
||||||
|
width: 250rpx;
|
||||||
|
}
|
||||||
|
.stop-page {
|
||||||
|
min-height: 100vh; background: #fff;
|
||||||
|
:deep(.uni-date){
|
||||||
|
position: relative;
|
||||||
|
z-index:99;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.content-area {
|
||||||
|
position: fixed;
|
||||||
|
overflow-y: scroll;
|
||||||
|
padding: 30rpx;
|
||||||
|
width: 100%;
|
||||||
|
z-index:1;
|
||||||
|
box-sizing: border-box;
|
||||||
|
top: calc(var(--status-bar-height) + 44px);
|
||||||
|
bottom:152rpx;
|
||||||
|
}
|
||||||
|
|
||||||
.form-section { margin-bottom: 40rpx; }
|
.form-section { margin-bottom: 40rpx; }
|
||||||
.section-head { display: flex; justify-content: space-between; align-items: center; }
|
.section-head { display: flex; justify-content: space-between; align-items: center; }
|
||||||
.section-title { display: flex; align-items: center; margin-bottom: 20rpx; }
|
.section-title { display: flex; align-items: center; margin-bottom: 20rpx; }
|
||||||
.title-text { font-size: 32rpx; color: #8B2316; font-weight: 600; }
|
.title-text { font-size: 32rpx; color: #8B2316; }
|
||||||
.required { color: #8B2316; margin-left: 6rpx; font-size: 28rpx; }
|
.required { color: #8B2316; margin-left: 6rpx; font-size: 28rpx; }
|
||||||
|
|
||||||
.reason-row { display: flex; gap: 20rpx; flex-wrap: wrap; }
|
.reason-row { display: flex; gap: 20rpx; flex-wrap: wrap; }
|
||||||
@ -129,11 +265,11 @@ const submit = () => {
|
|||||||
.to-text { color: #666; }
|
.to-text { color: #666; }
|
||||||
|
|
||||||
.remark-box { position: relative; }
|
.remark-box { position: relative; }
|
||||||
.remark { width: 100%; min-height: 220rpx; background: #f2f2f2; border-radius: 10rpx; padding: 20rpx; color: #333; }
|
.remark {box-sizing: border-box; width: 100%; min-height: 220rpx; background: #f2f2f2; border-radius: 10rpx; padding: 20rpx; color: #333; }
|
||||||
.voice-btn { position: absolute; right: 20rpx; bottom: 20rpx; width: 88rpx; height: 88rpx; border-radius: 50%; background: #8B2316; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 40rpx; }
|
.voice-btn { position: absolute; right: 20rpx; bottom: 20rpx; width: 88rpx; height: 88rpx; border-radius: 50%; background: #8B2316; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 40rpx; }
|
||||||
|
|
||||||
.bottom-actions { position: fixed; left: 0; right: 0; bottom: 0; background: #fff; padding: 30rpx; border-top: 1rpx solid #eee; }
|
.bottom-actions { position: fixed; left: 0; right: 0; bottom: 0; background: #fff; padding: 30rpx; border-top: 1rpx solid #eee; }
|
||||||
.confirm-btn { background: #8B2316; border-radius: 12rpx; padding: 24rpx 0; text-align: center; }
|
.confirm-btn { background: #8B2316; border-radius: 12rpx; padding: 24rpx 0; text-align: center; }
|
||||||
.btn-text { color: #fff; font-size: 32rpx; font-weight: 600; }
|
.btn-text { color: #fff; font-size: 32rpx; }
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|||||||
BIN
static/data_sign.png
Normal file
BIN
static/data_sign.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.7 KiB |
BIN
static/delete_icon.png
Normal file
BIN
static/delete_icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.2 KiB |
BIN
static/edit_icon.png
Normal file
BIN
static/edit_icon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
BIN
static/send_feed.png
Normal file
BIN
static/send_feed.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.7 KiB |
BIN
static/zhiyedidian.png
Normal file
BIN
static/zhiyedidian.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.8 KiB |
Loading…
x
Reference in New Issue
Block a user