<template>
  <div>
    <div style="display: flex; justify-content: space-between">
      <div style="display: flex; align-items: center">
        <el-breadcrumb separator="/">
          <el-breadcrumb-item
            ><span style="font-weight: 700">通关</span></el-breadcrumb-item
          >
          <el-breadcrumb-item
            ><span style="font-weight: 700"
              >通关详情页</span
            ></el-breadcrumb-item
          >
        </el-breadcrumb>
        <el-button
          style="margin-left: 10px"
          size="mini"
          icon="el-icon-arrow-left"
          @click="goBack"
          >返回列表</el-button
        >
      </div>
      <div v-if="showApproval == 0">
        <el-button
          type="info"
          size="small"
          @click="addOrUpdateHandle(form, 'warehouse_status')"
          v-if="form.warehouseStatus > 3"
          >查看接单审批
        </el-button>
        <el-button
          type="info"
          size="small"
          @click="addOrUpdateHand(form, 'warehouse_status')"
          v-if="form.warehouseStatus > 3 && approVal == true"
          >接单审批
        </el-button>
        <el-button
          type="info"
          :disabled="form.warehouseStatus >= 4"
          size="small"
          @click="verifyForm"
          v-if="form.fBillstatus"
          >接单请核
        </el-button>
        <el-button
          type="info"
          :disabled="browseStatus"
          size="small"
          @click="ordersRevoke"
          v-if="form.warehouseStatus == 6"
          >撤销接单请核
        </el-button>
        <el-button
          type="info"
          :disabled="browseStatus"
          size="small"
          @click="revokeTwo('warehouse_status')"
          v-if="form.warehouseStatus == 4"
          >撤销接单审批
        </el-button>
      </div>
    </div>

    <br />
    <el-form ref="form" :model="form" :rules="rules" label-width="130px">
      <el-row>
        <el-col :span="8">
          <el-form-item label="客户" prop="fCorpid">
            <el-select
              v-model="form.fCorpid"
              clearable
              filterable
              placeholder="请输入关键词"
              style="width: 80%"
              @change="changefStltype"
              :disabled="detailList.length > 0"
            >
              <el-option
                v-for="(item, index) in fMblnoOptions"
                :key="index.fId"
                :label="item.fName"
                :value="item.fId"
              ></el-option>
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item
            label="结算方式"
            prop="fStltypeid"
            v-if="dataShowcar == '1'"
          >
            <el-select
              v-model="form.fStltypeid"
              placeholder="请选择结算方式"
              clearable
              :disabled="browseStatus"
              style="width: 80%"
            >
              <el-option
                v-for="(item, index) in fStltypeOptions"
                :key="index.dictValue"
                :label="item.dictLabel"
                :value="item.dictValue"
              />
            </el-select>
          </el-form-item>
          <el-form-item
            label="作业类型"
            prop="fBusinessType"
            v-if="dataShowcar == '0'"
          >
            <el-select
              style="width: 80%"
              v-model="form.fBusinessType"
              filterable
              @change="educationChange"
              :disabled="
                contrOl ||
                browseStatus ||
                warehouseDrList.length > 0 ||
                warehouseCrList.length > 0
              "
            >
              <el-option
                v-for="(item, index) in businessTypeOption"
                :key="index.dictValue"
                :label="item.dictLabel"
                :value="item.dictValue"
              ></el-option>
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="提单号" prop="fMblno">
            <el-input
              v-model="form.fMblno"
              style="width: 80%"
              placeholder="请输入提单号"
              :disabled="detailList.length != 0"
            />
          </el-form-item>
        </el-col>
      </el-row>
      <el-row>
        <el-col :span="8">
          <el-form-item label="业务日期" prop="fBsdate">
            <el-date-picker
              v-model="form.fBsdate"
              style="width: 80%"
              type="date"
              :disabled="browseStatus"
              value-format="timestamp"
              placeholder="业务日期"
              @change="changeDate"
            >
            </el-date-picker>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="业务时间" prop="fBstime">
            <el-time-picker
              style="width: 80%"
              :disabled="browseStatus"
              v-model="form.fBstime"
              :picker-options="{
                selectableRange: '00:00:00 - 23:59:59',
              }"
              value-format="timestamp"
              placeholder="任意时间点"
            >
            </el-time-picker>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="仓管员" prop="fStorekeeper">
            <el-select
              v-model="form.fStorekeeper"
              filterable
              clearable
              :disabled="browseStatus"
              style="width: 80%"
              placeholder="请输入模糊查找"
            >
              <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-row>
      <el-row>
        <el-col :span="8">
          <el-form-item label="调入仓库" prop="fWarehouseid">
            <el-select
              v-model="form.fWarehouseid"
              filterable
              :disabled="browseStatus || detailList.length > 0"
              style="width: 80%"
              placeholder="请选择"
            >
              <el-option
                v-for="(item, index) in warehouseOptions"
                :key="index.fId"
                :label="item.fName"
                :value="item.fId"
              ></el-option>
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="调出仓库" prop="fInwarehouseid">
            <el-select
              v-model="form.fInwarehouseid"
              filterable
              :disabled="browseStatus || detailList.length > 0"
              style="width: 80%"
              placeholder="请选择"
            >
              <el-option
                v-for="(item, index) in warehouseOptions"
                :key="index.fId"
                :label="item.fName"
                :value="item.fId"
              ></el-option>
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="单据编号" prop="fBillno">
            <el-input
              v-model="form.fBillno"
              style="width: 80%"
              disabled
              placeholder="单据编号"
            />
          </el-form-item>
        </el-col>
      </el-row>
      <el-row>
        <el-col :span="8">
          <el-form-item label="计划调拨件数" prop="fPlanqty">
            <el-input
              v-model.number="form.fPlanqty"
              style="width: 80%"
              maxlength="9"
              laceholder="计划件数"
              :disabled="browseStatus || current !== before"
            />
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="计划调拨净重(kg)" prop="fPlannetweight">
            <el-input
              v-model="form.fPlannetweight"
              style="width: 80%"
              maxlength="16"
              v-input-limit="2"
              laceholder="计划净重"
              :disabled="browseStatus || current !== before"
              @change="tfNetweight"
            >
              <template slot="append">{{ tfNetweightnum }}吨</template>
            </el-input>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="计划调拨毛重(kg)" prop="fPlangrossweight">
            <el-input
              v-model="form.fPlangrossweight"
              v-input-limit="2"
              style="width: 80%"
              laceholder="计划毛重"
              maxlength="16"
              :disabled="browseStatus || current !== before"
              @change="tfGrossweight"
            >
              <template slot="append">{{ tfGrossweightnum }}吨</template>
            </el-input>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row v-if="detailsHidden2">
        <el-col :span="8">
          <el-form-item
            label="作业类型"
            prop="fBusinessType"
            v-if="dataShowcar == '1'"
          >
            <el-select
              style="width: 80%"
              v-model="form.fBusinessType"
              filterable
              @change="educationChange"
              :disabled="
                contrOl ||
                browseStatus ||
                warehouseDrList.length > 0 ||
                warehouseCrList.length > 0
              "
            >
              <el-option
                v-for="(item, index) in businessTypeOption"
                :key="index.dictValue"
                :label="item.dictLabel"
                :value="item.dictValue"
              ></el-option>
            </el-select>
          </el-form-item>
          <el-form-item
            label="结算方式"
            prop="fStltypeid"
            v-if="dataShowcar == '0'"
          >
            <el-select
              v-model="form.fStltypeid"
              placeholder="请选择结算方式"
              clearable
              :disabled="browseStatus"
              style="width: 80%"
            >
              <el-option
                v-for="(item, index) in fStltypeOptions"
                :key="index.dictValue"
                :label="item.dictLabel"
                :value="item.dictValue"
              />
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="劳务公司" prop="fLabour">
            <el-select
              style="width: 80%"
              v-model="form.fLabour"
              clearable
              filterable
              placeholder="请输入关键词"
              :disabled="contrOl || browseStatus"
            >
              <el-option
                v-for="(item, index) in fCompanyOptIons"
                :key="index.fId"
                :label="item.fName"
                :value="item.fId"
              ></el-option>
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item
            label="车队"
            prop="fFleet"
            :rules="{
              required: isrequired === 1 ? true : false,
              message: '请选择',
              trigger: ['blur', 'change'],
            }"
          >
            <el-select
              style="width: 80%"
              v-model="form.fFleet"
              clearable
              filterable
              placeholder="请输入关键词"
              :disabled="contrOl || browseStatus"
            >
              <el-option
                v-for="(item, index) in fleetOptions"
                :key="index.fId"
                :label="item.fName"
                :value="item.fId"
              ></el-option>
            </el-select>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row v-if="detailsHidden2">
        <el-col :span="8">
          <el-form-item
            label="车号"
            prop="fTruckno"
            :rules="{
              required: isrequired2 === 1 ? true : false,
              message: '请选择',
              trigger: ['blur', 'change'],
            }"
          >
            <el-input
              v-model="form.fTruckno"
              style="width: 80%"
              :disabled="browseStatus"
              placeholder="车号"
            />
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item
            label="司机姓名"
            prop="fDriverName"
            :rules="{
              required: isrequired2 === 1 ? true : false,
              message: '请选择',
              trigger: ['blur', 'change'],
            }"
          >
            <el-input
              v-model="form.fDriverName"
              style="width: 80%"
              :disabled="browseStatus"
              placeholder="司机姓名"
            />
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item
            label="司机电话"
            prop="fDriverTel"
            :rules="{
              required: isrequired2 === 1 ? true : false,
              message: '请选择',
              trigger: ['blur', 'change'],
            }"
          >
            <el-input
              v-model="form.fDriverTel"
              style="width: 80%"
              :disabled="browseStatus"
              placeholder="司机电话"
            />
          </el-form-item>
        </el-col>
      </el-row>
      <el-row>
        <el-col :span="8" v-if="detailsHidden2">
          <el-form-item
            label="司机身份证"
            prop="fDriverIdCar"
            :rules="{
              required: isrequired2 === 1 ? true : false,
              message: '请选择',
              trigger: ['blur', 'change'],
            }"
          >
            <el-input
              v-model="form.fDriverIdCar"
              style="width: 80%"
              :disabled="browseStatus"
              placeholder="司机身份证"
            />
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="原贸易方式" prop="fTrademodeid">
            <el-select
              v-model="form.fTrademodeid"
              placeholder=""
              :disabled="browseStatus"
              clearable
              style="width: 80%"
            >
              <el-option
                v-for="dict in fTrademodeidOptions"
                :key="dict.dictValue"
                :label="dict.dictLabel"
                :value="dict.dictValue"
              />
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="新贸易方式" prop="fNewTrademodeid">
            <el-select
              v-model="form.fNewTrademodeid"
              placeholder="请选择新贸易方式"
              :disabled="browseStatus"
              clearable
              style="width: 80%"
            >
              <el-option
                v-for="dict in fTrademodeidOptions"
                :key="dict.dictValue"
                :label="dict.dictLabel"
                :value="dict.dictValue"
              />
            </el-select>
          </el-form-item>
        </el-col>
      </el-row>
      <el-row>
        <el-col :span="8">
          <el-form-item label="备注" prop="remark">
            <el-input
              style="width: 80%"
              v-model="form.remark"
              type="textarea"
              :disabled="browseStatus"
              placeholder="请输入内容"
            />
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item>
            <div style="display: flex; align-items: center">
              <el-table
                :data="CntrTable"
                style="width: 80%"
                :header-cell-style="{ lineHeight: '16px' }"
              >
                <el-table-column
                  prop="fCntrid "
                  label="箱型"
                  header-align="center"
                  align="center"
                >
                  <template slot-scope="scope">
                    <el-select
                      placeholder="请选择箱型"
                      v-model="scope.row.fCntrid"
                      size="mini"
                    >
                      <el-option
                        v-for="(item, index) in cntrList"
                        :key="index.fId"
                        :label="item.fName"
                        :value="item.fId"
                      >
                      </el-option>
                    </el-select>
                  </template>
                </el-table-column>
                <el-table-column
                  prop="fCntrcount"
                  label="箱量"
                  header-align="center"
                  align="center"
                >
                  <template slot-scope="scope">
                    <el-input
                      placeholder="请输入箱量"
                      v-model="scope.row.fCntrcount"
                      size="mini"
                    >
                    </el-input>
                  </template>
                </el-table-column>
                <el-table-column
                  prop="fCntrcount"
                  label="操作"
                  header-align="center"
                  align="center"
                  width="50"
                >
                  <template slot-scope="scope">
                    <el-button
                      size="mini"
                      type="text"
                      @click.native.prevent="deleteRow(scope.$index, CntrTable)"
                      icon="el-icon-delete"
                    ></el-button>
                  </template>
                </el-table-column>
              </el-table>
              <el-tag class="tag-hover" @click="addRow"
                ><i class="el-icon-plus"></i
              ></el-tag>
            </div>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item>
            <el-button
              @click="
                detailsHidden2
                  ? (detailsHidden2 = false)
                  : (detailsHidden2 = true)
              "
              v-if="dataShowcar == '0'"
              >{{ detailsHidden2 ? "隐藏" : "更多" }}
            </el-button>
            <el-button
              @click="
                detailsHidden ? (detailsHidden = false) : (detailsHidden = true)
              "
              >{{ detailsHidden ? "隐藏" : "展开" }}
            </el-button>
          </el-form-item>
        </el-col>
      </el-row>
      <div v-if="detailsHidden">
        <el-row style="margin-top: 30px">
          <el-col :span="8">
            <el-form-item label="仓库联系人" prop="fContacts">
              <el-input
                v-model="form.fContacts"
                style="width: 80%"
                :disabled="browseStatus"
                placeholder="仓库联系人"
              />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="仓库电话" prop="fTel">
              <el-input
                v-model="form.fTel"
                :disabled="browseStatus"
                style="width: 80%"
                placeholder="请输仓库入电话"
              />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="8">
            <el-form-item label="制单人" prop="createBy">
              <el-input
                disabled
                v-model="form.createBy"
                style="width: 80%"
                placeholder="制单人"
              />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="制单部门" prop="fDeptid">
              <el-select
                v-model="form.fDeptid"
                filterable
                disabled
                style="width: 80%"
                remote
              >
                <el-option
                  v-for="(item, index) in deptOptions"
                  :key="index.deptId"
                  :label="item.deptName"
                  :value="item.deptId"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item disabled label="制单日期" prop="createTime">
              <el-date-picker
                v-model="form.createTime"
                size="large"
                type="date"
                disabled
                style="width: 80%"
                value-format="timestamp"
                placeholder="制单日期"
              >
              </el-date-picker>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="8">
            <el-form-item label="品名" prop="fProductName">
              <el-input
                v-model="form.fProductName"
                style="width: 80%"
                disabled
                placeholder="品名"
              />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="品牌">
              <el-input
                v-model="form.fMarks"
                style="width: 80%"
                disabled
                placeholder="品牌"
              />
            </el-form-item>
          </el-col>
        </el-row>
      </div>
    </el-form>
    <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-collapse v-model="collapselist">
      <el-collapse-item name="1">
        <template slot="title">
          <i class="el-icon-s-home" style="font-size: 16px"></i>
          <span style="font-size: 16px; font-weight: bolder; margin-left: 5px"
            >通关明细</span
          >
        </template>
        <div>
          <el-row
            type="flex"
            justify="space-between"
            style="margin-bottom: 10px"
          >
            <el-col>
              <el-button
                type="primary"
                :disabled="browseStatus"
                size="small"
                @click="addRelevant"
                >导入库存
              </el-button>
              <el-button
                :disabled="browseStatus"
                type="primary"
                size="small"
                @click="saveForm"
                >保 存</el-button
              >
            </el-col>
            <el-col style="display: flex; justify-content: flex-end">
              <el-button
                size="small"
                type="info"
                :disabled="browseStatus"
                prop="打印"
                @click="printZyd"
                >作业单
              </el-button>
              <el-button
                size="small"
                :disabled="browseStatus"
                @click="discharge"
                >叫车进场</el-button
              >
              <el-button
                size="small"
                :disabled="dataListSelection.length <= 0 || browseStatus"
                @click="creditClick"
                >调拨确认
              </el-button>
              <el-button
                size="small"
                :disabled="dataWithdrawList.length <= 0 || browseStatus"
                @click.prevent="withdrawClick"
                >撤回调拨
              </el-button>
              <el-dropdown @command="handleCommand" style="margin-left: 10px">
                <el-button :disabled="browseStatus" size="small" type="success">
                  打印单据<i class="el-icon-arrow-down el-icon--right"></i>
                </el-button>
                <el-dropdown-menu slot="dropdown">
                  <el-dropdown-item command="a">收货单</el-dropdown-item>
                  <el-dropdown-item command="b">入库单</el-dropdown-item>
                  <el-dropdown-item command="c">移库单</el-dropdown-item>
                </el-dropdown-menu>
              </el-dropdown>
              <div style="margin: 0 10px">
                <el-button
                  icon="el-icon-setting"
                  size="mini"
                  circle
                  @click="showSetting = !showSetting"
                ></el-button>
              </div>
            </el-col>
          </el-row>
          <el-table
            :data="detailList"
            tooltip-effect="dark"
            stripe
            :summary-method="getSummaries"
            @selection-change="Selectinventory"
            show-summary
          >
            <el-table-column type="selection" width="55" align="center" fixed />
            <el-table-column label="序号" type="index" width="80" 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"
              sortable
            >
              <template slot-scope="scope">
                <span v-if="item.label == 'fBillstatus'">
                  <span v-if="scope.row.fBillstatus === 10">计划</span>
                  <span v-if="scope.row.fBillstatus === 20">待调拨</span>
                  <span v-if="scope.row.fBillstatus === 30">调拨中</span>
                  <span v-if="scope.row.fBillstatus === 40">已调拨</span>
                </span>
                <span v-else-if="item.label == 'fBsdate'">
                  <el-date-picker
                    v-model="scope.row.fBsdate"
                    style="width: 138px"
                    :disabled="browseStatus || scope.row.fBillstatus >= 40"
                    type="date"
                    value-format="timestamp"
                    placeholder="业务日期"
                  >
                  </el-date-picker>
                </span>
                <span v-else-if="item.label == 'fGoodsid'">
                  {{ scope.row.fGoodsid | goodsFormat(goodsOptions) }}
                </span>
                <span v-else-if="item.label == 'fTransferWarehouselocid'">
                  <el-input
                    placeholder="请选择"
                    :disabled="
                      !form.fWarehouseid ||
                      browseStatus ||
                      scope.row.fBillstatus >= 40
                    "
                    v-model="scope.row.fWarehouseInformation"
                    @focus="getTreeselect(scope)"
                  >
                  </el-input>
                </span>
                <span v-else-if="item.label == 'fBusinessType'">
                  <el-select
                    v-model="scope.row.fBusinessType"
                    filterable
                    disabled
                    placeholder="请选择商品属性"
                  >
                    <el-option
                      v-for="(item, index) in fStorageTypeOptions"
                      :key="index.dictValue"
                      :label="item.dictLabel"
                      :value="item.dictValue"
                    />
                  </el-select>
                </span>
                <span v-else-if="item.label == 'fQty'">
                  <el-input
                    @change="qtyChange(scope.row)"
                    v-model="scope.row.fQty"
                    :disabled="browseStatus || scope.row.fBillstatus == 40"
                    placeholder="出库件数"
                  />
                </span>
                <span v-else-if="item.label == 'fGrossweight'">
                  <el-input
                    :disabled="browseStatus || scope.row.fBillstatus == 40"
                    v-model="scope.row.fGrossweight"
                    @change="changeOutStock(scope.row)"
                    placeholder="出库毛重"
                  />
                </span>
                <span v-else-if="item.label == 'fNetweight'">
                  <el-input
                    v-model="scope.row.fNetweight"
                    :disabled="browseStatus || scope.row.fBillstatus == 40"
                    @change="changeOutStock(scope.row)"
                    placeholder="出库净重"
                  />
                </span>
                <span v-else-if="item.label == 'fPackagespecs'">
                  <el-input
                    v-model="scope.row.fPackagespecs"
                    :disabled="browseStatus || scope.row.fBillstatus >= 40"
                    placeholder="包装规格"
                  />
                </span>
                <span v-else-if="item.label == 'fCntrtype'">
                  <el-input
                    v-model="scope.row.fCntrtype"
                    :disabled="browseStatus || scope.row.fBillstatus >= 40"
                    placeholder="箱型"
                  />
                </span>
                <span v-else-if="item.label == 'fCntqty'">
                  <el-input
                    oninput='this.value=this.value.replace(/[^\-?\d.]/g,"").replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3")'
                    v-model="scope.row.fCntqty"
                    placeholder="箱量"
                    :disabled="browseStatus || scope.row.fBillstatus >= 40"
                  />
                </span>
                <span v-else-if="item.label == 'fGoodsval'">
                  <el-input
                    v-model="scope.row.fGoodsval"
                    placeholder="货值"
                    :disabled="browseStatus || scope.row.fBillstatus >= 40"
                  />
                </span>
                <span v-else-if="item.label == 'fTruckno'">
                  <el-input
                    v-model="scope.row.fTruckno"
                    placeholder="车号"
                    :disabled="browseStatus || scope.row.fBillstatus >= 40"
                  />
                </span>
                <span v-else-if="item.label == 'fDriverName'">
                  <el-input
                    v-model="scope.row.fDriverName"
                    placeholder="司机名"
                    :disabled="browseStatus || scope.row.fBillstatus >= 40"
                  />
                </span>
                <span v-else-if="item.label == 'fDriverTel'">
                  <el-input
                    v-model="scope.row.fDriverTel"
                    placeholder="司机电话"
                    :disabled="browseStatus || scope.row.fBillstatus >= 40"
                  />
                </span>
                <span v-else-if="item.label == 'fDriverIdCar'">
                  <el-input
                    v-model="scope.row.fDriverIdCar"
                    placeholder="司机身份证"
                    :disabled="browseStatus || scope.row.fBillstatus >= 40"
                  />
                </span>
                <span v-else-if="item.label == 'fIsPass'">
                  <el-select
                    v-model="scope.row.fIsPass"
                    placeholder="是否放行"
                    :disabled="browseStatus || scope.row.fBillstatus == 40"
                    style="width: 80%"
                  >
                    <el-option
                      v-for="(item, index) in releaseList"
                      :key="index.dictValue"
                      :label="item.dictLabel"
                      :value="item.dictValue"
                    />
                  </el-select>
                </span>
                <span v-else-if="item.label == 'fFleet'">
                  <el-select
                    v-model="scope.row.fFleet"
                    placeholder="车队"
                    :disabled="browseStatus || scope.row.fBillstatus >= 40"
                    style="width: 80%"
                  >
                    <el-option
                      v-for="(item, index) in fleetOptions"
                      :key="index.fId"
                      :label="item.fName"
                      :value="item.fId"
                    ></el-option>
                  </el-select>
                </span>
                <span v-else-if="item.label == 'fLntype'">
                  <el-select
                    v-model="scope.row.fLntype"
                    placeholder="装卸方式"
                    :disabled="browseStatus || scope.row.fBillstatus >= 40"
                    style="width: 80%"
                  >
                    <el-option
                      v-for="(item, index) in unloadModes"
                      :key="index.dictValue"
                      :label="item.dictLabel"
                      :value="item.dictValue"
                    />
                  </el-select>
                </span>
                <span v-else-if="item.label == 'fForkliftman'">
                  <el-input
                    v-model="scope.row.fForkliftman"
                    placeholder="叉车工"
                    :disabled="browseStatus || scope.row.fBillstatus >= 40"
                  />
                </span>
                <span v-else-if="item.label == 'fStevedore'">
                  <el-input
                    v-model="scope.row.fStevedore"
                    placeholder="装卸工"
                    :disabled="browseStatus || scope.row.fBillstatus >= 40"
                  />
                </span>
                <span v-else-if="item.label == 'fLocalcntrno'">
                  <el-input
                    v-model="scope.row.fLocalcntrno"
                    placeholder="库内箱号"
                    :disabled="browseStatus || scope.row.fBillstatus >= 40"
                    v-Alphabet
                  />
                </span>
                <span v-else-if="item.label == 'fSealno'">
                  <el-input
                    v-model="scope.row.fSealno"
                    placeholder="封号"
                    :disabled="browseStatus || scope.row.fBillstatus >= 40"
                  />
                </span>
                <span v-else-if="item.label == 'remark'">
                  <el-input
                    v-model="scope.row.remark"
                    placeholder="备注"
                    :disabled="browseStatus"
                    show-word-limit
                  />
                </span>
                <span v-else>{{ scope.row[item.label] }}</span>
              </template>
            </el-table-column>
            <el-table-column
              header-align="center"
              align="center"
              label="操作"
              width="130px"
              fixed="right"
            >
              <template slot-scope="scope">
                <el-button
                  :disabled="
                    browseStatus ||
                    scope.row.fBillstatus === 20 ||
                    scope.row.fBillstatus === 30 ||
                    scope.row.fBillstatus === 40
                  "
                  type="text"
                  @click.native.prevent="wDeleteRow(scope.$index, detailList)"
                  size="small"
                  >移除</el-button
                >
              </template>
            </el-table-column>
          </el-table>
        </div>
      </el-collapse-item>

      <el-collapse-item>
        <template slot="title">
          <i class="el-icon-s-order" style="font-size: 16px"></i>
          <span style="font-size: 16px; font-weight: bolder; margin-left: 5px"
            >附件明细</span
          >
        </template>
        <up-load
          :relevantAttachments="relevantAttachments"
          :createBy="form.createBy"
          :browseStatus="browseStatus"
        ></up-load>
      </el-collapse-item>

      <el-collapse-item>
        <template slot="title">
          <i class="el-icon-circle-plus" style="font-size: 16px"></i>
          <span style="font-size: 16px; font-weight: bolder; margin-left: 5px"
            >收款信息</span
          >
        </template>
        <div
          class="dialogTableTitle flex a-center jlr"
          style="
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin: 10px 0;
          "
        >
          <div>
            <el-button
              size="small"
              type="primary"
              :disabled="browseStatus"
              @click.prevent="addCollection()"
              >新行
            </el-button>
            <!-- <el-button :disabled="browseStatus" @click.prevent="deleteRow(warehouseDrList)"
              >删除
            </el-button> -->
            <el-button
              type="primary"
              size="small"
              :disabled="browseStatus"
              @click="saveForm"
              >保 存</el-button
            >
            <!-- <el-button @click.prevent="addAgreement()" type="warning">仓储费协议</el-button> -->
            <el-button
              size="small"
              @click.prevent="handleSelect(3)"
              :disabled="browseStatus"
              type="danger"
              >作业费协议</el-button
            >
          </div>
        </div>
        <el-table
          :data="warehouseDrList"
          ref="table"
          tooltip-effect="dark"
          border
          stripe
          show-summary
          @selection-change="Collectionoptions"
          :summary-method="warehouseDrSummaries"
        >
          <el-table-column type="selection" width="55" align="center" />
          <el-table-column label="序号" type="index" width="80">
          </el-table-column>
          <el-table-column
            prop="fCorpid"
            header-align="center"
            align="center"
            width="180px"
            label="客户名称"
          >
            <template slot-scope="scope">
              <el-select
                v-model="scope.row.fCorpid"
                filterable
                clearable
                placeholder="客户名称"
                :disabled="browseStatus"
              >
                <el-option
                  v-for="(item, index) in fMblnoOptions"
                  :key="index.fId"
                  :label="item.fName"
                  :value="item.fId"
                ></el-option>
              </el-select>
            </template>
          </el-table-column>
          <el-table-column
            prop="fFeeid"
            header-align="center"
            align="center"
            width="180px"
            label="费用名称"
          >
            <template slot-scope="scope">
              <el-select
                v-model="scope.row.fFeeid"
                clearable
                filterable
                placeholder="费用名称"
                :disabled="browseStatus"
              >
                <el-option
                  v-for="(item, index) in fDNameOptions"
                  :key="index.fId"
                  :label="item.fName"
                  :value="item.fId"
                ></el-option>
              </el-select>
            </template>
          </el-table-column>
          <el-table-column
            prop="fBusinessType"
            header-align="center"
            align="center"
            width="180px"
            label="作业类型"
          >
            <template slot-scope="scope">
              <el-select
                style="width: 80%"
                v-model="scope.row.fBusinessType"
                filterable
                disabled
              >
                <el-option
                  v-for="(item, index) in businessTypeOption"
                  :key="index.dictValue"
                  :label="item.dictLabel"
                  :value="item.dictValue"
                ></el-option>
              </el-select>
            </template>
          </el-table-column>
          <el-table-column
            prop="fFeeUnitid"
            header-align="center"
            align="center"
            width="180px"
            label="计价单位"
          >
            <template slot-scope="scope">
              <el-select
                v-model="scope.row.fFeeUnitid"
                placeholder="请选择计价单位"
                clearable
                :disabled="browseStatus"
                @change="changeFeeUnit(scope.row)"
              >
                <el-option
                  v-for="(item, index) in fFeetUnitOptions"
                  :key="index.dictValue"
                  :label="item.dictLabel"
                  :value="item.dictValue"
                />
              </el-select>
            </template>
          </el-table-column>
          <el-table-column
            prop="fQty"
            header-align="center"
            align="center"
            width="130px"
            label="数量"
          >
            <template slot-scope="scope">
              <el-input
                oninput='this.value=this.value.replace(/[^\-?\d.]/g,"").replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3")'
                v-model="scope.row.fQty"
                placeholder="数量"
                :disabled="browseStatus"
                @change="changeContractAmt(scope.row)"
                show-word-limit
              />
            </template>
          </el-table-column>
          <el-table-column
            prop="fUnitprice"
            header-align="center"
            align="center"
            width="130px"
            label="单价"
          >
            <template slot-scope="scope">
              <el-input
                oninput='this.value=this.value.replace(/[^\-?\d.]/g,"").replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3")'
                v-model="scope.row.fUnitprice"
                placeholder="单价"
                :disabled="browseStatus || scope.row.fSrcTypeId !== 0"
                @change="changeContractAmt(scope.row)"
                show-word-limit
              />
            </template>
          </el-table-column>
          <el-table-column
            prop="fAmount"
            header-align="center"
            align="center"
            width="130px"
            label="金额"
          >
            <template slot-scope="scope">
              <el-input
                disabled
                oninput='this.value=this.value.replace(/[^\-?\d.]/g,"").replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3")'
                v-model="scope.row.fAmount"
                placeholder="金额"
                show-word-limit
              />
            </template>
          </el-table-column>
          <el-table-column
            prop="fStltypeid"
            header-align="center"
            align="center"
            width="130px"
            label="结算方式"
          >
            <template slot-scope="scope">
              <el-select
                v-model="scope.row.fStltypeid"
                placeholder="请选择结算表票结、月结"
                :disabled="browseStatus"
              >
                <el-option
                  v-for="(item, index) in fStltypeOptions"
                  :key="index.dictValue"
                  :label="item.dictLabel"
                  :value="item.dictValue"
                ></el-option>
              </el-select>
            </template>
          </el-table-column>
          <el-table-column
            prop="fCurrency"
            header-align="center"
            align="center"
            width="130px"
            label="币别"
          >
            <template slot-scope="scope">
              <el-input
                v-model="scope.row.fCurrency"
                :disabled="browseStatus"
                placeholder="币别"
                show-word-limit
              />
            </template>
          </el-table-column>
          <el-table-column
            prop="fExrate"
            header-align="center"
            align="center"
            width="130px"
            label="汇率"
          >
            <template slot-scope="scope">
              <el-input
                v-model="scope.row.fExrate"
                :disabled="browseStatus"
                placeholder="汇率"
                show-word-limit
              />
            </template>
          </el-table-column>
          <el-table-column
            prop="fTaxrate"
            header-align="center"
            align="center"
            width="130px"
            label="税率"
          >
            <template slot-scope="scope">
              <el-input
                v-model="scope.row.fTaxrate"
                :disabled="browseStatus"
                placeholder="税率"
                show-word-limit
              />
            </template>
          </el-table-column>
          <el-table-column
            prop="fMblno"
            header-align="center"
            align="center"
            width="130px"
            label="提单号"
          >
            <template slot-scope="scope">
              <el-input
                v-model="scope.row.fMblno"
                :disabled="browseStatus"
                placeholder="提单号"
                show-word-limit
              />
            </template>
          </el-table-column>
          <el-table-column
            prop="fProductName"
            header-align="center"
            align="center"
            width="140px"
            label="品名"
          >
            <template slot-scope="scope">
              <el-input
                v-model="scope.row.fProductName"
                :disabled="browseStatus"
                placeholder="品名"
                show-word-limit
              />
            </template>
          </el-table-column>
          <el-table-column
            prop="fMarks"
            header-align="center"
            align="center"
            width="130px"
            label="品牌"
          >
            <template slot-scope="scope">
              <el-input
                v-model="scope.row.fMarks"
                :disabled="browseStatus"
                placeholder="品牌"
                show-word-limit
              />
            </template>
          </el-table-column>
          <el-table-column
            prop="fSrcTypeId"
            header-align="center"
            align="center"
            width="130px"
            label="来源"
          >
            <template slot-scope="scope">
              <span v-if="scope.row.fSrcTypeId === 0">录入</span>
              <span v-if="scope.row.fSrcTypeId !== 0">协议</span>
            </template>
          </el-table-column>

          <el-table-column
            prop="remarks"
            header-align="center"
            align="center"
            width="150px"
            label="备注"
          >
            <template slot-scope="scope">
              <el-input
                v-model="scope.row.Remarks"
                :disabled="browseStatus"
                placeholder="备注"
                show-word-limit
              />
            </template>
          </el-table-column>
          <el-table-column
            header-align="center"
            align="center"
            label="操作"
            width="200px"
          >
            <template slot-scope="scope">
              <el-button
                @click.native.prevent="deleteRow(scope.$index, warehouseDrList)"
                size="small"
                :disabled="browseStatus"
                >移除</el-button
              >
            </template>
          </el-table-column>
        </el-table>
      </el-collapse-item>

      <el-collapse-item>
        <template slot="title">
          <i class="el-icon-remove" style="font-size: 16px"></i>
          <span style="font-size: 16px; font-weight: bolder; margin-left: 5px"
            >付款信息</span
          >
        </template>
        <div
          class="dialogTableTitle flex a-center jlr"
          style="
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin: 10px 0;
          "
        >
          <div>
            <el-button
              type="primary"
              :disabled="browseStatus"
              @click.prevent="addpayment()"
              size="small"
              >新行
            </el-button>
            <el-button
              type="primary"
              size="small"
              @click="saveForm"
              :disabled="browseStatus"
              >保 存</el-button
            >
            <el-button
              type="danger"
              size="small"
              @click.prevent="handleSelect(1)"
              :disabled="browseStatus"
              >作业费协议</el-button
            >
          </div>
        </div>
        <el-table
          :data="warehouseCrList"
          ref="table"
          tooltip-effect="dark"
          border
          stripe
          show-summary
          :summary-method="warehouseDrSummaries"
        >
          <el-table-column type="selection" width="50" align="center" fixed />
          <el-table-column
            label="序号"
            type="index"
            width="50"
            fixed
            align="center"
          />
          <el-table-column
            prop="fCorpid"
            header-align="center"
            align="center"
            width="180px"
            label="客户名称"
          >
            <template slot-scope="scope">
              <el-select
                v-model="scope.row.fCorpid"
                filterable
                clearable
                placeholder="客户名称"
                :disabled="browseStatus"
              >
                <el-option
                  v-for="(item, index) in fMblnoOptions"
                  :key="index.fId"
                  :label="item.fName"
                  :value="item.fId"
                ></el-option>
              </el-select>
            </template>
          </el-table-column>
          <el-table-column
            prop="fFeeid"
            header-align="center"
            align="center"
            width="180px"
            label="费用名称"
          >
            <template slot-scope="scope">
              <el-select
                v-model="scope.row.fFeeid"
                clearable
                filterable
                placeholder="费用名称"
                :disabled="browseStatus"
              >
                <el-option
                  v-for="(item, index) in fCNameOptions"
                  :key="index.fId"
                  :label="item.fName"
                  :value="item.fId"
                ></el-option>
              </el-select>
            </template>
          </el-table-column>
          <el-table-column
            prop="fBusinessType"
            header-align="center"
            align="center"
            width="180px"
            label="作业类型"
          >
            <template slot-scope="scope">
              <el-select
                style="width: 80%"
                v-model="scope.row.fBusinessType"
                filterable
                disabled
              >
                <el-option
                  v-for="(item, index) in businessTypeOption"
                  :key="index.dictValue"
                  :label="item.dictLabel"
                  :value="item.dictValue"
                ></el-option>
              </el-select>
            </template>
          </el-table-column>

          <el-table-column
            prop="fFeeUnitid"
            header-align="center"
            align="center"
            width="180px"
            label="计价单位"
          >
            <template slot-scope="scope">
              <el-select
                v-model="scope.row.fFeeUnitid"
                placeholder="请选择计价单位"
                clearable
                :disabled="browseStatus"
                @change="changeFeeUnit(scope.row)"
              >
                <el-option
                  v-for="(item, index) in fFeetUnitOptions"
                  :key="index.dictValue"
                  :label="item.dictLabel"
                  :value="item.dictValue"
                />
              </el-select>
            </template>
          </el-table-column>
          <el-table-column
            prop="fQty"
            header-align="center"
            align="center"
            width="150px"
            label="数量"
          >
            <template slot-scope="scope">
              <el-input
                oninput='this.value=this.value.replace(/[^\-?\d.]/g,"").replace(/^(\-)*(\d+)\.(\d\d\d\d).*$/, "$1$2.$3")'
                v-model="scope.row.fQty"
                :disabled="browseStatus"
                @change="changeContractAmt(scope.row)"
                placeholder="数量"
                show-word-limit
              />
            </template>
          </el-table-column>
          <el-table-column
            prop="fUnitprice"
            header-align="center"
            align="center"
            width="150px"
            label="单价"
          >
            <template slot-scope="scope">
              <el-input
                oninput='this.value=this.value.replace(/[^\-?\d.]/g,"").replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3")'
                v-model="scope.row.fUnitprice"
                :disabled="browseStatus || scope.row.fSrcTypeId !== 0"
                @change="changeContractAmt(scope.row)"
                placeholder="单价"
                show-word-limit
              />
            </template>
          </el-table-column>
          <el-table-column
            prop="fAmount"
            header-align="center"
            align="center"
            width="150px"
            label="金额"
          >
            <template slot-scope="scope">
              <el-input
                disabled
                oninput='this.value=this.value.replace(/[^\-?\d.]/g,"").replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3")'
                v-model="scope.row.fAmount"
                placeholder="金额"
                show-word-limit
              />
            </template>
          </el-table-column>
          <el-table-column
            prop="fStltypeid"
            header-align="center"
            align="center"
            width="130px"
            label="结算方式"
          >
            <template slot-scope="scope">
              <el-select
                v-model="scope.row.fStltypeid"
                placeholder="请选择结算表票结、月结"
                :disabled="browseStatus"
              >
                <el-option
                  v-for="(item, index) in fStltypeOptions"
                  :key="index.dictValue"
                  :label="item.dictLabel"
                  :value="item.dictValue"
                ></el-option>
              </el-select>
            </template>
          </el-table-column>

          <el-table-column
            prop="fCurrency"
            header-align="center"
            align="center"
            width="150px"
            label="币别"
          >
            <template slot-scope="scope">
              <el-input
                v-model="scope.row.fCurrency"
                :disabled="browseStatus"
                placeholder="币别"
                show-word-limit
              />
            </template>
          </el-table-column>
          <el-table-column
            prop="fExrate"
            header-align="center"
            align="center"
            width="150px"
            label="汇率"
          >
            <template slot-scope="scope">
              <el-input
                v-model="scope.row.fExrate"
                :disabled="browseStatus"
                placeholder="汇率"
                show-word-limit
              />
            </template>
          </el-table-column>
          <el-table-column
            prop="fTaxrate"
            header-align="center"
            align="center"
            width="150px"
            label="税率"
          >
            <template slot-scope="scope">
              <el-input
                v-model="scope.row.fTaxrate"
                :disabled="browseStatus"
                placeholder="税率"
                show-word-limit
              />
            </template>
          </el-table-column>

          <el-table-column
            prop="fMblno"
            header-align="center"
            align="center"
            width="130px"
            label="提单号"
          >
            <template slot-scope="scope">
              <el-input
                v-model="scope.row.fMblno"
                :disabled="browseStatus"
                placeholder="提单号"
                show-word-limit
              />
            </template>
          </el-table-column>
          <el-table-column
            prop="fProductName"
            header-align="center"
            align="center"
            width="140px"
            label="品名"
          >
            <template slot-scope="scope">
              <el-input
                v-model="scope.row.fProductName"
                :disabled="browseStatus"
                placeholder="品名"
                show-word-limit
              />
            </template>
          </el-table-column>

          <el-table-column
            prop="fMarks"
            header-align="center"
            align="center"
            width="130px"
            label="品牌"
          >
            <template slot-scope="scope">
              <el-input
                v-model="scope.row.fMarks"
                :disabled="browseStatus"
                placeholder="品牌"
                show-word-limit
              />
            </template>
          </el-table-column>
          <el-table-column
            prop="fSrcTypeId"
            header-align="center"
            align="center"
            width="130px"
            label="来源"
          >
            <template slot-scope="scope">
              <span v-if="scope.row.fSrcTypeId === 0">录入</span>
              <span v-if="scope.row.fSrcTypeId !== 0">协议</span>
            </template>
          </el-table-column>
          <el-table-column
            prop="remarks"
            header-align="center"
            align="center"
            width="150px"
            label="备注"
          >
            <template slot-scope="scope">
              <el-input
                v-model="scope.row.remarks"
                :disabled="browseStatus"
                placeholder="备注"
                show-word-limit
              />
            </template>
          </el-table-column>
          <el-table-column
            header-align="center"
            align="center"
            width="200px"
            label="操作"
          >
            <template slot-scope="scope">
              <!-- <el-button size="small">审核费用</el-button> -->
              <el-button
                @click.native.prevent="deleteRow(scope.$index, warehouseCrList)"
                size="small"
                :disabled="browseStatus"
                >移除</el-button
              >
            </template>
          </el-table-column>
        </el-table>
      </el-collapse-item>
    </el-collapse>
    <el-dialog
      title="在库物资"
      :modal="false"
      style="box-shadow: 0 1px 3px rgba(0, 0, 0, 0) !important"
      :visible.sync="whgenlegVisible"
      width="85%"
      @close="init2()"
      v-dialogDrag
      :close-on-click-modal="false"
    >
      <el-dialog
        title="自定义列显示"
        :visible.sync="showSetting2"
        width="700px"
        v-dialogDrag
        append-to-body
        :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="allCheck2"
            label="全选"
            @change="allChecked2"
          ></el-checkbox>
        </div>
        <div style="padding: 4px; display: flex; justify-content: center">
          <draggable
            v-model="setRowList2"
            group="site"
            animation="300"
            @start="onStart"
            @end="onEnd"
            handle=".indraggable"
          >
            <transition-group>
              <div
                v-for="item in setRowList2"
                :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="showSetting2 = false">取 消</el-button>
          <el-button @click="delRow2" type="danger">重 置</el-button>
          <el-button type="primary" @click="save2()">确 定</el-button>
        </span>
      </el-dialog>
      <el-form ref="whgenlegParams" :model="whgenlegParams">
        <el-row>
          <el-col :span="5">
            <el-form-item label="提单号" prop="fMblno" label-width="70px">
              <el-input
                v-model="whgenlegParams.fMblno"
                placeholder="请输入提单号"
                clearable
              />
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="箱号" prop="fCntrno" label-width="70px">
              <el-input
                v-model="whgenlegParams.fCntrno"
                placeholder="请输入箱号"
                clearable
              />
            </el-form-item>
          </el-col>
          <el-col :span="10">
            <el-form-item
              label="入库日期区间"
              prop="orgStorageDate"
              label-width="120px"
            >
              <el-date-picker
                style="width: 80%"
                v-model="whgenlegParams.orgStorageDate"
                type="daterange"
                start-placeholder="开始日期"
                end-placeholder="结束日期"
                value-format="yyyy-MM-dd HH:mm:ss"
                :default-time="['00:00:00', '23:59:59']"
              >
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="2">
            <el-button
              type="cyan"
              icon="el-icon-search"
              @click="getDetailsList()"
              >搜索</el-button
            >
          </el-col>
          <el-col :span="2" style="display: flex; justify-content: flex-end">
            <el-button
              icon="el-icon-setting"
              circle
              @click="showSetting2 = !showSetting2"
            ></el-button>
          </el-col>
        </el-row>
      </el-form>
      <el-table
        :data="whgenlegList"
        ref="table"
        tooltip-effect="dark"
        width="100%"
        stripe
        @selection-change="whgenlegSelectionChange"
      >
        <el-table-column type="selection" width="50"> </el-table-column>
        <el-table-column
          v-for="(item, index) in getRowList2"
          :key="index"
          :label="item.name"
          :width="item.width"
          :prop="item.label"
          align="center"
          :fixed="item.fixed"
          sortable
        >
          <template slot-scope="scope">
            <span v-if="item.label == 'fQtyblc2'">
              <el-input
                @change="qtyChange(scope.row)"
                v-model="scope.row.fQtyblc2"
                placeholder="件数"
              />
            </span>
            <span v-else-if="item.label == 'fGrossweightblc2'">
              <el-input
                v-model="scope.row.fGrossweightblc2"
                @change="changeOutStock(scope.row)"
                placeholder="毛重"
              />
            </span>
            <span v-else-if="item.label == 'fNetweightblc2'">
              <el-input
                v-model="scope.row.fNetweightblc2"
                @change="changeOutStock(scope.row)"
                placeholder="净重"
              />
            </span>
            <span v-else>{{ scope.row[item.label] }}</span>
          </template>
        </el-table-column>
      </el-table>
      <pagination
        v-show="whgenlegTotal > 0"
        :total="whgenlegTotal"
        :page.sync="whgenlegParams.pageNum"
        :limit.sync="whgenlegParams.pageSize"
        @pagination="getDetailsList"
      />
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="whgenlegData">导入库存总账</el-button>
        <el-button @click="whgenlegVisible = false">取 消</el-button>
      </div>
    </el-dialog>
    <el-dialog
      :visible.sync="print_zyd"
      width="70%"
      :close-on-click-modal="false"
      :modal="false"
    >
      <div id="print_area1" class="print-div">
        <div
          class="print-title"
          style="
            display: flex;
            justify-content: center;
            font-size: 24px;
            margin-bottom: 5px;
          "
        >
          {{ company }}作业单
        </div>
        <div
          style="
            display: flex;
            justify-content: center;
            font-size: 18px;
            margin-bottom: 5px;
          "
        ></div>
        <div class="print_table" style="display: flex">
          <table border="0" cellspacing="0" cellpadding="0" style="width: 100%">
            <tr>
              <td>作业类型</td>
              <td colspan="2">
                {{ form.fBusinessType | fBusinessTypeFormat }}
              </td>
              <td>入库时间</td>
              <td colspan="2"></td>
            </tr>
            <tr>
              <td>车号</td>
              <td>物品名称</td>
              <td>提单号</td>
              <td>品牌/规格/产地</td>
              <td>净重(KG)</td>
              <td>件数/规格</td>
            </tr>
            <tr v-for="(item, index) in Printinglist" :key="index">
              <td>{{ item.fTruckno }}</td>
              <td>{{ item.fGoodsids }}</td>
              <td>{{ item.fMblno }}</td>
              <td>
                {{ item.fBusinessType | fStorageFormat }}/{{ item.fMarks }}
              </td>
              <td>{{ item.fNetweight }}</td>
              <td>{{ item.fQty }}/{{ item.fPackagespecs }}</td>
            </tr>
            <tr>
              <td>备注</td>
              <td colspan="5"></td>
            </tr>
            <tr v-for="(item, index) in Collectionoptionss" :key="index">
              <td>收费</td>
              <td colspan="2">{{ item.fFeeids }}</td>
              <td colspan="3">{{ item.fAmount }} 元</td>
            </tr>
            <tr>
              <td>司机签字</td>
              <td></td>
              <td>电话</td>
              <td>{{ fDriverTel }}</td>
              <td colspan="2" rowspan="2">
                确认货物数量无误，包装于货物完好！<br />出库盖好篷布，如有违背责任自负<br />装卸工是否收小费
              </td>
            </tr>
            <tr>
              <td>制表</td>
              <td>{{ form.createBy }}</td>
              <td>机械/人工</td>
              <td></td>
            </tr>
            <tr>
              <td>地址</td>
              <td colspan="2">{{ stockaddr }}</td>
              <td>电话</td>
              <td colspan="2">{{ form.fTel }}</td>
            </tr>
          </table>
        </div>
      </div>
      <span lot="footer" class="dialog-footer">
        <el-button
          type="primary"
          size="mini"
          :disabled="browseStatus"
          @click="
            print_zyd = false;
            addprint('zyd');
          "
          >打印
        </el-button>
        <el-button @click="print_zyd = false" size="mini">取消 </el-button>
      </span>
    </el-dialog>
    <el-dialog
      :visible.sync="print_rkd"
      width="70%"
      :close-on-click-modal="false"
      :modal="false"
    >
      <div id="print_area1" class="print-div">
        <div
          class="print-title"
          style="
            display: flex;
            justify-content: center;
            font-size: 24px;
            margin-bottom: 5px;
          "
        >
          {{ company }}进仓单
        </div>
        <div class="print_table" style="display: flex">
          <table border="0" cellspacing="0" cellpadding="0" style="width: 100%">
            <tr>
              <td>客户</td>
              <td>{{ form.fCorpidName }}</td>
              <td>仓库</td>
              <td>{{ form.fWarehouseids }}</td>
              <td>地址</td>
              <td colspan="2">{{ stockaddr }}</td>
            </tr>
            <tr>
              <td>保管方</td>
              <td width="200">{{ company }}</td>
              <td>联系人</td>
              <td>{{ form.fContacts }}</td>
              <td>电话</td>
              <td colspan="2">{{ form.fTel }}</td>
            </tr>
            <tr>
              <td>提单号</td>
              <td>品名</td>
              <td>箱型</td>
              <td>品牌</td>
              <td>件数</td>
              <td>重量</td>
              <td>包装规格</td>
            </tr>
            <tr>
              <td></td>
              <td></td>
              <td></td>
              <td></td>
              <td></td>
              <td></td>
              <td></td>
            </tr>
            <tr>
              <td>序号</td>
              <td>入货日期</td>
              <td>箱量(20GP)</td>
              <td>重量</td>
              <td>件数</td>
              <td>入库重量</td>
              <td>入库件数</td>
            </tr>
            <tr v-for="(item, index) in Printinglist" :key="index">
              <td>{{ index + 1 }}</td>
              <td>{{ item.fBsdate }}</td>
              <td>{{ item.fCntqty }}</td>
              <td v-if="item.fGrossweight">
                {{ (item.fGrossweight / 1000).toFixed(2) }}
              </td>
              <td v-else></td>
              <td>{{ item.fPlanqty }}</td>
              <td v-if="item.fNetweight">
                {{ (item.fNetweight / 1000).toFixed(2) }}
              </td>
              <td v-else></td>
              <td>{{ item.fQty }}</td>
            </tr>
            <tr>
              <td colspan="2">合计</td>
              <td>{{ allfCntqty }}</td>
              <td>{{ (allfGrossweight / 1000).toFixed(2) }}</td>
              <td>{{ allfPlanqty }}</td>
              <td>{{ (allfNetweight / 1000).toFixed(2) }}</td>
              <td>{{ allfQty }}</td>
            </tr>
            <tr>
              <td>备注</td>
              <td colspan="6"></td>
            </tr>
            <tr>
              <td colspan="7">
                本进仓单经仓管员签字并经保管方盖章后即专项作为货物所有人的货权证明，本单据不得转让。
              </td>
            </tr>
          </table>
        </div>
        <div
          style="display: flex; justify-content: space-between; font-size: 12px"
        >
          <div>开单员：</div>
          <div style="width: 150px">仓管员：</div>
        </div>
        <div
          style="display: flex; justify-content: space-between; font-size: 12px"
        >
          <div>开单时间：</div>
          <div style="width: 150px">(盖章)</div>
        </div>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button
          type="primary"
          :disabled="browseStatus"
          @click="
            print_rkd = false;
            addprint();
          "
          >打印
        </el-button>
        <el-button @click="print_rkd = false">取消 </el-button>
      </span>
    </el-dialog>
    <el-dialog
      :visible.sync="print_shd"
      width="70%"
      :close-on-click-modal="false"
      :modal="false"
    >
      <div id="print_area1" class="print-div">
        <div
          class="print-title"
          style="
            display: flex;
            justify-content: center;
            font-size: 24px;
            margin-bottom: 5px;
          "
        >
          {{ company }}收货单
        </div>
        <div class="print_table" style="display: flex">
          <table border="0" cellspacing="0" cellpadding="0" style="width: 100%">
            <tr>
              <td>车号</td>
              <td>{{ fTruckno }}</td>
              <td>日期</td>
              <td>{{ fBsdate }}</td>
            </tr>
            <tr v-for="(item, index) in Printinglist" :key="index">
              <td>货物品名</td>
              <td>{{ item.fGoodsids }}</td>
              <td>件数</td>
              <td>{{ item.fQty }}件</td>
            </tr>
            <tr>
              <td>备注</td>
              <td colspan="3"></td>
            </tr>
            <tr>
              <td>司机签字</td>
              <td></td>
              <td>司机电话</td>
              <td>{{ fDriverTel }}</td>
            </tr>
            <tr>
              <td>制单人</td>
              <td>{{ form.createBy }}</td>
              <td>收货人</td>
              <td>{{ form.fContacts }}</td>
            </tr>
            <tr>
              <td>地址</td>
              <td>{{ stockaddr }}</td>
              <td>电话</td>
              <td>{{ form.fTel }}</td>
            </tr>
          </table>
        </div>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button
          type="primary"
          :disabled="browseStatus"
          @click="
            addprint();
            print_shd = false;
          "
          >打印
        </el-button>
        <el-button @click="print_shd = false">取消 </el-button>
      </span>
    </el-dialog>
    <el-dialog
      :visible.sync="print_ykd"
      width="70%"
      :close-on-click-modal="false"
      :modal="false"
    >
      <div id="print_area1" class="print-div">
        <div
          class="print-title"
          style="
            display: flex;
            justify-content: center;
            font-size: 24px;
            margin-bottom: 5px;
          "
        >
          {{ company }}
        </div>
        <div
          style="
            display: flex;
            justify-content: center;
            font-size: 18px;
            margin-bottom: 5px;
          "
        >
          <div>移&nbsp;库&nbsp;单</div>
        </div>
        <div
          style="
            display: flex;
            justify-content: space-between;
            margin-bottom: 5px;
          "
          class="print_form"
        >
          <div>
            <div>业务编号：{{ form.fCustomno }}</div>
            <div>调拨日期：{{ form.fChargedate }}</div>
          </div>
          <div>
            <div>客户名称：{{ form.fCorpidName }}</div>
            <div>提单号：{{ form.fMblno }}</div>
          </div>
          <div>
            <div>存放地址：{{ stockName }}</div>
            <div>调拨：</div>
          </div>
        </div>
        <div class="print_table" style="display: flex">
          <table border="0" cellspacing="0" cellpadding="0" style="width: 100%">
            <tr>
              <td>箱号</td>
              <td>现存库区</td>
              <td>件数</td>
              <td>毛重</td>
              <td>净重</td>
              <td>移入库区</td>
            </tr>
            <tr v-for="(item, index) in Printinglist" :key="index">
              <td>{{ item.fCntrno }}</td>
              <td>{{ item.fOrgwarehouseInformation }}</td>
              <td>{{ item.fQty }}</td>
              <td>{{ item.fGrossweight }}</td>
              <td>{{ item.fNetweight }}</td>

              <td>{{ item.fWarehouseInformation }}</td>
            </tr>
          </table>
        </div>
        <div
          style="display: flex; justify-content: space-between; font-size: 12px"
        >
          <div>库管：{{ form.fContacts }}</div>
          <div style="width: 100px">叉车：</div>
        </div>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button
          type="primary"
          :disabled="browseStatus"
          @click="
            addprint();
            print_ykd = false;
          "
          >打印
        </el-button>
        <el-button @click="print_ykd = false">取消 </el-button>
      </span>
    </el-dialog>
    <!-- 选择作业费协议数据 -->
    <el-dialog
      v-dialogDrag
      title="作业费协议"
      :close-on-click-modal="false"
      :modal="false"
      style="box-shadow: 0 1px 3px rgba(0, 0, 0, 0) !important"
      :visible.sync="warehousingagreements"
      width="70%"
    >
      <template slot="作业费协议">
        <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>
      <el-menu
        :default-active="activeIndex"
        v-if="Navigation === true"
        class="el-menu-demo"
        mode="horizontal"
        @select="handleSelect"
      >
        <el-menu-item index="1">车队作业费</el-menu-item>
        <el-menu-item index="2">劳务作业费</el-menu-item>
      </el-menu>

      <el-table
        :data="tasklegList"
        ref="table"
        tooltip-effect="dark"
        width="100%"
        border
        stripe
        @selection-change="whgenlegSelectionChange"
      >
        <el-table-column type="selection" width="55"> </el-table-column>
        <el-table-column label="行号" type="index" width="80">
        </el-table-column>
        <el-table-column
          prop="fCorpname"
          header-align="center"
          align="center"
          label="客户名称"
        />
        <el-table-column
          prop="fName"
          header-align="center"
          align="center"
          label="费用名称"
        />
        <el-table-column
          prop="fFeeUnitid"
          header-align="center"
          align="center"
          width="180px"
          label="计价单位"
        >
          <template slot-scope="scope">
            <el-select
              v-model="scope.row.fFeeUnitid"
              placeholder="请选择计价单位"
              @change="changeFeeUnit(scope.row)"
              disabled
              clearable
            >
              <el-option
                v-for="(dict, index) in fFeetUnitOptions"
                :key="index.dictValue"
                :label="dict.dictLabel"
                :value="dict.dictValue"
              />
            </el-select>
          </template>
        </el-table-column>
        <el-table-column
          prop="fPrice"
          header-align="center"
          align="center"
          label="单价"
        />
      </el-table>

      <pagination
        v-show="whgenlegTotal > 0"
        :total="whgenlegTotal"
        :page.sync="pageNum"
        :limit.sync="pageSize"
        @pagination="getWhgenlegList"
      />
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="zhgenlegData">导 入</el-button>
        <el-button
          @click="
            warehousingagreements = false;
            Navigation = false;
          "
          >取 消</el-button
        >
      </div>
    </el-dialog>
    <el-dialog
      title="选择库位"
      :data="treeselectList"
      :visible.sync="choiceWarehouse"
      width="30%"
      :before-close="hanDleclose"
    >
      <treeselect
        v-model="treeselectList.fWarehouselocid"
        @select="getAlltree"
        :options="fWarehouseidOptions"
        :show-count="true"
        :disable-branch-nodes="true"
        placeholder="请选择归属库区"
      />
      <span slot="footer" class="dialog-footer">
        <el-button @click="choiceWarehouse = false">取 消</el-button>
        <el-button type="primary" @click="confirm">确 定</el-button>
      </span>
    </el-dialog>
    <div style="display: flex; justify-content: flex-end; margin-top: 10px">
      <!-- 弹窗, 新增 / 修改 -->
      <add-or-update
        v-if="addOrUpdateVisible"
        ref="addOrUpdate"
        @refreshDataList="getDataList"
      ></add-or-update>
      <approval-comments
        v-if="addOrUpdateVisib"
        ref="ApprovalComments"
        @refreshDataList="returnData"
      ></approval-comments>
      <el-button
        type="primary"
        :disabled="approvalStatus"
        v-if="form.fBillstatus > 3"
        @click="addOrUpdateHandle(form, 'f_billstatus')"
        >查看审批</el-button
      >
      <el-button
        type="primary"
        v-if="approVal === true"
        @click="addOrUpdateHand(form, 'f_billstatus')"
        >审批</el-button
      >
      <el-button :disabled="browseStatus" type="primary" @click="saveForm()"
        >保 存</el-button
      >
      <el-button
        :disabled="browseStatus"
        style="background-color: #008000; color: #fff"
        @click="submitForm()"
        >请核</el-button
      >
      <el-button type="danger" v-if="form.fBillstatus === 6" @click="revoke"
        >撤销请核</el-button
      >
      <el-button
        type="danger"
        v-if="form.fBillstatus === 4 && current == before"
        :disabled="doNot"
        @click="revokeTwo('f_billstatus')"
        >撤销审批</el-button
      >
      <el-button @click="cancel">取 消</el-button>
    </div>
  </div>
</template>

<script>
import print from "print-js";
import {
  backFee,
  RevocationApproval,
  addWhgenleg,
  getStockTransferList,
  getStockTransfer,
  delStockTransfer,
  updateCredit,
  addJoblist,
  disChargelist,
  addStockTransfer,
  warehouseSubmission,
  updateStockTransfer,
  exportStockTransfer,
  delstockTransfer_s,
  serialNumber,
  revoke,
  submitWarehousingApproval,
  ordersRevoke,
  checkCode,
} from "@/api/warehouseBusiness/stockTransfer";
import { operationAgreement } from "@/api/agreement/agreement";
import { listCorps } from "@/api/basicdata/corps";
import { listFees, getFees } from "@/api/basicdata/fees";
import {
  listWarehouse,
  treeselect,
  listWarehousesss,
} from "@/api/basicdata/warehouse";
import { listGoods } from "@/api/basicdata/goods";
import { listCntrs } from "@/api/basicdata/cntr";
import { listUser, queryUserVal } from "@/api/system/user";
import { listWhgenleg } from "@/api/reportManagement/whgenleg";
import ApprovalComments from "@/views/startApproval";
import AddOrUpdate from "@/views/viewApproval";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import UploadFile from "@/components/Uploadfile";
import Cookies from "js-cookie";
import { addSet, select, resetModule } from "@/api/system/set";
import draggable from "vuedraggable";
import upLoad from "../components/upLoad";
export default {
  name: "inStock",
  props: {
    chiId: {
      type: Number,
      required: null,
    },
    copyStatus: {
      type: Number,
      required: null,
    },
  },
  components: {
    UploadFile,
    Treeselect,
    AddOrUpdate,
    ApprovalComments,
    draggable,
    upLoad,
  },
  data() {
    return {
      pageNum: 1,
      pageSize: 10,
      dialogWhgenlegList: [],
      tasklegList: [],
      Navigation: false,
      key_id: "",
      warehousingagreements: false,
      mblnoStatus: "",
      selectloading: false,
      fMblnoOptions: [],
      warehouseDrList: [],
      relevantAttachments: [],
      warehouseCrList: [],
      fStltypeOptions: [],
      form: {},
      rules: {
        fDeptid: [{ required: true, message: " ", trigger: "blur" }],
        fBsdeptid: [{ required: true, message: " ", trigger: "blur" }],
        fCorpid: [{ required: true, message: " ", trigger: "blur" }],
        fChargedate: [{ required: true, message: " ", trigger: "blur" }],
        fMarks: [{ required: true, message: " ", trigger: "blur" }],
        fBsdate: [{ required: true, message: " ", trigger: "blur" }],
        fTrademodeid: [{ required: true, message: " ", trigger: "blur" }],
        fSbu: [{ required: true, message: " ", trigger: "blur" }],
        fBusinessType: [{ required: true, message: " ", trigger: "blur" }],
        fStorekeeper: { required: true, message: " ", trigger: "blur" },
        fWarehouseid: [{ required: true, message: " ", trigger: "blur" }],
        fbillingway: [{ required: true, message: " ", trigger: "blur" }],
        fTocorpid: [{ required: true, message: " ", trigger: "blur" }],
        fFeetUnit: [{ required: true, message: " ", trigger: "blur" }],
        fNewTrademodeid: [{ required: true, message: " ", trigger: "blur" }],
      },
      browseStatus: false,
      goodsOptions: [],
      warehouseOptions: [],
      userOptions: [],
      businessTypeOption: [],
      fCompanyOptIons: [],
      fleetOptions: [],
      fFeetUnitOptions: [],
      current: "",
      before: "",
      contrOl: false,
      isrequired: 2,
      isrequired2: 2,
      detailsHidden: false,
      CntrTable: [],
      cntrList: [],
      fTrademodeidOptions: [],
      fIfweighOptions: [],
      fSbuOptions: [],
      collapselist: ["1"],
      fStorageTypeOptions: [],
      weightList: false,
      sumMum: 0,
      detailList: [],
      fWarehouseidOptions: [],
      print_zyd: false,
      print_shd: false,
      print_rkd: false,
      print_ykd: false,
      company: "",
      Printinglist: [],
      //库位
      stockName: "",
      //库位地址
      stockaddr: "",
      Collectionoptionss: [],
      fDriverTel: "",
      fBsdate: "",
      fTruckno: "",
      allfCntqty: 0,
      allfGrossweight: 0,
      allfPlanqty: 0,
      allfNetweight: 0,
      allfQty: 0,
      fixdetaiNum: null,
      dataListSelection: [],
      dataWithdrawList: [],
      title: "",
      fCNameOptions: [],
      fDNameOptions: [],
      whgenlegTotal: 0,
      fGrossweight: 0,
      fQty: 0,
      fNetweight: 0,
      fCntqty: 0,
      activeIndex: "1",
      ifCntrnoStatus: null,
      addOrUpdateVisible: false,
      addOrUpdateVisib: false,
      approVal: false,
      approvalStatus: false,
      doNot: false,
      fCartypeOptions: [],
      fIfdamageOptions: [],
      whgenlegList: [],
      releaseList: [
        { dictLabel: "已放行", dictValue: "T" },
        { dictLabel: "未放行", dictValue: "F" },
      ],
      whgenlegVisible: false,
      whgenlegParams: {
        pageNum: 1,
        pageSize: 10,
        fCorpid: null,
        fWarehouseid: null,
        fTruckno: null,
        fCntrno: null,
        fMblno: null,
        orgStorageDate: null,
      },
      choiceWarehouse: false,
      treeselectList: {
        fWarehouselocid: null,
      },
      TreeIndex: "",
      drag: false,
      tableDate: [
        {
          surface: "0",
          label: "fBillstatus",
          name: "状态",
          checked: 0,
          width: 80,
          fixed: "left",
        },
        {
          surface: "1",
          label: "fBsdate",
          name: "调拨日期",
          checked: 0,
          width: 200,
          fixed: "left",
        },
        {
          surface: "2",
          label: "fMblno",
          name: "提单号",
          checked: 0,
          width: 100,
        },
        {
          surface: "3",
          label: "fGoodsid",
          name: "品名",
          checked: 0,
          width: 100,
        },
        {
          surface: "4",
          label: "fBusinessType",
          name: "货物属性",
          checked: 0,
          width: 100,
        },
        {
          surface: "5",
          label: "fMarks",
          name: "属性详情",
          checked: 0,
          width: 100,
        },
        {
          surface: "6",
          label: "fOrgwarehouseInformation",
          name: "库位",
          checked: 0,
          width: 150,
        },
        {
          surface: "7",
          label: "fTransferWarehouselocid",
          name: "调入库位",
          checked: 0,
          width: 100,
        },
        {
          surface: "8",
          label: "fPlanqty",
          name: "结余库存",
          checked: 0,
          width: 100,
        },
        {
          surface: "9",
          label: "fPlangrossweight",
          name: "结余毛重(kg)",
          checked: 0,
          width: 120,
        },
        {
          surface: "10",
          label: "fPlannetweight",
          name: "结余净重(kg)",
          checked: 0,
          width: 120,
        },

        {
          surface: "11",
          label: "fQty",
          name: "调拨件数",
          checked: 0,
          width: 100,
        },
        {
          surface: "12",
          label: "fGrossweight",
          name: "调拨毛重(kg)",
          checked: 0,
          width: 120,
        },
        {
          surface: "13",
          label: "fNetweight",
          name: "调拨净重(kg)",
          checked: 0,
          width: 120,
        },

        {
          surface: "14",
          label: "fPackagespecs",
          name: "包装规格",
          checked: 0,
          width: 100,
        },
        {
          surface: "15",
          label: "fFleet",
          name: "车队",
          checked: 0,
          width: 100,
        },
        {
          surface: "16",
          label: "fTruckno",
          name: "车号",
          checked: 0,
          width: 100,
        },
        {
          surface: "17",
          label: "fDriverName",
          name: "司机名称",
          checked: 0,
          width: 100,
        },
        {
          surface: "18",
          label: "fDriverTel",
          name: "司机电话",
          checked: 0,
          width: 100,
        },
        {
          surface: "19",
          label: "fDriverIdCar",
          name: "司机身份证",
          checked: 0,
          width: 150,
        },
        {
          surface: "20",
          label: "fCntrtype",
          name: "箱型",
          checked: 0,
          width: 100,
        },
        {
          surface: "21",
          label: "fCntqty",
          name: "箱量",
          checked: 0,
          width: 100,
        },
        {
          surface: "22",
          label: "fCntrno",
          name: "箱号",
          checked: 0,
          width: 100,
        },
        {
          surface: "23",
          label: "fLntype",
          name: "装卸方式",
          checked: 0,
          width: 100,
        },
        {
          surface: "24",
          label: "fForkliftman",
          name: "叉车工",
          checked: 0,
          width: 100,
        },
        {
          surface: "25",
          label: "fStevedore",
          name: "装卸工",
          checked: 0,
          width: 100,
        },
        {
          surface: "26",
          label: "fLocalcntrno",
          name: "库内箱号",
          checked: 0,
          width: 100,
        },
        {
          surface: "27",
          label: "fSealno",
          name: "封号",
          checked: 0,
          width: 100,
        },
        {
          surface: "28",
          label: "fGoodsval",
          name: "货值",
          checked: 0,
          width: 100,
        },
        {
          surface: "29",
          label: "fSerialNumber",
          name: "流水号",
          checked: 0,
          width: 100,
        },
        {
          surface: "30",
          label: "remark",
          name: "备注",
          checked: 0,
          width: 100,
        },
      ],
      setRowList: [],
      getRowList: [],
      allCheck: false,
      showSetting: false,
      tableDate2: [
        {
          surface: "1",
          label: "fMblno",
          name: "提单号",
          checked: 0,
          width: 150,
        },
        {
          surface: "2",
          label: "fOriginalbilldate",
          name: "入库日期",
          checked: 0,
          width: 100,
        },

        {
          surface: "3",
          label: "fGoodsids",
          name: "品名",
          checked: 0,
          width: 100,
        },
        {
          surface: "4",
          label: "fCntrno",
          name: "箱号",
          checked: 0,
          width: 100,
        },
        {
          surface: "5",
          label: "fQtyblc",
          name: "结余数量",
          checked: 0,
          width: 150,
        },
        {
          surface: "6",
          label: "fGrossweightblc",
          name: "结余毛重(kg)",
          checked: 0,
          width: 150,
        },
        {
          surface: "7",
          label: "fNetweightblc",
          name: "结余净重(kg)",
          checked: 0,
          width: 150,
        },
        {
          surface: "8",
          label: "fWarehouseids",
          name: "库位",
          checked: 0,
          width: 150,
        },
        {
          surface: "9",
          label: "fMarks",
          name: "品牌",
          checked: 0,
          width: 100,
        },
        {
          surface: "10",
          label: "fQtyblc2",
          name: "数量",
          checked: 0,
          width: 100,
        },
        {
          surface: "11",
          label: "fGrossweightblc2",
          name: "毛重(kg)",
          checked: 0,
          width: 100,
        },
        {
          surface: "12",
          label: "fNetweightblc2",
          name: "净重(kg)",
          checked: 0,
          width: 100,
        },
        {
          surface: "13",
          label: "fLocalcntrno",
          name: "库内箱号",
          checked: 0,
          width: 100,
        },
      ],
      setRowList2: [],
      getRowList2: [],
      allCheck2: false,
      showSetting2: false,
      unloadModes: [],
      detailsHidden2: true,
      dataShowcar: null,
      tfNetweightnum: 0,
      tfGrossweightnum: 0,
      showApproval: null,
    };
  },
  created() {
    this.setRowList = this.tableDate;
    this.getRowList = this.tableDate;
    this.setRowList2 = this.tableDate2;
    this.getRowList2 = this.tableDate2;
    this.getDicts("data_stltype_type").then((response) => {
      this.fStltypeOptions = response.data;
    });
    this.getDicts("st_trans_type").then((response) => {
      this.businessTypeOption = response.data;
      localStorage.setItem("businessTypeList", JSON.stringify(response.data));
    });
    this.getDicts("data_unitfees").then((response) => {
      this.fFeetUnitOptions = response.data;
    });
    this.getDicts("data_trademodes").then((response) => {
      this.fTrademodeidOptions = response.data;
    });
    this.getDicts("data_ifweigh_status").then((response) => {
      this.fIfweighOptions = response.data;
    });
    this.getDicts("storage_type").then((response) => {
      this.fStorageTypeOptions = response.data;
      localStorage.setItem("fStorageTypeList", JSON.stringify(response.data));
    });
    this.getDicts("sys_car_type").then((response) => {
      this.fCartypeOptions = response.data;
    });
    this.getDicts("unload_mode").then((response) => {
      this.unloadModes = response.data;
    });
    this.getDicts("data_ifdamage_status").then((response) => {
      this.fIfdamageOptions = response.data;
    });
    this.getConfigKey("data_showcar").then((response) => {
      this.dataShowcar = response.msg;
      if (this.dataShowcar == "0") {
        this.detailsHidden2 = false;
      } else {
        this.detailsHidden2 = true;
      }
    });
    listWarehousesss({ fStatus: 0, delFlag: 0 }).then((response) => {
      this.warehouseOptions = response.rows;
    });
    listFees({ fDc: "C" }).then((response) => {
      this.fCNameOptions = response.rows;
    });
    listFees({ fDc: "D" }).then((response) => {
      this.fDNameOptions = response.rows;
    });
    listCorps({ type: 1 }).then((response) => {
      this.fMblnoOptions = response.rows;
    });
    listCorps().then((response) => {
      this.fSbuOptions = response.rows;
    });
    listUser().then((response) => {
      this.userOptions = response.rows;
    });
    listGoods({ fStatus: 0, delFlag: 0 }).then((response) => {
      this.goodsOptions = response.rows;
    });
    listCntrs({ fStatus: "T" }).then((response) => {
      this.cntrList = response.rows;
    });
    listCorps({ fTypeid: 6 }).then((response) => {
      this.fCompanyOptIons = response.rows;
    });
    listCorps({ fTypeid: 2 }).then((response) => {
      this.fleetOptions = response.rows;
    });
    this.getConfigKey("outStock.orders.approvalFlow").then((response) => {
      this.showApproval = response.msg;
    });
    this.company = Cookies.get("companyName")
    this.queryUser();
    this.getRow();
    this.getRow2();
  },
  filters: {
    fStorageFormat(row) {
      let name;
      for (const item of JSON.parse(localStorage.getItem("fStorageTypeList"))) {
        if (row == item.dictValue) {
          name = item.dictLabel;
        }
      }
      return name;
    },
    fBusinessTypeFormat(row) {
      let name;
      for (const item of JSON.parse(localStorage.getItem("businessTypeList"))) {
        if (row == item.dictValue) {
          name = item.dictLabel;
        }
      }
      return name;
    },
    goodsFormat(row, goodsOptions) {
      let goods;
      goodsOptions.map((e) => {
        if (row == e.fId) {
          goods = e.fName;
        }
      });
      return goods;
    },
  },
  methods: {
    init() {
      this.approVal = false;
      this.resetForm("form");
      this.detailList = [];
      this.relevantAttachments = [];
      this.warehouseCrList = [];
      this.warehouseDrList = [];
      this.CntrTable = [];
      if (this.dataShowcar == "0") {
        this.detailsHidden2 = false;
      } else {
        this.detailsHidden2 = true;
      }
      if (this.$route.query.id) {
        this.approVal = true;
        this.$router.push({ query: {} });
      }
      this.getForm();
    },
    init2() {
      this.whgenlegParams = {
        pageNum: 1,
        pageSize: 10,
        fCorpid: null,
        fWarehouseid: null,
        fTruckno: null,
        fCntrno: null,
        fMblno: null,
        orgStorageDate: null,
      };
    },
    tfNetweight(row) {
      this.tfNetweightnum = (row / 1000).toFixed(4);
    },
    tfGrossweight(row) {
      this.tfGrossweightnum = (row / 1000).toFixed(4);
    },
    //列设置全选
    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);
        }
      });
    },
    //列设置全选
    allChecked2() {
      if (this.allCheck2 == true) {
        this.setRowList2.map((e) => {
          return (e.checked = 0);
        });
      } else {
        this.setRowList2.map((e) => {
          return (e.checked = 1);
        });
      }
    },
    //查询列数据
    getRow2() {
      let that = this;
      this.data = {
        tableName: "调拨总账",
        userId: Cookies.get("userName"),
      };
      select(this.data).then((res) => {
        if (res.data.length != 0) {
          this.getRowList2 = res.data.filter((e) => e.checked == 0);
          this.setRowList2 = res.data;
          this.setRowList2 = this.setRowList2.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;
          }, []);
        }
      });
    },
    //重置列表
    delRow2() {
      this.data = {
        tableName: "调拨总账",
        userId: Cookies.get("userName"),
      };
      resetModule(this.data).then((res) => {
        if (res.code == 200) {
          this.showSetting2 = false;
          this.setRowList2 = this.$options.data().tableDate2;
          this.getRowList2 = this.$options.data().tableDate2;
        }
      });
    },
    //保存列设置
    save2() {
      this.showSetting2 = false;
      this.data = {
        tableName: "调拨总账",
        userId: Cookies.get("userName"),
        sysTableSetList: this.setRowList2,
      };
      addSet(this.data).then((res) => {
        if (res.code == 200) {
          this.showSetting2 = false;
          this.getRowList2 = this.setRowList2.filter((e) => e.checked == 0);
        }
      });
    },
    //开始拖拽事件
    onStart() {
      this.drag = true;
    },
    //拖拽结束事件
    onEnd() {
      this.drag = false;
    },
    changeStock(row) {
      let fNetweight = 0;
      let fGrossweight = 0;
      if (row.fNetweight) {
        fNetweight = row.fNetweight;
      }
      if (row.fGrossweight) {
        fGrossweight = row.fGrossweight;
      }
      if (row.fPlannetweight < fNetweight) {
        this.$message({ message: "调拨净重超出结余净重", type: "warning" });
        return false;
      }
      if (row.fPlangrossweight < fGrossweight) {
        this.$message({ message: "调拨毛重超出结余毛重", type: "warning" });
        return false;
      }
    },
    // 出库件数的计算
    qtyChange(row) {
      // if (!row.fQty || row.fQty === "") {
      //   this.$set(row, "fNetweight", 0);
      //   this.$set(row, "fGrossweight", 0);
      //   return false;
      // }
      if (row.fPlanqty < row.fQty) {
        this.$message.error("出库件数超出结余件数!");
        this.$set(row, "fQty", 0);
        this.$set(row, "fNetweight", 0);
        this.$set(row, "fGrossweight", 0);
        return false;
      }
      if (row.fQtyblc2 > row.fQtyblc) {
        this.$message.error("出库件数超出结余件数!");
        this.$set(row, "fQtyblc2", 0);
        this.$set(row, "fGrossweightblc2", 0);
        this.$set(row, "fNetweightblc2", 0);
        return false;
      }
      this.$set(
        row,
        "fNetweight",
        parseFloat(
          (Number(row.fPlannetweight) / Number(row.fPlanqty)) * Number(row.fQty)
        ).toFixed(2)
      );
      this.$set(
        row,
        "fGrossweight",
        parseFloat(
          (Number(row.fPlangrossweight) / Number(row.fPlanqty)) *
            Number(row.fQty)
        ).toFixed(2)
      );
      this.$set(
        row,
        "fNetweightblc2",
        parseFloat(
          (Number(row.fNetweightblc) / Number(row.fQtyblc)) *
            Number(row.fQtyblc2)
        ).toFixed(2)
      );
      this.$set(
        row,
        "fGrossweightblc2",
        parseFloat(
          (Number(row.fGrossweightblc) / Number(row.fQtyblc)) *
            Number(row.fQtyblc2)
        ).toFixed(2)
      );
    },
    whgenlegData() {
      if (this.dialogWhgenlegList.length === 0) {
        this.$message({ message: "未勾选信息", type: "warning" });
        return false;
      }
      let fTruckno = null;
      let fDriverTel = null;
      let fDriverName = null;
      let fDriverIdCar = null;
      if (this.form.fTruckno) {
        fTruckno = this.form.fTruckno;
      }
      if (this.form.fDriverTel) {
        fDriverTel = this.form.fDriverTel;
      }
      if (this.form.fDriverName) {
        fDriverName = this.form.fDriverName;
      }
      if (this.form.fDriverIdCar) {
        fDriverIdCar = this.form.fDriverIdCar;
      }
      this.dialogWhgenlegList.map((e) => {
        this.detailList.push({
          fBsdate: this.form.fBsdate,
          fId: null,
          fCntrtype: null,
          fGrossweight: e.fGrossweightblc2,
          fNetweight: e.fNetweightblc2,
          fQty: e.fQtyblc2,
          fCntqty: 1,
          fIsPass: "F",
          fGoodsval: null,
          fBillstatus: 10,
          fTruckno: this.form.fTruckno ? this.form.fTruckno : null,
          fDriverName: this.form.fDriverName ? this.form.fDriverName : null,
          fDriverTel: this.form.fDriverTel ? this.form.fDriverTel : null,
          fDriverIdCar: this.form.fDriverIdCar ? this.form.fDriverIdCar : null,
          fMblno: e.fMblno,
          fMarks: e.fMarks,
          fCntrno: e.fCntrno,
          fPlanqty: e.fQtyblc,
          fGoodsid: e.fGoodsid,
          fVolumn: e.fVolumn,
          fGoodsids: e.fGoodsids,
          fBillingway: e.fBillingway,
          fChargedate: e.fChargedate,
          fOrgwarehouseInformation: e.fWarehouseids,
          fPackagespecs: e.fPackagespecs,
          fPlannetweight: e.fNetweightblc,
          fOriginalbillno: e.fOriginalbillno,
          fBusinessType: e.fBusinessType + "",
          fPlangrossweight: e.fGrossweightblc,
          fOriginalbilldate: e.fOriginalbilldate,
          fWarehouselocid: e.fWarehouseLocationid,
          fWarehouselocids: e.fWarehouseLocationids,
          fWarehouseLocationids: e.fWarehouseLocationids,
          fTransferWarehouselocid: null,
          remark: null,
        });
      });
      this.whgenlegVisible = false;
    },
    //撤销审批
    revokeTwo(status) {
      let data = {
        actId: 140,
        billId: this.form.fId,
        id: this.form.fId,
        fidStatus: status,
      };
      RevocationApproval(data).then((data) => {
        if (data.code === 200) {
          this.browseStatus = false;
          this.msgSuccess("撤销成功");
        }
      });
    },
    // 查看审批流
    getDataList() {
      this.addOrUpdateVisible = false;
    },
    returnData() {
      this.addOrUpdateVisib = false;
      this.$router.push({ path: "/index" });
    },
    addOrUpdateHandle(form, status) {
      this.addOrUpdateVisible = true;
      this.$nextTick(() => {
        this.$refs.addOrUpdate.init(form.fId, 140, status);
      });
    },
    addOrUpdateHand(form, status) {
      this.addOrUpdateVisib = true;
      this.$nextTick(() => {
        this.$refs.ApprovalComments.init(form.fId, status, 140);
      });
    },
    changefStltype(row) {
      this.fMblnoOptions.map((e) => {
        if (row == e.fId) {
          this.$set(
            this.form,
            "fStltypeid",
            e.fStltypeid ? e.fStltypeid.toString() : null
          );
        }
      });
    },
    changeGoods(row) {
      this.goodsOptions.map((e) => {
        if (row == e.fId) {
          if (e.ifCntrno == "1") {
            this.ifCntrnoStatus = 1;
          } else {
            this.ifCntrnoStatus = null;
          }
        }
      });
    },
    //撤销请核
    revoke() {
      revoke(this.form.fId).then((data) => {
        if (data.code === 200) {
          this.browseStatus = false;
          this.msgSuccess("撤销成功");
        }
      });
    },
    ordersRevoke() {
      ordersRevoke(this.form.fId).then((data) => {
        if (data.code === 200) {
          this.$set(this.form, "warehouseStatus", 2);
          this.msgSuccess("撤销成功");
        }
      });
    },
    discharge() {
      if (this.Printinglist.length > 0) {
        for (let item in this.Printinglist) {
          if (this.Printinglist[item].fBillstatus === 10) {
            return this.$message.error("请先打印作业单");
          }
          if (this.Printinglist[item].fBillstatus >= 30) {
            return this.$message.error("请勿重复卸货");
          }
        }
        if (this.CntrTable.length > 0) {
          let arr = [];
          this.CntrTable.map((e) => {
            this.cntrList.map((item) => {
              if (item.fId == e.fCntrid) {
                arr.push(item.fName + "X" + e.fCntrcount);
              }
            });
          });
          arr = [...new Set(arr)];
          this.form.fCntval = arr.join(",");
        } else {
          this.form.fCntval = null;
        }
        if (this.detailList.length > 0) {
          let arr = [];
          this.detailList.map((e) => {
            this.goodsOptions.map((item) => {
              if (e.fGoodsid == item.fId) {
                arr.push(item.fName);
              }
            });
          });
          arr = [...new Set(arr)];
          this.form.fProductName = arr.join(",");
        } else {
          this.form.fProductName = "";
        }
        if (this.detailList.length > 0) {
          let arr = [];
          this.detailList.map((e) => {
            arr.push(e.fMarks);
          });
          arr = [...new Set(arr)];
          this.form.fMarks = arr.join(",");
        } else {
          this.form.fMarks = "";
        }
        if (this.detailList.length == 0) {
          this.form.fNetweight = 0;
          this.form.fPlanvolumn = 0;
          this.form.fGrossweight = 0;
        } else {
          this.form.fNetweight = this.fNetweight;
          this.form.fPlanvolumn = this.fPlanvolumn;
          this.form.fGrossweight = this.fGrossweight;
        }
        let formData = new window.FormData();
        formData.append("type", "2");
        formData.append("warehouseBills", JSON.stringify(this.form));
        formData.append("tEnclosure", JSON.stringify(this.relevantAttachments));
        formData.append(
          "warehousebillsitems",
          JSON.stringify(this.Printinglist)
        );
        formData.append(
          "warehousebillsfeesDr",
          JSON.stringify(this.warehouseDrList)
        );
        formData.append(
          "warehousebillsfeesCr",
          JSON.stringify(this.warehouseCrList)
        );
        formData.append("tCntr", JSON.stringify(this.CntrTable));
        disChargelist(formData).then((response) => {
          if ((response.code = 200)) {
            this.detailList.map((e, index) => {
              response.data.warehousebillsitems.map((item) => {
                item.fBsdate = Date.parse(new Date(item.fBsdate));
                if (item.fBusinessType) {
                  item.fBusinessType = item.fBusinessType.toString();
                }
                item.fLntype = item.fLntype ? item.fLntype.toString() : null;
                if (e.fId == item.fId) {
                  e = item;
                  this.$set(this.detailList, index, e);
                }
              });
            });
            this.msgSuccess("卸货成功");
            this.$set(this.form, "fItemsStatus", 3);
          }
        });
      } else {
        this.$message.error("请选择需要卸货的明细!");
      }
    },
    creditClick() {
      console.log(this.Printinglist);
      for (let item in this.Printinglist) {
        if (!this.Printinglist[item].fId) {
          return this.$message.error("请存在未保存的数据");
        }
        if (this.Printinglist[item].fBillstatus == 10) {
          return this.$message.error("请存在未打印的作业单");
        }
        if (!this.Printinglist[item].fTruckno) {
          return this.$message.error("车号不能为空");
        }
        if (!this.Printinglist[item].fTransferWarehouselocid) {
          return this.$message.error("调入库位不能为空");
        }
      }
      if (this.CntrTable.length > 0) {
        let arr = [];
        this.CntrTable.map((e) => {
          this.cntrList.map((item) => {
            if (item.fId == e.fCntrid) {
              arr.push(item.fName + "X" + e.fCntrcount);
            }
          });
        });
        arr = [...new Set(arr)];
        this.form.fCntval = arr.join(",");
      } else {
        this.form.fCntval = null;
      }
      if (this.detailList.length > 0) {
        let arr = [];
        this.detailList.map((e) => {
          this.goodsOptions.map((item) => {
            if (e.fGoodsid == item.fId) {
              arr.push(item.fName);
            }
          });
        });
        arr = [...new Set(arr)];
        this.form.fProductName = arr.join(",");
      } else {
        this.form.fProductName = "";
      }
      if (this.detailList.length > 0) {
        let arr = [];
        this.detailList.map((e) => {
          arr.push(e.fMarks);
        });
        arr = [...new Set(arr)];
        this.form.fMarks = arr.join(",");
      } else {
        this.form.fMarks = "";
      }
      if (this.detailList.length == 0) {
        this.form.fNetweight = 0;
        this.form.fPlanvolumn = 0;
        this.form.fGrossweight = 0;
      } else {
        this.form.fNetweight = this.fNetweight;
        this.form.fPlanvolumn = this.fPlanvolumn;
        this.form.fGrossweight = this.fGrossweight;
      }
      let formData = new window.FormData();
      formData.append("type", "2");
      formData.append("warehouseBills", JSON.stringify(this.form));
      formData.append("warehousebillsitems", JSON.stringify(this.Printinglist));
      formData.append(
        "warehousebillsfeesDr",
        JSON.stringify(this.warehouseDrList)
      );
      formData.append(
        "warehousebillsfeesCr",
        JSON.stringify(this.warehouseCrList)
      );
      formData.append("tEnclosure", JSON.stringify(this.relevantAttachments));
      formData.append("whgenleg", JSON.stringify(this.relevantAttachments));
      formData.append("tCntr", JSON.stringify(this.CntrTable));
      addWhgenleg(formData).then((response) => {
        if ((response.code = 200)) {
          this.detailList.map((e, index) => {
            response.data.warehouseItem.map((item) => {
              item.fBsdate = Date.parse(new Date(item.fBsdate));
              if (item.fBusinessType) {
                item.fBusinessType = item.fBusinessType.toString();
              }
              item.fLntype = item.fLntype ? item.fLntype.toString() : null;
              if (e.fId == item.fId) {
                e = item;
                this.$set(this.detailList, index, e);
              }
            });
          });
          this.msgSuccess("调拨成功");
          this.$set(this.form, "fItemsStatus", 4);
        }
      });
    },
    getAlltree(tree) {
      this.information = tree.fWarehouseInformation;
      this.informationId = tree.id;
    },
    //树状库位下拉关闭询问
    hanDleclose(done) {
      this.$confirm("确认关闭？")
        .then((_) => {
          done();
        })
        .catch((_) => {});
    },
    getTreeselect(row) {
      this.treeselectList.fWarehouselocid = null;
      this.TreeIndex = row.$index;
      this.choiceWarehouse = true;
      treeselect(this.form.fWarehouseid).then((response) => {
        this.fWarehouseidOptions = response.data;
      });
    },
    confirm() {
      this.$set(
        this.detailList[this.TreeIndex],
        "fWarehouseInformation",
        this.information
      );
      this.$set(
        this.detailList[this.TreeIndex],
        "fTransferWarehouselocid",
        this.informationId
      );
      this.choiceWarehouse = false;
      this.detailList.fTransferWarehouselocid = this.informationId;
    },
    // 撤回入账
    withdrawClick() {
      for (let item in this.Printinglist) {
        if (!this.Printinglist[item].fId) {
          return this.$message.error("请存在未保存的数据");
        }
        if (this.Printinglist[item].fBillstatus == 10) {
          return this.$message.error("请存在未打印的作业单");
        }
        if (this.Printinglist[item].fBillstatus == 20) {
          return this.$message.error("请存在未卸货的数据");
        }
        if (this.Printinglist[item].fBillstatus == 30) {
          return this.$message.error("请存在未出库的数据");
        }
      }
      if (this.CntrTable.length > 0) {
        let arr = [];
        this.CntrTable.map((e) => {
          this.cntrList.map((item) => {
            if (item.fId == e.fCntrid) {
              arr.push(item.fName + "X" + e.fCntrcount);
            }
          });
        });
        arr = [...new Set(arr)];
        this.form.fCntval = arr.join(",");
      } else {
        this.form.fCntval = null;
      }
      if (this.detailList.length > 0) {
        let arr = [];
        this.detailList.map((e) => {
          this.goodsOptions.map((item) => {
            if (e.fGoodsid == item.fId) {
              arr.push(item.fName);
            }
          });
        });
        arr = [...new Set(arr)];
        this.form.fProductName = arr.join(",");
      } else {
        this.form.fProductName = "";
      }
      if (this.detailList.length > 0) {
        let arr = [];
        this.detailList.map((e) => {
          arr.push(e.fMarks);
        });
        arr = [...new Set(arr)];
        this.form.fMarks = arr.join(",");
      } else {
        this.form.fMarks = "";
      }
      if (this.detailList.length == 0) {
        this.form.fNetweight = 0;
        this.form.fPlanvolumn = 0;
        this.form.fGrossweight = 0;
      } else {
        this.form.fNetweight = this.fNetweight;
        this.form.fPlanvolumn = this.fPlanvolumn;
        this.form.fGrossweight = this.fGrossweight;
      }
      // 撤回入库
      let formData = new window.FormData();
      formData.append("type", "2");
      formData.append("warehouseBills", JSON.stringify(this.form));
      formData.append("warehousebillsitems", JSON.stringify(this.Printinglist));
      formData.append(
        "warehousebillsfeesDr",
        JSON.stringify(this.warehouseDrList)
      );
      formData.append(
        "warehousebillsfeesCr",
        JSON.stringify(this.warehouseCrList)
      );
      formData.append("tEnclosure", JSON.stringify(this.relevantAttachments));
      formData.append("tCntr", JSON.stringify(this.CntrTable));
      updateCredit(formData).then((response) => {
        this.Printinglist.map((e) => {
          this.detailList.map((item, index) => {
            if (e.fId == item.fId) {
              this.$set(this.detailList[index], "fBillstatus", 10);
            }
          });
        });
        this.msgSuccess("撤回成功");
        this.$set(this.form, "fItemsStatus", 1);
      });
    },
    fStorageTypeFormat(row) {
      let fStorageType;
      this.fStorageTypeOptions.map((e) => {
        if (row.fBusinessType == e.dictValue) {
          fStorageType = e.dictLabel;
        }
      });
      return fStorageType;
    },
    fCntrtypeFormat(row) {
      let fCntrtype;
      this.cntrList.map((e) => {
        if (row.fCntrtype == e.fId) {
          fCntrtype = e.fName;
        }
      });
      return fCntrtype;
    },
    fBsdateFormat(row) {
      const dateMat = new Date(row.fBsdate);
      const year = dateMat.getFullYear();
      const month = dateMat.getMonth() + 1;
      const day = dateMat.getDate();
      const timeFormat = year + "-" + month + "-" + day;
      return timeFormat;
    },
    getForm() {
      getStockTransfer(this.chiId).then((response) => {
        this.form = response.data.warehousebills;
        if (this.form.fBillstatus > 2) {
          this.approvalStatus = false;
          this.browseStatus = true;
        } else {
          this.approvalStatus = true;
          this.browseStatus = false;
        }
        this.$set(this.form, "fBsdate", Date.parse(this.form.fBsdate));
        this.$set(this.form, "fBstifime", Date.parse(this.form.fBstime));
        this.$set(this.form, "createTime", Date.parse(this.form.createTime));
        this.$set(this.form, "fFeetUnit", this.form.fFeetunit);
        this.tfNetweightnum = (this.form.fPlannetweight / 1000).toFixed(4);
        this.tfGrossweightnum = (this.form.fPlangrossweight / 1000).toFixed(4);
        if (this.form.fCartype || this.form.fCartype == 0) {
          this.$set(this.form, "fCartype", this.form.fCartype.toString());
        }
        if (this.form.fStltypeid || this.form.fStltypeid == 0) {
          this.$set(this.form, "fStltypeid", this.form.fStltypeid.toString());
        }
        if (this.form.fTrademodeid) {
          this.$set(
            this.form,
            "fTrademodeid",
            this.form.fTrademodeid.toString()
          );
        }
        if (this.form.fNewTrademodeid) {
          this.$set(
            this.form,
            "fNewTrademodeid",
            this.form.fNewTrademodeid.toString()
          );
        }
        treeselect(this.form.fWarehouseid).then((response) => {
          this.fWarehouseidOptions = response.data;
        });
        if (!this.copyStatus) {
          if (response.data.warehouseBillsItem) {
            response.data.warehouseBillsItem.map((e) => {
              e.fBsdate = Date.parse(e.fBsdate);
              e.fBusinessType = e.fBusinessType.toString();
              e.fLntype = e.fLntype ? e.fLntype.toString() : null;
            });
            this.detailList = response.data.warehouseBillsItem;
          } else {
            this.detailList = [];
          }
          response.data.warehousebillsfeesCr.map((e) => {
            if (e.fFeeunitid) {
              e.fFeeUnitid = e.fFeeunitid.toString();
            }
            if (e.fStltypeid || e.fStltypeid == 0) {
              e.fStltypeid = e.fStltypeid.toString();
            }
          });
          this.warehouseCrList = response.data.warehousebillsfeesCr;
          response.data.warehousebillsfeesDr.map((e) => {
            if (e.fFeeunitid) {
              e.fFeeUnitid = e.fFeeunitid.toString();
            }
            if (e.fStltypeid || e.fStltypeid == 0) {
              e.fStltypeid = e.fStltypeid.toString();
            }
          });
          this.warehouseDrList = response.data.warehousebillsfeesDr;
          if (response.data.tCntrList) {
            this.CntrTable = response.data.tCntrList;
          } else {
            this.CntrTable = [];
          }
          if (response.data.enclosures) {
            this.relevantAttachments = response.data.enclosures;
          }
        } else {
          this.$set(this.form, "fId", null);
          this.$set(this.form, "fMblno", null);
          this.$set(this.form, "fMarks", null);
          this.$set(this.form, "fProductName", null);
          this.$set(this.form, "fNetweight", 0);
          this.$set(this.form, "fPlanvolumn", 0);
          this.$set(this.form, "fGrossweight", 0);
        }
      });
    },
    submitForm() {
      this.$refs["form"].validate((valid) => {
        if (valid) {
          // if (this.detailList.length === 0) {
          //   return this.$message.error("请新增库存明细!");
          // }
          this.updateDeduplication();
          for (let item in this.warehouseDrList) {
            if (!this.warehouseDrList[item].fCorpid) {
              if (item === "fBusinessType") {
              } else {
                this.$message.error(
                  "请维护收款信息第" + (Number(item) + 1) + "行客户名称"
                );
                return false;
              }
            }
            if (!this.warehouseDrList[item].fFeeid) {
              if (item === "fBusinessType") {
              } else {
                this.$message.error(
                  "请维护收款信息第" + (Number(item) + 1) + "行费用名称"
                );
                return false;
              }
            }
            if (!this.warehouseDrList[item].fFeeUnitid) {
              if (item === "fBusinessType") {
              } else {
                this.$message.error(
                  "请维护收款信息第" + (Number(item) + 1) + "行计价单位"
                );
                return false;
              }
            }
          }
          for (let item in this.warehouseCrList) {
            if (!this.warehouseCrList[item].fCorpid) {
              if (item === "fBusinessType") {
              } else {
                this.$message.error(
                  "请维护付款信息第" + (Number(item) + 1) + "行客户名称"
                );
                return false;
              }
            }
            if (!this.warehouseCrList[item].fFeeid) {
              if (item === "fBusinessType") {
              } else {
                this.$message.error(
                  "请维护付款信息第" + (Number(item) + 1) + "行费用名称"
                );
                return false;
              }
            }

            if (!this.warehouseCrList[item].fFeeUnitid) {
              if (item === "fBusinessType") {
              } else {
                this.$message.error(
                  "请维护付款信息第" + (Number(item) + 1) + "行计价单位"
                );
                return false;
              }
            }
          }
          // 附件数据
          this.form.fBillingway = this.form.fFeetUnit;
          if (this.detailList.length == 0) {
            this.form.fNetweight = 0;
            this.form.fPlanvolumn = 0;
            this.form.fGrossweight = 0;
          } else {
            this.form.fNetweight = this.fNetweight;
            this.form.fPlanvolumn = this.fPlanvolumn;
            this.form.fGrossweight = this.fGrossweight;
          }
          if (this.CntrTable.length > 0) {
            let arr = [];
            this.CntrTable.map((e) => {
              this.cntrList.map((item) => {
                if (item.fId == e.fCntrid) {
                  arr.push(item.fName + "X" + e.fCntrcount);
                }
              });
            });
            arr = [...new Set(arr)];
            this.form.fCntval = arr.join(",");
          } else {
            this.form.fCntval = null;
          }
          if (this.detailList.length > 0) {
            let arr = [];
            this.detailList.map((e) => {
              this.goodsOptions.map((item) => {
                if (e.fGoodsid == item.fId) {
                  arr.push(item.fName);
                }
              });
            });
            arr = [...new Set(arr)];
            this.form.fProductName = arr.join(",");
          } else {
            this.form.fProductName = "";
          }
          if (this.detailList.length > 0) {
            let arr = [];
            this.detailList.map((e) => {
              arr.push(e.fMarks);
            });
            arr = [...new Set(arr)];
            this.form.fMarks = arr.join(",");
          } else {
            this.form.fMarks = "";
          }
          let formData = new window.FormData();
          formData.append("type", "2");
          formData.append("warehouseBills", JSON.stringify(this.form));
          // 库存明细
          formData.append(
            "warehousebillsitems",
            JSON.stringify(this.detailList)
          );
          // 附件数据
          formData.append(
            "tEnclosure",
            JSON.stringify(this.relevantAttachments)
          );
          // 费用明细付款
          formData.append(
            "warehousebillsfeesCr",
            JSON.stringify(this.warehouseCrList)
          );
          // 收款
          formData.append(
            "warehousebillsfeesDr",
            JSON.stringify(this.warehouseDrList)
          );
          formData.append("mblnoStatus", JSON.stringify(this.mblnoStatus));
          formData.append("tCntr", JSON.stringify(this.CntrTable));
          warehouseSubmission(formData).then((response) => {
            if (response.code == 200) {
              this.msgSuccess("提交成功");
              setTimeout(() => {
                this.cancel();
              }, 200);
            }
          });
        }
      });
    },
    saveForm(status) {
      this.$refs["form"].validate((valid) => {
        if (valid) {
          this.updateDeduplication();
          this.form.fBillingway = this.form.fFeetUnit;
          this.form.fFeetunit = this.form.fFeetUnit;
          if (this.detailList.length == 0) {
            this.form.fNetweight = 0;
            this.form.fPlanvolumn = 0;
            this.form.fGrossweight = 0;
          } else {
            this.form.fNetweight = this.fNetweight;
            this.form.fPlanvolumn = this.fPlanvolumn;
            this.form.fGrossweight = this.fGrossweight;
          }
          if (this.form.fTrademodeid == this.form.fNewTrademodeid) {
            return this.$message.error("原贸易方式不能与新贸易方式相同");
          }
          // 附件数据
          this.form.fQty = this.fQty;
          if (this.CntrTable.length > 0) {
            let arr = [];
            this.CntrTable.map((e) => {
              this.cntrList.map((item) => {
                if (item.fId == e.fCntrid) {
                  arr.push(item.fName + "X" + e.fCntrcount);
                }
              });
            });
            arr = [...new Set(arr)];
            this.form.fCntval = arr.join(",");
          } else {
            this.form.fCntval = null;
          }
          if (this.detailList.length > 0) {
            let arr = [];
            this.detailList.map((e) => {
              this.goodsOptions.map((item) => {
                if (e.fGoodsid == item.fId) {
                  arr.push(item.fName);
                }
              });
            });
            arr = [...new Set(arr)];
            this.form.fProductName = arr.join(",");
          } else {
            this.form.fProductName = "";
          }
          if (this.detailList.length > 0) {
            let arr = [];
            this.detailList.map((e) => {
              arr.push(e.fMarks);
            });
            arr = [...new Set(arr)];
            this.form.fMarks = arr.join(",");
          } else {
            this.form.fMarks = "";
          }
          this.form.fBillstatus = 2;
          let formData = new window.FormData();
          formData.append("type", "2");
          formData.append("warehouseBills", JSON.stringify(this.form));
          // 库存明细
          formData.append(
            "warehousebillsitems",
            JSON.stringify(this.detailList)
          );
          // 附件数据
          formData.append(
            "tEnclosure",
            JSON.stringify(this.relevantAttachments)
          );
          // 费用明细付款
          formData.append(
            "warehousebillsfeesCr",
            JSON.stringify(this.warehouseCrList)
          );
          // 收款
          formData.append(
            "warehousebillsfeesDr",
            JSON.stringify(this.warehouseDrList)
          );
          formData.append("mblnoStatus", JSON.stringify(this.mblnoStatus));
          formData.append("tCntr", JSON.stringify(this.CntrTable));
          addStockTransfer(formData).then((response) => {
            if (response.data == false) {
              this.$confirm(response.msg, "提示", {
                confirmButtonText: "确定",
                cancelButtonText: "取消",
                type: "warning",
              })
                .then(() => {
                  this.mblnoStatus = true;
                  this.saveForm();
                })
                .catch(() => {
                  this.$message({
                    type: "info",
                    message: "已取消",
                  });
                });
            } else {
              if ((response.code = 200)) {
                this.mblnoStatus = "";
                this.form = response.data.warehouseBills;
                this.$set(this.form, "fBsdate", Date.parse(this.form.fBsdate));
                this.$set(this.form, "fBstime", Date.parse(this.form.fBstime));
                this.$set(
                  this.form,
                  "createTime",
                  Date.parse(this.form.createTime)
                );
                if (this.form.fStltypeid || this.form.fStltypeid == 0) {
                  this.$set(
                    this.form,
                    "fStltypeid",
                    this.form.fStltypeid.toString()
                  );
                }
                this.$set(this.form, "fFeetUnit", this.form.fFeetunit);
                if (this.form.fCartype || this.form.fCartype == 0) {
                  this.$set(
                    this.form,
                    "fCartype",
                    this.form.fCartype.toString()
                  );
                }
                if (this.form.fTrademodeid) {
                  this.$set(
                    this.form,
                    "fTrademodeid",
                    this.form.fTrademodeid.toString()
                  );
                }
                if (this.form.fNewTrademodeid) {
                  this.$set(
                    this.form,
                    "fNewTrademodeid",
                    this.form.fNewTrademodeid.toString()
                  );
                }
                response.data.warehousebillsitems.map((e) => {
                  e.fBsdate = Date.parse(e.fBsdate);
                  e.fBusinessType = e.fBusinessType.toString();
                  e.fLntype = e.fLntype ? e.fLntype.toString() : null;
                });
                this.detailList = response.data.warehousebillsitems;
                this.msgSuccess("保存成功");
                if (status == "goBack") {
                  this.cancel();
                }
              }
            }
          });
        }
      });
    },
    // 库存明细多选
    Selectinventory(selection) {
      this.Printinglist = selection;
      //允许确认入库list
      this.dataListSelection = [];
      this.dataListSelection = selection.filter((e) => e.fBillstatus == 30);
      //允许撤销入库list
      this.dataWithdrawList = [];
      this.dataWithdrawList = selection.filter((e) => e.fBillstatus == 40);
    },
    // 合计
    getSummaries(param) {
      const { columns, data } = param;
      const sums = [];
      var values = [];
      columns.forEach((column, index) => {
        if (index === 0) {
          sums[index] = "";
          return;
        }
        if (column.property === "fGrossweight") {
          values = data.map((item) => Number(item["fGrossweight"]));
        }
        if (column.property === "fNetweight") {
          values = data.map((item) => Number(item["fNetweight"]));
        }
        if (column.property === "fQty") {
          values = data.map((item) => Number(item["fQty"]));
        }
        if (column.property === "fCntqty") {
          values = data.map((item) => Number(item["fCntqty"]));
        }
        if (
          column.property === "fGrossweight" ||
          column.property === "fNetweight" ||
          column.property === "fQty" ||
          column.property === "fCntqty"
        ) {
          sums[index] = values.reduce((prev, curr) => {
            const value = Number(curr);
            if (!isNaN(value)) {
              if (column.property === "fGrossweight") {
                this.fGrossweight = prev + curr;
              }
              if (column.property === "fNetweight") {
                this.fNetweight = prev + curr;
              }
              if (column.property === "fQty") {
                this.fQty = prev + curr;
                this.sumMum = prev + curr;
              }
              if (column.property === "fCntqty") {
                this.fCntqty = prev + curr;
              }
              return prev + curr;
            } else {
              return prev;
            }
          }, 0);
          if (column.property === "fGrossweight") {
            sums[index] = (sums[index] / 1000).toFixed(4) + "吨";
          } else if (column.property === "fNetweight") {
            sums[index] = (sums[index] / 1000).toFixed(4) + "吨";
          } else {
            sums[index] = sums[index].toFixed(2);
          }
        }
      });
      this.sums = sums;
      return sums;
    },
    // 付款合计
    warehouseDrSummaries(param) {
      const { columns, data } = param;
      const sums = [];
      columns.forEach((column, index) => {
        if (index === 0) {
          sums[index] = "合计";
          return;
        }
        const values = data.map((item) => Number(item[column.property]));
        if (
          column.property === "fUnitprice" ||
          column.property === "fAmount" ||
          column.property === "fQty" ||
          column.property === "fQty"
        ) {
          sums[index] = values.reduce((prev, curr) => {
            const value = Number(curr);
            if (!isNaN(value)) {
              return prev + curr;
            } else {
              return prev;
            }
          }, 0);
          sums[index] = sums[index].toFixed(2);
        }
      });
      return sums;
    },
    // 库存总账多选框
    whgenlegSelectionChange(selection) {
      this.dialogWhgenlegList = selection;
    },
    handleSelect(key) {
      if (!this.form.fCorpid) {
        this.$message({
          message: "请维护客户",
          type: "warning",
        });
      } else if (this.form.fProductName == undefined) {
        this.$message({
          message: "请维护入库明细品名",
          type: "warning",
        });
      } else {
        this.dialogWhgenlegList = [];
        this.whgenlegTotal = 0;
        this.warehousingagreements = true;
        this.getWhgenlegList(key);
      }
    },
    // 查询作业费信息
    getWhgenlegList(key) {
      let data = {};
      if (key == 2) {
        this.key_id = key;
        this.Navigation = true;
        data = {
          pageNum: this.pageNum,
          pageSize: this.pageSize,
          fTaskType: key,
          fLabour: this.form.fLabour,
        };
      } else if (key == 1) {
        this.key_id = key;
        this.Navigation = true;
        data = {
          pageNum: this.pageNum,
          pageSize: this.pageSize,
          fTaskType: key,
          fFleet: this.form.fFleet,
        };
      } else {
        this.Navigation = false;
        this.key_id = key;
        data = {
          pageNum: this.pageNum,
          pageSize: this.pageSize,
          fCorpid: this.form.fCorpid,
        };
      }
      operationAgreement(data).then((response) => {
        response.rows.map((e) => {
          if (e.fFeeUnitid) {
            e.fFeeUnitid = e.fFeeUnitid.toString();
          }
        });
        this.tasklegList = response.rows;
        this.whgenlegTotal = response.total;
      });
    },
    // 入库明细新增list
    addRelevant() {
      this.$refs["form"].validate((valid) => {
        if (valid) {
          this.whgenlegList = [];
          this.dialogWhgenlegList = [];
          this.whgenlegTotal = 0;
          this.whgenlegVisible = true;
          this.getDetailsList();
        }
      });
    },
    // 查询库存总账信息
    getDetailsList() {
      if (this.detailList.length == 0) {
        this.whgenlegParams.fMblno = this.form.fMblno;
      }
      this.whgenlegParams.fCorpid = this.form.fCorpid;
      this.whgenlegParams.fTrademodeid = this.form.fTrademodeid;
      this.whgenlegParams.fWarehouseid = this.form.fInwarehouseid;
      listWhgenleg(this.whgenlegParams).then((response) => {
        response.rows.map((e) => {
          e.fQtyblc2 = e.fQtyblc;
          e.fGrossweightblc2 = e.fGrossweightblc;
          e.fNetweightblc2 = e.fNetweightblc;
        });
        this.whgenlegList = response.rows;
        this.whgenlegTotal = response.total;
      });
    },
    printZyd() {
      if (this.Printinglist.length > 0) {
        for (let item in this.Printinglist) {
          if (!this.Printinglist[item].fId) {
            return this.$message.error("请先保存!");
          }
          if (
            this.Printinglist[item].fTruckno !== this.Printinglist[0].fTruckno
          ) {
            return this.$message.error("请选择车相同车号");
          }
        }
        this.print_zyd = true;
        this.warehouseOptions.map((e) => {
          if (e.fId == this.form.fWarehouseid) {
            this.stockaddr = e.fAddr;
          }
        });
        this.fDriverTel = this.Printinglist[0].fDriverTel;
      } else {
        this.$message.error("请选择需要打印的明细!");
      }
    },
    handleCommand(command) {
      if (this.Printinglist.length > 0) {
        this.$refs["form"].validate((valid) => {
          if (valid) {
            for (let corp in this.fMblnoOptions) {
              if (this.form.fCorpid === this.fMblnoOptions[corp].fId) {
                this.$set(
                  this.form,
                  "fCorpidName",
                  this.fMblnoOptions[corp].fName
                );
              }
            }
            this.warehouseOptions.map((e) => {
              if (e.fId == this.form.fWarehouseid) {
                this.stockName = e.fName;
                this.stockaddr = e.fAddr;
              }
            });
            this.fDriverTel = this.Printinglist[0].fDriverTel;
            this.fBsdate = this.Printinglist[0].fBsdate;
            this.fTruckno = this.Printinglist[0].fTruckno;
            this.allfCntqty = 0;
            this.allfGrossweight = 0;
            this.allfPlanqty = 0;
            this.allfNetweight = 0;
            this.allfQty = 0;
            this.Printinglist.map((e) => {
              if (e.fCntqty) {
                this.allfCntqty += e.fCntqty;
              }
              if (e.fGrossweight) {
                this.allfGrossweight += e.fGrossweight;
              }
              if (e.fPlanqty) {
                this.allfPlanqty += e.fPlanqty;
              }
              if (e.fNetweight) {
                this.allfNetweight += e.fNetweight;
              }
              if (e.fQty) {
                this.allfQty += e.fQty;
              }
            });
            if (command == "a") {
              this.print_shd = true;
            } else if (command == "b") {
              this.print_rkd = true;
            } else if (command == "c") {
              this.print_ykd = true;
            }
          }
        });
      } else {
        this.$message.error("请选择需要打印的明细!");
      }
    },
    //计算仓储费日期变更
    changeDate() {
      this.$set(this.form, "fChargedate", this.form.fBsdate);
    },
    addRow() {
      var obj = {};
      this.CntrTable.push(obj);
    },
    deleteRow(index, rows) {
      rows.splice(index, 1);
    },
    wDeleteRow(index, rows) {
      rows.splice(index, 1);
      this.sumMum = 0;
      this.detailList.map((e) => {
        if (e.fQty) {
          this.sumMum += e.fQty;
        }
      });
      if (this.detailList.length == 0) {
        this.form.fProductName = "";
        this.form.fMarks = "";
        this.form.fNetweight = 0;
        this.form.fPlanvolumn = 0;
        this.form.fGrossweight = 0;
      }
    },
    // 收款信息新行
    addCollection() {
      this.$refs["form"].validate((valid) => {
        if (valid) {
          if (this.form.fBusinessType == null) {
            this.$message.error("请维护作业类型");
            return false;
          } else {
            this.warehouseDrList.push({
              fCorpid: null,
              fFeeid: null,
              fFeeUnitid: "",
              fQty: null,
              fUnitprice: null,
              fAmount: null,
              fCurrency: "RMB",
              fExrate: "1",
              fTaxrate: this.fTaxrate,
              fCxrate: null,
              fRate: null,
              remarks: null,
              fMblno: this.form.fMblno,
              fProductName: this.form.fProductName,
              fMarks: this.form.fMarks,
              fBusinessType: this.form.fBusinessType,
              fSrcTypeId: 0,
            });
            this.fWbuOptions = [];
            let queryParams = { pageNum: 1, fDc: "D" };
            listFees(queryParams).then((response) => {
              this.fDNameOptions = response.rows;
            });
          }
        }
      });
    },
    //付款信息新行
    addpayment() {
      this.$refs["form"].validate((valid) => {
        if (valid) {
          if (this.form.fBusinessType == null) {
            return this.$message.error("请维护作业类型");
          } else {
            this.warehouseCrList.push({
              fCorpid: null,
              fFeeid: null,
              fFeeUnitid: "",
              fQty: null,
              fUnitprice: null,
              fAmount: null,
              fCurrency: "RMB",
              fExrate: "1",
              fTaxrate: this.fTaxrate,
              fCxrate: null,
              fRate: null,
              remarks: null,
              fMblno: this.form.fMblno,
              fProductName: this.form.fProductName,
              fMarks: this.form.fMarks,
              fBusinessType: this.form.fBusinessType,
              fSrcTypeId: 0,
            });
            this.fWbuOptions = [];
            let queryParams = { pageNum: 1, fDc: "C" };
            listFees(queryParams).then((response) => {
              this.fCNameOptions = response.rows;
            });
          }
        }
      });
    },
    //导入收付款信息明细
    zhgenlegData() {
      if (this.dialogWhgenlegList.length === 0) {
        this.$message({
          message: "请选择需要导入的数据",
          type: "warning",
        });
      } else {
        this.dialogWhgenlegList.map((e) => {
          let qty = 1;
          if (e.fFeeUnitid == 1) {
            qty = this.fQty;
          } else if (e.fFeeUnitid == 2) {
            qty = (this.fGrossweight / 1000).toFixed(2);
          } else if (e.fFeeUnitid == 3) {
            qty = (this.fNetweight / 1000).toFixed(2);
          } else if (e.fFeeUnitid == 7) {
            qty = this.fCntqty;
          }
          let fAmount = 0;
          fAmount = e.fPrice * qty;
          console.log(this.key_id);
          if (this.key_id == 3) {
            this.warehouseDrList.push({
              fQty: qty,
              fCorpid: e.fCorpid,
              fFeeid: e.feeFId,
              fFeeUnitid: e.fFeeUnitid,
              fUnitprice: e.fPrice,
              fCurrency: "RMB",
              fExrate: 1,
              fAmount: fAmount,
              fTaxrate: this.fTaxrate,
              fMblno: this.form.fMblno,
              fProductName: this.form.fProductName,
              fMarks: this.form.fMarks,
              fBusinessType: this.form.fBusinessType,
              fSrcTypeId: e.fId,
            });
          } else {
            this.warehouseCrList.push({
              fQty: qty,
              fCorpid: e.fCorpid,
              fFeeid: e.feeFId,
              fFeeUnitid: e.fFeeUnitid,
              fUnitprice: e.fPrice,
              fCurrency: "RMB",
              fExrate: 1,
              fAmount: fAmount,
              fTaxrate: this.fTaxrate,
              fMblno: this.form.fMblno,
              fProductName: this.form.fProductName,
              fMarks: this.form.fMarks,
              fBusinessType: this.form.fBusinessType,
              fSrcTypeId: e.fId,
            });
          }
        });

        this.warehousingagreements = false;
      }
    },
    // 收款选
    Collectionoptions(selection) {
      this.Collectionoptionss = selection;
      for (let item in this.fWbuOptions) {
        for (let li in this.Collectionoptionss) {
          if (
            this.fWbuOptions[item].fId === this.Collectionoptionss[li].fFeeid
          ) {
            this.$set(
              this.Collectionoptionss[li],
              "fFeeids",
              this.fWbuOptions[item].fName
            );
          }
        }
      }
    },
    //获取登陆人
    queryUser() {
      queryUserVal().then((response) => {
        if (response.user !== null) {
          this.userVal = response.user;
          this.$set(this.form, "fDeptid", this.userVal.deptId);
          this.$set(this.form, "createBy", this.userVal.userName);
          this.$set(this.form, "fStorekeeper", this.userVal.nickName);
          this.$set(this.form, "fIfdamage", "1");
          this.$set(this.form, "fIfweigh", "1");
          this.$set(this.form, "fTrademodeid", "1");
          this.$set(this.form, "createTime", Date.parse(new Date()));
          this.$set(this.form, "fBstime", Date.parse(new Date()));
          this.$set(this.form, "fBusinessType", "0");
        }
        if (response.dept !== null) {
          this.deptOptions = [];
          this.deptOptions.push(response.dept);
        }
      });
    },
    //作业类型校验
    educationChange() {
      if (this.form.fBusinessType === "1" || this.form.fBusinessType === "2") {
        this.isrequired = 1;
        this.isrequired2 = 2;
      } else if (
        this.form.fBusinessType === "3" ||
        this.form.fBusinessType === "4"
      ) {
        this.isrequired2 = 1;
        this.isrequired = 2;
      } else {
        this.isrequired = 2;
        this.isrequired2 = 2;
      }
    },
    // 数量计算
    changeContractAmt(row) {
      let fQty = 0;
      let fUnitprice = 0;
      if (row.fUnitprice) {
        fUnitprice = row.fUnitprice;
      }
      if (row.fQty) {
        fQty = row.fQty;
      }
      this.$set(row, "fAmount", Number(fUnitprice) * Number(fQty)).toFixed(2);
    },
    // 变更计价单位
    changeFeeUnit(row) {
      if (!row.fFeeUnitid) {
        return false;
      }
      if (row.fFeeUnitid === "2") {
        this.$set(row, "fQty", (this.fGrossweight / 1000).toFixed(2));
      } else if (row.fFeeUnitid === "1") {
        this.$set(row, "fQty", this.fQty.toFixed(2));
      } else if (row.fFeeUnitid === "3") {
        this.$set(row, "fQty", (this.fNetweight / 1000).toFixed(2));
      } else if (row.fFeeUnitid === "7") {
        this.$set(row, "fQty", this.fCntqty);
      } else {
        this.$set(row, "fQty", 0);
      }
      if (row.fUnitprice) {
        this.$set(
          row,
          "fAmount",
          parseFloat(Number(row.fUnitprice) * Number(row.fQty)).toFixed(2)
        );
      }
    },
    updateDeduplication() {
      if (this.detailList.length) {
        let fMarks = [];
        let fProductName = [];
        let fMblno = [];
        this.detailList.map((e) => {
          if (e.fMarks) {
            fMarks.push(e.fMarks);
          }
          if (e.fGoodsids) {
            fProductName.push(e.fGoodsids);
          }
          if (e.fMblno) {
            fMblno.push(e.fMblno);
          }
        });
        this.$set(this.form, "fMarks", [...new Set(fMarks)].join(","));
        this.$set(
          this.form,
          "fProductName",
          [...new Set(fProductName)].join(",")
        );
        fMblno = [...new Set(fMblno)];
        if (fMblno.length <= 2) {
          this.$set(this.form, "fMblno", [...new Set(fMblno)].join(","));
        } else {
          this.$set(this.form, "fMblno", fMblno[0] + "," + fMblno[1] + "…");
        }
      }
    },
    //打印
    addprint(status) {
      if (status == "zyd") {
        if (this.CntrTable.length > 0) {
          let arr = [];
          this.CntrTable.map((e) => {
            this.cntrList.map((item) => {
              if (item.fId == e.fCntrid) {
                arr.push(item.fName + "X" + e.fCntrcount);
              }
            });
          });
          arr = [...new Set(arr)];
          this.form.fCntval = arr.join(",");
        } else {
          this.form.fCntval = null;
        }
        if (this.detailList.length > 0) {
          let arr = [];
          this.detailList.map((e) => {
            this.goodsOptions.map((item) => {
              if (e.fGoodsid == item.fId) {
                arr.push(item.fName);
              }
            });
          });
          arr = [...new Set(arr)];
          this.form.fProductName = arr.join(",");
        } else {
          this.form.fProductName = "";
        }
        if (this.detailList.length > 0) {
          let arr = [];
          this.detailList.map((e) => {
            arr.push(e.fMarks);
          });
          arr = [...new Set(arr)];
          this.form.fMarks = arr.join(",");
        } else {
          this.form.fMarks = "";
        }
        this.form.fBillingway = this.form.fFeetUnit;
        if (this.detailList.length == 0) {
          this.form.fNetweight = 0;
          this.form.fPlanvolumn = 0;
          this.form.fGrossweight = 0;
        } else {
          this.form.fNetweight = this.fNetweight;
          this.form.fPlanvolumn = this.fPlanvolumn;
          this.form.fGrossweight = this.fGrossweight;
        }
        let formData = new window.FormData();
        formData.append("type", "2");
        formData.append("warehouseBills", JSON.stringify(this.form));
        formData.append(
          "warehousebillsitems",
          JSON.stringify(this.Printinglist)
        );
        formData.append(
          "warehousebillsfeesDr",
          JSON.stringify(this.warehouseDrList)
        );
        formData.append(
          "warehousebillsfeesCr",
          JSON.stringify(this.warehouseCrList)
        );
        formData.append("tEnclosure", JSON.stringify(this.relevantAttachments));
        formData.append("tCntr", JSON.stringify(this.CntrTable));
        addJoblist(formData).then((response) => {
          if (response.code == 200) {
            this.detailList.map((e, index) => {
              response.data.warehousebillsitems.map((item) => {
                item.fBsdate = Date.parse(new Date(item.fBsdate));
                if (item.fBusinessType) {
                  item.fBusinessType = item.fBusinessType.toString();
                }
                item.fLntype = item.fLntype ? item.fLntype.toString() : null;
                if (e.fId == item.fId) {
                  this.$set(this.detailList, index, item);
                }
              });
            });
            this.$set(this.form, "fItemsStatus", 2);
          }
        });
      }
      const style =
        "@page {  } " +
        "@media print { .print-div{ padding:8px;background-color:#cccccc;} .print-title{display:flex;justify-content: center;font-size:24px} .print_form{font-size:12px} .print_table table {border-right: 1px solid #000;border-bottom: 1px solid #000;font-size:12px} .print_table table td {border-left: 1px solid #000;border-top: 1px solid #000;padding:2px;vertical-align:middle;text-align: center;}";
      print({
        printable: "print_area1",
        type: "html",
        style: style, // 亦可使用引入的外部css;
        scanStyles: false,
      });
    },
    cancel() {
      if (this.$route.query.id) {
        this.$router.push({ query: {} });
      }
      this.resetForm("form");
      this.detailList = [];
      this.relevantAttachments = [];
      this.warehouseCrList = [];
      this.warehouseDrList = [];
      this.CntrTable = [];
      this.$emit("changeShow", "true");
    },
    goBack() {
      this.$confirm("是否确定返回列表?", "提示", {
        confirmButtonText: "保存",
        cancelButtonText: "取消",
        type: "warning",
      })
        .then(() => {
          this.saveForm("goBack");
        })
        .catch(() => {
          this.cancel();
        });
    },
  },
  watch: {
    // 监听 addOrUpdateVisible 改变
    addOrUpdateVisible(oldVal, newVal) {
      this.showDialog = this.addOrUpdateVisible;
    },
  },
};
</script>
<style lang="scss" scoped>
.tag-hover:hover {
  background-color: #d9ebfb;
}
.tag-hover {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  height: 15px;
  padding: 0px 1px;
  line-height: 12px;
}
.print-div {
  color: #000;
}
.print_table {
  table {
    border-right: 1px solid #000;
    border-bottom: 1px solid #000;
    font-size: 12px;
    margin-bottom: 5px;
  }
  table td {
    border-left: 1px solid #000;
    border-top: 1px solid #000;
    vertical-align: middle;
    padding: 2px;
    text-align: center;
  }
}
.print_form {
  font-size: 12px;
}
</style>
