Commit ac4d03ff authored by 潘永坪's avatar 潘永坪

个人中心分包

parent 650acd9c
......@@ -42,20 +42,7 @@
"enablePullDownRefresh": false
}
},
{
"path": "pages/my/order/electronicTicket/electronicTicket",
"style": {
"navigationBarTitleText": "电子门票",
"enablePullDownRefresh": false
}
},
{
"path": "pages/my/order/productList/productList",
"style": {
"navigationBarTitleText": "我的订单",
"enablePullDownRefresh": false
}
},
{
"path": "pages/combination/sourceCombiChoose/sourceCombiChoose",
"style": {
......@@ -70,15 +57,6 @@
"enablePullDownRefresh": false
}
},
{
"path": "pages/my/order/intelTicket/intelTicket",
"style": {
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
},
{
"path": "pages/combination/combiOrder/combiOrder",
"style": {
......@@ -86,13 +64,7 @@
"enablePullDownRefresh": false
}
},
{
"path": "pages/my/order/orderList/orderList",
"style": {
"navigationBarTitleText": "订单列表",
"enablePullDownRefresh": false
}
},
{
"path": "pages/common/coupon/coupon",
"style": {
......@@ -122,13 +94,7 @@
"enablePullDownRefresh": false
}
},
{
"path": "pages/my/order/afterSale/applyAfterSale/applyAfterSale",
"style": {
"navigationBarTitleText": "售后",
"enablePullDownRefresh": false
}
},
{
"path": "pages/indexs/hghgIndex/hghgIndex",
"style": {
......@@ -136,13 +102,7 @@
"enablePullDownRefresh": false
}
},
{
"path": "pages/my/exchangeCode/exchangeIndex/exchangeIndex",
"style": {
"navigationBarTitleText": "兑换",
"enablePullDownRefresh": false
}
},
{
"path": "pages/common/simpleProduct/simpleProduct",
"style": {
......@@ -180,76 +140,127 @@
}
}, {
"path": "pages/payment/changeNumPayment/changeNumPayment",
"style": {
"navigationBarTitleText": "支付",
"enablePullDownRefresh": false
}
},
{
"path": "pages/my/center/center",
"style": {
"navigationBarTitleText": "个人中心",
"enablePullDownRefresh": false
}
}
],
//分包加载配置,此配置为小程序的分包加载机制。
"subPackages": [{
"root": "pages/my", //个人中心分包
"pages": [
{
"path": "order/electronicTicket/electronicTicket",
"style": {
"navigationBarTitleText": "电子门票",
"enablePullDownRefresh": false
}
},
{
"path": "order/productList/productList",
"style": {
"navigationBarTitleText": "我的订单",
"enablePullDownRefresh": false
}
},
{
"path": "order/intelTicket/intelTicket",
"style": {
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
},
{
"path": "order/orderList/orderList",
"style": {
"navigationBarTitleText": "订单列表",
"enablePullDownRefresh": false
}
},
{
"path": "order/afterSale/applyAfterSale/applyAfterSale",
"style": {
"navigationBarTitleText": "售后",
"enablePullDownRefresh": false
}
},
{
"path": "exchangeCode/exchangeIndex/exchangeIndex",
"style": {
"navigationBarTitleText": "兑换",
"enablePullDownRefresh": false
}
}, {
"path": "pages/my/shopCart/shopCart",
"path": "shopCart/shopCart",
"style": {
"navigationBarTitleText": "购物车",
"enablePullDownRefresh": false
}
}, {
"path": "pages/my/commonInfo/commonInfo",
"path": "commonInfo/commonInfo",
"style": {
"navigationBarTitleText": "常用信息",
"enablePullDownRefresh": false
}
}, {
"path": "pages/my/passCode/codeResult/codeResult",
"path": "passCode/codeResult/codeResult",
"style": {
"navigationBarTitleText": "通行码",
"enablePullDownRefresh": false
}
}, {
"path": "pages/my/customerService/enterpriseWechat/enterpriseWechat",
"path": "customerService/enterpriseWechat/enterpriseWechat",
"style": {
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
}, {
"path": "pages/my/couponCenter/myCouponList/myCouponList",
"path": "couponCenter/myCouponList/myCouponList",
"style": {
"navigationBarTitleText": "我的券列表",
"enablePullDownRefresh": false
}
}, {
"path": "pages/my/travelList/travelList/travelList",
"path": "travelList/travelList/travelList",
"style": {
"navigationBarTitleText": "行程单",
"enablePullDownRefresh": false
}
}, {
"path": "pages/my/travelNotes/myTravelogue/myTravelogue",
"path": "travelNotes/myTravelogue/myTravelogue",
"style": {
"navigationBarTitleText": "我的行记",
"enablePullDownRefresh": false
}
}, {
"path": "pages/my/order/afterSale/afterSaleList/afterSaleList",
"path": "order/afterSale/afterSaleList/afterSaleList",
"style": {
"navigationBarTitleText": "售后列表",
"enablePullDownRefresh": false
}
}
],
//分包加载配置,此配置为小程序的分包加载机制。
"subPackages": [
{
"root": "pages/scenic", //子包的根目录
"pages": [
]
},
{
"root": "pages/scenic", //景区分包
"pages": [{
"path": "scenicJointOrder/scenicJointOrder",
"style": {
"navigationBarTitleText": "订单填写",
......@@ -286,7 +297,7 @@
]
},
{
"root": "pages/vlog",
"root": "pages/vlog", //vlogo分包
"pages": [{
"path": "vlogIndex/vlogIndex",
"style": {
......@@ -409,7 +420,7 @@
]
},
{
"root": "pages/album",
"root": "pages/album", //影集分包
"pages": [{
"path": "albumIndex",
"style": {
......@@ -513,6 +524,6 @@
// 下载安装方式
"^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue"
}
}
// npm安装方式
// "^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
\ No newline at end of file
}
// npm安装方式
// "^u-(.*)": "uview-ui/components/u-$1/u-$1.vue"
\ No newline at end of file
<template>
<!-- 传入价格,通过改变数量改变价格的支付页面 -->
<view class="wrap">
<view class="top">
<view class="name">
皇冠大扶梯
</view>
<view class="number">
<text>
购买数量
</text>
<u-number-box
v-model="buyNumber"
bg-color='#3688FF'
color='#ffffff'
:input-height="60"
size='28'>
</u-number-box>
</view>
<view class="price">
<text>
总价
</text>
<text>
¥6.00
</text>
</view>
<view class="remark">
<input placeholder="添加备注(20字以内)" maxlength="20" v-model.trim="remark" style="margin-bottom:20rpx;" />
</view>
<view class="tips">
温馨提示:请核对以上付款金额、付款对象等信息与交易匹配。
</view>
</view>
<view class="bottom">
<text class="btn">立即支付</text>
</view>
</view>
</template>
<script>
export default {
data() {
return {
remark:'',//备注
payType:'',//支付方式
buyNumber:'',//购买数量
}
},
onLoad(option) {
//#ifdef MP-WEIXIN
this.payType = 42
//#endif
//#ifdef MP-ALIPAY
this.payType = 33
//#endif
},
methods: {
}
}
</script>
<style lang="scss" scoped>
.wrap{
height: 100%;
background: #ffffff;
}
.top{
padding: 40rpx 24rpx;
}
.name{
font-size: 32rpx;
font-weight: bold;
color: #191919;
text-align: center;
}
.number{
display: flex;
justify-content: space-between;
font-weight: bold;
margin-top: 80rpx;
align-items: center;
}
.price{
display: flex;
justify-content: space-between;
font-weight: bold;
margin-top: 48rpx;
text:nth-child(2){
font-size: 40rpx;
color: $red;
}
}
.remark{
margin-top: 48rpx;
color: $grey;
}
.tips{
margin-top: 24rpx;
color: $grey;
font-size: 24rpx;
}
.bottom{
position: fixed;
width: 100%;
height: 100rpx;
display: flex;
align-items: center;
justify-content: center;
bottom: 0;
box-shadow: 0px -4px 12px 2px rgba(0,0,0,0.08);
background: #ffffff;
}
.btn{
display: flex;
align-items: center;
justify-content: center;
width: 90%;
height: 80rpx;
background: #3688FF;
border-radius: 8rpx;
font-size: 32rpx;
font-weight: bold;
}
</style>
......@@ -2,74 +2,85 @@
<view class="bigBox">
<view class="top">
<view class="topName">
<text class="topIcon">
<text class="iconfont icon-tubiaolunkuo-"></text>
</text>
<text>{{name}}</text>
<text>{{ name }}</text>
</view>
<view class="topMoney">
<text class="moneyText">金额</text>
<view class="moneyText">
付款金额
</view>
<view class="moneyNumber">
<text class="iconfont icon-fl-renminbi" style="font-size: 56rpx;"></text>
<text>{{buyMoney}}</text>
<text class="iconfont icon-fl-renminbi" style="font-size: 56rpx"></text>
<text>{{ buyMoney }}</text>
<text></text>
</view>
</view>
<!-- -----------------------------有可用优惠券,并且未选中----------------------------------------------------- -->
<view class="topCoupon" v-if="couponData.masterSlaveCouponList&&couponData.masterSlaveCouponList.length>0&&chooseCouponObj==''" @click="showCoupon()">
<view
class="topCoupon"
v-if="couponData.masterSlaveCouponList && couponData.masterSlaveCouponList.length > 0 && chooseCouponObj == ''"
@click="showCoupon()"
>
<view class="couponLeft">
<text></text>
<text>{{couponData.masterSlaveCouponList[0].couponName}}</text>
<text>{{ couponData.masterSlaveCouponList[0].couponName }}</text>
</view>
<view class="couponRight">
<text>未选优惠券</text>
<text class="iconfont icon-you" style="font-size:32rpx;"></text>
<text class="iconfont icon-you" style="font-size: 32rpx"></text>
</view>
</view>
<!-- -----------------------------有可用优惠券----------------------------------------------------- -->
<view class="topCoupon" v-if="chooseCouponObj!=''&&savedMoney>0" @click="showCoupon()">
<view class="topCoupon" v-if="chooseCouponObj != '' && savedMoney > 0" @click="showCoupon()">
<view class="couponLeft">
<text></text>
<text>{{chooseCouponObj.couponName}}</text>
<text>{{ chooseCouponObj.couponName }}</text>
</view>
<view class="couponRight">
<text>-</text>
<text>{{parseFloat(savedMoney.toFixed(2))}}</text>
<text class="iconfont icon-you" style="font-size:32rpx;"></text>
<text>{{ parseFloat(savedMoney.toFixed(2)) }}</text>
<text class="iconfont icon-you" style="font-size: 32rpx"></text>
</view>
</view>
<!-- -----------------------------------------------可用优惠券条件--------------------------------------- -->
<view class="topCoupon" v-if="ableConpon!=''" @click="showCoupon()">
<view class="topCoupon" v-if="ableConpon != ''" @click="showCoupon()">
<view class="couponLeft">
<text></text>
<text>{{ableConpon.couponName}}</text>
<text>{{ ableConpon.couponName }}</text>
</view>
<view class="couponRight">
<text>{{ableConpon.couponRule}}</text>
<text class="iconfont icon-you" style="font-size:32rpx;"></text>
<text>{{ ableConpon.couponRule }}</text>
<text class="iconfont icon-you" style="font-size: 32rpx"></text>
</view>
</view>
</view>
<view class="middle">
友情提示:请核对以上付款金额、付款商户等信息与交易一致。经您确认支付的金额,商家不会退回亦无赔偿义务。
<view>
<input placeholder="添加备注(20字以内)" maxlength="20" v-model.trim="remark" style="margin-bottom:20rpx;" />
</view>
<view style="font-size:24rpx;">
温馨提示:请核对以上付款金额、付款对象等信息与交易匹配。
</view>
</view>
<view class="bottom">
<view class="botLeft">
<view v-for="(item,index) of leftList" :key="index">
<text @click="clickNum(items.text,index,a)" v-for="(items,a) of item.child" :key="a" :style="{'background':items.background}">{{items.text}}</text>
<view v-for="(item, index) of leftList" :key="index">
<text @click="clickNum(items.text, index, a)" v-for="(items, a) of item.child" :key="a" :style="{ background: items.background }">{{
items.text
}}</text>
</view>
</view>
<view class="botRight">
<view class="rightOne" @click="clickEnter()" :style="{'background':spaceBackground}">
<text class="iconfont icon-im_huige" style="font-size:70rpx;"></text>
<view class="rightOne" @click="clickEnter()" :style="{ background: spaceBackground }">
<text class="iconfont icon-im_huige" style="font-size: 70rpx"></text>
</view>
<view class="rightTwo" ref="pay" @click="clickPay()" :style="{'background':payBackground}">
<view class="rightTwo" ref="pay" @click="clickPay()" :style="{ background: payBackground }">
<view>立即</view>
<view>支付</view>
</view>
......@@ -77,202 +88,198 @@
</view>
<!-------------------------------------------券弹窗------------------------------>
<orderCoupon :couponData="couponData" ref="orderCoupon" @couponChoose="couponChoose" :chooseCouponObj="chooseCouponObj"></orderCoupon>
</view>
</template>
<script>
import orderCoupon from '@/components/orderCoupon.vue'
export default {
components:{
components: {
orderCoupon
},
data() {
return {
enterUrl:'',//进入页面路由
buyMoney:'', //输入金额
remark:'',//备注
enterUrl: '', //进入页面路由
buyMoney: '', //输入金额
companyId: '', //公司Id
merchantId: '', //商户Id
name: '', //商家名称
payType:'',//支付类型,微信小程序42,支付宝小程序33
payType: '', //支付类型,微信小程序42,支付宝小程序33
paySign: '', //签名
signType: '', //签名方式
timeStamp: '', //时间戳
nonceStr: '', //随机字符串
package: '', //订单详情扩展字符串
orderInfo:'',//支付宝订单号
orderInfo: '', //支付宝订单号
flag: '', //setTimeout函数
couponData: '', //所有劵数据
chooseCouponObj: '', //默认选中最优价格优惠券
savedMoney:0,//优惠金额
savedMoney: 0, //优惠金额
ableConpon: '', //没有可用优惠券时,达到一定条件可用,显示达到的条件
orderSource:8,//1公众号平台、2公众号组合页面1、3公众号组合页面2、4胖丁伙伴app、5第三方自助机、6第三方票房窗口、7平台快捷买单、8扫码支付
background:'',//普通按钮背景颜色
spaceBackground:'',//回格按钮背景颜色
payBackground:'#1dce2e',//支付背景颜色
leftList:[//左侧按钮数据
orderSource: 8, //1公众号平台、2公众号组合页面1、3公众号组合页面2、4胖丁伙伴app、5第三方自助机、6第三方票房窗口、7平台快捷买单、8扫码支付
background: '', //普通按钮背景颜色
spaceBackground: '', //回格按钮背景颜色
payBackground: '#3688FF', //支付背景颜色
leftList: [
//左侧按钮数据
{
child:[
{text:1,background:''},
{text:2,background:''},
{text:3,background:''}
child: [
{ text: 1, background: '' },
{ text: 2, background: '' },
{ text: 3, background: '' }
]
},
{
child:[
{text:4,background:''},
{text:5,background:''},
{text:6,background:''},
child: [
{ text: 4, background: '' },
{ text: 5, background: '' },
{ text: 6, background: '' }
]
},
{
child:[
{text:7,background:''},
{text:8,background:''},
{text:9,background:''},
child: [
{ text: 7, background: '' },
{ text: 8, background: '' },
{ text: 9, background: '' }
]
},
{
child:[
{text:0,background:''},
{text:'.',background:''},
child: [
{ text: 0, background: '' },
{ text: '.', background: '' }
]
}
],
orderId:'',//订单Id
paydJumpUrl:'',//页面跳转路径
companyAttribute:'',//等于5时为出租车
timer:null,//定时器
extendInfo:''//额外信息
orderId: '', //订单Id
paydJumpUrl: '', //页面跳转路径
companyAttribute: '', //等于5时为出租车
timer: null, //定时器
extendInfo: '' //额外信息
}
},
onLoad(option) {
//#ifdef MP-WEIXIN
this.enterUrl=option.q
this.enterUrl = option.q
this.payType = 42
//#endif
//#ifdef MP-ALIPAY
this.enterUrl=uni.getStorageSync('alipayQrCode')
uni.removeStorageSync('alipayQrCode')//临时解决出租车扫码之后跳转到组合票时,参数会有问题,有时间再根本解决
this.enterUrl = uni.getStorageSync('alipayQrCode')
uni.removeStorageSync('alipayQrCode') //临时解决出租车扫码之后跳转到组合票时,参数会有问题,有时间再根本解决
this.payType = 33
//#endif
if(this.enterUrl){//扫普通二维码进入
this.merchantId=this.getUrlKey('merchantId')
this.companyId=this.getUrlKey('companyId')
this.extendInfo=this.getUrlKey('extendInfo')
}else{//扫小程序二维码进入
this.merchantId=option.merchantId
this.companyId=option.companyId
this.extendInfo=option.extendInfo
}
if(uni.getStorageSync('openid')){
this.openid=uni.getStorageSync('openid')
this.getUserBrowse()
if (this.merchantId) { //大商家的有merchantId
if (this.enterUrl) {
//扫普通二维码进入
this.merchantId = this.getUrlKey('merchantId')
this.companyId = this.getUrlKey('companyId')
this.extendInfo = this.getUrlKey('extendInfo')
} else {
//扫小程序二维码进入
this.merchantId = option.merchantId
this.companyId = option.companyId
this.extendInfo = option.extendInfo
}
if (uni.getStorageSync('openid')) {
this.openid = uni.getStorageSync('openid')
if (this.merchantId) {
//大商家的有merchantId
this.init()
} else { //小商家没有merchantId
} else {
//小商家没有merchantId
this.initTwo()
}
this.initCoupon()
}else{
} else {
this.login()
}
},
// 一般页面用onUnload
// tabbar页面用onHide
onUnload() {
if(this.timer) {
if (this.timer) {
clearTimeout(this.timer)
this.timer = null
}
},
methods: {
getUserBrowse(){//---获取浏览记录
let queryUrl=this.$commonjs.getCurrentPageUrl()
let data={
openid:uni.getStorageSync('openid') ,//用户Id
userName:'',//用户昵称
pageType:4,//页面类型(0首页,1商户页,2产品页,3售票页,4付款页,5付款完成页,6行记页,7评论页,8咨询页,9劵中心页,11订单页,12订单详情页,13IC卡出行页,14电子门票页,15常用信息页,16其他页)
queryUrl,//页面全地址
merchantType:''//商户类型1景区,2酒店,3餐饮,4特产
}
this.$request('wechatUser/wxUser/saveUserBrowse',data).then((res)=>{
})
},
login(){//---登录
let _this=this
login() {
//---登录
let _this = this
uni.getProvider({
service: 'oauth',
success(proRes){
success(proRes) {
uni.login({
provider:proRes.provider[0],
provider: proRes.provider[0],
success: function (res) {
if(res.code){
let source=''
if(proRes.provider[0]=='weixin'){
source=3
}else if(proRes.provider[0]=='alipay'){
source=4
}
let data={
code:res.code,
source,//微信小程序3,支付宝小程序4
appid:uni.getStorageSync('appid')||''
}
if(uni.getStorageSync('enterOptions').query){
data.companyId=uni.getStorageSync('enterOptions').query.companyId||''
}
_this.$request('wechat/wx/getUserInfoByCode',data).then(res => {
if(res.code=='00'){
_this.openid=res.data.openid
uni.setStorageSync('openid',_this.openid)
_this.getUserBrowse()
if (_this.merchantId) { //大商家的有merchantId
if (res.code) {
let source = ''
if (proRes.provider[0] == 'weixin') {
source = 3
} else if (proRes.provider[0] == 'alipay') {
source = 4
}
let data = {
code: res.code,
source, //微信小程序3,支付宝小程序4
appid: uni.getStorageSync('appid') || ''
}
if (uni.getStorageSync('enterOptions').query) {
data.companyId = uni.getStorageSync('enterOptions').query.companyId || ''
}
_this.$request('wechat/wx/getUserInfoByCode', data).then(res => {
if (res.code == '00') {
_this.openid = res.data.openid
uni.setStorageSync('openid', _this.openid)
if (_this.merchantId) {
//大商家的有merchantId
_this.init()
} else { //小商家没有merchantId
} else {
//小商家没有merchantId
_this.initTwo()
}
_this.initCoupon()
//用于获取token等信息
let userId=res.data.userId||''
let openid=res.data.openid||''
let datas={openid,source,userId}
_this.$request('wechatUser/login/findWxUserAndLogin',datas).then((res)=>{
if(res.code=='00'){
let token=res.data.token||''
uni.setStorageSync('token',token)
let createUserId=res.data.personId||''
uni.setStorageSync('createUserId',createUserId)
let userId=res.data.userId||''
uni.setStorageSync('userId',userId)
}else{
let userId = res.data.userId || ''
let openid = res.data.openid || ''
let datas = { openid, source, userId }
_this
.$request('wechatUser/login/findWxUserAndLogin', datas)
.then(res => {
if (res.code == '00') {
let token = res.data.token || ''
uni.setStorageSync('token', token)
let createUserId = res.data.personId || ''
uni.setStorageSync('createUserId', createUserId)
let userId = res.data.userId || ''
uni.setStorageSync('userId', userId)
} else {
uni.showToast({
title:res.message,
icon:'none'
title: res.message,
icon: 'none'
})
}
}).catch((err)=>{
})
.catch(err => {
uni.showToast({
title:'登录失败',
icon:'none'
title: '登录失败',
icon: 'none'
})
_this.timer = setTimeout(() => {
_this.login()
}, 2000)
})
}else{
} else {
uni.showToast({
title:res.message,
icon:'none'
title: res.message,
icon: 'none'
})
}
}).catch((err)=>{
})
.catch(err => {
uni.showToast({
title:'登录失败',
icon:'none'
title: '登录失败',
icon: 'none'
})
_this.timer = setTimeout(() => {
_this.login()
......@@ -284,133 +291,151 @@ export default {
}
})
},
getUrlKey(name){//---获取url
return(new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(decodeURIComponent(this.enterUrl)) || [, ''])[1].replace(/\+/g, '%20') || ''
getUrlKey(name) {
//---获取url
return (
(new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(decodeURIComponent(this.enterUrl)) || [, ''])[1].replace(/\+/g, '%20') || ''
)
},
clickNum(i,index,a) {//---输入数字
clickNum(i, index, a) {
//---输入数字
//不超过14位数
if(this.buyMoney.length>13){
if (this.buyMoney.length > 13) {
return
}
this.buyMoney += i
this.leftList[index].child[a].background='#dddddd'
setTimeout(()=>{
this.leftList[index].child[a].background=''
},200)
this.leftList[index].child[a].background = '#dddddd'
setTimeout(() => {
this.leftList[index].child[a].background = ''
}, 200)
clearTimeout(this.flag)
this.flag = setTimeout(()=>{
this.flag = setTimeout(() => {
this.initCoupon()
}, 1500)
},
clickEnter(){//---退格
clickEnter() {
//---退格
this.buyMoney = this.buyMoney.substr(0, this.buyMoney.length - 1)
this.spaceBackground='#dddddd'
setTimeout(()=>{
this.spaceBackground=''
},200)
this.spaceBackground = '#dddddd'
setTimeout(() => {
this.spaceBackground = ''
}, 200)
clearTimeout(this.flag)
this.flag = setTimeout(()=>{
this.flag = setTimeout(() => {
this.initCoupon()
}, 1500)
},
couponChoose(data) { //---子组件券选择之后触发的事件
if(data){
couponChoose(data) {
//---子组件券选择之后触发的事件
if (data) {
this.chooseCouponObj = data
this.savedMoney=this.chooseCouponObj.savedMoney||0
}else{
this.savedMoney = this.chooseCouponObj.savedMoney || 0
} else {
this.chooseCouponObj = ''
this.savedMoney=0
this.savedMoney = 0
}
},
showCoupon() { //---展示券列表
showCoupon() {
//---展示券列表
this.$refs.orderCoupon.showCoupon()
},
init() { //---初始化获取商家名称,大商家
init() {
//---初始化获取商家名称,大商家
let data = {
'merchantId': this.merchantId,
'companyId': this.companyId,
merchantId: this.merchantId,
companyId: this.companyId
}
uni.showLoading({title: '加载中',mask:true})
this.$request('scenic/order/findCodePayInfo',data).then((res) => {
uni.showLoading({ title: '加载中', mask: true })
this.$request('scenic/order/findCodePayInfo', data)
.then(res => {
uni.hideLoading()
if (res.code =='00') {
if (res.code == '00') {
this.name = res.data.name
} else {
uni.showToast({
title:res.message,
icon:'none'
title: res.message,
icon: 'none'
})
}
}).catch((err)=>{
})
.catch(err => {
uni.hideLoading()
})
},
initTwo() { //---初始化获取商家名称,没有merchantId的小商家
initTwo() {
//---初始化获取商家名称,没有merchantId的小商家
let data = {
'id': this.companyId,
id: this.companyId
}
uni.showLoading({title: '加载中',mask:true})
this.$request('user/company/detail', data).then((res) => {
uni.showLoading({ title: '加载中', mask: true })
this.$request('user/company/detail', data)
.then(res => {
uni.hideLoading()
if (res.code=='00'){
this.companyAttribute=res.data.companyVo.companyAttribute
this.paydJumpUrl=res.data.paydJumpUrl
if(this.companyAttribute==5){//出租车显示联系人姓名,其他显示公司名称
if (res.code == '00') {
this.companyAttribute = res.data.companyVo.companyAttribute
this.paydJumpUrl = res.data.paydJumpUrl
if (this.companyAttribute == 5) {
//出租车显示联系人姓名,其他显示公司名称
this.name = res.data.companyVo.contactName
}else{
} else {
this.name = res.data.companyVo.companyName
}
} else {
uni.showToast({
title:res.message,
icon:'none'
title: res.message,
icon: 'none'
})
}
}).catch((err)=>{
})
.catch(err => {
uni.hideLoading()
})
},
initCoupon() { //---加载优惠券
initCoupon() {
//---加载优惠券
let savedMoneyList = []
this.chooseCouponObj = ''
this.ableConpon = ''
let data = {
money:parseFloat(this.buyMoney)||0, //订单总价,不算券,和现金红包
merchantId:this.merchantId, //商户Id
companyId:this.companyId,//公司Id
orderSource:this.orderSource,//订单来源 8扫码支付
openid:this.openid
money: parseFloat(this.buyMoney) || 0, //订单总价,不算券,和现金红包
merchantId: this.merchantId, //商户Id
companyId: this.companyId, //公司Id
orderSource: this.orderSource, //订单来源 8扫码支付
openid: this.openid
}
this.$request('wechatUser/myPage/usableCouponList',data).then((res) =>{
this.$request('wechatUser/myPage/usableCouponList', data).then(res => {
if (res.code == '00') {
this.couponData = res.data
let masterSlaveCouponList=res.data.masterSlaveCouponList
if (masterSlaveCouponList&&masterSlaveCouponList.length>0) {
masterSlaveCouponList.forEach((item) => { //获取最优券
let masterSlaveCouponList = res.data.masterSlaveCouponList
if (masterSlaveCouponList && masterSlaveCouponList.length > 0) {
masterSlaveCouponList.forEach(item => {
//获取最优券
savedMoneyList.push(item.savedMoney)
})
let maxMoney = Math.max.apply(null, savedMoneyList)
let arr=masterSlaveCouponList.filter((item)=>{//找到最大值的数组
return item.savedMoney==maxMoney
let arr = masterSlaveCouponList.filter(item => {
//找到最大值的数组
return item.savedMoney == maxMoney
})
if(arr.length==1){
this.chooseCouponObj=arr[0]
}else{
if (arr.length == 1) {
this.chooseCouponObj = arr[0]
} else {
//如果数组有多个时
let index=arr.findIndex((item)=>{//如果有多个,找到是否有平台券,平台劵优先
return item.createSource==1
let index = arr.findIndex(item => {
//如果有多个,找到是否有平台券,平台劵优先
return item.createSource == 1
})
if(index>-1){
this.chooseCouponObj=arr[index]
}else{
this.chooseCouponObj=arr[0]
if (index > -1) {
this.chooseCouponObj = arr[index]
} else {
this.chooseCouponObj = arr[0]
}
}
this.savedMoney=this.chooseCouponObj.savedMoney
this.savedMoney = this.chooseCouponObj.savedMoney
} else {
if (res.data.unusableCouponList.length > 0) {
res.data.unusableCouponList.forEach((item, i) => { //没有可用优惠券,有达到条件可以用的优惠券,先显示条件,达到条件时显示可用优惠券
res.data.unusableCouponList.forEach((item, i) => {
//没有可用优惠券,有达到条件可以用的优惠券,先显示条件,达到条件时显示可用优惠券
if (item.isProduct == 1) {
this.ableConpon = item
}
......@@ -420,36 +445,39 @@ export default {
}
})
},
clickPay(){//---点击立即支付,获取支付需要的参数
clickPay() {
//---点击立即支付,获取支付需要的参数
if (!parseFloat(this.buyMoney)) {
uni.showToast({
title:'请输入正确金额',
icon:'none'
title: '请输入正确金额',
icon: 'none'
})
return
}
let couponList = []
if (this.chooseCouponObj != '') {
if(this.chooseCouponObj.slaveList.length>0){//有从卷取值从卷,没有从卷取值主劵
couponList=[//券列表
if (this.chooseCouponObj.slaveList.length > 0) {
//有从卷取值从卷,没有从卷取值主劵
couponList = [
//券列表
{
couponId:this.chooseCouponObj.slaveCouponId,//券id
isMerchant:this.chooseCouponObj.slaveCreateSource,//是否是商户的券
myCouponId:this.chooseCouponObj.slaveId,//领取人编号
couponType:this.chooseCouponObj.couponType,//券类型
couponPrice:this.chooseCouponObj.savedMoney,//券价格
couponCompanyId:this.chooseCouponObj.companyId,//公司Id
couponId: this.chooseCouponObj.slaveCouponId, //券id
isMerchant: this.chooseCouponObj.slaveCreateSource, //是否是商户的券
myCouponId: this.chooseCouponObj.slaveId, //领取人编号
couponType: this.chooseCouponObj.couponType, //券类型
couponPrice: this.chooseCouponObj.savedMoney, //券价格
couponCompanyId: this.chooseCouponObj.companyId //公司Id
}
]
}else{
couponList=[
} else {
couponList = [
{
couponId:this.chooseCouponObj.couponId,//券id
isMerchant:this.chooseCouponObj.createSource,//是否是商户的券
myCouponId:this.chooseCouponObj.id,//领取人编号
couponType:this.chooseCouponObj.couponType,//券类型
couponPrice:this.chooseCouponObj.savedMoney,//券价格
couponCompanyId:this.chooseCouponObj.companyId,//公司Id
couponId: this.chooseCouponObj.couponId, //券id
isMerchant: this.chooseCouponObj.createSource, //是否是商户的券
myCouponId: this.chooseCouponObj.id, //领取人编号
couponType: this.chooseCouponObj.couponType, //券类型
couponPrice: this.chooseCouponObj.savedMoney, //券价格
couponCompanyId: this.chooseCouponObj.companyId //公司Id
}
]
}
......@@ -457,29 +485,32 @@ export default {
let data = {
companyId: this.companyId,
merchantId: this.merchantId,
userId:this.openid,
userId: this.openid,
orderMoney: parseFloat(this.buyMoney),
payType: this.payType, //支付类型,
orderSource:this.orderSource,//订单来源 8扫码支付
couponList,//券列表
extendInfo:this.extendInfo,//额外信息
orderSource: this.orderSource, //订单来源 8扫码支付
couponList, //券列表
extendInfo: this.extendInfo ,//额外信息
remark:this.remark,//备注信息
}
this.payBackground='#cccccc'
this.payBackground = '#cccccc'
//重新加载优惠券
this.initCoupon()
this.$request('orderc/order/codePay', data).then((res) => {
this.$request('orderc/order/codePay', data)
.then(res => {
setTimeout(() => {
this.payBackground='#1dce2e'
},1000)
if(res.code=='00') {
this.payBackground = '#3688FF'
}, 1000)
if (res.code == '00') {
if (res.data.errorMessage) {
uni.showToast({
title:res.data.errorMessage,
icon:'none'
title: res.data.errorMessage,
icon: 'none'
})
return
}
this.orderId=res.data.id
this.orderId = res.data.id
//微信入参
this.signType = res.data.signType
this.paySign = res.data.sign
......@@ -491,39 +522,42 @@ export default {
this.goPay()
} else {
uni.showToast({
title:res.message,
icon:'none'
title: res.message,
icon: 'none'
})
}
}).catch((err) => {
this.payBackground='#1dce2e'
})
.catch(err => {
this.payBackground = '#3688FF'
})
},
goPay(){//---去支付
let _this=this
goPay() {
//---去支付
let _this = this
// #ifdef MP-WEIXIN
uni.requestPayment({
provider: 'wxpay',
timeStamp:this.timeStamp,
nonceStr:this.nonceStr,
package:this.package,
signType:this.signType,
paySign:this.paySign,
timeStamp: this.timeStamp,
nonceStr: this.nonceStr,
package: this.package,
signType: this.signType,
paySign: this.paySign,
success: function (res) {
if(_this.companyAttribute==5){//出租车跳转分销组合票页面
if (_this.companyAttribute == 5) {
//出租车跳转分销组合票页面
uni.navigateTo({
url:_this.paydJumpUrl
url: _this.paydJumpUrl
})
}else{
} else {
uni.navigateTo({
url:'/pages/payment/paySuccess/paySuccess?orderId='+_this.orderId
url: '/pages/payment/paySuccess/paySuccess?orderId=' + _this.orderId
})
}
},
fail: function (err) {
uni.showToast({
title:err.errMsg,
icon:'none'
title: err.errMsg,
icon: 'none'
})
}
})
......@@ -534,20 +568,21 @@ export default {
provider: 'alipay', // 服务提供商 支付宝支付: alipay 微信支付: wxpay
orderInfo: this.orderInfo, // 支付宝订单号
success: function (res) {
if(_this.companyAttribute==5){//出租车跳转分销组合票页面
if (_this.companyAttribute == 5) {
//出租车跳转分销组合票页面
uni.navigateTo({
url:_this.paydJumpUrl
url: _this.paydJumpUrl
})
}else{
} else {
uni.navigateTo({
url:'/pages/payment/paySuccess/paySuccess?orderId='+_this.orderId
url: '/pages/payment/paySuccess/paySuccess?orderId=' + _this.orderId
})
}
},
fail: function (err) {
uni.showToast({
title:err.errMsg,
icon:'none'
title: err.errMsg,
icon: 'none'
})
}
})
......@@ -556,18 +591,22 @@ export default {
},
watch: {
buyMoney(val, oldVal) {
if (val == '.' && oldVal == '') { //首位数是小数点自动加上0
if (val == '.' && oldVal == '') {
//首位数是小数点自动加上0
this.buyMoney = 0 + '.'
}
if (val == '0' && oldVal == '') { //首位数是0自动加上小数点
if (val == '0' && oldVal == '') {
//首位数是0自动加上小数点
this.buyMoney = 0 + '.'
}
if (val.length == 2) { //防止回退之后出现01,02等状况
if (val.length == 2) {
//防止回退之后出现01,02等状况
if (val.substr(0, 1) == 0 && val.substr(1, 2) != '.') {
this.buyMoney = val.substr(1, 2)
}
}
if (isNaN(val) && val != '.') { //出现非数字,输入无效
if (isNaN(val) && val != '.') {
//出现非数字,输入无效
this.buyMoney = oldVal
}
var x = String(this.buyMoney).indexOf('.') + 1 //小数点的位置
......@@ -576,9 +615,9 @@ export default {
this.buyMoney = oldVal
}
if (parseFloat(this.buyMoney)) {
this.payBackground='#1dce2e'
this.payBackground = '#3688FF'
} else {
this.payBackground='#cccccc'
this.payBackground = '#cccccc'
}
}
}
......@@ -586,42 +625,171 @@ export default {
</script>
<style lang="scss">
.bigBox{background:#f5f5f5;height: 100%;}
/*上部分*/
.top{background: #FFFFFF;}
.topName{font-size:30rpx;font-weight: bold;padding: 50rpx 24rpx 0 24rpx;display: flex;align-items: center;justify-content: center;}
.topIcon{display:inline-flex;margin-right:10rpx;width:50rpx;height:50rpx;border-radius:50%;background:#FF8B57;align-items:center;justify-content:center;}
.icon-tubiaolunkuo-{font-size:36rpx;color: #FFFFFF;font-weight: 400;}
.topMoney{padding:80rpx 24rpx 24rpx 24rpx;display: flex;justify-content:space-between;align-items: center;}
.moneyText{color: #FF3C00;font-size:32rpx;font-weight: bold;}
.moneyNumber text:nth-child(2){font-size:62rpx;font-weight: bold;position: relative;left: -6rpx;}
.moneyNumber text:last-child{animation: dis 1.5s infinite;transition: 1s;width: 1px;height:56rpx;display: inline-block;background: #333333;position: relative;top:8rpx;}
.topCoupon{display: flex;height: 90rpx;border-top:1px solid $divider;align-items:center;padding:0 24rpx;justify-content: space-between;}
.couponLeft{font-size:24rpx;}
.couponLeft text:first-child{margin-right:10rpx;display: inline-block;width:30rpx;height:30rpx;background: #f9690e;color: #FFFFFF;text-align: center;line-height:28rpx;border-radius:4rpx;}
.couponRight{position:relative;left:8rpx;}
.couponRight text:first-child{font-size:32rpx;color:#f9690e;}
.couponRight text:nth-child(2){font-size: 32rpx;color: #F9690E;font-weight:bold;}
/*中间部分*/
.middle{padding:50rpx 24rpx 0 24rpx;font-size: 24rpx;color: #999999;line-height: 40rpx;}
/*下部分*/
.bottom{position:absolute;bottom:0;height:40%;background: #FFFFFF;width:100%;display: flex;border-top:1px solid #dddddd;font-size:50rpx;}
.botLeft{width:75%;}
.botLeft view{height:25%;display: flex;border-bottom:1px solid #dddddd;}
.botLeft view:last-child{border:none;}
.botLeft view:last-child text:first-child{width:66.7%;}
.botLeft view:last-child text:last-child{width: 33.3%;}
.botLeft view text{flex:1;height:100%;display:inline-flex;align-items: center;justify-content: center;border-right:1px solid #dddddd;}
.botLeft view:last-child text{flex:initial;}
.botRight{width:25%;}
.rightOne{height: 25%;display: flex;align-items:center;justify-content: center;border-bottom:1px solid #dddddd;}
.rightTwo{height: 75%;border:none;color: #FFFFFF;display: flex;flex-direction:column;align-items:center;justify-content: center;}
@keyframes dis{
from{
.bigBox {
background: #f5f5f5;
height: 100%;
}
/*上部分*/
.top {
background: #ffffff;
border-bottom: 1px solid #ececec;
}
.topName {
font-size: 30rpx;
font-weight: bold;
padding: 50rpx 24rpx 0 24rpx;
display: flex;
align-items: center;
justify-content: center;
}
.topIcon {
display: inline-flex;
margin-right: 10rpx;
width: 50rpx;
height: 50rpx;
border-radius: 50%;
background: #ff8b57;
align-items: center;
justify-content: center;
}
.icon-tubiaolunkuo- {
font-size: 36rpx;
color: #ffffff;
font-weight: 400;
}
.topMoney {
padding: 80rpx 24rpx 24rpx 24rpx;
}
.moneyText {
color: #ff3c00;
font-size: 32rpx;
font-weight: bold;
}
.moneyNumber{
margin-top: 30rpx;
}
.moneyNumber text:nth-child(2) {
font-size: 62rpx;
font-weight: bold;
position: relative;
left: -6rpx;
}
.moneyNumber text:last-child {
animation: dis 1.5s infinite;
transition: 1s;
width: 1px;
height: 56rpx;
display: inline-block;
background: #333333;
position: relative;
top: 8rpx;
}
.topCoupon {
display: flex;
height: 90rpx;
border-top: 1px solid $divider;
align-items: center;
padding: 0 24rpx;
justify-content: space-between;
}
.couponLeft {
font-size: 24rpx;
}
.couponLeft text:first-child {
margin-right: 10rpx;
display: inline-block;
width: 30rpx;
height: 30rpx;
background: #f9690e;
color: #ffffff;
text-align: center;
line-height: 28rpx;
border-radius: 4rpx;
}
.couponRight {
position: relative;
left: 8rpx;
}
.couponRight text:first-child {
font-size: 32rpx;
color: #f9690e;
}
.couponRight text:nth-child(2) {
font-size: 32rpx;
color: #f9690e;
font-weight: bold;
}
/*中间部分*/
.middle {
padding: 30rpx 24rpx 50rpx 24rpx;
color: #999999;
line-height: 40rpx;
background: #ffffff;
}
/*下部分*/
.bottom {
position: absolute;
bottom: 0;
height: 40%;
background: #ffffff;
width: 100%;
display: flex;
border-top: 1px solid #dddddd;
font-size: 50rpx;
}
.botLeft {
width: 75%;
}
.botLeft view {
height: 25%;
display: flex;
border-bottom: 1px solid #dddddd;
}
.botLeft view:last-child {
border: none;
}
.botLeft view:last-child text:first-child {
width: 66.7%;
}
.botLeft view:last-child text:last-child {
width: 33.3%;
}
.botLeft view text {
flex: 1;
height: 100%;
display: inline-flex;
align-items: center;
justify-content: center;
border-right: 1px solid #dddddd;
}
.botLeft view:last-child text {
flex: initial;
}
.botRight {
width: 25%;
}
.rightOne {
height: 25%;
display: flex;
align-items: center;
justify-content: center;
border-bottom: 1px solid #dddddd;
}
.rightTwo {
height: 75%;
border: none;
color: #ffffff;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
@keyframes dis {
from {
opacity: 0;
}
to{
to {
opacity: 1;
}
}
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment