|
|
@@ -0,0 +1,1072 @@
|
|
|
+<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" style="margin-right: 8px"
|
|
|
+ :loading="saveLoading" :disabled="!form.id" @click="previewreportfun" >预 览
|
|
|
+ </el-button>
|
|
|
+ <el-button size="small" style="margin-right: 8px"
|
|
|
+ :loading="saveLoading" :disabled="!form.id" @click="DesignreportDialog = true" >报表设计
|
|
|
+ </el-button>
|
|
|
+ <el-button size="small" type="warning" plain style="margin-right: 8px" :disabled="!form.id" v-if="form.isCleared == 1"
|
|
|
+ :loading="saveLoading" @click="finstlbillsRevokeSettlementfun">撤销结算
|
|
|
+ </el-button>
|
|
|
+ <el-button size="small" type="success" plain style="margin-right: 8px" :disabled="!form.id" v-else
|
|
|
+ :loading="saveLoading" @click="finstlbillsConfirmSettlementfun">确认结算
|
|
|
+ </el-button>
|
|
|
+ <el-button size="small" type="primary" style="margin-right: 8px" :disabled="form.isCleared == 1" v-if="editSave"
|
|
|
+ :loading="saveLoading" @click="editHandle">编 辑
|
|
|
+ </el-button>
|
|
|
+ <el-button size="small" type="primary" style="margin-right: 8px" :disabled="form.isCleared == 1" 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" :rules="rules" class="demo-ruleForm">
|
|
|
+ <el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="5">
|
|
|
+ <el-form-item label="付费对象" prop="corpCnName">
|
|
|
+ <search-query :datalist="corpData"
|
|
|
+ :selectValue="form.corpCnName"
|
|
|
+ :clearable="true"
|
|
|
+ :disabled="editSave || tableData.length != 0"
|
|
|
+ :filterable="true"
|
|
|
+ :remote="true"
|
|
|
+ :buttonIf="false"
|
|
|
+ :forParameter="{ key:'id', label:'cnName', value:'cnName'}"
|
|
|
+ @corpChange="corpChange($event,'corpCnName')"
|
|
|
+ @remoteMethod="corpBcorpsListfun"
|
|
|
+ @corpFocus="corpBcorpsListfun" >
|
|
|
+ </search-query>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="10">
|
|
|
+ <el-form-item label="开户帐号" prop="bankId">
|
|
|
+ <search-query :datalist="bankData"
|
|
|
+ :selectValue="form.bankId"
|
|
|
+ :clearable="true"
|
|
|
+ :disabled="editSave || !form.corpId"
|
|
|
+ :filterable="true"
|
|
|
+ :buttonIf="false"
|
|
|
+ :forParameter="{ key:'id', label:'accountBankNo', value:'id'}"
|
|
|
+ @corpChange="corpChange($event,'bankId')"
|
|
|
+ @corpFocus="bcorpsbankListfun" >
|
|
|
+ </search-query>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="9">
|
|
|
+ <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="5">
|
|
|
+ <el-form-item label="预计收回" prop="estimatedTime">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="form.estimatedTime"
|
|
|
+ type="date"
|
|
|
+ style="width: 100%;"
|
|
|
+ size="small"
|
|
|
+ :disabled="editSave"
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ placeholder="选择预计收回">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="5">
|
|
|
+ <el-form-item label="收款情况" prop="collectionSituation">
|
|
|
+ <el-input style="width: 100%;" v-model="form.collectionSituation"
|
|
|
+ size="small" autocomplete="off"
|
|
|
+ :disabled="editSave"
|
|
|
+ clearable placeholder="请输入CHK NO" >
|
|
|
+ </el-input>
|
|
|
+ </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="queryAmount">
|
|
|
+ <search-query :datalist="dcData"
|
|
|
+ :selectValue="form.dc"
|
|
|
+ :filterable="true"
|
|
|
+ :clearable="true"
|
|
|
+ :remote="true"
|
|
|
+ :buttonIf="false"
|
|
|
+ :disabled="editSave"
|
|
|
+ placeholder="请选择方向"
|
|
|
+ @corpChange="corpChange($event,'dc')">
|
|
|
+ </search-query>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="4">
|
|
|
+ <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="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="checkNo">
|
|
|
+ <el-input style="width: 100%;" v-model="form.checkNo"
|
|
|
+ size="small" autocomplete="off"
|
|
|
+ :disabled="editSave"
|
|
|
+ clearable placeholder="请输入CHK NO" >
|
|
|
+ </el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <expand :showBtn="true" :showSpan="true">
|
|
|
+ <el-row>
|
|
|
+ <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="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-row>
|
|
|
+ </expand>
|
|
|
+
|
|
|
+ <el-row>
|
|
|
+ <el-col span="24">
|
|
|
+ <div style="text-align: right">
|
|
|
+ <el-button size="small" type="" style="margin-right: 8px" :disabled="settlementdistar"
|
|
|
+ :loading="saveLoading" @click="ResetFilter">重置条件
|
|
|
+ </el-button>
|
|
|
+ <el-checkbox v-model="appendType" :disabled="settlementdistar" false-label="检索" true-label="追加">追加</el-checkbox>
|
|
|
+ <el-button size="small" type="primary" style="margin-right: 8px" :disabled="settlementdistar"
|
|
|
+ :loading="saveLoading" @click="finstlbillslistAccBillV1fun(appendType)" >检 索
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-row>
|
|
|
+ </el-form>
|
|
|
+ </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-right: 8px" :disabled="editSave"
|
|
|
+ :loading="saveLoading" @click="batchDeletefun" >批量删除
|
|
|
+ </el-button>
|
|
|
+ </div>
|
|
|
+ <finstlbillsitems :tableData="tableData"
|
|
|
+ :editSave="editSave"
|
|
|
+ :settlementdistar="settlementdistar"
|
|
|
+ :handleSelectionData="handleSelectionData"
|
|
|
+ @handleSelectionChange="handleSelectionChange"
|
|
|
+ @deletefun="finstlbillsitemsRemovefun">
|
|
|
+ </finstlbillsitems>
|
|
|
+ </el-card>
|
|
|
+ </div>
|
|
|
+ <el-card style="margin-top: 10px">
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="3">
|
|
|
+ <div class="bottomFlex" style="color: #6BBCD1">
|
|
|
+ <span>应付:</span>
|
|
|
+ <span class="weightnum">¥{{form.amountCr || 0}}</span>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="3">
|
|
|
+ <div class="bottomFlex" style="color: #6BBCD1">
|
|
|
+ <span>应付:</span>
|
|
|
+ <span class="weightnum">${{form.amountCrUsd || 0}}</span>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="3">
|
|
|
+ <div class="bottomFlex" style="color: #6BBCD1">
|
|
|
+ <span>应付合计:</span>
|
|
|
+ <span class="weightnum">¥{{form.amountCrLoc || 0}}</span>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="3">
|
|
|
+ <div class="bottomFlex" style="color: #81B337">
|
|
|
+ <span>应收:</span>
|
|
|
+ <span class="weightnum">¥{{form.amountDr || 0}}</span>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="3">
|
|
|
+ <div class="bottomFlex" style="color: #81B337">
|
|
|
+ <span>应收:</span>
|
|
|
+ <span class="weightnum">${{form.amountDrUsd || 0}}</span>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="3">
|
|
|
+ <div class="bottomFlex" style="color: #81B337">
|
|
|
+ <span>应收合计:</span>
|
|
|
+ <span class="weightnum">¥{{form.amountDrLoc || 0}}</span>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-card>
|
|
|
+
|
|
|
+
|
|
|
+ <!--设计报表弹窗-->
|
|
|
+ <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" :disabled="editSave" businessValue="FFSQ"></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 {getRateList} from "@/api/iosBasicData/rateManagement";
|
|
|
+import {bcorpsbankList, getBcorpslistByType} from "@/api/iosBasicData/bcorps";
|
|
|
+import {
|
|
|
+ finstlbillsDetail, finstlbillsitemsRemove,
|
|
|
+ finstlbillslistAccBillV1,
|
|
|
+ finstlbillsSubmit, finstlbillsConfirmSettlement,finstlbillsRevokeSettlement
|
|
|
+
|
|
|
+} from '@/api/iosBasicData/finstlbills'
|
|
|
+import expand from "@/components/basic-container/expand.vue";
|
|
|
+import finstlbillsitems from "@/views/iosBasicData/PaymentApplication/assembly/finstlbillsitems.vue";
|
|
|
+import reports from "@/views/iosBasicData/SeafreightExportF/bills/assembly/reports.vue";
|
|
|
+import reportformsList from "@/views/iosBasicData/SeafreightExportF/bills/assembly/reportformsList.vue";
|
|
|
+import {reportsGetReportData} from "@/api/iosBasicData/reports";
|
|
|
+import reportContainer from "@/views/iosBasicData/report-container/report-container.vue";
|
|
|
+import { generateFinStlBills} from "@/api/iosBasicData/fininvoices";
|
|
|
+
|
|
|
+export default {
|
|
|
+ components: {reportContainer, reportformsList, reports, SearchQuery,expand,finstlbillsitems},
|
|
|
+ props:{
|
|
|
+ // 编辑还是保存
|
|
|
+ editSave:{
|
|
|
+ type:Boolean,
|
|
|
+ default:true
|
|
|
+ },
|
|
|
+ },
|
|
|
+ data(){
|
|
|
+ return {
|
|
|
+ settlementdistar:false, // 结算挑进来的
|
|
|
+ DesignreportDialog:false, // 设计报表弹窗
|
|
|
+ selectPrintingDialog:false, // 预览报表
|
|
|
+ // 收/付数据
|
|
|
+ dcData: [{
|
|
|
+ label: '全部',
|
|
|
+ value: null
|
|
|
+ },{
|
|
|
+ label: '收',
|
|
|
+ value: 'D'
|
|
|
+ }, {
|
|
|
+ label: '付',
|
|
|
+ value: 'C'
|
|
|
+ }],
|
|
|
+ appendType:'检索', // 是否追加
|
|
|
+ tableData:[],
|
|
|
+ pageLoading:false, // 全屏加载动画
|
|
|
+ saveLoading:false, // 按钮动画
|
|
|
+ // 绑定的数据
|
|
|
+ form:{
|
|
|
+ dc:'C'
|
|
|
+ },
|
|
|
+ handleSelectionData:[], // 表格选择的数据
|
|
|
+ corpData:[], // 结算单位 数据
|
|
|
+ bankData:[], // 查询银行数据
|
|
|
+ curCodeData:[],// 币别
|
|
|
+ srcforParameter:{},
|
|
|
+ // 业务类型
|
|
|
+ businessTypesData:[
|
|
|
+ {
|
|
|
+ label:'海运出口',
|
|
|
+ value:'SE'
|
|
|
+ },{
|
|
|
+ label:'海运进口',
|
|
|
+ value:'SI'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ rules: {
|
|
|
+ corpCnName: [
|
|
|
+ {required: true, message: '请输入付费对象', trigger: 'blur'},
|
|
|
+ ],
|
|
|
+ bankId: [
|
|
|
+ {required: true, message: '请输入开户银行', trigger: 'blur'},
|
|
|
+ ],
|
|
|
+ remarks: [
|
|
|
+ {required: true, message: '请输入付费事由', trigger: 'blur'},
|
|
|
+ ],
|
|
|
+ estimatedTime: [
|
|
|
+ {required: true, message: '请输入预计收回', trigger: 'blur'},
|
|
|
+ ],
|
|
|
+ collectionSituation: [
|
|
|
+ {required: true, message: '请输入收款情况', trigger: 'blur'},
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ },
|
|
|
+ methods:{
|
|
|
+ // 打印
|
|
|
+ reportRadio(val){
|
|
|
+ console.log(val,505)
|
|
|
+ // 获取报表数据
|
|
|
+ reportsGetReportData({
|
|
|
+ billId:this.form.id,
|
|
|
+ reportCode:val.classifyCode,
|
|
|
+ groupCode:val.groupCode,
|
|
|
+ }).then(res=>{
|
|
|
+ this.handleReportPreview(val.url,res.data.data.data)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 报表预览
|
|
|
+ previewreportfun(){
|
|
|
+ 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:'FFSQ',
|
|
|
+ classifyCode:'付费申请',
|
|
|
+ groupCode:'付费申请'
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 批量删除
|
|
|
+ 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(index,1)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ // 有id 的处理
|
|
|
+ if(itemsWithId.length != 0) {
|
|
|
+ finstlbillsitemsRemove(arrIds.join(',')).then(res=>{
|
|
|
+ this.$message.success('操作成功')
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 删除
|
|
|
+ finstlbillsitemsRemovefun(id,index){
|
|
|
+ this.$confirm("确定将选择数据删除?", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning"
|
|
|
+ }).then(()=>{
|
|
|
+ if (id) {
|
|
|
+ finstlbillsitemsRemove(id).then(res=>{
|
|
|
+ this.$message.success('操作成功')
|
|
|
+ })
|
|
|
+ }
|
|
|
+ this.tableData.splice(index,1)
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 下拉回调
|
|
|
+ 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 == 'bankId') {
|
|
|
+ if (!value) {
|
|
|
+ this.$set(this.form,'bankId','')
|
|
|
+ this.$set(this.form,'bankAccountName','')
|
|
|
+ this.$set(this.form,'bankAccountBank','')
|
|
|
+ this.$set(this.form,'bankAccountNo','')
|
|
|
+ }
|
|
|
+ for(let item of this.bankData) {
|
|
|
+ if (item.id == value) {
|
|
|
+ this.$set(this.form,'bankId',item.id)
|
|
|
+ this.$set(this.form,'bankAccountName',item.accountName)
|
|
|
+ this.$set(this.form,'bankAccountBank',item.accountBank)
|
|
|
+ this.$set(this.form,'bankAccountNo',item.accountNo)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ this.$set(this.form,name,value)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 编辑
|
|
|
+ editHandle(){
|
|
|
+ this.editSave = false
|
|
|
+ },
|
|
|
+ // 保存
|
|
|
+ editCustomer(){
|
|
|
+ this.$refs.form.validate((valid) => {
|
|
|
+ if (!valid) 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.saveLoading = true // 打开按钮动画
|
|
|
+ if(this.form.estimatedTime) {
|
|
|
+ this.form.estimatedTime = this.form.estimatedTime + ' 00:00:00'
|
|
|
+ }
|
|
|
+ this.saveLoading = true // 加载动画
|
|
|
+ this.form.billNoFormat = 'STL'
|
|
|
+ this.form.businessTypeCode = 'STL'
|
|
|
+ this.form.businessType = 'STL' // 结算单
|
|
|
+ this.form.businessTypes = this.form.businessTypes?this.form.businessTypes.join(','):'' // 业务类型
|
|
|
+ this.form.finStlBillsItemsList = this.handleSelectionData.map((item,index)=>{
|
|
|
+ if (item.currentStlCurCode == 'CNY') {
|
|
|
+ item.currentStlAmount = item.currentStlAmountRMB
|
|
|
+ }else {
|
|
|
+ item.currentStlAmount = item.currentStlAmountUSD
|
|
|
+ }
|
|
|
+ if (!this.form.id) {
|
|
|
+ delete item.businessType
|
|
|
+ delete item.billDate
|
|
|
+ delete item.accountDc
|
|
|
+ }
|
|
|
+ return item
|
|
|
+ })
|
|
|
+ finstlbillsSubmit(this.form).then(res=>{
|
|
|
+ this.saveLoading = false
|
|
|
+ this.$message.success('操作成功');
|
|
|
+ this.saveLoading = false // 关闭按钮动画
|
|
|
+ this.finstlbillsDetailfun(res.data.data.id)
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 详情接口
|
|
|
+ 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=>{
|
|
|
+ item.stlTtlAmountNet = Number(item.stlTtlAmount) - (Number(item.stlTtlAmount) * (Number(item.taxRate) + Number(item.surchargeRate)))
|
|
|
+ item.currentStlAmountNet = Number(item.unsettledAmount) - (Number(item.unsettledAmount) * (Number(item.taxRate) + Number(item.surchargeRate)))
|
|
|
+ if(item.curCode == 'CNY') {
|
|
|
+ this.$set(item,'currentInvoiceAmountRMB',item.currentInvoiceAmount)
|
|
|
+ this.$set(item,'amountRMB',item.amount)
|
|
|
+ this.$set(item,'amountNetRMB',item.amountNet)
|
|
|
+ this.$set(item,'stlTtlAmountRMB',item.stlTtlAmount)
|
|
|
+ this.$set(item,'stlTtlAmountNetRMB',item.stlTtlAmountNet)
|
|
|
+
|
|
|
+ this.$set(item,'currentStlAmountNetRMB',item.currentStlAmountNet)
|
|
|
+ this.$set(item,'currentStlAmountRMB',item.currentStlAmount)
|
|
|
+ }else {
|
|
|
+ this.$set(item,'currentInvoiceAmountUSD',item.currentInvoiceAmount)
|
|
|
+ this.$set(item,'amountUSD',item.amount)
|
|
|
+ this.$set(item,'amountNetUSD',item.amountNet)
|
|
|
+ this.$set(item,'stlTtlAmountNetUSD',item.stlTtlAmountNet)
|
|
|
+ this.$set(item,'stlTtlAmountUSD',item.stlTtlAmount)
|
|
|
+
|
|
|
+ this.$set(item,'currentStlAmountNetUSD',item.currentStlAmountNet)
|
|
|
+ this.$set(item,'currentStlAmountUSD',item.currentStlAmount)
|
|
|
+ }
|
|
|
+
|
|
|
+ if (item.srcIdInvoices) {
|
|
|
+ this.settlementdistar = true
|
|
|
+ }
|
|
|
+
|
|
|
+ return item
|
|
|
+ })
|
|
|
+ this.pageLoading = false
|
|
|
+ this.bcorpsbankListfun() // 查银行数据
|
|
|
+ }).catch(err=>{
|
|
|
+ this.pageLoading = false
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 结算按钮
|
|
|
+ generateFinStlBillsfun(id,dc){
|
|
|
+ this.pageLoading = true
|
|
|
+ generateFinStlBills({
|
|
|
+ billId:id,
|
|
|
+ dc:dc
|
|
|
+ }).then(res=>{
|
|
|
+ this.form = res.data.data
|
|
|
+ this.form.businessTypes = this.form.businessTypes.split(',') // 业务类型转换成数组显示
|
|
|
+ this.tableData = this.form.finStlBillsItemsList.map(item=>{
|
|
|
+ item.stlTtlAmountNet = Number(item.stlTtlAmount) - (Number(item.stlTtlAmount) * (Number(item.taxRate) + Number(item.surchargeRate)))
|
|
|
+ item.currentStlAmountNet = Number(item.unsettledAmount) - (Number(item.unsettledAmount) * (Number(item.taxRate) + Number(item.surchargeRate)))
|
|
|
+ if(item.curCode == 'CNY') {
|
|
|
+ this.$set(item,'currentInvoiceAmountRMB',item.currentInvoiceAmount)
|
|
|
+ this.$set(item,'amountRMB',item.amount)
|
|
|
+ this.$set(item,'amountNetRMB',item.amountNet)
|
|
|
+ this.$set(item,'stlTtlAmountRMB',item.stlTtlAmount)
|
|
|
+ this.$set(item,'stlTtlAmountNetRMB',item.stlTtlAmountNet)
|
|
|
+
|
|
|
+ this.$set(item,'currentStlAmountNetRMB',item.currentStlAmountNet)
|
|
|
+ this.$set(item,'currentStlAmountRMB',item.currentStlAmount)
|
|
|
+ }else {
|
|
|
+ this.$set(item,'currentInvoiceAmountUSD',item.currentInvoiceAmount)
|
|
|
+ this.$set(item,'amountUSD',item.amount)
|
|
|
+ this.$set(item,'amountNetUSD',item.amountNet)
|
|
|
+ this.$set(item,'stlTtlAmountNetUSD',item.stlTtlAmountNet)
|
|
|
+ this.$set(item,'stlTtlAmountUSD',item.stlTtlAmount)
|
|
|
+
|
|
|
+ this.$set(item,'currentStlAmountNetUSD',item.currentStlAmountNet)
|
|
|
+ this.$set(item,'currentStlAmountUSD',item.currentStlAmount)
|
|
|
+ }
|
|
|
+ if (item.srcIdInvoices) {
|
|
|
+ this.settlementdistar = true
|
|
|
+ }
|
|
|
+ return item
|
|
|
+ })
|
|
|
+ this.pageLoading = false
|
|
|
+ this.bcorpsbankListfun() // 查银行数据
|
|
|
+ }).catch(err=>{
|
|
|
+ this.pageLoading = false
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 重置条件
|
|
|
+ ResetFilter(){
|
|
|
+ this.form = {}
|
|
|
+ },
|
|
|
+ // 检索接口
|
|
|
+ finstlbillslistAccBillV1fun(type){
|
|
|
+ // 对账单位
|
|
|
+ if (!this.form.corpId) {
|
|
|
+ this.$message.warning('请选择对账单位');
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let obj = {}
|
|
|
+ obj.type = '2'
|
|
|
+ obj.corpCnName = this.form.corpId // 结算单位
|
|
|
+ obj.curCode = this.form.curCode // 币别
|
|
|
+ obj.dc = this.form.dc // 收付 D=收 C=付
|
|
|
+ obj.accBillNo = this.form.accountNo // 账单编号 ACCT NO
|
|
|
+ obj.billNo = this.form.businessNo // 单据编号 JOB NO
|
|
|
+ obj.checkBillNo = this.form.checkNo // CHK NO
|
|
|
+ obj.mblno = this.form.mblno // MB/L NO
|
|
|
+ obj.hblno = this.form.hblno // HB/L NO
|
|
|
+ obj.queryAmount = this.form.queryAmount // 查询金额
|
|
|
+ obj.businessType = this.form.businessTypes?this.form.businessTypes.join(','):'' // 业务类型
|
|
|
+ obj.vesselCnName = this.form.vesselCnName // 中文船名
|
|
|
+ obj.receivableAdvance = this.form.receivableAdvance // 预收帐款
|
|
|
+ obj.voyageNo = this.form.voyageNo // 航次
|
|
|
+ obj.signforDateList = this.form.signforDateList // 签收日期
|
|
|
+ obj.auditStatus = '0'
|
|
|
+ // 财务期间
|
|
|
+ if (this.form.accountDate) {
|
|
|
+ obj.billDateList = this.form.accountDate
|
|
|
+ }
|
|
|
+ finstlbillslistAccBillV1(obj).then(res=>{
|
|
|
+ let arr = res.data.data.map((item,index)=>{
|
|
|
+ item.accBillId = item.id
|
|
|
+ delete item.id
|
|
|
+ // 账单编号
|
|
|
+ item.accBillNo = item.billNo
|
|
|
+ item.currentStlCurCode = item.curCode // 币别
|
|
|
+ item.lineNo = Number(index) + 1
|
|
|
+ item.pType = item.businessType
|
|
|
+ item.billNo = item.businessBillDivideNo?item.businessBillDivideNo:item.businessBillNo
|
|
|
+ item.accDate = item.billDate
|
|
|
+ item.dc = item.accountDc // 收付
|
|
|
+ if(item.curCode == 'CNY') {
|
|
|
+ // 发票
|
|
|
+ this.$set(item,'currentInvoiceAmountRMB',item.currentInvoiceAmount)
|
|
|
+ // 应结算金额
|
|
|
+ this.$set(item,'amountRMB',item.amount)
|
|
|
+ // 已结算金额
|
|
|
+ this.$set(item,'stlTtlAmountRMB',item.stlTtlAmount)
|
|
|
+ // 本次金额
|
|
|
+ this.$set(item,'currentStlAmountRMB',(Number(item.amount) - Number(item.stlTtlAmount) - Number(item.appliedAmount)).toFixed(2))
|
|
|
+ }else {
|
|
|
+ // 发票
|
|
|
+ this.$set(item,'currentInvoiceAmountUSD',item.currentInvoiceAmount)
|
|
|
+ // 应结算金额
|
|
|
+ this.$set(item,'amountUSD',item.amount)
|
|
|
+ // 已结算金额
|
|
|
+ this.$set(item,'stlTtlAmountUSD',item.stlTtlAmount)
|
|
|
+ // 本次金额
|
|
|
+ this.$set(item,'currentStlAmountUSD',(Number(item.amount) - Number(item.stlTtlAmount) - Number(item.appliedAmount)).toFixed(2))
|
|
|
+ }
|
|
|
+ return item
|
|
|
+ })
|
|
|
+
|
|
|
+ if (type == '追加') {
|
|
|
+ let a = [...this.tableData,...arr,]
|
|
|
+ this.tableData = a.filter((obj, index) => {
|
|
|
+ return a.findIndex((elem) => {
|
|
|
+ return elem.accBillNo === obj.accBillNo
|
|
|
+ }) === index;
|
|
|
+ });
|
|
|
+ }else {
|
|
|
+ // 获取有id 的数据
|
|
|
+ const itemsWithId = this.tableData.filter(item => item.hasOwnProperty('id'));
|
|
|
+ let arrIds = itemsWithId.map(item=>item.id) // 获取id 数据
|
|
|
+ // 有id 的处理
|
|
|
+ if(itemsWithId.length != 0) {
|
|
|
+ finstlbillsitemsRemove(arrIds.join(',')).then(res=>{
|
|
|
+ this.$message.success('操作成功')
|
|
|
+ })
|
|
|
+ }
|
|
|
+ this.tableData = arr
|
|
|
+ }
|
|
|
+
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 结算确认
|
|
|
+ finstlbillsConfirmSettlementfun(){
|
|
|
+ this.$confirm("确定进行对账操作?", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning"
|
|
|
+ }).then(()=>{
|
|
|
+ this.pageLoading = true
|
|
|
+ this.form.businessTypes = this.form.businessTypes.join(',') // 业务类型
|
|
|
+ finstlbillsConfirmSettlement(this.form).then(res=>{
|
|
|
+ this.pageLoading = false
|
|
|
+ this.$message.success('操作成功');
|
|
|
+ this.finstlbillsDetailfun(res.data.data.id)
|
|
|
+ }).catch(err=>{
|
|
|
+ this.pageLoading = false
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 结算撤销
|
|
|
+ finstlbillsRevokeSettlementfun(){
|
|
|
+ this.$confirm("确定进行撤销对账操作?", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning"
|
|
|
+ }).then(()=>{
|
|
|
+ this.pageLoading = true
|
|
|
+ this.form.businessTypes = this.form.businessTypes.join(',') // 业务类型
|
|
|
+ finstlbillsRevokeSettlement(this.form).then(res=>{
|
|
|
+ this.pageLoading = false
|
|
|
+ this.$message.success('操作成功');
|
|
|
+ this.finstlbillsDetailfun(res.data.data.id)
|
|
|
+ })
|
|
|
+ }).catch(err=>{
|
|
|
+ this.pageLoading = false
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 确认选定行
|
|
|
+ SelectedRows(){
|
|
|
+ this.editCustomer()
|
|
|
+ },
|
|
|
+ // 下面表格多选
|
|
|
+ handleSelectionChange(arr){
|
|
|
+ this.handleSelectionData = arr
|
|
|
+ },
|
|
|
+ //返回列表
|
|
|
+ backToList() {
|
|
|
+ this.$emit('goBack')
|
|
|
+ },
|
|
|
+ // 请求的接口
|
|
|
+ // 获取币别数据
|
|
|
+ getRateListfun(cnName){
|
|
|
+ getRateList({current:1,size:10,cnName}).then(res=>{
|
|
|
+ this.curCodeData = res.data.data.records
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 获取结算单位数据
|
|
|
+ corpBcorpsListfun(cnName){
|
|
|
+ getBcorpslistByType(1,10,{cnName}).then(res=>{
|
|
|
+ this.corpData = res.data.data.records
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 获取银行数据
|
|
|
+ bcorpsbankListfun(){
|
|
|
+ bcorpsbankList(1,50,{pid:this.form.corpId}).then(res=>{
|
|
|
+ this.bankData = res.data.data.records.map(item=>{
|
|
|
+ item.accountBankNo = item.accountBank + ' - ' + item.accountNo
|
|
|
+ return item
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 预览报表
|
|
|
+ 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: 18px;
|
|
|
+ font-weight: 500;
|
|
|
+}
|
|
|
+/deep/.el-dialog .el-dialog__body {
|
|
|
+ padding: 0px 20px;
|
|
|
+}
|
|
|
+</style>
|