You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

265 lines
7.7 KiB
Vue

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<script setup>
/**
* name
* useryytjsj
* date2024年9月25日 10:25:00
*/
import {
ref
} from 'vue'
import {
$api,
$response,
$image
} from '@/api'
import {
onShow
} from '@dcloudio/uni-app'
import {
useStore
} from '@/store'
const $store = useStore()
const dqDate = ref('')
const doctor_name = ref('')
const $props = defineProps({
});
const mountedAction = () => {
uni.showLoading({
title: "加载中",
});
console.log($store.getYytjInfo(), '123123')
doctor_name.value = $store.getYytjInfo().name || ''; //选择体检医生
// if (dqDate.value) {
getnmrList(); //
// }
}
const date_list = ref(false)
const time_list = ref(false)
const currentDate = ref(0)
const currentTime = ref(0)
const currentXmmcObj = ref(false) //当前选中体检项目对象
const nmr_list = ref(false) //当前项目列表
const getnmrList = async () => {
console.log($store, 'store')
let obj = {
"hospital": 1,
"combo_id": "2053",
"item_ids": ["2074", "2075"],
"person_id": 1,
"group_id": null,
"integral": 50,
"save_money": 100,
"coupon_id": 1
};
const response = await $api("BuyInfo", obj);
$response(response, () => {
currentDate.value = getToday(); //huo获取今天的日期
nmr_list.value = response.data.nmr_list || false;
nmr_list.value[0].rq = currentDate.value
console.log(nmr_list.value, 'data.nmr_list')
xmmcClick(nmr_list.value[0]) //默认当前对象
getTjTimeList()
uni.hideLoading();
});
}
const getToday = () => {
// 获取当前日期
var today = new Date();
// 获取年、月、日
var year = today.getFullYear(); // 年
var month = (today.getMonth() + 1).toString().padStart(2, '0'); // 月月份是从0开始的所以要+1并使用padStart补零
var day = today.getDate().toString().padStart(2, '0'); // 日使用padStart补零
// 拼接日期字符串
return year + '-' + month + '-' + day;
}
const getTjTimeList = async () => {
console.log(currentDate.value)
// 获取 体检号源
let obj = {
"hospital": "1",
"person_id": "1",
"date": "2024-08-17", //currentDate.value
"use_type": 1,
"checkup_type_id": 1,
"amount": "500"
};
const response = await $api("GetDayPlanList", obj);
$response(response, () => {
console.log(response, 'response')
currentXmmcObj.value['sj'] = ''; //每次请求新的时间时间置空
currentTime.value = ''
date_list.value = response.data.weeklist;
time_list.value = response.data.list;
time_list.value.forEach((item) => {
console.log(item.date)
item.newTime = item.time.slice(0, 5);
})
date_list.value.forEach((item) => {
const [year, month, day] = item.date.split('-');
item.newMonthDate = `${month}/${day}`; //月份日期
item.newWeek = item.xingqi.replace("星期", "周")
})
uni.hideLoading();
});
};
const getCurrentClick = (item, i) => {
console.log(item, i) //当前日期和星期
currentDate.value = item.date
let obj = {}
getTjTimeList() //带着选中的日期重新选择
}
const getCurrentTime = (item) => {
currentTime.value = item
currentXmmcObj.value['sj'] = item.newTime
}
const xmmcClick = (i) => {
currentXmmcObj.value = i //对象
}
const clickDoctor = () => {
//选择医生列表
uni.navigateTo({
url: `/pages/main/selectDoctor/selectDoctor?date=${'2024-08-01'}`
})
}
const comfrimyy=()=>{
uni.$lu.toast('提交成功')
}
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>
<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">
<view class="">
---------------------
</view>
<view class="">
<view class="text-30rpx text-#0E0E0E pb-34rpx">
自选项目
</view>
<view class=" text-#8B8B8B text-24rpx">
<view class="flex mb-20rpx">
妇科(化验)-<span class="flex-1 ml-10rpx text-#0E0E0E line-clamp-1"> 头瘤病毒乳头瘤病毒乳头瘤病毒乳头瘤病毒乳头瘤病毒乳头瘤病毒HPV
</span>
</view>
<view class="flex mb-20rpx">
超声科-<span class="flex-1 ml-10rpx text-#0E0E0E"> 腹部B超 </span>
</view>
<view class="flex mb-20rpx">
体检医生 -
<span class="flex-1 ml-10rpx text-#0E0E0E" @click="clickDoctor"> {{doctor_name || '请选择'}}
<span class="ml-10rpx">&gt;</span>
</span>
</view>
</view>
</view>
</view>
<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 mt-15rpx">
<view class="">
<view class="text-30rpx text-#0E0E0E pb-34rpx font-500">
{{currentXmmcObj.name || ''}}
</view>
<view class="flex" v-if="date_list">
<view class="w-15% text-center text-18rpx" v-for="(item,index) in date_list" :key="index">
<view @click="getCurrentClick(item,index)" :class="3==index?'activeTime':''"
class="rounded-12rpx pt-10rpx pb-10rpx ml-10rpx mr-10rpx mb-6rpx ">
<view> {{item.newMonthDate}} </view>
<view class="text-26rpx font-500"> {{item.newWeek}} </view>
</view>
<view class="ma">
<text class="bg-#EFEFEF rounded-10rpx h-28rpx pl-10rpx pr-10rpx">{{item.count }}</text>
</view>
</view>
<!-- <view class="w-1rpx m-20rpx bg-#E6E9E9 ml-15rpx" />
<view class="flex text-#239EA3 text-20rpx">
更多
</view> -->
</view>
<view class="w-100% h-1rpx bg-#E6E9E9 mt-18rpx" />
<view class="flex flex-wrap pt-30rpx pb-30rpx">
<view class="w-20% text-center box-border p-20rpx" v-for="(item,index) in time_list" :key="index"
@click="getCurrentTime(item)">
<view class="text-24rpx rounded-12rpx h-54rpx flex flex-items-center flex-justify-center"
:class="currentTime.newTime==item.newTime?'activeTime':''">
{{item.newTime}}
</view>
</view>
</view>
</view>
</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">
路雅思
<view class="bg-#EFEFEF rounded-15rpx p-10rpx pb-15rpx pt-15rpx mt-20rpx" v-if="nmr_list">
<view v-for="(item,index) in nmr_list" :key="index" @click="xmmcClick(item)"
:class="currentXmmcObj.name==item.name ?'acitvetc':''"
class="flex flex-justify-around p-20rpx pl-10rpx pr-10rpx rounded-15rpx">
<view class="flex-1 line-clamp-1">
{{item.name}}
</view>
<view>
{{item.rq}} <span class="ml-5rpx">{{item.sj}}</span>
<!-- 2024年12月12日 09:00 -->
</view>
</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>
.activeTime {
background-color: #239EA3;
color: #fff;
}
.acitvetc {
background-color: #E0F1F2;
}
</style>