<template>
  <basic-container>
    <div class="avue-crud">
      <div v-h5uShow="search">
        <!-- 查询模块 -->
        <el-form class="header_search" :model="query">
          <el-form-item label="配送车次:">
            <el-input
              v-model="query.trainNumbers"
              placeholder="请输入配送车次"
              clearable
            ></el-input>
          </el-form-item>
          <el-form-item label="配送日期:" class="el-times">
            <el-date-picker
              class="w100"
              v-model="Deliverydate"
              type="daterange"
              unlink-panels
              range-separator="至"
              start-placeholder="开始时间"
              end-placeholder="结束时间"
              :shortcuts="shortcuts"
              value-format="YYYY-MM-DD"
              clearable
            >
            </el-date-picker>
          </el-form-item>
          <el-form-item label="配送类型:">
            <el-select class="w100" v-model="query.businessType" 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 class="w100" 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
              class="w100"
              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
              class="w100"
              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>

      <el-row class="orderInfos">
        <div class="order-info">
          <ul>
            <li>
              <img src="../../../../public/img/bg/Delivery.png" />配送总车次{{
                statistics.vehiclesNub
              }}
            </li>
            <li>
              <img src="../../../../public/img/bg/package.png" />总包件数{{
                statistics.deliveriesTotal
              }}
            </li>
            <li>
              <img src="../../../../public/img/bg/inventory.png" />总库存品数{{
                statistics.dinventoryTotal
              }}
            </li>
          </ul>
        </div>
        <!-- 商配总车次 -->
        <div class="order-info">
          <ul>
            <li>
              <img src="../../../../public/img/bg/Delivery.png" />商配总车次{{
                statistics.commercialNub
              }}
            </li>
            <li>
              <img src="../../../../public/img/bg/package.png" />总包件数{{
                statistics.commercialTotal
              }}
            </li>
            <li>
              <img src="../../../../public/img/bg/inventory.png" />总库存品数{{
                statistics.cinventoryTotal
              }}
            </li>
          </ul>
        </div>

        <!-- 市配总车次 -->
        <div class="order-info">
          <ul>
            <li>
              <img src="../../../../public/img/bg/Delivery.png" />市配总车次{{
                statistics.marketNub
              }}
            </li>
            <li>
              <img src="../../../../public/img/bg/package.png" />总包件数{{
                statistics.marketTotal
              }}
            </li>
            <li>
              <img src="../../../../public/img/bg/inventory.png" />总库存品数{{
                statistics.minventoryTotal
              }}
            </li>
          </ul>
        </div>
      </el-row>
      <el-row>
        <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>
      </el-row>
      <el-row>
        <!-- 列表模块 -->
        <tablecmt
          class="tableNode"
          :columnList="columnList"
          :tableData="data"
          :loading="loading"
          @inputTxt="inputsc"
          @timeCheck="timesc"
          @btnCheck="btnsc"
          @selectCheck="selectsc"
          @selection="selectionsc"
        >
          <template #default="slotProps">
            <el-text @click="editsolt(slotProps.scope)">查 看</el-text>
            <el-text @click="editmap(slotProps.scope)">地 图</el-text>
          </template>
        </tablecmt>
      </el-row>
      <el-row class="el-fy">
        <div class="avue-crud__pagination flex-c-sb" style="width: 100%">
          <div 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-row>
      <!-- 表单模块 -->
    </div>
    <el-dialog v-model="dialogVisible" title="增值服务" width="30%" :before-close="handleClose">
      <el-form-item label="增值服务" prop="freightMark">
        <el-checkbox-group v-model="form.addvalueType" @change="handleCheckedCitiesChange">
          <el-checkbox
            style="width: 100%; margin-bottom: 3%"
            v-for="(item, index) in addvalueServeTypeData"
            :key="item.dictKey"
            :label="item.dictKey"
            >{{ item.dictValue }}
            <span v-if="index === 0 || index === 6 || index === 2 || index === 4"
              >&nbsp;件数:
              <el-input
                type="number"
                v-model="item.f"
                :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
                @change="textbox($event, index, 1)"
                style="width: 20%; border: none; border-bottom: 2px solid #eee"
              />
            </span>
            <span v-if="index === 1"
              >公里:
              <el-input
                type="primary"
                v-model="item.a"
                :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
                @change="textbox($event, index, 2)"
                style="width: 20%; border: none; border-bottom: 2px solid #eee"
              />
            </span>
            <span v-if="index === 3"
              >距离:
              <el-input
                type="number"
                v-model="item.b"
                :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
                @change="textbox($event, index, 3)"
                style="width: 20%; border: none; border-bottom: 2px solid #eee"
              />
            </span>
            <span v-if="index === 5"
              >人数:
              <el-input
                type="number"
                v-model="item.c"
                :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
                @change="textbox($event, index, 4)"
                style="width: 20%; border: none; border-bottom: 2px solid #eee"
              />
            </span>
            <span v-if="index === 0"
              >楼层:
              <el-input
                type="number"
                v-model="item.d"
                :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
                @change="textbox($event, index, 5)"
                style="width: 20%; border: none; border-bottom: 2px solid #eee"
              />
            </span>
            <span v-if="item"
              >预计费用:
              <el-input
                type="number"
                v-model="item.e"
                :disabled="this.form?.freightMark?.indexOf(item.dictKey) == -1"
                @change="textbox($event, index, 6)"
                style="width: 20%; border: none; border-bottom: 2px solid #eee"
              />
            </span>
          </el-checkbox>
        </el-checkbox-group>
      </el-form-item>
      <template #footer>
        <span class="dialog-footer">
          <el-button @click="dialogVisible = false">取消</el-button>
          <el-button type="primary" @click="aaa"> 确定(增值服务) </el-button>
        </span>
      </template>
    </el-dialog>
  </basic-container>
  <edittablehead
    @closce="showdrawer"
    :drawerShow="drawerShow"
    :columnList="columnList"
    v-model="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 { getDriverList } from '@/api/basicdata/basicdataDriverArtery';
import { getVehicleList } from '@/api/basicdata/basicdataVehicle';
import print from '@/utils/print';
import { getBillLadingExport } from '@/api/distribution/distrilbutionBillLading';
import { downloadXls, getObjType, handleSelectQuery, setNodeHeight } from '@/utils/util';
import dayjs from 'dayjs';
export default {
  data() {
    return {
      currentdate: true,
      Deliverydate: [],
      height: 0,
      // 弹框标题
      title: '',
      // 是否展示弹框
      box: false,
      // 是否显示查询
      search: true,
      // 加载中
      loading: true,
      // 是否为查看模式
      view: false,
      // 打印模版
      html: '',
      // 查询信息
      query: {},
      //数据统计
      statistics: {},
      drawerShow: false,
      // 分页信息
      page: {
        currentPage: 1,
        pageSize: 30,
        total: 40,
      },
      //配送类型
      deliverytypeData: [],
      //配送种类
      deliverykindData: [],
      //配送状态
      deliveryliststateData: [],
      // 表单数据
      form: {},
      // 选择行
      selectionList: [],
      /** 时间快捷选择设置 */
      shortcuts: [
        {
          text: '最近一周',
          value: () => {
            const end = new Date();
            const start = new Date();
            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
            return [start, end];
          },
        },
        {
          text: '最近一个月',
          value: () => {
            const end = new Date();
            const start = new Date();
            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
            return [start, end];
          },
        },
        {
          text: '最近三个月',
          value: () => {
            const end = new Date();
            const start = new Date();
            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
            return [start, end];
          },
        },
      ],
      columnList: [
        {
          prop: '',
          label: '序号',
          type: 0,
          values: '',
          width: 55,
          checkarr: [],
          fixed: true,
        },
        {
          prop: 'trainNumber',
          label: '车次号',
          type: 2,
          values: '',
          width: '180',
          checkarr: [],
          fixed: true,
          sortable: true,
          // head: true,
        },
        {
          prop: 'taskTime',
          label: '配送日期',
          type: 1,
          values: '',
          width: '130',
          checkarr: [],
          fixed: true,
          sortable: true,
          // head: true,
        },
        {
          prop: 'warehouseName',
          label: '仓库',
          type: 2,
          values: '',
          width: '130',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        {
          prop: 'kindName',
          label: '配送种类',
          type: 3,
          values: '',
          width: '130',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        {
          prop: 'orderCode',
          label: '订单自编号',
          type: 2,
          values: '',
          width: '200',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        {
          prop: 'typeName',
          label: '配送类型',
          type: 3,
          values: '',
          width: '130',
          checkarr: [
            { label: '商配', value: 1 },
            { label: '市配', value: 2 },
          ],
          fixed: false,
          sortable: true,
        },
        {
          prop: 'vehicleName',
          label: '配送车辆',
          type: 2,
          values: '',
          width: '130',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        {
          prop: 'driverName',
          label: '配送司机',
          type: 2,
          values: '',
          width: '130',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        {
          prop: 'distributionCompany',
          label: '配送公司',
          type: 2,
          values: '',
          width: '130',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        {
          prop: 'deliveryStatusName',
          label: '配送状态',
          type: 3,
          values: '',
          width: '130',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        // {
        //   prop: 'deliveryListLoadingStatusName',
        //   label: '装车状态',
        //   type: 3,
        //   values: '',
        //   width: '150',
        //   checkarr: [],
        //   fixed: false,
        //   sortable: true
        // },
        // clineName
        {
          prop: 'clineName',
          label: '收货人',
          type: 1,
          values: '',
          width: '130',
          checkarr: [],
          fixed: false,
          sortable: true,
        },
        {
          prop: 'customersNumber',
          label: '配送客户数',
          type: 1,
          values: '',
          width: '130',
          checkarr: [],
          fixed: false,
          sortable: true,
          isshowSummary: true,
        },
        {
          prop: 'price',
          label: '配送价格',
          type: 1,
          values: '',
          width: '130',
          checkarr: [],
          fixed: false,
          sortable: true,
          isshowSummary: true,
        },
        // {
        //   prop: 'fee',
        //   label: '增值服务',
        //   type: 1,
        //   values: '',
        //   width: '130',
        //   checkarr: [],
        //   fixed: false,
        //   sortable: true
        // },
        {
          prop: 'orderNumber',
          label: '订单总数',
          type: 1,
          values: '',
          width: '130',
          checkarr: [],
          fixed: false,
          isshowSummary: true,
          sortable: true,
        },
        {
          prop: 'deliveryNumber',
          label: '配送包件数',
          type: 1,
          values: '',
          width: '130',
          checkarr: [],
          fixed: false,
          isshowSummary: true,
          sortable: true,
        },
        {
          prop: 'inventoryNub',
          label: '配送库存品件数',
          type: 1,
          values: '',
          width: '150',
          checkarr: [],
          fixed: false,
          isshowSummary: true,
          sortable: true,
        },
        {
          prop: 'scannedNumber',
          label: '装车件数',
          type: 1,
          values: '',
          width: '130',
          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: '130',
          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: [],
    };
  },
  watch: {
    handler(newVal, oldVal) {
      // this.fetchData();
      // this.onLoad(this.page);
    },
    deep: false,
    immediate: true,
  },
  mounted() {
    this.getvehicleData();
    this.getDriverData();
    this.queryDictionary();
    this.init();
  },
  computed: {
    ...mapGetters(['permission']),
    ids() {
      let ids = [];
      this.selectionList.forEach(ele => {
        ids.push(ele.id);
      });
      return ids.join(',');
    },
  },
  methods: {
    /**
     * 导出
     * */
    handleExportInfo() {
      let row = {};
      // if (!!this.ids) {
      //   row.ids = this.ids;
      // }
      const ids = this.selectionList.join(',');
      row.ids = ids;
      row = { ...row, ...this.query };
      delete row.deliveryStatusName;
      delete row.kindName;
      // console.log("<><><>>",ids);
      getDeliveryListExport(row).then(res => {
        // console.log(res.data);
        downloadXls(res.data, '全部配送计划数据.xlsx');
      });
    },
    getvehicleData() {
      return new Promise((rv, rev) => {
        getVehicleList(1, 10, '').then(res => {
          const data = res.data.data;
          let po = [];
          data.records.forEach(item => {
            let a = {
              dictKey: item.id,
              dictValue: item.vehicleNub,
            };
            po.push(a);
          });
          this.vehicleData = po;
          rv(res.data.data.records);
        });
      });
    },
    getDriverData() {
      return new Promise((rv, rev) => {
        getDriverList(1, 10, '').then(res => {
          const data = res.data.data;
          let po = [];
          if (data.records?.length) {
            data.records.forEach(item => {
              let a = {
                dictKey: item.id,
                dictValue: item.name,
              };
              po.push(a);
            });
            this.driverData = po;
            rv(res.data.data.records);
          }
        });
      });
    },
    showdrawer(value) {
      this.drawerShow = value;
    },
    handleCheckedCitiesChange(value) {
      if (value) {
        this.form.addvalueType = value;
      }
      if (value.length < 1) {
        this.costList = [];
        this.costListName = [];
      }
      this.deliveryWayData.forEach(i => {
        if (value.includes(i.dictKey)) {
          i.pitch = true;
          this.costListName = value;
        }
      });
    },
    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;
      addIncrement(params).then(res => {
        this.dialogVisible = false;
        this.$message({
          type: 'success',
          message: '操作成功!',
        });
      });
      this.onLoad(this.page);
    },
    selectionsc(value) {
      console.log('value :>> ', value);
      // 筛选出所有被选中项的id
      this.selectionList = value.map(item => item.id);
    },
    editmap(scope) {
      const { row } = scope;
      this.$router.push({
        path: '/distribution/reservation/atlas1',
        query: {
          item: JSON.stringify(row),
          type: '2',
        },
      });
    },
    delectsolt(scope) {
      const { row } = scope;
    },
    handleClose(done) {
      this.$confirm('确认关闭？')
        .then(_ => {
          done();
        })
        .catch(_ => {});
    },
    editsolt(scope) {
      const { row } = scope;
      this.$router.push({
        path: '/distribution/deliverylist/distributionDeliveryListedt',
        query: {
          // data: encodeURIComponent(JSON.stringify(row)),
          id: row.id,
          name: row.trainNumber + '-查看配送',
        },
      });
    },
    costadd(scope) {
      const { row } = scope;
      this.deliverId = row.id;
      //查询订单的增值服务，
      this.addvalueServeType = [];
      this.addvalue = {};
      this.dialogVisible = true;
      this.costList = [];
      this.feeList = [];
      this.floorList = [];
      // this.orderInfo = row;
    },
    btnsc(index, row) {},
    selectsc(index, row) {
      handleSelectQuery(index, row, this.query);
      this.onLoad(this.page);
    },
    timesc(index, row) {},
    inputsc(index, row) {
      this.query[row.prop] = index;
      if (!index) {
        delete this.query[row.prop];
      }
      this.onLoad(this.page);
    },
    queryDictionary() {
      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.columnList).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);
    },
    //类型切换
    // deliverytype(type){
    //   this.query.type=type;
    //   this.onLoad(this.page)
    // },
    init() {
      this.height = this.setPx(document.body.clientHeight - 340);
    },
    searchHide() {
      this.search = !this.search;

      const _tableNode = document.querySelector('.tableNode');
      setNodeHeight(_tableNode, '', 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;
        }
      }
      if (this.query.businessType) {
        let businessType = this.query.businessType;
        switch (businessType) {
          case '商配':
            this.query.type = '1';
            break;
          case '市配':
            this.query.type = '2';
            break;
        }
      }
      this.onLoad(this.page);
    },
    searchReset() {
      this.query = {};
      this.page.currentPage = 1;
      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) {
      this.$store.commit('DEL_ONCE_TAG', 'deliveryDiscuss');
      const { row } = scope;
      this.$router.push({
        path: '/distribution/turndelivery/deliveryDiscuss',
        query: {
          id: row.id,
          name: row.trainNumber + '-编辑配送',
        },
      });
    },
    handleView(row) {
      this.title = '查看';
      this.view = true;
      this.box = true;
      if (row.id) {
        getDetail(row.id).then(res => {
          this.form = res.data.data;
        });
      } else {
        ElMessage({
          message: '数据错误，刷新页面重新尝试',
          type: 'warning',
        });
      }
    },
    handleViewBlank(row) {
      this.$router.push({
        path: '/distribution/deliverylist/distributionDeliveryListedt',
        query: {
          data: encodeURIComponent(JSON.stringify(row)),
          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);
    },
    Getcurrentdate() {
      // 获取当前日期
      const currentDate = dayjs();
      // 计算一个月前的日期
      const startDate = currentDate.subtract(1, 'month');
      // 格式化日期为 'YYYY-MM-DD'
      const formatDate = date => date.format('YYYY-MM-DD');
      this.Deliverydate = [];
      this.Deliverydate[0] = formatDate(startDate); // 一个月前的日期
      this.Deliverydate[1] = formatDate(currentDate); // 当前日期
    },
    async onLoad(page, params = {}) {
      this.loading = true;
      if (this.currentdate) {
        await this.Getcurrentdate();
      }
      if (getObjType(this.Deliverydate) === 'array') {
        params.taskTimeStart = this.Deliverydate[0];
        params.taskTimeEnd = this.Deliverydate[1];
      }
      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;
        this.data = data.records;
        this.loading = false;
        this.currentdate = false;
        this.selectionClear();
      });
      getstatistics(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(
        res => {
          this.statistics = res.data.data;
        }
      );
      // getDetail(row.id).then(res => {
      //   this.form = res.data.data;
      // });
    },
  },
};
</script>

<style scoped lang="scss">
.orderInfos {
  display: flex;
}
.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;
  }
}
:deep(.el-form-item__content) {
  width: 140px;
  margin-left: 8px !important;
}
.el-btn {
  min-width: 200px;
  margin-right: 0 !important;
  :deep(.el-form-item__content) {
    width: 180px;
    justify-content: flex-end;
  }
}
.el-form-item {
  margin-right: 10px;
}
// .el-form {
//   width: 100%;
//   display: flex;
//   justify-content: space-between;
// }
.avue-crud__right {
  display: flex;
  align-items: center;
}
.el-form-item__content {
  height: 30px;
}
// 日期选择框
.el-times {
  :deep(.el-tooltip__trigger) {
    height: 30px !important;
  }
}
: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-items: flex-end;
}

.w100 {
  width: 100% !important;
}
</style>
