finishi pay

master
lynn 1 year ago
parent b7b2c3124a
commit 6f731bbf67

@ -10,6 +10,7 @@ let apiApp = {
saveOrder:'/api/nurse/order/save',
payCode:'/api/nurse/order/pay-diff',
nurseIndex:'/api/admin/nurse/index',
nurseAppletLogin:'/api/nurse/auth/applet-login',
// 工作人员相关API
staffLogin: '/api/worker/auth/login',
@ -28,6 +29,8 @@ let apiApp = {
accompanyProductDetail: '/api/worker/hospital/accompany-product-detail',
listHospital: '/api/worker/hospital/hospital',
accompanyOrderDetail: '/api/worker/order/detail',
accompanyOrderPayParams: '/api/worker/order/pay-jsapi', //获取支付参数
appletLogin: '/api/worker/auth/applet-login', //小程序静默登陆
// 运营人员相关API
operatorLogin: '/api/admin/auth/login',
@ -37,6 +40,7 @@ let apiApp = {
saveOperatorUser: '/api/admin/admin/save',
operatorOrderShow: '/api/admin/accompany-order/show',
operatorOrderSave: '/api/admin/accompany-order/save',
userAppletLogin: '/api/mobile/user/applet-login',
}
const install = (Vue, vm) => {
@ -57,7 +61,9 @@ const install = (Vue, vm) => {
const accompanyPay = (params = {}) => vm.$u.post(apiApp.accompanyPay, params)
const accompanyOrdersDetail = (params = {}) => vm.$u.get(apiApp.accompanyOrdersDetail, params)
const accompanyOrderDetail = (params = {}) => vm.$u.get(apiApp.accompanyOrderDetail, params)
const accompanyOrderPayParams = (params = {}) => vm.$u.get(apiApp.accompanyOrderPayParams, params)
const appletLogin = (params = {}) => vm.$u.get(apiApp.appletLogin, params)
const nurseAppletLogin = (params = {}) => vm.$u.get(apiApp.nurseAppletLogin, params)
// 运营人员相关API
const operatorLogin = (params = {}) => vm.$u.post(apiApp.operatorLogin, params)
@ -67,6 +73,7 @@ const install = (Vue, vm) => {
const saveOperatorUser = (params = {}) => vm.$u.post(apiApp.saveOperatorUser, params)
const operatorOrderShow = (params = {}) => vm.$u.get(apiApp.operatorOrderShow, params)
const operatorOrderSave = (params = {}) => vm.$u.post(apiApp.operatorOrderSave, params)
const userAppletLogin = (params = {}) => vm.$u.get(apiApp.userAppletLogin, params)
//api方法
let login = (params = {}) => vm.$u.post(apiApp.login, params);
@ -83,7 +90,7 @@ const install = (Vue, vm) => {
vm.$u.api = {
login,getUser,loginOut,accompanyProduct,otherSite,saveUser,order,orderDetail,saveOrder,payCode,accompanyProductDetail,listHospital,
userArchive,staffLogin,staffLogout,getStaffUser,saveStaffUser,staffOrder,userArchiveSave,accompanyProductOrder,accompanyPay,accompanyOrdersDetail,accompanyOrderDetail,userArchiveArea,
operatorLogin,operatorLogout,operatorOrder,getOperatorUser,saveOperatorUser,operatorOrderShow,operatorOrderSave,nurseIndex
operatorLogin,operatorLogout,operatorOrder,getOperatorUser,saveOperatorUser,operatorOrderShow,operatorOrderSave,nurseIndex,accompanyOrderPayParams,appletLogin,nurseAppletLogin,userAppletLogin
};
}

@ -109,27 +109,59 @@
}
// 缓存登录角色
uni.setStorageSync('login_role', this.form.role)
const loginRole = uni.getStorageSync('login_role');
if (loginRole === 'staff') {
that.$u.vuex('vuex_token', res.token)
}else if(loginRole === 'operator'){
that.$u.vuex('vuex_token', res.access_token)
}else {
that.$u.vuex('vuex_token', res.token)
}
that.base.toast("登录成功",1500,function(){
setTimeout(function(){
const loginRole = uni.getStorageSync('login_role');
if (loginRole === 'staff') {
that.$u.vuex('vuex_token', res.token)
uni.reLaunch({
url: '/pages/index/staffIndex'
});
}else if(loginRole === 'operator'){
that.$u.vuex('vuex_token', res.access_token)
uni.reLaunch({
url: '/pages/index/operatorIndex'
});
}else {
that.$u.vuex('vuex_token', res.token)
uni.switchTab({
url: '/pages/index/index'
});
uni.login({
provider: 'weixin',
success: (loginRes) => {
const code = loginRes.code;
// 调用静默登录接口
setTimeout(function(){
const loginRole = uni.getStorageSync('login_role');
if (loginRole === 'staff') {
// that.$u.vuex('vuex_token', res.token)
that.$u.api.appletLogin({ code }).then(silentRes => {
uni.reLaunch({
url: '/pages/index/staffIndex'
});
}).catch(err => {
console.error('静默登录失败', err);
// 可以给用户提示
});
}else if(loginRole === 'operator'){
// that.$u.vuex('vuex_token', res.access_token)
uni.reLaunch({
url: '/pages/index/operatorIndex'
});
}else {
// that.$u.vuex('vuex_token', res.token)
that.$u.api.nurseAppletLogin({ code }).then(silentRes => {
uni.switchTab({
url: '/pages/index/index'
});
}).catch(err => {
console.error('静默登录失败', err);
// 可以给用户提示
});
}
}, 1500)
},
fail: (err) => {
console.error('获取微信code失败', err);
// 可以给用户提示
}
}, 1500)
});
})
}).catch(err => {
console.error("登录失败", err)

@ -85,8 +85,6 @@
this.orderInfo = res
}
},
cancel() {
uni.navigateBack();
},

@ -56,7 +56,10 @@
<text class="label">其他需求</text>
<text class="value">{{orderInfo.content?orderInfo.content:''}}</text>
</view>
<view class="info-item">
<text class="label">购买数量</text>
<text class="value">{{orderInfo.can_multi_num || 1}}</text>
</view>
<view class="info-item">
<text class="label">订单金额</text>
<text class="value">¥{{orderInfo.price}}</text>

@ -1,156 +1,173 @@
<template>
<view class="detail-page">
<!-- 顶部导航 -->
<u-navbar
title="查看详情"
:is-back="true"
back-icon-color="#fff"
:background="{'background':'#1479ff'}"
title-color="#fff"
:border-bottom="false"
:custom-back="customBack"
></u-navbar>
<view class="b-border"></view>
<!-- 订单信息 -->
<view class="order-info">
<view class="info-item">
<text class="label">订单号</text>
<text class="value">{{orderInfo.no}}</text>
</view>
<view class="info-item">
<text class="label">服务项目</text>
<text class="value">{{orderInfo.accompany_product?orderInfo.accompany_product.name:''}}</text>
</view>
<view class="info-item">
<text class="label">服务时间</text>
<text class="value">{{orderInfo.time}}</text>
</view>
<view class="info-item" v-if="orderInfo.type === 2">
<text class="label">服务地址</text>
<text class="value">{{item.city?item.city:'' }}</text>
</view>
<view class="info-item" v-else>
<text class="label">就诊医院</text>
<text class="value">{{orderInfo.hospital?orderInfo.hospital.name:''}}</text>
</view>
<view class="info-item">
<text class="label">联系人</text>
<text class="value">{{orderInfo.appoint_name?orderInfo.appoint_name:''}}</text>
</view>
<view class="info-item">
<text class="label">联系方式</text>
<text class="value">{{orderInfo.appoint_mobile?orderInfo.appoint_mobile:''}}</text>
</view>
<view class="info-item">
<text class="label">被服务人</text>
<text class="value">{{orderInfo.user_archive?orderInfo.user_archive.name:''}}</text>
</view>
<view>
<view class="detail-page">
<!-- 顶部导航 -->
<u-navbar
title="查看详情"
:is-back="true"
back-icon-color="#fff"
:background="{'background':'#1479ff'}"
title-color="#fff"
:border-bottom="false"
:custom-back="customBack"
></u-navbar>
<view class="b-border"></view>
<!-- 订单信息 -->
<view class="order-info">
<view class="info-item">
<text class="label">订单号</text>
<text class="value">{{orderInfo.no}}</text>
</view>
<view class="info-item">
<text class="label">服务项目</text>
<text class="value">{{orderInfo.accompany_product?orderInfo.accompany_product.name:''}}</text>
</view>
<view class="info-item">
<text class="label">服务时间</text>
<text class="value">{{orderInfo.time}}</text>
</view>
<view class="info-item">
<text class="label">是否可以自理</text>
<text class="value">{{orderInfo.my_provide===1?'可以自理':'不能自理'}}</text>
</view>
<view class="info-item info-item-reason">
<text class="label">就诊资料</text>
<view class="value">
<view class="order-item-img">
<image v-for="(item,index) in imgs" :src="item" @click="imgPreview(index)"></image>
</view>
<view class="info-item" v-if="orderInfo.type === 2">
<text class="label">服务地址</text>
<text class="value">{{item.city?item.city:'' }}</text>
</view>
<view class="info-item" v-else>
<text class="label">就诊医院</text>
<text class="value">{{orderInfo.hospital?orderInfo.hospital.name:''}}</text>
</view>
<view class="info-item">
<text class="label">联系人</text>
<text class="value">{{orderInfo.appoint_name?orderInfo.appoint_name:''}}</text>
</view>
<view class="info-item">
<text class="label">联系方式</text>
<text class="value">{{orderInfo.appoint_mobile?orderInfo.appoint_mobile:''}}</text>
</view>
<view class="info-item">
<text class="label">被服务人</text>
<text class="value">{{orderInfo.user_archive?orderInfo.user_archive.name:''}}</text>
</view>
</view>
<view class="info-item info-item-reason">
<text class="label">其他需求</text>
<text class="value">{{orderInfo.content?orderInfo.content:''}}</text>
</view>
<view class="info-item">
<text class="label">订单金额</text>
<text class="value">¥{{orderInfo.price}}</text>
</view>
<view class="info-item">
<text class="label">原始金额</text>
<text class="value">¥{{orderInfo.from_price}}</text>
</view>
<view class="info-item" v-if="orderInfo.status===3||orderInfo.status===4">
<text class="label">待付金额</text>
<text class="value price">¥{{orderInfo.diff_price}}</text>
</view>
<view class="info-item info-item-reason">
<text class="label">修改原因</text>
<text class="value reason">{{orderInfo.update_price_reason?orderInfo.update_price_reason:''}}</text>
</view>
</view>
<view class="info-item">
<text class="label">是否可以自理</text>
<text class="value">{{orderInfo.my_provide===1?'可以自理':'不能自理'}}</text>
</view>
<view class="info-item info-item-reason">
<text class="label">就诊资料</text>
<view class="value">
<view class="order-item-img">
<image v-for="(item,index) in imgs" :src="item" @click="imgPreview(index)"></image>
</view>
</view>
</view>
<view class="info-item info-item-reason">
<text class="label">其他需求</text>
<text class="value">{{orderInfo.content?orderInfo.content:''}}</text>
</view>
<view class="info-item">
<text class="label">购买数量</text>
<text class="value">{{orderInfo.can_multi_num || 1}}</text>
</view>
<view class="info-item">
<text class="label">订单金额</text>
<text class="value">¥{{orderInfo.price}}</text>
</view>
<!-- 支付二维码 -->
<view class="payment-popup" v-if="orderInfo.pay_status === 0">
<view class="title">付款二维码</view>
<view class="amount">
<text class="symbol">¥</text>
<text class="number">{{orderInfo.price}}</text>
</view>
<view class="info-item">
<text class="label">原始金额</text>
<text class="value">¥{{orderInfo.from_price}}</text>
</view>
<view class="qr-code">
<!-- 支付二维码 -->
<view v-if="myQrcode" style="border: 1px solid #ccc; padding: 10rpx;">
<uqrcode
v-if="myQrcode"
canvas-id="pay-qrcode"
:value="myQrcode"
:size="400"
:sizeUnit="'rpx'"
:options="{
margin: 10,
}"
></uqrcode>
<view class="info-item" v-if="orderInfo.status===3||orderInfo.status===4">
<text class="label">待付金额</text>
<text class="value price">¥{{orderInfo.diff_price}}</text>
</view>
<view v-else style="text-align: center; color: #999; padding: 40rpx;">
正在生成二维码...
<view class="info-item info-item-reason">
<text class="label">修改原因</text>
<text class="value reason">{{orderInfo.update_price_reason?orderInfo.update_price_reason:''}}</text>
</view>
</view>
<view class="tips">
<text>请扫码支付订单金额</text>
<text class="sub-tips">支付完成后订单将自动完成</text>
</view>
<!-- 分享按钮 -->
<view class="share-section">
<u-button
type="primary"
size="medium"
@click="showShareGuide"
:custom-style="{
background: 'linear-gradient(to right, #1479ff, #4a90e2)',
color: '#fff',
borderRadius: '40rpx',
fontSize: '28rpx'
}"
>
<u-icon name="share" color="#fff" size="16" style="margin-right: 8rpx;"></u-icon>
转发给微信好友
</u-button>
<!-- 支付二维码 -->
<view class="payment-popup" v-if="orderInfo.pay_status === 0" id="pay-qrcode-section">
<view class="title">付款二维码</view>
<view class="amount">
<text class="symbol">¥</text>
<text class="number">{{orderInfo.price}}</text>
</view>
<view class="qr-code">
<!-- 支付二维码 -->
<view v-if="myQrcode" style="border: 1px solid #ccc; padding: 10rpx;">
<uqrcode
v-if="myQrcode"
canvas-id="pay-qrcode"
:value="myQrcode"
:size="400"
:sizeUnit="'rpx'"
:options="{
margin: 10,
}"
></uqrcode>
</view>
<view v-else style="text-align: center; color: #999; padding: 40rpx;">
正在生成二维码...
</view>
</view>
<view class="tips">
<text>请扫码支付订单金额</text>
<text class="sub-tips">支付完成后订单将自动完成</text>
</view>
<!-- 返回首页按钮(仅分享进入时显示) -->
<u-button
v-if="isFromShare"
type="default"
size="medium"
@click="goToHome"
:custom-style="{
marginTop: '20rpx',
borderRadius: '40rpx',
fontSize: '28rpx'
}"
>
<u-icon name="home" color="#1479ff" size="16" style="margin-right: 8rpx;"></u-icon>
返回首页
</u-button>
<!-- 分享按钮 -->
<view class="share-section">
<u-button
type="primary"
size="medium"
@click="showShareGuide"
:custom-style="{
background: 'linear-gradient(to right, #1479ff, #4a90e2)',
color: '#fff',
borderRadius: '40rpx',
fontSize: '28rpx'
}"
>
<u-icon name="share" color="#fff" size="16" style="margin-right: 8rpx;"></u-icon>
转发给微信好友
</u-button>
<!-- 返回首页按钮(仅分享进入时显示) -->
<u-button
v-if="isFromShare"
type="default"
size="medium"
@click="goToHome"
:custom-style="{
marginTop: '20rpx',
borderRadius: '40rpx',
fontSize: '28rpx'
}"
>
<u-icon name="home" color="#1479ff" size="16" style="margin-right: 8rpx;"></u-icon>
返回首页
</u-button>
</view>
</view>
</view>
<!-- 底部立即支付按钮 -->
<view v-if="orderInfo.pay_status === 0 && loginRole !== 'operator'" class="bottom-pay-btn">
<u-button
type="primary"
shape="circle"
@click="scrollToPayQr"
class="pay-btn"
>
立即支付
</u-button>
</view>
</view>
</template>
@ -423,6 +440,47 @@
uni.removeStorageSync('shareReferrer')
console.log('分享缓存数据已清除,下次进入将重新进行token校验')
},
scrollToPayQr: async function() {
try {
// 1. 获取微信支付参数(不需要传id参数)
const res = await this.$u.api.accompanyOrderPayParams({ no: this.orderInfo.no });
console.log("获取支付参数:",res)
// 从嵌套的config对象中获取支付参数
const payConfig = res.config || res;
// 2. 发起微信支付
await uni.requestPayment({
provider: 'wxpay',
timeStamp: payConfig.timestamp || payConfig.timeStamp,
nonceStr: payConfig.nonceStr,
package: payConfig.package,
signType: payConfig.signType,
paySign: payConfig.paySign,
success: () => {
uni.showToast({ title: '支付成功', icon: 'success' });
// 支付成功后刷新订单详情
this.getOrderDetailStaff(this.orderId || this.orderInfo.id);
},
fail: (err) => {
if (err.errMsg && err.errMsg.indexOf('cancel') > -1) {
uni.showToast({ title: '已取消支付', icon: 'none' });
} else {
uni.showToast({ title: '支付失败', icon: 'none' });
console.log("支付失败",err)
}
}
});
} catch (e) {
uni.showToast({ title: e.errmsg || '拉起支付失败', icon: 'none' });
}
},
},
computed: {
// 获取登录角色
loginRole() {
return uni.getStorageSync('login_role') || '';
}
}
}
@ -432,7 +490,7 @@
.detail-page {
min-height: 100vh;
background: #f5f5f5;
padding-bottom: 40rpx;
padding-bottom: 120rpx;
.b-border {
width: 100%;
@ -500,7 +558,7 @@
margin: 30rpx;
box-shadow: 0 4rpx 16rpx #e6eaf1;
padding: 30rpx;
z-index: 1;
.title {
font-size: 32rpx;
color: #333;
@ -571,23 +629,24 @@
margin-top: 20rpx;
}
}
}
.bottom-pay-btn {
position: fixed;
bottom: 0;
left: 0;
right: 0;
padding: 20rpx;
background: #fff;
border-top: 1rpx solid rgba(0, 0, 0, 0.1);
.u-button {
width: 100%;
height: 80rpx;
border-radius: 40rpx;
font-size: 32rpx;
font-weight: 500;
}
.bottom-pay-btn {
position: fixed;
left: 0;
bottom: 0;
width: 100vw;
background: #fff;
z-index: 9999;
box-shadow: 0 -2rpx 8rpx #00000010;
padding: 20rpx 30rpx 40rpx 30rpx;
display: flex;
justify-content: center;
.pay-btn {
width: 100%;
font-size: 32rpx;
border-radius: 40rpx;
font-weight: 500;
}
}
</style>

@ -69,7 +69,7 @@
</view>
<!-- 产品数量选择 - 独立的Cell -->
<view v-if="!orderId && accompanyProduct.id" class="quantity-card">
<view v-if="!orderId && accompanyProduct.id && form.can_multi_num==1" class="quantity-card">
<view class="quantity-card__header">
<view class="quantity-card__title">产品数量</view>
<view class="quantity-card__content">
@ -329,6 +329,18 @@
<view class="qrcode-tip">请使用微信扫码支付</view>
</view>
</view>
<!-- 底部立即支付按钮 -->
<view v-if="showPayQrCode" class="bottom-pay-btn">
<u-button
type="primary"
shape="circle"
@click="scrollToPayQr"
class="pay-btn"
>
立即支付
</u-button>
</view>
<!-- 服务完成 -->
<view v-if="form.pay_status === 2">
@ -356,18 +368,18 @@
<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 class="desc-card__content--title" v-if="form.type == 1"> 就诊城市 </view>
<view class="desc-card__content--value" v-if="form.type == 1">
{{ hospital.site ? hospital.site.name : "" }}
</view>
<br />
<view class="desc-card__content--title"> 就诊医院 </view>
<view class="desc-card__content--value"> {{ hospital.name }} </view>
<view class="desc-card__content--title" v-if="form.type == 1"> 就诊医院 </view>
<view class="desc-card__content--value" v-if="form.type == 1"> {{ hospital.name }} </view>
<br />
<view class="desc-card__content--title"> 就诊时间 </view>
<view class="desc-card__content--value"> {{ form.time }} </view>
<view class="desc-card__content--title" v-if="form.type == 1"> 就诊时间 </view>
<view class="desc-card__content--value" v-if="form.type == 1"> {{ form.time }} </view>
<br />
<view class="desc-card__content--title"> 预约人 </view>
@ -381,9 +393,9 @@
{{ form.appoint_mobile }}
</view>
<br />
<view class="desc-card__content--title"> 陪诊师性别 </view>
<view class="desc-card__content--value">
<view class="desc-card__content--title" v-if="form.type == 1"> 陪诊师性别 </view>
<view class="desc-card__content--title" v-if="form.type == 2"> 照护师性别 </view>
<view class="desc-card__content--value" v-if="form.type == 1 || form.type == 2">
{{ sex(form.accompany_sex) }}
</view>
<br />
@ -876,6 +888,7 @@ export default {
this.$refs.uForm.setRules(this.rules);
},
onLoad(option) {
this.form.can_multi_num = option.can_multi_num ? Number(option.can_multi_num) : 0
this.form.accompany_product_id = option.id ? Number(option.id) : "";
this.form.type = Number(option.type);
uni.setNavigationBarTitle({
@ -911,7 +924,7 @@ export default {
async getDetail(id) {
console.log(id, this.orderId);
await this.$u.api
.accompanyOrdersDetail({
.accompanyOrderDetail({
id: id || this.orderId,
})
.then((res) => {
@ -1175,7 +1188,8 @@ export default {
// 隐藏支付二维码
this.showPayQrCode = false
this.form.pay_status = 2
uni.showToast({
title: '支付成功',
icon: 'success'
@ -1205,6 +1219,7 @@ export default {
pay_status: -1
}).then(_ => {
this.getDetail()
this.form.pay_status = 2
})
break;
case 'chargeback':
@ -1291,6 +1306,43 @@ export default {
this.editPrice = currentTotalPrice.toString();
this.showPriceEdit = true;
},
// 立即支付方法
scrollToPayQr: async function() {
try {
// 1. 获取微信支付参数
const res = await this.$u.api.accompanyOrderPayParams({ no: this.form.no });
console.log("获取支付参数:", res);
// 从嵌套的config对象中获取支付参数
const payConfig = res.config || res;
// 2. 发起微信支付
await uni.requestPayment({
provider: 'wxpay',
timeStamp: payConfig.timestamp || payConfig.timeStamp,
nonceStr: payConfig.nonceStr,
package: payConfig.package,
signType: payConfig.signType,
paySign: payConfig.paySign,
success: () => {
uni.showToast({ title: '支付成功', icon: 'success' });
// 支付成功后刷新订单详情
this.getDetail();
},
fail: (err) => {
if (err.errMsg && err.errMsg.indexOf('cancel') > -1) {
uni.showToast({ title: '已取消支付', icon: 'none' });
} else {
uni.showToast({ title: '支付失败', icon: 'none' });
console.log("支付失败", err);
}
}
});
} catch (e) {
uni.showToast({ title: e.errmsg || '拉起支付失败', icon: 'none' });
}
},
},
computed: {
// step
@ -2008,4 +2060,25 @@ export default {
}
}
}
// 底部支付按钮样式
.bottom-pay-btn {
position: fixed;
left: 0;
bottom: 0;
width: 100vw;
background: #fff;
z-index: 9999;
box-shadow: 0 -2rpx 8rpx #00000010;
padding: 20rpx 30rpx 40rpx 30rpx;
display: flex;
justify-content: center;
.pay-btn {
width: 100%;
font-size: 32rpx;
border-radius: 40rpx;
font-weight: 500;
}
}
</style>

@ -157,7 +157,7 @@
return
}
this.$u.route({
url: '/package_sub/pages/AddOrder/AddOrder?id='+info.id+'&site_id='+info.site_id+'&type='+info.type
url: '/package_sub/pages/AddOrder/AddOrder?id='+info.id+'&site_id='+info.site_id+'&type='+info.type+'&can_multi_num='+info.can_multi_num
})
},
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1,2 +1,2 @@
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["package_sub/login/login"],{243:function(e,n,t){"use strict";(function(e,n){var o=t(4);t(26);o(t(25));var r=o(t(244));e.__webpack_require_UNI_MP_PLUGIN__=t,n(r.default)}).call(this,t(1)["default"],t(2)["createPage"])},244:function(e,n,t){"use strict";t.r(n);var o=t(245),r=t(247);for(var a in r)["default"].indexOf(a)<0&&function(e){t.d(n,e,(function(){return r[e]}))}(a);t(249);var u,s=t(35),i=Object(s["default"])(r["default"],o["render"],o["staticRenderFns"],!1,null,"6126915d",null,!1,o["components"],u);i.options.__file="package_sub/login/login.vue",n["default"]=i.exports},245:function(e,n,t){"use strict";t.r(n);var o=t(246);t.d(n,"render",(function(){return o["render"]})),t.d(n,"staticRenderFns",(function(){return o["staticRenderFns"]})),t.d(n,"recyclableRender",(function(){return o["recyclableRender"]})),t.d(n,"components",(function(){return o["components"]}))},246:function(e,n,t){"use strict";var o;t.r(n),t.d(n,"render",(function(){return r})),t.d(n,"staticRenderFns",(function(){return u})),t.d(n,"recyclableRender",(function(){return a})),t.d(n,"components",(function(){return o}));try{o={uInput:function(){return Promise.all([t.e("common/vendor"),t.e("uview-ui/components/u-input/u-input")]).then(t.bind(null,415))}}}catch(s){if(-1===s.message.indexOf("Cannot find module")||-1===s.message.indexOf(".vue"))throw s;console.error(s.message),console.error("1. 排查组件名称拼写是否正确"),console.error("2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"),console.error("3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件")}var r=function(){var e=this,n=e.$createElement;e._self._c;e._isMounted||(e.e0=function(n,t){var o=arguments[arguments.length-1].currentTarget.dataset,r=o.eventParams||o["event-params"];t=r.item;e.form.role=t.value})},a=!1,u=[];r._withStripped=!0},247:function(e,n,t){"use strict";t.r(n);var o=t(248),r=t.n(o);for(var a in o)["default"].indexOf(a)<0&&function(e){t.d(n,e,(function(){return o[e]}))}(a);n["default"]=r.a},248:function(e,n,t){"use strict";(function(e){Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var t={data:function(){return{form:{username:"",password:"",role:e.getStorageSync("login_role")||"nurse"},roleList:[{value:"nurse",label:"护工"},{value:"staff",label:"工作人员"},{value:"operator",label:"运营人员"}],site_name:""}},onReady:function(){},methods:{login:function(){var n=this;if(this.form.username&&this.form.password)if(this.form.role){var t=this,o=null;switch(this.form.role){case"nurse":o=this.$u.api.login;break;case"staff":o=this.$u.api.staffLogin;break;case"operator":o=this.$u.api.operatorLogin;break;default:return void e.showToast({title:"无效的角色选择",icon:"none"})}o({username:this.form.username,password:this.form.password}).then((function(o){console.log("res1",o),40002!==o.errcode?(e.setStorageSync("login_role",n.form.role),t.base.toast("登录成功",1500,(function(){setTimeout((function(){var n=e.getStorageSync("login_role");"staff"===n?(t.$u.vuex("vuex_token",o.token),e.reLaunch({url:"/pages/index/staffIndex"})):"operator"===n?(t.$u.vuex("vuex_token",o.access_token),e.reLaunch({url:"/pages/index/operatorIndex"})):(t.$u.vuex("vuex_token",o.token),e.switchTab({url:"/pages/index/index"}))}),1500)}))):t.base.toast("账号密码不正确")})).catch((function(e){console.error("登录失败",e),t.base.toast("登录失败,请稍后重试")}))}else e.showToast({title:"请选择登录角色",icon:"none"});else e.showToast({title:"请输入用户名和密码",icon:"none"})}}};n.default=t}).call(this,t(2)["default"])},249:function(e,n,t){"use strict";t.r(n);var o=t(250),r=t.n(o);for(var a in o)["default"].indexOf(a)<0&&function(e){t.d(n,e,(function(){return o[e]}))}(a);n["default"]=r.a},250:function(e,n,t){}},[[243,"common/runtime","common/vendor"]]]);
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["package_sub/login/login"],{243:function(e,n,t){"use strict";(function(e,n){var o=t(4);t(26);o(t(25));var r=o(t(244));e.__webpack_require_UNI_MP_PLUGIN__=t,n(r.default)}).call(this,t(1)["default"],t(2)["createPage"])},244:function(e,n,t){"use strict";t.r(n);var o=t(245),r=t(247);for(var a in r)["default"].indexOf(a)<0&&function(e){t.d(n,e,(function(){return r[e]}))}(a);t(249);var i,u=t(35),s=Object(u["default"])(r["default"],o["render"],o["staticRenderFns"],!1,null,"6126915d",null,!1,o["components"],i);s.options.__file="package_sub/login/login.vue",n["default"]=s.exports},245:function(e,n,t){"use strict";t.r(n);var o=t(246);t.d(n,"render",(function(){return o["render"]})),t.d(n,"staticRenderFns",(function(){return o["staticRenderFns"]})),t.d(n,"recyclableRender",(function(){return o["recyclableRender"]})),t.d(n,"components",(function(){return o["components"]}))},246:function(e,n,t){"use strict";var o;t.r(n),t.d(n,"render",(function(){return r})),t.d(n,"staticRenderFns",(function(){return i})),t.d(n,"recyclableRender",(function(){return a})),t.d(n,"components",(function(){return o}));try{o={uInput:function(){return Promise.all([t.e("common/vendor"),t.e("uview-ui/components/u-input/u-input")]).then(t.bind(null,415))}}}catch(u){if(-1===u.message.indexOf("Cannot find module")||-1===u.message.indexOf(".vue"))throw u;console.error(u.message),console.error("1. 排查组件名称拼写是否正确"),console.error("2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"),console.error("3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件")}var r=function(){var e=this,n=e.$createElement;e._self._c;e._isMounted||(e.e0=function(n,t){var o=arguments[arguments.length-1].currentTarget.dataset,r=o.eventParams||o["event-params"];t=r.item;e.form.role=t.value})},a=!1,i=[];r._withStripped=!0},247:function(e,n,t){"use strict";t.r(n);var o=t(248),r=t.n(o);for(var a in o)["default"].indexOf(a)<0&&function(e){t.d(n,e,(function(){return o[e]}))}(a);n["default"]=r.a},248:function(e,n,t){"use strict";(function(e){Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var t={data:function(){return{form:{username:"",password:"",role:e.getStorageSync("login_role")||"nurse"},roleList:[{value:"nurse",label:"护工"},{value:"staff",label:"工作人员"},{value:"operator",label:"运营人员"}],site_name:""}},onReady:function(){},methods:{login:function(){var n=this;if(this.form.username&&this.form.password)if(this.form.role){var t=this,o=null;switch(this.form.role){case"nurse":o=this.$u.api.login;break;case"staff":o=this.$u.api.staffLogin;break;case"operator":o=this.$u.api.operatorLogin;break;default:return void e.showToast({title:"无效的角色选择",icon:"none"})}o({username:this.form.username,password:this.form.password}).then((function(o){if(console.log("res1",o),40002!==o.errcode){e.setStorageSync("login_role",n.form.role);var r=e.getStorageSync("login_role");"staff"===r?t.$u.vuex("vuex_token",o.token):"operator"===r?t.$u.vuex("vuex_token",o.access_token):t.$u.vuex("vuex_token",o.token),t.base.toast("登录成功",1500,(function(){e.login({provider:"weixin",success:function(n){var o=n.code;setTimeout((function(){var n=e.getStorageSync("login_role");"staff"===n?t.$u.api.appletLogin({code:o}).then((function(n){e.reLaunch({url:"/pages/index/staffIndex"})})).catch((function(e){console.error("静默登录失败",e)})):"operator"===n?e.reLaunch({url:"/pages/index/operatorIndex"}):t.$u.api.nurseAppletLogin({code:o}).then((function(n){e.switchTab({url:"/pages/index/index"})})).catch((function(e){console.error("静默登录失败",e)}))}),1500)},fail:function(e){console.error("获取微信code失败",e)}})}))}else t.base.toast("账号密码不正确")})).catch((function(e){console.error("登录失败",e),t.base.toast("登录失败,请稍后重试")}))}else e.showToast({title:"请选择登录角色",icon:"none"});else e.showToast({title:"请输入用户名和密码",icon:"none"})}}};n.default=t}).call(this,t(2)["default"])},249:function(e,n,t){"use strict";t.r(n);var o=t(250),r=t.n(o);for(var a in o)["default"].indexOf(a)<0&&function(e){t.d(n,e,(function(){return o[e]}))}(a);n["default"]=r.a},250:function(e,n,t){}},[[243,"common/runtime","common/vendor"]]]);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/package_sub/login/login.js.map

@ -1 +1 @@
<view class="detail-page data-v-6fd8f918"><u-navbar vue-id="e972aa24-1" title="查看详情" is-back="{{true}}" back-icon-color="#fff" background="{{$root.a0}}" title-color="#fff" border-bottom="{{false}}" class="data-v-6fd8f918" bind:__l="__l"></u-navbar><view class="b-border data-v-6fd8f918"></view><view class="order-info data-v-6fd8f918"><view class="info-item data-v-6fd8f918"><text class="label data-v-6fd8f918">订单号</text><text class="value data-v-6fd8f918">{{orderInfo.no}}</text></view><view class="info-item data-v-6fd8f918"><text class="label data-v-6fd8f918">服务项目</text><text class="value data-v-6fd8f918">{{orderInfo.accompany_product?orderInfo.accompany_product.name:''}}</text></view><view class="info-item data-v-6fd8f918"><text class="label data-v-6fd8f918">服务时间</text><text class="value data-v-6fd8f918">{{orderInfo.time}}</text></view><block wx:if="{{orderInfo.type===2}}"><view class="info-item data-v-6fd8f918"><text class="label data-v-6fd8f918">服务地址</text><text class="value data-v-6fd8f918">{{item.city?item.city:''}}</text></view></block><block wx:else><view class="info-item data-v-6fd8f918"><text class="label data-v-6fd8f918">就诊医院</text><text class="value data-v-6fd8f918">{{orderInfo.hospital?orderInfo.hospital.name:''}}</text></view></block><view class="info-item data-v-6fd8f918"><text class="label data-v-6fd8f918">联系人</text><text class="value data-v-6fd8f918">{{orderInfo.appoint_name?orderInfo.appoint_name:''}}</text></view><view class="info-item data-v-6fd8f918"><text class="label data-v-6fd8f918">联系方式</text><text class="value data-v-6fd8f918">{{orderInfo.appoint_mobile?orderInfo.appoint_mobile:''}}</text></view><view class="info-item data-v-6fd8f918"><text class="label data-v-6fd8f918">被服务人</text><text class="value data-v-6fd8f918">{{orderInfo.user_archive?orderInfo.user_archive.name:''}}</text></view><view class="info-item data-v-6fd8f918"><text class="label data-v-6fd8f918">是否可以自理</text><text class="value data-v-6fd8f918">{{orderInfo.my_provide===1?'可以自理':'不能自理'}}</text></view><view class="info-item info-item-reason data-v-6fd8f918"><text class="label data-v-6fd8f918">就诊资料</text><view class="value data-v-6fd8f918"><view class="order-item-img data-v-6fd8f918"><block wx:for="{{imgs}}" wx:for-item="item" wx:for-index="index"><image src="{{item}}" data-event-opts="{{[['tap',[['imgPreview',[index]]]]]}}" bindtap="__e" class="data-v-6fd8f918"></image></block></view></view></view><view class="info-item info-item-reason data-v-6fd8f918"><text class="label data-v-6fd8f918">其他需求</text><text class="value data-v-6fd8f918">{{orderInfo.content?orderInfo.content:''}}</text></view><view class="info-item data-v-6fd8f918"><text class="label data-v-6fd8f918">订单金额</text><text class="value data-v-6fd8f918">{{"¥"+orderInfo.price}}</text></view><view class="info-item data-v-6fd8f918"><text class="label data-v-6fd8f918">原始金额</text><text class="value data-v-6fd8f918">{{"¥"+orderInfo.from_price}}</text></view><block wx:if="{{orderInfo.status===3||orderInfo.status===4}}"><view class="info-item data-v-6fd8f918"><text class="label data-v-6fd8f918">待付金额</text><text class="value price data-v-6fd8f918">{{"¥"+orderInfo.diff_price}}</text></view></block><view class="info-item info-item-reason data-v-6fd8f918"><text class="label data-v-6fd8f918">修改原因</text><text class="value reason data-v-6fd8f918">{{orderInfo.update_price_reason?orderInfo.update_price_reason:''}}</text></view></view><block wx:if="{{orderInfo.status===3}}"><view class="payment-popup data-v-6fd8f918"><view class="title data-v-6fd8f918">付款二维码</view><view class="amount data-v-6fd8f918"><text class="symbol data-v-6fd8f918">¥</text><text class="number data-v-6fd8f918">{{orderInfo.diff_price}}</text></view><view class="qr-code data-v-6fd8f918"><block wx:if="{{myQrcode}}"><uqrcode vue-id="e972aa24-2" canvas-id="qrcode" value="{{myQrcode}}" sizeUnit="rpx" size="{{200}}" options="{{({margin:10})}}" data-ref="uqrcode" class="data-v-6fd8f918 vue-ref" bind:__l="__l"></uqrcode></block></view><view class="tips data-v-6fd8f918"><text class="data-v-6fd8f918">请扫码支付差额</text><text class="sub-tips data-v-6fd8f918">支付完成后订单将自动完成</text></view><view class="close-btn data-v-6fd8f918"><u-button vue-id="e972aa24-3" size="mini" shape="circle" type="default" custom-style="{{parStyle}}" data-event-opts="{{[['^click',[['isPayCode']]]]}}" bind:click="__e" class="data-v-6fd8f918" bind:__l="__l" vue-slots="{{['default']}}">我已支付</u-button></view></view></block></view>
<view class="detail-page data-v-6fd8f918"><u-navbar vue-id="e972aa24-1" title="查看详情" is-back="{{true}}" back-icon-color="#fff" background="{{$root.a0}}" title-color="#fff" border-bottom="{{false}}" class="data-v-6fd8f918" bind:__l="__l"></u-navbar><view class="b-border data-v-6fd8f918"></view><view class="order-info data-v-6fd8f918"><view class="info-item data-v-6fd8f918"><text class="label data-v-6fd8f918">订单号</text><text class="value data-v-6fd8f918">{{orderInfo.no}}</text></view><view class="info-item data-v-6fd8f918"><text class="label data-v-6fd8f918">服务项目</text><text class="value data-v-6fd8f918">{{orderInfo.accompany_product?orderInfo.accompany_product.name:''}}</text></view><view class="info-item data-v-6fd8f918"><text class="label data-v-6fd8f918">服务时间</text><text class="value data-v-6fd8f918">{{orderInfo.time}}</text></view><block wx:if="{{orderInfo.type===2}}"><view class="info-item data-v-6fd8f918"><text class="label data-v-6fd8f918">服务地址</text><text class="value data-v-6fd8f918">{{item.city?item.city:''}}</text></view></block><block wx:else><view class="info-item data-v-6fd8f918"><text class="label data-v-6fd8f918">就诊医院</text><text class="value data-v-6fd8f918">{{orderInfo.hospital?orderInfo.hospital.name:''}}</text></view></block><view class="info-item data-v-6fd8f918"><text class="label data-v-6fd8f918">联系人</text><text class="value data-v-6fd8f918">{{orderInfo.appoint_name?orderInfo.appoint_name:''}}</text></view><view class="info-item data-v-6fd8f918"><text class="label data-v-6fd8f918">联系方式</text><text class="value data-v-6fd8f918">{{orderInfo.appoint_mobile?orderInfo.appoint_mobile:''}}</text></view><view class="info-item data-v-6fd8f918"><text class="label data-v-6fd8f918">被服务人</text><text class="value data-v-6fd8f918">{{orderInfo.user_archive?orderInfo.user_archive.name:''}}</text></view><view class="info-item data-v-6fd8f918"><text class="label data-v-6fd8f918">是否可以自理</text><text class="value data-v-6fd8f918">{{orderInfo.my_provide===1?'可以自理':'不能自理'}}</text></view><view class="info-item info-item-reason data-v-6fd8f918"><text class="label data-v-6fd8f918">就诊资料</text><view class="value data-v-6fd8f918"><view class="order-item-img data-v-6fd8f918"><block wx:for="{{imgs}}" wx:for-item="item" wx:for-index="index"><image src="{{item}}" data-event-opts="{{[['tap',[['imgPreview',[index]]]]]}}" bindtap="__e" class="data-v-6fd8f918"></image></block></view></view></view><view class="info-item info-item-reason data-v-6fd8f918"><text class="label data-v-6fd8f918">其他需求</text><text class="value data-v-6fd8f918">{{orderInfo.content?orderInfo.content:''}}</text></view><view class="info-item data-v-6fd8f918"><text class="label data-v-6fd8f918">购买数量</text><text class="value data-v-6fd8f918">{{orderInfo.can_multi_num||1}}</text></view><view class="info-item data-v-6fd8f918"><text class="label data-v-6fd8f918">订单金额</text><text class="value data-v-6fd8f918">{{"¥"+orderInfo.price}}</text></view><view class="info-item data-v-6fd8f918"><text class="label data-v-6fd8f918">原始金额</text><text class="value data-v-6fd8f918">{{"¥"+orderInfo.from_price}}</text></view><block wx:if="{{orderInfo.status===3||orderInfo.status===4}}"><view class="info-item data-v-6fd8f918"><text class="label data-v-6fd8f918">待付金额</text><text class="value price data-v-6fd8f918">{{"¥"+orderInfo.diff_price}}</text></view></block><view class="info-item info-item-reason data-v-6fd8f918"><text class="label data-v-6fd8f918">修改原因</text><text class="value reason data-v-6fd8f918">{{orderInfo.update_price_reason?orderInfo.update_price_reason:''}}</text></view></view><block wx:if="{{orderInfo.status===3}}"><view class="payment-popup data-v-6fd8f918"><view class="title data-v-6fd8f918">付款二维码</view><view class="amount data-v-6fd8f918"><text class="symbol data-v-6fd8f918">¥</text><text class="number data-v-6fd8f918">{{orderInfo.diff_price}}</text></view><view class="qr-code data-v-6fd8f918"><block wx:if="{{myQrcode}}"><uqrcode vue-id="e972aa24-2" canvas-id="qrcode" value="{{myQrcode}}" sizeUnit="rpx" size="{{200}}" options="{{({margin:10})}}" data-ref="uqrcode" class="data-v-6fd8f918 vue-ref" bind:__l="__l"></uqrcode></block></view><view class="tips data-v-6fd8f918"><text class="data-v-6fd8f918">请扫码支付差额</text><text class="sub-tips data-v-6fd8f918">支付完成后订单将自动完成</text></view><view class="close-btn data-v-6fd8f918"><u-button vue-id="e972aa24-3" size="mini" shape="circle" type="default" custom-style="{{parStyle}}" data-event-opts="{{[['^click',[['isPayCode']]]]}}" bind:click="__e" class="data-v-6fd8f918" bind:__l="__l" vue-slots="{{['default']}}">我已支付</u-button></view></view></block></view>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -16,7 +16,7 @@
.detail-page.data-v-75de4fcc {
min-height: 100vh;
background: #f5f5f5;
padding-bottom: 40rpx;
padding-bottom: 120rpx;
}
.detail-page .b-border.data-v-75de4fcc {
width: 100%;
@ -69,6 +69,7 @@
margin: 30rpx;
box-shadow: 0 4rpx 16rpx #e6eaf1;
padding: 30rpx;
z-index: 1;
}
.detail-page .payment-popup .title.data-v-75de4fcc {
font-size: 32rpx;
@ -129,20 +130,22 @@
text-align: center;
margin-top: 20rpx;
}
.detail-page .bottom-pay-btn.data-v-75de4fcc {
.bottom-pay-btn.data-v-75de4fcc {
position: fixed;
bottom: 0;
left: 0;
right: 0;
padding: 20rpx;
bottom: 0;
width: 100vw;
background: #fff;
border-top: 1rpx solid rgba(0, 0, 0, 0.1);
z-index: 9999;
box-shadow: 0 -2rpx 8rpx #00000010;
padding: 20rpx 30rpx 40rpx 30rpx;
display: flex;
justify-content: center;
}
.detail-page .bottom-pay-btn .u-button.data-v-75de4fcc {
.bottom-pay-btn .pay-btn.data-v-75de4fcc {
width: 100%;
height: 80rpx;
border-radius: 40rpx;
font-size: 32rpx;
border-radius: 40rpx;
font-weight: 500;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -543,4 +543,22 @@
color: #333;
font-weight: 500;
}
.bottom-pay-btn.data-v-6614d6de {
position: fixed;
left: 0;
bottom: 0;
width: 100vw;
background: #fff;
z-index: 9999;
box-shadow: 0 -2rpx 8rpx #00000010;
padding: 20rpx 30rpx 40rpx 30rpx;
display: flex;
justify-content: center;
}
.bottom-pay-btn .pay-btn.data-v-6614d6de {
width: 100%;
font-size: 32rpx;
border-radius: 40rpx;
font-weight: 500;
}

@ -1,2 +1,2 @@
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["package_sub/pages/ServiceDetail/ServiceDetail"],{300:function(e,n,t){"use strict";(function(e,n){var r=t(4);t(26);r(t(25));var i=r(t(301));e.__webpack_require_UNI_MP_PLUGIN__=t,n(i.default)}).call(this,t(1)["default"],t(2)["createPage"])},301:function(e,n,t){"use strict";t.r(n);var r=t(302),i=t(304);for(var o in i)["default"].indexOf(o)<0&&function(e){t.d(n,e,(function(){return i[e]}))}(o);t(306),t(308);var u,c=t(35),a=Object(c["default"])(i["default"],r["render"],r["staticRenderFns"],!1,null,"9eba20e8",null,!1,r["components"],u);a.options.__file="package_sub/pages/ServiceDetail/ServiceDetail.vue",n["default"]=a.exports},302:function(e,n,t){"use strict";t.r(n);var r=t(303);t.d(n,"render",(function(){return r["render"]})),t.d(n,"staticRenderFns",(function(){return r["staticRenderFns"]})),t.d(n,"recyclableRender",(function(){return r["recyclableRender"]})),t.d(n,"components",(function(){return r["components"]}))},303:function(e,n,t){"use strict";var r;t.r(n),t.d(n,"render",(function(){return i})),t.d(n,"staticRenderFns",(function(){return u})),t.d(n,"recyclableRender",(function(){return o})),t.d(n,"components",(function(){return r}));try{r={uSwiper:function(){return t.e("uview-ui/components/u-swiper/u-swiper").then(t.bind(null,429))},uParse:function(){return Promise.all([t.e("common/vendor"),t.e("uview-ui/components/u-parse/u-parse")]).then(t.bind(null,436))},uButton:function(){return t.e("uview-ui/components/u-button/u-button").then(t.bind(null,345))}}}catch(c){if(-1===c.message.indexOf("Cannot find module")||-1===c.message.indexOf(".vue"))throw c;console.error(c.message),console.error("1. 排查组件名称拼写是否正确"),console.error("2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"),console.error("3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件")}var i=function(){var e=this,n=e.$createElement;e._self._c},o=!1,u=[];i._withStripped=!0},304:function(e,n,t){"use strict";t.r(n);var r=t(305),i=t.n(r);for(var o in r)["default"].indexOf(o)<0&&function(e){t.d(n,e,(function(){return r[e]}))}(o);n["default"]=i.a},305:function(e,n,t){"use strict";(function(e){var r=t(4);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var i=r(t(30)),o=r(t(32)),u={data:function(){return{id:"",currentTab:0,info:{},orderBtnStyle:{"background-image":"linear-gradient(-90deg, #e26165 0%, #c10d12 94%, #c10d12 100%)","font-weight":"500","font-size":"28rpx",color:"#fff",width:"436rpx","margin-top":"32rpx"}}},onLoad:function(n){var t;e.setNavigationBarTitle({title:null!==(t=n.title)&&void 0!==t?t:"服务项目"}),this.id=n.id?n.id:"",this.getDetail(this.id)},mounted:function(){},computed:{token:function(){var n;return this.vuex_token||(null===(n=e.getStorageSync("lifeData"))||void 0===n?void 0:n.vuex_token)}},methods:{getDetail:function(e){var n=this;return(0,o.default)(i.default.mark((function t(){return i.default.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,n.$u.api.accompanyProductDetail({id:e}).then((function(e){console.log("res",e),n.info=e}));case 2:case"end":return t.stop()}}),t)})))()},toOrder:function(n){var t=this;this.token?this.$u.route({url:"/package_sub/pages/AddOrder/AddOrder?id="+n.id+"&site_id="+n.site_id+"&type="+n.type}):e.showModal({title:"提示",content:"请先登录再下单",confirmText:"登录",success:function(e){e.confirm&&t.$u.route({url:"/pages/login/login",type:"redirect"})},fail:function(){}})}}};n.default=u}).call(this,t(2)["default"])},306:function(e,n,t){"use strict";t.r(n);var r=t(307),i=t.n(r);for(var o in r)["default"].indexOf(o)<0&&function(e){t.d(n,e,(function(){return r[e]}))}(o);n["default"]=i.a},307:function(e,n,t){},308:function(e,n,t){"use strict";t.r(n);var r=t(309),i=t.n(r);for(var o in r)["default"].indexOf(o)<0&&function(e){t.d(n,e,(function(){return r[e]}))}(o);n["default"]=i.a},309:function(e,n,t){}},[[300,"common/runtime","common/vendor"]]]);
(global["webpackJsonp"]=global["webpackJsonp"]||[]).push([["package_sub/pages/ServiceDetail/ServiceDetail"],{300:function(e,n,t){"use strict";(function(e,n){var r=t(4);t(26);r(t(25));var i=r(t(301));e.__webpack_require_UNI_MP_PLUGIN__=t,n(i.default)}).call(this,t(1)["default"],t(2)["createPage"])},301:function(e,n,t){"use strict";t.r(n);var r=t(302),i=t(304);for(var u in i)["default"].indexOf(u)<0&&function(e){t.d(n,e,(function(){return i[e]}))}(u);t(306),t(308);var o,c=t(35),a=Object(c["default"])(i["default"],r["render"],r["staticRenderFns"],!1,null,"9eba20e8",null,!1,r["components"],o);a.options.__file="package_sub/pages/ServiceDetail/ServiceDetail.vue",n["default"]=a.exports},302:function(e,n,t){"use strict";t.r(n);var r=t(303);t.d(n,"render",(function(){return r["render"]})),t.d(n,"staticRenderFns",(function(){return r["staticRenderFns"]})),t.d(n,"recyclableRender",(function(){return r["recyclableRender"]})),t.d(n,"components",(function(){return r["components"]}))},303:function(e,n,t){"use strict";var r;t.r(n),t.d(n,"render",(function(){return i})),t.d(n,"staticRenderFns",(function(){return o})),t.d(n,"recyclableRender",(function(){return u})),t.d(n,"components",(function(){return r}));try{r={uSwiper:function(){return t.e("uview-ui/components/u-swiper/u-swiper").then(t.bind(null,429))},uParse:function(){return Promise.all([t.e("common/vendor"),t.e("uview-ui/components/u-parse/u-parse")]).then(t.bind(null,436))},uButton:function(){return t.e("uview-ui/components/u-button/u-button").then(t.bind(null,345))}}}catch(c){if(-1===c.message.indexOf("Cannot find module")||-1===c.message.indexOf(".vue"))throw c;console.error(c.message),console.error("1. 排查组件名称拼写是否正确"),console.error("2. 排查组件是否符合 easycom 规范,文档:https://uniapp.dcloud.net.cn/collocation/pages?id=easycom"),console.error("3. 若组件不符合 easycom 规范,需手动引入,并在 components 中注册该组件")}var i=function(){var e=this,n=e.$createElement;e._self._c},u=!1,o=[];i._withStripped=!0},304:function(e,n,t){"use strict";t.r(n);var r=t(305),i=t.n(r);for(var u in r)["default"].indexOf(u)<0&&function(e){t.d(n,e,(function(){return r[e]}))}(u);n["default"]=i.a},305:function(e,n,t){"use strict";(function(e){var r=t(4);Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;var i=r(t(30)),u=r(t(32)),o={data:function(){return{id:"",currentTab:0,info:{},orderBtnStyle:{"background-image":"linear-gradient(-90deg, #e26165 0%, #c10d12 94%, #c10d12 100%)","font-weight":"500","font-size":"28rpx",color:"#fff",width:"436rpx","margin-top":"32rpx"}}},onLoad:function(n){var t;e.setNavigationBarTitle({title:null!==(t=n.title)&&void 0!==t?t:"服务项目"}),this.id=n.id?n.id:"",this.getDetail(this.id)},mounted:function(){},computed:{token:function(){var n;return this.vuex_token||(null===(n=e.getStorageSync("lifeData"))||void 0===n?void 0:n.vuex_token)}},methods:{getDetail:function(e){var n=this;return(0,u.default)(i.default.mark((function t(){return i.default.wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,n.$u.api.accompanyProductDetail({id:e}).then((function(e){console.log("res",e),n.info=e}));case 2:case"end":return t.stop()}}),t)})))()},toOrder:function(n){var t=this;this.token?this.$u.route({url:"/package_sub/pages/AddOrder/AddOrder?id="+n.id+"&site_id="+n.site_id+"&type="+n.type+"&can_multi_num="+n.can_multi_num}):e.showModal({title:"提示",content:"请先登录再下单",confirmText:"登录",success:function(e){e.confirm&&t.$u.route({url:"/pages/login/login",type:"redirect"})},fail:function(){}})}}};n.default=o}).call(this,t(2)["default"])},306:function(e,n,t){"use strict";t.r(n);var r=t(307),i=t.n(r);for(var u in r)["default"].indexOf(u)<0&&function(e){t.d(n,e,(function(){return r[e]}))}(u);n["default"]=i.a},307:function(e,n,t){},308:function(e,n,t){"use strict";t.r(n);var r=t(309),i=t.n(r);for(var u in r)["default"].indexOf(u)<0&&function(e){t.d(n,e,(function(){return r[e]}))}(u);n["default"]=i.a},309:function(e,n,t){}},[[300,"common/runtime","common/vendor"]]]);
//# sourceMappingURL=../../../../.sourcemap/mp-weixin/package_sub/pages/ServiceDetail/ServiceDetail.js.map
Loading…
Cancel
Save