diff --git a/h5/pages.json b/h5/pages.json
index c260ceb..d42f5a2 100644
--- a/h5/pages.json
+++ b/h5/pages.json
@@ -90,27 +90,73 @@
}
},
{
- "path" : "pages/main/order/CheckPay",
- "style" :
- {
- "navigationBarTitleText" : "",
- "enablePullDownRefresh" : false
+ "path": "pages/main/order/CheckPay",
+ "style": {
+ "navigationBarTitleText": "",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "pages/main/optionalProject/choose",
+ "style": {
+ "navigationBarTitleText": "团检预约",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "pages/main/optionalProject/selectType",
+ "style": {
+ "navigationBarTitleText": "团检预约",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "pages/main/optionalProject/combo",
+ "style": {
+ "navigationBarTitleText": "套餐列表",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
+ "path": "pages/main/bgcx/bgcx",
+ "style": {
+ "navigationBarTitleText": "报告查询"
}
},
{
- "path" : "pages/main/optionalProject/choose",
- "style" :
- {
- "navigationBarTitleText" : "团检预约",
- "enablePullDownRefresh" : false
+ "path": "pages/main/bgcx/bgjd/bgjd",
+ "style": {
+ "navigationBarTitleText": "报告解读"
+ }
+ },
+ {
+ "path": "pages/main/bgcx/bgdb/bgdb",
+ "style": {
+ "navigationBarTitleText": "报告对比"
+ }
+ },
+ {
+ "path": "pages/main/bgcx/ckbg/ckbg",
+ "style": {
+ "navigationBarTitleText": "查看报告"
}
},
{
- "path" : "pages/main/optionalProject/selectType",
- "style" :
- {
- "navigationBarTitleText" : "团检预约",
- "enablePullDownRefresh" : false
+ "path": "pages/main/bgcx/qsfx/qsfx",
+ "style": {
+ "navigationBarTitleText": "趋势分析"
+ }
+ },
+ {
+ "path": "pages/main/selectDoctor/selectDoctor",
+ "style": {
+ "navigationBarTitleText": "选择医生"
+ }
+ },
+ {
+ "path": "pages/main/yytjsj/yytjsj",
+ "style": {
+ "navigationBarTitleText": "体检预约"
}
}
],
diff --git a/h5/pages/main/bgcx/bgcx.vue b/h5/pages/main/bgcx/bgcx.vue
new file mode 100755
index 0000000..e17be6c
--- /dev/null
+++ b/h5/pages/main/bgcx/bgcx.vue
@@ -0,0 +1,235 @@
+
+
+
+
+
+
+
+
+
+
+ 全部报告
+
+ 全部
+ 未出报告
+
+
+
+
+
+ {{ val["登记时间"] }}
+
+
+
+
+
+ 未读
+
+
+ 已读
+
+
+
+
+ {{ val["姓名"] }}
+
+
+ {{ val["性别"] }}
+
+
+
+
+ 体检报告
+
+
+ {{ val["套餐名称"] }}
+
+ 报告编号: {{ val["体检号"] }}
+
+
+
+
+
+ 体检报告
+
+
+
+
+
+
+
diff --git a/h5/pages/main/bgcx/bgdb/bgdb.vue b/h5/pages/main/bgcx/bgdb/bgdb.vue
new file mode 100755
index 0000000..dd2f9db
--- /dev/null
+++ b/h5/pages/main/bgcx/bgdb/bgdb.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/h5/pages/main/bgcx/bgjd/bgjd.vue b/h5/pages/main/bgcx/bgjd/bgjd.vue
new file mode 100755
index 0000000..dd2f9db
--- /dev/null
+++ b/h5/pages/main/bgcx/bgjd/bgjd.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/h5/pages/main/bgcx/ckbg/ckbg.vue b/h5/pages/main/bgcx/ckbg/ckbg.vue
new file mode 100755
index 0000000..a372e07
--- /dev/null
+++ b/h5/pages/main/bgcx/ckbg/ckbg.vue
@@ -0,0 +1,505 @@
+
+
+
+
+
+
+
+
+
+ 结论建议
+
+ 完整报告
+
+
+
+
+
+ {{ bgjl_obj.name }}
+
+
+
+
+
+
+
+ 基本健康数据
+
+
+ {{ item.name }}
+ {{ item.value }}
+
+
+
+
+
+
+
+
+ {{ bgjl_obj ? bgjl_obj.items.all_count : 0 }}项
+
+ 总指标
+
+
+
+
+ {{ bgjl_obj ? bgjl_obj.items.ipt_error_count : 0 }}项
+
+ 重要异常结果
+
+
+
+ {{ bgjl_obj ? bgjl_obj.items.error_count : 0 }}项
+
+ 异常结果
+
+
+
+
+
+ 总检建议
+
+
+ {{ bgjl_obj.content }}
+
+
+
+
+
+
+
+
+ 全部检查
+
+
+
+
+ {{ isopen ? "收起全部" : "展开全部" }}
+
+
+
+
+
+
+
+
+
+
+ {{ item.error_count }} 项异常
+
+
+
+
+
+ 初步意见
+
+
+
+
+ {{ text }}
+
+
+
+
+
+ 未见明显异常
+
+
+ {{ text }}
+
+
+
+
+
+ 162.0
+ 身高(cm)
+
+
+ 58.8
+ 体重(Kg)
+
+
+
+
+
+ {{ obj["基础项目名称"] }}
+ ( {{ obj["结果值单位"] }})
+
+
+
+
+
+
+ {{ obj.minNum }}
+ 正常
+ {{ obj.maxNum }}
+
+
+
+ {{ obj["结果值"] }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/h5/pages/main/bgcx/qsfx/qsfx.vue b/h5/pages/main/bgcx/qsfx/qsfx.vue
new file mode 100755
index 0000000..dd2f9db
--- /dev/null
+++ b/h5/pages/main/bgcx/qsfx/qsfx.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/h5/pages/main/combo/combo.vue b/h5/pages/main/combo/combo.vue
index 3334947..9fe8e2c 100644
--- a/h5/pages/main/combo/combo.vue
+++ b/h5/pages/main/combo/combo.vue
@@ -1,709 +1,755 @@
-
-
-
-
-
-
-
-
- 已根据指定医生:
- 可选择指定医生:
-
-
- {{ !!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 }}
-
-
-
- 确定
-
-
-
-
-
+
+
+
+
+
+
+
+
+ 已根据指定医生:
+ 可选择指定医生:
+
+
+ {{ !!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
+.select_done_wrapper {
+ color: #ffffff;
+ background: #239ea3;
+ width: calc(100% - 60rpx);
+ margin: 50rpx auto 0;
+ height: 50rpx;
+ line-height: 50rpx;
+ text-align: center;
+ border-radius: 6rpx;
+}
+
+.select_group_item_wrapper {
+ padding: 10rpx 20rpx;
+ border: 1rpx solid #239ea3;
+ font-size: 22rpx;
+ margin: 20rpx 20rpx 0 0;
+ border-radius: 6rpx;
+ color: #239ea3;
+}
+
+.select_group_item_wrapper.active {
+ color: #ffffff;
+ background: #239ea3;
+}
+
+.select_group_line_wrapper {
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+}
+
+.select_group_title_wrapper {
+ font-size: 30rpx;
+ font-weight: bold;
+}
+
+.select_group_wrapper {
+ margin: 20rpx;
+}
+
+.list_wrapper {
+ padding-top: 30rpx;
+ height: calc(100vh - 100rpx - 10rpx - 70rpx - 80rpx - 30rpx - 30rpx);
+ width: 750rpx;
+ overflow-y: auto;
+ padding-bottom: 30rpx;
+ margin: 0 auto;
+ overflow-x: hidden;
+ -ms-overflow-style: none;
+ scrollbar-width: none;
+ overflow: -moz-scrollbars-none;
+ overflow-y: scroll;
+}
+
+.list_wrapper::-webkit-scrollbar {
+ display: none;
+}
+
+.combo_line_wrapper {
+ width: 710rpx;
+ height: 1rpx;
+ background: #e1ecee;
+ margin: 15rpx auto 0;
+}
+
+.combo_pick_button_wrapper {
+ width: 160rpx;
+ height: 60rpx;
+ background: #e1ecee;
+ border-radius: 30rpx;
+ font-weight: 400;
+ font-size: 28rpx;
+ color: #239ea3;
+ text-align: center;
+ line-height: 60rpx;
+}
+
+.combo_buy_button_wrapper {
+ width: 160rpx;
+ height: 60rpx;
+ background: #239ea3;
+ border-radius: 30rpx;
+ font-weight: 400;
+ font-size: 28rpx;
+ color: #ffffff;
+ text-align: center;
+ line-height: 60rpx;
+ margin-left: 32rpx;
+ margin-right: 20rpx;
+}
+
+.combo_button_wrapper {
+ display: flex;
+ align-items: center;
+ justify-content: end;
+ margin-top: 27rpx;
+}
+
+.combo_count_wrapper {
+ font-weight: 500;
+ font-size: 18rpx;
+ color: #8b8b8b;
+ line-height: 1;
+}
+
+.combo_original_price_wrapper {
+ font-weight: 500;
+ font-size: 18rpx;
+ color: #8b8b8b;
+ line-height: 1;
+ text-decoration-line: line-through;
+ margin-left: 10rpx;
+}
+
+.combo_true_price_wrapper {
+ font-weight: 500;
+ font-size: 18rpx;
+ color: #ec3d15;
+ line-height: 1;
+}
+
+.combo_true_price_number_wrapper {
+ font-size: 38rpx;
+}
+
+.combo_price_wrapper {
+ display: flex;
+ align-items: end;
+ justify-content: space-between;
+ margin-top: 21rpx;
+}
+
+.combo_price_box_wrapper {
+ display: flex;
+ align-items: end;
+}
+
+.combo_wrapper {
+ height: 307rpx;
+ width: 750rpx;
+ margin: 0 auto;
+}
+
+.combo_tags_wrapper {
+ display: flex;
+ align-items: center;
+ margin-top: 13rpx;
+}
+
+.combo_desc_wrapper {
+ font-weight: 500;
+ font-size: 20rpx;
+ color: #8b8b8b;
+ line-height: 1;
+ margin-top: 18rpx;
+}
+
+.combo_tag_wrapper {
+ padding-left: 13rpx;
+ padding-right: 13rpx;
+ height: 30rpx;
+ line-height: 30rpx;
+ border-radius: 5rpx;
+ font-weight: 400;
+ font-size: 18rpx;
+ color: #47abd8;
+ margin-right: 8rpx;
+}
+
+.combo_name_wrapper {
+ font-weight: 400;
+ font-size: 32rpx;
+ color: #0e0e0e;
+ line-height: 1;
+}
+
+.combo_content_wrapper {
+ margin-left: 30rpx;
+ width: calc(750rpx - 190rpx - 30rpx - 20rpx - 55rpx);
+}
+
+.combo_info_wrapper {
+ display: flex;
+ align-items: center;
+ width: 750rpx;
+ margin: 0 auto;
+}
+
+.combo_cover_wrapper {
+ width: 190rpx;
+ height: 190rpx;
+ margin-left: 20rpx;
+}
+
+.combo_cover_wrapper image {
+ width: 190rpx;
+ height: 190rpx;
+ display: block;
+ object-fit: contain;
+}
+
+.select_item_line_wrapper {
+ position: absolute;
+ width: 95rpx;
+ height: 10rpx;
+ background: linear-gradient(to bottom, #ffffff00, #1b9a9f);
+ border-radius: 5rpx;
+ bottom: 0;
+ left: 50%;
+ transform: translateX(calc(-50% - 8px));
+ opacity: 0;
+}
+
+.select_wrapper {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ width: 750rpx;
+ height: 80rpx;
+ background: #f1f7f7;
+ box-shadow: 0rpx -1rpx 1rpx 0rpx rgba(0, 0, 0, 0.1);
+ margin: 0 auto;
+}
+
+.select_item_icon_wrapper {
+ width: 18rpx;
+ height: 9rpx;
+ margin-left: 9rpx;
+ filter: grayscale(100%);
+}
+
+.select_item_icon_wrapper image {
+ width: 18rpx;
+ height: 9rpx;
+ display: block;
+ object-fit: contain;
+}
+
+.select_item_icon2_wrapper {
+ width: 26rpx;
+ height: 23rpx;
+ margin-left: 7rpx;
+}
+
+.select_item_icon2_wrapper image {
+ width: 26rpx;
+ height: 23rpx;
+ display: block;
+ object-fit: contain;
+}
+
+.select_item_name_wrapper {
+ font-weight: 400;
+ font-size: 26rpx;
+ color: #2f2f2f;
+ line-height: 1;
+}
+
+.select_item_wrapper {
+ width: 25%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ position: relative;
+ height: 80rpx;
+}
+
+.select_item_wrapper.active .select_item_name_wrapper {
+ color: #239ea3;
+ font-weight: bold;
+}
+
+.select_item_wrapper.active .select_item_icon_wrapper {
+ filter: grayscale(0%);
+}
+
+.select_item_wrapper.active .select_item_line_wrapper {
+ opacity: 1;
+}
+
+.doctor_name_wrapper {
+ font-weight: 400;
+ font-size: 24rpx;
+ line-height: 1;
+ color: #ffffff;
+ border-bottom: 1rpx solid #ffffff;
+}
+
+.doctor_tip_wrapper {
+ font-weight: 400;
+ font-size: 22rpx;
+ line-height: 1;
+ color: #ffffff;
+}
+
+.doctor_wrapper {
+ display: flex;
+ align-items: center;
+ width: 710rpx;
+ height: 70rpx;
+ background: #28b7c1;
+ border-radius: 15rpx 15rpx 0rpx 0rpx;
+ padding-left: 24rpx;
+ margin: 10rpx auto 0;
+}
+
+.user_choose_wrapper {
+ width: 50rpx;
+ height: 50rpx;
+ margin-left: 30rpx;
+}
+
+.user_choose_wrapper image {
+ width: 50rpx;
+ height: 50rpx;
+ display: block;
+ object-fit: contain;
+}
+
+.user_title_wrapper {
+ font-weight: 400;
+ font-size: 28rpx;
+ color: #239ea3;
+ line-height: 1;
+}
+
+.user_name_wrapper {
+ font-weight: 400;
+ font-size: 28rpx;
+ color: #0d0d0d;
+ line-height: 1;
+}
+
+.user_wrapper {
+ height: 80rpx;
+ padding-left: 40rpx;
+ padding-right: 20rpx;
+ background: #ffffff;
+ border-radius: 40rpx 0 0 40rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.header_wrapper {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ width: 750rpx;
+ height: 100rpx;
+ background: #d8edf2;
+ margin: 0 auto;
+}
+
+.hospital_wrapper {
+ display: flex;
+ align-items: center;
+ width: 50%;
+}
+
+.hospital_icon_wrapper {
+ width: 48rpx;
+ height: 48rpx;
+ margin-left: 20rpx;
+}
+
+.hospital_icon_wrapper image {
+ width: 48rpx;
+ height: 48rpx;
+ display: block;
+ object-fit: contain;
+}
+
+.hospital_name_wrapper {
+ font-weight: 400;
+ font-size: 28rpx;
+ color: #484747;
+ margin-left: 9rpx;
+ line-height: 1;
+}
+
+.hospital_select_wrapper {
+ width: 24rpx;
+ height: 14rpx;
+ margin-left: 19rpx;
+}
+
+.hospital_select_wrapper image {
+ width: 24rpx;
+ height: 14rpx;
+ display: block;
+ object-fit: contain;
+}
+
diff --git a/h5/pages/main/index/index.vue b/h5/pages/main/index/index.vue
index 28ad8cd..3e9cbb4 100644
--- a/h5/pages/main/index/index.vue
+++ b/h5/pages/main/index/index.vue
@@ -24,7 +24,8 @@
const getUserInfo = async () => {
const response = await $api('UserInfo')
$response(response, () => {
- $store.user = response.data.info
+ // $store.user = response.data.info
+ $store.setUser(response.data.info);
})
}
const switch_arr = [
diff --git a/h5/pages/main/optionalProject/choose.vue b/h5/pages/main/optionalProject/choose.vue
index 95e1113..99db269 100644
--- a/h5/pages/main/optionalProject/choose.vue
+++ b/h5/pages/main/optionalProject/choose.vue
@@ -41,7 +41,6 @@ const choosePersonClick = async (info) => {
popup.value.open("bottom");
}
if (response.data.unit.length == 1) {
- // selectUnit(response.data.unit[0]);
getGroupCombo(response.data.unit[0]);
}
});
@@ -59,12 +58,13 @@ const getGroupCombo = async (info) => {
let data = response.data.unit[0];
$store.setGroupInfo(data);
if (!data.items.length && data.tongshou_xiane > 0) {
- // 跳转到选择类似上
+ // 跳转到选择类似上
uni.navigateTo({
url:
"/pages/main/optionalProject/selectType"
});
} else {
+ // 跳转到团检自选
uni.navigateTo({
url:
"/pages/main/optionalProject/optionalDetails?groupId=" +
@@ -74,12 +74,6 @@ const getGroupCombo = async (info) => {
}
});
};
-const selectUnit = async (info) => {
- popup.value.close();
- uni.navigateTo({
- url: "/pages/main/optionalProject/optionalDetails?groupId=" + info.group_id,
- });
-};
onShow(() => {
if (!!config_ref.value) {
diff --git a/h5/pages/main/optionalProject/combo.vue b/h5/pages/main/optionalProject/combo.vue
new file mode 100644
index 0000000..7ba98b8
--- /dev/null
+++ b/h5/pages/main/optionalProject/combo.vue
@@ -0,0 +1,709 @@
+
+
+
+
+
+
+
+
+
+
+ 已根据指定医生:
+ 可选择指定医生:
+
+
+ {{ !!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 8a55f5d..283e36f 100644
--- a/h5/pages/main/optionalProject/optionalDetails.vue
+++ b/h5/pages/main/optionalProject/optionalDetails.vue
@@ -10,6 +10,8 @@ import { onShow } from "@dcloudio/uni-app";
import { useStore } from "@/store";
const $store = useStore();
+// groupId
+
let comboInfo = ref({}); // 套餐详情
let selectIds = ref([]); // 选中自选ID
let itemsInfo = ref({}); // 自选项目详情
@@ -20,6 +22,8 @@ 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团检自选
const $props = defineProps({
comboId: {
@@ -34,14 +38,47 @@ const $props = defineProps({
type: String,
default: "",
},
+ itemIds: {
+ type: String,
+ default: "",
+ },
});
const mountedAction = async () => {
selectIds.value = $props.itemIds?.split(",") || [];
console.log($store.user);
comboId.value = $props.comboId || "";
- personId.value = $props.personId || "";
+ personId.value = $store.getUser().person_id || "";
groupId.value = $props.groupId || "";
+ // 团检空项目 - 套餐列表 - 套餐详情 - 自选 - 弹剩余额度提醒 - 团检详情
+ // |
+ // 自选 - 弹推荐套餐/剩余额度提醒 - 团检详情
+
+ // 团检有项目 - 团检详情 - 自选 - 团检详情
+
+ // comboId && person_id
+ // 个检 - 套餐列表 - 套餐详情 - 自选 - 个检详情
+ // |
+ // 自选 - 弹推荐套餐 - 个检详情
+
+ if (groupId.value) {
+ if (comboId.value) {
+ // 团检套餐
+ status.value = 3;
+ } else {
+ // 团检自选
+ status.value = 4;
+ }
+ } else {
+ if (comboId.value) {
+ // 个检套餐
+ status.value = 1;
+ } else {
+ // 个检自选
+ status.value = 2;
+ }
+ }
+ console.log(status.value, "1个检套餐 2个检自选 3团检套餐 4团检自选");
uni.showLoading({
title: "加载中",
});
@@ -60,9 +97,9 @@ const getBuyInfo = async () => {
const response = await $api("BuyInfo", obj);
$response(response, () => {
uni.hideLoading();
- if (groupId.value) {
+ if (groupId.value && response.data.group_info.length) {
+ // 团检
groupInfo.value = response.data.group_info[0];
- return;
}
comboInfo.value = response.data.combo_info;
itemsInfo.value = response.data.items_info;
@@ -71,13 +108,13 @@ const getBuyInfo = async () => {
};
const addCombo = () => {
- const itemIds = selectIds.value.length > 0 ? selectIds.value.join(",") : "";
+ let itemIds = $props.itemIds?$props.itemIds:"";
+ let query = "?comboId=" + comboId.value + "&itemIds=" + itemIds;
+ if (groupId.value) {
+ query += "&groupId=" + groupId.value;
+ }
uni.navigateTo({
- url:
- "/pages/main/optionalProject/optionalProject?comboId=" +
- comboId.value +
- "&itemIds=" +
- itemIds,
+ url: "/pages/main/optionalProject/optionalProject?" + query,
});
};
@@ -106,8 +143,10 @@ onShow(() => {
-
+
+
{
"
/>
-
+
{{ val }}
@@ -157,9 +196,10 @@ onShow(() => {
+
适用人群:
{{ comboInfo.crowd_name }}
@@ -169,39 +209,55 @@ onShow(() => {
{{ comboInfo.hospital_name }}
-
+
+
-
+
您好,
- {{groupInfo.name}}
+ {{ groupId?groupInfo.name:$store.getUser().name }}
-
+
+
单位名称:
{{ groupInfo.group_name }}
部门名称:
- {{ groupInfo.group_name }}
+ {{ groupInfo.bumen_name }}
-
+
套餐名称:
{{ groupInfo.combo_name }}
+
+ 体检额度:
+ {{ groupInfo.tongshou_xiane }}
+
套餐内容
+ 自选内容
{
class="mt-20rpx bg-#fff py-40rpx px-14rpx box-border flex-col flex"
>
-
+
+
+ 套餐项目({{ comboInfo?.items?.length }}项)
+
+ 检查项目
+ 检查指标意义
+
+
+
+
+ {{ val.keshi_name }}({{ val.children.length }})
+
+
+ {{ v.name }}
+ {{
+ v.desc || "-"
+ }}
+
+
+
+
+
+
套餐项目({{ comboInfo.items?.length }}项)套餐项目({{ groupInfo?.items?.length }}项)
{
>
检查指标意义
-
+
diff --git a/h5/pages/main/optionalProject/optionalProject.vue b/h5/pages/main/optionalProject/optionalProject.vue
index a5133f5..0898f7e 100644
--- a/h5/pages/main/optionalProject/optionalProject.vue
+++ b/h5/pages/main/optionalProject/optionalProject.vue
@@ -20,6 +20,14 @@ const $props = defineProps({
type: String,
default: "",
},
+ personId: {
+ type: String,
+ default: "",
+ },
+ groupId: {
+ type: String,
+ default: "",
+ },
});
const $store = useStore();
@@ -38,12 +46,19 @@ let totalOriginalPrice = ref(0); // 总原始价格
let total = ref(0); // 总项目数
let comboId = ref(""); // 套餐id
let recommendPackageList = ref([]); // 推荐套餐列表
-let popup = ref(null);
+let popup = ref(null); // 推荐套餐弹窗
+let popupTip = ref(null); // 剩余额度提示弹窗
+let groupLength = ref(0); // 团检自带的套餐数量
+let status = ref(0); // 1个检套餐 2个检自选 3团检套餐 4团检自选
+let personId = ref(""); // 就诊人ID
+let groupId = ref(""); // 团检id
+let losePrice = ref(0); // 剩余金额
+// let query = ref(""); // 参数
const getComboRecommend = async () => {
// 获取推荐套餐
const response = await $api("ComboRecommend", {
- person_id: $store.save_info.user_id || 1,
+ person_id: personId.value,
item_ids: selectIds.value,
});
$response(response, () => {
@@ -79,12 +94,18 @@ const getBuyInfo = async () => {
let obj = {
item_ids: selectIds.value,
hospital: $store.save_info.hospital,
+ person_id: personId.value,
+ group_id: groupId.value,
+ combo_id: comboId.value,
};
if (comboId.value) {
obj.combo_id = comboId.value;
}
const response = await $api("BuyInfo", obj);
$response(response, () => {
+ groupLength.value = response.data.group_info
+ ? response.data.group_info?.length
+ : 0;
packagePrice.value = response.data.combo_info.price;
packageOriginalPrice.value = response.data.combo_info.original_price;
optionalPrice.value = response.data.items_info.price;
@@ -92,49 +113,138 @@ const getBuyInfo = async () => {
totalPrice.value = response.data.true_price;
totalOriginalPrice.value = response.data.original_price;
total.value = response.data.pay_item_count;
+ losePrice.value = response.data.lose_price;
uni.hideLoading();
});
};
const confirm = async () => {
- const itemIds = selectIds.value.length > 0 ? selectIds.value.join(",") : "";
// 确定
- if (comboId.value) {
- // 增加自选
- uni.navigateBack({
- delta: 2,
- success: () => {
- let time = setTimeout(() => {
- uni.navigateTo({
- url:
- "/pages/main/optionalProject/optionalDetails?comboId=" +
- comboId.value +
- "&itemIds=" +
- itemIds,
- });
- clearTimeout(time);
- }, 500);
- },
- });
- } else {
- // 自选
+ // status 1个检套餐 2个检自选 3团检套餐 4团检自选
+ if (status.value == 3) {
+ // 团检套餐
+ // query.value = "?groupId=" +
+ // groupId.value +
+ // "&itemIds=" +
+ // itemIds +
+ // "&comboId=" +
+ // comboId.value;
+ }
+ if (status.value == 4) {
+ // 团检自选
+ // query.value = "?groupId=" + groupId.value + "&itemIds=" + itemIds;
+ if (!groupLength.value) {
+ // 团检项目为空的话需要弹推荐套餐
+ getComboRecommend();
+ return;
+ }
+ }
+
+ if (status.value == 1) {
+ // 个检套餐
+ // query.value = "?itemIds=" + itemIds + "&comboId=" + comboId.value;
+ }
+
+ if (status.value == 2) {
+ // 个检自选
+ // query.value = "?itemIds=" + itemIds + "&personId=" + personId.value;
if (!selectIds.value.length) {
uni.$lu.toast("请选择项目");
return;
}
// 自选触发推荐套餐
getComboRecommend();
+ return;
}
+ toDetails();
+};
+
+const toDetails = (state) => {
+ // 去详情页
+ if (losePrice.value > 0 && !state) {
+ popupTip.value.open("center"); // 弹剩余额度提醒
+ return;
+ }
+ const itemIds = selectIds.value.length > 0 ? selectIds.value.join(",") : "";
+ let query = "?comboId=" + comboId.value + "&itemIds=" + itemIds;
+ if (groupId.value) {
+ query += "&groupId=" + groupId.value;
+ }
+ console.log($props.comboId || $props.itemIds ? 2 : 1);
+ let delta = 0;
+ if(groupId.value){
+ if(groupLength.value){
+ delta = 2;
+ }else{
+ if($props.comboId || $props.itemIds){
+ delta = 2;
+ }else{
+ delta = 1;
+ }
+ }
+ }else{
+ if($props.comboId || $props.itemIds){
+ delta = 2;
+ }else{
+ delta = 1;
+ }
+ }
+ uni.navigateBack({
+ delta: delta,
+ success: () => {
+ let time = setTimeout(
+ () => {
+ clearTimeout(time);
+ uni.navigateTo({
+ url: "/pages/main/optionalProject/optionalDetails" + query,
+ });
+ },
+ delta == 2 ? 800 : 500
+ );
+ },
+ });
+};
+
+const buy = async (item) => {
+ if (item) {
+ comboId.value = item.combo_id;
+ await getBuyInfo();
+ }
+ const itemIds = selectIds.value.length > 0 ? selectIds.value.join(",") : "";
+ // 预约套餐
+ popup.value.close(); // 关闭推荐套餐弹窗
+ toDetails();
};
const mountedAction = async () => {
- selectIds.value = $props.itemIds?.split(",") || [];
- comboId.value = $props.comboId ? $props.comboId : "";
+ selectIds.value = $props.itemIds ? $props.itemIds.split(",") : [];
+ comboId.value = $props.comboId || "";
+ personId.value = $store.getUser().person_id || "";
+ groupId.value = $props.groupId || "";
+
+ if (groupId.value) {
+ if (comboId.value) {
+ // 团检套餐
+ status.value = 3;
+ } else {
+ // 团检自选
+ status.value = 4;
+ }
+ } else {
+ if (comboId.value) {
+ // 个检套餐
+ status.value = 1;
+ } else {
+ // 个检自选
+ status.value = 2;
+ }
+ }
+
+ console.log(status.value, "1个检套餐 2个检自选 3团检套餐 4团检自选");
+
await getAllItems(); // 获取全部项目
// await getComboRecommend();
- if (comboId.value) {
- getBuyInfo(); // 获取购买信息
- }
+ getBuyInfo(); // 获取购买信息
};
const config_ref = ref(null);
@@ -157,6 +267,33 @@ onShow(() => {
+
+
+ 您还剩余
+ {{ losePrice }}
+ 元体检额度尚未使用,确认提交后剩余体检额度将无法使用!
+
+
+
+
+
+
@@ -176,6 +313,7 @@ onShow(() => {
>
{
-
+
{
const toDetails = (type) => {
let url = "";
if(type == 1){
- url = "/pages/main/optionalProject/optionalProject?projectId=" + groupInfo.project_id;
+ url = "/pages/main/combo/combo?groupId=" + groupInfo.value.group_id;
}else{
- url = "/pages/main/optionalProject/optionalDetails";
+ url = "/pages/main/optionalProject/optionalProject?groupId=" + groupInfo.value.group_id;
}
uni.navigateTo({
url: url,
@@ -69,7 +69,7 @@ const toDetails = (type) => {
部门名称:
- {{ groupInfo.group_name }}
+ {{ groupInfo.bumen_name }}
套餐名称:
diff --git a/h5/pages/main/selectDoctor/selectDoctor.vue b/h5/pages/main/selectDoctor/selectDoctor.vue
new file mode 100755
index 0000000..8db3c75
--- /dev/null
+++ b/h5/pages/main/selectDoctor/selectDoctor.vue
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item.name}}
+ {{item.level}}
+
+
+ {{item.hospital}}:
+ {{item.time}}
+
+
+ {{item.desc}}
+
+
+ 预约此医生
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/h5/pages/main/yytjsj/yytjsj.vue b/h5/pages/main/yytjsj/yytjsj.vue
new file mode 100755
index 0000000..f77cd53
--- /dev/null
+++ b/h5/pages/main/yytjsj/yytjsj.vue
@@ -0,0 +1,265 @@
+
+
+
+
+
+
+
+
+
+ ---------------------
+
+
+
+ 自选项目
+
+
+
+ 妇科(化验)- 头瘤病毒(乳头瘤病毒(乳头瘤病毒(乳头瘤病毒(乳头瘤病毒(乳头瘤病毒(HPV)
+
+
+
+ 超声科- 腹部B超
+
+
+ 体检医生 -
+ {{doctor_name || '请选择'}}
+ >
+
+
+
+
+
+
+
+
+
+ {{currentXmmcObj.name || ''}}
+
+
+
+
+ {{item.newMonthDate}}
+ {{item.newWeek}}
+
+
+ 余{{item.count }}
+
+
+
+
+
+
+
+
+ {{item.newTime}}
+
+
+
+
+
+
+
+
+ 路雅思
+
+
+
+
+ {{item.name}}
+
+
+ {{item.rq}} {{item.sj}}
+
+
+
+
+
+
+
+
+
+
+
+
+ 确定
+
+
+
+
+
+
\ No newline at end of file
diff --git a/h5/static/assets/slices/avatar.png b/h5/static/assets/slices/avatar.png
new file mode 100755
index 0000000..a7ff707
Binary files /dev/null and b/h5/static/assets/slices/avatar.png differ
diff --git a/h5/static/assets/slices/bgdb.png b/h5/static/assets/slices/bgdb.png
new file mode 100755
index 0000000..377a752
Binary files /dev/null and b/h5/static/assets/slices/bgdb.png differ
diff --git a/h5/static/assets/slices/bgjd.png b/h5/static/assets/slices/bgjd.png
new file mode 100755
index 0000000..0a7b7f4
Binary files /dev/null and b/h5/static/assets/slices/bgjd.png differ
diff --git a/h5/static/assets/slices/xsfx.png b/h5/static/assets/slices/xsfx.png
new file mode 100755
index 0000000..0ab83a9
Binary files /dev/null and b/h5/static/assets/slices/xsfx.png differ
diff --git a/h5/store/index.js b/h5/store/index.js
index 01dca1e..a0b23dc 100644
--- a/h5/store/index.js
+++ b/h5/store/index.js
@@ -4,7 +4,8 @@ import {
export const useStore = defineStore('counter', {
state: () => ({
- user: false,
+ user: {},
+ yytjInfo: {},
config: false,
patientInfo: {}, // 病人信息
groupInfo: {}, // 团检信息
@@ -17,18 +18,32 @@ export const useStore = defineStore('counter', {
loading: 0,
}),
actions: {
- setPatientInfo(info){
+ setYytjInfo(yytjInfo) {
+ this.yytjInfo = yytjInfo;
+ uni.setStorageSync('yytjInfo', JSON.stringify(yytjInfo));
+ },
+ getYytjInfo() {
+ return JSON.parse(uni.getStorageSync('yytjInfo')) || this.yytjInfo;
+ },
+ setUser(user) {
+ this.user = user;
+ uni.setStorageSync('USER', JSON.stringify(user));
+ },
+ getUser() {
+ return JSON.parse(uni.getStorageSync('USER')) || this.user;
+ },
+ setPatientInfo(info) {
this.patientInfo = info;
uni.setStorageSync('PATIENT_INFO', JSON.stringify(info));
},
- getPatientInfo(){
+ getPatientInfo() {
return JSON.parse(uni.getStorageSync('PATIENT_INFO')) || this.patientInfo;
},
- setGroupInfo(info){
+ setGroupInfo(info) {
this.groupInfo = info;
uni.setStorageSync('GROUP_INFO', JSON.stringify(info));
},
- getGroupInfo(){
+ getGroupInfo() {
return JSON.parse(uni.getStorageSync('GROUP_INFO')) || this.groupInfo;
},
resetSaveInfo() {