Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
D
doublescreen-front
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
pengguangpu
doublescreen-front
Commits
da16d384
Commit
da16d384
authored
Feb 25, 2020
by
gaodapeng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix bugs
parent
7debfeaa
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
281 additions
and
294 deletions
+281
-294
apiurl.js
const/apiurl.js
+1
-1
balance.js
pages/balance/balance.js
+76
-73
home.js
pages/home/home.js
+4
-8
scan.js
pages/scan/scan.js
+64
-77
payUtils.js
utils/payUtils.js
+127
-126
scan.js
utils/scan.js
+9
-9
No files found.
const/apiurl.js
View file @
da16d384
...
...
@@ -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
pages/balance/balance.js
View file @
da16d384
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
});
},
});
pages/home/home.js
View file @
da16d384
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({
});
pages/scan/scan.js
View file @
da16d384
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
();
}
...
...
utils/payUtils.js
View file @
da16d384
This diff is collapsed.
Click to expand it.
utils/scan.js
View file @
da16d384
...
...
@@ -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
},
5
00
);
}
else
{
cur
.
onKeyPress
.
call
(
cur
,
code
);
isScaning
=
false
},
7
00
);
}
else
{
//特殊处理 keycode需要减7
code
=
code
+
(
r
.
keyCode
-
7
)
}
code
=
code
+
(
r
.
keyCode
-
7
)
}
}
});
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment