<template>
  <div class="mymain-container">
    <!-- 经销商信息 -->
    <slot name="header">
      <el-row class="radio">
        <el-radio-group v-model="region">
          <el-radio label="0">指定经销商</el-radio>
          <el-radio
            v-if="!adminWebsit || !adminWebsit.websitNumber || (adminWebsit && adminWebsit.websitNumber === 'GZ')"
            label="1"
          >广州经销商</el-radio>
          <el-radio
            v-if="!adminWebsit || !adminWebsit.websitNumber || (adminWebsit && adminWebsit.websitNumber === 'FS')"
            label="2"
          >佛山经销商</el-radio>
        </el-radio-group>
        <template v-if="region == 0">
          <el-upload
            class="import-btn"
            :action="baseURL + 'student/import'"
            :http-request="handleImport"
            :file-list="importFileList"
            :show-file-list="false"
          >
            <el-button type="primary" size="mini">导入经销商</el-button>
          </el-upload>
          <el-button type="primary" size="mini" @click="hanleDownloadFiles">下载模板</el-button>
        </template>
      </el-row>
      <el-row v-if="region == 0" type="flex">
        <el-col :xs="24" :sm="12" :lg="14">
          <el-input v-model="keyword" placeholder="查找经销商" size="mini" />
        </el-col>
        <el-col
          :xs="24"
          :sm="1"
          :lg="1"
          style="margin-left: 10px"
        ><el-button size="mini" @click="submitScreenForm">确定</el-button></el-col>
        <el-col
          :xs="24"
          :sm="1"
          :lg="1"
          style="margin-left: 20px"
        ><el-button size="mini" @click="resetScreenForm">重置</el-button></el-col>
      </el-row>
    </slot>
    <el-row v-if="region == 0" :gutter="20">
      <el-col :span="10" :offset="0">
        <h5>未选经销商</h5>
        <el-divider direction="horizontal" content-position="left" />
        <div class="table">
          <el-table
            ref="multipleTable"
            :data="dataL"
            element-loading-text="Loading"
            border
            height="480px"
            fit
            highlight-current-row
            @select-all="handleSelectionAllChange"
            @selection-change="handleSelectionChange"
          >
            <el-table-column type="selection" width="55" :selectable="selectable" align="left" />
            <!--          <el-table-column-->
            <!--            prop="number"-->
            <!--            label="经销商编码"-->
            <!--            align="left"-->
            <!--          />-->
            <el-table-column
              prop="name"
              label="经销商名称"
              align="left"
            ><template slot-scope="scope">
              <CopyButton :copy-text="scope.row.name" />
              <span>{{ scope.row.name }}</span>
              <span class="red">{{ scope.row.number }}</span>
            </template>
            </el-table-column>
          </el-table>
        </div>
        <!-- 分页 -->
        <div style="margin: 20px 0">
          <el-pagination
            :current-page="currentPages"
            :page-sizes="[10, 20, 30, 50]"
            :page-size="10"
            layout="total, sizes, prev, pager, next, jumper"
            :total="clistTotal"
            @size-change="handleSizeChanges"
            @current-change="handleCurrentChanges"
          />
        </div>
      </el-col>
      <el-col :span="4" class="middle_box" :offset="0">
        <el-col> <el-button size="mini" :disabled="type == 2" @click="handleAllAdd">全部添加</el-button></el-col>
        <el-col> <el-button size="mini" :disabled="type == 2" @click="handleAdd">增加</el-button></el-col>
        <el-col> <el-button size="mini" :disabled="type == 1" @click="handleDelete">删除</el-button></el-col>
        <el-col> <el-button size="mini" :disabled="type == 1" @click="handleAllDelete">全部删除</el-button></el-col>
      </el-col>
      <el-col :span="10" :offset="0">
        <h5>已选经销商</h5>
        <el-divider direction="horizontal" content-position="left" />
        <div class="table">
          <el-table
            v-loading="listLoading"
            :data="custoList"
            element-loading-text="Loading"
            border
            height="480px"
            fit
            highlight-current-row
            stripe
            @select-all="handleSelectionAllChange2"
            @selection-change="handleSelectionChange2"
          >
            <el-table-column type="selection" width="55" align="left" />
            <!--          <el-table-column-->
            <!--            prop="customerNumber"-->
            <!--            label="经销商编码"-->
            <!--            align="left"-->
            <!--          />-->
            <el-table-column prop="customerName" label="经销商名称" align="left">
              <template slot-scope="scope">
                <CopyButton :copy-text="scope.row.customerName" />
                <span>{{ scope.row.customerName }}</span>
                <span class="red">{{ scope.row.customerNumber }}</span>
              </template>
            </el-table-column>
          </el-table>
        </div>
      </el-col>
    </el-row>
    <!-- 销售政策类型 ———— 限量-->
    <div v-if="policyType === 'LIMIT'">
      <div>
        <h4 style="display: inline-block; margin-right: 20px">经销商上限</h4>
        <el-divider />
      </div>
      <div style="margin: 20px 0">
        <el-upload
          class="import-btn cus-btn"
          :action="baseURL + 'student/import'"
          :http-request="handleImports"
          :file-list="importFileList"
          :show-file-list="false"
        >
          <el-button type="primary" size="mini">导入经销商</el-button>
        </el-upload>
        <el-button type="primary" size="mini" @click="hanleDownloadFilesPolicy">下载模板</el-button>
      </div>
      <el-row type="flex" style="margin: 20px 0">
        <el-col :xs="24" :sm="12" :lg="14">
          <el-input v-model="keyword2" placeholder="查找经销商" size="mini" />
        </el-col>
        <el-col
          :xs="24"
          :sm="1"
          :lg="1"
          style="margin-left: 10px"
        ><el-button size="mini" @click="submitScreenForm2">确定</el-button></el-col>
        <el-col
          :xs="24"
          :sm="1"
          :lg="1"
          style="margin-left: 20px"
        ><el-button size="mini" @click="resetScreenForm2">重置</el-button></el-col>
      </el-row>
      <div>
        <div class="table">
          <el-table
            v-loading="clistLoading"
            :data="list"
            element-loading-text="Loading"
            border
            fit
            highlight-current-row
            stripe
            @select-all="handleSelectionAllChange2"
            @selection-change="handleSelectionChange2"
          >
            <el-table-column type="index" label="序号" align="left" />
            <el-table-column prop="customerNumber" label="经销商编号" align="left" width="300">
              <template slot-scope="scope">
                <CopyButton :copy-text="scope.row.customerNumber" />
                <span>{{ scope.row.customerNumber }}</span>
              </template>
            </el-table-column>
            <el-table-column prop="customerName" label="经销商名称" align="left" width="300">
              <template slot-scope="scope">
                <CopyButton :copy-text="scope.row.customerName" />
                <span>{{ scope.row.customerName }}</span>
              </template>
            </el-table-column>
            <el-table-column prop="minBuyNum" label="最少起提数" align="left">
              <template slot-scope="scope">
                <span>{{ scope.row.minBuyNum }}</span>
              </template>
            </el-table-column>
            <el-table-column prop="maxBuyNum" label="最大提货组数" align="left">
              <template slot-scope="scope">
                <span>{{ scope.row.maxBuyNum }}</span>
              </template>
            </el-table-column>
            <el-table-column prop="orderNums" label="已下订单数" align="left">
              <template slot-scope="scope">
                <span>{{ scope.row.orderNums }}</span>
              </template>
            </el-table-column>
            <el-table-column prop="examineOrderNums" label="已审订单数" align="left">
              <template slot-scope="scope">
                <span>{{ scope.row.examineOrderNums }}</span>
              </template>
            </el-table-column>
          </el-table>
        </div>
        <!-- 分页 -->
        <div style="margin: 20px 0">
          <el-pagination
            :current-page="policyList.currentPages"
            :page-sizes="[10, 20, 30, 50]"
            :page-size="10"
            layout="total, sizes, prev, pager, next, jumper"
            :total="cTotal"
            @size-change="handleSizeChanges2"
            @current-change="handleCurrentChanges2"
          />
        </div>
      </div>
    </div>
    <!-- 销售政策类型 ————  配提 综合 -->
    <div v-else>
      <div>
        <h4 style="display: inline-block; margin-right: 20px">经销商上限</h4>
        <el-divider />
      </div>
      <div style="margin: 20px 0">
        <el-upload
          class="import-btn cus-btn"
          :action="baseURL + 'student/import'"
          :http-request="handleImports"
          :file-list="importFileList"
          :show-file-list="false"
        >
          <el-button type="primary" size="mini">导入经销商</el-button>
        </el-upload>
        <el-button type="primary" size="mini" @click="hanleDownloadFilesPolicy">下载模板</el-button>
      </div>
      <el-row style="margin: 20px 0">
        <el-col :span="12">
          <el-input v-model="keyword2" placeholder="查找经销商" size="mini" />
        </el-col>
        <el-col :span="10" style="margin-left: 20px">
          <el-button size="mini" @click="submitScreenForm2">确定</el-button>
          <el-button size="mini" @click="resetScreenForm2">重置</el-button>
          <template v-if="batch">
            <el-button v-if="list.length" type="primary" size="mini" @click="handelBatchData">批量修改上限</el-button>
            <el-button v-if="list.length" type="primary" size="mini" @click="handelBatchData2">批量修改组数</el-button>
          </template>
        </el-col>
      </el-row>

      <div style="font-size: 14px">
        注：经销商最大提货套数仅与经销商相关联，与机型没有限制关联；机型订货上线仅对机型做限制
      </div>
      <div>
        <div class="table">
          <el-table
            v-loading="clistLoading"
            :data="list"
            element-loading-text="Loading"
            border
            fit
            highlight-current-row
            stripe
            @select-all="handleSelectionAllChange2"
            @selection-change="handleSelectionChange2"
          >
            <el-table-column type="index" width="50" />
            <el-table-column
              prop="customerNumber"
              label="经销商编号
"
              align="left"
              width="300"
            >
              <template slot-scope="scope">
                <CopyButton :copy-text="scope.row.customerNumber" />
                <span>{{ scope.row.customerNumber }}</span>
              </template>
            </el-table-column>
            <el-table-column prop="customerName" label="经销商名称" align="left" width="300">
              <template slot-scope="scope">
                <CopyButton :copy-text="scope.row.customerName" />
                <span>{{ scope.row.customerName }}</span>
              </template>
            </el-table-column>

            <el-table-column prop="maxBuyNum" label="最大提货套数" align="left">
              <template slot-scope="scope">
                {{ scope.row.maxBuyNum }}
              </template>
            </el-table-column>
            <el-table-column prop="materialName" label="物料名称" align="left">
              <template slot-scope="scope">
                {{ scope.row.materialName }}
              </template>
            </el-table-column>
            <el-table-column prop="materialNumber" label="物料编号" align="left">
              <template slot-scope="scope">
                {{ scope.row.materialNumber }}
              </template>
            </el-table-column>
            <el-table-column prop="limitQty" label="订货上限" align="left">
              <template slot-scope="scope">
                {{ scope.row.limitQty }}
              </template>
            </el-table-column>
            <el-table-column prop="orderNums" label="已下订单数" align="left">
              <template slot-scope="scope">
                {{ scope.row.orderNums }}
              </template>
            </el-table-column>
            <el-table-column prop="examineOrderNums" label="已审订单数" align="left">
              <template slot-scope="scope">
                {{ scope.row.examineOrderNums }}
              </template>
            </el-table-column>
          </el-table>
        </div>
        <!-- 分页 -->
        <div style="margin: 20px 0">
          <el-pagination
            :current-page="policyList.currentPages"
            :page-sizes="[10, 20, 30, 50]"
            :page-size="10"
            layout="total, sizes, prev, pager, next, jumper"
            :total="cTotal"
            @size-change="handleSizeChanges2"
            @current-change="handleCurrentChanges2"
          />
        </div>
      </div>
    </div>
    <!-- 操作按钮 -->
    <slot name="footer">
      <el-row style="margin: 20px 0 0 0">
        <el-button type="primary" size="mini" @click="handleSave">
          {{ comCode ? '保存' : '提交审核' }}
        </el-button>
        <el-button type="primary" size="mini" @click="handleReset">重置</el-button>
      </el-row>
    </slot>
    <el-dialog
      title="批量修改"
      :visible.sync="visible"
      width="50%"
      :append-to-body="true"
      :close-on-click-modal="false"
      @close="handleDialogVisible"
    >
      <el-row :gutter="20">
        <el-col :span="24" style="display: flex; align-items: center; margin-bottom: 20px">
          <el-col :span="4" :offset="0"> 购买量上限 </el-col>
          <el-col :span="8" :offset="0"> <el-input v-model="limitQty" size="mini" /></el-col>
        </el-col>
        <el-col :span="24" :offset="0" style="margin-bottom: 20px">
          <div style="display: flex">
            <el-input v-model="limitQtyKeyWord" placeholder="输入关键字搜索" size="mini" />
            <el-button style="margin-left: 20px" type="primary" size="mini" @click="handelBatchData('search')">查询</el-button>
            <el-button size="mini" @click="onReset">重置</el-button>
          </div>
        </el-col>
      </el-row>

      <zj-table
        :table-attributes="tableAttributes"
        :table-events="tableEvents"
        :is-drop="true"
        :columns="columns"
        :table-data="tableData"
      />
      <div style="margin: 20px 0">
        <el-pagination
          :current-page="batchCurrentPages"
          :page-sizes="[10, 20, 30, 50]"
          :page-size="10"
          layout="total, sizes, prev, pager, next, jumper"
          :total="batchTotal"
          @size-change="handleBatchSizeChanges"
          @current-change="handleBatchCurrentChanges"
        />
      </div>
      <span slot="footer">
        <el-button @click="handleDialogVisible">取消</el-button>
        <el-button type="primary" @click="onSubmit('limit')">确定</el-button>
      </span>
    </el-dialog>
    <el-dialog
      title="批量修改"
      :visible.sync="maxBuyNumVisible"
      width="50%"
      :append-to-body="true"
      :close-on-click-modal="false"
      @close="handleDialogVisible"
    >
      <el-row :gutter="20">
        <el-col :span="24" style="display: flex; align-items: cente; margin-bottom: 20px">
          <el-col :span="5" :offset="0"> 最大提货组数 </el-col>
          <el-col :span="8" :offset="0"> <el-input v-model="maxBuyNum" size="mini" /></el-col>
        </el-col>
        <el-col :span="24" :offset="0" style="margin-bottom: 20px">
          <div style="display: flex">
            <el-input v-model="maxBuyNumKeyWord" placeholder="输入关键字搜索" size="mini" clearable />
            <el-button style="margin-left: 20px" type="primary" size="mini" @click="handelBatchData('search')">查询</el-button>
            <el-button size="mini" @click="onReset">重置</el-button>
          </div>
        </el-col>
      </el-row>

      <zj-table
        :table-attributes="tableAttributes"
        :table-events="tableEvents"
        :is-drop="true"
        :columns="columns"
        :table-data="tableData"
      />
      <div style="margin: 20px 0">
        <el-pagination
          :current-page="batchCurrentPages"
          :page-sizes="[10, 20, 30, 50]"
          :page-size="10"
          layout="total, sizes, prev, pager, next, jumper"
          :total="batchTotal"
          @size-change="handleBatchSizeChanges"
          @current-change="handleBatchCurrentChanges"
        />
      </div>
      <span slot="footer">
        <el-button @click="handleDialogVisible">取消</el-button>
        <el-button type="primary" @click="onSubmit">确定</el-button>
      </span>
    </el-dialog>
  </div>
</template>

<script>
import {
  deleteCondition,
  deleteMaterialPolicy,
  getConditionList,
  getCrList,
  getCustomerList,
  getPolicyList,
  updateCustomerCountBatch,
  updateLimitBatchupdate
} from '@/api/policy_list'
import { downloadFiles, handleImport } from '@/utils/util'
import ImageUpload from '@/components/Common/image-upload.vue'
import Minxin from '@/mixin'

export default {
  name: 'Examine',
  components: {
    // eslint-disable-next-line vue/no-unused-components
    ImageUpload
  },
  mixins: [Minxin],
  // eslint-disable-next-line vue/require-prop-types
  props: ['code', 'yregion', 'policyType', 'batch'],
  data() {
    return {
      keyword: '',
      keyword2: '',
      region: '0',
      baseURL: '',
      dcurrentPage: 1,
      dpageSize: 10,
      dlistTotal: 0,
      currentPages: 1, // 当前页码
      pageSizes: 10, // 每页数量
      input: '',
      remark: '',
      fileList: [],
      listLoading: false,
      imageUrl: '',
      dataList: [],
      examineStatus: 'OK',
      options: {},
      value: '',
      detail: {},
      srcList: [],
      screenForm: {
        code: '',
        createBy: '',
        endCreateTime: '',
        endTime1: '',
        endTime2: '',
        examineBy: '',
        remark: '',
        startCreateTime: '',
        startTime1: '',
        startTime2: '',
        status: '',
        title: '',
        type: ''
      },
      conditionList: [],
      custoList: [],
      isEdit: 1,
      cid: '',
      cpolicyId: '',
      dataL: [],
      clistTotal: 0,
      clistTotals: 0,
      type: 1,
      importFileList: [],
      leftData: [],
      rightData: [],
      typeOptions: [
        {
          value: 'PROVISION',
          label: '配提'
        },
        {
          value: 'LIMIT',
          label: '限量'
        }
      ],
      comCode: '',
      policyList: {
        pageNum: 1,
        pageSize: 10,
        policyId: '',
        keyword: '',
        currentPages: 1
      },
      list: [],
      cTotal: 1,
      clistLoading: false,
      visible: false,
      maxBuyNumVisible: false,
      tableData: [],
      tableAttributes: {
        selectColumn: true
      },
      tableEvents: {
        'selection-change': this.selectionChange
      },
      limitQty: 0,
      maxBuyNum: 0,
      limitQtyKeyWord: '',
      maxBuyNumKeyWord: '',
      selectedData: [],
      batchCurrentPages: 1,
      batchPageSizes: 10,
      batchTotal: 0
    }
  },
  computed: {
    adminWebsit() {
      return JSON.parse(localStorage.getItem('supply_user')).adminWebsit
    },
    columns() {
      return [
        {
          columnAttributes: {
            label: '经销商编码',
            prop: 'customerNumber'
          }
        },
        {
          columnAttributes: {
            label: '经销商名称',
            prop: 'customerName'
          }
        }
      ]
    }
  },
  watch: {
    dataL: (val, oval) => {
      console.log(val, oval)
    }
  },
  created() {
    this.comCode = this.code
    if (this.comCode) {
      if (this.yregion || this.yregion == 0) {
        this.region = '' + this.yregion
      }

      this.getCond()
      this.getPolicyList()
    }
  },

  methods: {
    getList() {
      this.getCrList()
    },
    onChange() {
      this.getCrList()
    },
    getCrList() {
      const customerParams = {
        pageNum: this.currentPages,
        pageSize: this.pageSizes,
        keyword: this.keyword,
        region: '',
        websitNumber: this.region == '0' && this.adminWebsit ? this.adminWebsit.websitNumber : ''
      }
      // 获取经销商列表
      getCrList(customerParams).then(res => {
        for (let j = 0; j < this.custoList.length; j++) {
          for (let i = 0; i < res.data.records.length; i++) {
            if (res.data.records[i].id === this.custoList[j].customerId) {
              res.data.records[i].disabled = true
            }
          }
        }
        this.dataL = res.data.records
        for (let k = 0; k < this.dataL.length; k++) {
          (this.dataL[k].customerId = this.dataL[k].id),
          (this.dataL[k].customerName = this.dataL[k].name),
          (this.dataL[k].customerNumber = this.dataL[k].number)
        }
        this.clistTotal = res.data.total
      })
    },
    getPolicyList() {
      this.clistLoading = true
      getPolicyList({
        pageNum: this.policyList.currentPages,
        pageSize: this.policyList.pageSize,
        policyId: this.comCode || this.code,
        keyword: this.keyword2
      }).then(res => {
        this.list = res.data.records
        console.log(this.list, '785787')
        this.cTotal = res.data.total
        this.clistLoading = false
      })
    },
    // 更改每页数量
    handleSizeChanges2(val) {
      this.policyList.pageSizes = val
      this.policyList.currentPages = 1
      this.getPolicyList()
    },
    // 更改当前页
    handleCurrentChanges2(val) {
      this.policyList.currentPages = val
      this.getPolicyList()
    },
    // 更改每页数量
    handleSizeChanges(val) {
      this.pageSizes = val
      this.currentPages = 1
      this.getCrList()
    },
    // 更改当前页
    handleCurrentChanges(val) {
      this.currentPages = val
      this.getCrList()
    },
    // 提交筛选表单
    submitScreenForm() {
      this.currentPages = 1
      this.getCrList()
    },
    // 重置筛选表单
    resetScreenForm() {
      this.keyword = ''
      this.currentPages = 1
      this.getCrList()
    },
    // 提交筛选表单
    submitScreenForm2() {
      this.policyList.currentPages = 1
      this.getPolicyList()
    },
    // 重置筛选表单
    resetScreenForm2() {
      this.keyword2 = ''
      this.policyList.currentPages = 1
      this.getPolicyList()
    },
    // 去掉相同数据
    resArr(arr1, arr2) {
      return arr1.filter(v => arr2.every(val => val.id !== v.id))
    },
    // 导入经销商模板
    async handleImport(param) {
      this.importLoading = true
      const file = param.file
      const formData = new FormData()
      formData.append('file', file)
      // formData.append('policyId', this.searchForm.code)
      // formData.append("mainId", this.searchForm.mainId);
      const result = await handleImport('policy/importCustomer', formData)
      console.log(result)
      this.importLoading = false
      this.importFileList = []
      if (result.code === 200) {
        await this.$alert(result.message, '导入成功', {
          confirmButtonText: '确定'
        })

        for (let i = 0; i < result.data.length; i++) {
          result.data[i].customerNumber = result.data[i].number
          result.data[i].customerName = result.data[i].name
          result.data[i].customerId = result.data[i].id
        }
        if (this.custoList.length) {
          this.custoList = [...this.custoList, ...this.resArr(this.custoList, result.data)]
        } else {
          this.custoList = result.data
        }
      } else {
        await this.$alert(result.message, '导入失败', {
          confirmButtonText: '确定'
        })
      }
    },
    async handleImports(param) {
      this.importLoading = true
      const file = param.file
      const formData = new FormData()
      formData.append('file', file)

      formData.append('policyId', this.comCode || this.code)
      // formData.append("mainId", this.searchForm.mainId);
      const result = await handleImport('policy/limit/import', formData)
      console.log(result)
      this.importLoading = false
      this.importFileList = []
      if (result.code === 200) {
        await this.$alert(result.message, '导入成功', {
          confirmButtonText: '确定'
        })
        this.list = result.data
        this.getPolicyList()
      } else {
        await this.$alert(result.message, '导入失败', {
          confirmButtonText: '确定'
        })
      }
    },
    // 下载经销商模板
    hanleDownloadFiles() {
      downloadFiles('policy/downloadCustomer')
    },
    hanleDownloadFilesPolicy() {
      downloadFiles('policy/limit/download')
    },
    getCommonApi(row) {
      (this.isEdit = 2), (this.cid = row.id), (this.cpolicyId = row.policyId)
      console.log(this.cpolicyId, this.comCode, this.cpolicyId === this.comCode)
    },
    getCond() {
      this.listLoading = true
      const custoParams = {
        pageNum: 1,
        pageSize: -1,
        policyId: this.comCode || this.code
      }
      getCustomerList(custoParams).then(res => {
        this.custoList = res.data.records
        console.log(this.custoList, '已选的')
        this.clistTotals = res.data.total
        this.listLoading = false
        // this.getCrList()
      })
    },
    handleCondition(id, index) {
      deleteCondition({ id }).then(res => {
        this.getConditionList()
        this.$successMsg('删除成功')
      })
    },
    getConditionList() {
      const condParams = {
        policyId: this.comCode
      }
      getConditionList(condParams).then(res => {
        this.conditionList = res.data
      })
    },
    // 删除
    hanleDelete(id) {
      const params = { policyMaterialId: id }
      deleteMaterialPolicy(params).then(res => {
        this.$successMsg('删除成功')
      })
    },
    /**
     * 根据条件禁用行复选框
     * 函数返回值为false则禁用选择(反之亦然)
     * @param {Object} row - 行数据
     * @param {String} index - 索引值
     * @return Boolean
     */
    selectable: function(row, index) {
      // row.disabled == undefined 才能被选中
      if (row.disabled === undefined || row.disabled === false) {
        return true
      } else {
        return false
      }
      // 函数必须有返回值且是布尔值
      // 页面刷新后该函数会执行 N 次进行判断(N 为表格行数)
      // 如果没有返回值则默认返回false(全部无法选中)
    },
    handleSelectionAllChange(e) {
      this.leftData = e
      this.type = 1
    },
    handleSelectionChange(e) {
      this.leftData = e
      this.type = 1
    },
    handleSelectionAllChange2(e) {
      this.rightData = e
      this.type = 2
    },
    handleSelectionChange2(e) {
      this.rightData = e
      this.type = 2
    },
    handleLeft(e) {
      this.type = 1
    },
    handleRight(e) {
      this.type = 2
    },
    handleAllAdd() {
      if (this.type === 1 && this.leftData.length) {
        for (let i = 0; i < this.dataL.length; i++) {
          for (let j = 0; j < this.leftData.length; j++) {
            if (this.dataL[i].id === this.leftData[j].id) {
              this.dataL[i].disabled = true
            }
          }
        }
        this.custoList = [...this.custoList, ...this.leftData]
        this.$refs.multipleTable.clearSelection()
      } else {
        this.$errorMsg('请选择要添加的经销商')
      }
    },
    handleAllDelete() {
      if (this.type === 2 && this.rightData.length) {
        for (let i = 0; i < this.dataL.length; i++) {
          for (let j = 0; j < this.rightData.length; j++) {
            if (this.dataL[i].id === this.rightData[j].customerId) {
              this.$set(this.dataL[i], 'disabled', false)
              // this.dataL[i].disabled = false
            }
          }
        }
        this.custoList = this.resArr(this.custoList, this.rightData)
        this.$refs.multipleTable.clearSelection()
      } else {
        this.$errorMsg('请选择要删除的经销商')
      }
    },
    handleAdd() {
      if (this.type === 1 && this.leftData.length) {
        for (let i = 0; i < this.dataL.length; i++) {
          for (let j = 0; j < this.leftData.length; j++) {
            if (this.dataL[i].id === this.leftData[j].id) {
              this.dataL[i].disabled = true
            }
          }
        }
        this.custoList = [...this.custoList, ...this.leftData]
        this.leftData = []
        this.$refs.multipleTable.clearSelection()
      } else {
        this.$errorMsg('请选择要添加的经销商')
      }
    },
    handleDelete() {
      if (this.type === 2 && this.rightData.length) {
        for (let i = 0; i < this.dataL.length; i++) {
          for (let j = 0; j < this.rightData.length; j++) {
            if (this.dataL[i].id === this.rightData[j].customerId) {
              this.$set(this.dataL[i], 'disabled', false)
              // this.dataL[i].disabled = false
            }
          }
        }
        this.custoList = this.resArr(this.custoList, this.rightData)
        this.$refs.multipleTable.clearSelection()
      } else {
        this.$errorMsg('请选择要删除的经销商')
      }
    },
    // 提交数据
    async handleSave() {
      this.$emit('handlEditPolicy', this.custoList, this.region)
    },
    handleReset() {
      this.dataR = this.rightData = []
      this.keyword = ''
      this.$emit('handleReset')
    },
    selectionChange(data) {
      this.selectedData = data
    },
    handelBatchData(search) {
      if (search) {
        this.batchCurrentPages = 1
      }
      getPolicyList({
        pageNum: this.batchCurrentPages,
        pageSize: this.batchPageSizes,
        policyId: this.comCode || this.code,
        keyword: this.limitQtyKeyWord
      }).then(res => {
        this.tableData = res.data.records
        this.batchTotal = res.data.total
      })
      this.visible = true
    },
    handelBatchData2() {
      this.maxBuyNumVisible = true
    },
    handleDialogVisible() {
      this.visible = false
      this.maxBuyNumVisible = false
      this.batchCurrentPages = 1
      this.batchPageSizes = 10
      this.limitQty = 0
      this.maxBuyNum = 0
      this.limitQtyKeyWord = ''
      this.maxBuyNumKeyWord = ''
    },
    onSubmit(type) {
      if (!this.selectedData.length) {
        this.$errorMsg('不能为空,请选择')
        return
      }
      if (this.limitQty <= 0 || this.maxBuyNum <= 0) {
        this.$errorMsg(type ? '购买量上限不能小于0' : '最大提货组数不能小于0')
        return
      }
      const customerIds = this.selectedData
        .map(k => {
          return k.customerId
        })
        .join('')
      const params = {
        customerIds,
        policyId: this.comCode || this.code
      }
      if (type) {
        params.limitQty = this.limitQty
      } else {
        params.maxBuyNum = this.maxBuyNum
      }
      updateLimitBatchupdate(params).then(res => {
        this.handleDialogVisible()
        this.$successMsg('批量修改成功')
      })
    },
    handleBatchSizeChanges(val) {
      this.batchCurrentPages = 1
      this.batchPageSizes = val
      this.handelBatchData()
    },
    onReset() {
      this.handleDialogVisible()
      this.handelBatchData()
    },
    handleBatchCurrentChanges(val) {
      this.batchCurrentPages = val
      this.handelBatchData()
    }
  }
}
</script>

<style lang="scss" scoped>
.radio {
  display: flex;
  align-items: center;
  margin: 0 0 20px 0;
}
.import-btn {
  margin: 0 20px;
}
.cus-btn {
  margin: 0;
}
.value {
  ::v-deep .el-input__prefix {
    display: none;
  }
}
.descriptions {
  // border: #EBEEF5;
  border: 1px solid #ebeef5;
  border-bottom: none;
  .el-row {
    height: 40px;
    line-height: 40px;
  }
  .el-col:nth-child(odd) {
    background-color: #ebeef5;
  }
  .el-col {
    padding: 0 15px;
    height: 100%;
    border-bottom: 1px solid #ebeef5;
  }
}
.el-divider--horizontal {
  margin: 20px 0;
}
.col {
  height: 100px;
}

.import-btn {
  margin-right: 10px;
  display: inline-block;
}
::v-deep .el-input__icon .el-icon-time {
  display: none;
}
.middle_box {
  margin-top: 80px;
  text-align: center;
  height: 430px;
  display: flex;
  flex-direction: column;
  align-content: center;
  justify-content: space-between;
  align-items: center;
}
.img-box {
  height: 150px;
  display: flex;
  align-items: center;
}
.red {
  color: #f00;
}
</style>
