supplierOutSelect.vue 2.79 KB
<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>