<template>
    <div class="borderless" v-loading="pageLoading">
        <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">返回列表
                </el-button>
            </div>
            <div class="add-customer-btn">
                <el-button  size="small" type="success" style="margin-right: 8px"
                            :loading="saveLoading" >提取利润及放单
                </el-button>
                <el-button  size="small" type="warning" plain  style="margin-right: 8px" :disabled="!form.id" v-if="form.isChecked == 1"
                            :loading="saveLoading" @click="finstlbillsRevokeReconciliationfun">撤销对账
                </el-button>
                <el-button  size="small" type="success" plain  style="margin-right: 8px" :disabled="!form.id" v-else
                            :loading="saveLoading" @click="finstlbillsConfirmReconciliationfun">确认对账
                </el-button>
                <el-button  size="small" type="primary" style="margin-right: 8px" v-if="editSave"
                            :loading="saveLoading" @click="editHandle">编 辑
                </el-button>
                <el-button  size="small" type="primary" style="margin-right: 8px" v-else
                            :loading="saveLoading" @click="editCustomer">保 存
                </el-button>
            </div>
        </div>

        <div style="margin: 55px 5px 0px 5px;'">
            <el-card class="box-card">
                <el-form :model="form" ref="form" label-width="90px" class="demo-ruleForm">
                    <el-row>
                        <el-row>
                            <el-col :span="5">
                                <el-form-item label="对账单号" prop="checkNo">
                                    <el-input style="width: 100%;" v-model="form.billNo"
                                              size="small" autocomplete="off"
                                              :disabled="true"
                                              clearable placeholder="请输入对账单号" >
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="5">
                                <el-form-item label="对账日期" prop="billDate">
                                    <el-date-picker v-model="form.billDate" clearable
                                                    style="width: 100%;"
                                                    type="date" size="small"
                                                    :disabled="editSave"
                                                    value-format="yyyy-MM-dd HH:mm"
                                                    placeholder="选择对账日期">
                                    </el-date-picker>
                                </el-form-item>
                            </el-col>
                            <el-col :span="5">
                                <el-form-item label="限定金额" prop="billDate">
                                    <el-input style="width: 100%;" v-model="form.limitedAmount"
                                              size="small" autocomplete="off"
                                              :disabled="editSave"
                                              clearable placeholder="请输入对账单号" >
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="5">
                                <el-form-item label="备注" prop="remarks" >
                                    <el-input style="width: 100%;" v-model="form.remarks"
                                              size="small" autocomplete="off"
                                              :disabled="editSave"
                                              clearable placeholder="请输入备注" >
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="4">
                                <el-form-item label="审核" prop="isApproved" label-width="50px">
                                    <search-query :datalist="allyesnoData"
                                                  :selectValue="form.isApproved"
                                                  :clearable="true"
                                                  :disabled="editSave"
                                                  :buttonIf="false"
                                                  :forParameter="{ key:'dictKey', label:'dictValue', value:'dictKey'}"
                                                  @corpChange="corpChange($event,'isApproved')"
                                                  @corpFocus="allyesnoWorkDictsfun" >
                                    </search-query>
                                </el-form-item>
                            </el-col>
                            <el-col :span="10">
                                <el-form-item label="对账单位" prop="corpCnName">
                                    <el-col :span="10">
                                        <search-query :datalist="corpData"
                                                      :selectValue="form.corpCnName"
                                                      :clearable="true"
                                                      :disabled="editSave"
                                                      :filterable="true"
                                                      :remote="true"
                                                      :buttonIf="false"
                                                      :forParameter="{ key:'id', label:'cnName', value:'cnName'}"
                                                      @corpChange="corpChange($event,'corpCnName')"
                                                      @remoteMethod="corpBcorpsListfun"
                                                      @corpFocus="corpBcorpsListfun" >
                                        </search-query>
                                    </el-col>
                                    <el-col :span="10">
                                        <span style="padding-left: 20px"></span>
                                        <el-input style="width: 100%;" v-model="form.corpEnName"
                                                  size="small" autocomplete="off"
                                                  :disabled="editSave"
                                                  clearable placeholder="请输入" >
                                        </el-input>
                                    </el-col>
                                    <el-col :span="4">
                                        <el-checkbox style="width: 100%;text-align: right" size="medium"
                                                     :true-label="1" :false-label="0"
                                                     :disabled="editSave"
                                                     v-model="form.corpIsSigned">已签约
                                        </el-checkbox>
                                    </el-col>
                                </el-form-item>
                            </el-col>
                            <el-col :span="5">
                                <el-form-item label="协议签订人" prop="corpAccRemarks">
                                    <el-input style="width: 100%;" v-model="form.corpAccRemarks"
                                              size="small" autocomplete="off"
                                              :disabled="editSave"
                                              clearable placeholder="请输入协议签订人" >
                                    </el-input>
                                </el-form-item>
                            </el-col>
                            <el-col :span="5">
                                <el-form-item label="业务类型" prop="businessTypes" >
                                    <search-query :datalist="businessTypesData"
                                                  :selectValue="form.businessTypes"
                                                  :clearable="true"
                                                  :disabled="editSave"
                                                  :buttonIf="false"
                                                  :multiple="true"
                                                  @corpChange="corpChange($event,'businessTypes')">
                                    </search-query>
                                </el-form-item>
                            </el-col>
                            <el-col :span="4">
                                <el-form-item label="签收" prop="isSignfor" label-width="50px">
                                    <search-query :datalist="allyesnoData"
                                                  :selectValue="form.isSignfor"
                                                  :clearable="true"
                                                  :disabled="editSave"
                                                  :buttonIf="false"
                                                  :forParameter="{ key:'dictKey', label:'dictValue', value:'dictKey'}"
                                                  @corpChange="corpChange($event,'isSignfor')"
                                                  @corpFocus="allyesnoWorkDictsfun" >
                                    </search-query>
                                </el-form-item>
                            </el-col>
                        </el-row>
                        <expand :showBtn="true" :showSpan="true">
                            <el-row>
                                <el-col :span="5">
                                    <el-form-item label="收 / 付" prop="dc">
                                        <search-query :datalist="dcData"
                                                      :selectValue="form.dc"
                                                      :clearable="true"
                                                      :disabled="editSave"
                                                      :buttonIf="false"
                                                      @corpChange="corpChange($event,'dc')">
                                        </search-query>
                                    </el-form-item>
                                </el-col>
                                <el-col :span="5">
                                    <el-form-item label="币别" prop="curCode">
                                        <search-query :datalist="curCodeData"
                                                      :selectValue="form.curCode"
                                                      :clearable="true"
                                                      :disabled="editSave"
                                                      :buttonIf="false"
                                                      :filterable="true"
                                                      :remote="true"
                                                      :forParameter="{ key:'id', label:'code', value:'code'}"
                                                      @corpChange="corpChange($event,'curCode')"
                                                      @remoteMethod="getRateListfun"
                                                      @corpFocus="getRateListfun" >
                                        </search-query>
                                    </el-form-item>
                                </el-col>
                                <el-col :span="10">
                                    <el-form-item label="业务来源" prop="srcType">
                                        <el-col :span="10">
                                            <search-query :datalist="srcTypeData"
                                                          :selectValue="form.srcType"
                                                          :clearable="true"
                                                          :disabled="editSave"
                                                          :buttonIf="false"
                                                          @corpChange="corpChange($event,'srcType')">
                                            </search-query>
                                        </el-col>
                                        <el-col :span="13" :offset="1">
                                            <search-query :datalist="srcData"
                                                          :selectValue="form.srcCnName"
                                                          :clearable="true"
                                                          :disabled="editSave"
                                                          :buttonIf="false"
                                                          :filterable="true"
                                                          :remote="true"
                                                          :forParameter="srcforParameter"
                                                          @corpChange="corpChange($event,'srcCnName')"
                                                          @remoteMethod="salesuserGetListfun">
                                            </search-query>
                                        </el-col>
                                    </el-form-item>
                                </el-col>
                                <el-col :span="4">
                                    <el-form-item label="销账" prop="isCleared" label-width="50px">
                                        <search-query :datalist="allyesnoData"
                                                      :selectValue="form.isCleared"
                                                      :clearable="true"
                                                      :disabled="editSave"
                                                      :buttonIf="false"
                                                      :forParameter="{ key:'dictKey', label:'dictValue', value:'dictKey'}"
                                                      @corpChange="corpChange($event,'isCleared')"
                                                      @corpFocus="allyesnoWorkDictsfun" >
                                        </search-query>
                                    </el-form-item>
                                </el-col>
                                <el-col :span="5">
                                    <el-form-item label="JOB NO" prop="businessNo">
                                        <el-input style="width: 100%;" v-model="form.businessNo"
                                                  size="small" autocomplete="off"
                                                  :disabled="editSave"
                                                  clearable placeholder="请输入JOB NO" >
                                        </el-input>
                                    </el-form-item>
                                </el-col>
                                <el-col :span="5">
                                    <el-form-item label="ACCT NO" prop="accountNo">
                                        <el-input style="width: 100%;" v-model="form.accountNo"
                                                  size="small" autocomplete="off"
                                                  :disabled="editSave"
                                                  clearable placeholder="请输入ACCT NO" >
                                        </el-input>
                                    </el-form-item>
                                </el-col>
                                <el-col :span="5">
                                    <el-form-item label="MBL NO" prop="mblno">
                                        <el-input style="width: 100%;" v-model="form.mblno"
                                                  size="small" autocomplete="off"
                                                  :disabled="editSave"
                                                  clearable placeholder="请输入MBL NO" >
                                        </el-input>
                                    </el-form-item>
                                </el-col>
                                <el-col :span="5">
                                    <el-form-item label="HBL NO" prop="hblno">
                                        <el-input style="width: 100%;" v-model="form.hblno"
                                                  size="small" autocomplete="off"
                                                  :disabled="editSave"
                                                  clearable placeholder="请输入HBL NO" >
                                        </el-input>
                                    </el-form-item>
                                </el-col>
                                <el-col :span="4">
                                    <el-form-item label="对账" prop="isChecked" label-width="50px">
                                        <search-query :datalist="allyesnoData"
                                                      :selectValue="form.isChecked"
                                                      :clearable="true"
                                                      :disabled="editSave"
                                                      :buttonIf="false"
                                                      :forParameter="{ key:'dictKey', label:'dictValue', value:'dictKey'}"
                                                      @corpChange="corpChange($event,'isChecked')"
                                                      @corpFocus="allyesnoWorkDictsfun" >
                                        </search-query>
                                    </el-form-item>
                                </el-col>
                                <el-col :span="5">
                                    <el-form-item label="财务日期" prop="etd">
                                        <el-date-picker
                                            v-model="form.accountDate"
                                            type="datetimerange"
                                            range-separator="至"
                                            start-placeholder="开始日期"
                                            end-placeholder="结束日期"
                                            style="width: 100%;"
                                            size="small"
                                            :disabled="editSave"
                                            format="yyyy-MM-dd"
                                            value-format="yyyy-MM-dd"
                                            placeholder="选择财务日期">
                                        </el-date-picker>
                                    </el-form-item>
                                </el-col>
                                <el-col :span="5">
                                    <el-form-item label="审核期间" prop="etd">
                                        <el-date-picker
                                            v-model="form.approvedDate"
                                            type="datetimerange"
                                            range-separator="至"
                                            start-placeholder="开始日期"
                                            end-placeholder="结束日期"
                                            style="width: 100%;"
                                            size="small"
                                            :disabled="editSave"
                                            format="yyyy-MM-dd"
                                            value-format="yyyy-MM-dd"
                                            placeholder="选择对账日期">
                                        </el-date-picker>
                                    </el-form-item>
                                </el-col>
                                <el-col :span="5">
                                    <el-form-item label="查询金额" prop="queryAmount">
                                        <el-input style="width: 100%;" v-model="form.queryAmount"
                                                  size="small" autocomplete="off"
                                                  :disabled="editSave"
                                                  clearable placeholder="请输入查询金额" >
                                        </el-input>
                                    </el-form-item>
                                </el-col>
                                <el-col :span="5">
                                    <el-form-item label="账期备注" prop="corpAccRemarks">
                                        <el-input style="width: 100%;" v-model="form.corpAccRemarks"
                                                  size="small" autocomplete="off"
                                                  :disabled="editSave"
                                                  clearable placeholder="请输入账期备注" >
                                        </el-input>
                                    </el-form-item>
                                </el-col>
                                <el-col :span="4">
                                    <el-form-item label="发票" prop="isChecked" label-width="50px">
                                        <search-query :datalist="isInvoiceData"
                                                      :selectValue="form.isInvoice"
                                                      :clearable="true"
                                                      :disabled="editSave"
                                                      :buttonIf="false"
                                                      :forParameter="{ key:'dictKey', label:'dictValue', value:'dictKey'}"
                                                      @corpChange="corpChange($event,'isInvoice')"
                                                      @corpFocus="invoiceWorkDictsfun" >
                                        </search-query>
                                    </el-form-item>
                                </el-col>
                                <el-col :span="5">
                                    <el-form-item label="船 名" prop="vesselCnName" >
                                        <el-input style="width: 100%;" v-model="form.vesselCnName"
                                                  size="small" autocomplete="off"
                                                  :disabled="editSave"
                                                  clearable placeholder="请选择船名" ></el-input>
                                    </el-form-item>
                                </el-col>
                                <el-col :span="5">
                                    <el-form-item label="航 次" prop="voyageNo" >
                                        <el-input style="width: 100%;" v-model="form.voyageNo"
                                                  size="small" autocomplete="off"
                                                  :disabled="editSave"
                                                  clearable placeholder="请选择航次" ></el-input>
                                    </el-form-item>
                                </el-col>
                                <el-col :span="5">
                                    <el-form-item label="三检单号" prop="threeInspectionsNo" >
                                        <el-input style="width: 100%;" v-model="form.threeInspectionsNo"
                                                  size="small" autocomplete="off"
                                                  :disabled="editSave"
                                                  clearable placeholder="请输入三检单号" ></el-input>
                                    </el-form-item>
                                </el-col>
                                <el-col :span="5">
                                    <el-form-item label="预收帐款" prop="receivableAdvance" >
                                        <el-input style="width: 100%;" v-model="form.receivableAdvance"
                                                  size="small" autocomplete="off"
                                                  :disabled="editSave"
                                                  clearable placeholder="请输入预收帐款" ></el-input>
                                    </el-form-item>
                                </el-col>
                                <el-col :span="4">
                                    <el-form-item label="发票号" prop="invoiceNo" label-width="50px">
                                        <el-input style="width: 100%;" v-model="form.invoiceNo"
                                                  size="small" autocomplete="off"
                                                  :disabled="editSave"
                                                  clearable placeholder="请输入发票号" ></el-input>
                                    </el-form-item>
                                </el-col>
                                <el-col :span="5">
                                    <el-form-item label="操作员" prop="updateUserName" >
                                        <search-query :datalist="updateUserData"
                                                      :selectValue="form.updateUserName"
                                                      :clearable="true"
                                                      :disabled="editSave"
                                                      :buttonIf="false"
                                                      :filterable="true"
                                                      :remote="true"
                                                      :forParameter="{ key:'id', label:'name', value:'name'}"
                                                      @corpChange="corpChange($event,'updateUserName')"
                                                      @remoteMethod="updateUserUserGetListfun"
                                                      @corpFocus="updateUserUserGetListfun" >
                                        </search-query>
                                    </el-form-item>
                                </el-col>
                                <el-col :span="5">
                                    <el-form-item label="BKNO" prop="bookingNo" >
                                        <el-input style="width: 100%;" v-model="form.bookingNo"
                                                  size="small" autocomplete="off"
                                                  :disabled="editSave"
                                                  clearable placeholder="请输入BKNO" ></el-input>
                                    </el-form-item>
                                </el-col>
                            </el-row>
                        </expand>

                        <el-row>
                            <el-col span="24">
                                <div style="text-align: right">
                                    <el-button  size="small" type="" style="margin-right: 8px"
                                                :loading="saveLoading" @click="ResetFilter">重置条件
                                    </el-button>
                                    <el-button  size="small" type="primary"  style="margin-right: 8px"
                                                :loading="saveLoading" @click="finstlbillslistAccBillV1fun" >检 索
                                    </el-button>
                                </div>
                            </el-col>
                        </el-row>
                    </el-row>
                </el-form>
            </el-card>

            <el-card style="margin-top: 10px">
                <el-row>
                    <el-col :span="4">
                        <div class="bottomFlex" style="justify-content: space-around">
                            <!--<div style="text-align: center">-->
                            <!--    <div class="weightfont">¥</div>-->
                            <!--    <div>RMB</div>-->
                            <!--</div>-->
                            <div>
                                <div style="color: #81B337">
                                    <span>应收RMB:</span>
                                    <span class="weightnum">${{form.amountDr || 0}}元</span>
                                </div>
                                <div style="color: #6BBCD1">
                                    <span>应付RMB:</span>
                                    <span class="weightnum">${{form.amountCr || 0}}元</span>
                                </div>
                            </div>
                        </div>
                    </el-col>
                    <el-col :span="4">
                        <div class="bottomFlex" style="justify-content: space-around">
                            <!--<div style="text-align: center">-->
                            <!--    <div class="weightfont">$</div>-->
                            <!--    <div>USD</div>-->
                            <!--</div>-->
                            <div>
                                <div style="color: #81B337">
                                    <span>应收USD:</span>
                                    <span class="weightnum">${{form.amountDrUsd || 0}}元</span>
                                </div>
                                <div style="color: #6BBCD1">
                                    <span>应付USD:</span>
                                    <span class="weightnum">${{form.amountCrUsd || 0}}元</span>
                                </div>
                            </div>
                        </div>
                    </el-col>
                    <el-col :span="4">
                        <div class="bottomFlex" style="justify-content: space-around">
                            <!--<div style="text-align: center">-->
                            <!--    <div class="weightfont">¥</div>-->
                            <!--    <div>税后RMB</div>-->
                            <!--</div>-->
                            <div>
                                <div style="color: #81B337">
                                    <span>税后应收RMB:</span>
                                    <span class="weightnum">¥{{form.amountDrNet || 0}}元</span>
                                </div>
                                <div style="color: #6BBCD1">
                                    <span>税后应付RMB:</span>
                                    <span class="weightnum">¥{{form.amountCrNet || 0}}元</span>
                                </div>
                            </div>
                        </div>
                    </el-col>
                    <el-col :span="4">
                        <div class="bottomFlex" style="justify-content: space-around">
                            <!--<div style="text-align: center">-->
                            <!--    <div class="weightfont">$</div>-->
                            <!--    <div>税后USD</div>-->
                            <!--</div>-->
                            <div>
                                <div style="color: #81B337">
                                    <span>税后应收USD:</span>
                                    <span class="weightnum">${{form.amountDrUsdNet || 0}}元</span>
                                </div>
                                <div style="color: #6BBCD1">
                                    <span>税后应付USD:</span>
                                    <span class="weightnum">${{form.amountCrUsdNet || 0}}元</span>
                                </div>
                            </div>
                        </div>
                    </el-col>
                    <el-col :span="8">
                        <div style="text-align: right">
                            <el-button  size="small" type="primary" style="margin-right: 8px"
                                        :loading="saveLoading" >计算合计值
                            </el-button>
                            <el-button  size="small" type="primary" style="margin-right: 8px" :disabled="!form.id"
                                        :loading="saveLoading" @click="ConfirmReceiptfun">批量签收
                            </el-button>
                            <el-button  size="small" type="danger" style="margin-right: 8px" :disabled="!form.id"
                                        :loading="saveLoading" @click="RevokeReceiptfun">撤销签收
                            </el-button>
                        </div>
                    </el-col>
                </el-row>
            </el-card>

            <el-card style="margin-top: 10px">
                <div style="margin-bottom: 10px">
                    <el-button  size="small" type="primary" style="margin-right: 8px" :disabled="editSave"
                                :loading="saveLoading" @click="Confirminvoicefun">确认发票
                    </el-button>
                    <!--<el-button  size="small" type="primary" style="margin-right: 8px"-->
                    <!--            :loading="saveLoading" @click="editHandle">批量确认发票-->
                    <!--</el-button>-->
                    <el-button  size="small" type="primary" style="margin-right: 8px" :disabled="editSave"
                                :loading="saveLoading" @click="Notinvoicingfun">不开发票
                    </el-button>
                    <!--<el-button  size="small" type="primary" style="margin-right: 8px"-->
                    <!--            :loading="saveLoading" @click="editHandle">批量不开发票-->
                    <!--</el-button>-->
                    <el-button  size="small" type="info" style="margin-right: 8px" :disabled="editSave"
                                :loading="saveLoading" @click="SelectedRows">确认选定行
                    </el-button>
                    <!--<el-button  size="small" type="primary" style="margin-right: 8px"-->
                    <!--            :loading="saveLoading" @click="editHandle">选择操作行-->
                    <!--</el-button>-->
                </div>

                <finstlbillsitems :tableData="tableData"
                                  :form="form"
                                  :handleSelectionData="handleSelectionData"
                                  :editSave="editSave"
                                  @handleSelectionChange="handleSelectionChange">
                </finstlbillsitems>
            </el-card>
        </div>

    </div>
</template>

<script>
    import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
    import {getWorkDicts} from "@/api/system/dictbiz";
    import {getRateList} from "@/api/iosBasicData/rateManagement";
    import {getList as userGetList} from '@/api/system/user'
    import {getBvesselsList} from "@/api/iosBasicData/bvessels";
    import {getBcorpslistByType} from "@/api/iosBasicData/bcorps";
    import {getDeptLazyTree} from "@/api/system/dept";
    import {
        finstlbillsConfirmReconciliation,
        finstlbillsConfirmSignFor,
        finstlbillsDetail,
        finstlbillslistAccBillV1, finstlbillsRevokeReconciliation, finstlbillsRevokeSignFor,
        finstlbillsSubmit
    } from '@/api/iosBasicData/finstlbills'
    import expand from "@/components/basic-container/expand.vue";
    import finstlbillsitems from "@/views/iosBasicData/finstlbills/assembly/finstlbillsitems.vue";

    export default {
        components: {SearchQuery,expand,finstlbillsitems},
        props:{
            // 编辑还是保存
            editSave:{
                type:Boolean,
                default:true
            }
        },
        data(){
            return {
                tableData:[],
                pageLoading:false, // 全屏加载动画
                saveLoading:false, // 按钮动画
                // 绑定的数据
                form:{

                },
                handleSelectionData:[], // 表格选择的数据
                corpData:[], // 对账单位 数据
                allyesnoData:[], // 全部是否字典数据
                isInvoiceData:[],// 发票字典
                // 收 / 付
                dcData:[
                    {
                        label:'Debit',
                        value: 'D'
                    },{
                        label:'Credit',
                        value: 'C'
                    }
                ],
                curCodeData:[],// 币别
                updateUserData:[], // 操作员
                srcTypeData:[
                    {
                        label:'公司',
                        value:'OWN'
                    },
                    {
                        label:'代理',
                        value:'AGENT'
                    },
                    {
                        label:'业务员',
                        value:'SALES'
                    }
                ], // 业务来源
                srcData:[], // 业务来源数据
                srcforParameter:{},
                // 业务类型
                businessTypesData:[
                    {
                        label:'海运出口',
                        value:'SE'
                    },{
                        label:'海运进口',
                        value:'SI'
                    }
                ],
            }
        },
        watch:{
            // // 监听业务类型 如果不是分单 可以编辑分单号
            // form:{
            //     // 执行方法
            //     handler(oldValue,newValue) {
            //         // 只要分单不能编辑
            //         console.log(this.form,619)
            //         if (!newValue || JSON.stringify(newValue) == '{}') {
            //             return
            //         }
            //         delete this.form.id
            //         this.tableData = []
            //         this.form.finStlBillsItemsList = []
            //         console.log(newValue)
            //
            //
            //     },
            //     deep: true, // 深度监听
            //     immediate: true  // 第一次改变就执行
            // },
        },
        created() {
            this.allyesnoWorkDictsfun() // 获取 字典数据
            this.invoiceWorkDictsfun() // 获取 发票的数据
        },
        methods:{
            finstlbillsRevokeReconciliation,
            // 下拉回调
            corpChange(value,name){
                // 对账单位
                if (name == 'corpCnName') {
                    if (!value) {
                        this.$set(this.form,'corpId','')
                        this.$set(this.form,'corpCnName','')
                        this.$set(this.form,'corpEnName','')
                        this.$set(this.form,'corpArgreementNo','')
                    }
                    for(let item of this.corpData) {
                        if (item.cnName == value) {
                            this.$set(this.form,'corpId',item.id)
                            this.$set(this.form,'corpCnName',item.cnName)
                            this.$set(this.form,'corpEnName',item.enName)
                            this.$set(this.form,'corpArgreementNo',item.enName)
                        }
                    }
                }
                // 业务来源
                else if (name == 'srcType') {
                    if (!value) {
                        this.$set(this.form,'srcType','')
                        return;
                    }
                    this.$set(this.form,name,value)
                    if (value == 'OWN') {
                        this.srcforParameter = { key:'id', label:'title', value:'title'}
                        this.ownDeptLazyTreefun()
                    }else if (value == 'AGENT') {
                        this.srcforParameter = { key:'id', label:'cnName', value:'cnName'}
                        this.srcBcorpsListfun()
                    }else if (value == 'SALES') {
                        this.srcforParameter = { key:'id', label:'name', value:'name'}
                        this.salesuserGetListfun()
                    }else {}
                }
                // 业务来源选择
                else if (name == 'srcCnName') {
                    if (!value) {
                        this.$set(this.form,'srcId','')
                        this.$set(this.form,'srcCnName','')
                        this.$set(this.form,'srcEnName','')
                        return
                    }
                    for (let item of this.srcData) {
                        if (item[this.srcforParameter.value] == value) {
                            if (this.form.srcType == 'OWN') {
                                // 公司
                                this.$set(this.form,'srcId',item.id)
                                this.$set(this.form,'srcCnName',item.title)
                                this.$set(this.form,'srcEnName',item.title)
                            }
                            else if (this.form.srcType == 'SALES') {
                                // 业务员
                                this.$set(this.form,'srcId',item.id)
                                this.$set(this.form,'srcCnName',item.name)
                                this.$set(this.form,'srcEnName',item.name)
                            }else if (this.form.srcType == 'AGENT') {
                                // 代理
                                this.$set(this.form,'srcId',item.id)
                                this.$set(this.form,'srcCnName',item.cnName)
                                this.$set(this.form,'srcEnName',item.enName)
                            }else {}

                        }
                    }
                }
                // 操作员
                else if (name == 'updateUserName') {
                    for (let item of this.updateUserData) {
                        if (item.name == value) {
                            this.$set(this.form,'updateUser',item.id)
                            this.$set(this.form,'updateUserName',item.name)
                        }
                    }
                }
                else {
                    this.$set(this.form,name,value)
                }
            },
            // 编辑
            editHandle(){
                this.editSave = false
            },
            // 保存
            editCustomer(){
                // 对账单位
                if (!this.form.corpId) {
                    this.$message.warning('请选择对账单位');
                    return
                }
                // 业务类型
                if (!this.form.businessTypes) {
                    this.$message.warning('请选择业务类型');
                    return
                }
                if (!this.form.id) {
                    // 是否选择从表数据
                    if (this.handleSelectionData.length == 0) {
                        this.$message.warning('请选择对账数据');
                        return;
                    }
                }
                for (let item of this.handleSelectionData) {
                    if (!item.currentStlCurCode) {
                        this.$message.warning('请选择本次结算币种');
                        return;
                    }
                    // if (!item.currentStlAmount) {
                    //     this.$message.warning('请选择本次结算金额');
                    //     return;
                    // }
                }
                this.saveLoading = true // 加载动画
                this.pageLoading = true
                this.form.billNoFormat = 'HYDZ'
                this.form.businessTypeCode = 'HYDZ'
                this.form.businessType = 'CHK' // 对账单
                this.form.businessTypes = this.form.businessTypes.join(',') // 业务类型

                if (!this.form.id) {
                    this.form.finStlBillsItemsList = this.handleSelectionData.map((item,index)=>{
                        item.lineNo = Number(index) + 1
                        item.pType = item.businessType
                        item.accBillId = item.id
                        item.accBillNo = item.billNo
                        item.accDate = item.billDate
                        item.dc = item.accountDc // 收付
                        if (item.currentStlCurCode == 'CNY') {
                            item.currentStlAmount = item.currentStlAmountRMB
                        }else {
                            item.currentStlAmount = item.currentStlAmountUSD
                        }
                        delete item.businessType
                        if (!this.form.id) {
                            delete item.id
                        }
                        delete item.billNo
                        delete item.billDate
                        delete item.accountDc
                        return item
                    })
                }
                finstlbillsSubmit(this.form).then(res=>{
                    this.saveLoading = false
                    this.pageLoading = false
                    this.$message.success('操作成功');
                    this.finstlbillsDetailfun(res.data.data.id)
                }).catch(err=>{
                    this.pageLoading = false
                })
            },
            // 详情接口
            finstlbillsDetailfun(id){
                this.pageLoading = true
                finstlbillsDetail(id).then(res=>{
                    this.form = res.data.data
                    this.form.businessTypes = this.form.businessTypes.split(',') // 业务类型转换成数组显示
                    this.tableData = this.form.finStlBillsItemsList.map(item=>{
                        if(item.curCode == 'CNY') {
                            this.$set(item,'amountRMB',item.amount)
                            this.$set(item,'currentInvoiceAmountRMB',item.currentInvoiceAmount)
                            this.$set(item,'unsettledAmountRMB',item.unsettledAmount)
                            this.$set(item,'stlTtlAmountRMB',item.stlTtlAmount)
                            this.$set(item,'currentStlAmountRMB',item.currentStlAmount)
                        }else {
                            this.$set(item,'amountUSD',item.amount)
                            this.$set(item,'currentInvoiceAmountUSD',item.currentInvoiceAmount)
                            this.$set(item,'unsettledAmountUSD',item.unsettledAmount)
                            this.$set(item,'stlTtlAmountUSD',item.stlTtlAmount)
                            this.$set(item,'currentStlAmountUSD',item.currentStlAmount)
                        }
                        this.$set(item,'costDate',[])
                        return item
                    })
                    this.form.isSignfor = this.form.isSignfor + ''
                    this.form.isApproved = this.form.isApproved + ''
                    this.form.isCleared = this.form.isCleared + ''
                    this.form.isChecked = this.form.isChecked + ''
                    this.form.isInvoice = this.form.isInvoice + ''
                    this.pageLoading = false
                })
            },
            // 重置条件
            ResetFilter(){
                this.form = {}
            },
            // 检索接口
            finstlbillslistAccBillV1fun(){
                // 对账单位
                if (!this.form.corpId) {
                    this.$message.warning('请选择对账单位');
                    return
                }
                // 业务类型
                if (!this.form.businessTypes) {
                    this.$message.warning('请选择业务类型');
                    return
                }
                delete this.form.id
                // let obj = JSON.parse(JSON.stringify(this.form))
                let obj = {}
                obj.type = '1'
                obj.auditStatus = this.form.isApproved // 审核状态 0 新建费用 1 已请核 2 审核中 3 驳回 4 通过
                obj.corpCnName = this.form.corpId // 对账单位
                obj.isSignfor = this.form.isSignfor // 是否已签收（0 否 1是）
                obj.dc = this.form.dc // 收付 D=收 C=付
                obj.curCode = this.form.curCode // 币别
                obj.srcType = this.form.srcType // 业务来源
                obj.srcCnName = this.form.srcId // 业务员id
                obj.isCleared = this.form.isCleared // 是否销账（0 未销账 3 部分销账 9 销账）
                obj.accBillNo = this.form.accountNo // 账单编号  ACCT NO
                obj.billNo = this.form.businessNo // 单据编号  JOB NO
                obj.mblno = this.form.mblno // MB/L NO
                obj.hblno = this.form.hblno // HB/L NO
                obj.isChecked = this.form.isChecked // 是否对账（0 未对账 1 已对账）
                obj.queryAmount = this.form.queryAmount // 查询金额
                obj.businessType = this.form.businessTypes.join(',') // 业务类型
                obj.invoiceStatus = this.form.isInvoice // 发票状态 0 = 未开 9=已开 2 待开 3 不开
                obj.vesselCnName = this.form.vesselCnName // 中文船名
                obj.invoiceNo = this.form.invoiceNo // 发票号
                obj.bookingNo = this.form.bookingNo // 订舱号 BKNO
                obj.createUserName = this.form.updateUser // 操作员id
                obj.receivableAdvance = this.form.receivableAdvance // 预收帐款
                obj.threeInspectionsNo = this.form.threeInspectionsNo // 三检单号
                obj.voyageNo = this.form.voyageNo // 航次
                // 审核期间
                if (this.form.approvedDate) {
                    obj.approveTimeList = this.form.approvedDate
                }
                // 财务期间
                if (this.form.accountDate) {
                    obj.billDateList = this.form.accountDate
                }
                finstlbillslistAccBillV1(obj).then(res=>{
                    this.tableData = res.data.data.map(item=>{
                        this.$set(item,'currentStlCurCode',item.curCode)
                        if(item.curCode == 'CNY') {
                            this.$set(item,'amountRMB',item.amount)
                            this.$set(item,'currentInvoiceAmountRMB',item.currentInvoiceAmount)
                            this.$set(item,'unsettledAmountRMB',item.unsettledAmount)
                            this.$set(item,'stlTtlAmountRMB',item.stlTtlAmount)
                            this.$set(item,'currentStlAmountRMB',Number(item.amount) - Number(item.stlTtlAmount))
                        }else {
                            this.$set(item,'amountUSD',item.amount)
                            this.$set(item,'currentInvoiceAmountUSD',item.currentInvoiceAmount)
                            this.$set(item,'unsettledAmountUSD',item.unsettledAmount)
                            this.$set(item,'stlTtlAmountUSD',item.stlTtlAmount)
                            this.$set(item,'currentStlAmountUSD',(Number(item.amount) - Number(item.stlTtlAmount)).toFixed(2))
                        }
                        return item
                    })
                })
            },
            // 确认发票
            Confirminvoicefun(){

            },
            // 不开发票
            Notinvoicingfun(){

            },
            // 对账确认
            finstlbillsConfirmReconciliationfun(){
                this.$confirm("确定进行对账操作?", {
                    confirmButtonText: "确定",
                    cancelButtonText: "取消",
                    type: "warning"
                }).then(()=>{
                    this.pageLoading = true
                    this.form.businessTypes = this.form.businessTypes.join(',') // 业务类型
                    finstlbillsConfirmReconciliation(this.form).then(res=>{
                        this.pageLoading = false
                        this.$message.success('操作成功');
                        this.finstlbillsDetailfun(res.data.data.id)
                    }).catch(err=>{
                        this.pageLoading = false
                    })
                })
            },
            // 对账撤销
            finstlbillsRevokeReconciliationfun(){
                this.$confirm("确定进行撤销对账操作?", {
                    confirmButtonText: "确定",
                    cancelButtonText: "取消",
                    type: "warning"
                }).then(()=>{
                    this.pageLoading = true
                    this.form.businessTypes = this.form.businessTypes.join(',') // 业务类型
                    finstlbillsRevokeReconciliation(this.form).then(res=>{
                        this.pageLoading = false
                        this.$message.success('操作成功');
                        this.finstlbillsDetailfun(res.data.data.id)
                    }).catch(err=>{
                        this.pageLoading = false
                    })
                })
            },
            // 确认签收
            ConfirmReceiptfun(){
                if (this.handleSelectionData.length === 0) {
                    this.$message.warning("请选择至少一条数据");
                    return;
                }
                for (let item of this.handleSelectionData) {
                    if (item.isSignfor == 1) {
                        this.$message.warning('请选择未签收的数据进行签收');
                        return;
                    }
                }
                this.$confirm("确定将选择数据签收?", {
                    confirmButtonText: "确定",
                    cancelButtonText: "取消",
                    type: "warning"
                }).then(()=>{
                    this.finstlbillsConfirmSignForfun()
                })
            },
            // 撤销签收
            RevokeReceiptfun(){
                if (this.handleSelectionData.length === 0) {
                    this.$message.warning("请选择至少一条数据");
                    return;
                }
                for (let item of this.handleSelectionData) {
                    if (item.isSignfor == 0) {
                        this.$message.warning('请选择已签收的数据进行撤销');
                        return;
                    }
                }
                this.$confirm("确定将选择数据撤销签收?", {
                    confirmButtonText: "确定",
                    cancelButtonText: "取消",
                    type: "warning"
                }).then(()=>{
                    this.finstlbillsRevokeSignForfun()
                })
            },
            // 确认选定行
            SelectedRows(){
                this.editCustomer()
            },
            // 下面表格多选
            handleSelectionChange(arr){
                this.handleSelectionData = arr
            },
            //返回列表
            backToList() {
                this.$emit('goBack')
            },
            // 请求的接口
            // 确认签收接口
            finstlbillsConfirmSignForfun(){
                this.form.billNoFormat = 'HYDZ'
                this.form.businessTypeCode = 'HYDZ'
                this.form.businessType = 'CHK' //对账单
                this.form.businessTypes = this.form.businessTypes.join(',') // 业务类型
                // 保留id
                this.form.finStlBillsItemsList = this.handleSelectionData
                this.pageLoading = true
                finstlbillsConfirmSignFor(this.form).then(res=>{
                    this.pageLoading = false
                    this.$message.success('操作成功');
                    this.finstlbillsDetailfun(res.data.data.id)
                }).catch(err=>{
                    this.pageLoading = false
                })
            },
            // 撤销签收接口
            finstlbillsRevokeSignForfun(){
                this.form.billNoFormat = 'HYDZ'
                this.form.businessTypeCode = 'HYDZ'
                this.form.businessType = 'CHK' // 对账单
                this.form.businessTypes = this.form.businessTypes.join(',') // 业务类型

                this.form.finStlBillsItemsList = this.handleSelectionData
                this.pageLoading = true
                finstlbillsRevokeSignFor(this.form).then(res=>{
                    this.pageLoading = false
                    this.$message.success('操作成功');
                    this.finstlbillsDetailfun(res.data.data.id)
                }).catch(err=>{
                    this.pageLoading = false
                })
            },
            // 获取 全部是否 接口
            allyesnoWorkDictsfun(){
                getWorkDicts('all_yes_no').then(res=>{
                    this.allyesnoData = res.data.data;
                })
            },
            // 销账字段数据

            // 获取发票的字典数据
            invoiceWorkDictsfun(){
                getWorkDicts('invoice_los').then(res=>{
                    this.isInvoiceData = res.data.data;
                })
            },
            // 获取币别数据
            getRateListfun(cnName){
                getRateList({current:1,size:10,cnName}).then(res=>{
                    this.curCodeData = res.data.data.records
                })
            },
            // 获取操作员数据
            updateUserUserGetListfun(account){
                userGetList(1,10,{account}).then(res=>{
                    this.updateUserData = res.data.data.records
                })
            },
            // 获取公司名称 用户管理左侧
            ownDeptLazyTreefun(){
                getDeptLazyTree(0).then(res=>{
                    this.srcData = res.data.data
                })
            },
            // 获取业务来源代理数据
            srcBcorpsListfun(cnName){
                let corpType = '1712285382575398914,1712285645314990082,1712285842321448962,1712286433378574338'
                getBcorpslistByType(1,10,{cnName,corpType}).then(res=>{
                    this.srcData = res.data.data.records
                })
            },
            // 获取业务员数据
            salesuserGetListfun(account = undefined,type = false,){
                userGetList(1,10,{account}).then(res=>{
                    this.srcData = res.data.data.records
                })
            },
            // 获取对账单位数据
            corpBcorpsListfun(cnName){
                getBcorpslistByType(1,10,{cnName}).then(res=>{
                    this.corpData = res.data.data.records
                })
            },

        }
    }
</script>

<style scoped>
::v-deep.el-form-item {
    margin-bottom: 0;
}
.bottomFlex {
    display: flex;
    align-items: center;
}
.weightfont {
    font-size: 20px;
    font-weight: bold;
}
.weightnum {
    font-size: 15px;
    font-weight: 500;
}
</style>
