...
|
...
|
@@ -42,6 +42,314 @@ |
|
|
.swiper_item {
|
|
|
/*padding: 0.28rem 0.25rem;*/
|
|
|
}
|
|
|
.meal {
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
|
justify-content: flex-end;
|
|
|
position: fixed;
|
|
|
top: 0;
|
|
|
left: 0;
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
z-index: 100;
|
|
|
background-color: rgba(0,0,0,.5);
|
|
|
}
|
|
|
|
|
|
.meal_title {
|
|
|
text-align: center;
|
|
|
color: #424242;
|
|
|
font-size: 15px;
|
|
|
font-weight: bold;
|
|
|
border-bottom: 1px solid #ccc;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: space-between;
|
|
|
padding: 0.25rem;
|
|
|
}
|
|
|
|
|
|
.meal_price_box {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: space-between;
|
|
|
font-size: 12px;
|
|
|
color: #424242;
|
|
|
padding: 0.25rem 10% 0 10%;
|
|
|
}
|
|
|
|
|
|
.meal_price {
|
|
|
color: #d8b25f;
|
|
|
font-size: 9px;
|
|
|
margin-left: 0.1rem;
|
|
|
}
|
|
|
|
|
|
.incer {
|
|
|
color: #ccc;
|
|
|
font-size: 9px;
|
|
|
padding: 0 10%;
|
|
|
}
|
|
|
|
|
|
.sever_list {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
flex-wrap: wrap;
|
|
|
font-size: 12px;
|
|
|
padding: 0.25rem 10%;
|
|
|
}
|
|
|
|
|
|
.sever_list span {
|
|
|
background-color: #f2f2f2;
|
|
|
padding: 0.1rem 0.2rem;
|
|
|
margin: 0 0.2rem 0.2rem 0;
|
|
|
border-radius: 0.07rem;
|
|
|
}
|
|
|
|
|
|
.sever_list .span_active {
|
|
|
background-color: #dbb25f;
|
|
|
color: #fff;
|
|
|
}
|
|
|
|
|
|
.meal_item {
|
|
|
background-color: #fff;
|
|
|
}
|
|
|
|
|
|
.pay_box {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: space-between;
|
|
|
padding: 0 10% 0.25rem 10%;
|
|
|
}
|
|
|
|
|
|
.pay_num {
|
|
|
font-size: 12px;
|
|
|
color: #424242;
|
|
|
}
|
|
|
|
|
|
.pay_btn_box {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
|
|
|
}
|
|
|
|
|
|
.pay_btn_box .iconfont {
|
|
|
font-size: 20px;
|
|
|
color: #ccc;
|
|
|
}
|
|
|
|
|
|
.pay_btn_box input {
|
|
|
width: 0.5rem;
|
|
|
text-align: center;
|
|
|
border: 0;
|
|
|
outline: none;
|
|
|
font-size: 15px;
|
|
|
}
|
|
|
|
|
|
.pay_num .limit {
|
|
|
padding: 0;
|
|
|
font-size: 9px;
|
|
|
color: #ccc;
|
|
|
}
|
|
|
|
|
|
.price {
|
|
|
flex: 1;
|
|
|
text-align: right;
|
|
|
}
|
|
|
|
|
|
.price .meal_price {
|
|
|
font-size: 12px;
|
|
|
}
|
|
|
|
|
|
.price .old_price {
|
|
|
text-decoration: line-through;
|
|
|
color: #ccc;
|
|
|
margin-left: 0.1rem;
|
|
|
}
|
|
|
|
|
|
.pay_btn {
|
|
|
font-size: 15px;
|
|
|
color: #fff;
|
|
|
background-color: #dbb25f;
|
|
|
text-align: center;
|
|
|
padding: 0.2rem 0;
|
|
|
}
|
|
|
|
|
|
.icon-cuohao {
|
|
|
font-size: 15px;
|
|
|
color: #424242;
|
|
|
}
|
|
|
|
|
|
.save_btn {
|
|
|
text-align: center;
|
|
|
font-size: 0.36rem;
|
|
|
color: #fff;
|
|
|
padding: 0.15rem 0;
|
|
|
width: 100%;
|
|
|
position: absolute;
|
|
|
left: 0;
|
|
|
bottom: 0;
|
|
|
z-index: 100;
|
|
|
background-color: #dbb25f;
|
|
|
}
|
|
|
|
|
|
.moreoul {
|
|
|
width: 100%;
|
|
|
}
|
|
|
|
|
|
.moreoul li {
|
|
|
width: 100%;
|
|
|
padding: 0.3rem 0;
|
|
|
line-height: 0.3rem;
|
|
|
font-size: 16px;
|
|
|
border-bottom: 1px solid #f0f0f0;
|
|
|
text-align: center;
|
|
|
}
|
|
|
|
|
|
.nodata {
|
|
|
font-size: 16px;
|
|
|
color: #c0c0c0;
|
|
|
text-align: center;
|
|
|
padding: 0.5rem 0;
|
|
|
width: 100% !important;
|
|
|
}
|
|
|
|
|
|
.weui-picker__indicator:after {
|
|
|
border-bottom: 1px solid #dbb25f;
|
|
|
}
|
|
|
|
|
|
.weui-picker__indicator:before {
|
|
|
border-top: 1px solid #dbb25f;
|
|
|
}
|
|
|
|
|
|
.weui-picker__action {
|
|
|
padding: 0.2rem 0;
|
|
|
font-size: 13px;
|
|
|
text-align: center;
|
|
|
}
|
|
|
|
|
|
.weui-picker__action:first-child {
|
|
|
color: #333;
|
|
|
text-align: center;
|
|
|
}
|
|
|
|
|
|
.weui-picker__action:last-child {
|
|
|
color: #fff;
|
|
|
text-align: center;
|
|
|
background-color: #dbb25f;
|
|
|
}
|
|
|
|
|
|
.weui-picker__hd {
|
|
|
padding: 0;
|
|
|
}
|
|
|
|
|
|
.weui-picker__item {
|
|
|
font-size: 13px;
|
|
|
}
|
|
|
|
|
|
.close_left {
|
|
|
position: relative;
|
|
|
}
|
|
|
|
|
|
.close_left::before {
|
|
|
position: absolute;
|
|
|
left: -0.1rem;
|
|
|
right: -0.1rem;
|
|
|
top: -0.1rem;
|
|
|
bottom: -0.1rem;
|
|
|
content: '';
|
|
|
}
|
|
|
|
|
|
.mint-popup-bottom {
|
|
|
width: 100%;
|
|
|
}
|
|
|
|
|
|
.weui-check__label:active {
|
|
|
background: transparent;
|
|
|
}
|
|
|
|
|
|
.weui-cells_checkbox .weui-icon-checked:before {
|
|
|
/*content: '';*/
|
|
|
}
|
|
|
|
|
|
.weui-cells_checkbox .weui-check:checked + .weui-icon-checked:before {
|
|
|
color: #dbb25f
|
|
|
}
|
|
|
|
|
|
.weui-cell__hd {
|
|
|
position: relative;
|
|
|
}
|
|
|
|
|
|
.weui-cell__hd::before {
|
|
|
content: '';
|
|
|
position: absolute;
|
|
|
left: -10px;
|
|
|
right: -10px;
|
|
|
top: -10px;
|
|
|
bottom: -10px;
|
|
|
}
|
|
|
|
|
|
.mold_index {
|
|
|
position: fixed;
|
|
|
height: 100%;
|
|
|
width: 100%;
|
|
|
background-color: rgba(0, 0, 0, 0.05);
|
|
|
/*background-color: #000;*/
|
|
|
left: 0;
|
|
|
top: 0;
|
|
|
bottom: 0;
|
|
|
z-index: 10;
|
|
|
}
|
|
|
|
|
|
.weui-mask, .weui-mask_transparent {
|
|
|
position: fixed;
|
|
|
z-index: 1000;
|
|
|
top: 0;
|
|
|
right: 0;
|
|
|
left: 0;
|
|
|
bottom: 0;
|
|
|
width: 100%;
|
|
|
height: 100%;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
justify-content: center;
|
|
|
}
|
|
|
|
|
|
.weui-toast {
|
|
|
position: fixed;
|
|
|
z-index: 5000;
|
|
|
width: 40%;
|
|
|
min-width: 20%;
|
|
|
min-height: auto;
|
|
|
height: auto;
|
|
|
top: 50%;
|
|
|
left: 0;
|
|
|
right: 0;
|
|
|
margin: 0 auto;
|
|
|
/*margin-left: -3.8em;*/
|
|
|
background: hsla(0, 0%, 7%, .7);
|
|
|
text-align: center;
|
|
|
border-radius: 5px;
|
|
|
color: #fff;
|
|
|
font-size: 14px;
|
|
|
}
|
|
|
|
|
|
.weui-icon_toast {
|
|
|
margin: 0;
|
|
|
/*display: block*/
|
|
|
}
|
|
|
|
|
|
.weui-toast__content {
|
|
|
margin: 0;
|
|
|
padding: 0.1rem 0;
|
|
|
}
|
|
|
|
|
|
.weui-icon_toast.weui-icon-success-no-circle {
|
|
|
font-size: 0;
|
|
|
}
|
|
|
|
|
|
.weui-icon_toast.weui-icon-success-no-circle:before {
|
|
|
color: #fff;
|
|
|
font-size: 0;
|
|
|
margin: 0;
|
|
|
}
|
|
|
</style>
|
|
|
</head>
|
|
|
<body>
|
...
|
...
|
@@ -105,10 +413,79 @@ |
|
|
<span class="doc_appointment" @click="openOrder" v-else>去 预 约</span>
|
|
|
</div>
|
|
|
</footer>
|
|
|
<!--预约-->
|
|
|
<div @click="close" class="meal" v-if="room">
|
|
|
<div class="meal_item" @click.stop>
|
|
|
<div class="meal_title">
|
|
|
<span></span>
|
|
|
<span>入住选择</span>
|
|
|
<span class="iconfont icon-cuohao" @click="close"></span>
|
|
|
</div>
|
|
|
<div class="room_box">
|
|
|
<div class="room_left">
|
|
|
<div><span>服务价格</span><span class="youhui">优惠¥{{price_info.count?price_info.count:0}}</span></div>
|
|
|
</div>
|
|
|
<div class="room_right">
|
|
|
<span>¥{{price_info.price?price_info.price:0}}</span>
|
|
|
<span class="old_price">原价{{price_info.o_price?price_info.o_price:0}}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="room_tips">此价格包含护理、房间、用餐费用</div>
|
|
|
<div class="price_box">
|
|
|
<div class="price_left">
|
|
|
<span :class="{'span_active':index==active_index}"
|
|
|
v-for="(item,index) in attribute[0]"
|
|
|
@click="choose_left(index)">{{item}}</span>
|
|
|
</div>
|
|
|
<div class="price_right">
|
|
|
<span :class="{'span_active':index==active_index2}"
|
|
|
v-for="(item,index) in attribute[1]"
|
|
|
@click="choose_right(index)">{{item}}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="pay_box">
|
|
|
<span class="pay_num">入住周期 <span
|
|
|
class="limit">({{price_info.limit_num?price_info.limit_num:0}}{{unit}})</span></span>
|
|
|
<div class="pay_btn_box">
|
|
|
<span class="iconfont icon-jian" @click="reduce"></span>
|
|
|
<input type="number" placeholder="" value="1" v-model="num">
|
|
|
<span class="iconfont icon-jikediancanicon09" @click="plus"></span>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="pay_btn" @click.stop="pay_go">确定</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div @click="close" class="meal" v-if="taocan">
|
|
|
<div class="meal_item" @click.stop>
|
|
|
<div class="meal_title"><span></span><span>选择套餐</span><span class="iconfont icon-cuohao"
|
|
|
@click="close"></span></div>
|
|
|
<div class="meal_price_box">
|
|
|
<div><span>服务价格</span><span class="meal_price">优惠价格¥{{Math.abs(priceList.count)?Math.abs(priceList.count):0}}</span>
|
|
|
</div>
|
|
|
<div class="price"><span class="meal_price">¥{{priceList.o_price?priceList.o_price:0}}</span><span
|
|
|
class="old_price">原价¥{{priceList.price?priceList.price:0}}</span></div>
|
|
|
</div>
|
|
|
<div class="incer">此服务由慈界平台优质服务商提供</div>
|
|
|
<div class="sever_list"><span :class="{'span_active':index==active_index}"
|
|
|
v-for="(item,index) in attribute"
|
|
|
@click="t_choose_sever(item,index)">{{item}}</span></div>
|
|
|
<div class="pay_box">
|
|
|
<span class="pay_num">购买数量 <span
|
|
|
class="limit">(限购<span>{{priceList.limit_num?priceList.limit_num:0}}</span>{{unit}})</span></span>
|
|
|
<div class="pay_btn_box">
|
|
|
<span class="iconfont icon-jian" @click="t_reduce"></span>
|
|
|
<input type="number" placeholder="" value="1" v-model="num">
|
|
|
<span class="iconfont icon-jikediancanicon09" @click="t_plus"></span>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="pay_btn" @click="t_pay_go">确定</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</body>
|
|
|
</html>
|
|
|
<script type="text/javascript" src="../../assets/js/api.js"></script>
|
|
|
<script type="text/javascript" src="../../assets/js/weui.min.js"></script>
|
|
|
<script type="text/javascript" src="../../assets/js/public.js"></script>
|
|
|
<script type="text/javascript" src="../../assets/js/fastclick.js"></script>
|
|
|
<script>
|
...
|
...
|
@@ -130,10 +507,8 @@ |
|
|
hour: '',
|
|
|
minute: '',
|
|
|
date_info: '',
|
|
|
id: '',
|
|
|
cid: '',
|
|
|
room: '',
|
|
|
attribute: '',
|
|
|
goods: [],
|
|
|
real_price: '',
|
|
|
attribute_type: '',
|
...
|
...
|
@@ -141,8 +516,16 @@ |
|
|
tel: '',
|
|
|
order_id: '',
|
|
|
user_info: [],
|
|
|
pos: 'fixed',
|
|
|
num: 1,
|
|
|
sever_list: [],
|
|
|
active_index: -1,
|
|
|
active_name: '',
|
|
|
priceList: [],
|
|
|
attribute: [],
|
|
|
id: '',
|
|
|
unit: '',
|
|
|
pos: 'fixed'
|
|
|
taocan: false
|
|
|
},
|
|
|
created: function () {
|
|
|
this.id = localStorage.getItem('id');
|
...
|
...
|
@@ -180,15 +563,16 @@ |
|
|
// 选择套餐
|
|
|
set_meal: function () {
|
|
|
var app = this;
|
|
|
openWin({
|
|
|
name: 'choose_meal_f',
|
|
|
url: './choose_meal_f.html',
|
|
|
pageParam: {
|
|
|
id: app.id,
|
|
|
attribute: app.attribute,
|
|
|
unit: app.unit
|
|
|
}
|
|
|
})
|
|
|
app.taocan = true;
|
|
|
// openWin({
|
|
|
// name: 'choose_meal_f',
|
|
|
// url: './choose_meal_f.html',
|
|
|
// pageParam: {
|
|
|
// id: app.id,
|
|
|
// attribute: app.attribute,
|
|
|
// unit: app.unit
|
|
|
// }
|
|
|
// })
|
|
|
},
|
|
|
// 选择入住等级
|
|
|
set_rank: function () {
|
...
|
...
|
@@ -482,6 +866,131 @@ |
|
|
setTimeout(function () {
|
|
|
document.body.scrollTop = document.body.scrollHeight;
|
|
|
}, 300);
|
|
|
},
|
|
|
//套餐选择2
|
|
|
close: function () {
|
|
|
// api.closeWin({
|
|
|
// name: 'choose_meal_w'
|
|
|
// });
|
|
|
this.taocan = false
|
|
|
this.room = false
|
|
|
},
|
|
|
t_choose_sever: function (attr, index) {
|
|
|
var app = this;
|
|
|
app.active_index = index;
|
|
|
app.active_name = app.attribute[index];
|
|
|
app.attribute_id = app.attribute[index].id;
|
|
|
var post = {
|
|
|
id: app.id,
|
|
|
attribute: attr
|
|
|
};
|
|
|
var header = {
|
|
|
"XX-Device-Type": getDevice(),
|
|
|
'XX-Token': getToken()
|
|
|
};
|
|
|
getRequest('post', 'portal/Goods/getPrice', post, header).then(function (res) {
|
|
|
// alert(JSON.stringify(res))
|
|
|
if (res.data.code == 1) {
|
|
|
app.priceList = res.data.data;
|
|
|
} else {
|
|
|
toastMsg(res.msg)
|
|
|
}
|
|
|
});
|
|
|
app.num = 1;
|
|
|
app.meal = app.active_name + app.num + app.unit;
|
|
|
app.total = parseFloat(app.priceList.price) * (app.num);
|
|
|
},
|
|
|
t_reduce: function () {
|
|
|
var app = this;
|
|
|
if (app.num > 1) {
|
|
|
app.num--
|
|
|
}
|
|
|
app.total = parseFloat(app.priceList.price) * (app.num);
|
|
|
app.meal = app.active_name + app.num + app.unit;
|
|
|
},
|
|
|
t_plus: function () {
|
|
|
var app = this;
|
|
|
if (app.num < app.priceList.limit_num) {
|
|
|
app.num++
|
|
|
} else {
|
|
|
toastMsg('不能超过最大限购哦')
|
|
|
}
|
|
|
app.total = parseFloat(app.priceList.price) * (app.num);
|
|
|
app.meal = app.active_name + app.num + app.unit;
|
|
|
},
|
|
|
t_pay_go: function () {
|
|
|
var app = this;
|
|
|
if (app.active_name != '') {
|
|
|
app.close()
|
|
|
} else {
|
|
|
toastMsg('请选择套餐类型')
|
|
|
}
|
|
|
|
|
|
},
|
|
|
choose_left: function (index) {
|
|
|
app.active_index = index;
|
|
|
app.active_left = app.attribute[0][index];
|
|
|
app.num = app.price_info.limit_num;
|
|
|
app.getPrice();
|
|
|
},
|
|
|
choose_right: function (index) {
|
|
|
app.active_index2 = index;
|
|
|
app.active_right = app.attribute[1][index];
|
|
|
app.getPrice();
|
|
|
app.num = app.price_info.limit_num;
|
|
|
},
|
|
|
reduce: function () {
|
|
|
if (app.price_info.limit_num) {
|
|
|
if (app.num > app.price_info.limit_num) {
|
|
|
app.num--
|
|
|
} else {
|
|
|
toastMsg('不能低于' + app.price_info.limit_num + '个月哦')
|
|
|
}
|
|
|
}else {
|
|
|
toastMsg('请选择入住类型')
|
|
|
}
|
|
|
},
|
|
|
plus: function () {
|
|
|
if (app.num < app.price_info.limit_num) {
|
|
|
} else {
|
|
|
app.num++
|
|
|
}
|
|
|
},
|
|
|
getPrice: function () {
|
|
|
if (app.active_left && app.active_right) {
|
|
|
var post = {
|
|
|
attribute: app.active_left + '_' + app.active_right,
|
|
|
id: app.id
|
|
|
};
|
|
|
getRequest('post', 'portal/Goods/getPrice', post, null).then(function (res) {
|
|
|
if (res.data.code == 1) {
|
|
|
app.price_info = res.data.data;
|
|
|
app.num = app.price_info.limit_num;
|
|
|
app.attribute_id = app.price_info.attribute_id
|
|
|
}
|
|
|
})
|
|
|
} else {
|
|
|
toastMsg('请选择入住类型')
|
|
|
}
|
|
|
|
|
|
},
|
|
|
pay_go: function () {
|
|
|
if (app.active_left && app.active_right) {
|
|
|
api.sendEvent({
|
|
|
name: 'room',
|
|
|
extra: {
|
|
|
name_left: app.active_left,
|
|
|
name_right: app.active_right,
|
|
|
num: app.num,
|
|
|
price: app.price_info.price,
|
|
|
attribute_id: app.attribute_id
|
|
|
}
|
|
|
});
|
|
|
app.close()
|
|
|
}
|
|
|
else {
|
|
|
toastMsg('请选择入住类型')
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
})
|
...
|
...
|
|