|
|
|
|
@ -0,0 +1,313 @@
|
|
|
|
|
<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({
|
|
|
|
|
id: 1
|
|
|
|
|
})
|
|
|
|
|
yytjInfo.value = {
|
|
|
|
|
nmr_list: [],
|
|
|
|
|
doctor_date: "",
|
|
|
|
|
doctor_name: "",
|
|
|
|
|
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 () => {
|
|
|
|
|
const response = await $api('UserInfo')
|
|
|
|
|
$response(response, () => {
|
|
|
|
|
$store.setUser(response.data.info);
|
|
|
|
|
setDefaultInfo()
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
const mountedAction = async () => {
|
|
|
|
|
uni.showLoading({
|
|
|
|
|
title: "加载中",
|
|
|
|
|
});
|
|
|
|
|
await getUserInfo()
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
onBeforeUnmount(() => {
|
|
|
|
|
if (!status.value) {
|
|
|
|
|
$store.setYytjInfo(uni.getStorageSync("yytjInfoS"));
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const getnmrList = async () => {
|
|
|
|
|
const response = await $api("BuyInfo", buyInfo.value);
|
|
|
|
|
$response(response, () => {
|
|
|
|
|
uni.hideLoading();
|
|
|
|
|
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) => {
|
|
|
|
|
uni.showLoading({
|
|
|
|
|
title: "加载中"
|
|
|
|
|
});
|
|
|
|
|
const [year, month, day] = currentDate.value.split("-");
|
|
|
|
|
let dqmonth = m || `${year}-${month}`; //年 月份
|
|
|
|
|
let obj = {};
|
|
|
|
|
let methods = "";
|
|
|
|
|
obj = {
|
|
|
|
|
hospital: buyInfo.value.hospital,
|
|
|
|
|
person_id: buyInfo.value.person_id,
|
|
|
|
|
month: dqmonth, //月份
|
|
|
|
|
use_type: 1,
|
|
|
|
|
checkup_type_id: 1,
|
|
|
|
|
amount: 0,
|
|
|
|
|
};
|
|
|
|
|
const response = await $api("GetMonthPlanCount", obj);
|
|
|
|
|
$response(response, () => {
|
|
|
|
|
rl_list.value = [];
|
|
|
|
|
calendarShow.value = true;
|
|
|
|
|
uni.hideLoading();
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
yytjInfo.value.doctor_name = '';
|
|
|
|
|
$store.setYytjInfo(yytjInfo.value);
|
|
|
|
|
clickDoctor()
|
|
|
|
|
}
|
|
|
|
|
const changerl = (e) => {
|
|
|
|
|
let deep_date = JSON.parse(JSON.stringify(currentDate.value))
|
|
|
|
|
if (!!yytjInfo.value.doctor_name) {
|
|
|
|
|
uni.showModal({
|
|
|
|
|
title: "提示",
|
|
|
|
|
content: "已选择医生,切换日期将重新选择医生,是否继续",
|
|
|
|
|
showCancel: true,
|
|
|
|
|
success: ({
|
|
|
|
|
confirm
|
|
|
|
|
}) => {
|
|
|
|
|
if (confirm) {
|
|
|
|
|
changeDate(e)
|
|
|
|
|
} else {
|
|
|
|
|
calendarShow.value = false
|
|
|
|
|
currentDate.value = deep_date;
|
|
|
|
|
yytjInfo.value.doctor_date = e.fulldate;
|
|
|
|
|
nextTick(() => {
|
|
|
|
|
calendarShow.value = true
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
changeDate(e)
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const clickDoctor = (s) => {
|
|
|
|
|
status.value = 0;
|
|
|
|
|
let date = currentDate.value
|
|
|
|
|
uni.navigateTo({
|
|
|
|
|
url: `/pages/main/selectDoctor/selectDoctor?date=${date}`,
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
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();
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
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">
|
|
|
|
|
<uni-calendar :selected="rl_list" :startDate="getToday()" :showMonth="false" :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>
|