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
6eeff3ed
Commit
6eeff3ed
authored
Apr 21, 2022
by
fwz
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
爱车管理、挪车记录、呼叫记录、我的挪车牌、头像
parent
2b2a1168
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
542 additions
and
186 deletions
+542
-186
codecook-carnumber.vue
common/codecook-carnumber/codecook-carnumber.vue
+6
-6
addCar.vue
pagesB/pages/move-car/addCar.vue
+47
-16
callDetail.vue
pagesB/pages/move-car/callDetail.vue
+43
-11
editCar.vue
pagesB/pages/move-car/editCar.vue
+64
-17
loveCar.vue
pagesB/pages/move-car/loveCar.vue
+55
-9
myCall.vue
pagesB/pages/move-car/myCall.vue
+22
-24
myMoveCar.vue
pagesB/pages/move-car/myMoveCar.vue
+51
-6
myRecord.vue
pagesB/pages/move-car/myRecord.vue
+24
-25
oneMoveCar.vue
pagesB/pages/move-car/oneMoveCar.vue
+67
-4
recordDetail.vue
pagesB/pages/move-car/recordDetail.vue
+34
-35
scan.vue
pagesB/pages/move-car/scan.vue
+45
-15
index.vue
pagesD/pages/personal/index.vue
+20
-5
userInfo.vue
pagesD/pages/personal/userInfo.vue
+64
-13
No files found.
common/codecook-carnumber/codecook-carnumber.vue
View file @
6eeff3ed
pagesB/pages/move-car/addCar.vue
View file @
6eeff3ed
...
...
@@ -10,18 +10,19 @@
填写车辆信息
</div>
<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
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
v-model=
"model1.
userInfo.name
"
placeholder=
"请输入"
border=
"none"
></u--input>
<u-form-item
label=
"车型"
prop=
"
carInfo.carModel
"
borderBottom
ref=
"item1"
>
<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"
>
<u--input
v-model=
"model1.userInfo.name"
placeholder=
"请输入"
border=
"none"
></u--input>
KM
<u-form-item
label=
"行驶里程"
prop=
"carInfo.mileage"
borderBottom
ref=
"item1"
>
<u--input
v-model=
"model1.carInfo.mileage"
placeholder=
"请输入"
border=
"none"
></u--input>
KM
</u-form-item>
<u-form-item
label=
"车牌号"
prop=
"carInfo.carNo"
ref=
"item1"
>
<car-number
v-model=
"model1.carInfo.carNo"
></car-number>
</u-form-item>
<u-form-item
label=
"车牌号"
ref=
"item1"
>
</u-form-item>
<car-number
v-model=
"carNumber"
></car-number>
</u--form>
</div>
</div>
...
...
@@ -31,7 +32,7 @@
</u-checkbox-group>
勾选同意
<span>
《用户服务协议》
</span>
</div>
<div
class=
"add__btn add__no__bind"
>
<div
class=
"add__btn add__no__bind"
@
click=
"addCarInfo()"
>
完成
</div>
</div>
...
...
@@ -47,16 +48,27 @@ export default {
data
()
{
return
{
model1
:
{
userInfo
:
{
name
:
""
,
sex
:
""
,
carInfo
:
{
brand
:
''
,
},
},
rules
:
{
"userInfo.name"
:
{
"carInfo.brand"
:
{
type
:
"string"
,
required
:
true
,
message
:
"请填写品牌"
,
trigger
:
[
"blur"
,
"change"
],
},
"carInfo.carModel"
:
{
type
:
"string"
,
required
:
true
,
message
:
"请填写车型"
,
trigger
:
[
"blur"
,
"change"
],
},
"carInfo.carNo"
:
{
type
:
"string"
,
required
:
true
,
message
:
"请填写姓品牌
"
,
message
:
"请填写车牌号
"
,
trigger
:
[
"blur"
,
"change"
],
},
},
...
...
@@ -87,7 +99,26 @@ export default {
uni
.
navigateBack
({
delta
:
1
})
},
addCarInfo
(){
//表单验证
this
.
$refs
.
form1
.
validate
().
then
(
res
=>
{
let
opts
=
{
url
:
'/app/vehicleAdmin/add'
,
method
:
'post'
};
this
.
http
.
httpTokenRequest
(
opts
,
this
.
model1
.
carInfo
).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
//添加成功
uni
.
$u
.
toast
(
'添加成功'
)
this
.
goBack
()
}
})
}).
catch
(
errors
=>
{
uni
.
$u
.
toast
(
'校验失败'
)
})
},
},
onReady
()
{
// 如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则
this
.
$refs
.
form1
.
setRules
(
this
.
rules
)
},
}
</
script
>
...
...
pagesB/pages/move-car/callDetail.vue
View file @
6eeff3ed
...
...
@@ -28,38 +28,40 @@ export default {
return
{
items
:
[{
title
:
"车主车牌号:"
,
value
:
"
京A123456
"
value
:
""
},
{
title
:
"品牌:"
,
value
:
"
宝马
"
value
:
""
},
{
title
:
"车型:"
,
value
:
"
SUV
"
value
:
""
},
{
title
:
"车主手机号:"
,
value
:
"
2020-02-22 12:00:00
"
value
:
""
},
{
title
:
"时间:"
,
value
:
"
2020-02-22 12:00:00
"
value
:
""
},
{
title
:
"地点:"
,
value
:
"
北京市朝阳区梨园小区停车场
"
value
:
""
},
{
title
:
"申请手机号:"
,
value
:
"
159****9633
"
value
:
""
},
{
title
:
"通知方式:"
,
value
:
"
微信通知
"
value
:
""
},
{
title
:
"通知类型:"
,
value
:
"
请求挪车
"
value
:
""
}
]
],
id
:
''
,
moveLog
:
''
,
};
},
methods
:
{
...
...
@@ -67,7 +69,37 @@ export default {
uni
.
navigateBack
({
delta
:
1
})
},
getApplyMoveLog
(){
let
opts
=
{
url
:
'/app/moveLog/apply/'
+
this
.
id
,
method
:
'get'
};
let
that
=
this
this
.
http
.
httpTokenRequest
(
opts
,
{}).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
this
.
moveLog
=
res
.
data
.
data
let
moveLogInfo
=
[]
moveLogInfo
.
push
({
title
:
"车主车牌号:"
,
value
:
this
.
moveLog
.
carNo
})
moveLogInfo
.
push
({
title
:
"品牌:"
,
value
:
this
.
moveLog
.
brand
})
moveLogInfo
.
push
({
title
:
"车型:"
,
value
:
this
.
moveLog
.
carModel
})
moveLogInfo
.
push
({
title
:
"车主手机号:"
,
value
:
this
.
moveLog
.
userMobile
})
moveLogInfo
.
push
({
title
:
"时间:"
,
value
:
this
.
moveLog
.
applyDate
})
moveLogInfo
.
push
({
title
:
"地点:"
,
value
:
this
.
moveLog
.
detailInfo
})
moveLogInfo
.
push
({
title
:
"申请手机号:"
,
value
:
this
.
moveLog
.
applyUserMobile
})
if
(
this
.
moveLog
.
confirmType
==
'1'
){
moveLogInfo
.
push
({
title
:
"通知方式:"
,
value
:
"拨打电话"
})
}
else
{
moveLogInfo
.
push
({
title
:
"通知方式:"
,
value
:
"微信通知"
})
}
moveLogInfo
.
push
({
title
:
"通知类型:"
,
value
:
"请求他人挪车"
})
this
.
items
=
moveLogInfo
}
})
},
},
onShow
()
{
this
.
getApplyMoveLog
()
},
onLoad
(
option
)
{
this
.
id
=
option
.
id
},
}
</
script
>
...
...
pagesB/pages/move-car/editCar.vue
View file @
6eeff3ed
...
...
@@ -10,23 +10,24 @@
填写车辆信息
</div>
<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
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
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"
>
<u--input
v-model=
"model1.userInfo.name"
placeholder=
"请输入"
border=
"none"
></u--input>
KM
<u-form-item
label=
"行驶里程"
prop=
"carInfo.mileage"
borderBottom
ref=
"item3"
>
<u--input
v-model=
"model1.carInfo.mileage"
placeholder=
"请输入"
border=
"none"
></u--input>
KM
</u-form-item>
<u-form-item
label=
"车牌号"
prop=
"carInfo.carNo"
ref=
"item1"
>
<car-number
v-model=
"model1.carInfo.carNo"
></car-number>
</u-form-item>
<u-form-item
label=
"车牌号"
ref=
"item1"
>
</u-form-item>
<car-number
v-model=
"carNumber"
></car-number>
</u--form>
</div>
</div>
<div
class=
"add__btn add__no__bind"
>
<div
class=
"add__btn add__no__bind"
@
click=
"editCarInfo"
>
保存
</div>
<div
class=
"add__btn add__back"
@
click=
"goBack"
>
...
...
@@ -44,17 +45,28 @@ export default {
},
data
()
{
return
{
//车辆id
id
:
''
,
model1
:
{
userInfo
:
{
name
:
""
,
sex
:
""
,
},
carInfo
:
{},
},
rules
:
{
"userInfo.name"
:
{
"carInfo.brand"
:
{
type
:
"string"
,
required
:
true
,
message
:
"请填写品牌"
,
trigger
:
[
"blur"
,
"change"
],
},
"carInfo.carModel"
:
{
type
:
"string"
,
required
:
true
,
message
:
"请填写车型"
,
trigger
:
[
"blur"
,
"change"
],
},
"carInfo.carNo"
:
{
type
:
"string"
,
required
:
true
,
message
:
"请填写姓品牌
"
,
message
:
"请填写车牌号
"
,
trigger
:
[
"blur"
,
"change"
],
},
},
...
...
@@ -85,8 +97,43 @@ export default {
uni
.
navigateBack
({
delta
:
1
})
},
getCarInfo
(){
let
opts
=
{
url
:
'/app/vehicleAdmin/'
+
this
.
id
,
method
:
'get'
};
this
.
http
.
httpTokenRequest
(
opts
,
{}).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
this
.
model1
.
carInfo
=
res
.
data
.
data
console
.
log
(
this
.
model1
.
carInfo
)
}
else
{
//展示删除失败
}
})
},
editCarInfo
(){
this
.
$refs
.
form1
.
validate
().
then
(
res
=>
{
let
opts
=
{
url
:
'/app/vehicleAdmin/edit'
,
method
:
'put'
};
this
.
http
.
httpTokenRequest
(
opts
,
this
.
model1
.
carInfo
).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
//添加成功
uni
.
$u
.
toast
(
'修改成功'
)
this
.
goBack
()
}
})
}).
catch
(
errors
=>
{
uni
.
$u
.
toast
(
'校验失败'
)
})
},
},
onLoad
(
option
)
{
this
.
id
=
option
.
id
},
onReady
()
{
// 如果需要兼容微信小程序,并且校验规则中含有方法等,只能通过setRules方法设置规则
this
.
$refs
.
form1
.
setRules
(
this
.
rules
)
},
onShow
(){
this
.
getCarInfo
()
}
}
</
script
>
...
...
pagesB/pages/move-car/loveCar.vue
View file @
6eeff3ed
...
...
@@ -9,21 +9,25 @@
我的爱车
</div>
<div
class=
"love-car__list"
>
<div
class=
"love__item"
v-for=
"(vo,inx) in
3
"
:key=
"inx"
>
<div
class=
"love__item"
v-for=
"(vo,inx) in
carList
"
:key=
"inx"
>
<div
class=
"itme__img"
>
<image
src=
"@/static/move-car/love-car6.png"
/>
</div>
<div
class=
"item__title"
>
大众-捷达-1.4 手动 梦 想版时尚型
{{
vo
.
brand
}}
-
{{
vo
.
carModel
}}
</div>
<div
class=
"item__edit"
@
click=
"editCar"
>
<div
class=
"item__edit"
@
click=
"editCar
(vo.id)
"
>
<image
src=
"@/static/move-car/love-car2.png"
/>
</div>
<div
class=
"item__del"
>
<div
class=
"item__del"
@
click=
"deleteModal(vo.id)"
>
<image
src=
"@/static/move-car/love-car3.png"
/>
</div>
</div>
</div>
<div>
<u-modal
:show=
"deleteShow"
:title=
"deleteTitle"
:content=
'deleteContent'
@
confirm=
"confirmModal"
@
cancel=
"cancelModal"
showCancelButton=
"true"
></u-modal>
</div>
<div
class=
"love__btn"
@
click=
"addCar"
>
<image
src=
"@/static/move-car/love-car5.png"
>
添加车辆
</div>
...
...
@@ -35,7 +39,11 @@
export
default
{
data
()
{
return
{
carList
:
[],
deleteShow
:
false
,
deleteTitle
:
'删除车辆'
,
deleteContent
:
'确定删除车辆?'
,
carId
:
''
,
};
},
methods
:
{
...
...
@@ -44,13 +52,51 @@ export default {
url
:
'/pagesB/pages/move-car/addCar'
})
},
editCar
()
{
editCar
(
id
)
{
uni
.
navigateTo
({
url
:
'/pagesB/pages/move-car/editCar
'
url
:
'/pagesB/pages/move-car/editCar
?id='
+
id
})
},
//打开确认删除框
deleteModal
(
id
){
this
.
deleteShow
=
true
this
.
carId
=
id
},
//确认删除车辆
confirmModal
(){
let
opts
=
{
url
:
'/app/vehicleAdmin/remove/'
+
this
.
carId
,
method
:
'delete'
};
this
.
http
.
httpTokenRequest
(
opts
,
{}).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
uni
.
showToast
({
title
:
'删除成功'
,
icon
:
"success"
,
});
this
.
getCarList
()
}
else
{
uni
.
showToast
({
title
:
res
.
data
.
msg
,
icon
:
"error"
,
});
}
})
this
.
deleteShow
=
false
},
cancelModal
(){
this
.
deleteShow
=
false
},
getCarList
(){
let
opts
=
{
url
:
'/app/vehicleAdmin/list'
,
method
:
'get'
};
this
.
http
.
httpTokenRequest
(
opts
,
{}).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
this
.
carList
=
res
.
data
.
rows
}
})
},
},
onShow
(){
this
.
getCarList
()
}
}
</
script
>
...
...
pagesB/pages/move-car/myCall.vue
View file @
6eeff3ed
...
...
@@ -8,24 +8,24 @@
<div
class=
"record__item"
v-for=
"(vo,inx) in items"
:key=
"inx"
>
<div
class=
"item__top"
>
<div
class=
"top__time"
>
时间:
{{
vo
.
tim
e
}}
时间:
{{
vo
.
applyDat
e
}}
</div>
<div
class=
"top__state"
:class=
"vo.state==='微信'?'':'phone__state'"
>
{{
vo
.
state
}}
{{
vo
.
confirmType
==
"1"
?
'电话'
:
'微信'
}}
</div>
</div>
<div
class=
"item__content"
>
<div>
车牌号:
{{
vo
.
carN
umber
}}
车牌号:
{{
vo
.
carN
o
}}
</div>
<div>
通知类型:
{{
vo
.
type
}}
通知类型:
{{
type
}}
</div>
<div>
车主手机号:
{{
vo
.
nam
e
}}
车主手机号:
{{
vo
.
userMobil
e
}}
</div>
</div>
<div
class=
"item__btn"
@
click=
"goDetail"
>
<div
class=
"item__btn"
@
click=
"goDetail
(vo.id)
"
>
<div>
查看详情
</div>
...
...
@@ -39,29 +39,27 @@
export
default
{
data
()
{
return
{
items
:
[{
time
:
'2020-02-22 12:00:45'
,
state
:
'微信'
,
carNum
:
'京A123456'
,
type
:
'请求挪车'
,
apply
:
'123****6633'
,
},
{
date
:
'2020-02-22 12:00:45'
,
state
:
'电话'
,
carNum
:
'京A123456'
,
type
:
'请求挪车'
,
apply
:
'123****6633'
,
}
]
items
:
[],
type
:
'请求他人挪车'
};
},
methods
:
{
goDetail
(){
goDetail
(
id
){
uni
.
navigateTo
({
url
:
'/pagesB/pages/move-car/callDetail
'
url
:
'/pagesB/pages/move-car/callDetail
?id='
+
id
})
},
getApplyMoveLogList
(){
let
opts
=
{
url
:
'/app/moveLog/apply/list'
,
method
:
'get'
};
this
.
http
.
httpTokenRequest
(
opts
,
{}).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
this
.
items
=
res
.
data
.
rows
}
})
},
},
created
()
{
this
.
getApplyMoveLogList
()
},
}
</
script
>
...
...
pagesB/pages/move-car/myMoveCar.vue
View file @
6eeff3ed
...
...
@@ -16,20 +16,24 @@
</div>
<div
class=
"top__car__phone"
>
<div>
京A231Q42
{{
vo
.
carNo
}}
</div>
<div>
152****2233
{{
vo
.
userMobile
}}
</div>
</div>
<div
class=
"top__car__name"
>
北京现代
{{
vo
.
brand
}}
</div>
</div>
<div
class=
"item__bottom"
>
<span>
解除绑定
</span>
<span
@
click=
"openUnbindModal(vo.id)"
>
解除绑定
</span>
<span
@
click=
"goView"
>
查看详情
</span>
</div>
<div>
<u-modal
:show=
"unbindShow"
:title=
"unbindTitle"
:content=
'unbindContent'
@
confirm=
"unbind"
@
cancel=
"cancelModal"
showCancelButton=
"true"
></u-modal>
</div>
</div>
</div>
</div>
...
...
@@ -41,7 +45,16 @@ export default {
data
()
{
return
{
keyword
:
''
,
items
:
[{},{},{},]
//挪车码列表
items
:
[],
//解除绑定对话框
unbindShow
:
false
,
//解除绑定对话框标题
unbindTitle
:
'解除绑定'
,
//解除绑定对话框内容
unbindContent
:
'确定解除绑定吗?'
,
//解除绑定的挪车牌
id
:
''
,
};
},
methods
:
{
...
...
@@ -49,8 +62,40 @@ export default {
uni
.
navigateTo
({
url
:
'/pagesB/pages/move-car/moveCarDetail'
})
},
getMyMoveCodeList
(){
let
opts
=
{
url
:
'/app/moveCode/list'
,
method
:
'get'
};
this
.
http
.
httpTokenRequest
(
opts
,
{}).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
this
.
items
=
res
.
data
.
rows
}
})
},
openUnbindModal
(
id
){
this
.
id
=
id
this
.
unbindShow
=
true
},
unbind
(){
let
opts
=
{
url
:
'/app/moveCode/edit/'
+
this
.
id
,
method
:
'put'
};
this
.
http
.
httpTokenRequest
(
opts
,
{}).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
uni
.
showToast
({
title
:
'解绑成功'
,
icon
:
"success"
,
});
this
.
getMyMoveCodeList
()
}
})
this
.
unbindShow
=
false
},
cancelModal
(){
this
.
unbindShow
=
false
},
},
created
()
{
this
.
getMyMoveCodeList
()
}
}
</
script
>
...
...
pagesB/pages/move-car/myRecord.vue
View file @
6eeff3ed
...
...
@@ -8,24 +8,24 @@
<div
class=
"record__item"
v-for=
"(vo,inx) in items"
:key=
"inx"
>
<div
class=
"item__top"
>
<div
class=
"top__time"
>
时间:
{{
vo
.
tim
e
}}
时间:
{{
vo
.
applyDat
e
}}
</div>
<div
class=
"top__state"
:class=
"vo.state==='微信'?'':'phone__state'"
>
{{
vo
.
state
}}
{{
vo
.
confirmType
==
"1"
?
'电话'
:
'微信'
}}
</div>
</div>
<div
class=
"item__content"
>
<div>
车牌号:
{{
vo
.
carN
umber
}}
车牌号:
{{
vo
.
carN
o
}}
</div>
<div>
通知类型:
{{
vo
.
type
}}
通知类型:
{{
type
}}
</div>
<div>
挪车申请人:
{{
vo
.
nam
e
}}
挪车申请人:
{{
vo
.
applyUserMobil
e
}}
</div>
</div>
<div
class=
"item__btn"
@
click=
"goDetail"
>
<div
class=
"item__btn"
@
click=
"goDetail
(vo.id)
"
>
<div>
查看详情
</div>
...
...
@@ -39,29 +39,28 @@
export
default
{
data
()
{
return
{
items
:
[{
time
:
'2020-02-22 12:00:45'
,
state
:
'微信'
,
carNum
:
'京A123456'
,
type
:
'请求他人挪车'
,
apply
:
'123****6633'
,
},
{
date
:
'2020-02-22 12:00:45'
,
state
:
'电话'
,
carNum
:
'京A123456'
,
type
:
'请求他人挪车'
,
apply
:
'123****6633'
,
}
]
items
:
[],
type
:
'他人请求挪车'
,
};
},
methods
:
{
goDetail
(){
goDetail
(
id
){
console
.
log
(
id
)
uni
.
navigateTo
({
url
:
'/pagesB/pages/move-car/recordDetail'
url
:
'/pagesB/pages/move-car/recordDetail?id='
+
id
})
},
getMyMoveLogList
(){
let
opts
=
{
url
:
'/app/moveLog/my/list'
,
method
:
'get'
};
this
.
http
.
httpTokenRequest
(
opts
,
{}).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
this
.
items
=
res
.
data
.
rows
}
})
},
},
created
()
{
this
.
getMyMoveLogList
()
},
}
</
script
>
...
...
pagesB/pages/move-car/oneMoveCar.vue
View file @
6eeff3ed
...
...
@@ -55,7 +55,7 @@
</div>
</div>
</div>
<u-action-sheet
:actions=
"list"
@
close=
'close'
closeOnClickOverlay
round=
'6'
:show=
"show"
></u-action-sheet>
<u-action-sheet
:actions=
"list"
@
close=
'close'
@
select=
"selectClick"
closeOnClickOverlay
round=
'6'
:show=
"show"
></u-action-sheet>
</div>
</view>
</
template
>
...
...
@@ -83,6 +83,28 @@ export default {
},
],
checked
:
[],
moveCode
:
''
,
appBusCar
:
{},
appBo
:
{
//车牌号
carNo
:
''
,
//申请人手机号
applyUserMobile
:
''
,
//省
provinceName
:
''
,
//市
cityName
:
''
,
//区
countyName
:
''
,
//详细地址
detailInfo
:
''
,
//是否微信通知
isWechat
:
false
,
//是否成功
isSuccess
:
false
,
//日志唯一编码
logCode
:
''
,
},
}
},
methods
:
{
...
...
@@ -93,11 +115,52 @@ export default {
this
.
show
=
false
;
},
selectClick
(
index
){
console
.
log
(
index
)
if
(
index
.
name
==
"2367虚拟号码345"
){
}
else
if
(
index
.
name
==
"呼叫"
){
//请求拨打电话路径
let
opts
=
{
url
:
'/app/contact/'
,
method
:
'get'
};
this
.
http
.
httpTokenRequest
(
opts
,
{}).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
//请求成功逻辑,修改
}
})
//记录修改
let
optsOne
=
{
url
:
'/app/moveLog/updateLog'
,
method
:
'post'
};
this
.
http
.
httpTokenRequest
(
optsOne
,
this
.
appBo
).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
//请求成功逻辑,后端应记录此次电话拨打
}
})
}
else
{
}
},
goMyCar
()
{
uni
.
navigateTo
({
url
:
'/pagesB/pages/move-car/myMoveCar'
url
:
'/pages/move-car/myMoveCar'
})
},
getCarNumber
(){
let
opts
=
{
url
:
'/app/moveCode/owner/'
+
this
.
moveCode
,
method
:
'get'
};
this
.
http
.
httpTokenRequest
(
opts
,
{}).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
if
(
JSON
.
stringify
(
res
.
data
.
data
)
!=
"{}"
){
this
.
appBusCar
=
res
.
data
.
data
}
else
{
uni
.
navigateTo
({
url
:
'/pagesB/pages/move-car/scan?moveCode='
+
this
.
moveCode
})
}
}
else
{
//查询挪车码失败
uni
.
showToast
({
title
:
res
.
data
.
msg
,
icon
:
"error"
,
});
}
})
},
},
...
...
@@ -111,7 +174,7 @@ export default {
// //场景值
// scene: e.scene
// }
this
.
moveCode
=
scene
console
.
log
(
'scene: '
+
scene
);
}
}
...
...
pagesB/pages/move-car/recordDetail.vue
View file @
6eeff3ed
...
...
@@ -26,40 +26,9 @@
export
default
{
data
()
{
return
{
items
:
[{
title
:
"车主车牌号:"
,
value
:
"京A123456"
},
{
title
:
"品牌:"
,
value
:
"宝马"
},
{
title
:
"车型:"
,
value
:
"SUV"
},
{
title
:
"车主手机号:"
,
value
:
"2020-02-22 12:00:00"
},
{
title
:
"时间:"
,
value
:
"2020-02-22 12:00:00"
},
{
title
:
"地点:"
,
value
:
"北京市朝阳区梨园小区停车场"
},
{
title
:
"挪车申请人:"
,
value
:
"159****9633"
},
{
title
:
"通知方式:"
,
value
:
"拨打电话"
},
{
title
:
"通知类型:"
,
value
:
"他人挪车请求"
}
]
items
:
[],
id
:
''
,
moveLog
:
{},
};
},
methods
:
{
...
...
@@ -67,7 +36,37 @@ export default {
uni
.
navigateBack
({
delta
:
1
})
},
getMyMoveLog
(){
let
opts
=
{
url
:
'/app/moveLog/my/'
+
this
.
id
,
method
:
'get'
};
let
that
=
this
this
.
http
.
httpTokenRequest
(
opts
,
{}).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
this
.
moveLog
=
res
.
data
.
data
let
moveLogInfo
=
[]
moveLogInfo
.
push
({
title
:
"车主车牌号:"
,
value
:
this
.
moveLog
.
carNo
})
moveLogInfo
.
push
({
title
:
"品牌:"
,
value
:
this
.
moveLog
.
brand
})
moveLogInfo
.
push
({
title
:
"车型:"
,
value
:
this
.
moveLog
.
carModel
})
moveLogInfo
.
push
({
title
:
"车主手机号:"
,
value
:
this
.
moveLog
.
userMobile
})
moveLogInfo
.
push
({
title
:
"时间:"
,
value
:
this
.
moveLog
.
applyDate
})
moveLogInfo
.
push
({
title
:
"地点:"
,
value
:
this
.
moveLog
.
detailInfo
})
moveLogInfo
.
push
({
title
:
"申请手机号:"
,
value
:
this
.
moveLog
.
applyUserMobile
})
if
(
this
.
moveLog
.
confirmType
==
'1'
){
moveLogInfo
.
push
({
title
:
"通知方式:"
,
value
:
"拨打电话"
})
}
else
{
moveLogInfo
.
push
({
title
:
"通知方式:"
,
value
:
"微信通知"
})
}
moveLogInfo
.
push
({
title
:
"通知类型:"
,
value
:
"他人请求挪车"
})
this
.
items
=
moveLogInfo
}
})
},
},
onLoad
(
option
)
{
this
.
id
=
option
.
id
},
onShow
(){
this
.
getMyMoveLog
()
},
}
</
script
>
...
...
pagesB/pages/move-car/scan.vue
View file @
6eeff3ed
...
...
@@ -23,7 +23,7 @@
</div>
<active-form
:formDate
.
sync=
"formData"
></active-form>
</div>
<div
class=
"view__btn view__no__bind"
>
<div
class=
"view__btn view__no__bind"
@
click=
"confirmBinding"
>
确认绑定
</div>
<div
class=
"use__text"
>
使用说明
</div>
...
...
@@ -41,16 +41,17 @@ export default {
sex
:
""
,
},
},
formData
:
[{
formData
:
[
{
id
:
"kjjns"
,
//id必须唯一 可以是数字
placeholder
:
"请输入"
,
label
:
"车牌号"
,
// 提示输入名
type
:
"text"
,
//类型
rules
:
{
name
:
"
realName
"
,
//字段名 即提交给后端的字段
name
:
"
carNo
"
,
//字段名 即提交给后端的字段
value
:
""
,
verify
:
false
,
//是否开启校验
errMess
:
"
姓名
未填写"
,
//校验不通过的错误提示
errMess
:
"
车牌号
未填写"
,
//校验不通过的错误提示
},
},
{
...
...
@@ -59,10 +60,10 @@ export default {
label
:
"品牌"
,
// 提示输入名
type
:
"text"
,
//类型
rules
:
{
name
:
"
realName1
"
,
//字段名 即提交给后端的字段
name
:
"
brand
"
,
//字段名 即提交给后端的字段
value
:
""
,
verify
:
false
,
//是否开启校验
errMess
:
"
姓名
未填写"
,
//校验不通过的错误提示
errMess
:
"
品牌
未填写"
,
//校验不通过的错误提示
},
},
{
...
...
@@ -71,22 +72,22 @@ export default {
label
:
"车型"
,
// 提示输入名
type
:
"text"
,
//类型
rules
:
{
name
:
"
realName2
"
,
//字段名 即提交给后端的字段
name
:
"
carModel
"
,
//字段名 即提交给后端的字段
value
:
""
,
verify
:
false
,
//是否开启校验
errMess
:
"
姓名
未填写"
,
//校验不通过的错误提示
errMess
:
"
车型
未填写"
,
//校验不通过的错误提示
},
},
{
id
:
"kjjns"
,
//id必须唯一 可以是数字
placeholder
:
"请输入"
,
label
:
"
车牌
号"
,
// 提示输入名
label
:
"
手机
号"
,
// 提示输入名
type
:
"text"
,
//类型
rules
:
{
name
:
"
realName4
"
,
//字段名 即提交给后端的字段
name
:
"
userMobile
"
,
//字段名 即提交给后端的字段
value
:
""
,
verify
:
false
,
//是否开启校验
errMess
:
"
姓名
未填写"
,
//校验不通过的错误提示
errMess
:
"
手机号
未填写"
,
//校验不通过的错误提示
},
},
{
...
...
@@ -96,17 +97,46 @@ export default {
type
:
"text"
,
// oneKeyPhone:true,
rules
:
{
name
:
"
yzm
"
,
name
:
"
verificationCode
"
,
value
:
""
,
//字段值
verify
:
false
,
errMess
:
""
,
errMess
:
"
验证码未填写
"
,
},
},
],
moveCode
:
''
,
moveCodeInfo
:
{},
}
},
methods
:
{
confirmBinding
(){
for
(
let
i
in
this
.
formData
){
let
name
=
this
.
formData
[
i
].
rules
.
name
this
.
moveCodeInfo
[
name
]
=
this
.
formData
[
i
].
rules
.
value
}
console
.
log
(
this
.
moveCodeInfo
)
let
opts
=
{
url
:
'/app/moveCode/binding/'
,
method
:
'put'
};
this
.
http
.
httpTokenRequest
(
opts
,
this
.
moveCodeInfo
).
then
(
res
=>
{
if
(
res
.
data
.
code
==
200
)
{
//展示绑定成功
uni
.
showToast
({
title
:
"绑定成功"
,
icon
:
"success"
,
});
this
.
goBack
()
}
else
{
//绑定失败,展示失败信息
uni
.
showToast
({
title
:
res
.
data
.
msg
,
icon
:
"error"
,
});
}
})
},
},
onLoad
(
option
)
{
this
.
moveCode
=
option
.
moveCode
},
methods
:
{},
}
</
script
>
...
...
pagesD/pages/personal/index.vue
View file @
6eeff3ed
...
...
@@ -11,10 +11,10 @@
<div
class=
"ps__title"
>
个人中心
</div>
<div
class=
"ps__info"
>
<div
class=
"info__cover"
>
<image
src=
"@/static/my/my2.png
"
/>
<image
:src=
"avatar
"
/>
</div>
<div>
<div
class=
"info__name"
>
这里是昵称
</div>
<div
class=
"info__name"
>
{{
userInfo
.
nickName
}}
</div>
<div
class=
"view__info"
@
click=
"editInfo"
>
查看个人主页或编辑资料
<span>
...
...
@@ -104,7 +104,11 @@ export default {
title
:
'退款/售后'
,
icon
:
require
(
'@/static/my/my9.png'
)
}
]
],
//用户信息
userInfo
:
{},
//头像
avatar
:
''
,
}
},
methods
:
{
...
...
@@ -122,9 +126,20 @@ export default {
uni
.
navigateTo
({
url
:
'/pagesD/pages/personal/userInfo'
});
}
},
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
.
avatar
=
this
.
http
.
baseUrl
+
this
.
userInfo
.
avatar
}
})
},
},
created
()
{
this
.
getUserInfo
()
},
};
</
script
>
...
...
pagesD/pages/personal/userInfo.vue
View file @
6eeff3ed
...
...
@@ -8,7 +8,7 @@
<div
class=
"info__cover"
@
click=
"select"
>
<span
class=
"cover__name"
>
头像
</span>
<div
class=
"cover"
>
<image
src=
"@/static/my/my2.png
"
/>
<image
:src=
"image
"
/>
<span>
<image
src=
"@/static/my/my6.png"
/></span>
</div>
...
...
@@ -30,10 +30,10 @@ export default {
label
:
"手机号"
,
// 提示输入名
type
:
"text"
,
//类型
rules
:
{
name
:
"
realNam
e"
,
//字段名 即提交给后端的字段
name
:
"
mobil
e"
,
//字段名 即提交给后端的字段
value
:
"12563996933"
,
verify
:
false
,
//是否开启校验
errMess
:
"
姓名
未填写"
,
//校验不通过的错误提示
errMess
:
"
手机号
未填写"
,
//校验不通过的错误提示
},
},
{
...
...
@@ -42,10 +42,10 @@ export default {
label
:
"昵称"
,
// 提示输入名
type
:
"text"
,
//类型
rules
:
{
name
:
"
realName2
"
,
//字段名 即提交给后端的字段
name
:
"
nickName
"
,
//字段名 即提交给后端的字段
value
:
""
,
verify
:
false
,
//是否开启校验
errMess
:
"
姓名
未填写"
,
//校验不通过的错误提示
errMess
:
"
昵称
未填写"
,
//校验不通过的错误提示
},
},
{
...
...
@@ -54,10 +54,10 @@ export default {
label
:
"性别"
,
// 提示输入名
type
:
"text"
,
//类型
rules
:
{
name
:
"
realName3
"
,
//字段名 即提交给后端的字段
name
:
"
sex
"
,
//字段名 即提交给后端的字段
value
:
""
,
verify
:
false
,
//是否开启校验
errMess
:
"
姓名
未填写"
,
//校验不通过的错误提示
errMess
:
"
性别
未填写"
,
//校验不通过的错误提示
},
},
{
...
...
@@ -66,28 +66,79 @@ export default {
label
:
"生日"
,
// 提示输入名
type
:
"text"
,
//类型
rules
:
{
name
:
"
realName4
"
,
//字段名 即提交给后端的字段
name
:
"
birthday
"
,
//字段名 即提交给后端的字段
value
:
""
,
verify
:
false
,
//是否开启校验
errMess
:
"
姓名
未填写"
,
//校验不通过的错误提示
errMess
:
"
生日
未填写"
,
//校验不通过的错误提示
},
},
],
userInfo
:
{
nickName
:
'默认昵称'
,
},
image
:
''
,
}
},
methods
:
{
select
()
{
let
that
=
this
uni
.
chooseImage
({
count
:
6
,
//默认9
count
:
1
,
//默认9
sizeType
:
[
'original'
,
'compressed'
],
//可以指定是原图还是压缩图,默认二者都有
sourceType
:
[
'album'
],
//从相册选择
success
:
function
(
res
)
{
console
.
log
(
JSON
.
stringify
(
res
.
tempFilePaths
));
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
};
console
.
log
(
userInfoItem
)
that
.
http
.
httpTokenRequest
(
opts
,
userInfoItem
).
then
(
response
=>
{
if
(
response
.
data
.
code
==
200
)
{
that
.
userInfo
.
avatar
=
res
.
data
.
url
}
})
}
});
}
});
},
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
}
}
}
})
},
},
created
()
{
this
.
getUserInfo
()
},
}
</
script
>
...
...
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