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 @@
-
-
-
-
-
-
-
-
-
-
- 已根据指定医生:
- 可选择指定医生:
-
-
- {{ !!combo_list.doctor.id ? combo_list.doctor.name : '前往选择' }}
-
- (自动筛选匹配套餐)
-
-
-
- 综合排序
-
-
-
-
-
-
- {{ !!combo_active ? comboActiveName() : '套餐类型' }}
-
-
-
-
-
-
- {{ !!person_active ? personActiveName() : '适用人群' }}
-
-
-
-
-
-
- 筛选
-
-
-
-
-
-
-
-
-
-
-
-
- {{ i.name }}
-
-
- {{ ii.text }}
-
-
-
- {{ i.tags2?.join(" | ") }}
-
-
-
-
- ¥
- {{ i.price }}
-
- ¥{{ i.original_price }}
-
- 已售{{ i.count }}
-
-
-
-
- 对比
- 预约
-
-
-
-
-
-
-
-
-
-
- 套餐类型
-
-
- 全部
-
-
- {{ i.label }}
-
-
-
-
- 适用人群
-
-
- 全部
-
-
- {{ i.label }}
-
-
-
- 确定
-
-
-
-
-
-
-
\ 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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ comboInfo.combo_name }}
+
+
+
+
+ {{ val }}
+
+
+ ¥
+ {{
+ comboInfo.price
+ }}
+ {{
+ comboInfo.original_price
+ }}
+ 已售{{ comboInfo.sale_count }}
+
+
+
+
+
+
+
+
+ 您好,
+ {{ groupInfo.name }}
+
+
+
+
+
+ 单位名称:
+ {{ groupInfo.group_name }}
+
+
+ 部门名称:
+ {{ groupInfo.bumen_name }}
+
+
+ 套餐名称:
+ {{ groupInfo?.combo_name || comboInfo?.combo_name }}
+
+
+ 体检额度:
+ {{ groupInfo.tongshou_xiane }}
+
+
+
+
+ 自选项目
+
+
+ {{ itemsInfo?.items[index]?.keshi_name }} -
+
+
+ {{ v.name }}
+
+
+
+
+
+
+ 预约人信息
+
+ {{
+ userInfo.name
+ }}
+
+ {{ userInfo.sex == 1 ? "男性" : "女性" }}
+ {{
+ userInfo.married == 1
+ ? "已婚"
+ : userInfo.married == 2
+ ? "未婚"
+ : "未知"
+ }}
+ {{ userInfo.phone }}
+
+
+
+
+ {{ val.name }}
+ {{ val.time }}
+ {{ val.time ? "重新预约" : "预约时间" }}
+
+
+ 体检医生
+ {{ yytjInfo?.doctor_name || "选择医生" }}
+
+
+
+
+
+
+
+ 套餐名称
+
+ {{ comboInfo?.crowd_name || groupInfo?.crowd_name }}
+ ¥{{ comboInfo?.price || groupInfo?.sixi_zong_ji_jin_e }}
+
+
+
+
+ 自选项目
+
+
+ {{ val.keshi_name }} -
+ {{ v.name }}
+ ¥{{ v.price }}
+
+
+
+
+
+
+ ¥
+ {{ truePrice }}
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
-
- ---------------------
-
-
-
- 自选项目
-
-
-
- 妇科(化验)- 头瘤病毒(乳头瘤病毒(乳头瘤病毒(乳头瘤病毒(乳头瘤病毒(乳头瘤病毒(HPV)
-
-
-
- 超声科- 腹部B超
-
-
- 体检医生 -
- {{doctor_name || '请选择'}}
- >
-
-
-
-
-
-
-
-
-
- {{currentXmmcObj.name || ''}}
-
-
-
-
- {{item.newMonthDate}}
- {{item.newWeek}}
-
-
- 余{{item.count }}
-
-
-
+
+
+ {{ comboInfo.combo_name }}
+
+
+
+
+ {{ val }}
+
+
+ ¥
+ {{
+ comboInfo.price
+ }}
+ {{
+ comboInfo.original_price
+ }}
+ 已售{{ comboInfo.sale_count }}
+
+
+
+
+
+
+
+
+ 您好,
+ {{ groupInfo.name }}
+
+
+
+
+
+ 单位名称:
+ {{ groupInfo.group_name }}
+
+
+ 部门名称:
+ {{ groupInfo.bumen_name }}
+
+
+ 套餐名称:
+ {{ groupInfo?.combo_name || comboInfo?.combo_name }}
+
+
+ 体检额度:
+ {{ groupInfo.tongshou_xiane }}
+
+
+
+
+ 自选项目
+
+
+ {{ itemsInfo?.items[index]?.keshi_name }} -
+
+
+ {{ v.name }}
+
+
+
+
+
+ 体检医生 -
+
+ {{ yytjInfo?.doctor_name || "请选择" }}
+
+
+
+
+
+
+
+ {{ currentXmmcObj.name || "" }}
+
+
+
+
+ {{ item.newMonthDate }}
+ {{ item.newWeek }}
+
+
+ 余{{ item.count }}
+
+
+
-
-
-
-
-
- {{item.newTime}}
-
-
-
-
-
-
-
-
- 路雅思
-
-
-
-
- {{item.name}}
-
-
- {{item.rq}} {{item.sj}}
-
-
-
-
+
+
+
+
+
+ {{ item.newTime }}
+
+
+
+
+
+
+
+ {{
+ buyInfo.group_id
+ ? $store.getGroupInfo()?.name
+ : $store.getUser()?.name
+ }}
+
+
+
+ {{ item.name }}
+
+
+ {{ item.time }}
+
+
+
+
+
-
-
-
-
-
-
-
- 确定
-
-
-
-
+
+
+ 确定
+
+
+
+
\ 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))