| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546 | <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" style="margin-right: 8px" :loading="saveLoading" :disabled="!form.id"                    @click="previewreportfun">预 览                </el-button>                <el-button size="small" style="margin-right: 8px" v-if="roleName.indexOf('admin') != -1"                    :loading="saveLoading" :disabled="!form.id" @click="DesignreportDialog = true">报表设计                </el-button>                <el-button size="small" type="warning" plain style="margin-right: 8px" :disabled="!form.id || editPower"                    v-if="form.billStatus == 1" :loading="saveLoading" @click="finstlbillsRevokeReconciliationfun">撤销对账                </el-button>                <el-button size="small" type="success" plain style="margin-right: 8px" :disabled="!form.id || editPower"                    v-else :loading="saveLoading" @click="editCustomer('对账')">确认对账                </el-button>                <el-button size="small" type="primary" style="margin-right: 8px" v-if="editSave"                    :disabled="submitType || editPower" :loading="saveLoading" @click="editHandle">编 辑                </el-button>                <el-button size="small" type="primary" style="margin-right: 8px" v-else :disabled="submitType"                    :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="11">                                <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" placeholder="请选择对账单位"                                            :forParameter="{ key: 'id', label: 'cnName', value: 'cnName' }"                                            @corpChange="corpChange($event, 'corpCnName')"                                            @remoteMethod="corpBcorpsListfun" @corpFocus="corpBcorpsListfun">                                        </search-query>                                    </el-col>                                    <el-col :span="9">                                        <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="5">                                        <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="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="3">                                <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="5">                                <el-form-item label="费用名称" prop="feeCnName">                                    <dic-select v-model="form.feeCnName" placeholder="费用名称" key="id" label="cnName"                                         url="/blade-los/bfees/listAll" :filterable="true" :multiple="true" :collapseTags="true"                                        :disabled="editSave"></dic-select>                                </el-form-item>                            </el-col>                            <el-col :span="4">                                <el-form-item label="业务编号" prop="businessNo">                                    <el-input style="width: 100%;" v-model="form.businessNo" size="small"                                        autocomplete="off" :disabled="editSave" clearable placeholder="请输入业务编号">                                    </el-input>                                </el-form-item>                            </el-col>                            <el-col :span="4">                                <el-form-item label="账单编号" prop="accountNo">                                    <el-input style="width: 100%;" v-model="form.accountNo" size="small"                                        autocomplete="off" :disabled="editSave" clearable placeholder="请输入账单编号">                                    </el-input>                                </el-form-item>                            </el-col>                            <el-col :span="4">                                <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="4">                                <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="3">                                <el-form-item label="对账" prop="isChecked" label-width="50px">                                    <search-query :datalist="isCheckedData" :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="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="4">                                <el-form-item label="业务开始日期" prop="businessDateStart">                                    <el-date-picker v-model="form.businessDateStart" clearable style="width: 100%;"                                        type="date" 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="4">                                <el-form-item label="业务结束日期" prop="businessDateEnd">                                    <el-date-picker v-model="form.businessDateEnd" clearable style="width: 100%;"                                        type="date" 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="4">                                <el-form-item label="财务开始日期" prop="accountDateFrom">                                    <el-date-picker v-model="form.accountDateFrom" clearable style="width: 100%;"                                        type="date" 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="4">                                <el-form-item label="财务结束日期" prop="accountDateTo">                                    <el-date-picker v-model="form.accountDateTo" clearable style="width: 100%;"                                        type="date" 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="4">                                <el-form-item label="审核开始期间" prop="auditDateFrom">                                    <el-date-picker v-model="form.auditDateFrom" clearable style="width: 100%;"                                        type="date" 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="4">                                <el-form-item label="审核结束期间" prop="auditDateTo">                                    <el-date-picker v-model="form.auditDateTo" clearable style="width: 100%;"                                        type="date" size="small" :disabled="editSave" format="yyyy-MM-dd"                                        value-format="yyyy-MM-dd" placeholder="请选择审核结束日期">                                    </el-date-picker>                                </el-form-item>                            </el-col>                        </el-row>                        <expand :showBtn="true" :showSpan="true">                            <el-row>                                <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-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"                                            placeholder="请选择业务类型" @corpChange="corpChange($event, 'businessTypes')">                                        </search-query>                                    </el-form-item>                                </el-col>                                <el-col :span="4">                                    <el-form-item label="发票" prop="isInvoice" 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="dc">                                        <search-query :datalist="dcData" :selectValue="form.dc" :clearable="true"                                            :disabled="editSave" :buttonIf="false" placeholder="请选择收/付"                                            @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" placeholder="请选择币别"                                            :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"                                                placeholder="请选择业务来源" @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" placeholder="请选择详情"                                                :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="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-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="limitedAmount">                                        <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="isCleared" label-width="50px">                                        <search-query :datalist="isClearedData" :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-row>                        </expand>                        <el-row>                            <el-col span="24">                                <div style="text-align: right">                                    <!--<el-button  size="small" type="" style="margin-right: 8px" :disabled="editSave"-->                                    <!--            :loading="saveLoading" @click="ResetFilter">重置条件-->                                    <!--</el-button>-->                                    <el-button size="small" type="primary" style="margin-right: 8px"                                        :disabled="editSave" :loading="saveLoading" @click="retrievalfun">检 索                                    </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="color: #81B337">                            <span>应收CNY:</span>                            <span class="weightnum">¥{{ form.amountDr || 0 }}元</span>                        </div>                    </el-col>                    <el-col :span="4">                        <div class="bottomFlex" style="color: #6BBCD1">                            <span>应付CNY:</span>                            <span class="weightnum">¥{{ form.amountCr || 0 }}元</span>                        </div>                    </el-col>                    <el-col :span="4">                        <div class="bottomFlex" style="color: #81B337">                            <span>应收USD:</span>                            <span class="weightnum">${{ form.amountDrUsd || 0 }}元</span>                        </div>                    </el-col>                    <el-col :span="4">                        <div class="bottomFlex" style="color: #6BBCD1">                            <span>应付USD:</span>                            <span class="weightnum">${{ form.amountCrUsd || 0 }}元</span>                        </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 || editSave" :loading="saveLoading" @click="ConfirmReceiptfun">批量签收                            </el-button>                            <el-button size="small" type="danger" style="margin-right: 8px"                                :disabled="!form.id || editSave" :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="info" style="margin-right: 8px" :disabled="editSave"                        :loading="saveLoading" @click="SelectedRows">确认选定行                    </el-button>                    <el-button size="small" type="danger" style="margin-left: 10px" :disabled="editSave"                        :loading="saveLoading" @click="batchDeletefun">一键删除                    </el-button>                    <el-button size="small" type="primary" style="margin-left: 10px" :disabled="editPower"                        :loading="saveLoading" @click="editHandle">一键编辑                    </el-button>                    <el-button size="small" type="primary" style="margin-right: 8px" :disabled="editSave"                        :loading="saveLoading" @click="Confirminvoicefun">禁止开票                    </el-button>                    <el-button size="small" type="warning" style="margin-right: 8px" :disabled="editSave"                        :loading="saveLoading" @click="Notinvoicingfun">取消禁止开票                    </el-button>                </div>                <finstlbillsitems :tableData="tableData" :form="form" :handleSelectionData="handleSelectionData"                    :brfalse="!editSave" @handleSelectionChange="handleSelectionChange">                </finstlbillsitems>            </el-card>        </div>        <!--选择数据弹窗-->        <el-dialog title="选择数据" class="el-dialogDeep" :visible.sync="retrievePopupsType" append-to-body width="70%"            :close-on-click-modal="false">            <div>                <avue-crud :option="retrievePopupsOption" :data="retrievePopupsData" ref="retrievePopupsRef"                    id="out-table">                    <template slot="menu" slot-scope="{ row }">                        <el-button type="text" icon="" size="small" @click.stop="retrievePopupsSelect(row)">选择                        </el-button>                    </template>                </avue-crud>            </div>        </el-dialog>        <!--设计报表弹窗-->        <el-dialog append-to-body title="设计报表" class="el-dialogDeep" :visible.sync="DesignreportDialog" width="70%"            :close-on-click-modal="false" :destroy-on-close="true" :close-on-press-escape="false" v-dialog-drag>            <reports :id="form.id" :assemblyForm="form" businessValue="DZZX"></reports>        </el-dialog>        <!--预览-->        <el-dialog title="打印" :visible.sync="selectPrintingDialog" append-to-body width="70%"            :close-on-click-modal="false" :destroy-on-close="true" :close-on-press-escape="false" v-dialog-drag>            <div>                <reportformsList ref="reportformsList" @reportRadio="reportRadio"></reportformsList>            </div>            <span slot="footer" class="dialog-footer">                <el-button size="small" @click="selectPrintingDialog = false;">取 消</el-button>            </span>        </el-dialog>        <!--报表组件-->        <reportContainer ref="reportContainer"></reportContainer>    </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,    finstlbillsitemsRemove, finstlbillslistAccBillByCorp, finstlbillsConfirmInvoicing, finstlbillsRevokeInvoicing} from '@/api/iosBasicData/finstlbills'import expand from "@/components/basic-container/expand.vue";import finstlbillsitems from "@/views/iosBasicData/finstlbills/assembly/finstlbillsitems.vue";import { dateFormat } from "@/util/date";import reports from "@/views/iosBasicData/SeafreightExportF/bills/assembly/reports.vue";import reportformsList from "@/views/iosBasicData/SeafreightExportF/bills/assembly/reportformsList.vue";import reportContainer from "@/views/iosBasicData/report-container/report-container.vue";import { getList as getreportsList, reportsGetReportData } from "@/api/iosBasicData/reports";import dicSelect from "@/components/dicSelect/main";export default {    components: { reportContainer, reportformsList, reports, SearchQuery, expand, finstlbillsitems, dicSelect },    props: {        // 编辑还是保存        editSave: {            type: Boolean,            default: true        }    },    data() {        return {            retrievePopupsType: false, // 弹窗开启关闭            retrievePopupsData: [], // 选择弹窗数据            retrievePopupsOption: {                border: true,                calcHeight: 30,                tip: false,                height: 'auto',                index: true,                addBtn: false,                viewBtn: false,                delBtn: false,                editBtn: false,                refreshBtn: false,                columnBtn: false,                menuWidth: '60',                column: [                    {                        label: "客户中文名",                        prop: "cnName",                        overHidden: true,                    },                    {                        label: "客户英文文名",                        prop: "cnName",                        overHidden: true,                    },                ]            },            DesignreportDialog: false, // 设计报表弹窗            selectPrintingDialog: false, // 预览报表            statusType: false, // 确认发票            tableData: [],            pageLoading: false, // 全屏加载动画            saveLoading: false, // 按钮动画            // 绑定的数据            form: {                billDate: dateFormat(new Date(), "yyyy-MM-dd") + ' 00:00', // 对账日期 默认 当天                isApproved: '0',                isSignfor: '0',                isCleared: null, // 销账                isChecked: '0',                isInvoice: '0',                accountDate: [],                approvedDate: [],            },            handleSelectionData: [], // 表格选择的数据            corpData: [], // 对账单位 数据            allyesnoData: [], // 全部是否字典数据            isCheckedData: [], // 对账状态字典数据            isClearedData: [], // 销项            isInvoiceData: [],// 发票字典            // 收 / 付            dcData: [                {                    label: '收',                    value: 'D'                }, {                    label: '付',                    value: 'C'                }            ],            curCodeData: [],// 币别            updateUserData: [], // 操作员            srcTypeData: [                {                    label: '公司',                    value: 'OWN'                },                {                    label: '代理',                    value: 'AGENT'                },                {                    label: '业务员',                    value: 'SALES'                }            ], // 业务来源            srcData: [], // 业务来源数据            srcforParameter: {},            // 业务类型            businessTypesData: [                {                    label: '海运出口',                    value: 'SE'                }, {                    label: '海运进口',                    value: 'SI'                }            ],            submitType: false, // 是否提交            roleName: [], // 当前的角色权限            saberUserInfo: {}, // 当前登录人信息            editPower: false, // 当前是否可以编辑        }    },    created() {        this.roleName = localStorage.getItem('roleName').split(',')        // 获取当前登录人个人信息        this.saberUserInfo = JSON.parse(localStorage.getItem('saber-userInfo')).content        this.allyesnoWorkDictsfun() // 获取 字典数据        this.invoiceWorkDictsfun() // 获取 发票的数据    },    methods: {        // 打印        reportRadio(val) {            // 获取报表数据            reportsGetReportData({                billId: this.form.id,                reportCode: val.classifyCode,                groupCode: val.groupCode,                type: 'DZZX'            }).then(res => {                this.handleReportPreview(val.url, res.data.data.data)            })        },        // 报表预览        previewreportfun() {            getreportsList(1, 10, {                businessType: 'DZZX',                // classifyCode:'结算中心',                // groupCode:'付费结算'            }).then(res => {                if (res.data.data.records.length == 1) {                    this.reportRadio(res.data.data.records[0])                } else {                    this.saveLoading = true                    this.selectPrintingDialog = true                    this.saveLoading = false                    let page = {                        pageSize: 10,                        currentPage: 1,                        total: 0                    }                    this.$nextTick(() => {                        this.$refs.reportformsList.onLoad(page, {                            businessType: 'DZZX',                            // classifyCode:'结算中心',                            // groupCode:'付费结算'                        })                    })                }            })        },        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(type) {            // 对账单位            if (!this.form.corpId) {                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;                }            }            this.form.billNoFormat = 'HYDZ'            this.form.businessTypeCode = 'HYDZ'            this.form.businessType = 'CHK' // 对账单            this.form.businessTypes = this.form.businessTypes ? this.form.businessTypes.join(',') : '' // 业务类型            this.form.accountDateFrom = this.form.accountDateFrom ? this.form.accountDateFrom.slice(0, 10) + ' 00:00:00' : null // 财务开始日期            this.form.accountDateTo = this.form.accountDateTo ? this.form.accountDateTo.slice(0, 10) + ' 00:00:00' : null // 财务开始日期            this.form.auditDateFrom = this.form.auditDateFrom ? this.form.auditDateFrom.slice(0, 10) + ' 00:00:00' : null            this.form.auditDateTo = this.form.auditDateTo ? this.form.auditDateTo.slice(0, 10) + ' 00:00:00' : null            this.form.businessDateEnd = this.form.businessDateEnd ? this.form.businessDateEnd.slice(0, 10) + ' 00:00:00' : null            this.form.businessDateStart = this.form.businessDateStart ? this.form.businessDateStart.slice(0, 10) + ' 00:00:00' : null            this.form.billDate = this.form.billDate ? this.form.billDate.slice(0, 10) + ' 00:00:00' : null            this.form.feeCnName = this.form.feeCnName ? this.form.feeCnName.join(',') : ''            if (!this.form.id) {                this.form.finStlBillsItemsList = this.handleSelectionData.map((item, index) => {                    item.lineNo = Number(index) + 1                    item.pType = item.businessType                    item.accDate = item.billDate                    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.accountDc                    return item                })            } else {                this.form.finStlBillsItemsList = this.form.finStlBillsItemsList.map((item, index) => {                    if (item.currentStlCurCode == 'CNY') {                        item.currentStlAmount = item.currentStlAmountRMB                    } else {                        item.currentStlAmount = item.currentStlAmountUSD                    }                    return item                })            }            this.saveLoading = true // 加载动画            this.pageLoading = true            // 判断是单独点击保存还是点击确认对账            if (type == '对账') {                this.$confirm("确定进行对账操作?", {                    confirmButtonText: "确定",                    cancelButtonText: "取消",                    type: "warning"                }).then(() => {                    finstlbillsSubmit(this.form).then(res => {                        this.form = res.data.data                        this.finstlbillsConfirmReconciliationfun()                    }).finally(() => {                        this.pageLoading = false                        this.saveLoading = false                    })                })            } else {                finstlbillsSubmit(this.form).then(res => {                    this.$message.success('操作成功');                    this.finstlbillsDetailfun(res.data.data.id)                }).finally(() => {                    this.pageLoading = false                    this.saveLoading = false                })            }        },        // 详情接口        finstlbillsDetailfun(id) {            this.pageLoading = true            finstlbillsDetail(id).then(res => {                this.form = res.data.data                if (this.roleName.indexOf('admin') == -1 ? this.roleName.indexOf('允许修改他人业务') == -1 ? this.saberUserInfo.user_id != this.form.createUser : false : false) {                    this.editPower = true                } else {                    this.editPower = false                }                // 判断是否已经提交过了                if (this.form.billStatus == 1) {                    this.submitType = true                } else {                    this.submitType = false                }                this.form.businessTypes = this.form.businessTypes ? this.form.businessTypes.split(',') :[] // 业务类型转换成数组显示                this.form.feeCnName = this.form.feeCnName ? this.form.feeCnName.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, '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, '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.billStatus = this.form.billStatus + ''                this.form.isInvoice = this.form.isInvoice + ''            }).finally(() => {                this.pageLoading = false            })        },        // 重置条件        ResetFilter() {            this.form = {}        },        // 弹窗选择        retrievePopupsSelect(row) {            // this.form = row            this.$set(this.form, 'corpId', row.id)            this.$set(this.form, 'corpCnName', row.cnName)            this.$set(this.form, 'corpEnName', row.enName)            this.$set(this.form, 'corpArgreementNo', row.enName)            this.retrievePopupsType = false            this.finstlbillslistAccBillV1fun()        },        // 检索        retrievalfun() {            // 判断是否有对账单位            if (!this.form.corpId && (this.form.businessNo || this.form.accountNo || this.form.hblno || this.form.mblno)) {                console.log('新接口')                this.finstlbillslistAccBillByCorpfun()            } else {                if (!this.form.corpId) {                    return this.$message.warning('请填写对账单位')                }                console.log('原来的接口')                this.finstlbillslistAccBillV1fun()            }        },        // 检索出的弹窗        finstlbillslistAccBillByCorpfun() {            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 ? 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 ? this.form.updateUser : null // 操作员id            obj.receivableAdvance = this.form.receivableAdvance // 预收帐款            obj.threeInspectionsNo = this.form.threeInspectionsNo // 三检单号            obj.voyageNo = this.form.voyageNo // 航次            obj.businessDateStart = this.form.businessDateStart // 业务开始日期            obj.businessDateEnd = this.form.businessDateEnd // 业务结束日期            obj.billDateStart = this.form.accountDateFrom // 财务开始日期            obj.billDateEnd = this.form.accountDateTo // 财务开始日期            obj.approveTimeStart = this.form.auditDateFrom // 审核开始日期            obj.approveTimeEnd = this.form.auditDateTo // 审核结束日期            obj.feeCnName = this.form.feeCnName            finstlbillslistAccBillByCorp(obj).then(res => {                this.retrievePopupsType = true                this.retrievePopupsData = res.data.data            })        },        // 检索接口        finstlbillslistAccBillV1fun() {            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 ? 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 ? this.form.updateUser : null // 操作员id            obj.receivableAdvance = this.form.receivableAdvance // 预收帐款            obj.threeInspectionsNo = this.form.threeInspectionsNo // 三检单号            obj.voyageNo = this.form.voyageNo // 航次            obj.businessDateStart = this.form.businessDateStart // 业务开始日期            obj.businessDateEnd = this.form.businessDateEnd // 业务结束日期            obj.billDateStart = this.form.accountDateFrom // 财务开始日期            obj.billDateEnd = this.form.accountDateTo // 财务开始日期            obj.approveTimeStart = this.form.auditDateFrom // 审核开始日期            obj.approveTimeEnd = this.form.auditDateTo // 审核结束日期            obj.feeCnName = this.form.feeCnName ? this.form.feeCnName.join(',') : ''            finstlbillslistAccBillV1(obj).then(res => {                this.tableData = res.data.data.map((item, index) => {                    item.accBillId = item.id                    delete item.id                    item.lineNo = Number(index) + 1                    this.$set(item, 'currentStlCurCode', item.curCode)                    this.$set(item, 'currentStlExrate', item.exrate)                    item.accBillNo = item.billNo                    item.billNo = item.businessBillDivideNo ? item.businessBillDivideNo : item.businessBillNo                    item.dc = item.accountDc // 收付                    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, 'currentStlAmountRMB', item.reconciliationCurrentAmount)                    } else {                        this.$set(item, 'amountUSD', item.amount)                        this.$set(item, 'currentInvoiceAmountUSD', item.currentInvoiceAmount)                        this.$set(item, 'unsettledAmountUSD', item.unsettledAmount)                        this.$set(item, 'currentStlAmountUSD', item.reconciliationCurrentAmount)                    }                    return item                })                if (this.tableData.length == 0) {                    this.$message.warning('当前检索暂无数据!')                }            })        },        // 确认发票        Confirminvoicefun() {            if (this.handleSelectionData.length === 0) {                this.$message.warning("请选择至少一条数据");                return;            }            this.$confirm("确定将选择数据确认开票?", {                confirmButtonText: "确定",                cancelButtonText: "取消",                type: "warning"            }).then(() => {                this.finstlbillsConfirmInvoicingfun()            })        },        // 不开发票        Notinvoicingfun() {            if (this.handleSelectionData.length === 0) {                this.$message.warning("请选择至少一条数据");                return;            }            this.$confirm("确定将选择数据撤销签收?", {                confirmButtonText: "确定",                cancelButtonText: "取消",                type: "warning"            }).then(() => {                this.finstlbillsRevokeInvoicingfun()            })        },        // 确认发票接口        finstlbillsConfirmInvoicingfun() {            this.form.billNoFormat = 'HYDZ'            this.form.businessTypeCode = 'HYDZ'            this.form.businessType = 'CHK' //对账单            this.form.businessTypes = this.form.businessTypes ? this.form.businessTypes.join(',') : '' // 业务类型            this.form.feeCnName = this.form.feeCnName ? this.form.feeCnName.join(',') : ''            this.form.accountDateFrom = this.form.accountDateFrom ? this.form.accountDateFrom.slice(0, 10) + ' 00:00:00' : null // 财务开始日期            this.form.accountDateTo = this.form.accountDateTo ? this.form.accountDateTo.slice(0, 10) + ' 00:00:00' : null // 财务开始日期            this.form.auditDateFrom = this.form.auditDateFrom ? this.form.auditDateFrom.slice(0, 10) + ' 00:00:00' : null            this.form.auditDateTo = this.form.auditDateTo ? this.form.auditDateTo.slice(0, 10) + ' 00:00:00' : null            this.form.businessDateEnd = this.form.businessDateEnd ? this.form.businessDateEnd.slice(0, 10) + ' 00:00:00' : null            this.form.businessDateStart = this.form.businessDateStart ? this.form.businessDateStart.slice(0, 10) + ' 00:00:00' : null            this.form.billDate = this.form.billDate ? this.form.billDate.slice(0, 10) + ' 00:00:00' : null            // 保留id            this.form.finStlBillsItemsList = this.handleSelectionData            this.pageLoading = true            finstlbillsConfirmInvoicing(this.form).then(res => {                this.$message.success('操作成功');                this.finstlbillsDetailfun(res.data.data.id)            }).finally(() => {                this.pageLoading = false            })        },        // 撤销发票接口        finstlbillsRevokeInvoicingfun() {            this.form.billNoFormat = 'HYDZ'            this.form.businessTypeCode = 'HYDZ'            this.form.businessType = 'CHK' // 对账单            this.form.businessTypes = this.form.businessTypes ? this.form.businessTypes.join(',') : '' // 业务类型            this.form.feeCnName = this.form.feeCnName ? this.form.feeCnName.join(',') : ''            this.form.accountDateFrom = this.form.accountDateFrom ? this.form.accountDateFrom.slice(0, 10) + ' 00:00:00' : null // 财务开始日期            this.form.accountDateTo = this.form.accountDateTo ? this.form.accountDateTo.slice(0, 10) + ' 00:00:00' : null // 财务开始日期            this.form.auditDateFrom = this.form.auditDateFrom ? this.form.auditDateFrom.slice(0, 10) + ' 00:00:00' : null            this.form.auditDateTo = this.form.auditDateTo ? this.form.auditDateTo.slice(0, 10) + ' 00:00:00' : null            this.form.businessDateEnd = this.form.businessDateEnd ? this.form.businessDateEnd.slice(0, 10) + ' 00:00:00' : null            this.form.businessDateStart = this.form.businessDateStart ? this.form.businessDateStart.slice(0, 10) + ' 00:00:00' : null            this.form.billDate = this.form.billDate ? this.form.billDate.slice(0, 10) + ' 00:00:00' : null            this.form.finStlBillsItemsList = this.handleSelectionData            this.pageLoading = true            finstlbillsRevokeInvoicing(this.form).then(res => {                this.$message.success('操作成功');                this.finstlbillsDetailfun(res.data.data.id)            }).finally(() => {                this.pageLoading = false            })        },        // 对账确认        finstlbillsConfirmReconciliationfun() {            this.pageLoading = true            this.saveLoading = true            this.form.businessTypes = this.form.businessTypes ? this.form.businessTypes.join(',') : '' // 业务类型            this.form.feeCnName = this.form.feeCnName ? this.form.feeCnName.join(',') : ''            this.form.accountDateFrom = this.form.accountDateFrom ? this.form.accountDateFrom.slice(0, 10) + ' 00:00:00' : null // 财务开始日期            this.form.accountDateTo = this.form.accountDateTo ? this.form.accountDateTo.slice(0, 10) + ' 00:00:00' : null // 财务开始日期            this.form.auditDateFrom = this.form.auditDateFrom ? this.form.auditDateFrom.slice(0, 10) + ' 00:00:00' : null            this.form.auditDateTo = this.form.auditDateTo ? this.form.auditDateTo.slice(0, 10) + ' 00:00:00' : null            this.form.businessDateEnd = this.form.businessDateEnd ? this.form.businessDateEnd.slice(0, 10) + ' 00:00:00' : null            this.form.businessDateStart = this.form.businessDateStart ? this.form.businessDateStart.slice(0, 10) + ' 00:00:00' : null            this.form.billDate = this.form.billDate ? this.form.billDate.slice(0, 10) + ' 00:00:00' : null            this.form.url = '/iosBasicData/finstlbills/index',                this.form.pageStatus = "this.$store.getters.paidapplication"            this.form.pageLabel = "对账中心(F)"            finstlbillsConfirmReconciliation(this.form).then(res => {                this.$message.success('操作成功');                this.editSave = true                this.finstlbillsDetailfun(res.data.data.id)            }).finally(() => {                this.pageLoading = false                this.saveLoading = false            })        },        // 对账撤销        finstlbillsRevokeReconciliationfun() {            this.$confirm("确定进行撤销对账操作?", {                confirmButtonText: "确定",                cancelButtonText: "取消",                type: "warning"            }).then(() => {                this.pageLoading = true                this.form.businessTypes = this.form.businessTypes ? this.form.businessTypes.join(',') : '' // 业务类型                this.form.feeCnName = this.form.feeCnName ? this.form.feeCnName.join(',') : ''                this.form.accountDateFrom = this.form.accountDateFrom ? this.form.accountDateFrom.slice(0, 10) + ' 00:00:00' : null // 财务开始日期                this.form.accountDateTo = this.form.accountDateTo ? this.form.accountDateTo.slice(0, 10) + ' 00:00:00' : null // 财务开始日期                this.form.auditDateFrom = this.form.auditDateFrom ? this.form.auditDateFrom.slice(0, 10) + ' 00:00:00' : null                this.form.auditDateTo = this.form.auditDateTo ? this.form.auditDateTo.slice(0, 10) + ' 00:00:00' : null                this.form.businessDateEnd = this.form.businessDateEnd ? this.form.businessDateEnd.slice(0, 10) + ' 00:00:00' : null                this.form.businessDateStart = this.form.businessDateStart ? this.form.businessDateStart.slice(0, 10) + ' 00:00:00' : null                this.form.billDate = this.form.billDate ? this.form.billDate.slice(0, 10) + ' 00:00:00' : null                finstlbillsRevokeReconciliation(this.form).then(res => {                    this.$message.success('操作成功');                    this.finstlbillsDetailfun(res.data.data.id)                }).finally(() => {                    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()        },        // 一键删除        batchDeletefun() {            if (this.handleSelectionData.length == 0) {                return this.$message.warning('请选择要删除的数据')            }            this.$confirm("确定将选择数据删除?", {                confirmButtonText: "确定",                cancelButtonText: "取消",                type: "warning"            }).then(() => {                // 获取有id 的数据                const itemsWithId = this.handleSelectionData.filter(item => item.hasOwnProperty('id'));                let arrIds = itemsWithId.map(item => item.id) // 获取id 数据                // 把选中的删除掉                this.handleSelectionData.forEach((item) => {                    for (let index in this.tableData) {                        if (item.accBillNo == this.tableData[index].accBillNo) {                            this.tableData.splice(Number(index), 1)                        }                    }                })                // 有id 的处理                if (itemsWithId.length != 0) {                    finstlbillsitemsRemove(arrIds.join(',')).then(res => {                        this.$message.success('操作成功')                    })                }            })        },        // 下面表格多选        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 ? this.form.businessTypes.join(',') : '' // 业务类型            this.form.feeCnName = this.form.feeCnName ? this.form.feeCnName.join(',') : ''            this.form.accountDateFrom = this.form.accountDateFrom ? this.form.accountDateFrom.slice(0, 10) + ' 00:00:00' : null // 财务开始日期            this.form.accountDateTo = this.form.accountDateTo ? this.form.accountDateTo.slice(0, 10) + ' 00:00:00' : null // 财务开始日期            this.form.auditDateFrom = this.form.auditDateFrom ? this.form.auditDateFrom.slice(0, 10) + ' 00:00:00' : null            this.form.auditDateTo = this.form.auditDateTo ? this.form.auditDateTo.slice(0, 10) + ' 00:00:00' : null            this.form.businessDateEnd = this.form.businessDateEnd ? this.form.businessDateEnd.slice(0, 10) + ' 00:00:00' : null            this.form.businessDateStart = this.form.businessDateStart ? this.form.businessDateStart.slice(0, 10) + ' 00:00:00' : null            this.form.billDate = this.form.billDate ? this.form.billDate.slice(0, 10) + ' 00:00:00' : null            // 保留id            this.form.finStlBillsItemsList = this.handleSelectionData            this.pageLoading = true            finstlbillsConfirmSignFor(this.form).then(res => {                this.$message.success('操作成功');                this.finstlbillsDetailfun(res.data.data.id)            }).finally(() => {                this.pageLoading = false            })        },        // 撤销签收接口        finstlbillsRevokeSignForfun() {            this.form.billNoFormat = 'HYDZ'            this.form.businessTypeCode = 'HYDZ'            this.form.businessType = 'CHK' // 对账单            this.form.businessTypes = this.form.businessTypes ? this.form.businessTypes.join(',') : '' // 业务类型            this.form.feeCnName = this.form.feeCnName ? this.form.feeCnName.join(',') : ''            this.form.accountDateFrom = this.form.accountDateFrom ? this.form.accountDateFrom.slice(0, 10) + ' 00:00:00' : null // 财务开始日期            this.form.accountDateTo = this.form.accountDateTo ? this.form.accountDateTo.slice(0, 10) + ' 00:00:00' : null // 财务开始日期            this.form.auditDateFrom = this.form.auditDateFrom ? this.form.auditDateFrom.slice(0, 10) + ' 00:00:00' : null            this.form.auditDateTo = this.form.auditDateTo ? this.form.auditDateTo.slice(0, 10) + ' 00:00:00' : null            this.form.businessDateEnd = this.form.businessDateEnd ? this.form.businessDateEnd.slice(0, 10) + ' 00:00:00' : null            this.form.businessDateStart = this.form.businessDateStart ? this.form.businessDateStart.slice(0, 10) + ' 00:00:00' : null            this.form.billDate = this.form.billDate ? this.form.billDate.slice(0, 10) + ' 00:00:00' : null            this.form.finStlBillsItemsList = this.handleSelectionData            this.pageLoading = true            finstlbillsRevokeSignFor(this.form).then(res => {                this.$message.success('操作成功');                this.finstlbillsDetailfun(res.data.data.id)            }).finally(() => {                this.pageLoading = false            })        },        // 获取 全部是否 接口        allyesnoWorkDictsfun() {            // 全部/是/否            getWorkDicts('all_yes_no').then(res => {                this.allyesnoData = res.data.data;            })            // 对账字典            getWorkDicts('los_check_status').then(res => {                this.isCheckedData = res.data.data;            })            // 销账(F)            getWorkDicts('write_off_los').then(res => {                this.isClearedData = [{ dictValue: '全部', dictKey: null }, ...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 corpTypeName = '国内直接客户,国内同行及代理,国外直接客户,国外同行及代理'            getBcorpslistByType(1, 10, { cnName, corpTypeName }).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            })        },        // 预览报表        handleReportPreview(url, data) {            console.log(url, 1670)            console.log(data, 1671)            Stimulsoft.Base.StiLicense.key = '6vJhGtLLLz2GNviWmUTrhSqnOItdDwjBylQzQcAOiHn0s4gy0Fr5YoUZ9V00Y0igCSFQzwEqYBh/N77k4f0fWXTHW5rqeBNLkaurJDenJ9o97TyqHs9HfvINK18Uwzsc/bG01Rq+x3H3Rf+g7AY92gvWmp7VA2Uxa30Q97f61siWz2dE5kdBVcCnSFzC6awE74JzDcJMj8OuxplqB1CYcpoPcOjKy1PiATlC3UsBaLEXsok1xxtRMQ283r282tkh8XQitsxtTczAJBxijuJNfziYhci2jResWXK51ygOOEbVAxmpflujkJ8oEVHkOA/CjX6bGx05pNZ6oSIu9H8deF94MyqIwcdeirCe60GbIQByQtLimfxbIZnO35X3fs/94av0ODfELqrQEpLrpU6FNeHttvlMc5UVrT4K+8lPbqR8Hq0PFWmFrbVIYSi7tAVFMMe2D1C59NWyLu3AkrD3No7YhLVh7LV0Tttr/8FrcZ8xirBPcMZCIGrRIesrHxOsZH2V8t/t0GXCnLLAWX+TNvdNXkB8cF2y9ZXf1enI064yE5dwMs2fQ0yOUG/xornE'            // Stimulsoft.Base.StiLicense.Key = '6vJhGtLLLz2GNviWmUTrhSqnOItdDwjBylQzQcAOiHkcgIvwL0jnpsDqRpWg5FI5kt2G7A0tYIcUygBh1sPs7plofUOqPB1a4HBIXJB621mau2oiAIj+ysU7gKUXfjn/D5BocmduNB+ZMiDGPxFrAp3PoD0nYNkkWh8r7gBZ1v/JZSXGE3bQDrCQCNSy6mgby+iFAMV8/PuZ1z77U+Xz3fkpbm6MYQXYp3cQooLGLUti7k1TFWrnawT0iEEDJ2iRcU9wLqn2g9UiWesEZtKwI/UmEI2T7nv5NbgV+CHguu6QU4WWzFpIgW+3LUnKCT/vCDY+ymzgycw9A9+HFSzARiPzgOaAuQYrFDpzhXV+ZeX31AxWlnzjDWqpfluygSNPtGul5gyNt2CEoJD1Yom0VN9fvRonYsMsimkFFx2AwyVpPcs+JfVBtpPbTcZscnzUdmiIvxv8Gcin6sNSibM6in/uUKFt3bVgW/XeMYa7MLGF53kvBSwi78poUDigA2n12SmghLR0AHxyEDIgZGOTbNI33GWu7ZsPBeUdGu55R8w='            Stimulsoft.Base.Localization.StiLocalization.addLocalizationFile('/reports/stimulsoft/Localization/zh-CHS.xml', true, 'zh-CHS')            Stimulsoft.Base.Localization.StiLocalization.setLocalizationFile('/reports/stimulsoft/Localization/zh-CHS.xml')            // 工具栏            var options = new Stimulsoft.Viewer.StiViewerOptions()            options.height = '100%'            options.appearance.scrollbarsMode = true // 滚动条模式            options.toolbar.showDesignButton = false // 显示设计按钮            options.toolbar.showAboutButton = false // 显示关于按钮            options.toolbar.showResourcesButton = false // 显示资源按钮            options.toolbar.showFullScreenButton = false // 显示全屏按钮            options.toolbar.showOpenButton = false // 显示打开按钮            options.appearance.showTooltips = false // 显示工具提示            options.appearance.showDialogsHelp = false // 显示对话框帮助            options.exports.showExportToDocument = false // 显示导出到文档            options.toolbar.showParametersButton = true // 显示参数按钮            options.appearance.bookmarksPrint = true // 书签打印            // options.toolbar.showPrintButton = false // 打印按钮是否显示   下面直接自定义控制打印弹窗是否开启            // printDestination 参数:用于指定报表打印的目标位置,可以是打印机、PDF 文件或者直接打印到浏览器等。            // Stimulsoft.Viewer.StiPrintDestination.Direct:表示直接打印到打印机,即将报表内容直接发送至打印机进行打印。            // 通过设置不同的 printDestination 参数,你可以控制报表打印的行为,例如是直接打印到打印机,还是生成 PDF 文件,或者直接在浏览器中预览打印内容等。            options.toolbar.printDestination = Stimulsoft.Viewer.StiPrintDestination.Direct            // htmlRenderMode html渲染模式            options.appearance.htmlRenderMode = Stimulsoft.Report.Export.StiHtmlExportMode.Table            // 是创建一个 Stimulsoft 报表查看器的实例的代码            let viewer = new Stimulsoft.Viewer.StiViewer(options, 'StiViewer', false)            // 报表            console.log("创建一个报表实例");            console.log()            let report = new window.Stimulsoft.Report.StiReport();            // 加载文件            console.log("从url加载报表");            // report.loadFile("/reports/stimulsoft/demos/SimpleList.mrt");            report.load(url)            data.pageOne = 'Page : 1 of 1'            // 处理超长数据            if (data.hshipperDetails) {                var consignerIndex2 = data.hshipperDetails.indexOf('\n')                for (let i = 0; i < 4; i++) {                    consignerIndex2 = data.hshipperDetails.indexOf('\n', consignerIndex2 + 1);                }                if (consignerIndex2 != -1) {                    var hshipperDetails = data.hshipperDetails.substring(consignerIndex2 + 2, data.hshipperDetails.length)                    data.hshipperDetails = data.hshipperDetails.substring(0, consignerIndex2) + ' *'                    data.commodityDescr += '\n*' + hshipperDetails                }            }            if (data.hconsigneeDetails) {                var consigneeIndex2 = data.hconsigneeDetails.indexOf('\n')                for (let i = 0; i < 3; i++) {                    consigneeIndex2 = data.hconsigneeDetails.indexOf('\n', consigneeIndex2 + 1);                }                if (consigneeIndex2 != -1) {                    var hconsigneeDetails = data.hconsigneeDetails.substring(consigneeIndex2 + 2, data.hconsigneeDetails.length)                    data.hconsigneeDetails = data.hconsigneeDetails.substring(0, consigneeIndex2) + ' **'                    data.commodityDescr += '\n**' + hconsigneeDetails                }            }            if (data.hnotifyDetails) {                var notifierIndex2 = data.hnotifyDetails.indexOf('\n')                for (let i = 0; i < 3; i++) {                    notifierIndex2 = data.hnotifyDetails.indexOf('\n', notifierIndex2 + 1);                }                if (notifierIndex2 != -1) {                    var hnotifyDetails = data.hnotifyDetails.substring(notifierIndex2 + 2, data.hnotifyDetails.length)                    data.hnotifyDetails = data.hnotifyDetails.substring(0, notifierIndex2) + ' ***'                    data.commodityDescr += '\n***' + hnotifyDetails                }            }            // 处理箱号            if (this.isPrintTheBoxNumber) {                data.commodityDescr += '\n.\n.\n'            }            // PLACE & DATE OF ISSUE            data.placeAndDateOfIssue = ''            if (data.issueAt) {                data.placeAndDateOfIssue += data.issueAt            }            if (data.issueDate) {                let date = new Date(data.issueDate.replace(/-/g, '/'));                let yyyy = date.getFullYear();                let mmmm = date.toDateString().split(" ")[1]                let dd = date.getDate()                data.placeAndDateOfIssue += ', ' + dd + '-' + mmmm + '-' + yyyy            }            // Total number of containers or packages received by the Carriers            if (data.preContainersList) {                let boxMap = new Map();                for (let boxQuantity of data.preContainersList) {                    if (boxMap.get(boxQuantity.cntrTypeCode)) {                        let v = boxMap.get(boxQuantity.cntrTypeCode)                        boxMap.set(boxQuantity.cntrTypeCode, v + boxQuantity.quantity)                    } else {                        boxMap.set(boxQuantity.cntrTypeCode, boxQuantity.quantity)                    }                }                let boxs = ''                boxMap.forEach(function (value, key, map) {                    boxs += value + 'x' + key + ', '                })                boxs = boxs.substring(0, boxs.length - 2)                data.boxQuantity = boxs + ' CONTAINER(S) ONLY'            }            // Number of original B/Ls            if (data.numberOfObl) {                data.numberOfObl += ' (' + data.numberOfOblDigit + ')'            }            if (data.commodityDescr) {                var descriptionIndex2 = data.commodityDescr.indexOf('\n')                for (let i = 0; i < 19; i++) {                    descriptionIndex2 = data.commodityDescr.indexOf('\n', descriptionIndex2 + 1);                }                if (descriptionIndex2 != -1) {                    data.pageOne = 'Page : 1 of 2'                    data.pageTwo = 'Page : 2 of 2'                    var extraLongText = data.commodityDescr.substring(descriptionIndex2 + 2, data.commodityDescr.length)                    data.commodityDescr = data.commodityDescr.substring(0, descriptionIndex2)                    data.extraLongTips = '** TO BE CONTINUED ON ATTACHED LIST **'                    data.extraLongText = extraLongText                }            }            // console.log(data.hshipperDetails, 'hshipperDetails2')            // 创建一个 Stimulsoft 数据集(DataSet)的实例的代码            var dataSet = new Stimulsoft.System.Data.DataSet(                'reportData'            )            dataSet.readJson(data) // 用于将 JSON 格式的数据加载到数据集中。data 是包含报表数据的 JSON 对象。            // 这是一个方法调用,用于在报表中注册数据源。参数 'reportData' 是数据源的名称,            // 第二个 'reportData' 是数据源的别名,dataSet 则是之前创建的数据集实例            report.regData('reportData', 'reportData', dataSet)            // 从模版和数据加载报表            // loadReport(report, '', {})            // 这是将报表对象指定给报表查看器的属性。viewer 是报表查看器的实例,而 report 是之前创建的报表对象。            viewer.report = report;            this.$refs.reportContainer.showContainer(                () => {                    setTimeout(() => {                        viewer.renderHtml('reportContainer')                        this.createViewerButtons(viewer)                    }, 50)                },                () => {                },            )            console.log("加载成功完成!");        },        createViewerButtons(viewer) {            viewer.jsObject.collections.images['myClose.png'] =                'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAA0ElEQVQ4ja3TO05CQRQG4A8iOwAbtYWETndAaecK7NwCKmETtJZsSBNLobEz8ZFIJQ0UnOGSm3DnYviTybzO/895DQXGWGCVGQuMEqkRcwcfuMOLalziCaf4TIe9UG9nyMJmFRzNGoRK1BU4xxx9G7cfwostciGk+x8MqgySwDXe4tU53hVV+MNtTmAoX84JGv9NYgrHyR6DV8wUSW7hItZLm36ZVoVQxsFJLOMsPOrH/h7dQwR2cdxOTEn8DtUbPGc4V2H7Vb4Yqfedf/GYSGt8VUmxgyfuBAAAAABJRU5ErkJggg=='            const closeBtn = viewer.jsObject.SmallButton(                'closeBtn',                '关闭',                'myClose.png'            )            // 增加打印弹窗配置            const printBtn = viewer.jsObject.SmallButton(                'printBtn',                '打印报表',                'myClose.png'            )            // console.log(viewer.jsObject.print(),'1013')            // 获取 关闭按钮的dom元素位置            const toolbarTable = viewer.jsObject.controls.toolbar.firstChild.firstChild            const buttonsTable = toolbarTable.rows[0].lastChild.lastChild            const userButtonCell = buttonsTable.rows[0].insertCell(0)            // 获取打印按钮的位置            const buttonsTablePrint = toolbarTable.rows[0].childNodes[0].lastChild // 打印按钮            const userButtonPrint = buttonsTablePrint.rows[0].childNodes[0] // 打印按钮dom位置            userButtonPrint.addEventListener("click", (event) => {                console.log("打印点击");                // event.preventDefault()            });            userButtonPrint.addEventListener("mouseover", (event) => {                console.log("移入打印按钮");                console.log(event, 1035)            });            userButtonCell.className = 'stiJsViewerClearAllStyles'            userButtonCell.appendChild(closeBtn) // 添加关闭节点            // userButtonPrint.prepend(printBtn) // 在 printBtn 节点里最前面增加一个子级节点            let that = this            // 关闭按钮的监听点击            closeBtn.action = function () {                console.log(that.$refs.ReportContainer, '1022')                if (that.$refs.reportContainer)                    that.$refs.reportContainer.hideContainer()            }            // // // 打印按钮监听            // printBtn.action = (e)=>{            //     console.log('打印')            //     window.print()            // }        },    }}</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>
 |