2024-04-18 19:53:04 +08:00

410 lines
10 KiB
Vue

<template>
<view class="fullHeight">
<headers :showBack="true">
<view class="headerName">
{{pageTitle}}
</view>
</headers>
<view class="formBox">
<form @submit="formSubmit">
<view class="uni-form-item">
<view class="uni-form-label">
<text class="star">*</text>车牌号
</view>
<view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="carNumber" :value="form.carNumber"
placeholder="请输入" />
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
车牌照片
</view>
<view class="uni-form-input" style="display: inline-flex;">
<view class="imgBox" v-show="form.carPhotosUrl">
<image :src="url_config+'image/'+form.carPhotosUrl" class="img"></image>
<uni-icons @click="deleteImg" class="deleteImg" type="clear" size="24"></uni-icons>
</view>
<view class="addImgBox" @click="selectImg">
<image src="/static/icon-add.png" class="icon-add"></image>
</view>
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
<text class="star">*</text>车辆颜色
</view>
<view class="uni-form-input">
<picker @change="bindPickerChange" :value="selectIndex" :range="colorList"
range-key="locationName">
<view class="uni-input uni-select cl" v-if="selectIndex==null">
请选择 <image class="icon-down" src="/static/icon-down-black.png" mode=""></image>
</view>
<view class="uni-input uni-select" v-else>{{colorList[selectIndex]}}
<image class="icon-down" src="/static/icon-down-black.png" mode=""></image>
</view>
</picker>
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
<text class="star">*</text>车辆类型
</view>
<view class="uni-form-input">
<picker @change="bindPickerChange2" :value="carTypeIndex" :range="carTypeList"
range-key="carTypeName">
<view class="uni-input uni-select cl" v-if="carTypeIndex==null">
请选择 <image class="icon-down" src="/static/icon-down-black.png" mode=""></image>
</view>
<view class="uni-input uni-select" v-else>{{carTypeList[carTypeIndex].carTypeName}}
<image class="icon-down" src="/static/icon-down-black.png" mode=""></image>
</view>
</picker>
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
司机姓名
</view>
<picker @change="bindPickerChange3" :value="driverNameIndex" :range="colorList"
range-key="locationName">
<view class="uni-input uni-select cl" v-if="driverNameIndex==null">
请选择 <image class="icon-down" src="/static/icon-down-black.png" mode=""></image>
</view>
<view class="uni-input uni-select" v-else>{{colorList[driverNameIndex]}}
<image class="icon-down" src="/static/icon-down-black.png" mode=""></image>
</view>
</picker>
<!-- <view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="driverName" :value="form.driverName"
placeholder="请输入" />
</view> -->
</view>
<view class="uni-form-item">
<view class="uni-form-label">
<text class="star">*</text>司机电话
</view>
<view class="uni-form-input">
<input class="uni-input" placeholder-class="cl" name="driverTelephone"
:value="form.driverTelephone" placeholder="请输入" />
</view>
</view>
<view class="uni-form-item">
<view class="uni-form-label">
<text class="star">*</text>是否黑名单
</view>
<view class="uni-form-input">
<radio-group @change="radioChange" name="isBlack">
<label style="margin-right: 15px;" class="radio">
<radio value="0" :checked="form.isBlack==0" />白名单
</label>
<label class="radio">
<radio value="1" :checked="form.isBlack==1" />黑名单
</label>
</radio-group>
</view>
</view>
<button form-type="submit" type="primary" class="btn submitBtn big">保存</button>
<button class="btn deleteBtn" v-show="!isAdd" @click="deleteFn">删除</button>
</form>
</view>
</view>
</template>
<script>
export default {
data() {
return {
pageTitle: '新增车辆',
selectIndex: null,
colorList: ['蓝色', '绿色', '黄色', '白色', '黑色'],
carTypeList: [],
carTypeIndex: null,
driverNameList: [],
driverNameIndex: null,
form: {
carColor: "",
carNumber: "",
carPhotosUrl: "",
carType: "",
driverName: "",
driverTelephone: "",
isBlack: '',
projectSn: ''
},
personList: [],
projectDetail: {},
isAdd: true
}
},
mounted() {
},
onLoad(options) {
this.projectDetail = JSON.parse(uni.getStorageSync('projectDetail'))
if (options.id) {
this.isAdd = false
this.pageTitle = '编辑车辆'
this.getDetails(options.id)
} else {
this.getCarTypeList()
}
},
methods: {
deleteFn() {
var that = this
uni.showModal({
title: '提示',
content: '确定删除该车辆吗?',
success(res) {
if (res.confirm) {
that.sendRequest({
url: 'xmgl/carInfo/delete',
data: {
id: that.form.id
},
method: "POST",
success(res) {
uni.showToast({
title: '删除成功!'
})
uni.navigateBack({})
setTimeout(() => {
that.$router.go(0)
}, 500)
}
})
}
}
})
},
selectImg() {
var that = this
uni.chooseImage({
count: 1,
success(res) {
const tempFilePaths = res.tempFilePaths;
uni.uploadFile({
url: that.url_config + 'upload/image', //仅为示例,非真实的接口地址
filePath: tempFilePaths[0],
name: 'files',
success: (uploadFileRes) => {
console.log(uploadFileRes.data);
that.form.carPhotosUrl = JSON.parse(uploadFileRes.data).data[0]
.imageUrl
}
});
}
})
},
deleteImg() {
this.form.carPhotosUrl = ''
},
radioChange(e) {
this.form.isBlack = e.target.value
},
//获取司机姓名
getDriverNameList() {
var that = this
this.sendRequest({
url: 'xmgl/carType/list',
data: {
projectSn: this.projectDetail.projectSn
},
method: "POST",
success(res) {
that.carTypeList = res.result
if (!that.isAdd) {
for (var i = 0; i < res.result.length; i++) {
if (that.form.carType == res.result[i].id) {
that.carTypeIndex = i;
break;
}
}
}
}
})
},
//获取车种
getCarTypeList() {
var that = this
this.sendRequest({
url: 'xmgl/carType/list',
data: {
projectSn: this.projectDetail.projectSn
},
method: "POST",
success(res) {
that.carTypeList = res.result
if (!that.isAdd) {
for (var i = 0; i < res.result.length; i++) {
if (that.form.carType == res.result[i].id) {
that.carTypeIndex = i;
break;
}
}
}
}
})
},
getDetails(id) {
var that = this
this.sendRequest({
url: 'xmgl/carInfo/queryById',
data: {
id: id
},
method: "POST",
success(res) {
that.form = res.result
that.selectIndex = that.colorList.indexOf(that.form.carColor)
if (that.form.carPhotosUrl) {
var arr = JSON.parse(that.form.carPhotosUrl)
if (arr.length > 0) {
that.form.carPhotosUrl = arr[0].url
} else {
that.form.carPhotosUrl = ''
}
} else {
that.form.carPhotosUrl = ''
}
that.getCarTypeList()
}
})
},
bindPickerChange: function(e) {
this.selectIndex = e.target.value
},
bindPickerChange2: function(e) {
this.carTypeIndex = e.target.value
},
bindPickerChange3: function(e) {
this.carTypeIndex = e.target.value
},
bindDateChange: function(e) {
this.form.eduTime = e.target.value
},
formSubmit(e) {
var that = this
console.log(e)
var params = e.detail.value
params.projectSn = this.projectDetail.projectSn
if (this.selectIndex == null) {
uni.showToast({
title: '请选择车辆颜色',
icon: 'none'
})
return false;
}
if (this.carTypeIndex == null) {
uni.showToast({
title: '请选择车辆类型',
icon: 'none'
})
return false;
}
if (params.carNumber == '') {
uni.showToast({
title: '请输入车牌号',
icon: 'none'
})
return false;
}
if (params.driverTelephone == '') {
uni.showToast({
title: '请输入司机电话',
icon: 'none'
})
return false;
}
if (params.isBlack == '') {
uni.showToast({
title: '请选择是否黑名单',
icon: 'none'
})
return false;
}
if (this.form.carPhotosUrl) {
params.carPhotosUrl = JSON.stringify([{
name: '',
url: this.form.carPhotosUrl
}])
}
params.carColor = this.colorList[this.selectIndex]
params.carType = this.carTypeList[this.carTypeIndex].id
var url = 'xmgl/carInfo/edit'
if (this.isAdd) {
url = 'xmgl/carInfo/add'
} else {
params.id = this.form.id
}
this.sendRequest({
url: url,
data: params,
method: "POST",
success(res) {
uni.showToast({
title: '保存成功!'
})
// uni.navigateBack({
// })
uni.navigateTo({
url: './index'
});
}
})
}
}
}
</script>
<style lang="scss" scoped>
.addImgBox {
border: 1px solid rgba(42, 43, 91, 0.1);
background-color: #f6f5f8;
width: 60px;
height: 60px;
display: inline-flex;
align-items: center;
justify-content: center;
border-radius: 10px;
font-size: 12px;
.icon-add {
width: 18px;
height: 18px;
}
}
.imgBox {
width: 60px;
height: 60px;
display: inline-flex;
position: relative;
margin-right: 15px;
.img {
width: 100%;
height: 100%;
border-radius: 10px;
}
.deleteImg {
position: absolute;
right: -10px;
top: -10px;
}
}
</style>