Commit da16d384 authored by gaodapeng's avatar gaodapeng

fix bugs

parent 7debfeaa
......@@ -10,5 +10,5 @@ export const API_CREATE_ORDER = "order/create";
export const API_PAY = "pay/micropay";
//查询支付结果
export const API_QUERY = "order/query";
//退款接口
export const API_REFUND = "order/refund";
\ No newline at end of file
var api = require("../../utils/api.js");
var payUtils = require("../../utils/payUtils.js");
import { ACTION_GO_SCAN } from '../../const/actioncmd'
import { ACTION_GO_SCAN, ACTION_GO_HOME } from '../../const/actioncmd'
import { ACTION_ON_PAY_SUCCESS } from '../../const/actioncmd'
import { ACTION_ON_PAY_FAILED } from '../../const/actioncmd'
Page({
data: {
goodsNum:0,
payPrice:0.00,
totalPrice:0.00,
couponPrice:0.00,
qrPayShow:false,
list:[],
orderNo:"",
isCashierClosed:false,
goodsNum: 0,
payPrice: 0.00,
totalPrice: 0.00,
couponPrice: 0.00,
qrPayShow: false,
list: [],
orderNo: "",
isCashierClosed: false,
isPaying: false,
},
onLoad(options) {
......@@ -21,7 +21,7 @@ Page({
var totalPrice = options.totalPrice
var totalDisc = options.totalDisc
this.setData({
list:options.goods,
list: options.goods,
});
if (totalQuantity != null) {
......@@ -39,35 +39,38 @@ Page({
})
}
//商品数据
let context = this;
my.getStorage({
key: 'goods',
success: function (res) {
console.log("商品信息 ===》 " + JSON.stringify(res));
context.setData({
list:res.data
})
},
fail: function (res) {
console.log("商品信息 ===》 " + JSON.stringify(res));
}
});
//商品数据
let context = this;
my.getStorage({
key: 'goods',
success: function (res) {
console.log("商品信息 ===》 " + JSON.stringify(res));
context.setData({
list: res.data
})
},
fail: function (res) {
console.log("商品信息 ===》 " + JSON.stringify(res));
}
});
},
onShow(){
onShow() {
my.ix.onBuddyMessage({
success: (res) => {
console.info(`onBuddyMessage success: ${JSON.stringify(res)}`);
if(res.action == ACTION_GO_SCAN){//返回扫码页
if (res.action == ACTION_GO_SCAN) {//返回扫码页
//增加跳转回去的内容
my.navigateBack();
} else {
//未知指令
} else if (res.action == ACTION_GO_HOME) {
//去首页
my.reLaunch({
url: "/pages/home/home",
});
}
}
});
......@@ -83,21 +86,21 @@ Page({
* @todo 支付结果的获取
* @todo 跳转数据的保存
*/
startPay(){
startPay() {
//开始loading
my.showLoading({});
//获取order
var payAmount = payUtils.yuan2Fen(this.data.payPrice);
payUtils.getOrder(/*payAmount*/1,this.data.list, function(res){
if(res != null){
payUtils.getOrder(/*payAmount*/1, this.data.list, function (res) {
if (res != null) {
console.log("callback调用,res=" + JSON.stringify(res));
if(res.resultCode ==1){
if (res.resultCode == 1) {
this.setData({
orderNo:res.data
orderNo: res.data
});
this.payWithOpenCashier(res.data);
this.payWithOpenCashier(res.data);
}
}
}.bind(this));
......@@ -106,10 +109,10 @@ Page({
/**
* 打开收银台,进行扫码收款
*/
payWithOpenCashier(){
try{
payWithOpenCashier() {
try {
console.info("收银台版本" + my.ix.getVersionSync({
packageName: 'zoloz.phone.android.alipay.com.dragonfly'
packageName: 'zoloz.phone.android.alipay.com.dragonfly'
}).versionName);
//开启收银台监听
......@@ -125,7 +128,7 @@ Page({
this.data.isCashierClosed = true;
this.doPay(this.data.orderNo, res.barCode);
}
},fail:(res) => {
}, fail: (res) => {
my.showToast({
type: 'exception',
content: api.decodeErrorMessage(res.error),
......@@ -146,7 +149,7 @@ Page({
//如果正在支付中,则等待支付结果返回
} else {
//跳转支付结果页面,说明支付已完成,无论取消支付还是支付成功等都跳转支付结果页
// if (this.data.actualPayPriceYuan != null) {
// my.redirectTo({
// //payPrice和couponPrice需要考虑支付宝优惠
......@@ -166,59 +169,59 @@ Page({
else
console.log('RESULT: ' + res.bizType);
});
} catch(err) {
} catch (err) {
console.log("收银台启动回调 异常==>" + JSON.stringify(err));
}
},
//调用收款接口
//调用收款接口
doPay(orderNo, payCode) {
console.log("doPay调用");
this.setData({isPaying:true});
this.setData({ isPaying: true });
//使用barCode来当面付
var payAmount = payUtils.yuan2Fen(this.data.payPrice);
payUtils.startPay(orderNo, payCode, /*payAmount*/1, this.data.list, function(res){
payUtils.startPay(orderNo, payCode, /*payAmount*/1, this.data.list, function (res) {
my.hideLoading();
console.log("支付回调 ===>" + JSON.stringify(res));
this.setData({isPaying:false});
if(res == null){
this.setData({ isPaying: false });
if (res == null) {
return;
}
if(res.resultCode == 1){
if (res.resultCode == 1) {
//成功
console.log("支付回调成功,跳转 " );
console.log("支付回调成功,跳转 ");
// if(data.isCashierClosed == true){
my.ix.offCashierEventReceive();
this.saveData(this.data.list, res.data);
my.redirectTo({
url: '/pages/paysuccess/paysuccess',
});
my.ix.offCashierEventReceive();
this.saveData(this.data.list, res.data);
my.redirectTo({
url: '/pages/paysuccess/paysuccess',
});
//发送支付成功到后屏
my.ix.sendBuddyMessage({
// 填入目标小程序的 AppID
target: getApp().globalData.backScreenAppId,
data: {
action: ACTION_ON_PAY_SUCCESS,
data: res.data
},
success: (res) => {
console.info(`sendBuddyMessage success: ${JSON.stringify(res)}`);
},
fail: (res) => {
console.info(`sendBuddyMessage failed: ${JSON.stringify(res)}`);
}
});
//发送支付成功到后屏
my.ix.sendBuddyMessage({
// 填入目标小程序的 AppID
target: getApp().globalData.backScreenAppId,
data: {
action: ACTION_ON_PAY_SUCCESS,
data: res.data
},
success: (res) => {
console.info(`sendBuddyMessage success: ${JSON.stringify(res)}`);
},
fail: (res) => {
console.info(`sendBuddyMessage failed: ${JSON.stringify(res)}`);
}
});
// }
} else {
console.log("支付回调失败,toast提示 ");
my.ix.offCashierEventReceive();
my.showToast({
type: 'fail',
content: res.message,
duration: 2000
type: 'fail',
content: res.message,
duration: 2000
});
//发送支付失败到后屏
my.ix.sendBuddyMessage({
......@@ -239,7 +242,7 @@ Page({
}.bind(this));
},
/**
* 保存最近支付成功的相关信息,每次支付成功都需刷新
* @param paySuccessGoodsList 支付成功的商品列表信息
......@@ -255,6 +258,6 @@ Page({
data: paySuccessResponse
});
},
});
var api = require("../../utils/api.js");
import { Page } from '../../utils/scan';
import { API_USE_COUPON } from '../../const/apiurl'
import { API_REFUND } from '../../const/apiurl'
import { ACTION_GO_SCAN } from '../../const/actioncmd'
import { ACTION_GET_ACCOUNT } from '../../const/actioncmd'
import { ACTION_DIRECT_PAYMENT } from '../../const/actioncmd'
......@@ -10,7 +11,6 @@ import { ACTION_REFUND } from '../../const/actioncmd'
import { ACTION_REFUND_FAILED } from '../../const/actioncmd'
import { ACTION_REFUND_SUCCESS } from '../../const/actioncmd'
import { ACTION_PRINT_LAST_ORDER } from '../../const/actioncmd'
import { API_REFUND } from '../../const/apiurl'
Page({
......@@ -118,6 +118,7 @@ Page({
dialogResultFailureRemind: "退款失败",
dialogResultFailureText: "退款失败!无效的订单码",
});
console.log("ACTION_REFUND");
} else if (res.action == ACTION_GO_HOME) {
//home界面收到,则返回界面上
......@@ -315,13 +316,7 @@ Page({
});
},
//增加扫码内容,以及退款等操作的内容
onKeyPress(r) {
//只有在弹窗出现时才扫码
if (this.data.scanDialogDisplay > 0) {
this.refund(r);
}
},
//退款
refund(barcode) {
......@@ -402,4 +397,5 @@ Page({
});
var api = require("../../utils/api.js");
import { Page } from '../../utils/scan';
import {API_SCAN} from '../../const/apiurl'
import {API_USE_COUPON} from '../../const/apiurl'
import { API_SCAN } from '../../const/apiurl'
import { API_USE_COUPON } from '../../const/apiurl'
import { ACTION_GOODS } from '../../const/actioncmd'
import { ACTION_REQUEST_GOOD_INFO } from '../../const/actioncmd'
import { ACTION_GO_BALANCE } from '../../const/actioncmd'
......@@ -13,62 +13,48 @@ Page({
//单位是元
totalPrice: 0.00,
totalQuantity: 0,
totalDisc:0.00,
memberPhone:'',
memberPoint:0
totalDisc: 0.00,
memberPhone: '',
memberPoint: 0
},
onLoad: function (options) {
var barcode = options.barcode
if(barcode != null){
if (barcode != null) {
console.log("首页传递过来的商品条码是 " + barcode);
this.getGoodInfoByBarcode(barcode)
}
},
onShow() {
onShow() {
//开启后屏监听
let context = this;
my.ix.onBuddyMessage({
success: (res) => {
console.info(`onBuddyMessage success: ${JSON.stringify(res)}`);
if (res.action == ACTION_GOODS) {
//商品信息同步
let viewGoodsInfo = res.data
context.setData({
goods: viewGoodsInfo.goods,
totalPrice: viewGoodsInfo.totalPrice,
totalQuantity: viewGoodsInfo.totalQuantity,
totalDisc: viewGoodsInfo.totalDisc,
})
} else if (res.action == ACTION_GO_BALANCE) {
//去结算页面
context.goBalance();
my.ix.sendBuddyMessage({
target: getApp().globalData.backScreenAppId,
data: {
action: ACTION_GO_BALANCE,
data:null
},
success: (res) => {
console.log("发送商品数据到后屏小程序成功 ===》"+JSON.stringify(res));
},
fail: (res) => {
console.log("发送商品数据到后屏小程序 失败 ===》 "+JSON.stringify(res));
//发送失败重试
}
//商品信息同步
let viewGoodsInfo = res.data
context.setData({
goods: viewGoodsInfo.goods,
totalPrice: viewGoodsInfo.totalPrice,
totalQuantity: viewGoodsInfo.totalQuantity,
totalDisc: viewGoodsInfo.totalDisc,
})
}else if(res.action == ACTION_REQUEST_GOOD_INFO){
//去结算页面
context.getGoodInfoByBarcode(res.data);
}else if(res.action == ACTION_GO_HOME){
//去首页
my.reLaunch({
url: "/pages/home/home",
});
}
} else if (res.action == ACTION_GO_BALANCE) {
//去结算页面
context.goBalance();
} else if (res.action == ACTION_REQUEST_GOOD_INFO) {
//去结算页面
context.getGoodInfoByBarcode(res.data);
} else if (res.action == ACTION_GO_HOME) {
//去首页
my.reLaunch({
url: "/pages/home/home",
});
}
}
});
},
......@@ -137,12 +123,12 @@ Page({
//转化商品信息
parseGoodInfo(goodinfo) {
//价格 分转元
goodinfo.quantity = 1;
goodinfo.price = goodinfo.price/100
goodinfo.salePrice = goodinfo.salePrice/100
goodinfo.discnt = goodinfo.discnt/100
goodinfo.price = goodinfo.price / 100
goodinfo.salePrice = goodinfo.salePrice / 100
goodinfo.discnt = goodinfo.discnt / 100
//总数量
let totalQuantityTemp = 0
......@@ -155,60 +141,61 @@ Page({
let goodstemp = []
let goodtemp
lastgoods.forEach(function (item, index, array) {
if(item.barcode == goodinfo.barcode){
if (item.barcode == goodinfo.barcode) {
let quantitytemp = item.quantity
item.quantity = quantitytemp+1
item.quantity = quantitytemp + 1
isHasSame = true
goodtemp = item
}else{
} else {
totalQuantityTemp = totalQuantityTemp + item.quantity
totalPriceTemp = totalPriceTemp + item.price*item.quantity
totalPriceTemp = totalPriceTemp + item.price * item.quantity
goodstemp.push(item)
}
})
if(isHasSame){
totalQuantityTemp = totalQuantityTemp + goodtemp.quantity
totalPriceTemp = totalPriceTemp + goodtemp.price*goodtemp.quantity
let nowgoods = []
nowgoods.push(goodtemp);
var newgoods = nowgoods.concat(goodstemp)
this.setData({ goods: newgoods })
}else{
totalQuantityTemp = totalQuantityTemp + 1
totalPriceTemp = totalPriceTemp + goodinfo.price
let nowgoods = []
nowgoods.push(goodinfo);
var newgoods = nowgoods.concat(lastgoods)
this.setData({ goods: newgoods })
})
if (isHasSame) {
totalQuantityTemp = totalQuantityTemp + goodtemp.quantity
totalPriceTemp = totalPriceTemp + goodtemp.price * goodtemp.quantity
let nowgoods = []
nowgoods.push(goodtemp);
var newgoods = nowgoods.concat(goodstemp)
this.setData({ goods: newgoods })
} else {
totalQuantityTemp = totalQuantityTemp + 1
totalPriceTemp = totalPriceTemp + goodinfo.price
let nowgoods = []
nowgoods.push(goodinfo);
var newgoods = nowgoods.concat(lastgoods)
this.setData({ goods: newgoods })
}
//汇总
this.setData({ totalQuantity: totalQuantityTemp,
totalPrice: totalPriceTemp,
})
//同步信息到后端
this.sendGoodInfoToBack();
//汇总
this.setData({
totalQuantity: totalQuantityTemp,
totalPrice: totalPriceTemp,
})
//同步信息到后端
this.sendGoodInfoToBack();
},
//把所有的商品数据发送到后屏
sendGoodInfoToBack() {
let context = this;
var commonRequest = {
action:ACTION_GOODS,
data:this.data
action: ACTION_GOODS,
data: this.data
};
my.ix.sendBuddyMessage({
target: getApp().globalData.backScreenAppId,
data: commonRequest,
success: (res) => {
console.log("发送商品数据到后屏小程序成功 ===》"+JSON.stringify(res));
console.log("发送商品数据到后屏小程序成功 ===》" + JSON.stringify(res));
},
fail: (res) => {
console.log("发送商品数据到后屏小程序 失败 ===》 "+JSON.stringify(res));
console.log("发送商品数据到后屏小程序 失败 ===》 " + JSON.stringify(res));
//发送失败重试
context.sendGoodInfoToBack();
}
......
This diff is collapsed.
......@@ -9,20 +9,20 @@ export default class scan {
if (!page._keyEventListener) {
my.ix.onKeyEventChange(page._keyEventListener = (r) => {
let cur = getCurrentPages().slice(-1)[0];
if (cur && cur.onKeyPress){
if (cur && cur.onKeyPress) {
if (isScaning == false) {
isScaning = true
code = (r.keyCode - 7)+''
code = (r.keyCode - 7) + ''
setTimeout(() => {
cur.onKeyPress.call(cur, code);
isScaning = false
}, 500);
}else{
cur.onKeyPress.call(cur, code);
isScaning = false
}, 700);
} else {
//特殊处理 keycode需要减7
code = code + (r.keyCode - 7)
}
code = code + (r.keyCode - 7)
}
}
});
}
......
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