<template>
  <div class="app-container">

    <!-- 搜索工作栏 -->
    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
      <el-form-item label="客户名称" prop="customerId" >
        <el-input v-model="queryParams.customerId" placeholder="请选择客户id" clearable size="small">
        </el-input>
      </el-form-item>
      <el-form-item label="联系电话" prop="type">
        <el-input v-model="queryParams.defaultContactPhone" placeholder="请输入电话" clearable size="small">
        </el-input>
      </el-form-item>
      <el-form-item label="佣金类型" prop="transportId">
        <el-select v-model="queryParams.type"  clearable size="small">
          <el-option v-for="dict in this.getDictDatas(DICT_TYPE.COMMISSION_TYPE)"
                       :key="dict.value" :label="dict.label" :value="dict.value"/>
        </el-select>
      </el-form-item>
      <el-form-item label="运输方式" prop="departureId">
        <el-select v-model="queryParams.departureId"  clearable size="small">
          <el-option v-for="dict in this.getDictDatas(DICT_TYPE.ECW_TRANSPORT_TYPE)"
                     :key="dict.value" :label="dict.label" :value="dict.value"/>
        </el-select>
      </el-form-item>
      <el-form-item label="始发地" prop="objectiveId">
        <el-select v-model="queryParams.objectiveId"  clearable size="small">
          <el-option v-for="dict in exportCityList"
                     :key="dict.id" :label="dict.titleZh" :value="dict.id"/>
        </el-select>
      </el-form-item>
      <el-form-item label="目的地" prop="customsType">
        <el-select v-model="queryParams.customsType"  clearable size="small">
          <el-option v-for="dict in importCityList"
                     :key="dict.id" :label="dict.titleZh" :value="dict.id"/>
        </el-select>
      </el-form-item>
      <el-form-item label="报关方式" prop="approval">
        <el-select v-model="queryParams.approval" clearable size="small">
          <el-option v-for="dict in this.getDictDatas(DICT_TYPE.SHIPPING_DECLARATION_TYPE)"
                       :key="dict.value" :label="dict.label" :value="dict.value"/>
        </el-select>
      </el-form-item>
      <el-form-item label="备案" prop="darkReturnType">
        <el-select v-model="queryParams.darkReturnType"  clearable size="small">
          <el-option v-for="dict in this.getDictDatas(DICT_TYPE.COMMISSION_PRODUCT_APPROVAL)"
                       :key="dict.value" :label="dict.label" :value="dict.value"/>
        </el-select>
      </el-form-item>
        <div style="width:100%;display: flex;justify-content: space-between;margin-bottom: 50px;">
          <div style="flex: 1">
            <el-button type="primary" icon="el-icon-search" @click="handleQuery">搜索</el-button>
            <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button></div>
          <div style="flex: 1; text-align: right;">
            <router-link :to="'/customerCommissionInfo/'+ 0 ">
              <el-button>佣金设置</el-button>
            </router-link>
          </div>
        </div>
    </el-form>

    <!-- 操作工具栏 -->
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
      </el-col>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
    </el-row>

    <!-- 列表 -->
    <el-table v-loading="loading" :data="list">
      <el-table-column
        type="selection"
        width="55">
      </el-table-column>
      <el-table-column label="佣金编码" align="center" prop="customerId" />
      <el-table-column label="客户名称" align="center" prop="customerName" show-overflow-tooltip >
      </el-table-column>
      <el-table-column label="联系电话" align="center" prop="transportId" show-overflow-tooltip >
        <template slot-scope="scope">
         <div>{{scope.row.defaultContactPhone}}</div>
        </template>
      </el-table-column>
      <el-table-column label="佣金类型" type="" align="center" prop="type">
        <template slot-scope="scope">
          <dict-tag :type="DICT_TYPE.COMMISSION_TYPE" :value="scope.row.type" />
        </template>
      </el-table-column>
      <el-table-column label="暗佣返佣类型" align="center" prop="darkReturnType">
        <template slot-scope="scope">
          <dict-tag :type="DICT_TYPE.COMMISSION_DARK_TYPE" :value="scope.row.type" />
        </template>
      </el-table-column>
      <el-table-column label="运输方式" align="center" prop="transportId">
        <template slot-scope="scope">
          <dict-tag :type="DICT_TYPE.ECW_TRANSPORT_TYPE" :value="scope.row.transportId" />
        </template>
      </el-table-column>
      <el-table-column label="始发地/目的地 " align="center" prop="departureId" show-overflow-tooltip :formatter="originDestination">
      </el-table-column>
      <el-table-column label="报关方式" align="center" prop="customsType" show-overflow-tooltip>
        <template slot-scope="scope">
          <dict-tag :type="DICT_TYPE.SHIPPING_DECLARATION_TYPE" :value="scope.row.customsType" />
        </template>
      </el-table-column>
      <el-table-column label="备案" align="center" prop="approval">
        <template slot-scope="scope">
          <dict-tag :type="DICT_TYPE.COMMISSION_PRODUCT_APPROVAL" :value="scope.row.approval" />
        </template>
      </el-table-column>
      <el-table-column label="未付佣金" align="center" prop="darkReturnType">
        <template slot-scope="scope">
<!--          <dict-tag :type="DICT_TYPE.COMMISSION_DARK_TYPE" :value="scope.row.darkReturnType" />-->
        </template>
      </el-table-column>
      <el-table-column label="已付佣金" align="center" prop="darkReturnType">
        <template slot-scope="scope">
<!--          <dict-tag :type="DICT_TYPE.COMMISSION_DARK_TYPE" :value="scope.row.darkReturnType" />-->
        </template>
      </el-table-column>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200px">
        <template slot-scope="scope">
          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">编辑</el-button>
          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button>
        </template>
      </el-table-column>
    </el-table>
    <!-- 分页组件 -->
    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNo" :limit.sync="queryParams.pageSize"
                @pagination="getList"/>

  </div>
</template>

<script>
import {deleteCustomerCommission, getCustomerCommissionPage, exportCustomerCommissionExcel } from "@/api/ecw/customerCommission";
import {DICT_TYPE, getDictDatas} from "@/utils/dict";
import {getTradeCityList} from "@/api/ecw/region";

export default {
  name: "CustomerCommission",
  components: {
  },
  data() {
    return {
      DICT_TYPE,
      getDictDatas,
      tradeCityList:[],
      // 遮罩层
      loading: true,
      // 导出遮罩层
      exportLoading: false,
      // 显示搜索条件
      showSearch: true,
      // 总条数
      total: 0,
      // 客户佣金类型列表
      list: [],
      // 弹出层标题
      title: "",
      // 是否显示弹出层
      open: false,
      // 查询参数
      queryParams: {
        pageNo: 1,
        pageSize: 10,
        customerId: null,//客户id
        type: null,//	佣金类型
        transportId: null,//	运输方式
        departureId: null,//始发地id
        objectiveId: null,//目的地id
        customsType: null,//报关类别
        approval: null,//产品备案
        darkReturnType: null,	//暗佣类型 1产品2达标
        defaultContactPhone:null,//主联系电话
      },
      // 表单参数
      form: {},
      // 表单校验
      rules: {
        customerId: [{ required: true, message: "客户id不能为空", trigger: "change" }],
        type: [{ required: true, message: "佣金类型不能为空", trigger: "change" }],
        darkReturnType: [{ required: true, message: "暗佣类型 1产品2达标不能为空", trigger: "change" }],
      }
    };
  },
  computed:{
    //目的地
    importCityList(){
      return this.tradeCityList.filter(item => item.type == 1)
    },
    //始发地
    exportCityList(){
      return this.tradeCityList.filter(item => item.type == 2)
    },
  },
  created() {
    this.getList();
    getTradeCityList().then(res => {
      this.tradeCityList = res.data
    })
  },
  methods: {
    /** 查询列表 */
    getList() {
      this.loading = true;
      // 处理查询参数
      let params = {...this.queryParams};
      // 执行查询
      getCustomerCommissionPage(params).then(response => {
        this.list = response.data.list;
        this.total = response.data.total;
        this.loading = false;
      });
    },
    /** 搜索按钮操作 */
    handleQuery() {
      this.queryParams.pageNo = 1;
      this.getList();
    },
    /** 重置按钮操作 */
    resetQuery() {
      this.resetForm("queryForm");
      this.handleQuery();
    },
    /** 修改按钮操作 */
    handleUpdate(row) {
      const id = row.customerId;
      this.$router.push(`/customerCommissionInfo/${id}`)
    },
    /** 删除按钮操作 */
    handleDelete(row) {
      const id = row.id;
      this.$modal.confirm('是否确认删除客户佣金类型编号为"' + id + '"的数据项?').then(function() {
          return deleteCustomerCommission(id);
        }).then(() => {
          this.getList();
          this.$modal.msgSuccess("删除成功");
        }).catch(() => {});
    },
    originDestination(row){
      let index1 = this.exportCityList.findIndex(item =>item.id == row.departureId);
      let index2 = this.importCityList.findIndex(item => item.id == row.objectiveId);
      let flag = `${index1 === -1 ? '' : this.exportCityList[index1].titleZh}/${index2 === -1 ? '' : this.importCityList[index2].titleZh}`;
       return flag
    },
  }
};
</script>
