初始上传
This commit is contained in:
239
addon/cashier/source/os/pages/recharge/public/js/recharge.js
Executable file
239
addon/cashier/source/os/pages/recharge/public/js/recharge.js
Executable file
@@ -0,0 +1,239 @@
|
||||
import {getRechargeConfig, addRecharge} from '@/api/recharge'
|
||||
import {getMemberInfoById} from '@/api/member'
|
||||
import {mapGetters} from 'vuex';
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
type: 'member',
|
||||
//充值卡相关
|
||||
memberRecharge: [],
|
||||
rechargeMoney: 0,
|
||||
rechargeType: 1,
|
||||
rechargeIndex: 0,
|
||||
rechargeTypeList: [{
|
||||
text: '充值套餐',
|
||||
value: 1
|
||||
}, {
|
||||
text: '自定义金额',
|
||||
value: 2
|
||||
}],
|
||||
outTradeNo: '',
|
||||
isRepeat: false
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
reward() {
|
||||
if (this.rechargeType == 1 && this.memberRecharge.length > 0 && this.memberRecharge[this.rechargeIndex]) {
|
||||
let data = this.memberRecharge[this.rechargeIndex];
|
||||
if (data.point || data.growth || data.coupon) return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
...mapGetters(['rechargeActive','memberSearchWayConfig'])
|
||||
},
|
||||
onLoad() {
|
||||
uni.hideTabBar();
|
||||
},
|
||||
onShow() {
|
||||
this.create_time = this.$util.timeFormat(parseInt(new Date().getTime() / 1000));
|
||||
this.addKeyDownEvent();
|
||||
|
||||
// 添加组件的键盘监听事件
|
||||
if (this.$refs.payment) this.$refs.payment.addKeyDownEvent();
|
||||
|
||||
this.getMemberRecharge();
|
||||
},
|
||||
onHide() {
|
||||
this.removeKeyDownEvent();
|
||||
|
||||
// 移除组件的键盘监听事件
|
||||
if (this.$refs.payment) this.$refs.payment.removeKeyDownEvent();
|
||||
},
|
||||
methods: {
|
||||
//充值卡相关
|
||||
getMemberRecharge() {
|
||||
getRechargeConfig().then(res => {
|
||||
if (res.code == 0 && res.data) {
|
||||
this.memberRecharge = res.data;
|
||||
if (this.memberRecharge.length > 0) {
|
||||
for (let i in this.memberRecharge) this.memberRecharge[i]['money'] = this.memberRecharge[i]['price'];
|
||||
} else {
|
||||
this.rechargeType = 2;
|
||||
this.rechargeTypeList[0].disable = true;
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
getMemberInfo() {
|
||||
getMemberInfoById(this.globalMemberInfo.member_id).then(res => {
|
||||
if (res.code == 0 && res.data) {
|
||||
this.$store.commit('app/setGlobalMemberInfo', res.data);
|
||||
} else {
|
||||
this.$util.showToast({
|
||||
title: '未获取到会员信息'
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
openMember() {
|
||||
if (this.$refs.selectMember) {
|
||||
this.$store.commit('recharge/setActive', 'ShowMember');
|
||||
this.$refs.selectMember.open(() => {
|
||||
this.$store.commit('recharge/setActive', 'ShowMemberAfter');
|
||||
});
|
||||
setTimeout(() => {
|
||||
this.$refs.selectMember.inputFocus = true;
|
||||
}, 200);
|
||||
}
|
||||
},
|
||||
showMember() {
|
||||
this.$store.commit('recharge/setActive', 'ShowMember');
|
||||
if (!this.globalMemberInfo) {
|
||||
if (this.$refs.selectMember) this.$refs.selectMember.open(() => {
|
||||
this.$store.commit('recharge/setActive', 'ShowMemberAfter');
|
||||
});
|
||||
} else {
|
||||
// 打开会员信息弹出框
|
||||
this.$store.commit('recharge/setActive', 'ShowMemberAfter');
|
||||
this.$refs.memberDetailPopup.open();
|
||||
}
|
||||
},
|
||||
pay() {
|
||||
if (!this.globalMemberInfo || (this.globalMemberInfo && !this.globalMemberInfo.member_id)) {
|
||||
this.type = 'member';
|
||||
this.openMember();
|
||||
return false;
|
||||
}
|
||||
|
||||
if (this.rechargeType == 1 && !this.memberRecharge[this.rechargeIndex]) {
|
||||
this.$util.showToast({
|
||||
title: '请选择充值套餐'
|
||||
});
|
||||
return;
|
||||
}
|
||||
var isValid = /^-?\d+(\.\d{1,2})?$/;
|
||||
if (this.rechargeType == 2 && !isValid.test(this.rechargeMoney)) {
|
||||
this.$util.showToast({
|
||||
title: '请输入正确的充值金额'
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
let data = {
|
||||
member_id: this.globalMemberInfo.member_id
|
||||
};
|
||||
if (this.rechargeType == 1) {
|
||||
data.sku_array = [{
|
||||
recharge_id: this.memberRecharge[this.rechargeIndex].recharge_id
|
||||
}];
|
||||
} else {
|
||||
data.sku_array = [{
|
||||
money: this.rechargeMoney
|
||||
}];
|
||||
}
|
||||
data.sku_array = JSON.stringify(data.sku_array);
|
||||
|
||||
this.$store.commit('recharge/setActive', 'OrderCreate');
|
||||
|
||||
if (this.isRepeat) return;
|
||||
this.isRepeat = true;
|
||||
addRecharge(data).then(res => {
|
||||
this.isRepeat = false;
|
||||
if (res.code == 0) {
|
||||
this.outTradeNo = res.data.out_trade_no;
|
||||
this.type = 'pay';
|
||||
} else {
|
||||
this.$util.showToast({
|
||||
title: res.message
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
cancelPayment() {
|
||||
this.type = 'member';
|
||||
},
|
||||
paySuccess() {
|
||||
this.type = 'member';
|
||||
this.outTradeNo = '';
|
||||
this.getMemberInfo();
|
||||
|
||||
this.$store.commit('recharge/setActive', '');
|
||||
this.isRepeat = false;
|
||||
},
|
||||
/**
|
||||
* 添加键盘监听事件
|
||||
*/
|
||||
addKeyDownEvent() {
|
||||
// #ifdef H5
|
||||
// 绑定监听事件
|
||||
window.addEventListener("keydown", this.listenerKeyDown, true);
|
||||
|
||||
// 监听F1~F12,BACKSPACE
|
||||
window.POS_HOTKEY_CALLBACK = (control, code) => {
|
||||
this.posHotKeyCallback(code);
|
||||
};
|
||||
// #endif
|
||||
},
|
||||
/**
|
||||
* 移除键盘监听事件
|
||||
*/
|
||||
removeKeyDownEvent() {
|
||||
// #ifdef H5
|
||||
window.removeEventListener("keydown", this.listenerKeyDown, true);
|
||||
|
||||
delete window.POS_HOTKEY_CALLBACK;
|
||||
// #endif
|
||||
},
|
||||
listenerKeyDown(e) {
|
||||
var code = e.code;
|
||||
|
||||
// console.log('KeyDown', this.type, code, this.rechargeActive, e);
|
||||
|
||||
if (this.rechargeActive == '' && code == 'KeyM') {
|
||||
// 选择会员,键盘快捷键【M】
|
||||
|
||||
this.openMember();
|
||||
|
||||
} else if(this.rechargeActive == 'ShowMember' && this.memberSearchWayConfig.way == 'list'){
|
||||
|
||||
// 按照会员列表进行搜索
|
||||
if (code == 'Enter' || code == 'NumpadEnter') {
|
||||
|
||||
if(this.$refs.selectMember.searchFinish && this.$refs.selectMember.memberId){
|
||||
this.$refs.selectMember.getMemberInfo(this.$refs.selectMember.memberId);
|
||||
}
|
||||
}
|
||||
|
||||
} else if (this.rechargeActive == 'ShowMemberAfter' || (this.type == 'member' && this.rechargeActive == '')) {
|
||||
// 活跃窗口:设置会员后,选择充值金额
|
||||
|
||||
if (code == 'Enter' || code == 'NumpadEnter') {
|
||||
this.pay();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
/**
|
||||
* 监听键盘事件回调
|
||||
* @param {Object} code
|
||||
*/
|
||||
posHotKeyCallback(code) {
|
||||
if (code == 'BACKSPACE') {
|
||||
// 退格键
|
||||
if (this.rechargeActive == 'OrderCreate') {
|
||||
if (this.$refs.payment) {
|
||||
if (this.$refs.payment.active == 'openMoneyPopup') {
|
||||
this.$refs.payment.deleteCode();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
// 触发左侧菜单按键回调
|
||||
this.menuTriggerKeyCodeCallBack(code);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user