<template>
  <el-table
    border
    :data="exportWarehouseList"
    style="">
    <el-table-column
      width="250px"
      label="始发地">
      <template  v-slot="{ row, column, $index }">
        <el-checkbox v-model="row.checked" @change="emit">{{ $l(row, 'title') }}</el-checkbox>
      </template>
    </el-table-column>
    <el-table-column
      prop="objectiveId"
      label="目的地">
      <template v-slot="{ row, column, $index }">
        <el-select v-model="row.objectiveIdArr" multiple placeholder="请选择" style="width:100%" @change="emit">
          <el-option
            v-for="item in importWarehouseList"
            :key="item.id"
            :label="$l(item, 'title')"
            :value="item.id">
          </el-option>
        </el-select>
      </template>
    </el-table-column>
  </el-table>
</template>

<script>
export default {
  name: 'CustomerLineTable',
  props: {
    warehouseList: Array,
    importCityList: Array,
    value: Array,
    zhongPaoType: {
      type: Number,
      default: 0
    }
  },
  data() {
    return {
      tableData: [],
      importWarehouseList: [],
      exportWarehouseList: []
    }
  },
  mounted() {
    this.initLines()
  },
  methods: {
    initLines(){
      this.warehouseList.forEach(item => {
        if(item.tradeType == 2 || item.tradeType == 3){
          let oldItem = this.value.find(it => it.departureId == item.id)
          this.exportWarehouseList.push(Object.assign({}, item, {
            checked: !!oldItem,
            objectiveIdArr: oldItem ? oldItem.objectiveIds.split(',').map(item => +item) : []
          }))
        }
        if(item.tradeType == 1 || item.tradeType == 3){
          this.importWarehouseList.push(Object.assign({}, item))
        }
      })
    },
    getValue(){
      let arr = []
      this.exportWarehouseList.forEach(item => {
        if(item.checked){
          arr.push({
            objectiveIds: item.objectiveIdArr.join(','),
            departureId: item.id,
            zhongPaoType: this.zhongPaoType
          })
        }
      })
      return arr
    },
    emit(){
      this.$emit('input', this.getValue())
    }
  },
  watch: {
    value() {
      // this.freshTableData()
    },
    warehouseList() {
      this.initLines()
    }
  }
}
</script>

<style scoped>

</style>
