Commit 6eeff3ed authored by fwz's avatar fwz

爱车管理、挪车记录、呼叫记录、我的挪车牌、头像

parent 2b2a1168
...@@ -46,12 +46,12 @@ ...@@ -46,12 +46,12 @@
default: 8 default: 8
} }
}, },
data() { data() {
return { return {
focus: false, focus: false,
current: 0, current: 0,
fill: new Array(this.length).fill(''), fill: new Array(this.length).fill(''),
} }
}, },
computed: { computed: {
kType() { kType() {
......
...@@ -10,18 +10,19 @@ ...@@ -10,18 +10,19 @@
填写车辆信息 填写车辆信息
</div> </div>
<div> <div>
<u--form labelPosition="left" :model="model1" :rules="rules" ref="form1" labelWidth="100"> <u--form labelPosition="left" :model="model1" ref="form1" labelWidth="100">
<u-form-item label="品牌" prop="userInfo.name" borderBottom ref="item1"> <u-form-item label="品牌" prop="carInfo.brand" borderBottom ref="item1">
<u--input v-model="model1.userInfo.name" placeholder="请输入" border="none"></u--input> <u--input v-model="model1.carInfo.brand" placeholder="请输入" border="none"></u--input>
</u-form-item> </u-form-item>
<u-form-item label="车型" prop="userInfo.name" borderBottom ref="item1"> <u-form-item label="车型" prop="carInfo.carModel" borderBottom ref="item1">
<u--input v-model="model1.userInfo.name" placeholder="请输入" border="none"></u--input> <u--input v-model="model1.carInfo.carModel" placeholder="请输入" border="none"></u--input>
</u-form-item> </u-form-item>
<u-form-item label="行驶里程" prop="userInfo.name" borderBottom ref="item1"> <u-form-item label="行驶里程" prop="carInfo.mileage" borderBottom ref="item1">
<u--input v-model="model1.userInfo.name" placeholder="请输入" border="none"></u--input>KM <u--input v-model="model1.carInfo.mileage" placeholder="请输入" border="none"></u--input>KM
</u-form-item> </u-form-item>
<u-form-item label="车牌号" ref="item1"> </u-form-item> <u-form-item label="车牌号" prop="carInfo.carNo" ref="item1">
<car-number v-model="carNumber"></car-number> <car-number v-model="model1.carInfo.carNo"></car-number>
</u-form-item>
</u--form> </u--form>
</div> </div>
</div> </div>
...@@ -31,7 +32,7 @@ ...@@ -31,7 +32,7 @@
</u-checkbox-group> </u-checkbox-group>
勾选同意<span>《用户服务协议》</span> 勾选同意<span>《用户服务协议》</span>
</div> </div>
<div class="add__btn add__no__bind"> <div class="add__btn add__no__bind" @click="addCarInfo()">
完成 完成
</div> </div>
</div> </div>
...@@ -47,18 +48,29 @@ export default { ...@@ -47,18 +48,29 @@ export default {
data() { data() {
return { return {
model1: { model1: {
userInfo: { carInfo: {
name: "", brand: '',
sex: "",
}, },
}, },
rules: { rules: {
"userInfo.name": { "carInfo.brand": {
type: "string", type: "string",
required: true, required: true,
message: "请填写品牌", message: "请填写品牌",
trigger: ["blur", "change"], trigger: ["blur", "change"],
}, },
"carInfo.carModel": {
type: "string",
required: true,
message: "请填写车型",
trigger: ["blur", "change"],
},
"carInfo.carNo": {
type: "string",
required: true,
message: "请填写车牌号",
trigger: ["blur", "change"],
},
}, },
items: [{ items: [{
title: "挪车码编号", title: "挪车码编号",
...@@ -87,8 +99,27 @@ export default { ...@@ -87,8 +99,27 @@ export default {
uni.navigateBack({ uni.navigateBack({
delta: 1 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> </script>
......
...@@ -28,38 +28,40 @@ export default { ...@@ -28,38 +28,40 @@ export default {
return { return {
items: [{ items: [{
title: "车主车牌号:", title: "车主车牌号:",
value: "京A123456" value: ""
}, },
{ {
title: "品牌:", title: "品牌:",
value: "宝马" value: ""
}, },
{ {
title: "车型:", title: "车型:",
value: "SUV" value: ""
}, },
{ {
title: "车主手机号:", title: "车主手机号:",
value: "2020-02-22 12:00:00" value: ""
}, { }, {
title: "时间:", title: "时间:",
value: "2020-02-22 12:00:00" value: ""
}, },
{ {
title: "地点:", title: "地点:",
value: "北京市朝阳区梨园小区停车场" value: ""
}, { }, {
title: "申请手机号:", title: "申请手机号:",
value: "159****9633" value: ""
}, },
{ {
title: "通知方式:", title: "通知方式:",
value: "微信通知" value: ""
}, { }, {
title: "通知类型:", title: "通知类型:",
value: "请求挪车" value: ""
} }
] ],
id: '',
moveLog: '',
}; };
}, },
methods: { methods: {
...@@ -67,8 +69,38 @@ export default { ...@@ -67,8 +69,38 @@ export default {
uni.navigateBack({ uni.navigateBack({
delta: 1 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> </script>
......
...@@ -10,23 +10,24 @@ ...@@ -10,23 +10,24 @@
填写车辆信息 填写车辆信息
</div> </div>
<div> <div>
<u--form labelPosition="left" :model="model1" :rules="rules" ref="form1" labelWidth="100"> <u--form labelPosition="left" :model="model1" ref="form1" labelWidth="100">
<u-form-item label="品牌" prop="userInfo.name" borderBottom ref="item1"> <u-form-item label="品牌" prop="carInfo.brand" borderBottom ref="item1">
<u--input v-model="model1.userInfo.name" placeholder="请输入" border="none"></u--input> <u--input v-model="model1.carInfo.brand" placeholder="请输入" border="none"></u--input>
</u-form-item> </u-form-item>
<u-form-item label="车型" prop="userInfo.name" borderBottom ref="item1"> <u-form-item label="车型" prop="carInfo.carModel" borderBottom ref="item2">
<u--input v-model="model1.userInfo.name" placeholder="请输入" border="none"></u--input> <u--input v-model="model1.carInfo.carModel" placeholder="请输入" border="none"></u--input>
</u-form-item> </u-form-item>
<u-form-item label="行驶里程" prop="userInfo.name" borderBottom ref="item1"> <u-form-item label="行驶里程" prop="carInfo.mileage" borderBottom ref="item3">
<u--input v-model="model1.userInfo.name" placeholder="请输入" border="none"></u--input>KM <u--input v-model="model1.carInfo.mileage" placeholder="请输入" border="none"></u--input>KM
</u-form-item> </u-form-item>
<u-form-item label="车牌号" ref="item1"> </u-form-item> <u-form-item label="车牌号" prop="carInfo.carNo" ref="item1">
<car-number v-model="carNumber"></car-number> <car-number v-model="model1.carInfo.carNo"></car-number>
</u-form-item>
</u--form> </u--form>
</div> </div>
</div> </div>
<div class="add__btn add__no__bind"> <div class="add__btn add__no__bind" @click="editCarInfo">
保存 保存
</div> </div>
<div class="add__btn add__back" @click="goBack"> <div class="add__btn add__back" @click="goBack">
...@@ -44,19 +45,30 @@ export default { ...@@ -44,19 +45,30 @@ export default {
}, },
data() { data() {
return { return {
//车辆id
id: '',
model1: { model1: {
userInfo: { carInfo: {},
name: "",
sex: "",
},
}, },
rules: { rules: {
"userInfo.name": { "carInfo.brand": {
type: "string", type: "string",
required: true, required: true,
message: "请填写品牌", message: "请填写品牌",
trigger: ["blur", "change"], trigger: ["blur", "change"],
}, },
"carInfo.carModel": {
type: "string",
required: true,
message: "请填写车型",
trigger: ["blur", "change"],
},
"carInfo.carNo": {
type: "string",
required: true,
message: "请填写车牌号",
trigger: ["blur", "change"],
},
}, },
items: [{ items: [{
title: "挪车码编号", title: "挪车码编号",
...@@ -85,8 +97,43 @@ export default { ...@@ -85,8 +97,43 @@ export default {
uni.navigateBack({ uni.navigateBack({
delta: 1 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> </script>
......
...@@ -9,21 +9,25 @@ ...@@ -9,21 +9,25 @@
我的爱车 我的爱车
</div> </div>
<div class="love-car__list"> <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"> <div class="itme__img">
<image src="@/static/move-car/love-car6.png" /> <image src="@/static/move-car/love-car6.png" />
</div> </div>
<div class="item__title"> <div class="item__title">
大众-捷达-1.4 手动 梦 想版时尚型 {{vo.brand}}-{{vo.carModel}}
</div> </div>
<div class="item__edit" @click="editCar"> <div class="item__edit" @click="editCar(vo.id)">
<image src="@/static/move-car/love-car2.png" /> <image src="@/static/move-car/love-car2.png" />
</div> </div>
<div class="item__del"> <div class="item__del" @click="deleteModal(vo.id)">
<image src="@/static/move-car/love-car3.png" /> <image src="@/static/move-car/love-car3.png" />
</div> </div>
</div> </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"> <div class="love__btn" @click="addCar">
<image src="@/static/move-car/love-car5.png"> 添加车辆 <image src="@/static/move-car/love-car5.png"> 添加车辆
</div> </div>
...@@ -35,7 +39,11 @@ ...@@ -35,7 +39,11 @@
export default { export default {
data() { data() {
return { return {
carList: [],
deleteShow: false,
deleteTitle: '删除车辆',
deleteContent: '确定删除车辆?',
carId: '',
}; };
}, },
methods: { methods: {
...@@ -44,13 +52,51 @@ export default { ...@@ -44,13 +52,51 @@ export default {
url: '/pagesB/pages/move-car/addCar' url: '/pagesB/pages/move-car/addCar'
}) })
}, },
editCar() { editCar(id) {
uni.navigateTo({ 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> </script>
......
...@@ -8,24 +8,24 @@ ...@@ -8,24 +8,24 @@
<div class="record__item" v-for="(vo,inx) in items" :key="inx"> <div class="record__item" v-for="(vo,inx) in items" :key="inx">
<div class="item__top"> <div class="item__top">
<div class="top__time"> <div class="top__time">
时间:{{vo.time}} 时间:{{vo.applyDate}}
</div> </div>
<div class="top__state" :class="vo.state==='微信'?'':'phone__state'"> <div class="top__state" :class="vo.state==='微信'?'':'phone__state'">
{{vo.state}} {{vo.confirmType=="1"?'电话':'微信'}}
</div> </div>
</div> </div>
<div class="item__content"> <div class="item__content">
<div> <div>
车牌号:{{vo.carNumber}} 车牌号:{{vo.carNo}}
</div> </div>
<div> <div>
通知类型:{{vo.type}} 通知类型:{{type}}
</div> </div>
<div> <div>
车主手机号:{{vo.name}} 车主手机号:{{vo.userMobile}}
</div> </div>
</div> </div>
<div class="item__btn" @click="goDetail"> <div class="item__btn" @click="goDetail(vo.id)">
<div> <div>
查看详情 查看详情
</div> </div>
...@@ -39,30 +39,28 @@ ...@@ -39,30 +39,28 @@
export default { export default {
data() { data() {
return { return {
items: [{ items: [],
time: '2020-02-22 12:00:45', type: '请求他人挪车'
state: '微信',
carNum: '京A123456',
type: '请求挪车',
apply: '123****6633',
},
{
date: '2020-02-22 12:00:45',
state: '电话',
carNum: '京A123456',
type: '请求挪车',
apply: '123****6633',
}
]
}; };
}, },
methods: { methods: {
goDetail(){ goDetail(id){
uni.navigateTo({ 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> </script>
......
...@@ -16,20 +16,24 @@ ...@@ -16,20 +16,24 @@
</div> </div>
<div class="top__car__phone"> <div class="top__car__phone">
<div> <div>
京A231Q42 {{vo.carNo}}
</div> </div>
<div> <div>
152****2233 {{vo.userMobile}}
</div> </div>
</div> </div>
<div class="top__car__name"> <div class="top__car__name">
北京现代 {{vo.brand}}
</div> </div>
</div> </div>
<div class="item__bottom"> <div class="item__bottom">
<span>解除绑定</span> <span @click="openUnbindModal(vo.id)">解除绑定</span>
<span @click="goView">查看详情</span> <span @click="goView">查看详情</span>
</div> </div>
<div>
<u-modal :show="unbindShow" :title="unbindTitle" :content='unbindContent'
@confirm="unbind" @cancel="cancelModal" showCancelButton="true"></u-modal>
</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -41,7 +45,16 @@ export default { ...@@ -41,7 +45,16 @@ export default {
data() { data() {
return { return {
keyword: '', keyword: '',
items: [{},{},{},] //挪车码列表
items: [],
//解除绑定对话框
unbindShow: false,
//解除绑定对话框标题
unbindTitle: '解除绑定',
//解除绑定对话框内容
unbindContent: '确定解除绑定吗?',
//解除绑定的挪车牌
id: '',
}; };
}, },
methods: { methods: {
...@@ -49,8 +62,40 @@ export default { ...@@ -49,8 +62,40 @@ export default {
uni.navigateTo({ uni.navigateTo({
url: '/pagesB/pages/move-car/moveCarDetail' 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> </script>
......
...@@ -8,24 +8,24 @@ ...@@ -8,24 +8,24 @@
<div class="record__item" v-for="(vo,inx) in items" :key="inx"> <div class="record__item" v-for="(vo,inx) in items" :key="inx">
<div class="item__top"> <div class="item__top">
<div class="top__time"> <div class="top__time">
时间:{{vo.time}} 时间:{{vo.applyDate}}
</div> </div>
<div class="top__state" :class="vo.state==='微信'?'':'phone__state'"> <div class="top__state" :class="vo.state==='微信'?'':'phone__state'">
{{vo.state}} {{vo.confirmType=="1"?'电话':'微信'}}
</div> </div>
</div> </div>
<div class="item__content"> <div class="item__content">
<div> <div>
车牌号:{{vo.carNumber}} 车牌号:{{vo.carNo}}
</div> </div>
<div> <div>
通知类型:{{vo.type}} 通知类型:{{type}}
</div> </div>
<div> <div>
挪车申请人:{{vo.name}} 挪车申请人:{{vo.applyUserMobile}}
</div> </div>
</div> </div>
<div class="item__btn" @click="goDetail"> <div class="item__btn" @click="goDetail(vo.id)">
<div> <div>
查看详情 查看详情
</div> </div>
...@@ -39,30 +39,29 @@ ...@@ -39,30 +39,29 @@
export default { export default {
data() { data() {
return { return {
items: [{ items: [],
time: '2020-02-22 12:00:45', type: '他人请求挪车',
state: '微信',
carNum: '京A123456',
type: '请求他人挪车',
apply: '123****6633',
},
{
date: '2020-02-22 12:00:45',
state: '电话',
carNum: '京A123456',
type: '请求他人挪车',
apply: '123****6633',
}
]
}; };
}, },
methods: { methods: {
goDetail(){ goDetail(id){
uni.navigateTo({ console.log(id)
url: '/pagesB/pages/move-car/recordDetail' uni.navigateTo({
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> </script>
......
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
</div> </div>
</div> </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> </div>
</view> </view>
</template> </template>
...@@ -83,6 +83,28 @@ export default { ...@@ -83,6 +83,28 @@ export default {
}, },
], ],
checked: [], checked: [],
moveCode: '',
appBusCar: {},
appBo: {
//车牌号
carNo: '',
//申请人手机号
applyUserMobile: '',
//省
provinceName: '',
//市
cityName: '',
//区
countyName: '',
//详细地址
detailInfo: '',
//是否微信通知
isWechat: false,
//是否成功
isSuccess: false,
//日志唯一编码
logCode: '',
},
} }
}, },
methods: { methods: {
...@@ -93,11 +115,52 @@ export default { ...@@ -93,11 +115,52 @@ export default {
this.show = false; this.show = false;
}, },
selectClick(index){ 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() { goMyCar() {
uni.navigateTo({ 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 { ...@@ -111,7 +174,7 @@ export default {
// //场景值 // //场景值
// scene: e.scene // scene: e.scene
// } // }
this.moveCode = scene
console.log('scene: ' + scene); console.log('scene: ' + scene);
} }
} }
......
...@@ -26,40 +26,9 @@ ...@@ -26,40 +26,9 @@
export default { export default {
data() { data() {
return { return {
items: [{ items: [],
title: "车主车牌号:", id: '',
value: "京A123456" moveLog: {},
},
{
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: "他人挪车请求"
}
]
}; };
}, },
methods: { methods: {
...@@ -67,8 +36,38 @@ export default { ...@@ -67,8 +36,38 @@ export default {
uni.navigateBack({ uni.navigateBack({
delta: 1 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> </script>
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
</div> </div>
<active-form :formDate.sync="formData"></active-form> <active-form :formDate.sync="formData"></active-form>
</div> </div>
<div class="view__btn view__no__bind"> <div class="view__btn view__no__bind" @click="confirmBinding">
确认绑定 确认绑定
</div> </div>
<div class="use__text">使用说明</div> <div class="use__text">使用说明</div>
...@@ -41,16 +41,17 @@ export default { ...@@ -41,16 +41,17 @@ export default {
sex: "", sex: "",
}, },
}, },
formData: [{ formData: [
{
id: "kjjns", //id必须唯一 可以是数字 id: "kjjns", //id必须唯一 可以是数字
placeholder: "请输入", placeholder: "请输入",
label: "车牌号", // 提示输入名 label: "车牌号", // 提示输入名
type: "text", //类型 type: "text", //类型
rules: { rules: {
name: "realName", //字段名 即提交给后端的字段 name: "carNo", //字段名 即提交给后端的字段
value: "", value: "",
verify: false, //是否开启校验 verify: false, //是否开启校验
errMess: "姓名未填写", //校验不通过的错误提示 errMess: "车牌号未填写", //校验不通过的错误提示
}, },
}, },
{ {
...@@ -59,10 +60,10 @@ export default { ...@@ -59,10 +60,10 @@ export default {
label: "品牌", // 提示输入名 label: "品牌", // 提示输入名
type: "text", //类型 type: "text", //类型
rules: { rules: {
name: "realName1", //字段名 即提交给后端的字段 name: "brand", //字段名 即提交给后端的字段
value: "", value: "",
verify: false, //是否开启校验 verify: false, //是否开启校验
errMess: "姓名未填写", //校验不通过的错误提示 errMess: "品牌未填写", //校验不通过的错误提示
}, },
}, },
{ {
...@@ -71,22 +72,22 @@ export default { ...@@ -71,22 +72,22 @@ export default {
label: "车型", // 提示输入名 label: "车型", // 提示输入名
type: "text", //类型 type: "text", //类型
rules: { rules: {
name: "realName2", //字段名 即提交给后端的字段 name: "carModel", //字段名 即提交给后端的字段
value: "", value: "",
verify: false, //是否开启校验 verify: false, //是否开启校验
errMess: "姓名未填写", //校验不通过的错误提示 errMess: "车型未填写", //校验不通过的错误提示
}, },
}, },
{ {
id: "kjjns", //id必须唯一 可以是数字 id: "kjjns", //id必须唯一 可以是数字
placeholder: "请输入", placeholder: "请输入",
label: "车牌号", // 提示输入名 label: "手机号", // 提示输入名
type: "text", //类型 type: "text", //类型
rules: { rules: {
name: "realName4", //字段名 即提交给后端的字段 name: "userMobile", //字段名 即提交给后端的字段
value: "", value: "",
verify: false, //是否开启校验 verify: false, //是否开启校验
errMess: "姓名未填写", //校验不通过的错误提示 errMess: "手机号未填写", //校验不通过的错误提示
}, },
}, },
{ {
...@@ -96,17 +97,46 @@ export default { ...@@ -96,17 +97,46 @@ export default {
type: "text", type: "text",
// oneKeyPhone:true, // oneKeyPhone:true,
rules: { rules: {
name: "yzm", name: "verificationCode",
value: "", //字段值 value: "", //字段值
verify: false, verify: false,
errMess: "", errMess: "验证码未填写",
}, },
}, },
], ],
moveCode: '',
moveCodeInfo: {},
} }
}, },
methods: {}, 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
},
} }
</script> </script>
......
...@@ -11,10 +11,10 @@ ...@@ -11,10 +11,10 @@
<div class="ps__title">个人中心</div> <div class="ps__title">个人中心</div>
<div class="ps__info"> <div class="ps__info">
<div class="info__cover"> <div class="info__cover">
<image src="@/static/my/my2.png" /> <image :src="avatar" />
</div> </div>
<div> <div>
<div class="info__name">这里是昵称</div> <div class="info__name">{{userInfo.nickName}}</div>
<div class="view__info" @click="editInfo"> <div class="view__info" @click="editInfo">
查看个人主页或编辑资料 查看个人主页或编辑资料
<span> <span>
...@@ -104,7 +104,11 @@ export default { ...@@ -104,7 +104,11 @@ export default {
title: '退款/售后', title: '退款/售后',
icon: require('@/static/my/my9.png') icon: require('@/static/my/my9.png')
} }
] ],
//用户信息
userInfo: {},
//头像
avatar: '',
} }
}, },
methods: { methods: {
...@@ -122,9 +126,20 @@ export default { ...@@ -122,9 +126,20 @@ export default {
uni.navigateTo({ uni.navigateTo({
url: '/pagesD/pages/personal/userInfo' 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> </script>
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<div class="info__cover" @click="select"> <div class="info__cover" @click="select">
<span class="cover__name">头像</span> <span class="cover__name">头像</span>
<div class="cover"> <div class="cover">
<image src="@/static/my/my2.png" /> <image :src="image" />
<span> <span>
<image src="@/static/my/my6.png" /></span> <image src="@/static/my/my6.png" /></span>
</div> </div>
...@@ -30,10 +30,10 @@ export default { ...@@ -30,10 +30,10 @@ export default {
label: "手机号", // 提示输入名 label: "手机号", // 提示输入名
type: "text", //类型 type: "text", //类型
rules: { rules: {
name: "realName", //字段名 即提交给后端的字段 name: "mobile", //字段名 即提交给后端的字段
value: "12563996933", value: "12563996933",
verify: false, //是否开启校验 verify: false, //是否开启校验
errMess: "姓名未填写", //校验不通过的错误提示 errMess: "手机号未填写", //校验不通过的错误提示
}, },
}, },
{ {
...@@ -42,10 +42,10 @@ export default { ...@@ -42,10 +42,10 @@ export default {
label: "昵称", // 提示输入名 label: "昵称", // 提示输入名
type: "text", //类型 type: "text", //类型
rules: { rules: {
name: "realName2", //字段名 即提交给后端的字段 name: "nickName", //字段名 即提交给后端的字段
value: "", value: "",
verify: false, //是否开启校验 verify: false, //是否开启校验
errMess: "姓名未填写", //校验不通过的错误提示 errMess: "昵称未填写", //校验不通过的错误提示
}, },
}, },
{ {
...@@ -54,10 +54,10 @@ export default { ...@@ -54,10 +54,10 @@ export default {
label: "性别", // 提示输入名 label: "性别", // 提示输入名
type: "text", //类型 type: "text", //类型
rules: { rules: {
name: "realName3", //字段名 即提交给后端的字段 name: "sex", //字段名 即提交给后端的字段
value: "", value: "",
verify: false, //是否开启校验 verify: false, //是否开启校验
errMess: "姓名未填写", //校验不通过的错误提示 errMess: "性别未填写", //校验不通过的错误提示
}, },
}, },
{ {
...@@ -66,29 +66,80 @@ export default { ...@@ -66,29 +66,80 @@ export default {
label: "生日", // 提示输入名 label: "生日", // 提示输入名
type: "text", //类型 type: "text", //类型
rules: { rules: {
name: "realName4", //字段名 即提交给后端的字段 name: "birthday", //字段名 即提交给后端的字段
value: "", value: "",
verify: false, //是否开启校验 verify: false, //是否开启校验
errMess: "姓名未填写", //校验不通过的错误提示 errMess: "生日未填写", //校验不通过的错误提示
}, },
}, },
], ],
userInfo: {
nickName: '默认昵称',
},
image: '',
} }
}, },
methods: { methods: {
select() { select() {
let that = this
uni.chooseImage({ uni.chooseImage({
count: 6, //默认9 count: 1, //默认9
sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有 sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['album'], //从相册选择 sourceType: ['album'], //从相册选择
success: function (res) { 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> </script>
......
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