Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
J
jd-vx-app
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
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
jd-vx-app
Commits
3c8dbf69
Commit
3c8dbf69
authored
Apr 22, 2022
by
fwz
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
商城购买商品、首页领取挪车码
parent
42e01740
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
537 additions
and
172 deletions
+537
-172
getCarCode.vue
pagesA/pages/index/getCarCode.vue
+107
-18
getPrice.vue
pagesA/pages/index/getPrice.vue
+66
-23
loveCar.vue
pagesB/pages/move-car/loveCar.vue
+16
-2
detail.vue
pagesC/pages/shop/detail.vue
+26
-8
index.vue
pagesC/pages/shop/index.vue
+38
-11
pay.vue
pagesC/pages/shop/pay.vue
+188
-26
index.vue
pagesD/pages/personal/index.vue
+1
-1
myAddress.vue
pagesD/pages/personal/myAddress.vue
+18
-4
myOrder.vue
pagesD/pages/personal/myOrder.vue
+14
-0
userInfo.vue
pagesD/pages/personal/userInfo.vue
+63
-79
No files found.
pagesA/pages/index/getCarCode.vue
View file @
3c8dbf69
...
...
@@ -9,13 +9,14 @@
<div
class=
"address"
v-if=
"addressShow"
>
<div
class=
"address__left"
>
<div
class=
"right__title"
@
click=
"geMap"
>
北京市朝阳区李家董镇太阳宫社区大唐公寓 2号楼3单元303
{{
addressInfo
.
address
}}
 
{{
addressInfo
.
detailInfo
}}
</div>
<div
class=
"right__phone"
>
<span>
默认
</span>
<span>
我是收货人
</span><span>
19963353323
</span>
<span>
{{
addressInfo
.
userName
}}
</span>
<span>
{{
addressInfo
.
telNumber
}}
</span>
<span
v-if=
"addressInfo.defaultFlag"
>
默认
</span>
</div>
</div>
<div
class=
"address__right"
>
<div
class=
"address__right"
@
click=
"goAddress"
>
<image
src=
"@/static/index/right.png"
/>
</div>
<u-gap
bgColor=
"transparent"
height=
"15"
></u-gap>
...
...
@@ -116,7 +117,13 @@ export default {
price2
:
'19.99'
,
img
:
require
(
'@/static/index/get-car-code1.png'
)
}
]
],
//收货地址列表
addressList
:
[],
//选择收货地址id
addressId
:
''
,
//选择的收货地址
addressInfo
:
{},
}
},
methods
:
{
...
...
@@ -130,15 +137,96 @@ export default {
});
},
pay
()
{
this
.
show
=
true
this
.
createOrder
=
{
addressId
:
this
.
addressId
,
commodityList
:
[{
id
:
this
.
id
,
nums
:
1
,
}],
}
let
that
=
this
let
opts
=
{
url
:
'/app/mall/create/order'
,
method
:
'post'
};
this
.
http
.
httpTokenRequest
(
opts
,
this
.
createOrder
).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
let
orderIds
=
res
.
data
.
data
that
.
orderSubmit
=
{
appId
:
6
,
ids
:
orderIds
,
channelCode
:
'wx_lite'
,
}
let
opts
=
{
url
:
'/app/pay/order/submit/more'
,
method
:
'post'
}
this
.
http
.
httpTokenRequest
(
opts
,
that
.
orderSubmit
).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
let
paymentData
=
res
.
data
.
data
.
invokeResponse
;
uni
.
requestPayment
({
provider
:
'wxpay'
,
// 服务提提供商
timeStamp
:
paymentData
.
timeStamp
,
nonceStr
:
paymentData
.
nonceStr
,
package
:
paymentData
.
packageValue
,
signType
:
paymentData
.
signType
,
paySign
:
paymentData
.
paySign
,
success
:
function
(
res
)
{
uni
.
navigateTo
({
url
:
'/pagesC/pages/shop/payOk'
})
},
fail
:
function
(
err
)
{
console
.
log
(
'支付失败'
,
err
);
},
});
}
else
{
}
})
}
})
},
add
(){
this
.
nums
++
},
addAddress
()
{
this
.
addressShow
=
!
this
.
addressShow
}
uni
.
navigateTo
({
url
:
'/pagesD/pages/personal/addAddress'
});
},
getAddressList
(){
let
opts
=
{
url
:
'/app/user/address/list'
,
method
:
'get'
};
this
.
http
.
httpTokenRequest
(
opts
,
{}).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
this
.
addressList
=
res
.
data
.
data
if
(
this
.
addressList
!==
undefined
&&
this
.
addressList
!=
null
&&
this
.
addressList
.
length
>
0
){
let
defaultFlagExist
=
false
this
.
addressList
.
forEach
(
element
=>
{
if
(
this
.
addressId
){
if
(
element
.
id
==
this
.
addressId
){
this
.
addressInfo
=
element
this
.
addressShow
=
true
defaultFlagExist
=
true
}
}
else
if
(
element
.
defaultFlag
){
this
.
addressInfo
=
element
this
.
addressId
=
element
.
id
this
.
addressShow
=
true
defaultFlagExist
=
true
}
});
if
(
!
defaultFlagExist
){
this
.
addressInfo
=
this
.
addressList
[
0
]
this
.
addressShow
=
true
}
}
}
})
},
goAddress
(){
uni
.
navigateTo
({
url
:
'/pagesD/pages/personal/myAddress?pay=1'
})
},
},
onShow
()
{
this
.
getAddressList
()
},
};
</
script
>
...
...
@@ -225,6 +313,7 @@ export default {
padding
:
30rpx
40rpx
;
.address__left
{
width
:
600rpx
;
.right__title
{
font-size
:
32rpx
;
font-family
:
PingFang
SC
;
...
...
@@ -239,28 +328,28 @@ export default {
align-items
:
center
;
span
:nth-of-type
(
1
)
{
font-size
:
24rpx
;
font-family
:
PingFang
SC
;
font-weight
:
bold
;
color
:
#F88D28
;
padding
:
2rpx
4rpx
;
border
:
1rpx
solid
#F88D28
;
}
span
:nth-of-type
(
2
)
{
font-size
:
28rpx
;
font-family
:
PingFang
SC
;
font-weight
:
500
;
color
:
#666666
;
padding
:
0
14rpx
;
}
span
:nth-of-type
(
3
)
{
span
:nth-of-type
(
2
)
{
font-size
:
28rpx
;
font-family
:
DIN
;
font-weight
:
500
;
color
:
#666666
;
}
span
:nth-of-type
(
3
)
{
font-size
:
24rpx
;
font-family
:
PingFang
SC
;
font-weight
:
bold
;
color
:
#F88D28
;
margin-left
:
20rpx
;
padding
:
2rpx
4rpx
;
border
:
1rpx
solid
#F88D28
;
}
}
}
...
...
pagesA/pages/index/getPrice.vue
View file @
3c8dbf69
...
...
@@ -23,20 +23,20 @@
<u-gap
bgColor=
"transparent"
height=
"30"
></u-gap>
<div
class=
"car_info"
>
<div
class=
"car_info__title"
>
填写车辆信息
</div>
<u--form
labelPosition=
"left"
:model=
"model1"
:rules=
"rules"
ref=
"form1"
labelWidth=
"100"
>
<u-form-item
label=
"品牌"
prop=
"
userInfo.name
"
borderBottom
ref=
"item1"
>
<u--input
class=
"self__input"
v-model=
"model1.userInfo.name
"
placeholder=
"请输入"
border=
"none"
></u--input>
<u--form
labelPosition=
"left"
:model=
"model1"
ref=
"form1"
labelWidth=
"100"
>
<u-form-item
label=
"品牌"
prop=
"
carInfo.brand
"
borderBottom
ref=
"item1"
>
<u--input
v-model=
"model1.carInfo.brand
"
placeholder=
"请输入"
border=
"none"
></u--input>
</u-form-item>
<u-form-item
label=
"车型"
prop=
"
userInfo.name"
borderBottom
ref=
"item1
"
>
<u--input
class=
"self__input"
v-model=
"model1.userInfo.name
"
placeholder=
"请输入"
border=
"none"
></u--input>
<u-form-item
label=
"车型"
prop=
"
carInfo.carModel"
borderBottom
ref=
"item2
"
>
<u--input
v-model=
"model1.carInfo.carModel
"
placeholder=
"请输入"
border=
"none"
></u--input>
</u-form-item>
<u-form-item
label=
"行驶里程"
prop=
"
userInfo.name"
borderBottom
ref=
"item1
"
>
<div
class=
"self__input__km"
>
<u--input
class=
"self__input"
v-model=
"model1.userInfo.name"
placeholder=
"请输入"
border=
"none"
></u--input><span>
KM
</span>
</div>
<u-form-item
label=
"行驶里程"
prop=
"
carInfo.mileage"
borderBottom
ref=
"item3
"
>
<div
class=
"self__input__km"
>
<u--input
v-model=
"model1.carInfo.mileage"
placeholder=
"请输入"
border=
"none"
></u--input>
KM
</div>
</u-form-item>
<u-form-item
label=
"车牌号"
ref=
"item1"
>
</u-form-item>
<car-number
v-model=
"
carNumber
"
></car-number>
<u-form-item
label=
"车牌号"
prop=
"carInfo.carNo"
ref=
"item1"
>
</u-form-item>
<car-number
v-model=
"
model1.carInfo.carNo
"
></car-number>
</u--form>
<div
class=
"select__car"
@
click=
"goLoveCar"
>
从爱车选择
<image
src=
"@/static/index/zhankai.png"
alt=
""
>
...
...
@@ -77,19 +77,29 @@ export default {
return
{
carNumber
:
""
,
model1
:
{
userInfo
:
{
name
:
""
,
sex
:
""
,
},
carInfo
:
{},
},
rules
:
{
"
userInfo.name
"
:
{
"
carInfo.brand
"
:
{
type
:
"string"
,
required
:
true
,
message
:
"请填写
姓
品牌"
,
message
:
"请填写品牌"
,
trigger
:
[
"blur"
,
"change"
],
},
"carInfo.carModel"
:
{
type
:
"string"
,
required
:
true
,
message
:
"请填写车型"
,
trigger
:
[
"blur"
,
"change"
],
},
"carInfo.carNo"
:
{
type
:
"string"
,
required
:
true
,
message
:
"请填写车牌号"
,
trigger
:
[
"blur"
,
"change"
],
},
},
carId
:
''
,
};
},
watch
:
{
...
...
@@ -100,16 +110,49 @@ export default {
methods
:
{
goLoveCar
(){
uni
.
navigateTo
({
url
:
'/pagesB/pages/move-car/loveCar
'
url
:
'/pagesB/pages/move-car/loveCar
?price=1'
});
},
getCarCode
()
{
//跳转到获取挪车码页面
uni
.
navigateTo
({
url
:
'/pagesA/pages/index/getCarCode'
});
}
this
.
$refs
.
form1
.
validate
().
then
(
res
=>
{
if
(
!
this
.
model1
.
carInfo
.
id
){
let
opts
=
{
url
:
'/app/vehicleAdmin/add'
,
method
:
'post'
};
this
.
http
.
httpTokenRequest
(
opts
,
this
.
model1
.
carInfo
).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
}
})
}
uni
.
navigateTo
({
url
:
'/pagesA/pages/index/getCarCode'
});
}).
catch
(
errors
=>
{
uni
.
$u
.
toast
(
'校验失败'
)
})
},
getCarInfo
(){
if
(
this
.
carId
){
let
opts
=
{
url
:
'/app/vehicleAdmin/'
+
this
.
carId
,
method
:
'get'
};
this
.
http
.
httpTokenRequest
(
opts
,
{}).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
this
.
model1
.
carInfo
=
res
.
data
.
data
}
else
{
//展示删除失败
}
})
}
},
},
onReady
()
{
// 如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则
this
.
$refs
.
form1
.
setRules
(
this
.
rules
)
},
onShow
()
{
this
.
getCarInfo
()
}
};
</
script
>
...
...
@@ -225,7 +268,7 @@ export default {
color
:
#f1251b
;
text-align
:
right
;
margin-top
:
40rpx
;
margin-bottom
:
200rpx
;
image
{
width
:
10rpx
;
height
:
20rpx
;
...
...
pagesB/pages/move-car/loveCar.vue
View file @
3c8dbf69
...
...
@@ -9,7 +9,7 @@
我的爱车
</div>
<div
class=
"love-car__list"
>
<div
class=
"love__item"
v-for=
"(vo,inx) in carList"
:key=
"inx"
>
<div
class=
"love__item"
v-for=
"(vo,inx) in carList"
:key=
"inx"
@
click=
"goGetPrice(vo.id)"
>
<div
class=
"itme__img"
>
<image
src=
"@/static/move-car/love-car6.png"
/>
</div>
...
...
@@ -44,6 +44,7 @@ export default {
deleteTitle
:
'删除车辆'
,
deleteContent
:
'确定删除车辆?'
,
carId
:
''
,
price
:
''
,
};
},
methods
:
{
...
...
@@ -92,10 +93,23 @@ export default {
}
})
},
goGetPrice
(
id
){
if
(
this
.
price
==
1
){
let
pages
=
getCurrentPages
();
let
prevPage
=
pages
[
pages
.
length
-
2
]
prevPage
.
$vm
.
carId
=
id
;
uni
.
navigateBack
({
delta
:
1
})
}
}
},
onShow
(){
this
.
getCarList
()
}
},
onLoad
(
e
)
{
this
.
price
=
e
.
price
},
}
</
script
>
...
...
pagesC/pages/shop/detail.vue
View file @
3c8dbf69
...
...
@@ -8,21 +8,21 @@
</view>
</u-swiper>
<div
class=
"shop__title"
>
<div>
防晒布罩 加厚防风 大款 商务风
</div>
<div>
{{
mallInfo
.
title
}}
{{
mallInfo
.
description
}}
</div>
<div>
<span>
¥
48.00
</span>
<span>
销量
500
笔
</span>
<span>
¥
{{
mallInfo
.
currentPrice
/
100
}}
</span>
<span>
销量
{{
mallInfo
.
sales
}}
笔
</span>
</div>
</div>
<div
class=
"shop__title__2"
>
规格
<span>
儿童数学思维训练游戏(套装共5册)
</span></div>
<div
class=
"shop__title__2"
>
规格
<span>
{{
mallInfo
.
spec
}}
</span></div>
<div
class=
"shop__content"
>
<div
class=
"content__title"
>
商品详情
</div>
何秋光老师是“儿童数学思维训练”课程的创始人,既有儿童数学思维教育理论知识,又有丰富教学实践经验,本书集作者三十余年儿童数学教学、十余年儿童数学思维训练教学实践与理论研究的成果,是目前国内比较完整、系统和科学的对儿童进行数学思维训练与开发的丛书。本书于2012年首次出版,六年间加印十多次,市场认可度较好。之前五本图书分两次出版,体例有所不同,这次再版修订了之前体例不统一的问题,优化了部分题目的设计,重新编写了专家提示”的内容,对每一种类型题目的解题方法和对孩子的引导方法都做了更加详细的介绍。
{{
mallInfo
.
detailContent
}}
</div>
</div>
<div
class=
"shop__btn view__no__bind"
@
click=
"pay"
>
立即购买
</div>
<div
class=
"shop__btn view__no__bind"
@
click=
"pay
()
"
>
立即购买
</div>
<u-gap
bgColor=
"transparent"
height=
"80"
></u-gap>
</div>
</view>
...
...
@@ -37,15 +37,33 @@ export default {
require
(
'@/static/shop/item.jpg'
),
require
(
'@/static/shop/item.jpg'
),
],
//商品id
id
:
''
,
//商品详情
mallInfo
:
{},
}
},
methods
:
{
pay
(){
uni
.
navigateTo
({
url
:
'/pagesC/pages/shop/pay
'
url
:
'/pagesC/pages/shop/pay
?id='
+
this
.
id
})
}
},
getMallInfo
(){
let
opts
=
{
url
:
'/app/mall/'
+
this
.
id
,
method
:
'get'
};
this
.
http
.
httpTokenRequest
(
opts
,
{}).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
this
.
mallInfo
=
res
.
data
.
data
}
})
},
},
onLoad
(
option
)
{
this
.
id
=
option
.
id
},
onShow
()
{
this
.
getMallInfo
()
},
}
</
script
>
...
...
pagesC/pages/shop/index.vue
View file @
3c8dbf69
...
...
@@ -14,27 +14,27 @@
<div
class=
"view__content"
>
<div
class=
"view__title"
>
超低价养车好物
</div>
<div
class=
"shop__list2"
>
<div
class=
"shop__item2"
v-for=
"(vo,inx) in
4"
:key=
"inx
"
>
<div
class=
"shop__item2"
v-for=
"(vo,inx) in
mallList"
:key=
"inx"
@
click=
"goDetail(vo.id)
"
>
<div
class=
"item2__img"
>
<image
src=
'@/static/shop/qy.jpeg'
/>
<image
:src=
"getImage(vo.mainImgUrl)"
/>
</div>
<div
class=
"item2__title"
>
临时停车牌111
</div>
<div
class=
"item2__price"
>
¥
25.5
</div>
<div
class=
"item2__title"
>
{{
vo
.
title
}}
</div>
<div
class=
"item2__price"
>
¥
{{
vo
.
currentPrice
/
100
}}
</div>
</div>
</div>
</div>
<div
class=
"shop__list__one"
>
<div
class=
"view__title"
>
车主精选 养车必备
</div>
<div
class=
"list__one__items"
>
<div
class=
"one__item"
v-for=
"(vo,inx) in
4"
:key=
"inx"
@
click=
"goDetail
"
>
<div
class=
"one__item"
v-for=
"(vo,inx) in
boutiqueMallList"
:key=
"inx"
@
click=
"goDetail(vo.id)
"
>
<div
class=
"one__item__img"
>
<image
src=
"@/static/shop/item.jpg
"
/>
<image
:src=
"getImage(vo.mainImgUrl)
"
/>
</div>
<div
class=
"one__item__title"
>
临时停车牌
{{
vo
.
title
}}
</div>
<div
class=
"one__item__price"
>
¥
25.5
<span
class=
"num__two"
>
¥39.9
</span>
¥
{{
vo
.
currentPrice
/
100
}}
<span
class=
"num__two"
>
¥
{{
vo
.
originalPrice
/
100
}}
</span>
</div>
</div>
</div>
...
...
@@ -60,6 +60,10 @@ export default {
'https://cdn.uviewui.com/uview/swiper/swiper2.png'
,
'https://cdn.uviewui.com/uview/swiper/swiper1.png'
,
],
//普通商品列表
mallList
:
[],
//精品商品
boutiqueMallList
:
[],
}
},
methods
:
{
...
...
@@ -68,12 +72,35 @@ export default {
url
:
'/pagesC/pages/shop/search'
})
},
goDetail
()
{
goDetail
(
id
)
{
uni
.
navigateTo
({
url
:
'/pagesC/pages/shop/detail
'
url
:
'/pagesC/pages/shop/detail
?id='
+
id
})
}
},
getMallList
(){
let
opts
=
{
url
:
'/app/mall/list'
,
method
:
'get'
};
this
.
http
.
httpTokenRequest
(
opts
,
{
classification
:
"1"
}).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
this
.
mallList
=
res
.
data
.
data
.
rows
}
})
},
getBoutiqueMallList
(){
let
opts
=
{
url
:
'/app/mall/list'
,
method
:
'get'
};
this
.
http
.
httpTokenRequest
(
opts
,
{
classification
:
"2"
}).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
this
.
boutiqueMallList
=
res
.
data
.
data
.
rows
}
})
},
getImage
(
imageUrl
){
return
this
.
http
.
baseUrl
+
imageUrl
;
},
},
onShow
()
{
this
.
getMallList
()
this
.
getBoutiqueMallList
()
}
};
</
script
>
...
...
pagesC/pages/shop/pay.vue
View file @
3c8dbf69
...
...
@@ -5,20 +5,25 @@
<
template
>
<view
class=
"appCotent"
>
<div
class=
"pay"
>
<div
class=
"address"
>
<div
class=
"address"
v-if=
"addressShow"
>
<div
class=
"address__left"
>
<div
class=
"right__title"
>
北京市朝阳区李家董镇太阳宫社区大唐公寓 2号楼3单元303
{{
addressInfo
.
address
}}
 
{{
addressInfo
.
detailInfo
}}
</div>
<div
class=
"right__phone"
>
<span>
默认
</span>
<span>
我是收货人
</span><span>
19963353323
</span>
<span>
{{
addressInfo
.
userName
}}
</span>
<span>
{{
addressInfo
.
telNumber
}}
</span>
<span
v-if=
"addressInfo.defaultFlag"
>
默认
</span>
</div>
</div>
<div
class=
"address__right"
>
<div
class=
"address__right"
@
click=
"goAddress"
>
<image
src=
"@/static/index/right.png"
/>
</div>
<u-gap
bgColor=
"transparent"
height=
"15"
></u-gap>
</div>
<div
v-else
class=
"add__address"
@
click=
"addAddress"
>
<image
src=
"@/static/index/get-car-code5.png"
>
添加收货地址
</div>
<div
class=
"pay__item"
>
<div
class=
"item"
>
<div
class=
"item__top"
>
...
...
@@ -27,24 +32,24 @@
</div>
<div
class=
"top__right"
>
<div
class=
"right__one one__text"
>
<span>
强力清洗剂 大容量 标
</span>
<span>
¥
25.5
</span>
<span>
{{
mallInfo
.
title
}}
</span>
<span>
¥
{{
mallInfo
.
currentPrice
/
100
}}
</span>
</div>
<div
class=
"right__two"
>
<span>
强力清洗剂 大容量 标120 ml*3瓶装
</span>
<span>
×
4
</span>
<span>
{{
mallInfo
.
description
}}
</span>
<span>
×
1
</span>
</div>
</div>
</div>
<div
class=
"item__bottom"
>
<div
class=
"bottom__item"
>
<div>
商品总价:
</div>
<div>
¥
48.00
</div>
<div>
¥
{{
mallInfo
.
currentPrice
/
100
}}
</div>
</div>
<u-gap
bgColor=
"transparent"
height=
"15"
></u-gap>
<div
class=
"bottom__item"
>
<div>
总金额:
</div>
<div
class=
"bottom__price"
>
¥
48.00
</div>
<div
class=
"bottom__price"
>
¥
{{
mallInfo
.
currentPrice
/
100
}}
</div>
</div>
</div>
</div>
...
...
@@ -55,7 +60,7 @@
共
<span>
1
</span>
件
</div>
<div
class=
"price__all"
>
合计
<span>
¥
48.00
</span>
合计
<span>
¥
{{
mallInfo
.
currentPrice
/
100
}}
</span>
</div>
</div>
<div
class=
"price__next"
@
click=
"pay"
>
...
...
@@ -68,13 +73,147 @@
<
script
>
export
default
{
data
()
{
return
{
//商品id
id
:
''
,
//商品详情
mallInfo
:
{},
//收货地址列表
addressList
:
[],
//选择收货地址id
addressId
:
''
,
//选择的收货地址
addressInfo
:
{},
//商品总价
mallTotalPrice
:
'0.00'
,
//总金额
totalAmount
:
'0.00'
,
//总计
total
:
'0.00'
,
//弹出层
showAddress
:
false
,
createOrder
:
{},
orderSubmit
:
{},
addressShow
:
false
,
}
},
methods
:
{
pay
()
{
uni
.
navigateTo
({
url
:
'/pagesC/pages/shop/payOk'
})
}
this
.
createOrder
=
{
addressId
:
this
.
addressId
,
commodityList
:
[{
id
:
this
.
id
,
nums
:
1
,
}],
}
let
that
=
this
let
opts
=
{
url
:
'/app/mall/create/order'
,
method
:
'post'
};
this
.
http
.
httpTokenRequest
(
opts
,
this
.
createOrder
).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
let
orderIds
=
res
.
data
.
data
that
.
orderSubmit
=
{
appId
:
6
,
ids
:
orderIds
,
channelCode
:
'wx_lite'
,
}
let
opts
=
{
url
:
'/app/pay/order/submit/more'
,
method
:
'post'
}
this
.
http
.
httpTokenRequest
(
opts
,
that
.
orderSubmit
).
then
(
res
=>
{
console
.
log
(
res
);
if
(
res
.
data
.
code
==
200
)
{
let
paymentData
=
res
.
data
.
data
.
invokeResponse
;
uni
.
requestPayment
({
provider
:
'wxpay'
,
// 服务提提供商
timeStamp
:
paymentData
.
timeStamp
,
nonceStr
:
paymentData
.
nonceStr
,
package
:
paymentData
.
packageValue
,
signType
:
paymentData
.
signType
,
paySign
:
paymentData
.
paySign
,
success
:
function
(
res
)
{
console
.
log
(
'支付成功'
,
res
);
uni
.
navigateTo
({
url
:
'/pagesC/pages/shop/payOk'
})
},
fail
:
function
(
err
)
{
console
.
log
(
'支付失败'
,
err
);
},
});
}
else
{
}
})
}
})
},
getMallInfo
(){
let
opts
=
{
url
:
'/app/mall/'
+
this
.
id
,
method
:
'get'
};
this
.
http
.
httpTokenRequest
(
opts
,
{}).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
this
.
mallInfo
=
res
.
data
.
data
}
})
},
getAddressList
(){
let
opts
=
{
url
:
'/app/user/address/list'
,
method
:
'get'
};
this
.
http
.
httpTokenRequest
(
opts
,
{}).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
this
.
addressList
=
res
.
data
.
data
if
(
this
.
addressList
!==
undefined
&&
this
.
addressList
!=
null
&&
this
.
addressList
.
length
>
0
){
let
defaultFlagExist
=
false
this
.
addressList
.
forEach
(
element
=>
{
if
(
this
.
addressId
){
if
(
element
.
id
==
this
.
addressId
){
this
.
addressInfo
=
element
this
.
addressShow
=
true
defaultFlagExist
=
true
}
}
else
if
(
element
.
defaultFlag
){
this
.
addressInfo
=
element
this
.
addressId
=
element
.
id
this
.
addressShow
=
true
defaultFlagExist
=
true
}
});
if
(
!
defaultFlagExist
){
this
.
addressInfo
=
this
.
addressList
[
0
]
this
.
addressShow
=
true
}
}
}
})
},
openAddress
(){
this
.
showAddress
=
true
},
seleteAddress
(
address
,
index
){
this
.
addressInfo
=
address
this
.
addressIndex
=
index
},
closeAddress
(){
this
.
showAddress
=
false
},
goAddress
(){
uni
.
navigateTo
({
url
:
'/pagesD/pages/personal/myAddress?pay=1'
})
},
addAddress
()
{
uni
.
navigateTo
({
url
:
'/pagesD/pages/personal/addAddress'
});
},
},
onLoad
(
option
)
{
this
.
id
=
option
.
id
},
onShow
()
{
this
.
getMallInfo
()
this
.
getAddressList
()
},
}
</
script
>
...
...
@@ -157,6 +296,7 @@ export default {
margin-bottom
:
30rpx
;
.address__left
{
width
:
600rpx
;
.right__title
{
font-size
:
32rpx
;
font-family
:
PingFang
SC
;
...
...
@@ -170,16 +310,9 @@ export default {
display
:
flex
;
align-items
:
center
;
span
:nth-of-type
(
1
)
{
font-size
:
24rpx
;
font-family
:
PingFang
SC
;
font-weight
:
bold
;
color
:
#F88D28
;
padding
:
2rpx
4rpx
;
border
:
1rpx
solid
#F88D28
;
}
span
:nth-of-type
(
2
)
{
span
:nth-of-type
(
1
)
{
font-size
:
28rpx
;
font-family
:
PingFang
SC
;
font-weight
:
500
;
...
...
@@ -187,11 +320,20 @@ export default {
padding
:
0
14rpx
;
}
span
:nth-of-type
(
3
)
{
span
:nth-of-type
(
2
)
{
font-size
:
28rpx
;
font-family
:
DIN
;
font-weight
:
500
;
color
:
#666666
;
}
span
:nth-of-type
(
3
)
{
font-size
:
24rpx
;
font-family
:
PingFang
SC
;
font-weight
:
bold
;
color
:
#F88D28
;
margin-left
:
20rpx
;
padding
:
2rpx
4rpx
;
border
:
1rpx
solid
#F88D28
;
}
}
}
...
...
@@ -203,7 +345,27 @@ export default {
}
}
}
.add__address
{
width
:
670rpx
;
height
:
90rpx
;
background
:
#ffffff
;
box-shadow
:
0rpx
0rpx
28rpx
1rpx
rgba
(
232
,
232
,
232
,
0
.16
);
border-radius
:
10rpx
;
font-size
:
32rpx
;
font-family
:
PingFang
SC
;
font-weight
:
500
;
color
:
#F88D28
;
display
:
flex
;
margin
:
0
auto
;
align-items
:
center
;
justify-content
:
center
;
image
{
width
:
34rpx
;
height
:
36rpx
;
margin-right
:
20rpx
;
}
}
.pay__item
{
padding
:
30rpx
40rpx
;
...
...
pagesD/pages/personal/index.vue
View file @
3c8dbf69
...
...
@@ -146,7 +146,7 @@ export default {
})
},
},
created
()
{
onShow
()
{
this
.
getUserInfo
()
},
};
...
...
pagesD/pages/personal/myAddress.vue
View file @
3c8dbf69
...
...
@@ -6,13 +6,13 @@
<view
class=
"appCotent"
>
<div
class=
"myAddress"
>
<div
class=
"address__content"
>
<div
class=
"ress__item"
v-for=
"(vo,inx) in addressList"
:key=
"inx"
>
<div
class=
"item__top"
>
<div
class=
"ress__item"
v-for=
"(vo,inx) in addressList"
:key=
"inx"
@
click=
"goPay(vo.id)"
>
<div
class=
"item__top"
>
<span>
{{
vo
.
userName
}}
</span>
<span>
{{
vo
.
telNumber
}}
</span>
<span
v-if=
"vo.defaultFlag"
>
默认
</span>
</div>
<div
class=
"item__two"
>
<div
class=
"item__two"
>
<span>
{{
vo
.
address
}}
 
{{
vo
.
detailInfo
}}
</span>
<span
@
click=
"edit(vo.id)"
>
<image
src=
"@/static/my/my-address1.png"
/>
...
...
@@ -32,6 +32,8 @@ export default {
data
()
{
return
{
addressList
:
[],
pay
:
''
,
carCode
:
''
,
}
},
methods
:
{
...
...
@@ -53,11 +55,23 @@ export default {
}
})
},
goPay
(
id
){
if
(
this
.
pay
==
1
){
let
pages
=
getCurrentPages
();
let
prevPage
=
pages
[
pages
.
length
-
2
]
prevPage
.
$vm
.
addressId
=
id
;
uni
.
navigateBack
({
delta
:
1
})
}
}
},
onShow
(){
this
.
getAddressList
()
},
onLoad
(
e
)
{
this
.
pay
=
e
.
pay
},
}
</
script
>
...
...
pagesD/pages/personal/myOrder.vue
View file @
3c8dbf69
...
...
@@ -165,6 +165,8 @@ export default {
},
{
name
:
'退款/售后'
}],
//商品订单列表
orderList
:
[],
}
},
onLoad
:
function
(
e
)
{
...
...
@@ -186,7 +188,19 @@ export default {
changeVal
(
v
)
{
this
.
current
=
v
.
index
},
getOrderList
(){
let
order
=
{
orderStatus
:
this
.
current
}
let
opts
=
{
url
:
'/app/user/order/list'
,
method
:
'get'
};
this
.
http
.
httpTokenRequest
(
opts
,
{}).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
this
.
orderList
=
res
.
data
.
data
}
})
},
},
onShow
()
{
this
.
getOrderList
()
}
}
</
script
>
...
...
pagesD/pages/personal/userInfo.vue
View file @
3c8dbf69
...
...
@@ -8,7 +8,8 @@
<div
class=
"info__cover"
@
click=
"select"
>
<span
class=
"cover__name"
>
头像
</span>
<div
class=
"cover"
>
<image
:src=
"image"
/>
<image
v-if=
"image"
:src=
"image"
/>
<image
v-else
src=
"@/static/my/my2.png"
/>
<!-- 此处应该有默认头像 -->
<!--
<image
v-else
src=
"@/static/my/my2.png"
/>
-->
<span>
...
...
@@ -27,9 +28,10 @@
<u-popup
:show=
"show__six"
@
close=
"close__sex"
closeOnClickOverlay
>
<div
class=
"user__input user__sex"
@
click=
"select__sex('男')"
>
男
<div
class=
"user__name__border user__name__border__sex"
@
click=
"select__sex('女')"
></div>
女
</div>
<div
class=
"user__input user__sex"
@
click=
"select__sex('女')"
>
女
</div>
</u-popup>
<u-datetime-picker
:show=
"show__date"
v-model=
"dateValue"
ref=
'datetimePicker'
mode=
"date"
@
confirm=
'confirm'
@
close=
'close__date'
@
cancel=
'close__date'
:formatter=
"formatter"
closeOnClickOverlay
></u-datetime-picker>
<view
class=
"info__content"
>
...
...
@@ -145,10 +147,11 @@ export default {
if
(
element
.
label
===
'性别'
)
{
element
.
rules
.
label
=
val
let
opts
=
{
url
:
'/app/user/update'
,
method
:
'post'
};
let
userInfoItem
=
{
type
:
3
,
val
:
val
};
that
.
http
.
httpTokenRequest
(
opts
,
userInfoItem
).
then
(
response
=>
{
let
sex
=
(
val
==
'男'
?
"0"
:
"1"
)
let
userInfoItem
=
{
type
:
3
,
val
:
sex
};
this
.
http
.
httpTokenRequest
(
opts
,
userInfoItem
).
then
(
response
=>
{
if
(
response
.
data
.
code
==
200
)
{
that
.
userInfo
.
avatar
=
res
.
data
.
url
}
})
}
...
...
@@ -159,12 +162,12 @@ export default {
save
()
{
this
.
formData
.
forEach
(
element
=>
{
if
(
element
.
label
===
'昵称'
)
{
element
.
rules
.
label
=
this
.
user__nikename
element
.
rules
.
value
=
this
.
user__nikename
let
opts
=
{
url
:
'/app/user/update'
,
method
:
'post'
};
let
userInfoItem
=
{
type
:
2
,
val
:
this
.
user__nikename
};
that
.
http
.
httpTokenRequest
(
opts
,
userInfoItem
).
then
(
response
=>
{
if
(
response
.
data
.
code
==
200
)
{
that
.
userInfo
.
avatar
=
res
.
data
.
url
}
})
}
...
...
@@ -185,70 +188,51 @@ export default {
break
;
}
},
close
()
{
this
.
show
=
false
;
},
close__sex
()
{
this
.
show__six
=
false
;
},
close
()
{
this
.
show
=
false
;
},
close__sex
()
{
this
.
show__six
=
false
;
},
close__date
()
{
this
.
show__date
=
false
;
},
select
()
{
let
that
=
this
uni
.
chooseImage
({
count
:
1
,
//默认9
sizeType
:
[
'original'
,
'compressed'
],
//可以指定是原图还是压缩图,默认二者都有
sourceType
:
[
'album'
],
//从相册选择
success
:
function
(
res
)
{
const
tempFilePaths
=
res
.
tempFilePaths
;
uni
.
uploadFile
({
url
:
that
.
http
.
baseUrl
+
'/common/upload'
,
//url: 'http://192.168.2.21:7001/upload',//仅为示例,非真实的接口地址
method
:
'POST'
,
filePath
:
tempFilePaths
[
0
],
name
:
'file'
,
formData
:
{
file
:
tempFilePaths
[
0
]
},
success
:
(
res
)
=>
{
let
uploadData
=
JSON
.
parse
(
res
.
data
)
let
opts
=
{
url
:
'/app/user/update'
,
method
:
'post'
};
let
userInfoItem
=
{
type
:
1
,
val
:
uploadData
.
data
.
fileName
};
that
.
http
.
httpTokenRequest
(
opts
,
userInfoItem
).
then
(
response
=>
{
if
(
response
.
data
.
code
==
200
)
{
that
.
userInfo
.
avatar
=
res
.
data
.
url
}
})
}
});
}
});
select
()
{
let
that
=
this
uni
.
chooseImage
({
count
:
1
,
//默认9
sizeType
:
[
'original'
,
'compressed'
],
//可以指定是原图还是压缩图,默认二者都有
sourceType
:
[
'album'
],
//从相册选择
success
:
function
(
res
)
{
const
tempFilePaths
=
res
.
tempFilePaths
;
uni
.
uploadFile
({
url
:
that
.
http
.
baseUrl
+
'/common/upload'
,
//url: 'http://192.168.2.21:7001/upload',//仅为示例,非真实的接口地址
method
:
'POST'
,
filePath
:
tempFilePaths
[
0
],
name
:
'file'
,
formData
:
{
file
:
tempFilePaths
[
0
]
},
// 请求头一定要加,否则 iOS 图片上传会失败
header
:
{
'content-type'
:
'multipart/form-data'
},
success
:
(
res
)
=>
{
let
uploadData
=
JSON
.
parse
(
res
.
data
)
let
opts
=
{
url
:
'/app/user/update'
,
method
:
'post'
};
let
userInfoItem
=
{
type
:
1
,
val
:
uploadData
.
data
.
fileName
};
that
.
http
.
httpTokenRequest
(
opts
,
userInfoItem
).
then
(
response
=>
{
if
(
response
.
data
.
code
==
200
)
{
that
.
image
=
that
.
http
.
baseUrl
+
uploadData
.
data
.
fileName
}
})
}
});
}
});
},
getUserInfo
(){
let
opts
=
{
url
:
'/app/user/info'
,
method
:
'get'
};
this
.
http
.
httpTokenRequest
(
opts
,
{}).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
this
.
userInfo
=
res
.
data
.
data
this
.
image
=
this
.
http
.
baseUrl
+
this
.
userInfo
.
avatar
for
(
let
item
in
this
.
formData
){
if
(
this
.
formData
[
item
].
rules
.
name
==
"mobile"
){
this
.
formData
[
item
].
rules
.
value
=
this
.
userInfo
.
mobile
}
else
if
(
this
.
formData
[
item
].
rules
.
name
==
"nickName"
){
this
.
formData
[
item
].
rules
.
value
=
this
.
userInfo
.
nickName
}
else
if
(
this
.
formData
[
item
].
rules
.
name
==
"sex"
){
this
.
formData
[
item
].
rules
.
value
=
this
.
userInfo
.
sex
==
0
?
"男"
:
"女"
}
else
if
(
this
.
formData
[
item
].
rules
.
name
==
"birthday"
){
this
.
formData
[
item
].
rules
.
value
=
this
.
userInfo
.
birthday
}
}
}
})
},
},
select
()
{
let
that
=
this
uni
.
chooseImage
({
...
...
@@ -287,20 +271,20 @@ export default {
if
(
res
.
data
.
code
==
200
)
{
this
.
userInfo
=
res
.
data
.
data
this
.
image
=
this
.
http
.
baseUrl
+
this
.
userInfo
.
avatar
for
(
let
item
in
this
.
formData
)
{
if
(
this
.
formData
[
item
].
rules
.
name
==
"mobile"
)
{
this
.
formData
[
item
]
.
rules
.
value
=
this
.
userInfo
.
mobile
this
.
formData
.
forEach
(
element
=>
{
if
(
element
.
label
===
'手机号'
)
{
element
.
rules
.
value
=
this
.
userInfo
.
mobile
}
else
if
(
this
.
formData
[
item
].
rules
.
name
==
"nickName"
)
{
this
.
formData
[
item
]
.
rules
.
value
=
this
.
userInfo
.
nickName
if
(
element
.
label
===
'昵称'
)
{
element
.
rules
.
value
=
this
.
userInfo
.
nickName
}
else
if
(
this
.
formData
[
item
].
rules
.
name
==
"sex"
)
{
this
.
formData
[
item
].
rules
.
value
=
this
.
userInfo
.
sex
==
0
?
"男"
:
"女"
if
(
element
.
label
===
'性别'
)
{
element
.
rules
.
label
=
this
.
userInfo
.
sex
==
"0"
?
"男"
:
"女"
}
else
if
(
this
.
formData
[
item
].
rules
.
name
==
"birthday"
)
{
this
.
formData
[
item
]
.
rules
.
value
=
this
.
userInfo
.
birthday
if
(
element
.
label
===
'生日'
)
{
element
.
rules
.
value
=
this
.
userInfo
.
birthday
}
}
}
)
}
})
},
...
...
@@ -312,7 +296,7 @@ export default {
}
},
},
created
()
{
onShow
()
{
this
.
getUserInfo
()
},
...
...
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