dev
This commit is contained in:
parent
7dc1cd81b0
commit
69d835a428
|
|
@ -11,6 +11,7 @@ export enum apiConfig{
|
||||||
*/
|
*/
|
||||||
"RegistrationDetail" ="medical/record/getDetailByRegisId",//详情
|
"RegistrationDetail" ="medical/record/getDetailByRegisId",//详情
|
||||||
"RegistrationList" ="registration/getListByType",//患者列表
|
"RegistrationList" ="registration/getListByType",//患者列表
|
||||||
|
"RegistrationChangeStatus"="registration/changeStatus",
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 科室成员信息
|
* 科室成员信息
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import Panel from "@/components/common/Panel.vue";
|
import Panel from "@/components/common/Panel.vue";
|
||||||
import {onMounted, ref} from "vue";
|
import {onMounted, ref} from "vue";
|
||||||
import {getThisWeek} from "@/utils/dateUtils.ts";
|
import {formatDateArray, getThisMonth, getThisWeek, getToday, getYesterday} from "@/utils/dateUtils.ts";
|
||||||
import {post} from "@/utils/request.ts";
|
import {post} from "@/utils/request.ts";
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
|
@ -36,18 +36,73 @@ const background = ref<any>([
|
||||||
'#FFEEEE',
|
'#FFEEEE',
|
||||||
'#E5F9FF'
|
'#E5F9FF'
|
||||||
]);
|
]);
|
||||||
|
const getDateRange = () => {
|
||||||
|
let beginTime = ''
|
||||||
|
let endTime = ''
|
||||||
|
if (curDate.value == null) {
|
||||||
|
let dateArray = selectDate.value
|
||||||
|
beginTime = dateArray[0]
|
||||||
|
endTime = dateArray[1]
|
||||||
|
} else {
|
||||||
|
const date = curDate.value?.func
|
||||||
|
beginTime = date.start
|
||||||
|
endTime = date.end
|
||||||
|
}
|
||||||
|
return {begin: beginTime, end: endTime}
|
||||||
|
}
|
||||||
const getRevenueOverview = () => {
|
const getRevenueOverview = () => {
|
||||||
const thisWeek = getThisWeek();
|
let date=getDateRange()
|
||||||
post("statistics/getRevenueOverview", {beginTime: thisWeek.start, endTime: thisWeek.end}).then((res: any) => {
|
post("statistics/getRevenueOverview", {
|
||||||
|
beginTime: date.begin,
|
||||||
|
endTime: date.end}).then((res: any) => {
|
||||||
if (res.payTypeRevenue.length === 0) return
|
if (res.payTypeRevenue.length === 0) return
|
||||||
payTypeRevenue.value = res.payTypeRevenue
|
payTypeRevenue.value = res.payTypeRevenue
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
|
const dataSelector = [
|
||||||
|
{name: '今天', func: getToday()},
|
||||||
|
{name: '昨天', func: getYesterday()},
|
||||||
|
{name: '本周', func: getThisWeek()},
|
||||||
|
{name: '本月', func: getThisMonth()},
|
||||||
|
]
|
||||||
|
const selectDate = ref();
|
||||||
|
const curDate = ref<any>(dataSelector[0])
|
||||||
|
const changeCheckDate = (dateItem: any) => {
|
||||||
|
curDate.value = dateItem
|
||||||
|
selectDate.value = null
|
||||||
|
getRevenueOverview()
|
||||||
|
}
|
||||||
|
const changeDate = (date: any) => {
|
||||||
|
curDate.value = null
|
||||||
|
selectDate.value = formatDateArray(date)
|
||||||
|
getRevenueOverview()
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<Panel title="支付明细" class="detail-price">
|
<Panel title="支付明细" class="detail-price">
|
||||||
|
<template #tools>
|
||||||
|
<div class="time">
|
||||||
|
<div class="time_box"
|
||||||
|
v-for="(item,index) in dataSelector"
|
||||||
|
:key="index"
|
||||||
|
:class="{active:curDate?.name==item.name}"
|
||||||
|
@click="changeCheckDate(item)"
|
||||||
|
>
|
||||||
|
<span>{{ item.name }}</span>
|
||||||
|
</div>
|
||||||
|
<el-date-picker
|
||||||
|
v-model="selectDate"
|
||||||
|
type="daterange"
|
||||||
|
@change="changeDate"
|
||||||
|
range-separator="-"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
style="margin-left: 24px"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
<div class="detail-price-content">
|
<div class="detail-price-content">
|
||||||
<div class="detail-price-content-item" v-for="(item,index) in payTypeRevenue"
|
<div class="detail-price-content-item" v-for="(item,index) in payTypeRevenue"
|
||||||
:style="`background:${background[index]}`">
|
:style="`background:${background[index]}`">
|
||||||
|
|
@ -63,6 +118,30 @@ const getRevenueOverview = () => {
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
|
.time {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.time_box {
|
||||||
|
padding: 0 5px;
|
||||||
|
height: 30px;
|
||||||
|
border: 1px solid #d7d9da;
|
||||||
|
color: #000;
|
||||||
|
font-size: 15px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
cursor: pointer;
|
||||||
|
&:hover {
|
||||||
|
color: #fff;
|
||||||
|
background: #409EFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.active{
|
||||||
|
color: #fff !important;
|
||||||
|
background: #409EFF;
|
||||||
|
}
|
||||||
.detail-price {
|
.detail-price {
|
||||||
height: 194px;
|
height: 194px;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,8 @@ const isExpire = (item: any) => {
|
||||||
</template>
|
</template>
|
||||||
<div style="padding: 0 24px 24px">
|
<div style="padding: 0 24px 24px">
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<div class="item" style="margin-right: 8px" v-for="(item,index) in expireDateWarningList" :class="isExpire(item) ? 'item__danger' : 'item__warn'">
|
<div class="item" style="margin-right: 8px" v-for="(item,index) in expireDateWarningList"
|
||||||
|
:class="isExpire(item) ? 'item__danger' : 'item__warn'">
|
||||||
<div class="image"/>
|
<div class="image"/>
|
||||||
<div class="item-content">
|
<div class="item-content">
|
||||||
<el-tooltip
|
<el-tooltip
|
||||||
|
|
@ -53,9 +54,12 @@ const isExpire = (item: any) => {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="item-right" style="margin-right: 10px">
|
<div class="item-right" style="margin-right: 10px">
|
||||||
<div v-if="item.remaining_days<0">已过期<span class="item-right-num">{{
|
<div v-if="item.remaining_days<0">
|
||||||
Math.abs(item.remaining_days)
|
已过期
|
||||||
}}</span>天
|
<span class="item-right-num">{{
|
||||||
|
Math.abs(item.remaining_days) > 99 ? '99+' : Math.abs(item.remaining_days)
|
||||||
|
}}</span>
|
||||||
|
天
|
||||||
</div>
|
</div>
|
||||||
<div v-else>剩余<span class="item-right-num">{{ Math.abs(item.remaining_days) }}</span>天
|
<div v-else>剩余<span class="item-right-num">{{ Math.abs(item.remaining_days) }}</span>天
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -79,15 +83,18 @@ const isExpire = (item: any) => {
|
||||||
background-image: url("/static/images/home/danger.png");
|
background-image: url("/static/images/home/danger.png");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-right {
|
.item-right {
|
||||||
color: #FF282E;
|
color: #FF282E;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.item__warn {
|
.item__warn {
|
||||||
.image {
|
.image {
|
||||||
background-image: url("/static/images/home/warn.png");
|
background-image: url("/static/images/home/warn.png");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-right {
|
.item-right {
|
||||||
color: #F69C51;
|
color: #F69C51;
|
||||||
|
|
||||||
|
|
@ -116,6 +123,7 @@ const isExpire = (item: any) => {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
|
|
||||||
.item-name {
|
.item-name {
|
||||||
|
width: 80px;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #333333;
|
color: #333333;
|
||||||
|
|
@ -137,7 +145,8 @@ const isExpire = (item: any) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
.item-right {
|
.item-right {
|
||||||
width: 100px;
|
width: 120px;
|
||||||
|
display: flex;
|
||||||
.item-right-num {
|
.item-right-num {
|
||||||
font-size: 28px;
|
font-size: 28px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,18 @@
|
||||||
<template>
|
<template>
|
||||||
<Panel :title="'就诊队列'" style="height: 100%">
|
<Panel :title="'就诊队列'" style="height: 100%">
|
||||||
|
<template #tools>
|
||||||
|
<div @click="setDate">{{selectedDateStr}}</div>
|
||||||
|
<el-date-picker
|
||||||
|
v-model="selectedDate"
|
||||||
|
type="date"
|
||||||
|
placeholder="选择日期"
|
||||||
|
ref="datePickerRef"
|
||||||
|
format="YYYY-MM-DD"
|
||||||
|
value-format="YYYY-MM-DD"
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
<div class="panel-content" style="display: flex;flex-direction: column;height: 100%">
|
<div class="panel-content" style="display: flex;flex-direction: column;height: 100%">
|
||||||
|
|
||||||
<div class="tabs">
|
<div class="tabs">
|
||||||
<span v-for="(item,index) in statusList" :class="curStatus == item.status ? 'tabs-item' : ''"
|
<span v-for="(item,index) in statusList" :class="curStatus == item.status ? 'tabs-item' : ''"
|
||||||
@click="clickTab(item)">{{ item.label }} {{ item.num }}</span>
|
@click="clickTab(item)">{{ item.label }} {{ item.num }}</span>
|
||||||
|
|
@ -33,22 +45,31 @@
|
||||||
</Panel>
|
</Panel>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
|
||||||
import {nextTick, onMounted, ref, watch} from "vue";
|
import {nextTick, onMounted, ref, watch} from "vue";
|
||||||
import Panel from "@/components/common/Panel.vue";
|
import Panel from "@/components/common/Panel.vue";
|
||||||
import {post} from "@/utils/request.ts";
|
import {post} from "@/utils/request.ts";
|
||||||
import {formatListTime, getToday, getThisMonth} from "@/utils/dateUtils.ts";
|
import {formatListTime, getToday, getThisMonth, getCurrentDate, getEndOfDay} from "@/utils/dateUtils.ts";
|
||||||
import {apiConfig} from "@/assets/config/apiConfig.ts";
|
import {apiConfig} from "@/assets/config/apiConfig.ts";
|
||||||
import {ElMessageBox} from "element-plus";
|
import {ElMessageBox} from "element-plus";
|
||||||
const curStatus = ref(1)
|
const curStatus = ref(1)
|
||||||
const search = ref('')
|
const search = ref('')
|
||||||
const curItem = ref<any>('')
|
const curItem = ref<any>('')
|
||||||
|
const selectedDate:any = ref('')
|
||||||
|
const selectedDateStr:any = ref('')
|
||||||
const emit = defineEmits(['clickItem', 'changeTab'])
|
const emit = defineEmits(['clickItem', 'changeTab'])
|
||||||
|
const datePickerRef = ref()
|
||||||
const clickTab = (item: any) => {
|
const clickTab = (item: any) => {
|
||||||
curStatus.value = item.status
|
curStatus.value = item.status
|
||||||
emit('changeTab')
|
emit('changeTab')
|
||||||
curItem.value = {}
|
curItem.value = {}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
const setDate=function (){
|
||||||
|
if (datePickerRef.value) {
|
||||||
|
datePickerRef.value.handleOpen()
|
||||||
|
}
|
||||||
|
}
|
||||||
const list = ref<any>([])
|
const list = ref<any>([])
|
||||||
const statusList = ref<any>([
|
const statusList = ref<any>([
|
||||||
{
|
{
|
||||||
|
|
@ -69,6 +90,7 @@ const statusList = ref<any>([
|
||||||
])
|
])
|
||||||
const itemId = defineModel()
|
const itemId = defineModel()
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
selectedDate.value=getCurrentDate()
|
||||||
initStatusList()
|
initStatusList()
|
||||||
curItem.value = itemId
|
curItem.value = itemId
|
||||||
if(curStatus.value==1){
|
if(curStatus.value==1){
|
||||||
|
|
@ -76,23 +98,32 @@ onMounted(() => {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
const loading = ref(true)
|
const loading = ref(true)
|
||||||
const init = () => {
|
const init = async () => {
|
||||||
|
selectedDateStr.value=setDateTip()
|
||||||
loading.value = true
|
loading.value = true
|
||||||
post(apiConfig.RegistrationList, {
|
try{
|
||||||
|
let data:any=await post(apiConfig.RegistrationList, {
|
||||||
query: {
|
query: {
|
||||||
status: curStatus.value,
|
status: curStatus.value,
|
||||||
beginTime: '2024-05-07 23:59:59',
|
beginTime: selectedDate.value,
|
||||||
endTime: data.value.end
|
endTime: getEndOfDay(new Date(selectedDate.value))
|
||||||
}
|
}
|
||||||
}).then((res: any) => {
|
}, {catch_error:true});
|
||||||
|
|
||||||
|
list.value=data.list
|
||||||
|
}
|
||||||
|
catch (e){
|
||||||
|
|
||||||
|
}finally {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
list.value = res.list
|
}
|
||||||
initStatusList()
|
initStatusList()
|
||||||
})
|
|
||||||
}
|
}
|
||||||
const data = ref<any>(getToday())
|
const data = ref<any>(getToday())
|
||||||
const initStatusList = () => {
|
const initStatusList = () => {
|
||||||
post('statistics/getTipCount', {beginTime: '2024-05-07 23:59:59', endTime: data.value.end}).then((res: any) => {
|
post('statistics/getTipCount', {
|
||||||
|
beginTime: selectedDate.value,
|
||||||
|
endTime: getEndOfDay(new Date(selectedDate.value))}).then((res: any) => {
|
||||||
statusList.value[0].num = res.waitDiagnosisCount
|
statusList.value[0].num = res.waitDiagnosisCount
|
||||||
statusList.value[1].num = res.diagnosingCount
|
statusList.value[1].num = res.diagnosingCount
|
||||||
statusList.value[2].num = res.completeDiaCount
|
statusList.value[2].num = res.completeDiaCount
|
||||||
|
|
@ -126,14 +157,37 @@ const changeCurItemOrStatus = (item:any, status:any) => {
|
||||||
if (curStatus != null){
|
if (curStatus != null){
|
||||||
curStatus.value = status
|
curStatus.value = status
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
defineExpose({changeCurItemOrStatus})
|
defineExpose({changeCurItemOrStatus})
|
||||||
watch(() => curStatus.value, () => {
|
watch(() => curStatus.value, () => {
|
||||||
console.log('status', curStatus.value)
|
|
||||||
init() // 重新初始化数据
|
init() // 重新初始化数据
|
||||||
})
|
})
|
||||||
|
const setDateTip=()=>{
|
||||||
|
const seletctedDateObj = new Date(selectedDate.value);
|
||||||
|
//如果选择的日期是今天
|
||||||
|
if(seletctedDateObj.getFullYear()==new Date().getFullYear() && seletctedDateObj.getMonth()==new Date().getMonth() && seletctedDateObj.getDate()==new Date().getDate()){
|
||||||
|
return '今天'
|
||||||
|
}
|
||||||
|
if(seletctedDateObj.getFullYear()==new Date().getFullYear() && seletctedDateObj.getMonth()==new Date().getMonth() && seletctedDateObj.getDate()==new Date().getDate()-1){
|
||||||
|
return '昨天'
|
||||||
|
}
|
||||||
|
//如果为今年
|
||||||
|
if(seletctedDateObj.getFullYear()==new Date().getFullYear()){
|
||||||
|
return `${seletctedDateObj.getMonth()+1}-${seletctedDateObj.getDate()}`
|
||||||
|
}
|
||||||
|
return seletctedDateObj.getFullYear();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
watch(() => selectedDate.value, (newValue, oldValue) => {
|
||||||
|
if(newValue==oldValue){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if(newValue==null){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
init()
|
||||||
|
})
|
||||||
</script>
|
</script>
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.tabs {
|
.tabs {
|
||||||
|
|
@ -272,5 +326,13 @@ watch(() => curStatus.value, () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
:deep(.el-input){
|
||||||
|
visibility: hidden;
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 50px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
@ -21,12 +21,12 @@
|
||||||
<el-descriptions-item label="姓名">
|
<el-descriptions-item label="姓名">
|
||||||
<el-form-item prop="name" style="margin-bottom: 2px">
|
<el-form-item prop="name" style="margin-bottom: 2px">
|
||||||
<el-input v-model="edit_data.name" placeholder="请输入姓名" clearable
|
<el-input v-model="edit_data.name" placeholder="请输入姓名" clearable
|
||||||
:disabled="edit_data.status==1||edit_data.status==3"></el-input>
|
:disabled="edit_data.status==1||edit_data.status==3||edit_data.status==0"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="性别">
|
<el-descriptions-item label="性别">
|
||||||
<el-form-item prop="gender">
|
<el-form-item prop="gender">
|
||||||
<el-radio-group v-model="edit_data.gender" :disabled="edit_data.status==1||edit_data.status==3">
|
<el-radio-group v-model="edit_data.gender" :disabled="edit_data.status==1||edit_data.status==3||edit_data.status==0">
|
||||||
<el-radio :value="1">男</el-radio>
|
<el-radio :value="1">男</el-radio>
|
||||||
<el-radio :value="2">女</el-radio>
|
<el-radio :value="2">女</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
|
|
@ -35,12 +35,12 @@
|
||||||
<el-descriptions-item label="年龄">
|
<el-descriptions-item label="年龄">
|
||||||
<el-form-item prop="age">
|
<el-form-item prop="age">
|
||||||
<el-input v-model.number="edit_data.age" placeholder="请输入年龄"
|
<el-input v-model.number="edit_data.age" placeholder="请输入年龄"
|
||||||
:disabled="edit_data.status==1||edit_data.status==3"></el-input>
|
:disabled="edit_data.status==1||edit_data.status==3||edit_data.status==0"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="手机号">
|
<el-descriptions-item label="手机号">
|
||||||
<el-form-item prop="phone">
|
<el-form-item prop="phone">
|
||||||
<el-input v-model="edit_data.phone" placeholder="手机号" :disabled="edit_data.status==3"></el-input>
|
<el-input v-model="edit_data.phone" placeholder="手机号" :disabled="edit_data.status==3||edit_data.status==0"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
<el-descriptions-item label="医生">
|
<el-descriptions-item label="医生">
|
||||||
|
|
@ -49,7 +49,7 @@
|
||||||
v-model="edit_data.organizationDoctorId"
|
v-model="edit_data.organizationDoctorId"
|
||||||
placeholder="请选择医生"
|
placeholder="请选择医生"
|
||||||
@change="getSectionList"
|
@change="getSectionList"
|
||||||
:disabled="edit_data.status==3"
|
:disabled="edit_data.status==3||edit_data.status==0"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in doctorList"
|
v-for="item in doctorList"
|
||||||
|
|
@ -66,7 +66,7 @@
|
||||||
<el-select
|
<el-select
|
||||||
v-model="edit_data.organizationSectionId"
|
v-model="edit_data.organizationSectionId"
|
||||||
placeholder="选择科室"
|
placeholder="选择科室"
|
||||||
:disabled="edit_data.status==3"
|
:disabled="edit_data.status==3||edit_data.status==0"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in sectionList"
|
v-for="item in sectionList"
|
||||||
|
|
@ -82,7 +82,7 @@
|
||||||
<el-descriptions-item label="证件类型">
|
<el-descriptions-item label="证件类型">
|
||||||
<el-form-item prop="certType">
|
<el-form-item prop="certType">
|
||||||
<el-select v-model="edit_data.certType" placeholder="证件类型"
|
<el-select v-model="edit_data.certType" placeholder="证件类型"
|
||||||
:disabled="edit_data.status==1||edit_data.status==3">
|
:disabled="edit_data.status==1||edit_data.status==3||edit_data.status==0">
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in certTypeList"
|
v-for="item in certTypeList"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
|
|
@ -95,14 +95,14 @@
|
||||||
<el-descriptions-item label="证件码">
|
<el-descriptions-item label="证件码">
|
||||||
<el-form-item prop="certNo">
|
<el-form-item prop="certNo">
|
||||||
<el-input v-model="edit_data.certNo" placeholder="请输入证件码"
|
<el-input v-model="edit_data.certNo" placeholder="请输入证件码"
|
||||||
:disabled="edit_data.status==1||edit_data.status==3"></el-input>
|
:disabled="edit_data.status==1||edit_data.status==3||edit_data.status==0"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
|
|
||||||
|
|
||||||
<el-descriptions-item label="初/复诊">
|
<el-descriptions-item label="初/复诊">
|
||||||
<el-form-item prop="visitType">
|
<el-form-item prop="visitType">
|
||||||
<el-select v-model="edit_data.visitType" placeholder="就诊类型">
|
<el-select v-model="edit_data.visitType" placeholder="就诊类型" :disabled="edit_data.status==0">
|
||||||
<el-option label="初诊" :value="0"></el-option>
|
<el-option label="初诊" :value="0"></el-option>
|
||||||
<el-option label="复诊" :value="1"></el-option>
|
<el-option label="复诊" :value="1"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|
@ -111,7 +111,7 @@
|
||||||
<el-descriptions-item
|
<el-descriptions-item
|
||||||
label="备注">
|
label="备注">
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-input v-model="edit_data.memo" placeholder="备注"></el-input>
|
<el-input v-model="edit_data.memo" placeholder="备注" :disabled="edit_data.status==0"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-descriptions-item>
|
</el-descriptions-item>
|
||||||
</el-descriptions>
|
</el-descriptions>
|
||||||
|
|
@ -143,10 +143,10 @@
|
||||||
|
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="bottom">
|
<div class="bottom">
|
||||||
<el-dropdown v-if="isShowCard" placement="top-start" @show="showCardBtn" @hide="hide">
|
<el-dropdown v-if="isShowCard" placement="top-start" @show="showCardBtn" @hide="hide" :disabled="edit_data.status==0">
|
||||||
<div class="left" style="outline: none;">
|
<div class="left" style="outline: none;">
|
||||||
<span class="btnCard" type="primary">
|
<span class="btnCard" type="primary">
|
||||||
<img class="image" src="/static/images/registration/card.png" alt="" srcset="">进行读卡
|
<img class="image" src="/static/images/registration/card.png" alt="" srcset="">{{edit_data.status==0?'不能读卡':'进行读卡'}}
|
||||||
<img class="image1" :src="'/static/images/registration/'+(showBtn?2:1)+'.png'" alt="" srcset="">
|
<img class="image1" :src="'/static/images/registration/'+(showBtn?2:1)+'.png'" alt="" srcset="">
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -160,9 +160,9 @@
|
||||||
退出医保
|
退出医保
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom-right">
|
<div class="bottom-right">
|
||||||
<el-button type="primary" @click="save">保存</el-button>
|
<el-button type="primary" @click="save" :disabled="edit_data.status==0">保存</el-button>
|
||||||
<el-button @click="close">取消</el-button>
|
<el-button @click="close">取消</el-button>
|
||||||
<el-button v-if="edit_data.status==1" type="danger" @click="deleteDetail">退号</el-button>
|
<el-button v-if="edit_data.status==1" type="danger" @click="registrationCancel">退号</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -181,7 +181,6 @@ import insutypes from "@/assets/config/directory/insutypes.json"
|
||||||
import depts from "@/assets/config/directory/depts.json";
|
import depts from "@/assets/config/directory/depts.json";
|
||||||
import {apiConfig} from "@/assets/config/apiConfig.ts";
|
import {apiConfig} from "@/assets/config/apiConfig.ts";
|
||||||
|
|
||||||
|
|
||||||
const height = ref(470)
|
const height = ref(470)
|
||||||
const certTypeList = ref<any>(
|
const certTypeList = ref<any>(
|
||||||
Object.entries(psnCertTypes)
|
Object.entries(psnCertTypes)
|
||||||
|
|
@ -255,7 +254,7 @@ const save = () => {
|
||||||
mdtrtCertNo: socialCard.value.mdtrtCertNo,
|
mdtrtCertNo: socialCard.value.mdtrtCertNo,
|
||||||
mdtrtCertType: socialCard.value.mdtrtCertType
|
mdtrtCertType: socialCard.value.mdtrtCertType
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
ElMessage.success('新建成功')
|
ElMessage.success('挂号成功')
|
||||||
close()
|
close()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
@ -263,9 +262,10 @@ const save = () => {
|
||||||
})
|
})
|
||||||
|
|
||||||
}
|
}
|
||||||
const deleteDetail = () => {
|
//退出挂号
|
||||||
post('registration/delete', {id: edit_data.value.id}).then(() => {
|
const registrationCancel = () => {
|
||||||
ElMessage.success('删除成功')
|
post(apiConfig.RegistrationChangeStatus, {id: edit_data.value.id, status: 0}).then(() => {
|
||||||
|
ElMessage.success('退号成功')
|
||||||
close()
|
close()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
:type="scope.row.status === 1 ? 'warning' : scope.row.status === 2 ? 'success' : scope.row.status === 3 ? 'info' : 'danger'"
|
:type="scope.row.status === 1 ? 'warning' : scope.row.status === 2 ? 'success' : scope.row.status === 3 ? 'info' : 'danger'"
|
||||||
>
|
>
|
||||||
{{
|
{{
|
||||||
scope.row.status === 1 ? '待诊' : scope.row.status === 2 ? '在诊' : scope.row.status === 3 ? '已诊' : '-'
|
scope.row.status === 1 ? '待诊' : scope.row.status === 2 ? '在诊' : scope.row.status === 3 ? '已诊' : scope.row.status ===0 ? '已取消' : '-'
|
||||||
}}
|
}}
|
||||||
</el-tag>
|
</el-tag>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
:class="{active:curDate?.name==item.name}"
|
:class="{active:curDate?.name==item.name}"
|
||||||
@click="changeCheckDate(item)"
|
@click="changeCheckDate(item)"
|
||||||
>
|
>
|
||||||
<span :style="{color:curDate?.name==item.name?'#000':''}">{{ item.name }}</span>
|
<span>{{ item.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="selectDate"
|
v-model="selectDate"
|
||||||
|
|
@ -120,48 +120,6 @@ const dataSelector = [
|
||||||
{name: '本周', func: getThisWeek()},
|
{name: '本周', func: getThisWeek()},
|
||||||
{name: '本月', func: getThisMonth()},
|
{name: '本月', func: getThisMonth()},
|
||||||
]
|
]
|
||||||
const changeCheck = (index: number) => {
|
|
||||||
changeNum.value = index
|
|
||||||
timeList.value = []
|
|
||||||
const now = new Date();
|
|
||||||
const year = now.getFullYear();
|
|
||||||
let month = String(now.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需要加1
|
|
||||||
const day = String(now.getDate()).padStart(2, '0'); // 获取当前日
|
|
||||||
if (index == 0) {
|
|
||||||
const day1 = String(now.getDate() + 1).padStart(2, '0'); // 获取当前日
|
|
||||||
beginTime.value = `${year}-${month}-${day}`;
|
|
||||||
endTime.value = `${year}-${month}-${day1}`
|
|
||||||
}
|
|
||||||
if (index == 1) {
|
|
||||||
const yesterday = new Date(now);
|
|
||||||
yesterday.setDate(now.getDate() - 1);// 设置日期到昨天
|
|
||||||
const yesterday_year = yesterday.getFullYear();
|
|
||||||
const yesterday_month = String(yesterday.getMonth() + 1).padStart(2, '0'); // 月份从 0 开始,需要加 1
|
|
||||||
const yesterday_day = String(yesterday.getDate()).padStart(2, '0');
|
|
||||||
beginTime.value = `${yesterday_year}-${yesterday_month}-${yesterday_day}`;
|
|
||||||
endTime.value = `${year}-${month}-${day}`
|
|
||||||
}
|
|
||||||
if (index == 2) {
|
|
||||||
const dayOfWeek = now.getDay(); // 获取今天是周几,0 表示周日,1 表示周一,以此类推
|
|
||||||
const diff = now.getDate() - dayOfWeek + (dayOfWeek === 0 ? -6 : 1); // 计算本周一的日期
|
|
||||||
const startOfWeek = new Date(now.setDate(diff));// 设置日期到本周一
|
|
||||||
const beginYear = startOfWeek.getFullYear();
|
|
||||||
const beginMonth = String(startOfWeek.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需要加1
|
|
||||||
const beginDay = String(startOfWeek.getDate()).padStart(2, '0'); // 获取当前日
|
|
||||||
beginTime.value = `${beginYear}-${beginMonth}-${beginDay}`;
|
|
||||||
endTime.value = `${year}-${month}-${day}`;
|
|
||||||
}
|
|
||||||
if (index == 3) {
|
|
||||||
// 本月的第一天
|
|
||||||
let startOfMonth = new Date(now.getFullYear(), now.getMonth(), 1);
|
|
||||||
const startYear = startOfMonth.getFullYear();
|
|
||||||
const startMonth = String(startOfMonth.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需要加1
|
|
||||||
const startDay = String(startOfMonth.getDate()).padStart(2, '0');
|
|
||||||
beginTime.value = `${startYear}-${startMonth}-${startDay}`;
|
|
||||||
endTime.value = `${year}-${month}-${day}`;
|
|
||||||
}
|
|
||||||
initChart();
|
|
||||||
}
|
|
||||||
const formatDate = (dateString: any) => {
|
const formatDate = (dateString: any) => {
|
||||||
const date = new Date(dateString);
|
const date = new Date(dateString);
|
||||||
const year = date.getFullYear();
|
const year = date.getFullYear();
|
||||||
|
|
@ -169,11 +127,6 @@ const formatDate = (dateString: any) => {
|
||||||
const day = String(date.getDate()).padStart(2, '0');
|
const day = String(date.getDate()).padStart(2, '0');
|
||||||
return `${year}-${month}-${day}`;
|
return `${year}-${month}-${day}`;
|
||||||
};
|
};
|
||||||
const changeTime = () => {
|
|
||||||
beginTime.value = formatDate(timeList.value[0])
|
|
||||||
endTime.value = formatDate(timeList.value[1])
|
|
||||||
initChart()
|
|
||||||
}
|
|
||||||
// 创建 ref 引用
|
// 创建 ref 引用
|
||||||
const centerRef = ref<HTMLElement | null>(null)
|
const centerRef = ref<HTMLElement | null>(null)
|
||||||
const centerItemRef = ref<HTMLElement | null>(null)
|
const centerItemRef = ref<HTMLElement | null>(null)
|
||||||
|
|
@ -396,11 +349,21 @@ const changeCheckDate = (dateItem: any) => {
|
||||||
padding: 0 5px;
|
padding: 0 5px;
|
||||||
height: 30px;
|
height: 30px;
|
||||||
border: 1px solid #d7d9da;
|
border: 1px solid #d7d9da;
|
||||||
color: #d7d9da;
|
color: #000;
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
cursor: pointer;
|
||||||
|
&:hover {
|
||||||
|
color: #fff;
|
||||||
|
background: #409EFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.active{
|
||||||
|
color: #fff !important;
|
||||||
|
background: #409EFF;
|
||||||
}
|
}
|
||||||
.container {
|
.container {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
@ -498,10 +461,12 @@ const changeCheckDate = (dateItem: any) => {
|
||||||
.statistics-chart {
|
.statistics-chart {
|
||||||
height: 382px;
|
height: 382px;
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
||||||
.business-map {
|
.business-map {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
margin-right: 24px;
|
margin-right: 24px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.consumption-map {
|
.consumption-map {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -121,3 +121,11 @@ export const getEndOfDay = (date: Date | string): string => {
|
||||||
dateDetail.setHours(23, 59, 59, 0); // 设置为当天 23:59:00
|
dateDetail.setHours(23, 59, 59, 0); // 设置为当天 23:59:00
|
||||||
return formatDate(dateDetail).slice(0, 19); //
|
return formatDate(dateDetail).slice(0, 19); //
|
||||||
};
|
};
|
||||||
|
export const getCurrentDate=()=> {
|
||||||
|
const date = new Date();
|
||||||
|
const year = date.getFullYear();
|
||||||
|
// 月份从0开始,所以要加1
|
||||||
|
const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需要+1并补0
|
||||||
|
const day = String(date.getDate()).padStart(2, '0'); // 补0操作
|
||||||
|
return `${year}-${month}-${day}`;
|
||||||
|
}
|
||||||
|
|
@ -139,7 +139,7 @@ const clickItem = (item: any) => {
|
||||||
}
|
}
|
||||||
const medicalQueueRef =ref();
|
const medicalQueueRef =ref();
|
||||||
const cancelReception = () => {
|
const cancelReception = () => {
|
||||||
post('registration/changeStatus', {id: registerId.value, status: 1}).then((res: any) => {
|
post(apiConfig.RegistrationChangeStatus, {id: registerId.value, status: 1}).then((res: any) => {
|
||||||
medicalQueueRef.value?.changeCurItemOrStatus(res,1);
|
medicalQueueRef.value?.changeCurItemOrStatus(res,1);
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
<script setup lang="ts">
|
|
||||||
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<template>
|
|
||||||
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
|
|
||||||
</style>
|
|
||||||
Loading…
Reference in New Issue