<template>
  <div>
    <div class="customer-head">
      <div class="customer-back">
        <el-button type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
                   @click="backToList(0)">返回列表
        </el-button>
        <el-button v-if="detailData.id" type="danger" style="border: none;background: none;color: red" icon="el-icon-arrow-left"
                   @click="backToList(1)">返回审核列表
        </el-button>
      </div>
      <div class="add-customer-btn">
        <el-button class="el-button--small-yh" style="margin-right: 10px" type="primary" size="small" :disabled="form.status>0"
                   @click="confirmEdit" v-if="optionForm.disabled === true">编辑
        </el-button>
        <el-dropdown style="margin-right: 10px">
          <el-button type="primary" size="small">
            审核处理<i class="el-icon-arrow-down el-icon--right"></i>
          </el-button>
          <el-dropdown-menu slot="dropdown">
            <el-dropdown-item @click.native="pleaseCheck" :disabled="form.status>0">请核数据</el-dropdown-item>
            <el-dropdown-item @click.native="checkScheduleDialog = true,checkId = form.id">审核进度</el-dropdown-item>
            <el-dropdown-item @click.native="repealCancel" :disabled="form.status === 0 || !form.status||form.status>=3" v-if="!detailData.id">撤销请核</el-dropdown-item>
            <el-dropdown-item @click.native="checkDialog = true,checkData = detailData.check;" v-if="detailData.id">特殊审批
            </el-dropdown-item>
          </el-dropdown-menu>
        </el-dropdown>
        <el-button class="el-button--small-yh" type="primary" size="small" :disabled="form.status>0"
                   @click="editCustomer">
          保存数据
        </el-button>
      </div>
    </div>
    <trade-card title="基础资料" style="margin-top: 50px">
      <avue-form :option="optionForm" v-model="form" ref="form">
        <template slot="purchaseCompanyId" slot-scope="scope">
          <crop-select v-model="form.purchaseCompanyId" @getCorpData="(row)=>{getGSData(row,['form','purchaseCompanyName'])}" :disabled="scope.disabled"
                       corpType="KH"/>
        </template>
      </avue-form>
    </trade-card>
    <trade-card title="箱信息">
      <avue-crud
          :option="option"
          :data="dataList"
          v-model="formTwo"
          :table-loading="loading"
          :search.sync="search"
          :page.sync="page"
          @on-load="xiangpage"
          @search-change="searchChange"
          @search-reset="resetChange"
          ref="crud"
          :key="key"
          :before-open="beforeOpen"
          :upload-delete="uploadDelete"
          @row-save="rowSave"
          @row-update="rowUpdate"
          @selection-change="selectionChange"
          @resetColumn="resetColumnTwo('crud','option','optionBack',245.1)"
          @saveColumn="saveColumnTwo('crud','option','optionBack',245.1)">
        <template slot-scope="{type,size,row,index,disabled}" slot="menu">
          <el-button icon="el-icon-edit" :size="size" :disabled="disabled" :type="type"
                     @click="xiangbianji(row,index)">编辑
          </el-button>
          <el-button icon="el-icon-delete" :size="size" :disabled="disabled || row.count > 0" :type="type"
                     @click="rowDel(row,index,'MX')">删除
          </el-button>
        </template>
        <template slot-scope="{ row }" slot="status">
          <span v-for="item in $refs.crud.DIC.status" :style="{color: item.colour}" v-if="item.dictKey == row.status">{{item.dictValue}}</span>
        </template>
        <template slot="addressForm" slot-scope="scope">
          <port-info v-model="formTwo.addressId" type="id" :disabled="scope.disabled" @balabalaTow="(val)=>{balabala(val,['formTwo','address'])}"/>
        </template>
        <!--        <template slot="boxMakingCompanyForm" slot-scope="scope">-->
        <!--          <crop-select v-model="formTwo.boxMakingCompanyId" :disabled="scope.disabled" :refresh="false"-->
        <!--                       @getCorpData="(row)=>{getGSData(row,['formTwo','boxMakingCompany'])}" corpType="GS"/>-->
        <!--        </template>-->
        <template slot="menuLeft" slot-scope="scope">
            <el-button type="primary" size="small" @click="rowaddfun">录入明细</el-button>
          <el-button
              :disabled="selectionList.length === 0 || option.disabled || (selectionList.findIndex(function(item){return item.status == '录入'}) == -1?true:false)"
              type="primary" size="small"
              @click="statusUpdate('0','起租')">起租
          </el-button>
          <el-button
              :disabled="selectionList.length === 0 || option.disabled || (selectionList.findIndex(function(item){return item.status == '待使用'}) == -1?true:false)"
              type="primary" size="small"
              @click="statusUpdate('1','退租')">退租
          </el-button>
          <el-button
              :disabled="selectionList.length === 0 || option.disabled || (selectionList.findIndex(function(item){return item.status == '退租'}) == -1?true:false)"
              type="primary" size="small"
              @click="statusUpdate('1','撤销退租')">撤销退租
          </el-button>
          <el-button
              :disabled="selectionList.length === 0 || option.disabled || (selectionList.findIndex(function(item){return item.status == '待使用'}) == -1?true:false)"
              type="primary" size="small"
              @click="statusUpdate('2','计算租金')">计算租金
          </el-button>
          <el-button
              :disabled="selectionList.length === 0 || option.disabled || (selectionList.findIndex(function(item){return item.status == '待使用' && item.count > 0}) == -1?true:false)"
              type="primary" size="small"
              @click="statusUpdate('3','撤销租金')">撤销租金
          </el-button>
          <el-button :disabled="option.disabled" type="success" size="small" icon="el-icon-bottom"
                     @click="importBox">导入
          </el-button>
          <el-button class="el-icon-download" type="info" size="small" :disabled="!form.id" @click="openReport">
            报表打印
          </el-button>
          <el-button style="margin-left: 0" type="success" size="small"
                     :disabled="storeUp || selectionList.length === 0"
                     @click="stockpiling()">堆存
          </el-button>
        </template>
      </avue-crud>
    </trade-card>
    <!--    报表-->
    <report-dialog
        :switchDialog="switchDialog"
        :reportId="form.id"
        reportName="租入"
        @onClose="onClose()"
    />
<!--    费用信息组件-->
    <box-cost v-model="dataListTwo" :id="form.id" :printingIsDisabled="false" type="ZR" activeName="second" :codeValue="245.2" ref="boxCost"
              @resetTrigger="resetTrigger"></box-cost>
    <trade-card title="附件明细">
      <c-upload
          basic
          :data="tradingBoxFilesList"
          :disabled="disabled"
          deleteUrl="/api/blade-box-tube/tradingBoxFiles/remove"
          :enumerationValue="245.3"
          display
      />
    </trade-card>
    <el-dialog
        :title="title"
        :visible.sync="dialogVisible"
        :append-to-body="true"
        :destroy-on-close="true"
        :close-on-click-modal="false"
        v-if="dialogVisible"
        width="60%">
            <span>
              <avue-form v-if="title == '堆存'" :option="optionStateTwoTwo" v-model="formState" ref="formState">
                  <template slot="addressId" slot-scope="scope">
                    <port-info v-model="formState.addressId" type="id" :disabled="scope.disabled"
                               @balabalaTow="(val)=>{balabala(val,['formState','address'])}"/>
                  </template>
                  <template slot="purchaseCompanyId" slot-scope="scope">
                  <crop-select v-model="formState.purchaseCompanyId"
                               @getCorpData="(row)=>{getGSData(row,['formState','purchaseCompanyName'])}"
                               :disabled="scope.disabled"
                               corpType="KH"/>
                  </template>
              </avue-form>
              <avue-form v-else :option="optionState" v-model="formState" ref="formState">
                <template slot="addressId" slot-scope="scope">
                  <port-info v-model="formState.addressId" type="id" :disabled="scope.disabled"
                             @balabalaTow="(val)=>{balabala(val,['formState','address'])}"/>
                </template>
              </avue-form>
            </span>
      <span slot="footer" class="dialog-footer">
              <el-button @click="dialogVisible = false">取 消</el-button>
              <el-button type="primary" :disabled="disabledVisible" @click="confirmChange">确 定</el-button>
            </span>
    </el-dialog>
    <el-dialog title="导入箱档案" append-to-body :visible.sync="excelBox" width="555px" :close-on-click-modal="false"
               v-dialog-drag>
      <avue-form v-if="excelBox" :option="excelOption" v-model="excelForm" table-loading="excelLoading"
                 :upload-before="uploadBefore" :upload-after="uploadAfter">
        <template slot="excelTemplate">
          <el-button type="primary" @click="derivation">
            点击下载<i class="el-icon-download el-icon--right"></i>
          </el-button>
        </template>
      </avue-form>
      <p style="text-align: center;color: #DC0505">
        温馨提示 第一次导入时请先下载模板
      </p>
    </el-dialog>
    <el-dialog
        append-to-body
        title="审批进度"
        class="el-dialogDeep"
        :visible.sync="checkScheduleDialog"
        width="40%"
        :close-on-click-modal="false"
        :destroy-on-close="true"
        :close-on-press-escape="false"
        v-dialog-drag
    >
      <check-schedule
          :checkId="checkId"
          :batchNo="batchNo"
          @choceScheduleFun="choceScheduleFun"
      ></check-schedule>
    </el-dialog>
    <el-dialog append-to-body title="审批" class="el-dialogDeep" :visible.sync="checkDialog" width="50%"
               :close-on-click-modal="false" :destroy-on-close="true" :close-on-press-escape="false" v-dialog-drag>
      <check :checkData="checkData" :checkDetail="false" :idList="[]" @choceCheckFun="choceCheckFun">
      </check>
    </el-dialog>
  </div>
</template>

<script>
import {
    detail,
    submit,
    tradingBoxFiles,
    selectArchivesList,
    tradingBoxItem,
    tradingBoxFees,
    pleaseCheck,
    repealCancel,
    statusUpdate, calculateRent, revokeRent, itemDetails, revokeRentingOut, detList, getList, tradingBoxItemSubmitRent
} from "@/api/boxManagement/leaseIn/index.js";
import {
  tradingBoxFeesList,
} from "@/api/boxManagement";
import checkSchedule from "@/components/check/checkSchedule";
import {selectByName} from "@/api/boxManagement";
import {getToken} from "@/util/auth";
import {dateFormat, defaultDate} from "@/util/date";
import reportDialog from "@/components/report-dialog/main.vue";
import {generateStack} from "@/api/boxManagement/exportShipment";
import check from "@/components/check/check.vue";
export default {
  name: "detailsPage",
  props: {
    onLoad: Object,
    detailData: Object
  },
  components:{
    checkSchedule,reportDialog,check
  },
  data() {
    return {
        // 箱管理编辑暂存的箱号
        ZCcode:null,
        // 分页
        page: {
            pageSize: 20,
            currentPage: 1,
            total: 0,
            pageSizes: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 1000, 2000]
        },
      checkData: {},
      checkDialog: false,
      switchDialog:false,
      loading:false,
      excelOption: {
        submitBtn: false,
        emptyBtn: false,
        column: [
          {
            label: "模板下载",
            prop: "excelTemplate",
            formslot: true,
            span: 24
          },
          {
            label: "模板上传",
            prop: "excelFile",
            type: "upload",
            drag: true,
            loadText: "模板上传中，请稍等",
            span: 24,
            propsHttp: {
              res: "data"
            },
            tip: "请上传 .xls,.xlsx 标准格式文件",
            action: "/api/blade-box-tube/tradingBoxRent/import-tradingBox-info"
          }
        ]
      },
      excelForm:{},
      title: '',
      dialogVisible: false,
      excelBox: false,
      formSearch: {},
      optionState: {},
      formState: {},
      storeUp:true,
      selectionList: [],
      optionStateTwoTwo: {
        menuBtn: false,
        span: 12,
        column: [{
          label: '堆存地点',
          prop: 'addressId',
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        }, {
          label: '付费对象',
          prop: 'purchaseCompanyId',
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        },{
          label: '堆存日期',
          prop: 'rentDate',
          width: 100,
          type: "date",
          format: "yyyy-MM-dd",
          valueFormat: "yyyy-MM-dd HH:mm:ss",
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        }]
      },
      optionStateTwo: {
        menuBtn: false,
        span: 24,
        column: [{
          label: '起租日期',
          prop: 'rentDate',
          width: 100,
          search: true,
          overHidden: true,
          type: "date",
          format: "yyyy-MM-dd",
          valueFormat: "yyyy-MM-dd HH:mm:ss",
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        }]
      },
      optionStateFour: {
        menuBtn: false,
        span: 12,
        column: [{
          label: '起始日期',
          prop: 'rentStartDate',
          width: 100,
          type: "date",
          format: "yyyy-MM-dd",
          valueFormat: "yyyy-MM-dd HH:mm:ss",
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        },{
          label: '结束日期',
          prop: 'rentCalculationDate',
          width: 100,
          type: "date",
          format: "yyyy-MM-dd",
          valueFormat: "yyyy-MM-dd HH:mm:ss",
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        }]
      },
      optionStateThree: {
        menuBtn: false,
        span: 12,
        column: [{
          label: '地点',
          prop: 'addressId',
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        }, {
          label: '退租日期',
          prop: 'rentDate',
          width: 100,
          search: true,
          overHidden: true,
          type: "date",
          format: "yyyy-MM-dd",
          valueFormat: "yyyy-MM-dd HH:mm:ss",
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        }]
      },
      key: 0,
      checkScheduleDialog: false,
      checkId: '',
      batchNo: '',
      breakConfiguration: {
        multipleChoices: false,
        multiple: false,
        disabled: false,
        searchShow: true,
        collapseTags: false,
        clearable: true,
        placeholder: "请点击右边按钮选择",
        dicData: []
      },
      form: {},
      formTwo: {},
      search: {},
      optionForm: {
        menuBtn: false,
        span: 6,
        column: [{
          label: '系统号',
          prop: 'sysNo',
          disabled: true
        }, {
          label: '合同号',
          prop: 'contractNo',
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        }, {
          label: '箱数',
          prop: 'boxNumber',
          width: 170,
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        }, {
          label: '客户',
          prop: 'purchaseCompanyId',
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        }, {
          label: '合同生效日期',
          prop: 'effectiveDate',
          type: "date",
          format: "yyyy-MM-dd",
          labelWidth:100,
          valueFormat: "yyyy-MM-dd HH:mm:ss",
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        }, {
          label: '合同失效日期',
          prop: 'expiryDate',
          type: "date",
          format: "yyyy-MM-dd",
          labelWidth:100,
          valueFormat: "yyyy-MM-dd HH:mm:ss",
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        }, {
          label: '备注',
          prop: 'remarks',
          type: 'textarea',
          minRows: 1,
          span: 12
        }]
      },
      option: {},
      optionBack: {
        align: 'center',
        index: true,
        addBtnText: "录入明细",
        refreshBtn: false,
        dialogDrag: true,
        addBtn: false,
        span: 8,
        height:600,
        selection: true,
        addRowBtn: false,
        cellBtn: false,
        editBtn: false,
        delBtn: false,
        searchMenuPosition: "right",
        searchSpan: 8,
        searchIcon: true,
        searchIndex: 2,
        menuWidth: 140,
        dialogTop: 25,
        dialogWidth: "80%",
        // showSummary: true,
          reserveSelection:true,
        sumColumnList: [{
          name: 'emptyWeight',
          type: 'sum',
          decimals: 2
        },{
          name: 'grossWeight',
          type: 'sum',
          decimals: 2
        },{
          name: 'tare',
          type: 'sum',
          decimals: 2
        },{
          name: 'loadingWeight',
          type: 'sum',
          decimals: 2
        },{
          name: 'volume',
          type: 'sum',
          decimals: 2
        }],
        column: [{
          label: '箱号',
          prop: 'code',
          width: 100,
          overHidden: true,
          search: true,
          // filterable: true,
          // remote: true,
          // allowCreate: true,
          // type: "select",
          // dicUrl: "/api/blade-box-tube/archives/selectArchivesList?size=10&current=1&code={{key}}",
          // props: {
          //   label: "code",
          //   value: "code"
          // },
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        }, {
          label: '状态',
          prop: 'status',
          width: 100,
          overHidden: true,
          filterable: true,
          disabled: true,
          search: true,
          type: 'select',
          dicUrl: "/api/blade-system/dict-biz/dictionary?code=box_archives_status",
          props: {
            label: "dictValue",
            value: "dictKey"
          }
        }, {
          label: '币别',
          prop: 'currency',
          width: 100,
          overHidden: true,
          filterable: true,
          type: "select",
          dicUrl: "/api/blade-system/dict-biz/dictionary?code=currency",
          props: {
            label: "dictValue",
            value: "dictKey"
          },
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        }, {
          label: '超期租金/天',
          prop: 'price',
          type: 'number',
          controls: false,
          overHidden: true,
          width: 100,
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        }, {
          label: '超期金额',
          prop: 'overdueAmount',
          type: 'number',
          controls: false,
          overHidden: true,
          disabled: true,
          width: 100
        }, {
          label: '天数',
          prop: 'overdueDays',
          type: 'number',
          controls: false,
          overHidden: true,
          width: 100,
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        }, {
          label: '租金金额',
          prop: 'amount',
          type: 'number',
          controls: false,
          overHidden: true,
          width: 100,
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        }, {
          label: '起租日期',
          prop: 'leaseCommencementDate',
          searchProp: 'leaseCommencementDateList',
          overHidden: true,
          search: true,
          disabled: false,
          searchRange: true,
          searchDefaultTime: ["00:00:00", "23:59:59"],
          type: "date",
          format: "yyyy-MM-dd",
          valueFormat: "yyyy-MM-dd HH:mm:ss",
          width: 100,
        }, {
          label: '退租日期',
          prop: 'rentingOutDate',
          searchProp: 'rentingOutDateList',
          overHidden: true,
          search: true,
          searchRange: true,
          searchDefaultTime: ["00:00:00", "23:59:59"],
          type: "date",
          display: false,
          format: "yyyy-MM-dd",
          valueFormat: "yyyy-MM-dd HH:mm:ss",
          width: 100,
        }, {
          label: '当前租金期间',
          prop: 'rentEndDate',
          searchProp: 'rentEndDateList',
          overHidden: true,
          search: true,
          searchRange: true,
          searchDefaultTime: ["00:00:00", "23:59:59"],
          display: false,
          searchLabelWidth:100,
          type: "date",
          format: "yyyy-MM-dd",
          valueFormat: "yyyy-MM-dd HH:mm:ss",
          width: 160
        }, {
          label: '箱类型',
          prop: 'boxTypeId',
          width: 100,
          search: true,
          overHidden: true,
          filterable: true,
          type: 'select',
          props: {
            label: 'name',
            value: 'id'
          },
          dicUrl: '/api/blade-client/container/listMessage',
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        }, {
          label: '最新地点',
          prop: 'address',
          overHidden: true,
          formProp: 'addressId',
          width: 100,
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        }, {
          label: '最新日期',
          prop: 'newDate',
          overHidden: true,
          width: 100,
          type: "date",
          format: "yyyy-MM-dd",
          valueFormat: "yyyy-MM-dd HH:mm:ss",
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        }, {
          label: '堆存状态',
          prop: 'stackingStatus',
          display:false,
          overHidden: true,
          width: 100
        }, {
          label: '堆存时间',
          prop: 'stackingDate',
          width: 100,
          overHidden: true,
          type: "date",
          display:false,
          format: "yyyy-MM-dd",
          valueFormat: "yyyy-MM-dd HH:mm:ss"
        }, {
          label: '箱来源',
          prop: 'boxSource',
          width: 100,
          overHidden: true,
          filterable: true,
          type: 'select',
          dicUrl: "/api/blade-system/dict-biz/dictionary?code=box_source",
          props: {
            label: "dictValue",
            value: "dictKey"
          },
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        }, {
          label: '箱状态',
          prop: 'boxStatus',
          width: 100,
          overHidden: true,
          filterable: true,
          type: 'select',
          dicUrl: "/api/blade-system/dict-biz/dictionary?code=box_status",
          props: {
            label: "dictValue",
            value: "dictKey"
          },
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        }, {
          label: '空重(kg)',
          prop: 'emptyWeight',
          type: 'number',
          overHidden: true,
          controls: false,
          width: 100,
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        }, {
          label: '毛重(kg)',
          prop: 'grossWeight',
          type: 'number',
          overHidden: true,
          controls: false,
          width: 100,
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        }, {
          label: '皮重(kg)',
          prop: 'tare',
          overHidden: true,
          type: 'number',
          controls: false,
          width: 100
        }, {
          label: '装载重量(kg)',
          prop: 'loadingWeight',
          type: 'number',
          overHidden: true,
          controls: false,
          width: 100
        }, {
          label: '容积(m³)',
          prop: 'volume',
          type: 'number',
          overHidden: true,
          controls: false,
          width: 100
        }, {
          label: '造箱公司',
          prop: 'boxMakingCompany',
          overHidden: true,
          width: 100,
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        }, {
          label: '造箱日期',
          prop: 'boxMakingDate',
          width: 100,
          overHidden: true,
          type: "date",
          format: "yyyy-MM-dd",
          valueFormat: "yyyy-MM-dd HH:mm:ss",
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        }, {
          label: '箱来源日期',
          prop: 'leaseCommencementDate',
          width: 100,
          overHidden: true,
          type: "date",
          format: "yyyy-MM-dd",
          valueFormat: "yyyy-MM-dd HH:mm:ss"
        }, {
          label: '箱龄',
          prop: 'boxAge',
          type: 'number',
          controls: false,
          overHidden: true,
          width: 100,
          rules: [{
            required: true,
            message: " ",
            trigger: "blur"
          }]
        }, {
          label: '照片',
          prop: 'tradingBoxFilesList',
          width: 200,
          overHidden: true,
          type: 'upload',
          span: 24,
          showColumn:false,
          hide:true,
          listType: 'picture-card',
          tip: '只能上传jpg/png文件，且不超过500kb',
          propsHttp: {
            url: 'link',
            name: 'originalName',
            res: 'data'
          },
          action: '/api/blade-resource/oss/endpoint/put-file'
        }, {
          label: '备注',
          prop: 'remarks',
          overHidden: true,
          type: 'textarea',
          minRows: 3,
          span: 24,
          width: 200
        }]
      },
      dataList: [],
      dataListTwo:[],
      tradingBoxFilesList: [],
      disabled: false,
      disabledVisible: false,
      costData:{},
        // 保存数据的次数
        baocunindex:0
    }
  },
  async created() {
    this.option = await this.getColumnData(this.getColumnName(245.1), this.optionBack);
    selectByName("买箱费").then(res => {
      this.costData = res.data.data
    })
    //下拉箱号带出对应信息
    // this.findObject(this.option.column, "code").change = ({value, column}) => {
    //   selectArchivesList({code: value}).then(res => {
    //     for (let item of res.data.data) {
    //       if (value == item.code) {
    //         this.formTwo = {
    //           boxSource: item.boxSource,
    //           boxStatus: item.boxStatus,
    //           emptyWeight: item.emptyWeight,
    //           grossWeight: item.gorssWeight,
    //           tare: item.tare,
    //           loadingWeight: item.loadingWeight,
    //           volume: item.volume,
    //         }
    //       }
    //     }
    //   })
    // }
    this.key++
    if (this.onLoad.id && this.detailData.id) {
      this.refresh(this.onLoad.id, true)
    } else if (this.onLoad.id) {
      this.refresh(this.onLoad.id, true)
    }
  },
  methods: {
    //关闭审核
    choceCheckFun() {
      this.checkDialog = false;
    },
    //堆存
    stockpiling() {
      this.title = "堆存"
      const date = new Date();
      this.formState.rentDate = dateFormat(date, "yyyy-MM-dd") + " 00:00:00"
      this.dialogVisible = true
    },
    // 报表
    openReport() {
      this.switchDialog = !this.switchDialog;
    },
    // 报表关闭
    onClose(val) {
      this.switchDialog = val;
    },
      importBox() {
          if (!this.form.id) {
              this.$message.error('请先保存数据')
              return
          }
          this.findObject(this.excelOption.column, "excelFile").data = {
              pid:this.form.id
          }
          this.excelBox = true
      },
    derivation() {
      window.open(`/api/blade-box-tube/tradingBoxRent/export-tradingBox-info?${this.website.tokenHeader}=${getToken()}`);
    },
    uploadBefore(file, done, loading) {
      loading = true;
      done();
    },
    uploadAfter(res, done, loading, column) {
      this.excelBox = false;
      if (typeof res.message === "string") return
      for (let item of this.dataList){
        for (let li of res){
         if (item.code === li.code){
           return this.$message.error(`箱号：${item.code}重复！`);
         }
        }
      }
      this.dataList = this.dataList.concat(res)
      this.$message.success("导入成功！");
        this.baocunindex = 1
      loading = false;
      done();
    },
    statusUpdate(status, type) {
      if (this.form.id) {
        this.title = type
        if (type === '起租') {
          this.optionState = this.optionStateTwo
        } else if (type === '计算租金') {
          this.optionState = this.optionStateFour
          for (let item of this.selectionList) {
            if (!Number(item.price) || Number(item.price) < 0){
              return this.$message.error('超期租金/天,不能不能为0或不能为负')
            }
            for (let li of this.selectionList) {
              if (item.rentEndDate !== li.rentEndDate) {
                return this.$message.error(`${item.code} - ${item.rentEndDate}，当前租金期间不相同，禁止选择`)
              }
            }
          }
          const date = new Date(this.selectionList[0].rentEndDate?this.selectionList[0].rentEndDate:new Date());
          const endDate = new Date(date.getFullYear(), date.getMonth() + 1, 0);
          this.formState.rentStartDate = this.selectionList[0].rentEndDate
          this.formState.rentCalculationDate = dateFormat(endDate, "yyyy-MM-dd") + " 23:59:59"
          if (this.selectionList[0].rentEndDate){
            let endDateTime = 0
            tradingBoxFeesList({
              code: this.selectionList[0].code,
              current: 1,
              size: 10,
              pid: this.form.id,
              feesType: 2
            }).then(res => {
              if (res.data.data.records.length>0) {
                let curDate = new Date(this.selectionList[0].rentEndDate);
                endDateTime = new Date((curDate / 1000 + 86400) * 1000)
              } else {
                let curDate = new Date(this.selectionList[0].leaseCommencementDate ? this.selectionList[0].leaseCommencementDate.slice(0, 10) : this.selectionList[0].leaseCommencementDate);
                endDateTime = new Date((curDate / 1000) * 1000)
              }
              this.formState.rentStartDate = dateFormat(endDateTime, "yyyy-MM-dd") + " 00:00:00"
              const endDateTwo = new Date(endDateTime.getFullYear(), endDateTime.getMonth() + 1, 0);
              this.formState.rentCalculationDate = dateFormat(endDateTwo, "yyyy-MM-dd") + " 23:59:59"
            })
          }
        }else if(type === '撤销租金'){
          return this.$confirm('此操作将撤销租金并删除费用, 是否继续?', '提示', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning'
          }).then(() => {
            revokeRent({
              ...this.form,
              tradingBoxItemsList:this.selectionList
            }).then(res => {
              this.$message.success("操作成功")
              this.formState = {}
              this.refresh(this.form.id)
            })
          }).catch(() => {
            this.$message({
              type: 'info',
              message: '已取消删除'
            });
          });
        } else if (type === '撤销退租'){
          return this.$confirm('此操作将撤销退租并删除费用, 是否继续?', '提示', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning'
          }).then(() => {
            revokeRentingOut({
              ...this.form,
              tradingBoxItemsList:this.selectionList
            }).then(res => {
              this.$message.success("操作成功")
              this.formState = {}
              this.refresh(this.form.id)
            })
          }).catch(() => {
            this.$message({
              type: 'info',
              message: '已取消删除'
            });
          });
        } else {
          this.optionState = this.optionStateThree
          this.formState.rentDate = dateFormat(new Date(), "yyyy-MM-dd") + " 23:59:59"
        }
        this.dialogVisible = true
      } else {
        this.$message.error('请保存后操作')
      }
    },
    confirmChange() {
      if (this.title == "堆存") {
        this.$refs["formState"].validate((valid, done) => {
          done()
          if (valid) {
            let data = {
              ...this.form,
              type: "DCF",
              source: "ZR",
              ...this.formState,
              // tradingBoxItemsList: this.dataList,
              tradingBoxItemsList: this.selectionList,
            }
            // data.tradingBoxItemsList.forEach(item=> delete item.id)
            delete data.id
            const loading = this.$loading({
              lock: true,
              text: '加载中',
              spinner: 'el-icon-loading',
              background: 'rgba(255,255,255,0.7)'
            });
            generateStack(data).then(res => {
              this.$message.success("生成堆存成功")
                this.baocunindex = 1
              this.dialogVisible = false
              this.disabledVisible = false
              this.formState = {}
              this.selectionList = []
              loading.close();
              this.refresh(this.form.id)
            }).catch(() => {
              loading.close();
            })
          }
        })
      } else {
        this.$refs["formState"].validate((valid, done) => {
          done()
          if (valid) {
            if (this.title === "起租" || this.title === "退租") {
              if (this.title === "退租") {
                if (Number(new Date(this.selectionList[0].rentEndDate)) > Number(new Date(this.formState.rentDate))) {
                  return this.$message.error("退租日期不能小于当前租金期间")
                }
              }
              this.disabledVisible = true
              statusUpdate({
                ...this.form,
                ...this.formState,
                tradingBoxItemsList: this.selectionList,
                rentType: this.title === "起租" ? 1 : 2
              }).then(res => {
                this.$message.success("操作成功")
                this.dialogVisible = false
                this.disabledVisible = false
                this.formState = {}
                this.refresh(this.form.id)
              }).catch(() => {
                this.disabledVisible = false
              })
            }else {
              if (this.title === "计算租金"){
                if (Number(new Date(this.selectionList[0].leaseCommencementDate ? this.selectionList[0].leaseCommencementDate.slice(0, 10) : this.selectionList[0].leaseCommencementDate, this.formState.rentStartDate)) > Number(new Date(this.formState.rentStartDate ? this.formState.rentStartDate.slice(0, 10) : this.formState.rentStartDate))) {
                  return this.$message.error("起始日期不能小于起租日期")
                }
                this.disabledVisible = true
                calculateRent({
                  ...this.form,
                  ...this.formState,
                  tradingBoxItemsList:this.selectionList
                }).then(res => {
                  this.$message.success("操作成功")
                  this.dialogVisible = false
                  this.disabledVisible = false
                  this.formState = {}
                  this.refresh(this.form.id)
                }).catch(() => {
                  this.disabledVisible = false
                })
              }
            }
          }
        })
      }
    },
    selectionChange(list) {
      this.selectionList = list
      for (let item of list){
        if (item.status == '待使用' && item.stockpilingStatus == '1'){
          this.storeUp = false
        }else {
          return this.storeUp = true
        }
      }
    },
    confirmEdit() {
      if (this.form.status > 0) {
        //基础资料
        this.$set(this.optionForm, "disabled", true)
        //箱信息
        // this.$set(this.option, "disabled", true)
        this.$set(this.option, "addBtn", false)
        this.$set(this.option, "menu", false)
        //费用信息
        this.$set(this.$refs.boxCost.option, "disabled", true)
        this.$set(this.$refs.boxCost.option,"addBtn",false)
        this.$set(this.$refs.boxCost.option,"menu",false)
        //附件和顶部按钮
        this.disabled = true
      } else {
        //基础资料
        this.$set(this.optionForm, "disabled", false)
        //箱信息
        this.$set(this.option, "disabled", false)
        // this.$set(this.option, "addBtn", true)
        this.$set(this.option, "menu", true)
        //费用信息
        this.$set(this.$refs.boxCost.option,"disabled",false)
        // this.$set(this.$refs.boxCost.option,"addBtn",true)
        this.$set(this.$refs.boxCost.option,"menu",true)
        //附件和顶部按钮
        this.disabled = false
      }
      this.key++
    },
    // 明细删除
    rowDel(row, index, type) {
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      }).then(() => {
            if (row.id) {
              tradingBoxItem(row.id).then(res => {
                if (res.data.success) {
                  this.$message.success("操作成功!");
                  this.dataList.splice(index, 1);
                  if (this.dataListTwo.length > 0) {
                    for (let item in this.dataListTwo) {
                      if (this.dataListTwo[item].code == row.code) {
                        if (this.dataListTwo[item].autoGenerate == 1) {
                          if (this.dataListTwo[item].id) {
                            tradingBoxFees(this.dataListTwo[item].id).then(res => {
                              if (res.data.success) {
                                this.dataListTwo.splice(index, 1);
                              }
                            });
                          } else {
                            this.dataListTwo.splice(Number(item), 1);
                          }
                        }
                      }
                    }
                  }
                }
              });
            } else {
              this.dataList.splice(index, 1);
              this.$message.success("操作成功!");
              if (this.dataListTwo.length > 0) {
                for (let item in this.dataListTwo) {
                  if (this.dataListTwo[item].code == row.code) {
                    if (this.dataListTwo[item].autoGenerate == 1) {
                      this.dataListTwo.splice(Number(item), 1);
                    }
                  }
                }
              }
            }
          }
      )
      ;
    },
    //撤销
    repealCancel(){
      this.$confirm("您确定撤回此次申请吗？", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      }).then(() => {
        const data = {
          id : this.form.id,
          pageLabel:"租入",
          checkFlag: 3,
        }
        const loading = this.$loading({
          lock: true,
          text: '加载中',
          spinner: 'el-icon-loading',
          background: 'rgba(255,255,255,0.7)'
        });
        repealCancel(data).then(res => {
          loading.close();
          this.$message.success('撤回成功')
          this.refresh(this.form.id)
        }).catch(()=>{
          loading.close();
        })
      })
    },
    // 请核
    pleaseCheck() {
      this.$confirm("您确定提交请核申请吗?", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "warning"
      }).then(() => {
        this.$refs["form"].validate((valid,done) => {
          done()
          if (valid) {
            if (this.dataList.length === 0) {
              return this.$message.error("箱信息不能为空")
            }
            if (this.$refs.boxCost.dataList.length === 0) {
              return this.$message.error("费用信息不能为空")
            }else {
              for (let item of this.$refs.boxCost.dataList){
                if (!item.id){
                  return this.$message.error("费用信息未保存")
                }
              }
            }
            let data = {
              ...this.form,
              tradingBoxItemsList: this.dataList,
              tradingBoxFeesList: this.dataListTwo,
              tradingBoxFilesList: this.tradingBoxFilesList,
              type: "ZR"
            }
            const loading = this.$loading({
              lock: true,
              text: '加载中',
              spinner: 'el-icon-loading',
              background: 'rgba(255,255,255,0.7)'
            });
            submit(data).then(res => {
              const data = {
                id: res.data.data.id,
                url: '/boxManagement/leaseIn/index',
                pageStatus: "this.$store.getters.domSaleStatus",
                pageLabel: "租入",
                checkFlag: 3,
              }
              pleaseCheck({
                ...data,
                type: "ZR"
              }).then(rest => {
                loading.close();
                this.$message.success('请核成功')
                this.refresh(res.data.data.id)
              }).catch(()=>{
                loading.close();
              })
            }).catch(()=>{
              loading.close();
            })
          }
        });
      })
    },
    //审核关闭
    choceScheduleFun(){
      this.checkScheduleDialog = false
    },
    resetChange(item){
      this.queryDetails()
    },
    searchChange(params, done) {
      for (let item of this.dataList){
        if (!item.id){
          this.$confirm('有未保存明细继续搜索会清空未保存数据?', '提示', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning'
          }).then(() => {
            done();
            return this.queryDetails(params)
          })
        }
      }
      done();
      this.queryDetails(params)
    },
      // 箱信息的分页
      xiangpage(page,params = {}){
          this.queryDetails()
      },
      // 获取箱信息数据
    queryDetails(params = {}) {
      params = {
        ...params,
        type: "ZR",
        ...Object.assign(params, this.search)
      }
      this.loading = true
      detList({
        ...params,
          current: this.page.currentPage,
          size: this.page.pageSize,
        pid:this.form.id?this.form.id:this.onLoad.id
      }).then(res=>{
          this.page.total = res.data.data.total
        this.dataList = res.data.data.records
        this.loading = false
      }).finally(() => {
        this.loading = false
      }).catch(()=>{
        this.loading = false
      })
    },
    refresh(id,type) {
      const loading = this.$loading({
        lock: true,
        text: '加载中',
        spinner: 'el-icon-loading',
        background: 'rgba(255,255,255,0.7)'
      });
      this.queryDetails()
      detail({id: id}).then(res => {
        this.form = res.data.data
        this.dataList = res.data.data.tradingBoxItemsList
        this.dataListTwo = res.data.data.tradingBoxFeesList
        this.tradingBoxFilesList = res.data.data.tradingBoxFilesList
        delete this.form.tradingBoxItemsList
        delete this.form.tradingBoxFeesList
        delete this.form.tradingBoxFilesList
        this.$refs.boxCost.code = this.form.code
        loading.close();
        if (type) {
          //基础资料
          this.$set(this.optionForm, "disabled", true)
          //箱信息
          // this.$set(this.option, "disabled", true)
          this.$set(this.option, "addBtn", false)
          this.$set(this.option, "menu", false)
          //费用信息
          this.$set(this.$refs.boxCost.option, "disabled", true)
          this.$set(this.$refs.boxCost.option, "addBtn", false)
          this.$set(this.$refs.boxCost.option, "menu", false)
          //附件和顶部按钮
          this.disabled = true
        }else {
          if (this.form.status > 0) {
            //基础资料
            this.$set(this.optionForm, "disabled", true)
            //箱信息
            // this.$set(this.option, "disabled", true)
            this.$set(this.option, "addBtn", false)
            this.$set(this.option, "menu", false)
            //费用信息
            this.$set(this.$refs.boxCost.option, "disabled", true)
            this.$set(this.$refs.boxCost.option, "addBtn", false)
            this.$set(this.$refs.boxCost.option,"menu",false)
            //附件和顶部按钮
            this.disabled = true
          } else {
            //基础资料
            this.$set(this.optionForm, "disabled", false)
            //箱信息
            this.$set(this.option, "disabled", false)
            // this.$set(this.option, "addBtn", true)
            this.$set(this.option, "menu", true)
            //费用信息
            this.$set(this.$refs.boxCost.option, "disabled", false)
            // this.$set(this.$refs.boxCost.option, "addBtn", true)
            this.$set(this.$refs.boxCost.option, "menu", true)
            //附件和顶部按钮
            this.disabled = false
          }
        }
        this.key++
      })
    },
    //新增修改
    editCustomer() {
      this.$refs["form"].validate((valid,done) => {
        done()
        if (valid) {
          let data = {
            ...this.form,
            // tradingBoxItemsList: this.dataList,
            // tradingBoxFeesList: this.dataListTwo,
            tradingBoxFilesList: this.tradingBoxFilesList,
            type: "ZR"
          }
          const loading = this.$loading({
            lock: true,
            text: '加载中',
            spinner: 'el-icon-loading',
            background: 'rgba(255,255,255,0.7)'
          });
          submit(data).then(res => {
            if (this.form.id) {
              this.$message.success("修改成功")
            } else {
              this.$message.success("新增成功")
            }
              this.baocunindex = 0
            loading.close();
            this.refresh(res.data.data.id)
          }).catch(()=>{
            loading.close();
          })
        }
      });
    },
      // 箱信息添加
      rowaddfun(){
          this.$refs["form"].validate((valid,done) => {
              if (valid) {
                  const idp = this.form.id?this.form.id:this.onLoad.id
                  if (!idp) {
                      return this.$message.warning('请先填写保存数据');
                  }else {
                      this.$refs.crud.rowAdd()
                  }
              }else {
                  return this.$message.warning('请先填写基础信息');
              }
          })
      },
      // 箱信息的添加
    rowSave(form,done,loading) {
      let result = this.dataList.some((item) => {
        if (item.code == form.code) {
          return true
        }
      })
      if (result === true) {
        this.$message.error("已存在此箱号");
        return loading();
      }
      form.boxType = form.$boxTypeId
        this.tradingBoxItemSubmitRentfun(form)

        // 费用的保存
        const obj = {
            // 费用名称id
            itemId:'1636526426121347073',
            itemName: "租金",
            // 客户id
            corpId:this.form.purchaseCompanyId,
            corpName: this.form.purchaseCompanyName,
            // 排序
            sort:1,
            // 数量
            quantity:1,
            // 单价
            price:form.amount,
            // 金额
            amount: form.amount,
            // 币别
            currency:form.currency,
            // 1.应收 2.应付
            feesType: 2,
            // 箱号
            code: form.code,
            // 业务类型
            billType: "",
            // 是否自动生成（0否1是）
            autoGenerate:1,
            // 是否手动录入
            identifier:0,
            pid: form.pid,
            remarks:form.remarks,
        }
        this.$refs.boxCost.data_two.push(obj)
        this.$refs.boxCost.tradingBoxFeesSubmitfun(obj)
      done(form)

    },

      // 箱编辑弹窗接口
      xiangbianji(row,index){
          // 暂存箱号
          this.ZCcode = row.code
          this.$refs.crud.rowEdit(row,index)
      },

      // 箱信息的编辑
    rowUpdate(form, index, done, loading) {
      form.boxType = form.$boxTypeId
        this.tradingBoxItemSubmitRentfun(form)

        // 费用的更改
        for(let index in this.$refs.boxCost.data_two) {
            if (this.ZCcode == this.$refs.boxCost.data_two[index].code){
                this.$refs.boxCost.data_two[index] = {
                    id:this.$refs.boxCost.data_two[index].id,
                    // 费用名称id
                    itemId:'1636526426121347073',
                    itemName: "租金",
                    // 客户id
                    corpId:this.form.purchaseCompanyId,
                    corpName: this.form.purchaseCompanyName,
                    // 排序
                    sort:1,
                    // 数量
                    quantity:1,
                    // 单价
                    price:form.amount,
                    // 金额
                    amount: form.amount,
                    // 币别
                    currency:form.currency,
                    // 1.应收 2.应付
                    feesType: 2,
                    // 箱号
                    code: form.code,
                    // 业务类型
                    billType: "",
                    // 是否自动生成（0否1是）
                    autoGenerate:1,
                    // 是否手动录入
                    identifier:0,
                    pid: form.pid,
                    remarks:form.remarks,
                }
                this.$refs.boxCost.tradingBoxFeesSubmitfun(this.$refs.boxCost.data_two[index])
                break;
            }
        }
      done(form)
    },
      // 箱信息的添加和保存
      tradingBoxItemSubmitRentfun(form){
          tradingBoxItemSubmitRent({
              ...form,
              pid:this.form.id?this.form.id:this.onLoad.id
          }).then(res=>{
              this.$message.success("操作成功!");
              this.baocunindex = 1
              this.queryDetails()
          })
      },

    //打开表单前
    beforeOpen(done,type){
      if (this.formTwo.count > 0){
        this.findObject(this.option.column, "price").disabled = true
        // this.findObject(this.option.column, "amount").disabled = true
      }else {
        this.findObject(this.option.column, "price").disabled = false
        // this.findObject(this.option.column, "amount").disabled = false
      }
      if(['view','edit'].includes(type)){
        itemDetails({id:this.formTwo.id,type: "ZR"}).then(res=>{
          if (this.formTwo.tradingBoxFilesList.length === 0){
            this.formTwo.tradingBoxFilesList = res.data.data.tradingBoxFilesList
          }
        })
        // 查看和编辑逻辑
      }
      done();
    },
    //删除图片
    uploadDelete(file, column) {
      return new Promise((resolve, reject) => {
        this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          if (this.formTwo.tradingBoxFilesList[file.uid].id) {
            tradingBoxFiles(this.formTwo.tradingBoxFilesList[file.uid].id).then(res => {
              this.$message({
                type: 'success',
                message: '删除成功!'
              });
              resolve();
            })
          } else {
            resolve();
          }
        }).catch(()=>{
          reject();
          this.$message({
            type: "info",
            message: "已取消删除"
          });
        })
      })
    },
    getGSData(row,type) {
      this[type[0]][type[1]] = row.cname
    },
    balabala(row,type) {
      this[type[0]][type[1]] = row.name
    },
    backToList(type) {
      if (type == 0){
          console.log(this.baocunindex,1246)
          if (this.baocunindex != 0) {
              return this.$message.warning('请先填写保存数据');
          }
        if (this.detailData.id){
          this.$router.push({
            path: '/boxManagement/buyContainer/index'
          });
        }
        this.$emit("backToList",type);
      }else if (type == 1){
        this.$router.push({
          path: '/approveData/index'
        });
        this.$emit("backToList",type);
      }
    },
    //自定义列保存
    async saveColumnTwo(ref, option, optionBack, code) {
      /**
       * 已定义全局方法，直接使用，saveColumnData保存列数据方法,参数传值(表格名称，当前表格的option数据)
       * 已定义全局方法，直接使用，getColumnName方法用来获取枚举值，参数根据自己定义的code值获取中文名
       * 一定要执行异步操作，要等接口成功返回，才能执行下一行代码
       */
      const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);
      if (inSave) {
        this.$message.success("保存成功");
        this.$nextTick(() => {
          this.$refs.crud.doLayout()
        })
        //关闭窗口
        this.$refs[ref].$refs.dialogColumn.columnBox = false;
      }
    },
    resetTrigger(){
      if (this.optionForm.disabled == true) {
        if (this.form.status > 0) {
          //基础资料
          this.$set(this.optionForm, "disabled", true)
          //箱信息
          // this.$set(this.option, "disabled", true)
          this.$set(this.option, "addBtn", false)
          this.$set(this.option, "menu", false)
          //费用信息
          this.$set(this.$refs.boxCost.option, "disabled", true)
          this.$set(this.$refs.boxCost.option, "addBtn", false)
          this.$set(this.$refs.boxCost.option,"menu",false)
          //附件和顶部按钮
          this.disabled = true
        } else {
          //基础资料
          this.$set(this.optionForm, "disabled", false)
          //箱信息
          this.$set(this.option, "disabled", false)
          // this.$set(this.option, "addBtn", true)
          this.$set(this.option, "menu", true)
          //费用信息
          this.$set(this.$refs.boxCost.option, "disabled", false)
          // this.$set(this.$refs.boxCost.option, "addBtn", true)
          this.$set(this.$refs.boxCost.option, "menu", true)
          //附件和顶部按钮
          this.disabled = false
        }
      }else {
        //基础资料
        this.$set(this.optionForm, "disabled", false)
        //箱信息
        this.$set(this.option, "disabled", false)
        // this.$set(this.option, "addBtn", true)
        this.$set(this.option, "menu", true)
        //费用信息
        this.$set(this.$refs.boxCost.option, "disabled", false)
        // this.$set(this.$refs.boxCost.option, "addBtn", true)
        this.$set(this.$refs.boxCost.option, "menu", true)
        //附件和顶部按钮
        this.disabled = false
      }
      this.$nextTick(() => {
        this.$refs.crud.doLayout()
      })
      this.key++
    },
    //自定义列重置
    async resetColumnTwo(ref, option, optionBack, code) {
      this[option] = this[optionBack];
      const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
      if (inSave) {
        this.resetTrigger()
        this.$message.success("重置成功");
        this.$refs[ref].$refs.dialogColumn.columnBox = false;
      }
    }
  }
}
</script>

<style scoped>
::v-deep .el-form-item {
  margin-bottom: 8px;
}
</style>
