master
xy 2 years ago
parent a66724edf9
commit 4c56f0b755

@ -7,16 +7,14 @@
<!-- 当前定位城市 -->
<view class="hot-title" v-if="activeCity && !serachCity"></view>
<view class="hot-city" v-if="activeCity && !serachCity">
<view class="hot-item" @click="cityTrigger(activeCity)">{{ activeCity[formatName] }}</view>
<view class="hot-item" @click="cityTrigger(activeCity)">{{ activeCity[formatName] || '' }}</view>
<u-button v-if="isRefresh"
size="medium"
ripple
:custom-style="{ 'background': '#ca2328','color': '#fff',width: '200rpx',height: '62rpx', 'line-height': '62rpx' }"
@click="$emit('refreshLocation')">
<view v-if="isRefresh"
class="refresh-block"
@click="$emit('refreshLocation')">
<u-icon name="map-fill"></u-icon>
<text style="padding-left: 10rpx;">更新定位</text>
</u-button>
</view>
</view>
<!-- 热门城市 -->
<view class="hot-title" v-if="hotCity.length > 0 && !serachCity"></view>
@ -403,6 +401,12 @@ $theme-color: #ca2328;
overflow: hidden;
width: 100vw;
.refresh-block {
color: $theme-color;
line-height: vww(31);
float: right;
padding-right: vww(23);
}
.hot-item {
float: left;
padding: 0 vww(5);

@ -229,9 +229,6 @@ export default [{
}, {
'cityCode': '320400',
'cityName': '常州市'
}, {
'cityCode': '320500',
'cityName': '苏州市'
}, {
'cityCode': '320600',
'cityName': '南通市'

@ -0,0 +1,72 @@
<template>
<view>
<view class="container">
<u-form :model="form" ref="uForm" label-width="140">
<u-form-item label="姓名">
<u-input v-model="form.name" />
</u-form-item>
<u-form-item label="身份证号">
<u-input v-model="form.name" />
</u-form-item>
<u-form-item label="手机号">
<u-input v-model="form.name" />
</u-form-item>
<u-form-item label="行动能力">
<u-input type="select" readonly v-model="form.name" />
</u-form-item>
<u-form-item label="邮寄地址">
<u-input v-model="form.name" />
</u-form-item>
<u-form-item label="其他备注">
<u-input v-model="form.name" />
</u-form-item>
</u-form>
</view>
<u-button shape="circle" ripple :custom-style="btnStyle">确认</u-button>
</view>
</template>
<script>
export default {
data() {
return {
btnStyle: {
'background-image': 'linear-gradient(-90deg, #e26165 0%, #c10d12 94%, #c10d12 100%)',
'font-weight': '500',
'font-size': '28rpx',
'color': '#fff',
'width': '436rpx',
'margin': '0 auto',
'letter-spacing': '2rpx'
},
form: {
name: ''
},
rules: {
}
};
}
}
</script>
<style lang="scss">
page {
background: #fff;
}
</style>
<style lang="scss" scoped>
.container {
padding: 34rpx 44rpx;
margin: 34rpx 25rpx 95rpx;
border-radius: 10rpx;
filter: drop-shadow(0 0 10rpx rgba(211,211,214,0.3));
background-color: #ffffff;
::v-deep .u-input__input {
text-align: right;
}
}
</style>

@ -15,89 +15,259 @@
</view>
</view>
<view class="switch-service">
<view class="switch-service__icon">
<u-icon name="integral" size="30"></u-icon>
</view>
<view v-if="currentStep === 0">
<view class="switch-service">
<view class="switch-service__icon">
<u-icon name="integral" size="30"></u-icon>
</view>
<view class="switch-service__name">
专享半天陪诊
</view>
<view class="switch-service__name">
专享半天陪诊
</view>
<view class="switch-service__btn" @click="isShowService = true">
<image src="~@/static/switch.png" mode="aspectFit"></image>
<text>更换服务</text>
<view class="switch-service__btn" @click="isShowService = true">
<image src="~@/static/switch.png" mode="aspectFit"></image>
<text>更换服务</text>
</view>
</view>
<u-form :model="form" ref="uForm" :label-width="178" :label-style="{ 'font-weight': '500','font-size': '24rpx' }">
<view class="form-card form-card-1">
<u-form-item label="就诊城市">
<u-input type="select" placeholder="请选择就诊城市" v-model="form.name" :select-open="isShowCity" @click="isShowCity = true"/>
</u-form-item>
<u-form-item label="就诊医院">
<u-input v-model="form.name" placeholder="请输入就诊医院" />
</u-form-item>
<u-form-item label="就诊时间">
<u-input type="select" v-model="form.name" :select-open="isShowTime" @click="isShowTime = true"/>
</u-form-item>
<u-form-item label="就诊人">
<u-input v-model="form.name" />
</u-form-item>
<u-form-item label="是否可以自理">
<u-radio-group v-model="form.name" slot="right" active-color="#c20d12">
<u-radio :name="1"></u-radio>
<u-radio :name="0"></u-radio>
</u-radio-group>
</u-form-item>
<u-form-item label="预约人">
<u-input v-model="form.name" placeholder="请填写预约人" />
</u-form-item>
<u-form-item label="预约人电话">
<u-input v-model="form.name" placeholder="请填写预约人电话" />
</u-form-item>
<u-form-item label="选择陪诊师性别" :border-bottom="false">
<u-radio-group v-model="form.name" slot="right" active-color="#c20d12">
<u-radio name="男"></u-radio>
<u-radio name="女"></u-radio>
<u-radio name="任意">任意</u-radio>
</u-radio-group>
</u-form-item>
</view>
<view class="form-card form-card-2">
<view class="title">
<view class="title__left">
<text>上传资料</text>
<text>就诊卡病例等</text>
</view>
<view class="title__right">
点击查看示例
</view>
</view>
<u-upload :action="action" :file-list="fileList" ></u-upload>
</view>
<view class="form-card form-card-3">
<view class="title">
其他服务需求
</view>
<u-form-item :label-width="0" :border-bottom="false">
<u-input border
:custom-style="{ 'letter-spacing': '2rpx' }"
border-color="#dad9d9"
placeholder="请简单描述您要就诊的科室及就诊内容(内容加密保护)"
v-model="form.name"
type="textarea"></u-input>
</u-form-item>
</view>
</u-form>
</view>
<u-form :model="form" ref="uForm" :label-width="178" :label-style="{ 'font-weight': '500','font-size': '24rpx' }">
<view class="form-card form-card-1">
<u-form-item label="就诊城市">
<u-input type="select" placeholder="请选择就诊城市" v-model="form.name" :select-open="isShowCity" @click="isShowCity = true"/>
</u-form-item>
<u-form-item label="就诊医院">
<u-input v-model="form.name" placeholder="请输入就诊医院" />
</u-form-item>
<u-form-item label="就诊时间">
<u-input type="select" v-model="form.name" :select-open="isShowTime" @click="isShowTime = true"/>
</u-form-item>
<u-form-item label="就诊人">
<u-input v-model="form.name" />
</u-form-item>
<u-form-item label="是否可以自理">
<u-radio-group v-model="form.name" slot="right" active-color="#c20d12">
<u-radio :name="1"></u-radio>
<u-radio :name="0"></u-radio>
</u-radio-group>
</u-form-item>
<u-form-item label="预约人">
<u-input v-model="form.name" placeholder="请填写预约人" />
</u-form-item>
<u-form-item label="预约人电话">
<u-input v-model="form.name" placeholder="请填写预约人电话" />
</u-form-item>
<u-form-item label="选择陪诊师性别" :border-bottom="false">
<u-radio-group v-model="form.name" slot="right" active-color="#c20d12">
<u-radio name="男"></u-radio>
<u-radio name="女"></u-radio>
<u-radio name="">任意</u-radio>
</u-radio-group>
</u-form-item>
<view v-if="currentStep === 3">
<view class="switch-service">
<view class="switch-service__icon">
<u-icon name="integral" size="30"></u-icon>
</view>
<view class="switch-service__name">
<view>医康养 就医省心</view>
<view style="font-size: 24rpx;color: #999999;">期待下次为您服务</view>
</view>
<view class="switch-service__btn" style="font-size: 24rpx;color: #999999;">
订单已完成
</view>
</view>
<view class="form-card form-card-2">
<view class="title">
<view class="title__left">
<text>上传资料</text>
<text>就诊卡病例等</text>
<view class="desc-card">
<view class="desc-card__title">
预约信息
</view>
<view class="desc-card__content">
<view class="desc-card__content--title">
就诊城市
</view>
<view class="desc-card__content--value">
苏州
</view>
<br>
<view class="desc-card__content--title">
就诊医院
</view>
<view class="desc-card__content--value">
苏打附属
</view>
<br>
<view class="desc-card__content--title">
就诊时间
</view>
<view class="title__right">
点击查看示例
<view class="desc-card__content--value">
2024-11-22
</view>
<br>
<view class="desc-card__content--title">
预约人
</view>
<view class="desc-card__content--value">
xxx
</view>
<br>
<view class="desc-card__content--title">
预约人电话
</view>
<view class="desc-card__content--value">
18888888888
</view>
<br>
<view class="desc-card__content--title">
陪诊师性别
</view>
<view class="desc-card__content--value">
都可以
</view>
<br>
<view class="desc-card__content--title">
服务需求
</view>
<view class="desc-card__content--value">
</view>
</view>
<u-upload :action="action" :file-list="fileList" ></u-upload>
</view>
<view class="form-card form-card-3">
<view class="title">
其他服务需求
<view class="desc-card">
<view class="desc-card__title">
就诊人信息
</view>
<view class="desc-card__content">
<view class="desc-card__content--title">
姓名
</view>
<view class="desc-card__content--value">
aa
</view>
<br>
<view class="desc-card__content--title">
性别
</view>
<view class="desc-card__content--value">
</view>
<br>
<view class="desc-card__content--title">
年龄
</view>
<view class="desc-card__content--value">
55
</view>
<br>
<view class="desc-card__content--title">
手机号
</view>
<view class="desc-card__content--value">
15555555555
</view>
<br>
<view class="desc-card__content--title">
行动能力
</view>
<view class="desc-card__content--value">
无障碍
</view>
</view>
<u-form-item :label-width="0" :border-bottom="false">
<u-input border
:custom-style="{ 'letter-spacing': '2rpx' }"
border-color="#dad9d9"
placeholder="请简单描述您要就诊的科室及就诊内容(内容加密保护)"
v-model="form.name"
type="textarea"></u-input>
</u-form-item>
</view>
</u-form>
<view class="is-auth">
<u-checkbox v-model="isAuth" shape="circle" active-color="#c20d12">
<text style="padding-left: 10rpx;">我已认真阅读预约相关</text>
<text style="color: #c20d12;" @click.stop.prevent>服务条款同意书</text>
</u-checkbox>
<view class="desc-card">
<view class="desc-card__title">
订单信息
</view>
<view class="desc-card__content">
<view class="desc-card__content--title">
服务内容
</view>
<view class="desc-card__content--value">
专享半天陪诊
</view>
<br>
<view class="desc-card__content--title">
服务标价
</view>
<view class="desc-card__content--value">
¥ 288
</view>
<br>
<view class="desc-card__content--title">
订单金额
</view>
<view class="desc-card__content--value">
¥ 288
</view>
<br>
<view class="desc-card__content--title">
订单编号
</view>
<view class="desc-card__content--value">
PZ2024111855448048
</view>
<br>
<view class="desc-card__content--title">
下单日期
</view>
<view class="desc-card__content--value">
2024-11-18 17:48:47
</view>
</view>
</view>
</view>
</view>
@ -107,13 +277,129 @@
<text>¥ 600.00</text>
</view>
<u-button shape="circle" ripple :custom-style="payBtnStyle" @click="next"></u-button>
<u-button shape="circle" ripple :custom-style="payBtnStyle" @click="pay"></u-button>
</view>
<u-select v-model="isShowService" :list="services"></u-select>
<u-popup v-model="isShowService" mode="bottom" safe-area-inset-bottom closeable :border-radius="10" :height="800">
<view class="service-list">
<view class="service-list-item" v-for="i in 10" :key="i">
<view class="service-list-item__icon">
<u-icon name="integral" size="30"></u-icon>
</view>
<view class="service-list-item__name">
专享半天陪诊
</view>
<view class="service-list-item__price">
¥600
</view>
</view>
</view>
</u-popup>
<u-select v-model="isShowCity" :list="cities"></u-select>
<u-picker v-model="isShowTime" mode="time"></u-picker>
<u-top-tips ref="uTips"></u-top-tips>
<u-popup v-model="isShowPayPopup"
class="pay-popup"
mode="bottom"
closeable
:z-index="10073"
:close-icon-size="40"
close-icon="close-circle"
:border-radius="20"
:height="800">
<view class="pay-popup-container">
<view class="service">
<view class="service__icon">
<u-icon name="integral" size="40"></u-icon>
</view>
<view class="service__text">
<view class="service__text--price">¥600.00</view>
<view class="service__text--name">专享半天陪诊</view>
</view>
</view>
<view class="row">
<view class="row__title">
平台保障
</view>
<view class="row__content d-flex ai-center cards">
<view class="cards__icon d-flex jc-center ai-center">
<u-icon name="integral" size="30"></u-icon>
</view>
<view style="padding-left: 18rpx;" class="flex-1">
<view class="d-flex ai-center">
<view style="font-size: 28rpx;">半天陪诊·3次卡</view>
<view class="d-flex ai-center" style="margin-left: auto;">
<text style="font-size: 24rpx;padding-right: 22rpx;font-weight: bold;">¥ 600</text>
<u-checkbox :value="false" shape="circle" active-color="#c20d12" />
</view>
</view>
<view class="d-flex ai-center">
<view style="color: #999;font-size: 24rpx;">本次预约可直接抵扣1次</view>
<view style="font-size: 16rpx;color: #999;font-weight: 500;margin-left: auto;">低至¥246/</view>
</view>
</view>
</view>
</view>
<view class="row">
<view class="row__title">
平台保障
</view>
<view class="row__content d-flex jc-center">
<view class="row__content--first"></view>
<view class="row__content--name">陪诊服务险</view>
<view class="d-flex ai-center" style="margin-left: auto;">
<text style="font-size: 24rpx;padding-right: 22rpx;font-weight: bold;">¥ 600</text>
<u-checkbox :value="false" shape="circle" active-color="#c20d12" />
</view>
</view>
</view>
<view class="row">
<view class="row__title">
本单优惠
</view>
<view class="row__content d-flex jc-center">
<view class="row__content--first" style="background: #c31014;"></view>
<view class="row__content--name" style="color: #999;">请选择优惠券</view>
<view style="margin-left: auto;">
<u-icon name="arrow-down" :size="24"></u-icon>
</view>
</view>
</view>
<view class="row use-card">
新人优惠券 20 服务满1元可用
</view>
<view class="row">
<view class="row__content d-flex jc-center">
<view class="row__content--first" style="background: #c31014;"></view>
<view class="row__content--name">无忧赠险保障</view>
<view style="margin-left: auto;color: #c31014;">
-25
</view>
</view>
</view>
<view class="is-auth">
<u-checkbox v-model="isAuth" shape="circle" active-color="#c20d12">
<text style="padding-left: 10rpx;">我已认真阅读预约相关</text>
<text style="color: #c20d12;" @click.stop.prevent>服务条款同意书</text>
</u-checkbox>
</view>
</view>
</u-popup>
<u-top-tips :z-index="10080" ref="uTips"></u-top-tips>
</view>
</template>
@ -181,12 +467,19 @@ export default {
rules: {},
fileList: [],
action: '',
isAuth: false
isAuth: false,
//
// pay popup
isShowPayPopup: false,
};
},
methods: {
next () {
pay () {
if (!this.isShowPayPopup) {
this.isShowPayPopup = true
return
}
if (!this.isAuth && this.currentStep === 0) {
this.$refs.uTips.show({
title: '请认真阅读《服务条款同意书》',
@ -195,7 +488,8 @@ export default {
})
return
}
this.currentStep++
this.isShowPayPopup = false
this.currentStep = 3
}
},
onReady() {
@ -204,6 +498,159 @@ export default {
}
</script>
<style lang="scss">
.d-flex {
display: flex;
}
.jc-center {
justify-content: center;
}
.ai-center {
align-items: center;
}
.flex-1 {
flex: 1;
}
.pay-popup > .u-drawer {
bottom: calc(constant(safe-area-inset-bottom) + 80rpx + 28rpx + 27rpx) !important;
bottom: calc(env(safe-area-inset-bottom) + 80rpx + 28rpx + 27rpx) !important;
}
.pay-popup > .u-drawer .u-drawer-bottom {
overflow: initial !important;
background: #f4efee;
&::before {
font: normal normal normal 14px / 1 uicon-iconfont;
content: '\e65f 陪诊有保障,就医更安心';
font-size: 24rpx;
line-height: 70rpx;
color: #ffffff;
font-weight: 500;
box-sizing: border-box;
background: linear-gradient(90deg, #c10d12 0%, #c10d12 4%, #e16265 99%, #e16265 100%);
position: absolute;
width: 100%;
height: 100rpx;
padding-left: 70rpx;
border-radius: 20rpx 20rpx 0 0;
top: -70rpx;
left: 0;
}
}
.pay-popup > .u-drawer .u-mask {
bottom: calc(constant(safe-area-inset-bottom) + 80rpx + 28rpx) !important;
bottom: calc(env(safe-area-inset-bottom) + 80rpx + 28rpx) !important;
}
.pay-popup > .u-drawer .u-drawer__scroll-view {
position: relative;
background: #f4efee;
}
.pay-popup {
&-container {
padding-bottom: 20rpx;
.service {
border-radius: 10rpx;
padding: 28rpx 39rpx;
margin: 32rpx 25rpx 0;
display: flex;
align-items: center;
&__icon {
display: flex;
justify-content: center;
align-items: center;
background: #f1e7d9;
padding: 20rpx;
width: 124rpx;
height: 122rpx;
}
&__text {
padding-left: 12rpx;
font-weight: 500;
&--price {
font-size: 40rpx;
color: #c20d12;
font-weight: 500;
}
&--name {
font-size: 24rpx;
color: #333333;
font-weight: 500;
}
}
}
.row {
margin: 30rpx 46rpx 0;
&__title {
padding-left: 22rpx;
font-size: 28rpx;
line-height: 40rpx;
color: #000000;
font-weight: 500;
}
&__content {
margin-top: 26rpx;
padding: 22rpx;
background: #fff;
border-radius: 5rpx;
&--first {
width: 51rpx;
height: 47rpx;
border-radius: 15rpx;
line-height: 47rpx;
text-align: center;
font-size: 30rpx;
color: #fff;
background-color: #e1a664;
}
&--name {
font-size: 28rpx;
line-height: 47rpx;
color: #000000;
font-weight: 500;
padding-left: 16rpx;
}
}
.u-checkbox__label {
margin: 0;
}
}
.cards {
&__icon {
width: 90rpx;
height: 83rpx;
background: #f3e7d8;
border-radius: 10rpx;
}
}
.use-card {
text-align: center;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
width: 570rpx;
margin: 30rpx auto 0;
height: 66rpx;
line-height: 66rpx;
font-size: 28rpx;
color: #e1a664;
font-weight: 500;
background: #f1e7d9;
}
.is-auth {
padding-left: 56rpx;
margin-top: 22rpx;
}
}
}
</style>
<style lang="scss" scoped>
.page {
position: relative;
@ -362,6 +809,49 @@ export default {
::v-deep .form-card-1 .u-input__input {
text-align: right;
}
.desc-card {
border-bottom: 2rpx solid #efefef;
padding: 48rpx 70rpx 46rpx;
&__title {
font-size: 28rpx;
color: #000000;
font-weight: bold;
position: relative;
padding-left: 24rpx;
&::before {
content: '';
background: linear-gradient(0deg, #c10d12 0%, #c10d12 6%, #e26165 100%);
border-radius: 4rpx;
width: 6rpx;
position: absolute;
top: 0;
left: 0;
bottom: 0;
}
}
&__content {
line-height: 65rpx;
margin-top: 34rpx;
&--title {
display: inline-block;
width: 240rpx;
padding-right: 64rpx;
font-size: 24rpx;
color: #999999;
font-weight: 500;
}
&--value {
display: inline-block;
font-size: 24rpx;
color: #333333;
font-weight: 500;
}
}
}
}
}
.bottom-bar {
@ -374,7 +864,7 @@ export default {
width: 100vw;
left: 0;
bottom: 0;
z-index: 10;
z-index: 10074;
display: flex;
align-items: center;
justify-content: space-between;
@ -394,4 +884,41 @@ export default {
}
}
}
.service-list {
padding-top: 80rpx;
&-item {
border: 2rpx solid #e6e6eb;
border-radius: 10rpx;
background-color: #ffffff;
margin: 0 25rpx;
padding: 28rpx 39rpx;
display: flex;
align-items: center;
&__icon {
display: flex;
justify-content: center;
align-items: center;
background: #f9f5e9;
padding: 20rpx;
}
&__name {
padding-left: 14rpx;
font-size: 28rpx;
color: #333333;
font-weight: 500;
}
&__price {
color: #c20d12;
font-weight: 500;
margin-left: auto;
}
}
&-item + &-item {
margin-top: 20rpx;
}
}
</style>

@ -56,7 +56,9 @@ export default {
};
},
mounted() {
this.$store.dispatch('getLocation')
if (this.$store.state.vuex_location !== 2) {
this.$store.dispatch('getLocation')
}
},
methods: {
toOrder(item) {

@ -58,6 +58,12 @@
"navigationBarTitleText": "服务项目",
"enablePullDownRefresh": true
}
},
{
"path": "ServiceObject/ServiceObject",
"style": {
"navigationBarTitleText": "服务对象"
}
}
]
}

@ -1,25 +1,25 @@
<template>
<view>
<city-select
@cityClick="cityClick"
formatName="cityName"
:activeCity="activeCity"
:hotCity="hotCity"
:obtainCitys="obtainCitys"
:isSearch="true"
:is-refresh="true"
ref="citys"
@refreshLocation="refreshLocation"
@cityClick="cityClick"
formatName="cityName"
:activeCity="activeCity"
:hotCity="hotCity"
:obtainCitys="obtainCitys"
:isSearch="true"
:is-refresh="true"
ref="citys"
@refreshLocation="refreshLocation"
></city-select>
</view>
</template>
<script>
import citys from '@/component/CitySelect/citys.js'
import CitySelect from "@/component/CitySelect/city-select.vue"
import citys from "@/component/CitySelect/citys.js";
import CitySelect from "@/component/CitySelect/city-select.vue";
export default {
components: {
CitySelect
CitySelect,
},
data() {
return {
@ -27,74 +27,77 @@ export default {
//
activeCity: {},
//
hotCity: [
{
id: 0,
title: '南京市'
},
{
id: 1,
title: '南京市'
}
],
hotCity: [],
//
obtainCitys: []
obtainCitys: [],
};
},
watch: {
vuex_location: {
handler:function(newVal, oldVal) {
handler: function (newVal, oldVal) {
this.activeCity = {
cityName: newVal.city,
cityCode: newVal.cityCode
}
cityCode: newVal.cityCode,
};
},
deep: true,
immediate: true
}
immediate: true,
},
},
mounted() {
this.$store.dispatch('getLocation')
if (this.$store.state.vuex_location.status !== 2) {
this.$store.dispatch("getLocation");
}
},
onLoad () {
onLoad() {
//
setTimeout(() => {
//
this.formatName = 'cityName'
this.formatName = "cityName";
//
this.activeCity = {
cityName: this.vuex_location.city,
cityCode: this.vuex_location.cityCode
}
cityCode: this.vuex_location.cityCode,
};
//
this.hotCity = [
{
cityName: '南京',
cityCode: 110100
cityName: "南京",
cityCode: 320100,
},
{
cityCode: "320400",
cityName: "常州",
},
{
cityName: '北京',
cityCode: 110102
}
]
cityCode: "320500",
cityName: "苏州",
},
{
cityCode: "310100",
cityName: "上海",
},
{
cityCode: "320200",
cityName: "无锡",
},
];
//
this.obtainCitys = citys
}, 0)
this.obtainCitys = citys;
}, 0);
},
methods: {
refreshLocation() {
this.$store.dispatch('getLocation')
this.$store.dispatch("getLocation");
},
cityClick(item) {
this.$store.commit('SET_CITY',{
this.$store.commit("SET_CITY", {
cityName: item.cityName,
cityCode: item.cityCode
})
}
}
}
cityCode: item.cityCode,
});
},
},
};
</script>
<style lang="scss">
</style>
<style lang="scss"></style>

@ -216,7 +216,9 @@ export default {
},
mounted() {
this.getElScrollTop()
this.$store.dispatch('getLocation')
if (this.$store.state.vuex_location.status !== 2) {
this.$store.dispatch('getLocation')
}
},
created() {
this.menuButtonRight =

@ -17,58 +17,68 @@
</view>
<swiper class="swiper-box" :current="swiperCurrent" @transition="transition" @animationfinish="animationfinish">
<swiper-item class="swiper-item">
<scroll-view scroll-y style="height: 100%;width: 100%;" @scrolltolower="reachBottom">
<view class="order" v-for="i in 10" :key="i">
<view class="title">
<view class="title__name">专享半天陪诊</view>
<view class="title__status">待支付</view>
</view>
<view class="price">
<view class="price-icon">
<u-icon name="integral" size="30"></u-icon>
<scroll-view
refresher-enabled
scroll-y
style="height: 100%;width: 100%;"
@scrolltolower="reachBottom">
<view>
<view class="order" v-for="i in 10" :key="i">
<view class="title">
<view class="title__name">专享半天陪诊</view>
<view class="title__status">待支付</view>
</view>
<view class="price-text">
<view class="price-text__num">600</view>
<view class="price-text__no">订单号 PZ2024111855448048</view>
</view>
</view>
<view class="price">
<view class="price-icon">
<u-icon name="integral" size="30"></u-icon>
</view>
<view class="info">
<view class="info__item">
<text>就诊城市</text>
<text>苏州</text>
</view>
<view class="info__item">
<text>就诊医院</text>
<text>苏大附属</text>
<view class="price-text">
<view class="price-text__num">600</view>
<view class="price-text__no">订单号 PZ2024111855448048</view>
</view>
</view>
<view class="info__item">
<text>就诊人</text>
<text>萍萍</text>
</view>
<view class="info__item">
<text>就诊时间</text>
<text>2024-12-18 17:00</text>
</view>
</view>
<view class="bottom">
<view class="time">
<text>下单时间: </text>
<text>2024-11-18 17:48:47</text>
<view class="info">
<view class="info__item">
<text>就诊城市</text>
<text>苏州</text>
</view>
<view class="info__item">
<text>就诊医院</text>
<text>苏大附属</text>
</view>
<view class="info__item">
<text>就诊人</text>
<text>萍萍</text>
</view>
<view class="info__item">
<text>就诊时间</text>
<text>2024-12-18 17:00</text>
</view>
</view>
<u-button ripple shape="circle" :custom-style="payBtnStyle">立即支付</u-button>
<view class="bottom">
<view class="time">
<text>下单时间: </text>
<text>2024-11-18 17:48:47</text>
</view>
<u-button ripple shape="circle" :custom-style="payBtnStyle">立即支付</u-button>
</view>
</view>
<u-loadmore :status="loadStatus[0]" bgColor="#f2f2f2"></u-loadmore>
</view>
</scroll-view>
</swiper-item>
<swiper-item class="swiper-item">
<scroll-view scroll-y style="height: 100%;width: 100%;" @scrolltolower="reachBottom">
<view style="height: 100%;" class="d-flex ai-center jc-center">
<u-empty mode="order"></u-empty>
</view>
</scroll-view>
</swiper-item>
@ -97,7 +107,6 @@
</swiper-item>
</swiper>
</view>
<Tabbar />
</view>
</template>
@ -144,20 +153,29 @@ export default {
swiperCurrent: 0,
tabsHeight: 0,
dx: 0,
scrollTop: [],
loadStatus: [],
refresherStatus: [],
};
},
onLoad() {
},
created() {
this.loadStatus = Array.from({ length: this.tabs.length },_ => 'loadmore')
for(let i = 0;i < this.tabs.length;i++) {
this.refresherStatus.push(false)
this.loadStatus.push('loadmore')
}
},
computed: {
},
methods: {
reachBottom() {
// tab
this.loadStatus.splice(this.current,1,"loading")
setTimeout(() => {
this.loadStatus.splice(this.current,1,"nomore")
}, 2000)
},
// tab
change(index) {
@ -183,7 +201,18 @@ page {
</style>
<style lang="scss" scoped>
::v-deep .u-load-more-wrap {
padding: 20rpx 0;
}
.d-flex {
display: flex;
}
.ai-center {
align-items: center;
}
.jc-center {
justify-content: center;
}
.wrap {
display: flex;
flex-direction: column;

@ -39,7 +39,8 @@ const store = new Vuex.Store({
latitude: '',
longitude: '',
city: '',
cityCode: ''
cityCode: '',
status: 0, // 0失败 1成功 2手动选择
}
},
mutations: {
@ -67,6 +68,7 @@ const store = new Vuex.Store({
SET_CITY(state, { cityName, cityCode }) {
state.vuex_location.city = cityName
state.vuex_location.cityCode = cityCode
state.vuex_location.status = 2
}
},
actions: {
@ -97,8 +99,10 @@ const store = new Vuex.Store({
}
state.vuex_location.city = address?.result?.ad_info.city
state.vuex_location.cityCode = address?.result?.ad_info?.city_code
state.vuex_location.status = 1
} catch (err) {
console.error(err)
state.vuex_location.status = 0
uni.showToast({
title: '获取定位失败',
icon: 'none',

@ -1,7 +1,7 @@
/* 颜色变量 */
/* 行为相关颜色 */
$uni-color-primary: #007aff;
$uni-color-primary: #ca2328;
$uni-color-success: #4cd964;
$uni-color-warning: #f0ad4e;
$uni-color-error: #dd524d;
@ -63,4 +63,4 @@ $uni-font-size-paragraph:15px;
/* uni.scss */
@import 'uview-ui/theme.scss';
@import 'uview-ui/theme.scss';

@ -9,10 +9,10 @@ $u-light-color: #c0c4cc;
$u-border-color: #e4e7ed;
$u-bg-color: #f3f4f6;
$u-type-primary: #2979ff;
$u-type-primary: #ca2328;
$u-type-primary-light: #ecf5ff;
$u-type-primary-disabled: #a0cfff;
$u-type-primary-dark: #2b85e4;
$u-type-primary-dark: #b65958;
$u-type-warning: #ff9900;
$u-type-warning-disabled: #fcbd71;

Loading…
Cancel
Save