finishi pay

master
lynn 11 months 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