mirror of
https://gitee.com/java110/WechatOwnerService.git
synced 2026-02-23 21:36:38 +08:00
277 lines
6.3 KiB
Vue
277 lines
6.3 KiB
Vue
<template>
|
|
<view>
|
|
|
|
<view class="bg-white money-info text-center">
|
|
<view class="money-black"></view>
|
|
<view class="money-title">订单金额</view>
|
|
<view class="money-value">{{money}}</view>
|
|
</view>
|
|
|
|
<view class="padding-sm">
|
|
<view class="block__title">使用积分</view>
|
|
<checkbox-group @change="_checkIntegral" >
|
|
<view class="cu-list menu">
|
|
<view class="cu-item ">
|
|
<view class="content padding-tb-sm">
|
|
<view>
|
|
<view class="text-cut" style="width:220px">
|
|
<!---->
|
|
<checkbox value="Y" v-if="integral <=0" disabled="true"/>
|
|
<checkbox value="Y" v-else/>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="action">
|
|
<text class="text-grey text-sm">{{integral}}个积分</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</checkbox-group>
|
|
<view class="text-right" @click="_viewGetIntegral()">如何获取积分?</view>
|
|
</view>
|
|
|
|
<view class="cu-bar btn-group" style="margin-top: 30px;" v-if="!appId">
|
|
<button disabled="disabled" class="cu-btn bg-blue shadow-blur round lg">确认支付</button>
|
|
</view>
|
|
<view class="cu-bar btn-group" style="margin-top: 30px;" v-else>
|
|
<button @click="_submit" class="cu-btn bg-blue shadow-blur round lg" :disabled="banButton">确认支付</button>
|
|
</view>
|
|
|
|
<tips ref="tipRef"></tips>
|
|
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
isNotNull
|
|
} from '../../lib/java110/utils/StringUtil.js';
|
|
import {
|
|
refreshUserOpenId,
|
|
getOpenIdFromAliPay,
|
|
getWechatMiniOpenId,
|
|
getCommunityWechatAppId
|
|
} from '../../api/user/userApi.js';
|
|
import {
|
|
isWxOrAli
|
|
} from '../../lib/java110/utils/EnvUtil.js';
|
|
|
|
import {
|
|
cashierPayFee
|
|
} from '../../api/fee/feeApi.js';
|
|
|
|
import tips from '@/components/owner/tips.vue';
|
|
|
|
import {
|
|
hasLogin
|
|
} from '../../api/user/sessionApi.js';
|
|
import {
|
|
queryUserIntegral
|
|
} from '@/api/user/userApi.js';
|
|
|
|
export default {
|
|
data() {
|
|
return {
|
|
communityId: '',
|
|
orgMoney:0.0,
|
|
money: 0.0,
|
|
business: '',
|
|
openId: '',
|
|
appId: '',
|
|
data: {},
|
|
appId: '',
|
|
cashierUserId: '',
|
|
banButton: false, // 禁用支付按钮
|
|
useIntegral:'N',
|
|
integral: 0,
|
|
integralMoney:0,
|
|
}
|
|
},
|
|
mounted() {
|
|
// #ifdef H5
|
|
if (isWxOrAli() == "ALIPAY") {
|
|
const oScript = document.createElement('script');
|
|
oScript.type = 'text/javascript';
|
|
oScript.src = 'https://gw.alipayobjects.com/as/g/h5-lib/alipayjsapi/3.1.1/alipayjsapi.min.js';
|
|
document.body.appendChild(oScript);
|
|
}
|
|
// #endif
|
|
},
|
|
onLoad(options) {
|
|
this.openId = options.openId;
|
|
this.communityId = options.communityId;
|
|
this.cashierUserId = options.cashierUserId;
|
|
let _that = this;
|
|
this._loadAppId(function() {
|
|
if (!isNotNull(_that.openId)) {
|
|
//刷新 openId
|
|
// #ifdef H5
|
|
if (isWxOrAli() == 'ALIPAY') {
|
|
_that._refreshAliPayOpenId();
|
|
return;
|
|
}
|
|
//todo h5 情况
|
|
_that._refreshWechatOpenId();
|
|
return;
|
|
// #endif
|
|
|
|
// #ifdef MP-WEIXIN
|
|
_that._refreshWechatMiniOpenId();
|
|
// #endif
|
|
}
|
|
});
|
|
|
|
|
|
this.money = options.money;
|
|
this.orgMoney = options.money;
|
|
this.business = options.business;
|
|
this.data = uni.getStorageSync('doing_cashier');
|
|
|
|
if (hasLogin()) {
|
|
//todo 如果登录了查询用户积分
|
|
this._loadUserIntegral();
|
|
|
|
}
|
|
|
|
},
|
|
components: {
|
|
tips
|
|
},
|
|
methods: {
|
|
_loadAppId: function(_call) {
|
|
let _objType = "1100"; // todo public
|
|
// #ifdef MP-WEIXIN
|
|
_objType = "1000";
|
|
// #endif
|
|
|
|
let _that = this;
|
|
getCommunityWechatAppId({
|
|
communityId: this.communityId,
|
|
objType: _objType
|
|
}).then(_data => {
|
|
_that.appId = _data.data;
|
|
_call();
|
|
})
|
|
},
|
|
_refreshWechatOpenId: function() {
|
|
let _redirectUrl = window.location.href;
|
|
refreshUserOpenId({
|
|
redirectUrl: _redirectUrl,
|
|
wAppId: this.appId,
|
|
}).then(_data => {
|
|
if (_data.code == 0) {
|
|
window.location.href = _data.data.openUrl;
|
|
return;
|
|
}
|
|
});
|
|
},
|
|
_refreshWechatMiniOpenId: function() {
|
|
let _that = this;
|
|
wx.login({
|
|
success: function(loginRes) {
|
|
if (!loginRes.code) {
|
|
return;
|
|
}
|
|
let accountInfo = uni.getAccountInfoSync();
|
|
let appId = accountInfo.miniProgram.appId;
|
|
getWechatMiniOpenId({
|
|
code: loginRes.code,
|
|
appId: appId,
|
|
}).then(_data => {
|
|
if (_data.code != 0) {
|
|
uni.showToast({
|
|
icon: 'none',
|
|
title: _data.msg
|
|
})
|
|
return;
|
|
}
|
|
_that.openId = _data.data;
|
|
})
|
|
|
|
},
|
|
fail: function(error) {
|
|
// 调用 wx.login 接口失败
|
|
console.log('调用wx.login获取code失败');
|
|
console.log(error);
|
|
}
|
|
});
|
|
},
|
|
_submit: function() {
|
|
if (!this.appId) {
|
|
uni.showToast({
|
|
icon: 'none',
|
|
title: '小区未配置支付信息'
|
|
});
|
|
return;
|
|
}
|
|
this.banButton = true;
|
|
let _data = this.data;
|
|
_data.business = this.business;
|
|
_data.tradeType = 'JSAPI';
|
|
_data.appId = this.appId;
|
|
_data.cashierUserId = this.cashierUserId;
|
|
_data.openId = this.openId;
|
|
_data.useIntegral = this.useIntegral;
|
|
cashierPayFee(this, _data)
|
|
},
|
|
_loadUserIntegral: function() {
|
|
let _that = this;
|
|
queryUserIntegral({
|
|
page: 1,
|
|
row: 1,
|
|
}).then(_data=>{
|
|
_that.integral = _data.integral;
|
|
_that.integralMoney = _data.integralMoney;
|
|
})
|
|
},
|
|
_checkIntegral:function(e){
|
|
console.log(e);
|
|
|
|
let _value = e.detail.value;
|
|
if(!_value || _value.length < 1){
|
|
this.useIntegral = 'N';
|
|
this.money = this.orgMoney;
|
|
return;
|
|
}
|
|
|
|
this.useIntegral = 'N';
|
|
this.money = parseFloat(this.orgMoney) - parseFloat(this.integralMoney);
|
|
this.money = this.money.toFixed(2);
|
|
},
|
|
_viewGetIntegral: function() {
|
|
|
|
let _content = "您可以到商城购物或者物业缴费的方式获取积分,积分可以用来物业缴费和商城购物."
|
|
this.$refs.tipRef.openTip('如何获取积分?', _content);
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
.block__title {
|
|
margin: 0;
|
|
font-weight: 400;
|
|
font-size: 14px;
|
|
color: rgba(69, 90, 100, .6);
|
|
padding: 0rpx 30rpx 20rpx;
|
|
}
|
|
|
|
.money-info {
|
|
height: 400upx;
|
|
margin: 20upx;
|
|
|
|
.money-black {
|
|
height: 120upx;
|
|
}
|
|
|
|
.money-title {
|
|
font-size: 32upx;
|
|
}
|
|
|
|
.money-value {
|
|
color: #e54d42;
|
|
margin-top: 20upx;
|
|
font-size: 64upx;
|
|
}
|
|
}
|
|
</style> |