|
|
<script setup>
|
|
|
import DraggableButton from "@/pages/components/goHome.vue";
|
|
|
/**
|
|
|
* name:
|
|
|
* user:yytjsj
|
|
|
* date:2024年9月25日 10:25:00
|
|
|
*/
|
|
|
import {
|
|
|
ref,
|
|
|
nextTick,
|
|
|
onBeforeUnmount
|
|
|
} from "vue";
|
|
|
import {
|
|
|
$api,
|
|
|
$response,
|
|
|
$image
|
|
|
} from "@/api";
|
|
|
import {
|
|
|
onShow
|
|
|
} from "@dcloudio/uni-app";
|
|
|
import {
|
|
|
useStore
|
|
|
} from "@/store";
|
|
|
const $store = useStore();
|
|
|
|
|
|
let currentDate = ref(0);
|
|
|
let buyInfo = ref({}); // 购买信息
|
|
|
let yytjInfo = ref({}); // 购买信息
|
|
|
let nmrIndex = ref(-1); // 当前选中项目索引
|
|
|
let status = ref(0); // 1:点了确定 2:未点确定
|
|
|
let calendarShow = ref(false); // 日历显示
|
|
|
const rl_list = ref(false); //日历插槽
|
|
|
const setDefaultInfo = () => {
|
|
|
yytjInfo.value = $store.getYytjInfo();
|
|
|
buyInfo.value = $store.getBuyInfo();
|
|
|
// $store.setCheckupTypeId({})
|
|
|
yytjInfo.value = {
|
|
|
nmr_list: [],
|
|
|
doctor_date: "",
|
|
|
doctor_name: "",
|
|
|
doctor_id:"",
|
|
|
nmrIndex: -1,
|
|
|
...yytjInfo.value,
|
|
|
}
|
|
|
buyInfo.value = {
|
|
|
combo_id: "",
|
|
|
duo_xuan_yi: [],
|
|
|
group_id: "",
|
|
|
hospital: 1,
|
|
|
item_ids: [],
|
|
|
person_id: $store.user.person_id,
|
|
|
wj: "",
|
|
|
...buyInfo.value,
|
|
|
}
|
|
|
getnmrList()
|
|
|
}
|
|
|
const getUserInfo = async () => {
|
|
|
uni.showLoading({
|
|
|
title: "加载中",
|
|
|
});
|
|
|
const response = await $api('UserInfo')
|
|
|
uni.hideLoading();
|
|
|
$response(response, () => {
|
|
|
$store.setUser(response.data.info);
|
|
|
setDefaultInfo()
|
|
|
})
|
|
|
}
|
|
|
const mountedAction = async () => {
|
|
|
await getUserInfo()
|
|
|
};
|
|
|
|
|
|
onBeforeUnmount(() => {
|
|
|
if (!status.value) {
|
|
|
$store.setYytjInfo(uni.getStorageSync("yytjInfoS"));
|
|
|
}
|
|
|
});
|
|
|
|
|
|
const getnmrList = async () => {
|
|
|
let date = null
|
|
|
if (!!yytjInfo.value.doctor_date) {
|
|
|
date = yytjInfo.value.doctor_date
|
|
|
currentDate.value = yytjInfo.value.doctor_date
|
|
|
} else {
|
|
|
currentDate.value = getToday();
|
|
|
yytjInfo.value.doctor_date = currentDate.value;
|
|
|
}
|
|
|
moreTime(date, 1);
|
|
|
};
|
|
|
|
|
|
const moreTime = async (m, status) => {
|
|
|
const [year, month, day] = currentDate.value.split("-");
|
|
|
let dqmonth = m || `${year}-${month}`; //年 月份
|
|
|
let obj = {};
|
|
|
let methods = "";
|
|
|
getdoctorList(`${year}-${month}`)
|
|
|
calendarShow.value = true;
|
|
|
};
|
|
|
|
|
|
const monthSwitch = (givenDate) => {
|
|
|
const currentYear = new Date().getFullYear();
|
|
|
const currentMonth = new Date().getMonth() + 1;
|
|
|
// 获取当前日期
|
|
|
if (
|
|
|
givenDate.year < currentYear ||
|
|
|
(givenDate.year === currentYear && givenDate.month < currentMonth)
|
|
|
) {
|
|
|
// uni.$lu.toast("不能选择过去时间");
|
|
|
return false;
|
|
|
} else {
|
|
|
let str = `${givenDate.year}-${givenDate.month}`;
|
|
|
moreTime(str, 0);
|
|
|
}
|
|
|
};
|
|
|
const getToday = () => {
|
|
|
var today = new Date();
|
|
|
var year = today.getFullYear();
|
|
|
var month = (today.getMonth() + 1).toString().padStart(2, "0");
|
|
|
var day = today.getDate().toString().padStart(2, "0");
|
|
|
return year + "-" + month + "-" + day;
|
|
|
};
|
|
|
const changeDate = (e) => {
|
|
|
currentDate.value = e.fulldate;
|
|
|
yytjInfo.value.doctor_date = e.fulldate;
|
|
|
$store.setYytjInfo(yytjInfo.value);
|
|
|
uni.navigateTo({
|
|
|
url: '/pages/main/combo/combo?keshi_name='+DoctorInfo.value.keshiname
|
|
|
})
|
|
|
}
|
|
|
const changerl = (e) => {
|
|
|
console.log(e)
|
|
|
if(e.extraInfo.info!=undefined && e.extraInfo.info=='出诊'){
|
|
|
changeDate(e)
|
|
|
}else{
|
|
|
uni.$lu.toast("当前日期不可预约");
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
const clickDoctor = (s) => {
|
|
|
status.value = 0;
|
|
|
let date = currentDate.value
|
|
|
|
|
|
};
|
|
|
|
|
|
const comfrimyy = () => {
|
|
|
uni.navigateTo({
|
|
|
url: '/pages/main/combo/combo'
|
|
|
})
|
|
|
};
|
|
|
|
|
|
const config_ref = ref(null);
|
|
|
const configRef = (e) => {
|
|
|
if (!config_ref.value) {
|
|
|
config_ref.value = e;
|
|
|
mountedAction();
|
|
|
}
|
|
|
};
|
|
|
let MonthList=ref([]);
|
|
|
let DoctorInfo=ref(false)
|
|
|
const getdoctorList = async (month) => {
|
|
|
// 获取 体检报告列表
|
|
|
let obj = {
|
|
|
hospital: $store.save.hospital,
|
|
|
month:month,
|
|
|
doctor_id:yytjInfo.value.doctor_id?yytjInfo.value.doctor_id:null
|
|
|
};
|
|
|
uni.showLoading({
|
|
|
title: "加载中",
|
|
|
});
|
|
|
|
|
|
const response = await $api("DoctorGetList", obj);
|
|
|
uni.hideLoading();
|
|
|
$response(response, () => {
|
|
|
console.log(response, "response");
|
|
|
response.data.list.forEach((item)=>{
|
|
|
if(item.id==yytjInfo.value.doctor_id){
|
|
|
DoctorInfo.value=item
|
|
|
}
|
|
|
})
|
|
|
|
|
|
let rlArr = [];
|
|
|
response.data.paiban.forEach((item) => {
|
|
|
let o = {
|
|
|
date: item.date,
|
|
|
info: "出诊",
|
|
|
};
|
|
|
rlArr.push(o);
|
|
|
});
|
|
|
MonthList.value = rlArr;
|
|
|
uni.hideLoading();
|
|
|
});
|
|
|
};
|
|
|
|
|
|
onShow(() => {
|
|
|
if (!!config_ref.value) {
|
|
|
mountedAction();
|
|
|
}
|
|
|
});
|
|
|
</script>
|
|
|
<template>
|
|
|
<DraggableButton />
|
|
|
<view>
|
|
|
<view v-if="!!$store.config">
|
|
|
<view :ref="configRef"></view>
|
|
|
</view>
|
|
|
<view class="h-38rpx bg-#239EA3 pl-20rpx pr-20rpx box-border">
|
|
|
<view style="box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(0, 0, 0, 0.04)"
|
|
|
class="p-16rpx pb-20rpx pt-30rpx rounded-15rpx bg-#fff ylrl" v-if="calendarShow">
|
|
|
<view class="p-10rpx" v-if="DoctorInfo">
|
|
|
<view class="flex flex-row text-#8B8B8B text-23rpx">
|
|
|
<image :src="$image(DoctorInfo.head_img)" class="w-170rpx h-226rpx mr-20rpx"></image>
|
|
|
<view class="flex-1 flex flex-col flex-justify-start pr-20rpx">
|
|
|
<view class="text-#0E0E0E text-36rpx">
|
|
|
{{ DoctorInfo.name }}
|
|
|
<span class="text-26rpx text-#515151 ml-10rpx">{{
|
|
|
DoctorInfo.level
|
|
|
}}</span>
|
|
|
</view>
|
|
|
<view class="mt-33rpx mb-10rpx line-clamp-1">
|
|
|
<text v-if="false">{{ DoctorInfo.hospital }}:</text>
|
|
|
<text>{{ DoctorInfo.time }}</text>
|
|
|
</view>
|
|
|
<view class="line-clamp-2">
|
|
|
{{ DoctorInfo.desc }}
|
|
|
</view>
|
|
|
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="w-100% h-1rpx bg-#E6E9E9 mt-15rpx" > </view>
|
|
|
</view>
|
|
|
<uni-calendar :selected="MonthList" :startDate="getToday()" :insert="true" :date="currentDate"
|
|
|
@change="changerl" @monthSwitch="monthSwitch" />
|
|
|
</view>
|
|
|
<!-- <view style="box-shadow: 0rpx 0rpx 10rpx 0rpx rgba(0, 0, 0, 0.04)"
|
|
|
class="p-30rpx pl-10rpx pr-10rpx rounded-15rpx bg-#fff mt-15rpx text-#101010 text-28rpx">
|
|
|
<view class="bg-#F7F7F7 pl-20rpx pr-20rpx pt-23rpx pb-25rpx">
|
|
|
<text>{{ $store.getUser()?.name }}</text>
|
|
|
<view class="bg-#EFEFEF rounded-15rpx p-10rpx pb-15rpx pt-15rpx mt-20rpx">
|
|
|
<view class="p-20rpx pl-10rpx pr-10rpx rounded-15rpx between" @click="clickDoctor()">
|
|
|
<text>体检医生</text>
|
|
|
<text class="ml-10rpx text-#0E0E0E center">
|
|
|
{{ yytjInfo?.doctor_name || "请选择" }}
|
|
|
<uni-icons type="right" size="14"></uni-icons>
|
|
|
</text>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="pb-100rpx">
|
|
|
<view @click="comfrimyy"
|
|
|
class="text-#fff text-32rpx rounded-45rpx bg-#239EA3 mt-40rpx ma w-520rpx h-90rpx flex flex-items-center flex-justify-center">
|
|
|
确定
|
|
|
</view>
|
|
|
</view> -->
|
|
|
</view>
|
|
|
</view>
|
|
|
</template>
|
|
|
<style scoped lang="scss">
|
|
|
.activeTime {
|
|
|
background-color: #239ea3;
|
|
|
color: #fff;
|
|
|
}
|
|
|
|
|
|
.acitvetc {
|
|
|
background-color: #e0f1f2;
|
|
|
}
|
|
|
|
|
|
::v-deep .ylrl {
|
|
|
|
|
|
.uni-calendar__header,
|
|
|
.uni-calendar__weeks-day {
|
|
|
border: none;
|
|
|
}
|
|
|
|
|
|
.uni-calendar-item--checked {
|
|
|
background-color: transparent;
|
|
|
|
|
|
.uni-calendar-item__weeks-box-item {
|
|
|
background-color: #239ea3 !important;
|
|
|
border-radius: 12rpx;
|
|
|
|
|
|
.uni-calendar-item--extra {
|
|
|
color: #fff !important;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
.uni-calendar-item--isDay {
|
|
|
background-color: #239ea3 !important;
|
|
|
border-radius: 12rpx;
|
|
|
color: #fff !important;
|
|
|
}
|
|
|
|
|
|
.uni-calendar-item--extra {
|
|
|
color: #239ea3;
|
|
|
}
|
|
|
|
|
|
.uni-calendar-item__weeks-box {
|
|
|
// padding: 10rpx;
|
|
|
box-sizing: border-box;
|
|
|
}
|
|
|
|
|
|
.uni-calendar-item__weeks-box-circle {
|
|
|
background-color: rgba(0, 0, 0, 0);
|
|
|
}
|
|
|
|
|
|
.uni-calendar-item--isDay-text {
|
|
|
color: #333;
|
|
|
}
|
|
|
|
|
|
.uni-calendar-item__weeks-box-text {
|
|
|
font-size: 26rpx;
|
|
|
}
|
|
|
|
|
|
.uni-calendar-item__weeks-lunar-text {
|
|
|
font-size: 16rpx;
|
|
|
}
|
|
|
|
|
|
.uni-calendar-item__weeks-box-item {
|
|
|
width: 100%;
|
|
|
}
|
|
|
|
|
|
.uni-calendar__backtoday {
|
|
|
display: none;
|
|
|
}
|
|
|
|
|
|
.uni-calendar-item--disable {
|
|
|
.uni-calendar-item__weeks-lunar-text {
|
|
|
display: none;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
</style> |