<template>
  <div class="app-container">
    <basic-container v-show="pageShow">
      <avue-crud
          :option="option"
          :data="warehousebillsList"
          @search-change="handleQuery"
      >
        <template slot="menuLeft">
          <el-button
              type="primary"
              icon="el-icon-plus"
              size="mini"
              @click="handleAdd"
              v-hasPermi="['warehouseBusiness:outStock:add']"
          >新增
          </el-button>
          <el-button
              type="success"
              icon="el-icon-edit"
              size="mini"
              :disabled="single"
              @click="handleUpdate"
              v-hasPermi="['warehouseBusiness:outStock:edit']"
          >修改
          </el-button>
          <el-button
              type="warning"
              icon="el-icon-download"
              size="mini"
              @click="handleExport"
              v-hasPermi="['warehouseBusiness:outStock:export']"
          >导出
          </el-button>
          <el-button
              type="warning"
              icon="el-icon-download"
              size="mini"
              @click="handleExport"
              :disabled="multiple"
              v-hasPermi="['warehouseBusiness:outStock:export']"
          >导入
          </el-button>
          <el-button
              type="info"
              icon="el-icon-download"
              size="mini"
              :disabled="single"
              @click="copyUpdate"
              v-hasPermi="['agreement:agreementStorage:export']"
          >复制新增
          </el-button>
        </template>
        <template slot-scope="scope" slot="menu">
          <el-button
              size="mini"
              type="text"
              icon="el-icon-edit"
              @click="handleUpdate(scope.row, true)"
              v-hasPermi="['warehouseBusiness:outStock:edit']"
          >查看
          </el-button>
          <el-button
              size="mini"
              type="text"
              icon="el-icon-edit"
              v-if="
                scope.row.billstatus == '录入' ||
                scope.row.billstatus == '暂存' ||
                scope.row.billstatus == '驳回'
              "
              @click="handleUpdate(scope.row, false)"
              v-hasPermi="['warehouseBusiness:outStock:edit']"
          >修改
          </el-button>
          <el-button
              size="mini"
              type="text"
              icon="el-icon-delete"
              v-if="
                (scope.row.billstatus == '录入' ||
                scope.row.billstatus == '暂存' ||
                scope.row.billstatus == '驳回')
                &&
                scope.row.isCreate == 0
                ||
                (scope.row.billstatus == '录入' ||
                scope.row.billstatus == '暂存' ||
                scope.row.billstatus == '驳回')
                &&
                scope.row.isCreate == 1
              "
              @click="handleDelete(scope.row)"
              v-hasPermi="['warehouseBusiness:outStock:remove']"
          >删除
            <!--              v-if="scope.row.itemsStatus == '计划'"-->
          </el-button>
          <el-button
              size="mini"
              type="text"
              icon="el-icon-delete"
              v-if="
                scope.row.billstatus == '请核' ||
                scope.row.billstatus == '审核中'
              "
              @click="handleUpdate(scope.row, true)"
          >审核进度
          </el-button>
        </template>
      </avue-crud>
    </basic-container>
    <div v-if="false">
      <el-form
          :model="queryParams"
          ref="queryForm"
          v-show="showSearch"
          label-width="70px"
          size="small"
      >
        <el-row>
          <el-col :span="6">
            <el-form-item label="客户" prop="corpid">
              <el-select
                  v-model="queryParams.corpid"
                  clearable
                  filterable
                  placeholder="请输入关键词"
                  style="width: 200px"
              >
                <el-option
                    v-for="(item, index) in mblnoOptions"
                    :key="index.id"
                    :label="item.name"
                    :value="item.id"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="6">
            <el-form-item label="提单号" prop="mblno">
              <el-input
                  v-model="queryParams.mblno"
                  placeholder="请输入提单号"
                  clearable
                  style="width: 200px"
                  @keyup.enter.native="handleQuery"
              />
            </el-form-item>
          </el-col>
          <el-col :span="6">
            <el-form-item label="出库日期" prop="timeInterval">
              <el-date-picker
                  v-model="queryParams.timeInterval"
                  type="daterange"
                  value-format="yyyy-MM-dd"
                  clearable
                  style="width: 230px"
                  range-separator="至"
                  start-placeholder="开始日期"
                  end-placeholder="结束日期"
                  @keyup.enter.native="handleQuery"
              >
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="6">
            <el-form-item label="车号" prop="warehouseid">
              <el-select
                  v-model="queryParams.truckno"
                  clearable
                  filterable
                  placeholder="请选择车号"
                  style="width: 200px"
                  @keyup.enter.native="handleQuery"
              >
                <el-option
                    v-for="(item, index) in trucknoList"
                    :key="index"
                    :label="item.truckno"
                    :value="item.truckno"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <el-collapse-transition>
          <div v-show="show">
            <el-row>
              <el-col :span="6">
                <el-form-item label="货物名称" prop="goodsid">
                  <el-select
                      v-model="queryParams.goodsid"
                      clearable
                      filterable
                      placeholder="请选择货物名称"
                      style="width: 200px"
                      @keyup.enter.native="handleQuery"
                  >
                    <el-option
                        v-for="(item, index) in goodsOptions"
                        :key="index.id"
                        :label="item.name"
                        :value="item.id"
                    ></el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="6">
                <el-form-item label="品牌" prop="marks">
                  <el-input
                      v-model="queryParams.marks"
                      placeholder="请输入品牌"
                      clearable
                      style="width: 200px"
                      @keyup.enter.native="handleQuery"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="6">
                <el-form-item label="出库状态" prop="itemsStatus">
                  <el-select
                      style="width: 200px"
                      v-model="queryParams.itemsStatus"
                      placeholder="请选择出库状态"
                  >
                    <el-option label="计划" value="1"></el-option>
                    <el-option label="卸货中" value="2" />
                    <el-option label="已装货" value="3" />
                    <el-option label="已出库" value="4" />
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="6">
                <el-form-item label="费用状态" prop="feeStatus">
                  <el-select
                      style="width: 200px"
                      v-model="queryParams.feeStatus"
                      placeholder="请选择费用状态"
                  >
                    <el-option label="暂存" :value="1"></el-option>
                    <el-option label="部分" :value="2"></el-option>
                    <el-option label="全部入账" :value="3"></el-option>
                  </el-select>
                </el-form-item>
              </el-col>
            </el-row>
            <el-row>
              <el-col :span="6">
                <el-form-item label="业务编号" prop="billno">
                  <el-input
                      v-model="queryParams.billno"
                      placeholder="请输入业务编号"
                      clearable
                      @keyup.enter.native="handleQuery"
                      style="width: 200px"
                  />
                </el-form-item>
              </el-col>
              <el-col :span="6">
                <el-form-item label="制单人" prop="createBy">
                  <el-select
                      v-model="queryParams.createBy"
                      filterable
                      clearable
                      placeholder="请输入关键词"
                      style="width: 200px"
                  >
                    <el-option
                        v-for="(item, index) in userOptions"
                        :key="index.userName"
                        :label="item.nickName"
                        :value="item.userName"
                    >
                    </el-option>
                  </el-select>
                </el-form-item>
              </el-col>
              <el-col :span="6">
                <el-form-item label="仓库" prop="warehouseid">
                  <el-select
                      v-model="queryParams.warehouseid"
                      clearable
                      filterable
                      placeholder="请选择仓库"
                      style="width: 200px"
                      @keyup.enter.native="handleQuery"
                  >
                    <el-option
                        v-for="(item, index) in warehouseOptions"
                        :key="index.id"
                        :label="item.name"
                        :value="item.id"
                    ></el-option>
                  </el-select>
                </el-form-item>
                <!--                <el-form-item label="经营单位" prop="sbu">-->
                <!--                  <el-select-->
                <!--                    v-model="queryParams.sbu"-->
                <!--                    clearable-->
                <!--                    filterable-->
                <!--                    placeholder="请输入关键词"-->
                <!--                    style="width: 200px"-->
                <!--                  >-->
                <!--                    <el-option-->
                <!--                      v-for="(item, index) in mblnoOptions"-->
                <!--                      :key="index.id"-->
                <!--                      :label="item.name"-->
                <!--                      :value="item.id"-->
                <!--                    ></el-option>-->
                <!--                  </el-select>-->
                <!--                </el-form-item>-->
              </el-col>
              <el-col :span="6">
                <el-form-item label="贸易方式" prop="trademodeid">
                  <el-select
                      v-model="queryParams.trademodeid"
                      placeholder="请选择贸易方式"
                      clearable
                      @keyup.enter.native="handleQuery"
                      style="width: 200px"
                  >
                    <el-option
                        v-for="(item, index) in trademodeidOptions"
                        :key="index.dictValue"
                        :label="item.dictLabel"
                        :value="item.dictValue"
                    />
                  </el-select>
                </el-form-item>
              </el-col>
            </el-row>
          </div>
        </el-collapse-transition>
      </el-form>
      <el-row :gutter="10" class="mb8">
        <el-col :span="1.5">
          <el-button
              type="primary"
              icon="el-icon-plus"
              size="mini"
              @click="handleAdd"
              v-hasPermi="['warehouseBusiness:outStock:add']"
          >新增
          </el-button>
        </el-col>
        <el-col :span="1.5">
          <el-button
              type="success"
              icon="el-icon-edit"
              size="mini"
              :disabled="single"
              @click="handleUpdate"
              v-hasPermi="['warehouseBusiness:outStock:edit']"
          >修改
          </el-button>
        </el-col>
        <el-col :span="1.5">
          <el-button
              type="warning"
              icon="el-icon-download"
              size="mini"
              @click="handleExport"
              v-hasPermi="['warehouseBusiness:outStock:export']"
          >导出
          </el-button>
        </el-col>
        <el-col :span="1.5">
          <el-button
              type="warning"
              icon="el-icon-download"
              size="mini"
              @click="handleExport"
              :disabled="multiple"
              v-hasPermi="['warehouseBusiness:outStock:export']"
          >导入
          </el-button>
        </el-col>
        <el-col :span="1.5">
          <el-button
              type="info"
              icon="el-icon-download"
              size="mini"
              :disabled="single"
              @click="copyUpdate"
              v-hasPermi="['agreement:agreementStorage:export']"
          >复制新增
          </el-button>
        </el-col>
        <div class="tabSetting">
          <div style="margin-right: 20px">
            <el-button
                type="cyan"
                icon="el-icon-search"
                size="mini"
                @click="handleQuery"
            >搜索</el-button
            >
            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
            >重置</el-button
            >
            <el-button
                v-show="show"
                @click="show = !show"
                icon="el-icon-arrow-up"
                size="mini"
            >展开</el-button
            >
            <el-button
                v-show="!show"
                @click="show = !show"
                icon="el-icon-arrow-down"
                size="mini"
            >展开</el-button
            >
          </div>
          <right-toolbar
              :showSearch.sync="showSearch"
              @queryTable="getList"
          ></right-toolbar>
          <div style="margin: 0 12px">
            <el-button
                icon="el-icon-setting"
                size="mini"
                circle
                @click="showSetting = !showSetting"
            ></el-button>
          </div>
        </div>
      </el-row>
      <el-dialog
          title="自定义列显示"
          :visible.sync="showSetting"
          width="700px"
          v-dialogDrag
          :close-on-click-modal="false"
      >
        <template slot="title">
          <div class="avue-crud__dialog__header">
            <span class="el-dialog__title">
              <span
                  style="
                  display: inline-block;
                  width: 3px;
                  height: 20px;
                  margin-right: 5px;
                  float: left;
                  margin-top: 2px;
                "
              ></span>
            </span>
          </div>
        </template>
        <div>配置排序列数据（拖动调整顺序）</div>
        <div style="margin-left: 17px">
          <el-checkbox
              v-model="allCheck"
              label="全选"
              @change="allChecked"
          ></el-checkbox>
        </div>
        <div style="padding: 4px; display: flex; justify-content: center">
          <draggable
              v-model="setRowList"
              group="site"
              animation="300"
              @start="onStart"
              @end="onEnd"
              handle=".indraggable"
          >
            <transition-group>
              <div
                  v-for="item in setRowList"
                  :key="item.surface"
                  class="listStyle"
              >
                <div style="width: 500px" class="indraggable">
                  <div class="progress" :style="{ width: item.width + 'px' }">
                    <el-checkbox
                        :label="item.name"
                        v-model="item.checked"
                        :true-label="0"
                        :false-label="1"
                    >{{ item.name }}
                    </el-checkbox>
                  </div>
                </div>
                <el-input-number
                    v-model.number="item.width"
                    controls-position="right"
                    :min="1"
                    :max="500"
                    size="mini"
                ></el-input-number>
              </div>
            </transition-group>
          </draggable>
        </div>
        <span slot="footer" class="dialog-footer">
          <el-button @click="showSetting = false">取 消</el-button>
          <el-button @click="delRow" type="danger">重 置</el-button>
          <el-button type="primary" @click="save()">确 定</el-button>
        </span>
      </el-dialog>

      <el-table
          v-loading="loading"
          :data="warehousebillsList"
          @selection-change="handleSelectionChange"
          show-summary
          :summary-method="getSum">
        <el-table-column type="selection" width="60" fixed align="center" />
        <el-table-column
            type="index"
            label="行号"
            width="50"
            align="center"
            fixed
        />
        <el-table-column
            v-for="(item, index) in getRowList"
            :key="index"
            :label="item.name"
            :width="item.width"
            :prop="item.label"
            align="center"
            :fixed="item.fixed"
            :show-overflow-tooltip="true"
            sortable
        >
          <template slot-scope="scope">
            <span v-if="item.label == 'mblno'">
              <el-link :underline="false" type="primary"
              ><div @click="handleUpdate(scope.row)">
                  {{ scope.row.mblno }}
                </div></el-link
              >
            </span>
            <span v-else>{{ scope.row[item.label] }}</span>
          </template>
        </el-table-column>
        <el-table-column
            label="操作"
            align="center"
            class-name="small-padding fixed-width"
            min-width="200"
            fixed="right"
        >
          <template slot-scope="scope">
            <el-button
                size="mini"
                type="text"
                icon="el-icon-edit"
                @click="handleUpdate(scope.row, true)"
                v-hasPermi="['warehouseBusiness:outStock:edit']"
            >查看
            </el-button>
            <el-button
                size="mini"
                type="text"
                icon="el-icon-edit"
                v-if="
                scope.row.billstatus == '录入' ||
                scope.row.billstatus == '暂存' ||
                scope.row.billstatus == '驳回'
              "
                @click="handleUpdate(scope.row, false)"
                v-hasPermi="['warehouseBusiness:outStock:edit']"
            >修改
            </el-button>
            <el-button
                size="mini"
                type="text"
                icon="el-icon-delete"
                v-if="
                (scope.row.billstatus == '录入' ||
                scope.row.billstatus == '暂存' ||
                scope.row.billstatus == '驳回')
                &&
                scope.row.isCreate == 0
                ||
                (scope.row.billstatus == '录入' ||
                scope.row.billstatus == '暂存' ||
                scope.row.billstatus == '驳回')
                &&
                scope.row.isCreate == 1
              "
                @click="handleDelete(scope.row)"
                v-hasPermi="['warehouseBusiness:outStock:remove']"
            >删除
              <!--              v-if="scope.row.itemsStatus == '计划'"-->
            </el-button>
            <el-button
                size="mini"
                type="text"
                icon="el-icon-delete"
                v-if="
                scope.row.billstatus == '请核' ||
                scope.row.billstatus == '审核中'
              "
                @click="handleUpdate(scope.row, true)"
            >审核进度
            </el-button>
          </template>
        </el-table-column>
      </el-table>
      <pagination
          v-show="total > 0"
          :total="total"
          :page.sync="queryParams.pageNum"
          :limit.sync="queryParams.pageSize"
          @pagination="getList"
      />
    </div>
    <add-or-update
        v-show="pageShow2"
        @changeShow="showAddOrUpdate"
        ref="addOrUpdateRef"
        :chiId="formId"
        :copyStatus="copyStatus"
        :key="timer"
    ></add-or-update>
  </div>
</template>

<script>
import AddOrUpdate from "./AddOrUpdate.vue";
// import {
//   addWhgenleg,
//   listWarehousebills,
//   getWarehousebills,
//   delWarehousebills,
//   addWarehousebills,
//   updateCredit,
//   addJoblist,
//   disChargelist,
//   warehouseSubmission,
//   updateWarehousebills,
//   exportWarehousebills,
//   revokeTwo,
//   revoke,
//   delOutStock_s,
//   serialNumber,
// } from "@/api/warehouseBusiness/warehouseInAndOutStock";
// import { listCorps } from "@/api/basicdata/corps";
// import { listWarehousesss } from "@/api/basicdata/warehouse";
// import {listGoods, queryVehicle} from "@/api/basicdata/goods";
// import { listUser, queryUserVal } from "@/api/system/user";
// import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import Cookies from "js-cookie";
// import { addSet, select, resetModule } from "@/api/system/set";
import draggable from "vuedraggable";
export default {
  name: "plans",
  data() {
    return {
      option:{
        align: 'center',
        stripe: true,
        index: true,
        menu: true,
        addBtn: false,
        editBtn: false,
        delBtn: false,
        height: "auto",
        searchSpan: 8,
        searchIcon: true,
        searchIndex: 2,
        highlightCurrentRow: true,
        column:[
          {
            index: "0",
            prop: "mblno",
            label: "提单号",
            width: 200,
            search: true,
          },
          {
            index: "1",
            prop: "createBy",
            label: "制单人",
            width: 100,
          },
          {
            index: "2",
            prop: "storekeeper",
            label: "仓管员",
            width: 100,
          },
          {
            index: "3",
            prop: "itemsStatus",
            label: "直装状态",
            width: 100,
          },
          {
            index: "4",
            prop: "corpid",
            label: "客户",
            width: 100,
            search: true,
          },
          {
            index: "6",
            prop: "productName",
            label: "品名",
            width: 100,
          },
          {
            index: "7",
            prop: "marks",
            label: "品牌",
            width: 100,
            search: true,
          },
          {
            index: "8",
            prop: "bsdate",
            label: "出库日期",
            width: 100,
            search: true,
          },
          {
            index: "9",
            prop: "warehouseid",
            label: "仓库",
            width: 100,
          },
          {
            index: "10",
            prop: "planqty",
            label: "计划件数",
            width: 100,
          },
          {
            index: "11",
            prop: "qty",
            label: "出库件数",
            width: 100,
          },
          {
            index: "12",
            prop: "grossweight",
            label: "出库毛重",
            width: 100,
          },
          {
            index: "13",
            prop: "netweight",
            label: "出库净重",
            width: 100,
          },
          {
            index: "14",
            prop: "truckno",
            label: "车号",
            width: 100,
            search: true,
          },
          {
            index: "15",
            prop: "driverName",
            label: "司机名称",
            width: 100,
          },
          {
            index: "16",
            prop: "driverTel",
            label: "司机电话",
            width: 100,
          },
          {
            index: "17",
            prop: "driverIdCar",
            label: "司机身份证",
            width: 100,
          },
          {
            index: "18",
            prop: "businessType",
            label: "业务类别",
            width: 100,
          },
          {
            index: "19",
            prop: "feeStatus",
            label: "费用状态",
            width: 100,
          },
          {
            index: "20",
            prop: "billno",
            label: "系统编号",
            width: 100,
          }
        ]
      },
      timer: "",
      pageShow: true,
      pageShow2: false,
      queryParams: {
        pageNum: 1,
        pageSize: 10,
        billno: null,
        createBy: null,
        trademodeid: null,
        corpid: null,
        mblno: null,
        sbu: null,
        goodsid: null,
        warehouseid: null,
        marks: null,
        billstatus: null,
        itemsStatus: null,
        timeInterval: null,
        feeStatus:null,
      },
      // 显示搜索条件
      showSearch: true,
      userOptions: [],
      trademodeidOptions: [],
      warehouseOptions: [],
      goodsOptions: [],
      mblnoOptions: [],
      show: false,
      drag: false,
      tableDate: [
        {
          surface: "0",
          label: "mblno",
          name: "提单号",
          checked: 0,
          width: 200,
          fixed: "left",
        },
        {
          surface: "1",
          label: "createBy",
          name: "制单人",
          checked: 0,
          width: 100,
        },
        {
          surface: "2",
          label: "storekeeper",
          name: "仓管员",
          checked: 0,
          width: 100,
        },
        {
          surface: "3",
          label: "itemsStatus",
          name: "直装状态",
          checked: 0,
          width: 100,
        },
        {
          surface: "4",
          label: "corpid",
          name: "客户",
          checked: 0,
          width: 100,
        },
        {
          surface: "6",
          label: "productName",
          name: "品名",
          checked: 0,
          width: 100,
        },
        {
          surface: "7",
          label: "marks",
          name: "品牌",
          checked: 0,
          width: 100,
        },
        {
          surface: "8",
          label: "bsdate",
          name: "出库日期",
          checked: 0,
          width: 100,
        },
        {
          surface: "9",
          label: "warehouseid",
          name: "仓库",
          checked: 0,
          width: 100,
        },
        {
          surface: "10",
          label: "planqty",
          name: "计划件数",
          checked: 0,
          width: 100,
        },
        {
          surface: "11",
          label: "qty",
          name: "出库件数",
          checked: 0,
          width: 100,
        },
        {
          surface: "12",
          label: "grossweight",
          name: "出库毛重",
          checked: 0,
          width: 100,
        },
        {
          surface: "13",
          label: "netweight",
          name: "出库净重",
          checked: 0,
          width: 100,
        },
        {
          surface: "14",
          label: "truckno",
          name: "车号",
          checked: 0,
          width: 100,
        },
        {
          surface: "15",
          label: "driverName",
          name: "司机名称",
          checked: 0,
          width: 100,
        },
        {
          surface: "16",
          label: "driverTel",
          name: "司机电话",
          checked: 0,
          width: 100,
        },
        {
          surface: "17",
          label: "driverIdCar",
          name: "司机身份证",
          checked: 0,
          width: 100,
        },
        {
          surface: "18",
          label: "businessType",
          name: "业务类别",
          checked: 0,
          width: 100,
        },
        {
          surface: "19",
          label: "feeStatus",
          name: "费用状态",
          checked: 0,
          width: 100,
        },
        {
          surface: "20",
          label: "billno",
          name: "系统编号",
          checked: 0,
          width: 100,
        },
      ],
      setRowList: [],
      getRowList: [],
      allCheck: false,
      showSetting: false,
      total: 0,
      warehousebillsList: [],
      loading: true,
      single: true,
      multiple: true,
      formId: null,
      ids: [],
      copyStatus: null,
      trucknoList:[],
    };
  },
  // 使用子组件
  components: { draggable, AddOrUpdate },
  created() {
    let i = 0;
    this.option.column.forEach(item => {
      if (item.search) i++
    })
    if (i % 3 !== 0) {
      const num = 3 - Number(i % 3)
      this.option.searchMenuSpan = num * 8;
      this.option.searchMenuPosition = "right";
    }
    queryVehicle().then(res=>{
      this.trucknoList = res.data
    })
    this.setRowList = this.tableDate;
    this.getRowList = this.tableDate;
    this.getDicts("data_trademodes").then((response) => {
      this.trademodeidOptions = response.data;
    });
    listGoods({ status: 0, delFlag: 0 }).then((response) => {
      this.goodsOptions = response.rows;
    });
    listWarehousesss({ status: 0, delFlag: 0 }).then((response) => {
      this.warehouseOptions = response.rows;
    });
    listUser().then((response) => {
      this.userOptions = response.rows;
    });
    listCorps({ type: 1 }).then((response) => {
      this.mblnoOptions = response.rows;
    });
    this.getRow();
    this.getList();
  },
  activated() {
    if (this.$route.query.id) {
      this.handleUpdate(this.$route.query.id);
    }
  },
  methods: {
    //列设置全选
    allChecked() {
      if (this.allCheck == true) {
        this.setRowList.map((e) => {
          return (e.checked = 0);
        });
      } else {
        this.setRowList.map((e) => {
          return (e.checked = 1);
        });
      }
    },
    //查询列数据
    getRow() {
      let that = this;
      this.data = {
        tableName: "出库",
        userId: Cookies.get("userName"),
      };
      select(this.data).then((res) => {
        if (res.data.length != 0) {
          this.getRowList = res.data.filter((e) => e.checked == 0);
          this.setRowList = res.data;
          this.setRowList = this.setRowList.reduce((res, item) => {
            res.push({
              surface: item.surface,
              label: item.label,
              name: item.name,
              checked: item.checked,
              width: item.width,
              fixed: item.fixed,
            });
            return res;
          }, []);
        }
      });
    },
    //重置列表
    delRow() {
      this.data = {
        tableName: "出库",
        userId: Cookies.get("userName"),
      };
      resetModule(this.data).then((res) => {
        if (res.code == 200) {
          this.showSetting = false;
          this.setRowList = this.$options.data().tableDate;
          this.getRowList = this.$options.data().tableDate;
        }
      });
    },
    //保存列设置
    save() {
      this.showSetting = false;
      this.data = {
        tableName: "出库",
        userId: Cookies.get("userName"),
        sysTableSetList: this.setRowList,
      };
      addSet(this.data).then((res) => {
        if (res.code == 200) {
          this.showSetting = false;
          this.getRowList = this.setRowList.filter((e) => e.checked == 0);
          console.log(this.tableDate);
        }
      });
    },
    //开始拖拽事件
    onStart() {
      this.drag = true;
    },
    //拖拽结束事件
    onEnd() {
      this.drag = false;
    },
    getList() {
      //获取仓库
      listWarehousebills(this.queryParams).then((response) => {
        this.warehousebillsList = response.rows;
        this.total = response.total;
        this.loading = false;
      });
    },
    //合计
    getSum(param) {
      const { columns, data } = param;
      const sums = [];
      var values = [];
      columns.forEach((column, index) => {
        if (index === 0) {
          sums[index] = "合计";
          return;
        }
        if (column.property === "grossweight") {
          values = data.map((item) => Number(item["grossweight"]));
        }
        if (column.property === "netweight") {
          values = data.map((item) => Number(item["netweight"]));
        }
        if (column.property === "qty") {
          values = data.map((item) => Number(item["qty"]));
        }
        if (column.property === "planqty") {
          values = data.map((item) => Number(item.planqty));
        }
        if (
            column.property === "grossweight" ||
            column.property === "netweight" ||
            column.property === "qty" ||
            column.property === "planqty"
        ) {
          sums[index] = values.reduce((prev, curr) => {
            const value = Number(curr);
            if (!isNaN(value)) {
              return prev + curr;
            } else {
              return prev;
            }
          }, 0);
          if (column.property === "grossweight") {
            sums[index] = sums[index].toFixed(4) + "吨";
          }
          if (column.property === "netweight") {
            sums[index] = sums[index].toFixed(4) + "吨";
          }
          if (column.property === "qty") {
            sums[index] = sums[index].toFixed(2);
          }
          if (column.property === "planqty") {
            if (sums[index]) {
              sums[index] = sums[index];
            }
          }
        }
      });
      return sums;
    },
    handleAdd() {
      this.timer = new Date().getTime();
      this.pageShow = false;
      this.pageShow2 = true;
    },
    // 多选框选中数据
    handleSelectionChange(selection) {
      this.ids = selection.map((item) => item.id);
      this.single =
          selection.length !== 1 ||
          selection.map((item) => item.billstatus) == 6 ||
          selection.map((item) => item.billstatus) == 4;
      this.multiple = !selection.length;
    },
    /** 修改按钮操作 */
    handleUpdate(row) {
      const id = row.id || this.ids[0]|| row;
      this.copyStatus = null;
      this.formId = id;
      this.$nextTick(() => {
        this.$refs.addOrUpdateRef.init();
      });
      setTimeout(() => {
        this.pageShow = false;
        this.pageShow2 = true;
      }, 200);
    },
    copyUpdate() {
      this.formId = this.ids[0];
      this.copyStatus = 2;
      this.$nextTick(() => {
        this.$refs.addOrUpdateRef.init();
      });
      setTimeout(() => {
        this.pageShow = false;
        this.pageShow2 = true;
      }, 200);
    },
    /** 删除按钮操作 */
    handleDelete(row) {
      const ids = row.id || this.ids;
      delOutStock_s(ids).then((data) => {
        switch (data.msg) {
          case "0": {
            this.$message.error("当前数据已被其他操作员操作请刷新页面");
            break;
          }
          case "1": {
            this.delete(ids, "当前主表有数据从表无数据是否删除");
            break;
          }
          case "2": {
            this.delete(ids, "当前主表有数据从表有数据是否删除");
            break;
          }
          default: {
            return this.$message.error("未知错误，无状态");
          }
        }
      });
    },
    delete(ids, tips) {
      this.$confirm(tips, "警告", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      }).then(() => {
        delWarehousebills(ids).then(res => {
          this.msgSuccess("删除成功");
          this.getList();
        });
      });
    },
    /** 导出按钮操作 */
    handleExport() {
      this.$confirm('是否确认导出所有场地直装数据项？', '警告', {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning",
      }).then(() => {
        exportWarehousebills(this.queryParams).then(res => {
          this.download(res.msg);
        })
      })
      // this.$message.warning('功能开发中')
      // require.ensure([], () => {
      //   const { export_json_to_excel } = require("../../../excel/Export2Excel");
      //   const tHeader = ["客户名称", "制单日期"];
      //   // 上面设置Excel的表格第一行的标题
      //   const filterVal = ["corpId", "createTime"];
      //   // 上面的index、nickName、name是tableData里对象的属性
      //   const list = this.ftmsorderbillsList; //把data里的tableData存到list
      //   const data = this.formatJson(filterVal, list);
      //   export_json_to_excel(
      //     tHeader,
      //     data,
      //     "列表excel",
      //     true,
      //   );
      // });
    },
    formatJson(filterVal, jsonData) {
      return jsonData.map((v) => filterVal.map((j) => v[j]));
    },
    /** 搜索按钮操作 */
    handleQuery(params) {
      this.queryParams = params
      this.queryParams.pageNum = 1;
      this.getList();
    },
    /** 重置按钮操作 */
    resetQuery() {
      this.queryParams = {
        pageNum: 1,
        pageSize: 10,
        billno: null,
        createBy: null,
        trademodeid: null,
        corpid: null,
        mblno: null,
        sbu: null,
        goodsid: null,
        warehouseid: null,
        marks: null,
        billstatus: null,
        itemsStatus: null,
        timeInterval: null,
        feeStatus: null,
      };
      this.handleQuery();
    },
    showAddOrUpdate(data) {
      if (data) {
        this.getList();
        this.pageShow = true;
        this.pageShow2 = false;
      }
    },
  },
};
</script>
