//汽运结算报表
<template>
  <div class="container">
    <el-scrollbar style="height: 100%">
      <el-row>
        <el-col style="padding-left: 15px" :span="16">
          <ws-button
            :type="searchType == 1 ? 'primary' : ''"
            @click="handlestatus(1)"
            >待审核</ws-button
          >
          <ws-button
            :type="searchType == 2 ? 'primary' : ''"
            @click="handlestatus(2)"
            >待结算</ws-button
          >
          <ws-button
            :type="searchType == 3 ? 'primary' : ''"
            @click="handlestatus(3)"
            >已结算</ws-button
          >
          <ws-button
            :type="searchType == '' ? 'primary' : ''"
            @click="handlestatus('')"
            >全部</ws-button
          >
          <ws-button
            type="primary"
            v-hasPermission="`report.transportationReport.view`"
            @click="handlepass()"
            >通过</ws-button
          >
          <ws-button
            type="primary"
            v-hasPermission="`report.transportationReport.view`"
            @click="handlereject()"
            >驳回</ws-button
          >
          <ws-button
            type="primary"
            v-hasPermission="`report.transportationReport.payment`"
            @click="handlepayment"
            >付款</ws-button
          >
          <ws-button
            type="primary"
            v-hasPermission="`report.transportationReport.draw`"
            @click="handleninvoice"
            >开发票</ws-button
          >
          <ws-button
            type="primary"
            
            @click="editRecord"
            >记录</ws-button
          >
          <!-- v-hasPermission="`report.transportationReport.payment`" -->
        </el-col>
        <el-col
          style="text-align: right; line-height: 60px; padding-right: 10px"
          :span="8"
        >
          <el-select
            v-model="contractNo"
            placeholder="请选择合同"
            clearable
            filterable
           
            @change="contractchange"
            maxlength="500"
            type="input"
            class="findValue"
          >
            <el-option
              v-if="item.reportStatus"
              v-for="item in options"
              :key="item.constKey"
              :label="item.contractNo + '(' + item.reportStatus + ')'"
              :value="item.contractNo"
            />
            <el-option
              v-if="!item.reportStatus"
              v-for="item in options"
              :key="item.constKey"
              :label="item.contractNo"
              :value="item.contractNo"
            />
          </el-select>
        </el-col>
      </el-row>
      <el-table
        class="wenzi"
        :data="warehouseList.records"
        style="width: 100%; margin-top: 20px"
        ref="warehouseList"
        border
        :summary-method="getSummaries"
        show-summary
        @row-click="handleRowClick"
        @selection-change="handleSelectionChange"
      >
        <el-table-column
          :selectable="selectInit"
          type="selection"
          width="55"
        ></el-table-column>
        <el-table-column type="index" label="序号" width="50"></el-table-column>
        <el-table-column
          class="table_td"
          prop="contractNo"
          width="120"
          label="合同编号"
        ></el-table-column>
        <el-table-column
          width="120"
          class="table_td"
          prop="processNo"
          label="运输阶段"
        ></el-table-column>
        <el-table-column
          width="60"
          class="table_td"
          prop="name"
          label="姓名"
        ></el-table-column>
        <el-table-column
          width="120"
          class="table_td"
          prop="phone"
          label="电话"
        ></el-table-column>
        <el-table-column
          class="table_td"
          prop="carNo"
          label="车牌号"
          width="140"
          ><template slot-scope="scope">
            {{ scope.row.carNo }}({{ scope.row.tranCarNo }})
          </template></el-table-column
        >
        <el-table-column
          width="100"
          class="table_td"
          prop="loadingWeight"
          label="装车净重(吨)"
        ><template slot-scope="scope">
            <div
              style="
                display: inline-block;
                color: #5878e8;
                padding: 0 4px !important;
                position: relative;
                font-size: 14px;
              "
              @click="lookloadingImg(scope.row)"
            >
            <span>{{scope.row.loadingWeight}}</span>
            </div>
          </template>
        </el-table-column>
        <el-table-column
          width="100"
          class="table_td"
          prop="unloadingWeight"
          label="卸车净重(吨)"
        ><template slot-scope="scope">
            <span v-if="scope.row.unloadingWeight == null ">未卸车</span>
            <div
              style="
                display: inline-block;
                color: #5878e8;
                padding: 0 4px !important;
                position: relative;
                font-size: 14px;
              "
              @click="lookunloadingImg(scope.row)"
            >
            <span>{{scope.row.unloadingWeight}}</span>
            </div>
          </template>
        </el-table-column>
        <el-table-column
          width="100"
          class="table_td"
          prop="lossWeight"
          label="损耗(吨)"
          ><template slot-scope="scope">
            <span v-if="scope.row.unloadingWeight == null">--</span>
            <span
              v-else-if="
                scope.row.lossWeight > 0 &&
                scope.row.lossWeight > scope.row.loadingWeight / 1000
              "
              style="color: #f10404; font-weight: 600"
              >{{ scope.row.lossWeight }}</span
            >
           <span
              v-else
              style="font-weight: 600"
              >{{ scope.row.lossWeight }}</span
            >
          </template>
        </el-table-column>
        <el-table-column
          width="120"
          class="table_td"
          prop="transportPrice"
          label="运输单价(元/吨)"
        ></el-table-column>
        <el-table-column
          width="120"
          class="table_td"
          prop="settlementWeight"
          label="结算重量(吨)"
          ><template slot-scope="scope">
            <span v-if="scope.row.unloadingWeight == '未卸车'">{{scope.row.loadingWeight}}}</span>
            <span
              v-if="
                !scope.row.settlementWeightchange && scope.row.settlementWeight
              "
              >{{ scope.row.settlementWeight }}</span
            >
            <input
              v-if="scope.row.settlementWeightchange"
              style="width: 60px"
              v-model="settlementWeight"
              type="text"
            />
            <!--改结算重量-->
            <i
              @click="changesettlementWeight(scope.row)"
              v-if="
                (scope.row.settlementWeightchange &&
                  scope.row.approveStatus == '待物流部审核') ||
                (scope.row.settlementWeightchange &&
                  scope.row.status == '已驳回')
              "
              class="iconfont icon-dui"
            ></i>
            <img
              v-if="
                (!scope.row.settlementWeightchange &&
                  scope.row.settlementWeight &&
                  scope.row.approveStatus == '待物流部审核') ||
                (!scope.row.settlementWeightchange &&
                  scope.row.settlementWeight &&
                  scope.row.status == '已驳回')
              "
              width="17"
              height="18"
              style="vertical-align: text-top; position: relative; top: -1px"
              src="../../../public/img/edit.png"
              @click="editsettlementWeight(scope.row)"
              alt=""
            /> </template
        ></el-table-column>
        <el-table-column
          width="120"
          class="table_td"
          prop="deductionAmount"
          label="扣款(元)"
          ><template slot-scope="scope">
            <span
              v-if="
                !scope.row.deductionAmountchange && scope.row.deductionAmount
              "
              >{{ scope.row.deductionAmount }}</span
            >
            <input
              v-if="scope.row.deductionAmountchange"
              style="width: 60px"
              v-model="deductionAmount"
              type="text"
            />
            <!--改扣款-->
            <i
              @click="changedeductionAmount(scope.row)"
              v-if="
                (scope.row.deductionAmountchange &&
                  scope.row.approveStatus == '待物流部审核') ||
                (scope.row.deductionAmountchange &&
                  scope.row.status == '已驳回')
              "
              class="iconfont icon-dui"
            ></i>
            <img
              v-if="
                (!scope.row.deductionAmountchange &&
                  scope.row.deductionAmount &&
                  scope.row.approveStatus == '待物流部审核') ||
                (!scope.row.deductionAmountchange &&
                  scope.row.deductionAmount &&
                  scope.row.status == '已驳回')
              "
              width="17"
              height="18"
              style="vertical-align: text-top; position: relative; top: -1px"
              src="../../../public/img/edit.png"
              @click="editdeductionAmount(scope.row)"
              alt=""
            /> </template
        ></el-table-column>
        <el-table-column
          width="100"
          class="table_td"
          label="应付金额(元)"
          prop="amountIngPayable"
        ></el-table-column>
        <el-table-column
          width="100"
          class="table_td"
          label="已付金额(元)"
          prop="amountEdPayable"
        ><template slot-scope="scope">
            <div
              style="
                display: inline-block;
                color: #5878e8;
                padding: 0 4px !important;
                position: relative;
                font-size: 14px;
              "
              @click="lookpaymentScreenshot(scope.row)"
            >
            <span>{{scope.row.amountEdPayable}}</span>
            </div>
          </template>
        </el-table-column>
        <el-table-column
          width="100"
          class="table_td"
          label="未付金额(元)"
          prop="amountNotPayable"
        ></el-table-column>
        <el-table-column
          width="100"
          class="table_td"
          label="已开发票(元)"
          prop="alreadyInvoice"
          ><template slot-scope="scope">
            {{ scope.row.alreadyInvoice }}
            <img
              v-if="scope.row.amountEdPayable > 0"
              width="17"
              height="18"
              style="vertical-align: text-top; position: relative; top: -1px"
              src="../../../public/img/edit.png"
              @click="editClickInvoice(scope.row)"
              alt=""
            />
          </template>
        </el-table-column>
        <el-table-column
          width="150"
          class="table_td"
          label="付款日期"
          prop="paymentDate"
        ></el-table-column>
        <el-table-column class="table_td" label="账户" prop="">
          <template slot-scope="scope">
            <div
              style="
                display: inline-block;
                color: #5878e8;
                padding: 0 4px !important;
                position: relative;
                font-size: 14px;
              "
              @click="look(scope.row)"
            >
              查看
            </div>
          </template></el-table-column
        >
        <el-table-column label="状态" prop="status" width="100px">
          <template slot-scope="scope">
            <span v-if="scope.row.approveStatus != null">{{
              scope.row.approveStatus
            }}</span>
            <span v-else>{{ scope.row.status }}</span>
          </template>
        </el-table-column>
      </el-table>

      <!-- 页数 -->
      <el-pagination
        @size-change="handleSizeChange"
        @current-change="handleCurrentChange"
        :current-page="currentPage"
        :page-size="pageSize"
        layout="total, sizes, prev, pager, next, jumper"
        :total="deptBudgetTotal"
      ></el-pagination>
    </el-scrollbar>
    <!-- 修改结算重量记录 -->
    <el-dialog
      width="40%"
      title="结算重量修改记录"
      :visible.sync="dialogFormVisible16"
      :append-to-body="true"
    >
      <el-table :data="tranPriceApproveList">
        <el-table-column prop="result" label="车牌号"> </el-table-column>
        <el-table-column prop="tranPrice" label="单价（元）">
        </el-table-column>
        <el-table-column prop="beforeModification" label="修改前重量(吨)"> </el-table-column>
        <el-table-column prop="afterModification" label="修改后重量(吨)"> </el-table-column>
        <el-table-column prop="reviewer" label="修改人"> </el-table-column>
        <el-table-column prop="createDate" label="修改日期" width="200px"> </el-table-column>
      </el-table>
    </el-dialog>
    <!-- 付款 -->
    <el-dialog
      width="25%"
      title="付款"
      :visible.sync="dialogFormVisible1"
      :append-to-body="true"
    >
      <el-form :model="form">
        <el-form-item label="未付金额（元）" :label-width="formLabelWidth">
          <template>
            <span>{{ amountNotPayable }}</span>
          </template>
        </el-form-item>
        <el-form-item label="本次付款金额" :label-width="formLabelWidth">
          <el-input
            v-model="money"
            autocomplete="off"
            placeholder="请输入本次付款金额"
            class="deal"
          ></el-input>
        </el-form-item>
        <el-form-item
          label="付款日期"
          prop="paymentDate"
          :label-width="formLabelWidth"
          class="deal"
        >
          <ws-date-picker
            v-model="paymentDate"
            type="date"
            placeholder="请选择付款日期"
            value-format="yyyy-MM-dd"
            class="deal"
          />
        </el-form-item>
        <el-form-item label="上传付款截图" :label-width="formLabelWidth">
          <el-upload
            action="https://www.zthymaoyi.com/upload/admin"
            list-type="picture-card"
            :on-success="handlePictureCardPreview"
            :on-remove="handleRemove"
            class="photo2"
          >
            <i class="el-icon-plus"></i>
          </el-upload>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogFormVisible1 = false">取 消</el-button>
        <el-button type="primary" @click="submitMoney()">提 交</el-button>
      </div>
    </el-dialog>
    <!-- 批量开发票 -->
    <el-dialog
      width="30%"
      title="批量开发票"
      :visible.sync="dialogFormVisible2"
      :append-to-body="true"
    >
      <el-form :model="form">
        <el-form-item label="发票金额（元）" :label-width="formLabelWidth">
          <span> {{ amountEdPayable }}</span>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogFormVisible2 = false">取 消</el-button>
        <el-button type="primary" @click="submitBatchInvoice()"
          >提 交</el-button
        >
      </div>
    </el-dialog>
    <!-- 开发票 -->
    <el-dialog
      width="30%"
      title="开发票"
      :visible.sync="dialogFormVisible3"
      :append-to-body="true"
    >
      <el-form :model="form">
        <el-form-item label="可开发票金额（元）" :label-width="formLabelWidth1">
          {{ amountEdPayable }}
        </el-form-item>
        <el-form-item label="实际发票金额（元）" :label-width="formLabelWidth1">
          <el-input
            v-model="alreadyInvoice"
            autocomplete="off"
            class="deal"
          ></el-input>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogFormVisible3 = false">取 消</el-button>
        <el-button type="primary" @click="submitInvoice()">提 交</el-button>
      </div>
    </el-dialog>
    <!--账户-->
    <el-dialog
      width="30%"
      title="账户信息"
      :visible.sync="dialogFormVisible8"
      :append-to-body="true"
    >
      <h3 style="margin-left: 30px">{{ driverPayeeList.payeeName }}的账户</h3>
      <div v-for="(item, index) in driverPayeeList" :key="index">
      <h4 style="margin-left: 30px">账户-{{index+1}}</h4>
      <div class="anniu">
        <el-radio-group @change="bankCard(item,id)" v-model="item.radio">
        <el-radio label="1">本次收款账户</el-radio>
      </el-radio-group>
      </div>
      <el-form class="customer" :model="form">
        <el-form-item label="账户类型" :label-width="formLabelWidth">
          {{ item.accountType }}
        </el-form-item>
        <el-form-item label="银行卡号" :label-width="formLabelWidth">
          {{ item.bankCard }}
        </el-form-item>
        <el-form-item label="开户行" :label-width="formLabelWidth">
          {{ item.bankDeposit }}
        </el-form-item>
        <el-form-item label="开户支行" :label-width="formLabelWidth">
          {{ item.bankDepositBranch }}
        </el-form-item>
        <el-form-item
          label="收款人姓名"
          :label-width="formLabelWidth"
          v-if="item.accountTypeFlag == 1"
        >
          {{ item.payeeName }}
        </el-form-item>
        <el-form-item
          label="收款人身份证号"
          :label-width="formLabelWidth"
          v-if="item.accountTypeFlag == 1"
        >
          {{ item.payeeNumberCard }}
        </el-form-item>
        <el-form-item
          v-if="item.accountTypeFlag == 2"
          label="企业名称"
          :label-width="formLabelWidth"
        >
          {{ item.compName }}
        </el-form-item>
      </el-form>
      </div>
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogFormVisible8 = false">取 消</el-button>
      </div>
    </el-dialog>
    <!--磅单 -->
    <WinseaContentModal
      v-model="accessoryTFs"
      title="磅单信息"
      @on-cancel="handleClose"
    >
      <p>查看装车磅单</p>
        <img width="100" height="100" :src="loadingImg1" alt="" />
    </WinseaContentModal>
    <WinseaContentModal
      v-model="accesscard"
      title="磅单信息"
      @on-cancel="handleClose1"
    >
      <p>查看卸车磅单</p>
      <img width="100" height="100" :src="unloadingImg1" alt="" />
    </WinseaContentModal>
    <!--付款截图 -->
    <WinseaContentModal
      v-model="paymentImg"
      title="付款截图信息"
      @on-cancel="handleClose2"
    >
      <p>查看付款截图</p>
      <div v-for="item in paymentScreenshot1">
        <img style="width: 100px; height: 100px" :src="item" alt="" />
      </div>
    </WinseaContentModal>
  </div>
  <!-- </div> -->
</template>
<script>
import {
  autoList,
  editauto,
  autocontract,
  autopaymoney,
  openinvoicelist,
  // postaudit,
  //   getselectctcontractno,
} from '@/model/statisticalReport/index'
import { posthandle } from '@/model/purchasingManagement/index'
import { downloadFile } from '@/utils/batchDown'
import Pagination from '@/components/Pagination'
import WsUpload from '@/components/WsUpload'
import { EventBus } from 'base-core-lib'
export default {
  name: 'viewSpareMoney',
  components: {
    WsUpload,
    Pagination,
  },
  watch: {
    vesselId(val) {
      this.getList()
    },
    isShow(val) {
      this.showType = val
    },
  },

  data() {
    return {
      checked: true,
      alreadyInvoice: '',
      needReapply: true,
      dialogFormVisible1: false,
      dialogFormVisible2: false,
      dialogFormVisible3: false,
      dialogFormVisible4: false,
      dialogFormVisible5: false,
      dialogFormVisible6: false,
      dialogFormVisible7: false,
      dialogFormVisible8: false,
      dialogFormVisible11: false,
      dialogFormVisible16:false,
      dialogVisible: false,

      form: {
        transactionPrice: '',
        transactionsNumber: '',
        basis: '',
      },
      currect: true,
      formLabelWidth: '120px',
      formLabelWidth1: '140px',
      barWidth: 0,
      barHeight: 0,
      retioX: 1,
      ratioY: 1,
      isTaped: false,
      isHover: false,
      settlementWeightchange: false,
      deductionAmountchange: false,
      isShow: !this.autohide,
      //弹出框
      dialogViewSpareMoney: false,
      contractNoList: [],
      // 是否显示
      showType: true,
      // 年
      year: '',
      options: [],
      id:'',
      pickerOptions: {},
      value2: '',
      deptBudgetTotal: 0,
      currentPage: 1,
      pageSize: 10,
      searchType: '1',
      manualFlag: '',
      searchTypeText: '未完成',
      searchKeyWord: '',
      driverPayeeList: {
          radio: '1',
      },
      contractType: 2,
      accessoryTFs: false,
      accesscard: false,
      paymentImg: false,
      enter: {
        closePositionList: [],
      },

      // 提交类型
      submitType: true,
      size: 10,
      spanArr: [],
      contractNo: '全部合同',
      inOutTaskNo: '',
      compId: localStorage.getItem('ws-pf_compId'),
      roleId: localStorage.getItem('ws-pf_roleId'),
      deptCircularPage: {},
      warehouseList: [],
      orderList: {},
      tranPriceApproveList:[],
      deptBudgetList: {},
      id: '',

      pcFlag: 1,
      carryoverlist: {},
      modification: [],
      loadingImg1: [],
      unloadingImg1: [],
      paymentScreenshot1: [],
      amendlist: {},
      roleFlag: 1,
      alreadyInvoice1: 0,
      money: '',
      paymentDate: '',
      tranSettlementReportList: [],
      autoSettlementReport: {
        tranSettlementReportList: [],
        money: '',
        amountNotPayable: 0,
        amountEdPayable: 0,
        paymentDate: '',
        paymentScreenshot: '',
        id: '',
      },

      amountNotPayable: 0,
      amountEdPayable: 0,
      paymentScreenshotUrls: [],
      carryovercontractnolist: [],
      historyList: [],
      pickerBeginDateBefore: {
        disabledDate: (time) => {
          return time.getTime() > Date.now()
        },
      },
    }
  },
  activated() {
    this.getList()
    this.showType = this.isShow
  },
  methods: {
    cur(status) {
      if (status == 0) {
        this.currect = true
      } else {
        var that = this
        this.currect = false
        getselectctcontractno({
          customerName: this.modification[0].customerName,
          contractNo: this.modification[0].contractNo,
        })
          .toPromise()
          .then((response) => {
            that.carryovercontractnolist = response
            for (var i = 0; i < that.carryovercontractnolist.length; i++) {
              if (that.carryovercontractnolist[i].amountNotPayable > 0) {
                that.carryovercontractnolist[i].closeaccountstatus = '待结算'
              } else {
                that.carryovercontractnolist[i].closeaccountstatus = '已结算'
              }
            }
          })
          .catch((response) => {
            console.log(response)
            EventBus.$emit('error', response.message)
          })
      }
    },
    handleRowClick(row) {
      if (row.approveStatus == null) {
        this.$refs.warehouseList.toggleRowSelection(row)
        return true
      } else if (row.approveStatus != null) {
        if (row.taskId == null) {
          return false
        } else {
          this.$refs.warehouseList.toggleRowSelection(row)
          return true
        }
      }
    },
    selectInit(row) {
      //在这里一定要记得类型匹配的上。
      if (row.approveStatus == null) {
        return true
      } else if (row.approveStatus != null) {
        if (row.taskId == null) {
          return false
        } else {
          return true
        }
      }
    },
    handleClose() {
      this.accessoryTFs = false
    },
    handleClose1() {
      this.accesscard = false
    },
    handleClose2() {
      this.paymentImg = false
    },
    //账户
    look(item) {
      this.dialogFormVisible8 = true
      if (item.driverPayeeInfoList) {
        this.driverPayeeList= item.driverPayeeInfoList
        this.driverPayeeList.payeeName=item.driverPayeeInfoList[0].payeeName
        for (var i = 0; i < item.driverPayeeInfoList.length; i++){
          if(item.driverPayeeInfoList[i].bankCard==item.cardNo){
            this.driverPayeeList[i].radio='1'
          }
          else{
            this.driverPayeeList[i].radio='2'
          }
          console.log(this.driverPayeeList[i].radio)
        }
        this.id=item.id
      }
    },
    //付款
    handlepayment() {
      this.amountNotPayable = 0
      // this.money = this.money
      this.tranSettlementReportList = this.warehouseList.records[0].tranSettlementReportList
      this.amountEdPayable = this.warehouseList.records[0].amountEdPayable
      this.paymentDate = this.paymentDate
      if (this.modification.length == 0) {
        this.$message.warning('请选择一条要付款的条目')
      } else {
        for (var i = 0; i < this.modification.length; i++) {
          if (
            this.modification[i].status != '已通过' &&
            this.modification[i].status != '部分付款'
          ) {
            this.$message.warning('只有已通过或部分付款的条目才可进行付款操作')
            return
          }
          this.amountNotPayable += Number(this.modification[i].amountNotPayable)
        }
         this.amountNotPayable  =  this.amountNotPayable.toFixed(2)
        this.dialogFormVisible1 = true
      }
    },
    submitMoney() {
      this.autoSettlementReport.money = this.money
      this.autoSettlementReport.paymentDate = this.paymentDate
      if (this.modification.length == 0) {
        this.$message.warning('请选择一条要付款的条目')
      } else {
        if (
          this.money < 0 ||
          (String(this.money).indexOf('.') != -1 &&
            String(this.money).length - (String(this.money).indexOf('.') + 1) >
              2)
        ) {
          this.$message({
            message: '付款金额输入错误',
            type: 'warning',
          })
          return
        }
        if (this.money) {
          if (isNaN(this.money)) {
            this.$message({
              message: '付款金额非数字!',
              type: 'warning',
            })
            return
          }
        }
        if (!this.money) {
          this.$message({
            message: '付款金额不能为空！',
            type: 'warning',
          })
          return
        }
        if (Number(this.money) > Number(this.amountNotPayable)) {
          this.$message({
            message: '付款金额不能大于未付金额！',
            type: 'warning',
          })
          return
        }
        this.$confirm(`确定提交付款信息？`, {
          cancelButtonText: '取消',
          confirmButtonText: '确定',
          type: 'warning',
        }).then(() => {
          autopaymoney({
            tranSettlementReportList: this.modification,
            // amountEdPayable: this.modification[0].amountEdPayable,
            // amountNotPayable: this.modification[0].amountNotPayable,
            money: this.money,
            paymentDate: this.paymentDate,
            paymentScreenshot: this.paymentScreenshot,
          })
            .toPromise()
            .then((response) => {
              this.$notify.success({
                title: '成功',
                message: '付款成功',
              })
              this.tranSettlementReportList = {}
              this.money = ''
              this.paymentDate = ''
              this.dialogFormVisible1 = false
              this.getList()
            })
            .catch((response) => {
              console.log(response)
              EventBus.$emit('error', response.message)
            })
        })
      }
    },
    //开发票
    editClickInvoice(row) {
      this.id = row.id
      this.alreadyInvoice1 = row.alreadyInvoice
      this.amountEdPayable = row.amountEdPayable
      this.amountNotPayable = row.amountNotPayable
      this.dialogFormVisible3 = 'true'
    },
    submitInvoice() {
      if (this.amountEdPayable < 0) {
        this.$message.warning('请选择一条已付款的条目')
      } else {
        if (
          this.alreadyInvoice < 0 ||
          this.alreadyInvoice > this.amountEdPayable - this.alreadyInvoice1 ||
          (String(this.alreadyInvoice).indexOf('.') != -1 &&
            String(this.alreadyInvoice).length -
              (String(this.alreadyInvoice).indexOf('.') + 1) >
              2)
        ) {
          this.$message({
            message: '金额输入错误',
            type: 'warning',
          })
          return
        }
        if (this.alreadyInvoice) {
          if (isNaN(this.alreadyInvoice)) {
            this.$message({
              message: '金额非数字!',
              type: 'warning',
            })
            return
          }
        }
        if (!this.alreadyInvoice) {
          this.$message({
            message: '金额不能为空！',
            type: 'warning',
          })
          return
        }
        this.$confirm(`确定提交发票信息？`, {
          cancelButtonText: '取消',
          confirmButtonText: '确定',
          type: 'warning',
        }).then(() => {
          editauto({
            id: this.id,
            flag: 2,
            alreadyInvoice: this.alreadyInvoice,
            amountEdPayable: this.amountEdPayable,
            amountNotPayable: this.amountNotPayable,
          })
            .toPromise()
            .then((response) => {
              this.$notify.success({
                title: '成功',
                message: '提交成功',
              })
              this.dialogFormVisible3 = false
              this.getList()
            })
            .catch((response) => {
              console.log(response)
              EventBus.$emit('error', response.message)
            })
        })
      }
    },
    //批量开发票
    handleninvoice() {
      this.amountEdPayable = 0
      this.tranSettlementReportList = this.warehouseList.records[0].tranSettlementReportList
      for (var i = 0; i < this.modification.length; i++) {
        this.amountEdPayable += this.modification[i].amountEdPayable
      }
      this.dialogFormVisible2 = true
    },
    submitBatchInvoice() {
      if (this.modification.length == 0) {
        this.$message.warning('请选择一条要开发票的条目')
      } else if (this.modification[0].amountEdPayable < 0) {
        this.$message.warning('请选择一条已付款的条目')
      } else {
        this.$confirm(`确定提交发票信息？`, {
          cancelButtonText: '取消',
          confirmButtonText: '确定',
          type: 'warning',
        }).then(() => {
          openinvoicelist({
            tranSettlementReportList: this.modification,
          })
            .toPromise()
            .then((response) => {
              this.$notify.success({
                title: '成功',
                message: '提交成功',
              })
              this.dialogFormVisible2 = false
              this.getList()
            })
            .catch((response) => {
              console.log(response)
              EventBus.$emit('error', response.message)
            })
        })
      }
    },
    //修改结算重量
    changesettlementWeight(item) {
      if (!this.settlementWeight) {
        this.$message({
          message: '结算重量不能为空！',
          type: 'warning',
        })
        return
      }
      if (
        (this.settlementWeight &&
          String(this.settlementWeight).indexOf('.') != -1 &&
          String(this.settlementWeight).length -
            (String(this.settlementWeight).indexOf('.') + 1) >
            2) ||
        (this.settlementWeight && this.settlementWeight > 100) ||
        (this.settlementWeight && this.settlementWeight < 1)
      ) {
        this.$message({
          message: '结算重量输入错误',
          type: 'warning',
        })
        return
      }
      this.reviewer = localStorage.getItem('ws-pf_roleName') +localStorage.getItem('ws-pf_staffName')
      editauto({
        settlementWeight: Math.abs(this.settlementWeight),
        id: item.id,
        reviewer:this.reviewer,
        flag: 0,
      })
        .toPromise()
        .then((response) => {
          this.$message.success('修改结算重量成功')
          this.getList()
        })
        .catch((req) => {
          this.$message.warning('修改结算重量失败')
        })
    },
    //设置本次账户
    bankCard(item,id) {
      editauto({
        cardNo: item.bankCard,
        id: id,
        flag: 3,
      })
        .toPromise()
        .then((response) => {
          this.$message.success('成功')
          this.dialogFormVisible8 = false
          this.getList()
        })
        .catch((req) => {
          this.$message.warning('失败')
        })
    },
    editsettlementWeight(item) {
      this.settlementWeight = item.settlementWeight
      item.settlementWeightchange = true
    },
    //修改扣款
    changedeductionAmount(item) {
      if (!this.deductionAmount) {
        this.$message({
          message: '扣款金额不能为空！',
          type: 'warning',
        })
        return
      }
      if (
        (this.deductionAmount &&
          String(this.deductionAmount).indexOf('.') != -1 &&
          String(this.deductionAmount).length -
            (String(this.deductionAmount).indexOf('.') + 1) >
            2) ||
        (this.deductionAmount && this.deductionAmount > 100000) ||
        (this.deductionAmount && this.deductionAmount < 1)
      ) {
        this.$message({
          message: '扣款金额输入错误',
          type: 'warning',
        })
        return
      }
      editauto({
        deductionAmount: Math.abs(this.deductionAmount),
        id: item.id,
        flag: 1,
      })
        .toPromise()
        .then((response) => {
          this.$message.success('修改扣款成功')
          this.getList()
        })
        .catch((req) => {
          this.$message.warning('修改扣款失败')
        })
    },
    editdeductionAmount(item) {
      this.deductionAmount = item.deductionAmount
      item.deductionAmountchange = true
    },
    //装车磅单
    lookloadingImg(row) {
      if (row.loadingImg == null || row.loadingImg == '') {
        EventBus.$emit(
          this.$message.warning('暂无磅单信息')
        )
      } else {
        this.accessoryTFs = true
      }
      this.loadingImg1 = row.loadingImg
    },
    //卸车磅单
    lookunloadingImg(row) {
      if (row.unloadingImg === null || row.unloadingImg === '') {
        EventBus.$emit(
          this.$message.warning('暂无磅单信息')
        )
      } else {
        this.accesscard = true
      }
      this.unloadingImg1 = row.unloadingImg
    },
    //付款截图
    lookpaymentScreenshot(row) {
      if (row.paymentScreenshot == null || row.paymentScreenshot == '') {
        EventBus.$emit(
          this.$message.warning('暂无付款截图信息')
        )
      } else {
        this.paymentImg = true
      }
      this.paymentScreenshot1 = row.paymentScreenshot.split('$')
    },
    //审核
    audit(item, index, status, status2, reason) {
      if (index < this.modification.length) {
        posthandle({
          taskId: item.taskId,
          approved: status,
          auditMind: reason != undefined ? '已驳回' : '34',
          needReapply: status2 != undefined ? true : false,
        })
          .toPromise()
          .then((response) => {
            this.audit(this.modification[index + 1], index + 1, status)
          })
          .catch((req) => {
            this.$message.warning(req.message)
          })
      } else {
        if (status==true) {
          this.$message.success('通过成功')
          this.getList()
        } else if (status==false) {
          this.$message.success('驳回成功')
          this.getList()
          }
      }
    },
    handlereject(status) {
      var that = this
      if (this.modification.length == 0) {
        this.$message.warning('请选择要驳回的条目')
      } else {
        this.$confirm(`是否确定驳回？`, {
          cancelButtonText: '取消',
          confirmButtonText: '确定',
          type: 'warning',
        }).then(() => {
          that.audit(this.modification[0], 0, false, true, '已驳回')
        })
      }
    },
    dataFilter(val) {
      // console.log(val,"名")
      this.contractNo = val
      if (val) {
        //val存在
        this.options = this.contractNoList.filter((item) => {
          if (
            !!~item.contractNo.indexOf(val) ||
            !!~item.contractNo.toUpperCase().indexOf(val.toUpperCase())
          ) {
            return true
          }
        })
      } else {
        //val为空时，还原数组
        this.options = this.contractNoList
      }
    },
    //查看修改结算重量记录
    editRecord() {
      this.dialogFormVisible16 = true
    },
    handlepass() {
      var that = this
      if (this.modification.length == 0) {
        this.$message.warning('请选择要通过的条目')
      } else {
        this.$confirm(`是否确定通过？`, {
          cancelButtonText: '取消',
          confirmButtonText: '确定',
          type: 'warning',
        }).then(() => {
          that.audit(this.modification[0], 0, true, 2)
        })
      }
    },
    handleSelectionChange(val) {
      this.modification = val
    },
    handlestatus(status) {
      this.searchType = status
      this.getList()
    },
    contractchange(e) {
      this.contractNo = e
      this.getList()
    },
    updated() {
      this.$nextTick(() => {
        this.$refs.warehouseList.doLayout()
      })
    },
    //合计
    getSummaries(param) {
      const { columns, data } = param
      const sums = []
      columns.forEach((column, index) => {
        if (index === 0) {
          sums[index] = '合计'
        } else if (
          index === 7 ||
          index === 8 ||
          index === 11 ||
          index === 13 ||
          index === 14 ||
          index === 15 ||
          index === 16
        ) {
          const values = data.map((item) => Number(item[column.property]))
          if (!values.every((value) => isNaN(value))) {
            sums[index] = values.reduce((prev, curr) => {
              const value = Number(curr)
              if (!isNaN(value)) {
                return prev + curr
              } else {
                return prev
              }
            }, 0)
          } else {
            sums[index] = '元'
          }
        } else {
          sums[index] = '--'
        }
      })
      sums[sums.length-4]=sums[sums.length-4].toFixed(2)
			sums[sums.length-5]=sums[sums.length-5].toFixed(2)
      sums[sums.length-6]=sums[sums.length-6].toFixed(2)
      sums[sums.length-7]=sums[sums.length-7].toFixed(2)
      sums[sums.length-9]=sums[sums.length-9].toFixed(2)
      sums[sums.length-12]=sums[sums.length-12].toFixed(2)
      sums[sums.length-13]=sums[sums.length-13].toFixed(2)
      return sums
    },
    //列表
    getList() {
      console.log(this.contractNo,'this.contractNo值')
      autoList({
        compId: localStorage.getItem('ws-pf_compId'),
        tranTypeKey: 1,
        currentPage: this.currentPage,
        pageSize: this.pageSize,
        searchType: this.searchType,
        contractNo: this.contractNo,
        manualFlag: this.manualFlag,
      })
        .toPromise()
        .then((response) => {
          for (var i = 0; i < response.records.length; i++) {
            response.records[i].settlementWeightchange = false
            response.records[i].deductionAmountchange = false
            response.records[i].amountIngPayable=response.records[i].amountIngPayable.toFixed(2)
            response.records[i].amountEdPayable=response.records[i].amountEdPayable.toFixed(2)
            response.records[i].amountNotPayable=(response.records[i].amountIngPayable-response.records[i].amountEdPayable).toFixed(2)
            if(response.records[i].tranPriceApproveList){
              for(var j=0;j<response.records[i].tranPriceApproveList.length;j++){
                  this.tranPriceApproveList.push(response.records[i].tranPriceApproveList[j])
              }
            }
          }
          this.deptBudgetTotal = response.total
          this.warehouseList = response
        })
      autocontract({
        compId: localStorage.getItem('ws-pf_compId'),
        currentPage: this.currentPage,
        pageSize: this.pageSize,
        // roleFlag: this.roleFlag,
      })
        .toPromise()
        .then((response) => {
          this.contractNoList = response
          this.contractNoList.unshift({ contractNo: '全部合同' })
          this.options = this.contractNoList
        })
    },
    handleRemove(file) {
      console.log(file)
    },
    handlePictureCardPreview(file) {
      this.paymentScreenshot = file.url

      this.dialogVisible = true
    },
    handleDownload(file) {
      console.log(file)
    },
    getSpanArr(data) {
      let that = this

      //页面展示的数据，不一定是全部的数据，所以每次都清空之前存储的 保证遍历的数据是最新的数据。以免造成数据渲染混乱

      that.spanArr = []

      that.pos = 0

      // //遍历数据

      data.forEach((item, index) => {
        //判断是否是第一项

        if (index === 0) {
          this.spanArr.push(1)
          this.pos = 0
        } else {
          //不是第一项时，就根据标识去存储
          if (data[index].warehouseNumViewList.length > 1) {
            查找到符合条件的数据时每次要把之前存储的数据 + 1
            this.spanArr[this.pos] = data[index].warehouseNumViewList.length
            this.spanArr.push(0)
          } else {
            // 没有符合的数据时，要记住当前的index
            this.spanArr.push(1)
            this.pos = index
          }
        }
      })
    },
    dateFormat(fmt, date) {
      let ret
      const opt = {
        'Y+': date.getFullYear().toString(), // 年
        'm+': (date.getMonth() + 1).toString(), // 月
        'd+': date.getDate().toString(), // 日
        'H+': date.getHours().toString(), // 时
        // "M+": date.getMinutes().toString(),         // 分
        // "S+": date.getSeconds().toString()          // 秒
        // 有其他格式化字符需求可以继续添加，必须转化成字符串
      }
      for (let k in opt) {
        ret = new RegExp('(' + k + ')').exec(fmt)
        if (ret) {
          fmt = fmt.replace(
            ret[1],
            ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0')
          )
        }
      }
      return fmt
    },
    handleSizeChange(val) {
      console.log(`每页 ${val} 条`)
      this.pageSize = val
      this.getList()
    },
    handleCurrentChange(val) {
      this.currentPage = val
      console.log(`当前页: ${val}`)
      this.getList()
    },
    // 关闭 dialog时 处理文件url 初始化upload组件
    handleCloe() {
      this.dialogViewSpareMoney = false
    },
    history(row) {
      billoperatehis({ id: row.id })
        .toPromise()
        .then((response) => {
          this.historyList = response
        })
    },
    async exportlist() {
      const { data } = await export1(
        {
          compId: localStorage.getItem('ws-pf_compId'),
          contractType: this.contractType,
          currentPage: this.currentPage,
          pageSize: this.pageSize,
          searchType: this.searchType,
          searchKeyWord: this.searchKeyWord,
          startDate: this.startDate,
          endDate: this.endDate,
        },
        {},
        { responseType: 'blob' }
      ).toPromise()
      downloadFile({
        res: data,
        fileName: `${
          this.date.year + (this.date.month ? `-${this.date.month}` : '')
        }_采购合同`,
        type: 'xls',
      })
    },
    total() {},
  },
}
</script>
<style lang="scss" scoped>
.connert {
  width: 90%;
  margin: 0 auto;
}
.vertical-text-left {
  width: 62px;
  text-align: right;
}
//分页
.el-pagination {
  padding: 10px 15px;
  margin-bottom: 0;
  text-align: center;
}
/deep/.el-pager li.active {
  color: #5878e8;
  cursor: default;
}
/deep/.el-pager li:hover {
  color: #5878e8;
  cursor: default;
}
.el-button--default {
  color: #8890b1;
  border-color: #e8eaf1;
}
/deep/.base_header_layout .grid-content.right .find.el-button--primary {
  width: 30px;
  margin-left: 0;
  border-top-left-radius: 0px;
  border-bottom-left-radius: 0px;
}
/deep/.findValue .el-input__inner {
  border-top-right-radius: 0px;
  border-bottom-right-radius: 0px;
  width: 385px;
}
.completed.el-button--default {
  border-color: #5878e8;
  background-color: #f6f7fc;
  color: #5878e8;
}
.putstorage.el-button--default,
.deliverystorage.el-button--default {
  border-color: #8890b1;
  background-color: #fff;
  color: #8890b1;
}
/deep/.el-table td,
/deep/.el-table th.is-leaf {
  border-right: 1px solid #e9ecf7;
  text-align: center;
}
/deep/.el-table tr td:first-child,
/deep/.el-table tr th.is-leaf:first-child {
  border-left: 1px solid #e9ecf7;
}
.record,
.adjustment {
  display: inline-block;
  color: #5878e8;
  padding: 0 4px !important;
  position: relative;
}
.record:after {
  position: absolute;
  content: '';
  display: block;
  top: 5px;
  right: -2px;
  width: 1px;
  height: 12px;
  background: #e9ecf7;
}
.anniu {
  margin-left: 40%;
  margin-top: -7%;
  margin-bottom: 6%;
}
// .el-row{
//     height: 150px;
// }
.base_header_layout .grid-content {
  margin-top: 80px;
}
.el-input--small .el-input__inner {
  margin-left: 20px;
}
.el-range-editor--small.el-input__inner {
  height: 32px;
  margin-left: -20%;
}
//执行样式
.executory,
.inExecution,
.done {
  width: 6px;
  height: 6px;
  display: inline-block;
  border-radius: 50%;
  position: relative;
  top: -1px;
  font-size: 14px;
}
.executory {
  background: #ff9f24;
}
.inExecution {
  background: #5878e8;
}
.done {
  background: #50cad4;
}
.record,
.adjustment {
  display: inline-block;
  color: #5878e8;
  padding: 0 4px !important;
  position: relative;
  font-size: 14px;
}
.container {
  overflow: scroll;
  height: 93vh;
}
.button-container {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: center;
  background-color: #fff;
  width: 100%;
  height: 50px;
  padding: 0 10px;
  & > div {
    margin-left: 10px;
    display: flex;
    flex-wrap: nowrap;
    flex-direction: row;
    & > span {
      line-height: 50px;
    }
  }

  /deep/.auditFlow-box {
    position: unset;
    margin-left: 10px;
    &/deep/.auditFlow-icon {
      width: auto;
      padding-right: 30px;
    }
    &/deep/.auditFlow-main {
      position: absolute;
    }
  }
}
.bg-left {
  padding-left: 30px;
}
.title {
  position: relative;
}
.title::before {
  content: '';
  display: inline-block;
  width: 5px;
  height: 30px;
  background: #5473e8;
  position: absolute;
  left: 0;
}
.el-button--primary {
  background-color: #5878e8;
  border-color: #5878e8;
  // margin-left: 85%;
  margin-top: 13px;
}
//导航条样式
.el-col-12 {
  width: 50%;
  height: 60px;
  background: #f6f7fc;
  border-radius: 4px 4px 1px 1px;
}
.el-input--small .el-input__inner {
  height: 32px;
  line-height: 32px;
  width: 385px;
  margin-top: 10px;
}
.bg-bottom {
  margin-left: 85%;
}
.but {
  margin-left: 30%;
  /* margin-top: -32px; */
  overflow: auto;
  /* float: left; */
  /* margin-left: 1px; */
  margin-left: -10px;
}
.look .el-form-item {
  border-bottom: 1px solid #ccc;
}
.el-input--small {
  font-size: 13px;
  width: 390px;
  margin-left: 74%;
}
/deep/.el-table .el-table__header .cell,
.el-table .el-table__body .cell {
  text-align: center;
}
.el-scrollbar__wrap {
  overflow-y: hidden;
}
/deep/.deal {
  margin-left: 0%;
  width: 64%;
}
.photo {
  padding: 0% 34%;
}
.photo1 {
  padding: 0 10%;
}
.photo2 {
  padding: 0 12%;
}
/deep/.el-form-item--small .el-form-item__label,
.el-form-item--small .el-form-item__content {
  text-align: center;
}
hr {
  width: 91%;
}
/deep/.deaal {
  width: 66%;
  margin-left: 9%;
}
.el-date-editor.el-input,
.el-date-editor.el-input__inner,
.el-input-number--small {
  width: 123% !important;
}
/deep/.el-table td,
.el-table th.is-leaf {
  border-right: 1px solid #e9ecf7;
  text-align: center;
  height: 40px;
}
</style>
