lanan-system-vue/src/views/base/customer/CustomerCarForm.vue
2024-08-04 10:43:41 +08:00

169 lines
5.0 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div>
<!-- 对话框(添加 / 修改) -->
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="60%" v-dialogDrag append-to-body>
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>客户基本信息</span>
</div>
<el-descriptions class="margin-top" :column="3" border>
<el-descriptions-item>
<template slot="label">
客户名称
</template>
{{formData.cusName}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
性别
</template>
<dict-tag :type="DICT_TYPE.DICT_SYS_USER_SEX" :value="formData.sex" />
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
联系方式
</template>
{{formData.phoneNumber}}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
生日
</template>
{{ parseTime(formData.birthday,'{y}-{m}-{d}') }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
客户来源
</template>
<dict-tag :type="DICT_TYPE.DICT_CUS_DATA_FROM" :value="formData.dataFrom" />
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
最近办理业务
</template>
<dict-tag :type="DICT_TYPE.DICT_CUS_BUSI_TYPE" :value="formData.nearDoContent" />
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
联系地址
</template>
{{formData.address}}
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-card class="box-card">
<div slot="header" class="clearfix">
<span>车辆信息</span>
<el-button @click="openChooseCar" style="float: right; padding: 3px 0" type="text">选择车辆</el-button>
</div>
<el-row>
<el-empty v-if="formData.carList.length == 0" description="暂无车辆信息" :image-size="100"></el-empty>
<el-col v-for="item in formData.carList" :span="8">
<el-card shadow="hover">
<el-descriptions>
<template slot="title">
{{item.carBrand}}({{item.carModel}})
<el-button @click="deleteCar(item)" style="text-align: right" size="mini" type="danger" icon="el-icon-delete" circle></el-button>
</template>
<el-descriptions-item label="车主"> <el-checkbox true-label="1" false-label="0" v-model="item.isOwner" /></el-descriptions-item>
<el-descriptions-item label="车牌号">{{item.licenseNumber}}</el-descriptions-item>
</el-descriptions>
</el-card>
</el-col>
</el-row>
</el-card>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</div>
</el-dialog>
<ChooseCarDraw @success="chooseCar" ref="chooseCarForm"/>
</div>
</template>
<script>
import * as CustomerMainApi from '@/api/base/customer';
import ChooseCarDraw from '@/views/base/customer/ChooseCarDraw.vue';
export default {
name: "CustomerMainForm",
components: {
ChooseCarDraw
},
data() {
return {
// 弹出层标题
dialogTitle: "",
// 是否显示弹出层
dialogVisible: false,
// 表单的加载中1修改时的数据加载2提交的按钮禁用
formLoading: false,
//回参
formData:{
carList:[],
},
};
},
methods: {
/** 打开弹窗 */
async open(row) {
this.dialogVisible = true;
this.formLoading = true;
this.reset()
try{
const res = await CustomerMainApi.getCustomerMain(row.id);
this.formData = res.data
this.dialogTitle = "绑定车辆";
}finally {
this.formLoading = false;
}
},
/**删除卡片*/
deleteCar(row){
this.formData.carList.forEach((item,index) => {
if (item.id == row.id){
this.formData.carList.splice(index,1)
}
})
},
/**重置*/
reset(){
this.formData={
carList:[],
}
},
openChooseCar(){
this.$refs["chooseCarForm"].open(this.formData.carList);
},
/**
* 选择车辆
*/
chooseCar(chooseCars){
this.formData.carList = chooseCars
},
/** 提交按钮 */
async submitForm() {
this.formLoading = true
try{
const data = this.formData;
await CustomerMainApi.bindCustomerCar(data);
this.$modal.msgSuccess("绑定成功");
this.dialogVisible = false;
this.$emit('success');
}finally {
this.formLoading = false
}
},
}
};
</script>