186 lines
5.6 KiB
Vue
186 lines
5.6 KiB
Vue
<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.licenseNumber }}
|
||
</el-descriptions-item>
|
||
<el-descriptions-item>
|
||
<template slot="label">
|
||
车辆品牌
|
||
</template>
|
||
<!-- <dict-tag :type="DICT_TYPE.DICT_SYS_USER_SEX" :value="formData.sex" /> -->
|
||
{{formData.brandStr}}
|
||
</el-descriptions-item>
|
||
<el-descriptions-item>
|
||
<template slot="label">
|
||
车辆型号
|
||
</template>
|
||
<!-- <dict-tag :type="DICT_TYPE.DICT_SYS_USER_SEX" :value="formData.sex" /> -->
|
||
{{formData.modelStr}}
|
||
</el-descriptions-item>
|
||
<el-descriptions-item>
|
||
<template slot="label">
|
||
车架号
|
||
</template>
|
||
{{ formData.vin }}
|
||
</el-descriptions-item>
|
||
<el-descriptions-item>
|
||
<template slot="label">
|
||
发动机号码
|
||
</template>
|
||
{{ formData.engineNumber }}
|
||
</el-descriptions-item>
|
||
<el-descriptions-item>
|
||
<template slot="label">
|
||
车辆注册日期
|
||
</template>
|
||
{{ parseTime(formData.carRegisterDate, '{y}-{m}-{d}') }}
|
||
</el-descriptions-item>
|
||
<el-descriptions-item>
|
||
<template slot="label">
|
||
车辆性质
|
||
</template>
|
||
<dict-tag :type="DICT_TYPE.DICT_CAR_NATURE" :value="formData.carNature" />
|
||
</el-descriptions-item>
|
||
<el-descriptions-item>
|
||
<template slot="label">
|
||
车辆类别
|
||
</template>
|
||
<dict-tag :type="DICT_TYPE.DICT_CAR_CATEGORY" :value="formData.carCategory" />
|
||
</el-descriptions-item>
|
||
<el-descriptions-item>
|
||
<template slot="label">
|
||
最近办理业务
|
||
</template>
|
||
<dict-tag :type="DICT_TYPE.DICT_CUS_BUSI_TYPE" :value="formData.recentlyHandledBusiness" />
|
||
</el-descriptions-item>
|
||
</el-descriptions>
|
||
</el-card>
|
||
|
||
<el-card class="box-card">
|
||
<div slot="header" class="clearfix">
|
||
<span>车辆标签</span>
|
||
<el-button @click="openBusiLabel" style="float: right; padding: 3px 0" type="text">打标签</el-button>
|
||
</div>
|
||
<el-row>
|
||
<el-empty v-if="formData.labelList.length == 0" description="暂无标签信息" :image-size="100"></el-empty>
|
||
<template v-for="item in formData.labelList">
|
||
<el-popover placement="top-start" width="200" trigger="hover" :content="item.labelContent">
|
||
<el-tag style="margin-left: 5px" :key="item.id" closable @close="tagClose(item)" slot="reference"
|
||
:type="item.labelType">
|
||
{{ item.labelName }}
|
||
</el-tag>
|
||
</el-popover>
|
||
</template>
|
||
</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>
|
||
<BusiLabelForm ref="busiLabelForm" @ok="setLabel" />
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
import * as CarMainApi from '@/api/base/carmain';
|
||
import * as CustomerMainApi from '@/api/base/customer';
|
||
import BusiLabelForm from '@/views/base/label/BusiLabelForm.vue';
|
||
export default {
|
||
name: "CustomerLabelForm",
|
||
components: { BusiLabelForm },
|
||
data() {
|
||
return {
|
||
// 弹出层标题
|
||
dialogTitle: "",
|
||
// 是否显示弹出层
|
||
dialogVisible: false,
|
||
// 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
||
formLoading: false,
|
||
//回参
|
||
formData: {
|
||
labelList: [],
|
||
},
|
||
|
||
};
|
||
},
|
||
methods: {
|
||
/** 删除标签 */
|
||
tagClose(row) {
|
||
let id1 = this.formData.labelList.findIndex(item => {
|
||
if (item.id == row.id) {
|
||
return true
|
||
}
|
||
})
|
||
this.formData.labelList.splice(id1, 1)
|
||
},
|
||
|
||
/** 打开弹窗 */
|
||
async open(id) {
|
||
this.dialogVisible = true;
|
||
this.formLoading = true;
|
||
this.reset()
|
||
try {
|
||
const res = await CarMainApi.getCarMain(id);
|
||
this.formData = res.data
|
||
this.dialogTitle = "打标签";
|
||
} finally {
|
||
this.formLoading = false;
|
||
}
|
||
},
|
||
|
||
/**删除标签信息*/
|
||
deleteLabel(row) {
|
||
this.formData.labelList.forEach((item, index) => {
|
||
if (item.id == row.id) {
|
||
this.formData.labelList.splice(index, 1)
|
||
}
|
||
})
|
||
},
|
||
|
||
/**重置*/
|
||
reset() {
|
||
this.formData = {
|
||
labelList: [],
|
||
}
|
||
},
|
||
|
||
/**设置标签内容*/
|
||
setLabel(row) {
|
||
this.formData.labelList.push(JSON.parse(JSON.stringify(row)))
|
||
},
|
||
|
||
/**新增业务标签*/
|
||
openBusiLabel() {
|
||
this.$refs["busiLabelForm"].open(this.formData);
|
||
},
|
||
|
||
|
||
/** 提交按钮 */
|
||
async submitForm() {
|
||
this.formLoading = true
|
||
try {
|
||
const data = this.formData;
|
||
await CarMainApi.setLabelList(data);
|
||
this.$modal.msgSuccess("设置标签成功");
|
||
this.dialogVisible = false;
|
||
this.$emit('success');
|
||
} finally {
|
||
this.formLoading = false
|
||
}
|
||
},
|
||
|
||
}
|
||
};
|
||
</script>
|