supplierOutSelect.vue 2.76 KB
Newer Older
1 2
<template>
  <div>
3 4 5 6 7 8 9 10 11 12
    <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>
13 14 15 16 17 18 19 20
  </div>
</template>

<script>
/**
 * 供应商
 */
export default {
21
  name: 'supplierSelect',
22 23 24 25 26 27 28
  props: {
    companyType: String,
    value: Number,
    allSupplier: Array,
    areaType: {
      type: Number,
      default: 0
29
    }
30 31
  },
  model: {
32 33
    prop: 'value',
    event: 'change'
34 35
  },
  data() {
36
    return {}
37 38 39
  },
  computed: {
    getSuppliers() {
40 41 42 43 44 45 46
      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 : ''
47
      })
48 49 50
      if (this.areaType == 1 || !this.companyType) return allSupplier
      return allSupplier.filter((item) => item.companyTypes.includes(this.companyType))
    }
51 52 53
  },
  methods: {
    change(val) {
54 55 56 57
      this.$emit('change', val)
    }
  }
}
58
</script>
59 60 61 62 63 64 65
<style scoped>
.iclass {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
</style>