<template> <div> <el-select filterable :value="value === 0 ? undefined : value" @change="change" v-bind="$attrs" clearable> <el-option v-for="supplier in getSuppliers" :key="supplier.id" :label="$t('公司名称:') + $l(supplier, 'company') + $t(',地址:') + supplier.externalBackVO.receiveAddress + $t(',邮箱:') + supplier.externalBackVO.receiveEmail + $t(',品名:') + supplier.externalBackVO.goodName + $t(',From M No:') + supplier.externalBackVO.fromNo + $t(',BA No:') + supplier.externalBackVO.baNo" :value="supplier.id" style="width: 600px"> <el-tooltip class="item" effect="dark" placement="top"> <div slot="content"> <span>{{ $t('公司名称:') + $l(supplier, 'company') + $t(',地址:') + supplier.externalBackVO.receiveAddress + $t(',邮箱:') + supplier.externalBackVO.receiveEmail + $t(',品名:') + supplier.externalBackVO.goodName + $t(',From M No:') + supplier.externalBackVO.fromNo + $t(',BA No:') + supplier.externalBackVO.baNo }}</span> </div> <div class="iclass">{{ $t('公司名称:') + $l(supplier, 'company') + $t(',地址:') + supplier.externalBackVO.receiveAddress + $t(',邮箱:') + supplier.externalBackVO.receiveEmail + $t(',品名:') + supplier.externalBackVO.goodName + $t(',From M No:') + supplier.externalBackVO.fromNo + $t(',BA No:') + supplier.externalBackVO.baNo }}</div> </el-tooltip> </el-option> </el-select> </div> </template> <script> /** * 供应商 */ export default { name: "supplierSelect", props: { companyType: String, value: Number, allSupplier: Array, areaType: { type: Number, default: 0 }, }, model: { prop: "value", event: "change", }, data() { return {}; }, computed: { getSuppliers() { let allSupplier = this.allSupplier.filter( (item) => item.areaType == this.areaType ); allSupplier.forEach(map=>{ map.externalBackVO.receiveAddress = map.externalBackVO.receiveAddress?map.externalBackVO.receiveAddress: '' map.externalBackVO.receiveEmail = map.externalBackVO.receiveEmail?map.externalBackVO.receiveEmail:'' map.externalBackVO.goodName = map.externalBackVO.goodName?map.externalBackVO.goodName:'' map.externalBackVO.fromNo = map.externalBackVO.fromNo?map.externalBackVO.fromNo:'' map.externalBackVO.baNo = map.externalBackVO.baNo?map.externalBackVO.baNo:'' }) if(this.areaType == 1 || !this.companyType) return allSupplier; return allSupplier.filter((item) => item.companyTypes.includes(this.companyType) ); }, }, methods: { change(val) { this.$emit("change", val); }, }, }; </script> <style scoped> .iclass { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } </style>