<template>
  <basic-container v-loading="loadingObj.pageLoading">
    <div class="avue-crud">
      <div v-h5uShow="!search">
        <!-- 查询模块 -->
        <el-form :inline="true" :model="query" class="header_search">
          <el-form-item label="配送车次:">
            <el-input v-model="query.trainNumber" placeholder="请输入配送车次"></el-input>
          </el-form-item>
          <el-form-item label="客户名称:">
            <el-input v-model="query.clineName" placeholder="请输入客户名称"></el-input>
          </el-form-item>
          <el-form-item label="配送日期:" class="el-times">
            <el-date-picker v-model="query.taskTime" type="date" placeholder="选择日期">
            </el-date-picker>
          </el-form-item>
          <el-form-item label="配送种类:">
            <el-select v-model="query.deliveryKind" placeholder="请选择业务类型">
              <el-option :key="'1'" :value="'自主配送'">自主配送</el-option>
              <el-option :key="'2'" :value="'外协配送'">外协配送</el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="配送司机:">
            <el-select
              v-model="query.driverName"
              filterable
              placeholder="请输入司机名称"
              :loading="loading"
            >
              <el-option
                v-for="item in driverData"
                :key="item.dictKey"
                :label="item.dictValue"
                :value="item.dictValue"
              >
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="配送车辆:">
            <el-select
              v-model="query.vehicleName"
              filterable
              placeholder="请输入司机名称"
              :loading="loading"
            >
              <el-option
                v-for="item in vehicleData"
                :key="item.dictKey"
                :label="item.dictValue"
                :value="item.dictValue"
              >
              </el-option>
            </el-select>
          </el-form-item>
          <!-- 查询按钮 -->
          <el-form-item class="el-btn">
            <el-button type="primary" icon="el-icon-search" @click="searchChange">搜 索</el-button>
            <el-button icon="el-icon-delete" @click="searchReset">清 空</el-button>
          </el-form-item>
        </el-form>
      </div>

      <div class="flex-c-c">
        <el-tabs class="flex1" v-model="activeName" @tab-click="handleClick">
          <el-tab-pane label="全部列表" name="first"> </el-tab-pane>
          <el-tab-pane label="待配送" name="second"> </el-tab-pane>
          <el-tab-pane label="配送中" name="third"> </el-tab-pane>
          <el-tab-pane label="已完成" name="fourth"> </el-tab-pane>
        </el-tabs>

        <div class="order-info ml10">
          <ul>
            <li>
              <img src="../../../../public/img/bg/Delivery.png" /> 市配总车次{{
                statistics.vehiclesNub
              }}
            </li>
            <li>
              <img src="../../../../public/img/bg/package.png" />总包件数{{
                statistics.marketTotal
              }}
            </li>
            <li>
              <img src="../../../../public/img/bg/inventory.png" />总库存品数{{
                statistics.minventoryTotal
              }}
            </li>
            <li>
              <img src="../../../../public/img/bg/distribution.png" />市配订单总数{{
                statistics.marketNub
              }}
            </li>
          </ul>
        </div>
      </div>

      <div class="avue-crud__header">
        <!-- 头部左侧按钮模块 -->
        <div class="avue-crud__left" style="margin-top: 20px">
          <el-button type="primary" icon="el-icon-plus" @click="printBatchOrder"
            >批量打印</el-button
          >
          <!--            <el-button type="danger" icon="el-icon-delete" @click="handleDelete" plain>删 除</el-button>-->
          <el-button type="danger" icon="el-icon-download" @click="handleExportInfo" plain
            >导出
          </el-button>
        </div>
        <!-- 头部右侧按钮模块 -->
        <div class="avue-crud__right">
          <el-button icon="el-icon-refresh" @click="searchChange" circle></el-button>
          <el-button icon="Operation" @click="showdrawer(true)" circle></el-button>
          <el-button icon="el-icon-search" @click="searchHide" circle></el-button>
        </div>
      </div>
      <tablecmt
        ref="tableNode"
        :columnList="columnList"
        :tableData="data"
        :loading="loading"
        @inputTxt="inputsc"
        @timeCheck="timesc"
        @btnCheck="btnsc"
        @selectCheck="selectsc"
        @selection="selectionsc"
      >
        <template #default="slotProps">
          <el-text size="small" @click="printOrder(slotProps.scope.row)">打 印</el-text>
          <el-text size="small" @click="editsolt(slotProps.scope)">查 看</el-text>
          <el-text size="small" @click="editmap(slotProps.scope)">地 图</el-text>
          <!--                  <el-text size="small" v-if="slotProps.scope.row.deliveryStatusName !== '已完成' ||-->
          <!--              slotProps.scope.row.deliveryStatus !== '3'-->

          <el-text
            size="small"
            v-if="
              slotProps.scope.row.deliveryStatusName !== '已完成' ||
              slotProps.scope.row.deliveryStatus !== '3'
            "
            @click="handleEdit(slotProps.scope)"
            >编 辑
          </el-text>

          <!--              " @click="handleEdit(slotProps.scope)">编 辑</el-text>-->

          <!--            <el-button size="small" @click="costadd(slotProps.scope)">费 用 增 项</el-button>-->
        </template>
      </tablecmt>

      <div class="el-fx-btn">
        <div class="el_fontsize" style="font-size: 14px">勾选数量: {{ selectionList.length }}</div>
        <!-- 分页模块 -->
        <el-pagination
          align="right"
          background
          @size-change="sizeChange"
          @current-change="currentChange"
          :current-page="page.currentPage"
          :page-sizes="[30, 50, 80, 120]"
          :page-size="page.pageSize"
          layout="total, sizes, prev, pager, next, jumper"
          :total="page.total"
        >
        </el-pagination>
      </div>

      <!-- 打印模块 -->
      <!-- <el-dialog title="二维码" :visible.sync="isShow" width="70%" v-model="isShow">
        <div>
          <div v-html="html"></div>
        </div>
        <span slot="footer" class="dialog-footer">
          <el-button type="primary" @click="printTemplate">打 印</el-button>
          <el-button type="primary" @click="isShow = false">确 定</el-button>
          <el-button @click="isShow = false">取 消</el-button>
        </span>
      </el-dialog> -->
    </div>
  </basic-container>

  <!-- 打印 -->
  <MyPrint v-model="isShow" width="70%" :html="html"></MyPrint>

  <edittablehead
    @setcolum="setnewcolum"
    @closce="showdrawer"
    :drawerShow="drawerShow"
    :columnList="columnList"
  >
  </edittablehead>
</template>

<script>
import {
  getList,
  getDetail,
  add,
  update,
  remove,
  getPage,
  getstatistics,
  printBatch,
  getDeliveryListExport,
} from '@/api/distribution/distributionDeliveryList';
import option from '@/option/distribution/distributionDeliveryList';
import { mapGetters } from 'vuex';
import { getDictionaryBiz } from '@/api/system/dict';
import { addIncrement } from '@/api/distribution/distributionStockArticle';
import { getVehicleList } from '@/api/basicdata/basicdataVehicle';
import { getDriverList } from '@/api/basicdata/basicdataDriverArtery';
import print from '@/utils/print';
import { getBillLadingExport } from '@/api/distribution/distrilbutionBillLading';
import { downloadXls, getWinHeight, handleClearTableQuery, setNodeHeight } from '@/utils/util';

export default {
  data() {
    return {
      height: 0,
      // 弹框标题
      title: '',
      // 是否展示弹框
      box: false,
      // 是否显示查询
      search: true,
      // 加载中
      loading: true,
      // 是否为查看模式
      view: false,
      // 打印模版
      html: '',
      // 是否显示打印模版
      isShow: false,
      // 查询信息
      query: {},
      //数据统计
      statistics: {},
      drawerShow: false,
      // 分页信息
      page: {
        currentPage: 1,
        pageSize: 30,
        total: 40,
      },
      //配送类型
      deliverytypeData: [],
      //配送种类
      deliverykindData: [],
      //配送状态
      deliveryliststateData: [],
      // 表单数据
      form: {},
      // 选择行
      selectionList: [],
      activeName: 'first',
      allColumnList: [
        {
          prop: '',
          label: '序号',
          type: 0,
          values: '',
          width: 55,
          checkarr: [],
          fixed: true,
        },
        {
          prop: 'trainNumber',
          label: '车次',
          type: 2,
          values: '',
          width: '140',
          checkarr: [],
          fixed: true,
          sortable: true,
          // head: true,
        },
        {
          prop: 'taskTime',
          label: '配送日期',
          type: 2,
          values: '',
          width: '140',
          checkarr: [],
          fixed: true,
          sortable: true,
          // head: true,
        },
        {
          prop: 'warehouseName',
          label: '仓库',
          type: 2,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        {
          prop: 'mallName',
          label: '商场名称',
          type: 2,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        {
          prop: 'clineName',
          label: '客户名称',
          type: 2,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        {
          prop: 'orderCode',
          label: '订单自编号',
          type: 2,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        {
          prop: 'kindName',
          label: '配送种类',
          type: 3,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        {
          prop: 'typeName',
          label: '配送类型',
          type: 1,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        {
          prop: 'vehicleName',
          label: '配送车辆',
          type: 2,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        {
          prop: 'driverName',
          label: '配送司机',
          type: 2,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        {
          prop: 'distributionCompany',
          label: '配送公司',
          type: 2,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          sortable: true,
        },

        {
          prop: 'deliveryStatusName',
          label: '配送状态',
          type: 3,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        // {
        //   prop: 'deliveryListLoadingStatusName',
        //   label: '装车状态',
        //   type: 3,
        //   values: '',
        //   width: '140',
        //   checkarr: [],
        //   fixed: false,
        //   sortable: true
        // },
        {
          prop: 'customersNumber',
          label: '配送客户数',
          type: 1,
          values: '',
          width: '160',
          checkarr: [],
          fixed: false,
          isshowSummary: true,
          sortable: true,
        },
        {
          prop: 'price',
          label: '配送费',
          type: 1,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          isshowSummary: true,
          sortable: true,
        },
        {
          prop: 'fee',
          label: '增值服务',
          type: 1,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          isshowSummary: true,
          sortable: true,
        },
        {
          prop: 'orderNumber',
          label: '订单总数',
          type: 1,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          isshowSummary: true,
          sortable: true,
        },
        {
          prop: 'deliveryNumber',
          label: '配送件数',
          type: 1,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          isshowSummary: true,
          sortable: true,
        },
        {
          prop: 'inventoryNub',
          label: '配送库存品件数',
          type: 1,
          values: '',
          width: '180',
          checkarr: [],
          fixed: false,
          isshowSummary: true,
          sortable: true,
        },
        {
          prop: 'scannedNumber',
          label: '装车件数',
          type: 1,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          isshowSummary: true,
          sortable: true,
        },
        {
          prop: 'signingNumber',
          label: '签收件数',
          type: 1,
          values: '',
          width: '130',
          checkarr: [],
          fixed: false,
          isshowSummary: true,
          sortable: true,
        },
        {
          prop: 'loadingTeamName',
          label: '装车班组',
          type: 2,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        {
          prop: '',
          label: '操作',
          type: 6,
          values: '',
          width: '200',
          checkarr: [],
          fixed: 'right',
          sortable: false,
        },
        // 更多列的配置...
      ],
      columnList: [
        {
          prop: '',
          label: '序号',
          type: 0,
          values: '',
          width: 55,
          checkarr: [],
          fixed: true,
        },
        {
          prop: 'trainNumber',
          label: '车次',
          type: 2,
          values: '',
          width: '140',
          checkarr: [],
          fixed: true,
          sortable: true,
          // head: true,
        },
        {
          prop: 'taskTime',
          label: '配送日期',
          type: 2,
          values: '',
          width: '140',
          checkarr: [],
          fixed: true,
          sortable: true,
          // head: true,
        },
        {
          prop: 'warehouseName',
          label: '仓库',
          type: 2,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        {
          prop: 'mallName',
          label: '商场名称',
          type: 2,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        {
          prop: 'clineName',
          label: '客户名称',
          type: 2,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        {
          prop: 'orderCode',
          label: '订单自编号',
          type: 2,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        {
          prop: 'kindName',
          label: '配送种类',
          type: 3,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        {
          prop: 'typeName',
          label: '配送类型',
          type: 1,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        {
          prop: 'vehicleName',
          label: '配送车辆',
          type: 2,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        {
          prop: 'driverName',
          label: '配送司机',
          type: 2,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        {
          prop: 'distributionCompany',
          label: '配送公司',
          type: 2,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          sortable: true,
        },

        // {
        //   prop: 'deliveryStatusName',
        //   label: '配送状态',
        //   type: 3,
        //   values: '',
        //   width: '140',
        //   checkarr: [],
        //   fixed: false,
        //   sortable: true
        // },
        // {
        //   prop: 'deliveryListLoadingStatusName',
        //   label: '装车状态',
        //   type: 3,
        //   values: '',
        //   width: '140',
        //   checkarr: [],
        //   fixed: false,
        //   sortable: true
        // },
        {
          prop: 'customersNumber',
          label: '配送客户数',
          type: 1,
          values: '',
          width: '160',
          checkarr: [],
          fixed: false,
          isshowSummary: true,
          sortable: true,
        },
        {
          prop: 'price',
          label: '配送费',
          type: 1,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          isshowSummary: true,
          sortable: true,
        },
        {
          prop: 'fee',
          label: '增值服务',
          type: 1,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          isshowSummary: true,
          sortable: true,
        },
        {
          prop: 'orderNumber',
          label: '订单总数',
          type: 1,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          isshowSummary: true,
          sortable: true,
        },
        {
          prop: 'deliveryNumber',
          label: '配送件数',
          type: 1,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          isshowSummary: true,
          sortable: true,
        },
        {
          prop: 'inventoryNub',
          label: '配送库存品件数',
          type: 1,
          values: '',
          width: '180',
          checkarr: [],
          fixed: false,
          isshowSummary: true,
          sortable: true,
        },
        {
          prop: 'scannedNumber',
          label: '装车件数',
          type: 1,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          isshowSummary: true,
          sortable: true,
        },
        {
          prop: 'signingNumber',
          label: '签收件数',
          type: 1,
          values: '',
          width: '130',
          checkarr: [],
          fixed: false,
          isshowSummary: true,
          sortable: true,
        },
        {
          prop: 'loadingTeamName',
          label: '装车班组',
          type: 2,
          values: '',
          width: '140',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        {
          prop: '',
          label: '操作',
          type: 6,
          values: '',
          width: '200',
          checkarr: [],
          fixed: 'right',
          sortable: false,
        },
        // 更多列的配置...
      ],
      // 表单配置
      option: option,
      //增值服务弹窗
      dialogVisible: false,
      //增值服务字典列表
      addvalueServeTypeData: [],
      //增值服务列表
      addvalueServeType: [],
      //配送方式字典列表
      deliveryWayData: [],
      //增值服务对象
      addvalueObj: {},
      //订单行数据
      orderInfo: {},
      deliverId: null,
      //费用列表
      feeList: [],
      //楼层
      floorList: [],
      // 表单列表
      data: [],
      driverData: [],
      vehicleData: [],
      tableNode: null,
      /** loading */
      loadingObj: {
        pageLoading: false,
      },
    };
  },
  mounted() {
    this.getvehicleData();
    this.getDriverData();
    this.queryDictionary();
    this.init();
    // 设置列表高度
    this.setTableHeight();
    /**
     * 初始化获取本地缓存的编辑隐藏的列表
     *  固定搭配，不能更改
     */
    let checkListnewarr = this.$functions.getStorage(window.location.pathname + 'checkList');
    let flexListnewarr = this.$functions.getStorage(window.location.pathname + 'flexList');
    let sortlistnewarr = this.$functions.getStorage(window.location.pathname + 'sortlist');
    if (checkListnewarr) {
      this.columnList.map(item => {
        item.head = false;
      });
      checkListnewarr.map(ite => {
        this.columnList.map(item => {
          if (ite == item.label) {
            item.head = true;
          }
        });
      });
    } else {
      let arr = [];
      this.columnList.map(item => {
        if (item.head) {
          arr.push(item.label);
        }
      });
      this.$functions.setStorage(window.location.pathname + 'checkList', arr);
    }
    if (flexListnewarr) {
      this.columnList.map(item => {
        item.fixed = false;
      });
      flexListnewarr.map(ite => {
        this.columnList.map(item => {
          if (ite == item.label) {
            if (item.type == 6) {
              item.fixed = 'right';
            } else {
              item.fixed = true;
            }
          }
        });
      });
    } else {
      let arr = [];
      this.columnList.map(item => {
        if (item.fixed) {
          arr.push(item.label);
        }
      });
      this.$functions.setStorage(window.location.pathname + 'flexList', arr);
    }
    if (sortlistnewarr) {
      this.columnList.map(item => {
        item.sortable = false;
      });
      sortlistnewarr.map(ite => {
        this.columnList.map(item => {
          if (ite == item.label) {
            item.sortable = true;
          }
        });
      });
    } else {
      let arr = [];
      this.columnList.map(item => {
        if (item.sortable) {
          arr.push(item.label);
        }
      });
      this.$functions.setStorage(window.location.pathname + 'sortlist', arr);
    }
  },
  computed: {
    ...mapGetters(['permission']),
    ids() {
      let ids = [];
      this.selectionList.forEach(ele => {
        ids.push(ele.id);
      });
      return ids.join(',');
    },
  },
  methods: {
    async setTableHeight() {
      await this.$nextTick();
      console.log('this.tableNode :>> ', this.$refs.tableNode.$el);
      const elNode = this.$refs.tableNode.$el;
      // getWinHeight
      setNodeHeight(elNode, getWinHeight() - elNode.getBoundingClientRect().top - 60 + 'px');
    },

    //tabs切换
    handleClick(tab, event) {
      console.log('tab------------------>', tab.props.name);
      // this.query = {};
      switch (tab.props.name) {
        case 'first':
          break;
        case 'second':
          //待配送
          this.query.deliveryStatus = '1';
          break;
        case 'third':
          //配送中
          this.query.deliveryStatus = '2';
          break;
        case 'fourth':
          //已完成
          this.query.deliveryStatus = '3';
          break;
      }
      this.onLoad(this.page);

      console.log('tab------------------>', tab);
      console.log('event--------------->', event);
    },
    /**
     * 导出
     * */
    handleExportInfo() {
      let row = {};
      const ids = this.selectionList.join(',');
      row.ids = ids;
      row.type = '2';
      row = { ...row, ...this.query };
      delete row.deliveryStatusName;
      delete row.kindName;
      getDeliveryListExport(row).then(res => {
        console.log(res.data);
        downloadXls(res.data, '市配配送计划数据.xlsx');
      });
    },
    getvehicleData() {
      return new Promise((rv, rev) => {
        getVehicleList().then(res => {
          const data = res.data.data;
          if (!data) return;
          let po = [];
          data.forEach(item => {
            let a = {
              dictKey: item.id,
              dictValue: item.vehicleNub,
            };
            po.push(a);
          });
          this.vehicleData = po;
          console.log('^^^^^^^^^^^^^^^^', res.data.data);
          rv(res.data.data);
        });
      });
    },
    getDriverData() {
      return new Promise((rv, rev) => {
        getDriverList().then(res => {
          const data = res.data.data;
          let po = [];
          data.forEach(item => {
            let a = {
              dictKey: item.id,
              dictValue: item.name,
            };
            po.push(a);
          });
          this.driverData = po;
          console.log('===============>', res.data.data);
          rv(res.data.data);
        });
      });
    },
    showdrawer(value) {
      this.drawerShow = value;
    },
    /**
     * 弹窗的勾选回调，用于更改头部数组
     * 固定搭配，只需要更换   columnList
     */
    setnewcolum(newarr, headarr, type) {
      // console.log(newarr,'+++++++++++')
      if (type == 1) {
        this.columnList = newarr;
        this.$functions.setStorage(window.location.pathname + 'checkList', headarr);
      } else if (type == 2) {
        this.columnList = newarr;
        this.$functions.setStorage(window.location.pathname + 'flexList', headarr);
      } else if (type == 3) {
        this.columnList = newarr;
        this.$functions.setStorage(window.location.pathname + 'sortlist', headarr);
      }
    },
    handleCheckedCitiesChange(value) {
      if (value) {
        this.form.addvalueType = value;
      }
      console.log('>>>>>', this.form);
      if (value.length < 1) {
        this.costList = [];
        this.costListName = [];
      }
      this.deliveryWayData.forEach(i => {
        if (value.includes(i.dictKey)) {
          console.log(i);
          i.pitch = true;
          this.costListName = value;
        }
      });
    },
    editmap(scope) {
      const { row } = scope;
      console.log('row>>>>>>xxxx', row);
      this.$router.push({
        path: '/distribution/reservation/atlas1',
        query: {
          item: JSON.stringify(row),
          type: '2',
        },
      });
    },
    textbox(e, index, a) {
      if (a === 6) {
        this.feeList[index + 1] = e;
        return;
      }
      if (a === 5)
        if (index === 0 && a === 5) {
          this.floorList[index + 1] = e;
          return;
        }
      this.costList[index + 1] = e;

      //费用列表
    },
    aaa() {
      let addvalueInfos = [];
      this.form.addvalueType.forEach((item, index) => {
        let addvalueInfo = {};
        addvalueInfo.addvalueId = item;
        if (item == 1 || item == 3 || item == 5 || item == 7) {
          addvalueInfo.number = this.costList[item];
        }
        if (item == 2) {
          addvalueInfo.kilometer = this.costList[item];
        }
        if (item == 4) {
          addvalueInfo.distance = this.costList[item];
        }
        if (item == 6) {
          addvalueInfo.peopleNum = this.costList[item];
        }
        if (this.floorList.length > 1) {
          addvalueInfo.floor = this.floorList[1];
          this.floorList = [];
        }
        addvalueInfo.fee = this.feeList[item];
        addvalueInfos.push(addvalueInfo);
      });
      let params = {};
      params.id = this.deliverId;
      params.addvalue = addvalueInfos;
      params.relatedId = 2;
      console.log('params>>>>>>>>>>>>>>>>>>', params);
      addIncrement(params).then(res => {
        this.dialogVisible = false;
        this.$message({
          type: 'success',
          message: '操作成功!',
        });
      });
      this.onLoad(this.page);
    },
    selectionsc(value) {
      // 筛选出所有被选中项的id
      this.selectionList = value.map(item => item.id);
    },
    delectsolt(scope) {
      const { row } = scope;
      console.log(row);
    },
    handleClose(done) {
      this.$confirm('确认关闭？')
        .then(_ => {
          done();
        })
        .catch(_ => {});
    },
    editsolt(scope) {
      const { row } = scope;
      console.log(row);
      this.$router.push({
        path: '/distribution/deliverylist/distributionDeliveryListedt',
        query: {
          data: encodeURIComponent(JSON.stringify(row)),
          state: 'imgType',
          name: row.trainNumber + '-查看配送',
        },
      });
    },
    costadd(scope) {
      const { row } = scope;
      console.log('row>>>>>>>>>>', row);
      this.deliverId = row.id;
      //查询订单的增值服务，
      this.addvalueServeType = [];
      this.addvalue = {};
      this.dialogVisible = true;
      this.costList = [];
      this.feeList = [];
      this.floorList = [];
      // this.orderInfo = row;
    },
    btnsc(index, row) {
      console.log(index, row);
    },
    selectsc(index, row) {
      console.log('index :>> ', index);
      console.log('row :>> ', row);
      this.query[row.prop] = index;
      if (!index) {
        delete this.query[row.prop];
      }
      if (row.prop === 'deliveryStatusName') {
        this.query['deliveryStatus'] = index;
      } else if (row.prop === 'kindName') {
        this.query['kind'] = index;
      }

      this.onLoad(this.page);
    },
    timesc(index, row) {
      console.log(index, row);
    },
    inputsc(index, row) {
      this.query[row.prop] = index;
      if (!index) {
        delete this.query[row.prop];
      }
      this.onLoad(this.page);
    },
    queryDictionary() {
      // getDictionaryBiz('delivery_type').then(res => {
      //   this.deliverytypeData = res.data.data;
      // });
      getDictionaryBiz('addvalue_serve_type').then(res => {
        this.addvalueServeTypeData = res.data.data;
      });
      getDictionaryBiz('delivery_way').then(res => {
        this.deliveryWayData = res.data.data;
      });

      //配送状态
      getDictionaryBiz('distribution_delivery_status').then(res => {
        this.$functions.checkcColumnList('deliveryStatusName', this.allColumnList).checkarr =
          res.data.data.map(item => {
            item.value = item.dictKey;
            item.label = item.dictValue;
            return item;
          });
      });
      //配送种类
      getDictionaryBiz('distribution_deliverylist_kind').then(res => {
        this.$functions.checkcColumnList('kindName', this.columnList).checkarr = res.data.data.map(
          item => {
            item.value = item.dictKey;
            item.label = item.dictValue;
            return item;
          }
        );
      });

      this.onLoad(this.page);
    },

    init() {
      this.height = this.setPx(document.body.clientHeight - 340);
    },
    searchHide() {
      this.search = !this.search;

      const elNode = this.$refs.tableNode.$el;
      // getWinHeight
      setNodeHeight(elNode, '', true);
    },
    searchChange() {
      if (this.query.deliveryKind) {
        let deliveryKind = this.query.deliveryKind;
        switch (deliveryKind) {
          case '自主配送':
            this.query.kind = '1';
            break;
          case '外协配送':
            this.query.kind = '2';
            break;
        }
      }
      this.onLoad(this.page);
    },
    searchReset() {
      this.query = {};
      this.page.currentPage = 1;
      handleClearTableQuery(this.columnList);
      this.onLoad(this.page);
    },
    handleSubmit() {
      if (!this.form.id) {
        add(this.form).then(() => {
          this.box = false;
          this.onLoad(this.page);
          this.$message({
            type: 'success',
            message: '操作成功!',
          });
        });
      } else {
        update(this.form).then(() => {
          this.box = false;
          this.onLoad(this.page);
          this.$message({
            type: 'success',
            message: '操作成功!',
          });
        });
      }
    },
    handleAdd() {
      this.title = '新增';
      this.form = {};
      this.box = true;
    },
    handleEdit(scope) {
      const { row } = scope;
      this.$router.push({
        path: '/distribution/turndelivery/deliveryMarket',
        query: {
          deliveryId: row.id,
          name: row.trainNumber + '-编辑配送',
        },
      });
    },
    handleView(row) {
      this.title = '查看';
      this.view = true;
      this.box = true;
      getDetail(row.id).then(res => {
        this.form = res.data.data;
      });
    },
    // handleViewBlank (row) {
    //   this.$router.push({
    //     path: '/distribution/deliverylist/distributionDeliveryListedt',
    //     query: {
    //       id: row.id,
    //       name: row.trainNumber +'-查看配送'
    //     }
    //   });
    // },
    handleDelete() {
      if (this.selectionList.length === 0) {
        this.$message.warning('请选择至少一条数据');
        return;
      }
      this.$confirm('确定将选择数据删除?', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning',
      })
        .then(() => {
          return remove(this.ids);
        })
        .then(() => {
          this.selectionClear();
          this.onLoad(this.page);
          this.$message({
            type: 'success',
            message: '操作成功!',
          });
        });
    },
    rowDel(row) {
      this.$confirm('确定将选择数据删除?', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning',
      })
        .then(() => {
          return remove(row.id);
        })
        .then(() => {
          this.onLoad(this.page);
          this.$message({
            type: 'success',
            message: '操作成功!',
          });
        });
    },
    beforeClose(done) {
      done();
      this.form = {};
      this.view = false;
    },
    selectionChange(list) {
      this.selectionList = list;
    },
    selectionClear() {
      this.selectionList = [];
      // this.$refs.table.clearSelection();
    },
    currentChange(currentPage) {
      this.page.currentPage = currentPage;
      this.onLoad(this.page);
    },
    sizeChange(pageSize) {
      this.page.pageSize = pageSize;
      this.onLoad(this.page);
    },
    onLoad(page, params = {}) {
      this.loading = true;
      this.query.type = '2';
      getPage(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
        const data = res.data.data;
        // eslint-disable-next-line no-empty
        // for (let i = 0; i < data.records.length; i++) {
        // eslint-disable-next-line no-empty
        // for (let j = 0; j < this.deliverytypeData.length; j++) {
        //   // eslint-disable-next-line no-empty
        //   if (data.records[i].type == this.deliverytypeData[j].dictKey) {
        //     data.records[i].type = this.deliverytypeData[j].dictValue;
        //   }
        // }
        // for (let j = 0; j < this.deliverykindData.length; j++) {
        //   // eslint-disable-next-line no-empty
        //   if (data.records[i].kind == this.deliverykindData[j].dictKey) {
        //     data.records[i].kind = this.deliverykindData[j].dictValue;
        //   }
        // }
        // for (let j = 0; j < this.deliveryliststateData.length; j++) {
        //   // eslint-disable-next-line no-empty
        //   if (data.records[i].state == this.deliveryliststateData[j].dictKey) {
        //     data.records[i].state = this.deliveryliststateData[j].dictValue;
        //   }
        // }
        // }
        this.page.total = data.total || 0;
        this.data = data.records || [];
        this.loading = false;
        this.selectionClear();
      });
      getstatistics(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(
        res => {
          this.statistics = res.data.data;
          console.log('this.statistics :>> ', this.statistics);
        }
      );
      // getDetail(row.id).then(res => {
      //   this.form = res.data.data;
      // });
    },

    /**
     * 批量打印
     */
    async printBatchOrder() {
      console.log(11);
      if (this.selectionList.length === 0) {
        this.$message.warning('请选择至少一条数据');
        return;
      }
      try {
        this.loadingObj.pageLoading = true;
        this.html = '';
        const res = await printBatch({ ids: Array.from(this.selectionList).join(','), type: 2 });
        this.isShow = true;
        console.log('res :>> ', res);
        const {
          data: { code, data },
        } = res;
        if (code === 200) {
          // 初始化打印页面
          data.forEach(item => {
            this.html += item.templateHtml;
          });
        }
      } catch (error) {
        console.log('error :>> ', error);
      } finally {
        this.loadingObj.pageLoading = false;
      }
    },

    /**
     * 获取单个打印页面
     */
    async printOrder(row) {
      try {
        this.loadingObj.pageLoading = true;

        const res = await printBatch({ ids: row.id, type: 2 });
        this.html = '';
        const {
          data: { code, data },
        } = res;
        if (code === 200) {
          // 初始化打印页面
          data.forEach(item => {
            this.html += item.templateHtml;
          });
          this.isShow = true;
        }
      } catch (error) {
        console.log('error :>> ', error);
      } finally {
        this.loadingObj.pageLoading = false;
      }
    },

    /**
     * 打印
     */
    printTemplate() {
      print();
    },
  },
};
</script>

<style scoped lang="scss">
.avue-crud {
  :deep(.el-dialog) {
    width: fit-content;
  }
}

.order-info {
  ul {
    list-style: none;
    display: flex;
    padding: 0;

    li {
      color: #172e60;
      position: relative;
      padding: 0 20px;
      display: flex;
      align-items: center;
      font-weight: 500;

      img {
        margin-right: 4px;
      }
    }

    li::after {
      content: '';
      display: block;
      width: 0.10417vw;
      height: 18px;
      background-color: #dddbdb;
      position: absolute;
      top: 2px;
      left: 0px;
    }
  }

  li:first-child::after {
    content: none;
  }

  li:first-child {
    padding-left: 0;
  }
}

.avue-crud__header {
  // align-items: flex-end !important;
}

// 日期选择框
.el-times {
  :deep(.el-tooltip__trigger) {
    height: 30px !important;
  }
}

.el-btn {
  min-width: 200px;
  margin-right: 0 !important;

  :deep(.el-form-item__content) {
    width: 180px;
    justify-content: flex-end;
  }
}

.avue-crud__right {
  display: flex;
  align-items: center;
}

.fr-fo {
  display: flex;
}

:deep(.avue-crud__header) {
  .avue-crud__left {
    margin-top: 0 !important;
  }
}

:deep(.avue-crud) {
  display: flex;
  height: 100%;
  flex-direction: column;
}

:deep(.el-card__body) {
  height: 100%;
}

:deep(.el-card) {
  height: 100%;
  display: flex;
  flex-direction: column;
}

.el-fy {
  flex: 1;
  display: flex;
  align-content: space-between;
}
.flex-c-sb {
  flex-direction: column;
  justify-content: space-between;
}
.el-fx-btn {
  display: flex;
  justify-content: space-between;
  margin-right: 20px;
  width: 100%;
}
.el_fontsize {
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
}
</style>
