diff --git a/h5/config.js b/h5/config.js index 3822cc9..3b12687 100644 --- a/h5/config.js +++ b/h5/config.js @@ -1,6 +1,6 @@ const app_type = 'gzh' -const base_url="https://api.hainan2024.sa0.online" //开发环境 -//const base_url="http://124.225.137.54:39080" //正式环境 +//const base_url="https://api.hainan2024.sa0.online" //开发环境 +const base_url="http://124.225.137.54:39080" //正式环境 const config = { api_map_url: base_url+'/api/ApiMap/h5', base_assets_url: base_url, diff --git a/h5/pages.json b/h5/pages.json index d42f5a2..5148569 100644 --- a/h5/pages.json +++ b/h5/pages.json @@ -110,13 +110,6 @@ "enablePullDownRefresh": false } }, - { - "path": "pages/main/optionalProject/combo", - "style": { - "navigationBarTitleText": "套餐列表", - "enablePullDownRefresh": false - } - }, { "path": "pages/main/bgcx/bgcx", "style": { @@ -155,6 +148,12 @@ }, { "path": "pages/main/yytjsj/yytjsj", + "style": { + "navigationBarTitleText": "预约时间" + } + }, + { + "path": "pages/main/tjyy/tjyy", "style": { "navigationBarTitleText": "体检预约" } diff --git a/h5/pages/buy/choose/choose.vue b/h5/pages/buy/choose/choose.vue index f7b3ec6..73f7242 100644 --- a/h5/pages/buy/choose/choose.vue +++ b/h5/pages/buy/choose/choose.vue @@ -57,6 +57,9 @@ const buttonClick = (info) => { if (!!info.url) { + if(info.id){ + $store.setCheckupTypeId({id: info.id}); + } uni.navigateTo({ url: info.url }) diff --git a/h5/pages/main/combo/combo.vue b/h5/pages/main/combo/combo.vue index 9fe8e2c..9873e69 100644 --- a/h5/pages/main/combo/combo.vue +++ b/h5/pages/main/combo/combo.vue @@ -65,7 +65,7 @@ const getComboSelect = async () => { const combo_list = ref({ list: [], hospital: { - id: 0, + id: 1, }, doctor: { id: 0, diff --git a/h5/pages/main/optionalProject/choose.vue b/h5/pages/main/optionalProject/choose.vue index 99db269..a7434ae 100644 --- a/h5/pages/main/optionalProject/choose.vue +++ b/h5/pages/main/optionalProject/choose.vue @@ -56,12 +56,14 @@ const getGroupCombo = async (info) => { console.log(response); if (response.data.unit.length) { let data = response.data.unit[0]; + data.sex = info.sex; + data.phone = info.phone; + data.phone = info.married; $store.setGroupInfo(data); if (!data.items.length && data.tongshou_xiane > 0) { // 跳转到选择类似上 uni.navigateTo({ - url: - "/pages/main/optionalProject/selectType" + url: "/pages/main/optionalProject/selectType" }); } else { // 跳转到团检自选 diff --git a/h5/pages/main/optionalProject/combo.vue b/h5/pages/main/optionalProject/combo.vue deleted file mode 100644 index 7ba98b8..0000000 --- a/h5/pages/main/optionalProject/combo.vue +++ /dev/null @@ -1,709 +0,0 @@ - - - \ No newline at end of file diff --git a/h5/pages/main/optionalProject/optionalDetails.vue b/h5/pages/main/optionalProject/optionalDetails.vue index 283e36f..a04d09d 100644 --- a/h5/pages/main/optionalProject/optionalDetails.vue +++ b/h5/pages/main/optionalProject/optionalDetails.vue @@ -20,10 +20,32 @@ let personId = ref(""); // 患者id let groupId = ref(""); // 团检id let tabIndex = ref(0); // 标签索引 let totalPrice = ref(0); // 总折扣价格 -let patientInfo = ref({}); // 就诊人信息 (包括套餐) let groupInfo = ref({}); // 团检信息 -let items = ref([]); // 团检/个检 套餐列表 let status = ref(0); // 1个检套餐 2个检自选 3团检套餐 4团检自选 +let buyText = ref("立即购买"); // 购买按钮文字 +let notice = ref({}); // 体检须知 + +const GetReadmeDetails = async () => { + const response = await $api("GetReadme"); + $response(response, () => { + notice.value = response.data || false; + if (tabIndex.value == 0) { + let num = 5; + buyText.value = "0" + num; + tabIndex.value = 1; + let timer = setInterval(() => { + num--; + buyText.value = "0" + num; + if (num == 0) { + buyText.value = "立即购买"; + clearInterval(timer); + } + }, 1000); + return; + } + uni.hideLoading(); + }); +}; const $props = defineProps({ comboId: { @@ -85,6 +107,25 @@ const mountedAction = async () => { getBuyInfo(); // 获取购买信息 }; +const buy = () => { + if (tabIndex.value == 0) { + GetReadmeDetails(); + } + if (tabIndex.value == 1 && buyText.value == "立即购买") { + $store.setBuyInfo({ + combo_id: comboId.value, + person_id: personId.value, + group_id: groupId.value, + item_ids: selectIds.value, + hospital: $store.save_info.hospital, + }); + $store.setYytjInfo({}); + uni.navigateTo({ + url: "/pages/main/tjyy/tjyy", + }); + } +}; + const getBuyInfo = async () => { // 获取购买信息 let obj = { @@ -100,6 +141,9 @@ const getBuyInfo = async () => { if (groupId.value && response.data.group_info.length) { // 团检 groupInfo.value = response.data.group_info[0]; + if(response.data.group_info[0].items?.length){ + status.value = 3; + } } comboInfo.value = response.data.combo_info; itemsInfo.value = response.data.items_info; @@ -108,7 +152,8 @@ const getBuyInfo = async () => { }; const addCombo = () => { - let itemIds = $props.itemIds?$props.itemIds:""; + // 增加项目 + let itemIds = $props.itemIds ? $props.itemIds : ""; let query = "?comboId=" + comboId.value + "&itemIds=" + itemIds; if (groupId.value) { query += "&groupId=" + groupId.value; @@ -155,7 +200,7 @@ onShow(() => { {{ comboInfo.combo_name }} { /> 您好, - {{ groupId?groupInfo.name:$store.getUser().name }} + {{ + groupId ? groupInfo.name : $store.getUser().name + }} @@ -231,9 +278,12 @@ onShow(() => { 部门名称: {{ groupInfo.bumen_name }} - + 套餐名称: - {{ groupInfo.combo_name }} + {{ groupInfo.combo_name || comboInfo?.combo_name }} 体检额度: @@ -259,7 +309,7 @@ onShow(() => { >自选内容 体检须知 { + + + 体检须知 + + + + 体检须知 + + + + + + 选购套餐 + + + + + + + 预约体检 + + + + + + + 前往体检 + + + + + + + 领取报告 + + + + + 体检注意事项 + + + { }} - - + diff --git a/h5/pages/main/optionalProject/optionalProject.vue b/h5/pages/main/optionalProject/optionalProject.vue index 0898f7e..6f46d18 100644 --- a/h5/pages/main/optionalProject/optionalProject.vue +++ b/h5/pages/main/optionalProject/optionalProject.vue @@ -104,7 +104,7 @@ const getBuyInfo = async () => { const response = await $api("BuyInfo", obj); $response(response, () => { groupLength.value = response.data.group_info - ? response.data.group_info?.length + ? response.data.group_info[0]?.items?.length : 0; packagePrice.value = response.data.combo_info.price; packageOriginalPrice.value = response.data.combo_info.original_price; @@ -132,7 +132,10 @@ const confirm = async () => { } if (status.value == 4) { // 团检自选 - // query.value = "?groupId=" + groupId.value + "&itemIds=" + itemIds; + if (!selectIds.value.length) { + uni.$lu.toast("请选择项目"); + return; + } if (!groupLength.value) { // 团检项目为空的话需要弹推荐套餐 getComboRecommend(); @@ -324,7 +327,7 @@ onShow(() => { > { /> - + { {{ item.title }} - + { 部门名称: {{ groupInfo.bumen_name }} - + 套餐名称: {{ groupInfo.combo_name }} diff --git a/h5/pages/main/selectDoctor/selectDoctor.vue b/h5/pages/main/selectDoctor/selectDoctor.vue index 8db3c75..b27520a 100755 --- a/h5/pages/main/selectDoctor/selectDoctor.vue +++ b/h5/pages/main/selectDoctor/selectDoctor.vue @@ -19,7 +19,8 @@ useStore } from '@/store' const $store = useStore() - const dqDate = ref('') + let dqDate = ref('') + let yytjInfo = ref({}); // 预约信息 const $props = defineProps({ date: { type: String, @@ -31,6 +32,7 @@ uni.showLoading({ title: "加载中", }); + yytjInfo.value = $store.getYytjInfo(); dqDate.value = $props.date ? $props.date : '2024-08-01'; if (dqDate.value) { getdoctorList(); // 获取医生列表 @@ -59,8 +61,8 @@ } } const clickDoctor = (item) => { - $store.setYytjInfo(item); - console.log(item.name) + yytjInfo.value.doctor_name = item.name; + $store.setYytjInfo(yytjInfo.value); // 关闭当前页面携带医生名称返回上一个,,并且携带item.name uni.navigateBack({ delta: 1 diff --git a/h5/pages/main/tjyy/tjyy.vue b/h5/pages/main/tjyy/tjyy.vue new file mode 100755 index 0000000..ccc4a46 --- /dev/null +++ b/h5/pages/main/tjyy/tjyy.vue @@ -0,0 +1,446 @@ + + + diff --git a/h5/pages/main/yytjsj/yytjsj.vue b/h5/pages/main/yytjsj/yytjsj.vue index f77cd53..e2a878e 100755 --- a/h5/pages/main/yytjsj/yytjsj.vue +++ b/h5/pages/main/yytjsj/yytjsj.vue @@ -1,265 +1,463 @@ \ No newline at end of file +.acitvetc { + background-color: #e0f1f2; +} + diff --git a/h5/pages/user/choose/choose.vue b/h5/pages/user/choose/choose.vue index 6f3ac9d..9703f2f 100644 --- a/h5/pages/user/choose/choose.vue +++ b/h5/pages/user/choose/choose.vue @@ -34,18 +34,25 @@ getPersonList() } } - - const choosePersonClick = async (info) => { - const response = await $api('SetDefaultPerson', { - person_id: info.id - }) + const getUserInfo = async () => { + const response = await $api('UserInfo') $response(response, () => { + // $store.user = response.data.info + $store.setUser(response.data.info); uni.$lu.toast('切换成功') uni.navigateBack({ delta: 1 }) }) } + const choosePersonClick = async (info) => { + const response = await $api('SetDefaultPerson', { + person_id: info.id + }) + $response(response, () => { + getUserInfo(); + }) + } onShow(() => { if (!!config_ref.value) { diff --git a/h5/static/assets/slices/lqbg.png b/h5/static/assets/slices/lqbg.png new file mode 100755 index 0000000..8d0b950 Binary files /dev/null and b/h5/static/assets/slices/lqbg.png differ diff --git a/h5/static/assets/slices/lt.png b/h5/static/assets/slices/lt.png new file mode 100755 index 0000000..afc5be7 Binary files /dev/null and b/h5/static/assets/slices/lt.png differ diff --git a/h5/static/assets/slices/qwty.png b/h5/static/assets/slices/qwty.png new file mode 100755 index 0000000..7961b2a Binary files /dev/null and b/h5/static/assets/slices/qwty.png differ diff --git a/h5/static/assets/slices/tjcol2x.png b/h5/static/assets/slices/tjcol2x.png new file mode 100755 index 0000000..7d873bc Binary files /dev/null and b/h5/static/assets/slices/tjcol2x.png differ diff --git a/h5/static/assets/slices/xgtc.png b/h5/static/assets/slices/xgtc.png new file mode 100755 index 0000000..fa96a5a Binary files /dev/null and b/h5/static/assets/slices/xgtc.png differ diff --git a/h5/static/assets/slices/yytj.png b/h5/static/assets/slices/yytj.png new file mode 100755 index 0000000..dbb2474 Binary files /dev/null and b/h5/static/assets/slices/yytj.png differ diff --git a/h5/store/index.js b/h5/store/index.js index a0b23dc..2596b0a 100644 --- a/h5/store/index.js +++ b/h5/store/index.js @@ -7,23 +7,42 @@ export const useStore = defineStore('counter', { user: {}, yytjInfo: {}, config: false, - patientInfo: {}, // 病人信息 groupInfo: {}, // 团检信息 save: { hospital: 1, doctor: 1, }, + checkup_type: { + id: "" + }, // 预约类型 api_map: {}, count: 0, loading: 0, + buyInfo: {}, // 购买信息接口配置 预约页面使用 别的地方最好不要用 }), actions: { + getCheckupTypeId() { + return JSON.parse(uni.getStorageSync('CHECKUP_TYPE')) || this.checkup_type; + }, + setCheckupTypeId(data) { + this.checkup_type = data; + uni.setStorageSync('CHECKUP_TYPE', JSON.stringify(data)); + }, + setBuyInfo(info) { + this.buyInfo = info; + console.log(info); + uni.setStorageSync('BUY_INFO', JSON.stringify(info)); + }, + getBuyInfo() { + console.log(uni.getStorageSync('BUY_INFO')); + return JSON.parse(uni.getStorageSync('BUY_INFO') || "{}") || this.buyInfo; + }, setYytjInfo(yytjInfo) { this.yytjInfo = yytjInfo; - uni.setStorageSync('yytjInfo', JSON.stringify(yytjInfo)); + uni.setStorageSync('YYTJ_INFO', JSON.stringify(yytjInfo)); }, getYytjInfo() { - return JSON.parse(uni.getStorageSync('yytjInfo')) || this.yytjInfo; + return JSON.parse(uni.getStorageSync('YYTJ_INFO') || '{}') || this.yytjInfo; }, setUser(user) { this.user = user; @@ -32,13 +51,6 @@ export const useStore = defineStore('counter', { getUser() { return JSON.parse(uni.getStorageSync('USER')) || this.user; }, - setPatientInfo(info) { - this.patientInfo = info; - uni.setStorageSync('PATIENT_INFO', JSON.stringify(info)); - }, - getPatientInfo() { - return JSON.parse(uni.getStorageSync('PATIENT_INFO')) || this.patientInfo; - }, setGroupInfo(info) { this.groupInfo = info; uni.setStorageSync('GROUP_INFO', JSON.stringify(info)); @@ -48,7 +60,7 @@ export const useStore = defineStore('counter', { }, resetSaveInfo() { this.save = { - hospital: 0, + hospital: 1, doctor: 1, } uni.setStorageSync('SAVE_INFO', JSON.stringify(this.save))