Przeglądaj źródła

货代bug 2023-12-20

caojunjie 1 rok temu
rodzic
commit
b0499b298b

+ 8 - 0
src/api/iosBasicData/feecenter.js

@@ -63,3 +63,11 @@ export const feecenterSubmitList = (row) => {
     data: row
   })
 }
+// 打印弹窗费用列表接口
+export const getFeeCenterCorpIds = (params) => {
+  return request({
+    url: '/api/blade-los/feecenter/getFeeCenterCorpIds',
+    method: 'get',
+    params:params
+  })
+}

+ 0 - 3
src/components/iosbasic-data/searchquery.vue

@@ -21,11 +21,8 @@
                 </el-select>
             </div>
             <div v-if="buttonIf" style="display: flex;align-items: center">
-                <!--<el-button  :disabled="disabled" icon="el-icon-search" size="mini" @click="corpVisible = true"></el-button>-->
                 <div class="bottonBox" v-if="tableIf" :class="disabled?'disabledBox':''" @click="disabled?'':corpVisible = true"><i class="el-icon-search"></i></div>
                 <el-tooltip effect="dark" content="获取最新资料" placement="top-start">
-                    <!--<el-button :disabled="true" icon="el-icon-refresh" size="mini"-->
-                    <!--           style="margin-left:0px;"></el-button>-->
                     <div class="bottonBox" :class="disabled?'disabledBox':''" @click="refreshData"><i class="el-icon-refresh"></i></div>
                 </el-tooltip>
                 <el-tooltip v-if="addIf" effect="dark" content="新建数据" placement="top-start">

+ 4 - 0
src/enums/column-name.js

@@ -1413,6 +1413,10 @@ const columnName = [{
     name: '货运代理-海运出口-报表纯列表'
   },
   {
+    code: 312.3,
+    name: '货运代理-海运出口-报表管理-业务报表'
+  },
+  {
     code: 313,
     name: '货运代理-账单管理-账单中心'
   },

+ 4 - 1
src/page/index/tags.vue

@@ -326,7 +326,10 @@ export default {
           this.$store.commit("DOMIO_OUT_DETAIL");
         }
         if(tag.label == "调拨(L)"){
-              this.$store.commit("DOMIO_OUT_ALLOCATW");
+           this.$store.commit("DOMIO_OUT_ALLOCATW");
+        }
+        if(tag.label == "往来单位(F)"){
+            this.$store.commit("DOMIO_OUT_CUL");
         }
         if (tag.label == "代理订单(N)") {
           this.$store.commit("DOMXS_OUT_DETAIL");

+ 1 - 0
src/store/getters.js

@@ -44,6 +44,7 @@ const getters = {
   inboundAndOutbound:state => state.ifdetail.inboundAndOutbound,
   Inventory:state => state.ifdetail.Inventory, // 盘点
   Allocateandtransfer:state => state.ifdetail.Allocateandtransfer, // 调拨L
+  CorrespondenceUnitslos:state => state.ifdetail.CorrespondenceUnitslos, // 海运出口-往来单位
   domStockDetail: state => state.ifdetail.domStockDetail,
   domPurStatus: state => state.ifdetail.domPurStatus,
   purchaseStatus: state => state.ifdetail.purchaseStatus,

+ 12 - 1
src/store/modules/ifdetail.js

@@ -43,6 +43,7 @@ const ifdetail = {
     xiaoshozhengce:false,
     approvalDetails:false, // 海运出口 审批详情
     Allocateandtransfer:false, // 调拨L
+    CorrespondenceUnitslos:false, // 海运出口 往来单位
   },
   actions: {},
   mutations: {
@@ -273,6 +274,14 @@ const ifdetail = {
     DOMIO_OUT_ALLOCATW(state) {
       state.Allocateandtransfer = false;
     },
+    // 打开海运出口-往来单位
+    DOMIO_IN_CUL(state) {
+      state.CorrespondenceUnitslos = true;
+    },
+    // 关闭海运出口-往来单位
+    DOMIO_OUT_CUL(state) {
+      state.CorrespondenceUnitslos = false;
+    },
     DOMKC_IN_DETAIL(state) {
       state.domStockDetail = true;
     },
@@ -436,7 +445,6 @@ const ifdetail = {
       if (tag.label == '出库工单(L)') {
         state.inboundAndOutbound = true
       }
-      console.log(tag.label);
       if (tag.label == '采购入库(L)') {
         state.inboundAndOutbound = true
       }
@@ -485,6 +493,9 @@ const ifdetail = {
       if (tag.label == '审批详情(F)') {
         state.approvalDetails = true
       }
+      if (tag.label == '往来单位(F)') {
+        state.CorrespondenceUnitslos = true
+      }
     }
   }
 

+ 1 - 3
src/views/billM/billingCenter/index.vue

@@ -680,11 +680,9 @@
         this.query = {};
         this.onLoad(this.page);
       },
+        // 搜索点击回调
       searchChange(params, done) {
-          console.log(params,651)
-          return
         this.query = params;
-        // if (params.accountDate) {}
         this.page.currentPage = 1;
         this.onLoad(this.page, params);
         done();

+ 2 - 2
src/views/iosBasicData/SeafreightExportF/bills/assembly/DistributionBox/PackingBusiness.vue

@@ -708,13 +708,13 @@
                     }
                 }
                 for (let item of this.packingUnitData) {
-                    if (item.cnName == value) {
+                    if (item.cnName == row.cnName) {
                         this.$set(row,'packingUnitId',item.id)
                         this.$set(row,'packingUnit',item.cnName)
                     }
                 }
                 for (let item of this.dgPackingUnitData) {
-                    if (item.cnName == value) {
+                    if (item.cnName == row.cnName) {
                         this.$set(row,'dgPackingUnitId',item.id)
                         this.$set(row,'dgPackingUnit',item.cnName)
                     }

+ 19 - 15
src/views/iosBasicData/SeafreightExportF/bills/assembly/DistributionBox/containers.vue

@@ -53,18 +53,18 @@
               </template>
               <template slot-scope="scope" slot="cntrNo">
                   <el-input v-if="scope.row.edit" v-model="scope.row.cntrNo" maxlength='11'
-                            size="small" clearable placeholder="请输入箱号" @input="cntrNoInput(scope.row)"></el-input>
+                            size="small" clearable placeholder="请输入箱号" @input="cntrNoInput(scope.row,'cntrNo')"></el-input>
                   <span v-else>{{scope.row.cntrNo}}</span>
               </template>
               <template slot-scope="scope" slot="sealNo">
-                  <el-input v-if="scope.row.edit" v-model="scope.row.sealNo"
-                            size="small" clearable placeholder="请输入封号"></el-input>
+                  <el-input v-if="scope.row.edit" v-model="scope.row.sealNo" maxlength='11'
+                            size="small" clearable placeholder="请输入封号" @input="cntrNoInput(scope.row,'sealNo')"></el-input>
                   <span v-else>{{scope.row.sealNo}}</span>
               </template>
               <template slot-scope="scope" slot="quantity">
                   <el-input v-if="scope.row.edit" v-model="scope.row.quantity"
                             size="small" clearable placeholder="请输入件数"></el-input>
-                  <span v-else>{{Number(scope.row.quantity).toFixed(2)}}</span>
+                  <span v-else>{{Number(scope.row.quantity).toFixed(0)}}</span>
               </template>
               <template slot-scope="scope" slot="grossWeight">
                   <el-input v-if="scope.row.edit" v-model="scope.row.grossWeight"
@@ -193,26 +193,30 @@ import {getToken} from "@/util/auth";
           viewBtn: true,
           selection: true,
           dialogClickModal: false,
+          refreshBtn:false,
+          columnBtn:false,
           column: [
               {
                   label: "箱型",
                   prop: "cntrTypeCode",
-                  width: "140",
+                  width: "100",
               },
             {
               label: "箱号",
               prop: "cntrNo",
-              width: "200",
+              width: "140",
               overHidden:true,
             },
             {
               label: "封号",
               prop: "sealNo",
+              width: "140",
+              overHidden:true,
             },
-            {
-              label: "票数",
-              prop: "ticketNumber"
-            },
+            // {
+            //   label: "票数",
+            //   prop: "ticketNumber"
+            // },
             {
               label: "件数",
               prop: "quantity",
@@ -221,12 +225,12 @@ import {getToken} from "@/util/auth";
             {
               label: "毛重(KGM)",
               prop: "grossWeight",
-              width: "100",
+              width: "120",
             },
             {
               label: "净重(KGM)",
               prop: "netWeight",
-              width: "100",
+              width: "120",
             },
             {
               label: "尺码/体积(CBM)",
@@ -277,9 +281,9 @@ import {getToken} from "@/util/auth";
       created() {
       },
       methods: {
-          // 箱号输入自动大写
-          cntrNoInput(row){
-              this.$set(row,'cntrNo',row.cntrNo.toLocaleUpperCase().replace(/[\W]/g,''))
+          // 输入自动大写
+          cntrNoInput(row,name){
+              this.$set(row,name,row[name].toLocaleUpperCase().replace(/[\W]/g,''))
           },
           uploadBefore(file, done, loading) {
               done();

+ 11 - 44
src/views/iosBasicData/SeafreightExportF/bills/assembly/DocumentCenter.vue

@@ -19,7 +19,7 @@
                 <basic-container>
                     <avue-crud :option="documentOption" :table-loading="loading" :data="documentData" :page.sync="documentPage" :search.sync="documentSearch"
                                id="out-table" :header-cell-class-name="headerClassName"
-                               :before-open="beforeOpen" v-model="form" ref="documentCrud" @search-change="searchChange"
+                               :before-open="beforeOpen" ref="documentCrud" @search-change="searchChange"
                                @search-reset="searchReset" @refresh-change="refreshChange" @on-load="reportslogListfun"
                                @resetColumn="resetColumnTwo('documentCrud', 'documentOption', 'documentOptionBack', 312.1)"
                                @saveColumn="saveColumnTwo('documentCrud', 'documentOption', 'documentOptionBack', 312.1)" >
@@ -43,23 +43,13 @@
             </span>
         </el-dialog>
 
-        <!--报表列表弹窗-->
-        <el-dialog title="单证列表" :visible.sync="reportVisible" append-to-body width="70%" :before-close="corpTypeClose">
-            <div>
-                <reportforms-list ref="reportformsList" @reportRadio="reportRadio"></reportforms-list>
-            </div>
-            <span slot="footer" class="dialog-footer">
-                <el-button @click="reportVisible = false">取 消</el-button>
-                <el-button type="primary" @click="reportConfirm" >确 定</el-button>
-            </span>
-        </el-dialog>
-
         <!--添加编辑弹窗-->
         <el-dialog title="单证操作" :visible.sync="documentVisible" append-to-body width="60%" :before-close="corpTypeClose">
-            <Dispatch-Notice v-if="reportForms.code == 'PCTZD'" :documentForm="documentForm"></Dispatch-Notice>
-            <Purchase-Notice v-if="reportForms.code == 'RHTZ'" :documentForm="documentForm"></Purchase-Notice>
+            <Dispatch-Notice v-if="businesstypeData.code == 'PCTZD'" :documentForm="documentForm"></Dispatch-Notice>
+            <Purchase-Notice v-if="businesstypeData.code == 'RHTZ'" :documentForm="documentForm"></Purchase-Notice>
             <span v-else>啥也不是</span>
             <span slot="footer" class="dialog-footer">
+                <el-button type="success" >保存并打印</el-button>
                 <el-button @click="documentVisible = false">取 消</el-button>
                 <el-button type="primary" @click="documentSubmit">确 定</el-button>
             </span>
@@ -69,6 +59,7 @@
 </template>
 
 <script>
+import {getList as reportsList} from "@/api/iosBasicData/reports";
 import {reportslogList, reportslogSubmit} from "@/api/iosBasicData/bills";
 import {bbusinesstypeList} from "@/api/iosBasicData/bbusinesstype";
 import bbusinesstype from "@/views/iosBasicData/bbusinesstype/index.vue";
@@ -80,7 +71,6 @@ import PurchaseNotice from "@/views/iosBasicData/SeafreightExportF/bills/assembl
         components: {reportformsList, bbusinesstype,DispatchNotice,PurchaseNotice},
         data(){
             return {
-                reportVisible:false, // 报表列表数据
                 documentVisible:false, // 单证添加编辑弹窗
                 documentForm:{}, // 添加编辑弹窗的数据
                 corpTypeVisible:false,
@@ -140,7 +130,6 @@ import PurchaseNotice from "@/views/iosBasicData/SeafreightExportF/bills/assembl
                 documentData:[],
                 loading:false,
                 businesstypeData:{}, // 左侧选择的数据
-                reportForms:{}, // 报表列表选择的数据
 
             }
         },
@@ -152,7 +141,7 @@ import PurchaseNotice from "@/views/iosBasicData/SeafreightExportF/bills/assembl
         },
         async created() {
             this.documentOption = await this.getColumnData(this.getColumnName(312.1), this.documentOptionBack);
-            this.bbusinesstypeListfun()
+            this.reportsListfun()
         },
         methods:{
             // 新建单证按钮
@@ -161,29 +150,8 @@ import PurchaseNotice from "@/views/iosBasicData/SeafreightExportF/bills/assembl
                     this.$message.warning("请先选择报表类型");
                     return
                 }
+                console.log(this.businesstypeData,153)
                 // 打开报表选择框
-                this.reportVisible = true
-                let page = {
-                    pageSize: 10,
-                    currentPage: 1,
-                    total: 0
-                }
-                this.$nextTick(()=>{
-                    this.$refs.reportformsList.onLoad(page,{businessType:this.businesstypeData.code})
-                })
-            },
-            // 报表弹窗的单选
-            reportRadio(val){
-                this.reportForms = val
-            },
-            // 报表弹窗的确认
-            reportConfirm(){
-                console.log(this.reportForms,180)
-                if (!this.reportForms.id){
-                    this.$message.warning("请选择一条报表");
-                    return
-                }
-
                 this.documentVisible = true
             },
             // 单证弹窗的确认按钮
@@ -197,8 +165,8 @@ import PurchaseNotice from "@/views/iosBasicData/SeafreightExportF/bills/assembl
                     billNo:this.assemblyForm.billNo,
                     mblno:this.assemblyForm.mblno,
                     hblno:this.assemblyForm.hblno,
-                    reportsCode:this.reportForms.code,
-                    groupCode:this.reportForms.groupCode,
+                    reportsCode:this.businesstypeData.code,
+                    groupCode:this.businesstypeData.groupCode,
                     printContent:JSON.stringify(this.documentForm),
                 }
                 console.log(obj,204)
@@ -206,15 +174,14 @@ import PurchaseNotice from "@/views/iosBasicData/SeafreightExportF/bills/assembl
                 reportslogSubmit().then(res=>{
                     console.log(res,151)
                 })
-                this.documentVisible = false
             },
             // 左侧筛选
             nodeClick(data) {
                 this.businesstypeData = data
             },
             // 左侧数据获取
-            bbusinesstypeListfun(){
-                bbusinesstypeList(1,20).then(res=>{
+            reportsListfun(){
+                reportsList(1,20,{businessType:'HYCK', classifyCode:'单证'}).then(res=>{
                     this.feesTypeData = res.data.data.records
                 })
             },

+ 22 - 3
src/views/iosBasicData/SeafreightExportF/bills/assembly/EntrustmentLnformation.vue

@@ -582,6 +582,8 @@
                                       :remote="true"
                                       :disabled="detailData.seeDisabled"
                                       :buttonIf="true"
+                                      :addIf="true"
+                                      @addJump="addJump"
                                       :forParameter="{key:'id',label:'cnName',value:'cnName'}"
                                       @remoteMethod="remoteMethod($event,'coloaderCnName')"
                                       @corpChange="corpChange($event,'coloaderCnName')"
@@ -1266,9 +1268,23 @@ import {NdayDate} from "@/util/date";
             // 添加跳转
             addJump(name){
                 let corpType = '1712285382575398914,1712285645314990082,1712285842321448962,1712286433378574338'
+                if (this.$store.getters.CorrespondenceUnitslos) {
+                    this.$alert("往来单位已存在,请保存关闭再进行操作", "温馨提示", {
+                        confirmButtonText: "确定",
+                        type: "warning",
+                        callback: action => {
+                            console.log(action);
+                        }
+                    });
+                    return
+                }
+                this.$router.$avueRouter.closeTag("/iosBasicData/bcorps/index");
                 this.$router.push({
-                    path: "/iosBasicData/bcorps/index?corpType=" + corpType
-                });
+                    path: "/iosBasicData/bcorps/index",
+                    query: {
+                        corpType:corpType
+                    },
+                })
             },
 
             // 接口数据请求🙏🙏🙏🙏🙏🙏🙏🙏🙏🙏
@@ -1367,7 +1383,10 @@ import {NdayDate} from "@/util/date";
             bcorpstypedefineListfun(cnName){
                 let corpType = '1712285382575398914,1712285645314990082,1712285842321448962,1712286433378574338'
                 getBcorpslistByType(1,10,{cnName,corpType}).then(res=>{
-                    this.coloaderCnNameData = res.data.data.records
+                    this.coloaderCnNameData = res.data.data.records.map(item=>{
+                        item.cnName = item.cnName + ' - ' + item.code
+                        return item
+                    })
                 })
             },
             // 包装数据

+ 3 - 3
src/views/iosBasicData/SeafreightExportF/bills/assembly/EntrustmentLnformation/precontainers.vue

@@ -149,7 +149,7 @@ import {
               }]
             },
             {
-              label: "毛重(KGM)",
+              label: "毛重(KGS)",
               prop: "grossWeight",
               width:'120',
               cell:true,
@@ -160,7 +160,7 @@ import {
               }]
             },
             {
-              label: "净重(KGM)",
+              label: "净重(KGS)",
               prop: "netWeight",
               width:'120',
               cell:true,
@@ -283,7 +283,7 @@ import {
                 }
                 item.pid = this.assemblyForm.id
             }
-            this.$confirm("确认批量保存吗?已经存在配箱信息,如果修改预配箱数据 要清除全部配箱信息?", {
+            this.$confirm("批量保存后,需要重新配箱,确认继续?", {
                 confirmButtonText: "确定",
                 cancelButtonText: "取消",
                 type: "warning"

+ 966 - 0
src/views/iosBasicData/SeafreightExportF/bills/assembly/businessReports.vue

@@ -0,0 +1,966 @@
+<template>
+  <div>
+      <avue-crud :option="option"
+                 :table-loading="loading"
+                 :data="data"
+                 :page.sync="page"
+                 :search.sync="query"
+                 :permission="permissionList"
+                 v-model="form"
+                 ref="crud"
+                 id="out-table"
+                 :header-cell-class-name="headerClassName"
+                 @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 312.3)"
+                 @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 312.3)"
+                 @search-change="searchChange"
+                 @search-reset="searchReset"
+                 @selection-change="selectionChange"
+                 @current-change="currentChange"
+                 @size-change="sizeChange"
+                 @refresh-change="refreshChange"
+                 @on-load="onLoad">
+          <template slot-scope="scope" slot="menu">
+              <el-link type="primary" :disabled="scope.row.status == 1"
+                       @click="handleReportPreview(scope.row.url,scope.row)">预览报表</el-link>
+          </template>
+      </avue-crud>
+      <reportContainer ref="reportContainer"></reportContainer>
+  </div>
+</template>
+
+<script>
+  import {getList, getDetail, add, update, remove,reportsGetReportData} from "@/api/iosBasicData/reports";
+  import {getUserApprovalList} from "@/api/approval/processConfig";
+  import {mapGetters} from "vuex";
+  import {billsDetail} from '@/api/iosBasicData/bills'
+  import {bbusinesstypeList} from "@/api/iosBasicData/bbusinesstype";
+  import reportContainer from "@/views/iosBasicData/report-container/report-container.vue"
+
+  export default {
+    components: {
+      reportContainer
+    },
+    props: {
+      id: {
+        type: String
+      },
+      disabled:{
+        type:Boolean,
+        default:false,
+      }
+    },
+    data() {
+      return {
+        userList: [],
+        isPrintTheBoxNumber: false,
+        bbDisabled: false,
+        form: {
+            businessType:'HYCK'
+        },
+        formReport: {},
+        query: {
+            businessType:'HYCK',
+            classifyCode:'业务',
+        },
+        loading: true,
+        page: {
+          pageSize: 10,
+          currentPage: 1,
+          total: 0
+        },
+        selectionList: [],
+        option: {},
+        optionBack: {
+          height:'auto',
+          calcHeight: 30,
+          tip: false,
+          searchShow: true,
+          searchMenuSpan: 6,
+          border: true,
+          index: true,
+          viewBtn: true,
+          selection: true,
+          dialogClickModal: false,
+          menuWidth:100,
+          column: [
+            {
+              label: "组别",
+              prop: "groupCode",
+              rules: [{
+                required: true,
+                message: "请输入组别",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "报表编码",
+              prop: "code",
+              rules: [{
+                required: true,
+                message: "请输入报表编码",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "中文名称",
+              prop: "cnName",
+              rules: [{
+                required: true,
+                message: "请输入中文名称",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "英文名称",
+              prop: "enName"
+            },
+            {
+              label: "报表格式",
+              prop: "content",
+              rules: [{
+                required: true,
+                message: "请输入报表格式",
+                trigger: "blur"
+              }]
+            },
+            {
+              label: "备注",
+              prop: "remarks"
+            },
+          ]
+        },
+        data: []
+      };
+    },
+    async created () {
+      this.option = await this.getColumnData(this.getColumnName(312.3), this.optionBack);
+      getUserApprovalList().then(res=>{
+        this.findObject(this.option.column, "authorizedUsersId").dicData = res.data.data
+      })
+        // 获取业务类型
+        bbusinesstypeList(1,20).then(res=>{
+            this.findObject(this.option.column, "businessType").dicData = res.data.data.records
+        })
+    },
+    computed: {
+      ...mapGetters(["permission"]),
+      permissionList() {
+        return {
+          addBtn: this.vaildData(this.permission.reports_add, false),
+          viewBtn: this.vaildData(this.permission.reports_view, false),
+          delBtn: this.vaildData(this.permission.reports_delete, false),
+          editBtn: this.vaildData(this.permission.reports_edit, false)
+        };
+      },
+      ids() {
+        let ids = [];
+        this.selectionList.forEach(ele => {
+          ids.push(ele.id);
+        });
+        return ids.join(",");
+      }
+    },
+    methods: {
+      // 设计报表
+      async reportDesignButton(url) {
+            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.Designer.StiDesignerOptions()
+            options.appearance.fullScreenMode = true
+            options.allowChangeWindowTitle = false
+            options.toolbar.showSaveDialog = false
+
+            options.toolbar.showFileMenuSave = false
+            options.toolbar.showFileMenuAbout = false
+            options.toolbar.showFileMenuClose = false
+            options.toolbar.showFileMenuExit = false
+            options.toolbar.showFileMenuInfo = false
+            options.toolbar.showFileMenuHelp = false
+            options.toolbar.showFileMenuNew = false
+
+            options.appearance.showTooltips = false
+            options.appearance.showDialogsHelp = false
+
+            options.toolbar.showSetupToolboxButton = true
+            options.appearance.htmlRenderMode = Stimulsoft.Report.Export.StiHtmlExportMode.Table
+
+            let designer = new Stimulsoft.Designer.StiDesigner(
+              options,
+              'StiDesigner',
+              false
+            )
+
+            designer.onSaveReport = (e)=>{
+              console.log('onSaveReport')
+              // let jsObject = this.jsObject
+
+              if (!e.report.isModified)
+                return
+              var jsonString = e.report.saveToJsonString()
+              // console.log(jsonString)
+              this.form.url = jsonString;
+
+              console.log('保存url')
+              console.log(jsonString)
+              console.log('保存url结束')
+
+            }
+
+            let report = new window.Stimulsoft.Report.StiReport();
+
+            report.styles.loadFile('static/Plugins/reports/css/Styles.sts')
+            report.applyStyles()
+
+
+            console.log("从 url 报表");
+            console.log(url)
+        console.log("结束");
+            if (url) {
+              report.load(url)
+            }
+
+            // 加载文件
+            // if (this.id) {
+            //   billsDetail(this.id).then(res => {
+            //     var data = res.data.data
+            //     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
+            //       }
+            //     }
+            //     var dataSet = new Stimulsoft.System.Data.DataSet(
+            //       'reportData'
+            //     )
+            //     dataSet.readJson(data)
+            //     report.regData('reportData', 'reportData', dataSet)
+            //     // 从模版和数据加载报表
+            //     // loadReport(report, '', {})
+            //
+            //     designer.report = report
+            //   })
+            // }
+
+        // let data = [
+        //   {
+        //     id: 2,
+        //     billNo: 'JOB NO',
+        //     billDate: 'DATE',
+        //     operatorName: 'OP',
+        //     bookingNo: 'bookingNo',
+        //     mblno: 'ob/l no',
+        //     carrierCnName: 'CARRIER',
+        //     polCnName: 'POL',
+        //     vesselCnName: 'vsl/voy',
+        //     voyageNo: 'vsl/voy',
+        //     podCnName: 'POD',
+        //     cyCnName: 'DEPOT',
+        //     etd: 'etd/eta',
+        //     eta: 'etd/eta',
+        //     mpaymode: 'freight / freight',
+        //     volume: '箱型箱量',
+        //     hblno: 'hb/l no',
+        //     srcType: 'analysis1',
+        //     srcCnName: 'analysis2',
+        //     corpCnName: 'analysis3',
+        //     list: [
+        //       {
+        //         id:1,
+        //         pid:2,
+        //         feeCnNameData: 'fee list1',
+        //         usd: 'usd',
+        //         rmb: 'rmb',
+        //         tr: '税',
+        //         corpCnName: 'customer',
+        //       },
+        //       {
+        //         id:2,
+        //         pid:2,
+        //         feeCnNameData: 'fee list2',
+        //         usd: 'usd',
+        //         rmb: 'rmb',
+        //         tr: '税',
+        //         corpCnName: 'customer',
+        //       },
+        //     ]
+        //
+        //   }, {
+        //       id:3,
+        //     billNo: 'JOB NO',
+        //     billDate: 'DATE',
+        //     operatorName: 'OP',
+        //     bookingNo: 'bookingNo',
+        //     mblno: 'ob/l no',
+        //     carrierCnName: 'CARRIER',
+        //     polCnName: 'POL',
+        //     vesselCnName: 'vsl/voy',
+        //     voyageNo: 'vsl/voy',
+        //     podCnName: 'POD',
+        //     cyCnName: 'DEPOT',
+        //     etd: 'etd/eta',
+        //     eta: 'etd/eta',
+        //     mpaymode: 'freight / freight',
+        //     volume: '箱型箱量',
+        //
+        //     hblno: 'hb/l no',
+        //     srcType: 'analysis1',
+        //     srcCnName: 'analysis2',
+        //     corpCnName: 'analysis3',
+        //     list: [
+        //       {
+        //         id:3,
+        //         pid:3,
+        //         feeCnNameData: 'fee list',
+        //         usd: 'usd',
+        //         rmb: 'rmb',
+        //         tr: '税',
+        //         corpCnName: 'customer',
+        //       },
+        //       {
+        //         id:4,
+        //         pid:3,
+        //         feeCnNameData: 'fee list',
+        //         usd: 'usd',
+        //         rmb: 'rmb',
+        //         tr: '税',
+        //         corpCnName: 'customer',
+        //       },
+        //     ]
+        //
+        //   }, {
+        //       id:4,
+        //     billNo: 'JOB NO',
+        //     billDate: 'DATE',
+        //     operatorName: 'OP',
+        //     bookingNo: 'bookingNo',
+        //     mblno: 'ob/l no',
+        //     carrierCnName: 'CARRIER',
+        //     polCnName: 'POL',
+        //     vesselCnName: 'vsl/voy',
+        //     voyageNo: 'vsl/voy',
+        //     podCnName: 'POD',
+        //     cyCnName: 'DEPOT',
+        //     etd: 'etd/eta',
+        //     eta: 'etd/eta',
+        //     mpaymode: 'freight / freight',
+        //     volume: '箱型箱量',
+        //
+        //     hblno: 'hb/l no',
+        //     srcType: 'analysis1',
+        //     srcCnName: 'analysis2',
+        //     corpCnName: 'analysis3',
+        //     list: [
+        //       {
+        //         id:10,
+        //         pid:4,
+        //         feeCnNameData: 'fee list',
+        //         usd: 'usd',
+        //         rmb: 'rmb',
+        //         tr: '税',
+        //         corpCnName: 'customer',
+        //       },
+        //       {
+        //         id:11,
+        //         pid:4,
+        //         feeCnNameData: 'fee list',
+        //         usd: 'usd',
+        //         rmb: 'rmb',
+        //         tr: '税',
+        //         corpCnName: 'customer',
+        //       },
+        //     ]
+        //   },
+        // ]
+          // 获取报表数据
+           const res = await reportsGetReportData({
+              billId:this.id,
+              reportCode:this.form.code,
+              groupCode:this.form.groupCode,
+          })
+          // 获取的数据赋值
+          console.log(res.data.data,584)
+          if (!res.data.data.data) {
+              var data = res.data.data.data
+          }else {
+              var data = res.data.data.data
+              // var data = res.data.data.data.map((item,index)=>{
+              //     item.index = index
+              //     item.feeCenterList.forEach(ite=>{
+              //         ite.ppid = index
+              //     })
+              //     return item
+              // })
+          }
+
+
+              var dataSet = new Stimulsoft.System.Data.DataSet(
+                'reportData'
+              )
+
+              dataSet.readJson(data)
+              report.regData('reportData', 'reportData', dataSet)
+              // 从模版和数据加载报表
+              // loadReport(report, '', {})
+
+              designer.report = report
+
+            this.designer=designer
+
+            this.$refs.reportContainer.showContainer(
+              ()=> {
+                setTimeout(() => {
+                  designer.renderHtml('reportContainer')
+                  this.createDesignerButtons()
+                }, 50)
+              },
+              ()=>{},
+          )
+      },
+      // 预览报表
+      handleReportPreview(url,row){
+          console.log(row,698)
+          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)
+
+
+          // 获取报表数据
+          // const res = await reportsGetReportData({
+          //     billId:this.id,
+          //     reportCode:this.form.code,
+          //     groupCode:this.form.groupCode,
+          // })
+          // // 获取的数据赋值
+          // let data = res.data.data.data
+
+          // 加载数据
+          if (this.id) {
+              // billsDetail(this.id).then(res => {
+              reportsGetReportData({
+                  billId:this.id,
+                  reportCode:row.code,
+                  groupCode:row.groupCode,
+              }).then(res => {
+                  var data = res.data.data.data.map((item,index)=>{
+                      item.index = index
+                      item.feeCenterList.forEach(ite=>{
+                          ite.ppid = index
+                      })
+                      return item
+                  })
+                  console.log(data,762)
+              // console.log(data.hshipperDetails, 'hshipperDetails')
+
+              // var aaa = data.hshipperDetails.split('\n')
+              // console.log(aaa)
+
+              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("加载成功完成!");
+      },
+
+      loadReport(report, content, data){
+        var mimeString = content
+          .split(',')[0]
+          .split(':')[1]
+          .split(';')[0]
+        var byteString = atob(content.split(',')[1])
+
+        var ab = new ArrayBuffer(byteString.length)
+        var ia = new Uint8Array(ab)
+
+        for (var i = 0; i < byteString.length; i++) {
+          ia[i] = byteString.charCodeAt(i)
+        }
+
+        var blob = new Blob([ab])
+        JSZip.loadAsync(blob).then(function(unziped) {
+          unziped
+            .file('reportfile.json')
+            .async('string')
+            .then(res => {
+              report.load(res)
+
+              if (!!data) {
+                var dataSet = new Stimulsoft.System.Data.DataSet(
+                  'reportData'
+                )
+                dataSet.readJson(data)
+                report.regData('reportData', 'reportData', dataSet)
+              }
+            })
+        })
+
+      },
+      createDesignerButtons(e) {
+          console.log(e,936)
+        if (!!e) {
+          try {
+            this.designer.jsObject.options.menus.localizationMenu.addEventListener(
+              'click',
+              this.createDesignerButtons
+            )
+          } catch (error) {
+          }
+        }
+
+        let toolBarRow =  this.designer.jsObject.options.toolBar.firstChild.tr[0]
+
+        let customButton =  this.designer.jsObject.StatusPanelButton(
+          'exitButton',
+          '关闭',
+          'LoginControls.Window.CloseWhite.png',
+          '关闭',
+          null,
+          30,
+          60
+        )
+
+        customButton.image.style.width = customButton.image.style.height = '16px'
+
+        let buttonCell = document.createElement('td')
+
+        buttonCell.className = 'stiDesignerToolButtonCell'
+
+        buttonCell.appendChild(customButton)
+
+        toolBarRow.appendChild(buttonCell)
+
+        let that=this
+        customButton.action = function(e) {
+          let jsObject = this.jsObject
+
+          if (jsObject.options.reportIsModified) {
+            var messageForm = jsObject.MessageFormForSave()
+            messageForm.changeVisibleState(true)
+            messageForm.action = function(state) {
+              if (state) {
+                jsObject.SendCommandSaveReport()
+                setTimeout(() => {
+                  jsObject.SendCommandCloseReport()
+                  jsObject.designer.invokeExit()
+                  if (that.$refs.reportContainer)
+                    that.$refs.reportContainer.hideContainer()
+                }, 250)
+              } else {
+                jsObject.SendCommandCloseReport()
+                jsObject.designer.invokeExit()
+                if (that.$refs.reportContainer)
+                  that.$refs.reportContainer.hideContainer()
+              }
+            }
+          } else {
+            jsObject.SendCommandCloseReport()
+            jsObject.designer.invokeExit()
+            if (that.$refs.reportContainer)
+              that.$refs.reportContainer.hideContainer()
+          }
+        }
+      },
+      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()
+          // }
+
+      },
+
+      searchReset() {
+        this.query = {};
+        this.onLoad(this.page);
+      },
+      searchChange(params, done) {
+        this.query = params;
+        this.page.currentPage = 1;
+        this.onLoad(this.page, params);
+        done();
+      },
+      selectionChange(list) {
+        this.selectionList = list;
+      },
+      selectionClear() {
+        this.selectionList = [];
+        this.$refs.crud.toggleSelection();
+      },
+      currentChange(currentPage){
+        this.page.currentPage = currentPage;
+      },
+      sizeChange(pageSize){
+        this.page.pageSize = pageSize;
+      },
+      refreshChange() {
+        this.onLoad(this.page, this.query);
+      },
+      onLoad(page, params = {}) {
+        this.loading = true;
+        getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+          const data = res.data.data;
+          this.page.total = data.total;
+          this.data = data.records;
+          this.loading = false;
+          this.selectionClear();
+        });
+      },
+      //自定义列保存
+      async saveColumnTwo(ref, option, optionBack, code) {
+        /**
+         * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
+         * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
+         * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
+         */
+        const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);
+        if (inSave) {
+          this.$message.success("保存成功");
+          //关闭窗口
+          this.$refs[ref].$refs.dialogColumn.columnBox = false;
+        }
+      },
+      //自定义列重置
+      async resetColumnTwo(ref, option, optionBack, code) {
+        this[option] = this[optionBack];
+        const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
+        if (inSave) {
+          this.$message.success("重置成功");
+          this.$refs[ref].$refs.dialogColumn.columnBox = false;
+        }
+      },
+      // 更改表格颜色
+      headerClassName(tab) {
+        //颜色间隔
+        let back = ""
+        if (tab.columnIndex >= 0 && tab.column.level === 1) {
+          if (tab.columnIndex % 2 === 0) {
+            back = "back-one"
+          } else if (tab.columnIndex % 2 === 1) {
+            back = "back-two"
+          }
+        }
+        return back;
+      },
+    }
+  };
+</script>
+
+<style lang="scss" scoped>
+::v-deep#out-table .back-one {
+  background: #ecf5ff !important;
+}
+
+::v-deep#out-table .back-two {
+  background: #ecf5ff !important;
+}
+
+::v-deep .el-input-group__append {
+  padding: 0 0px !important;
+}
+
+/deep/ .el-tree-node__content>.el-tree-node__expand-icon {
+  visibility: hidden;
+}
+
+/deep/ .el-col-md-8 {
+  width: 24.33333%;
+}
+</style>

Plik diff jest za duży
+ 551 - 364
src/views/iosBasicData/SeafreightExportF/bills/assembly/feecenter.vue


+ 8 - 7
src/views/iosBasicData/SeafreightExportF/bills/assembly/reports.vue

@@ -686,13 +686,14 @@
                   reportCode:row.code,
                   groupCode:row.groupCode,
               }).then(res => {
-                  var data = res.data.data.data.map((item,index)=>{
-                      item.index = index
-                      item.feeCenterList.forEach(ite=>{
-                          ite.ppid = index
-                      })
-                      return item
-                  })
+                  // var data = res.data.data.data.map((item,index)=>{
+                  //     item.index = index
+                  //     item.feeCenterList.forEach(ite=>{
+                  //         ite.ppid = index
+                  //     })
+                  //     return item
+                  // })
+                  var data = res.data.data.data
                   console.log(data,762)
               // console.log(data.hshipperDetails, 'hshipperDetails')
 

+ 243 - 196
src/views/iosBasicData/SeafreightExportF/bills/billsDetails.vue

@@ -15,8 +15,8 @@
                 <!--    <div>-->
 
                 <!--    </div>-->
-                <el-button slot="reference" size="small" style="margin-right: 8px"
-                           :loading="saveLoading" @click="Preview" >预 览
+                <el-button size="small" style="margin-right: 8px"
+                           :loading="saveLoading" @click="previewDialogfun" >预 览
                 </el-button>
                 <!--</el-popover>-->
                 <!--<el-button  size="small" type="warning" style="margin-right: 8px"-->
@@ -52,188 +52,186 @@
             <el-tabs type="border-card" v-model="bigtabs" @tab-click="bigHandleClick">
                 <el-tab-pane label="委托信息" name="wt">
                     <div>
-                        <div>
-                            <el-form :model="form" ref="form" label-width="90px" class="demo-ruleForm">
-                                <containerTitle title="基础资料"></containerTitle>
-                                <basic-container :showBtn="true">
-                                    <el-row :gutter="60">
-                                        <el-col v-for="(item, index) in basicData.column" :key="index" :span="8">
-                                            <!--数组-->
-                                            <div v-if="item instanceof Array" style="display: flex;align-items: center;justify-content: space-between">
-                                                <el-row>
-                                                    <el-col :span="item[0].span?item[0].span:12">
-                                                        <el-form-item :label="item[0].label" :prop="item[0].prop" :rules="item[0].rules"
-                                                                      :label-width="item[0].labelWidth">
+                        <el-form :model="form" ref="form" label-width="90px" class="demo-ruleForm">
+                            <containerTitle title="基础资料"></containerTitle>
+                            <basic-container :showBtn="true">
+                                <el-row :gutter="60">
+                                    <el-col v-for="(item, index) in basicData.column" :key="index" :span="8">
+                                        <!--数组-->
+                                        <div v-if="item instanceof Array" style="display: flex;align-items: center;justify-content: space-between">
+                                            <el-row>
+                                                <el-col :span="item[0].span?item[0].span:12">
+                                                    <el-form-item :label="item[0].label" :prop="item[0].prop" :rules="item[0].rules"
+                                                                  :label-width="item[0].labelWidth">
                                                     <span slot="label" v-if="item[0].label">
                                                         <span style="color: #1e9fff">{{item[0].label}}</span>
                                                     </span>
-                                                            <!--<div v-if="item[0].type == 'button'" style="width: 100%;background: #1eff11" class="buttomBlNO">-->
-                                                            <!--</div>-->
-                                                            <el-button v-if="item[0].type == 'button'" :disabled="detailData.seeDisabled || item[0].disabled"
-                                                                       size="small" type="success" icon="el-icon-edit" circle
-                                                                       @click="applyforfun(item[0].label)" >
-                                                            </el-button>
-                                                            <search-query v-else-if="item[0].type == 'select'"
-                                                                          :datalist="item[0].dicData"
-                                                                          :selectValue="form[item[0].prop]"
-                                                                          :filterable="true"
-                                                                          :allowCreate="item[0].allowCreate || false"
-                                                                          :clearable="true"
-                                                                          :remote="true"
-                                                                          :disabled="detailData.seeDisabled || item[0].disabled"
-                                                                          :buttonIf="false"
-                                                                          :placeholder="`请选择${item[0].text || ''}`"
-                                                                          :forParameter="item[0].forParameter"
-                                                                          @remoteMethod="remoteMethod($event,item[0].prop)"
-                                                                          @corpChange="corpChange($event,item[0].prop)"
-                                                                          @corpFocus="remoteMethod($event,item[0].prop)" >
-                                                            </search-query>
-                                                            <el-input v-else type="age" style="width: 100%;" v-model="form[item[0].prop]"
-                                                                      size="small" autocomplete="off"
+                                                        <!--<div v-if="item[0].type == 'button'" style="width: 100%;background: #1eff11" class="buttomBlNO">-->
+                                                        <!--</div>-->
+                                                        <el-button v-if="item[0].type == 'button'" :disabled="detailData.seeDisabled || item[0].disabled"
+                                                                   size="small" type="success" icon="el-icon-edit" circle
+                                                                   @click="applyforfun(item[0].label)" >
+                                                        </el-button>
+                                                        <search-query v-else-if="item[0].type == 'select'"
+                                                                      :datalist="item[0].dicData"
+                                                                      :selectValue="form[item[0].prop]"
+                                                                      :filterable="true"
+                                                                      :allowCreate="item[0].allowCreate || false"
+                                                                      :clearable="true"
+                                                                      :remote="true"
                                                                       :disabled="detailData.seeDisabled || item[0].disabled"
-                                                                      clearable :placeholder="'请输入' + item[0].label" ></el-input>
-                                                        </el-form-item>
-                                                    </el-col>
-                                                    <el-col :span="item[1].span?item[1].span:12">
-                                                        <el-form-item :label="item[1].label" :prop="item[1].prop" :rules="item[1].rules"
-                                                                      :label-width="item[1].labelWidth">
+                                                                      :buttonIf="false"
+                                                                      :placeholder="`请选择${item[0].text || ''}`"
+                                                                      :forParameter="item[0].forParameter"
+                                                                      @remoteMethod="remoteMethod($event,item[0].prop)"
+                                                                      @corpChange="corpChange($event,item[0].prop)"
+                                                                      @corpFocus="remoteMethod($event,item[0].prop)" >
+                                                        </search-query>
+                                                        <el-input v-else type="age" style="width: 100%;" v-model="form[item[0].prop]"
+                                                                  size="small" autocomplete="off"
+                                                                  :disabled="detailData.seeDisabled || item[0].disabled"
+                                                                  clearable :placeholder="'请输入' + item[0].label" ></el-input>
+                                                    </el-form-item>
+                                                </el-col>
+                                                <el-col :span="item[1].span?item[1].span:12">
+                                                    <el-form-item :label="item[1].label" :prop="item[1].prop" :rules="item[1].rules"
+                                                                  :label-width="item[1].labelWidth">
                                                     <span slot="label" v-if="item[1].label">
                                                         <span style="color: #1e9fff">{{item[1].label}}</span>
                                                     </span>
-                                                            <el-date-picker v-if="item[1].type == 'date'"
-                                                                            v-model="form[item[1].prop]" clearable style="width: 100%;"
-                                                                            type="date" size="small" :disabled="detailData.seeDisabled || item[1].disabled"
-                                                                            value-format="yyyy-MM-dd HH:mm"
-                                                                            placeholder="选择日期">
-                                                            </el-date-picker>
-                                                            <search-query v-else-if="item[1].type == 'select'"
-                                                                          :datalist="item[1].dicData"
-                                                                          :selectValue="form[item[1].prop]"
-                                                                          :filterable="true"
-                                                                          :clearable="true"
-                                                                          :remote="true"
-                                                                          :disabled="detailData.seeDisabled || item[1].disabled"
-                                                                          :buttonIf="false"
-                                                                          :placeholder="`请选择${item[1].text || ''}`"
-                                                                          :forParameter="item[1].forParameter"
-                                                                          @remoteMethod="remoteMethod($event,item[1].prop)"
-                                                                          @corpChange="corpChange($event,item[1].prop)"
-                                                                          @corpFocus="remoteMethod($event,item[1].prop)" >
-                                                            </search-query>
+                                                        <el-date-picker v-if="item[1].type == 'date'"
+                                                                        v-model="form[item[1].prop]" clearable style="width: 100%;"
+                                                                        type="date" size="small" :disabled="detailData.seeDisabled || item[1].disabled"
+                                                                        value-format="yyyy-MM-dd HH:mm"
+                                                                        placeholder="选择日期">
+                                                        </el-date-picker>
+                                                        <search-query v-else-if="item[1].type == 'select'"
+                                                                      :datalist="item[1].dicData"
+                                                                      :selectValue="form[item[1].prop]"
+                                                                      :filterable="true"
+                                                                      :clearable="true"
+                                                                      :remote="true"
+                                                                      :disabled="detailData.seeDisabled || item[1].disabled"
+                                                                      :buttonIf="false"
+                                                                      :placeholder="`请选择${item[1].text || ''}`"
+                                                                      :forParameter="item[1].forParameter"
+                                                                      @remoteMethod="remoteMethod($event,item[1].prop)"
+                                                                      @corpChange="corpChange($event,item[1].prop)"
+                                                                      @corpFocus="remoteMethod($event,item[1].prop)" >
+                                                        </search-query>
 
-                                                            <tree-select v-else-if="item[1].type == 'tree'"
-                                                                         v-model="form[item[1].prop]" filterable
-                                                                         :data="item[1].dicData"
-                                                                         :props="item[1].forParameter"
-                                                                         nodeKey="title"
-                                                                         size="small"
-                                                                         :disabled="detailData.seeDisabled || item[1].disabled"
-                                                                         :multiple="false"
-                                                                         :placeholder="`请选择${item[1].text || ''}`"
-                                                                         @input="corpChange($event,item[1].prop)">
-                                                            </tree-select>
+                                                        <tree-select v-else-if="item[1].type == 'tree'"
+                                                                     v-model="form[item[1].prop]" filterable
+                                                                     :data="item[1].dicData"
+                                                                     :props="item[1].forParameter"
+                                                                     nodeKey="title"
+                                                                     size="small"
+                                                                     :disabled="detailData.seeDisabled || item[1].disabled"
+                                                                     :multiple="false"
+                                                                     :placeholder="`请选择${item[1].text || ''}`"
+                                                                     @input="corpChange($event,item[1].prop)">
+                                                        </tree-select>
 
-                                                            <el-input v-else type="age" style="width: 100%;" v-model="form[item[1].prop]"
-                                                                      size="small" autocomplete="off"
-                                                                      :disabled="detailData.seeDisabled || item[1].disabled"
-                                                                      clearable :placeholder="'请输入' + item[1].text || ''" ></el-input>
-                                                        </el-form-item>
-                                                    </el-col>
-                                                    <el-col v-if="item[2]" :span="item[2].span?item[2].span:12">
-                                                        <el-form-item :label="item[2].label" :prop="item[2].prop" :rules="item[2].rules"
-                                                                      :label-width="item[2].labelWidth">
+                                                        <el-input v-else type="age" style="width: 100%;" v-model="form[item[1].prop]"
+                                                                  size="small" autocomplete="off"
+                                                                  :disabled="detailData.seeDisabled || item[1].disabled"
+                                                                  clearable :placeholder="'请输入' + item[1].text || ''" ></el-input>
+                                                    </el-form-item>
+                                                </el-col>
+                                                <el-col v-if="item[2]" :span="item[2].span?item[2].span:12">
+                                                    <el-form-item :label="item[2].label" :prop="item[2].prop" :rules="item[2].rules"
+                                                                  :label-width="item[2].labelWidth">
                                                     <span slot="label" v-if="item[2].label">
                                                         <span style="color: #1e9fff">{{item[2].label}}</span>
                                                     </span>
-                                                            <search-query v-if="item[2].type == 'select'"
-                                                                          :datalist="item[2].dicData"
-                                                                          :selectValue="form[item[2].prop]"
-                                                                          :filterable="true"
-                                                                          :clearable="true"
-                                                                          :remote="true"
-                                                                          :disabled="detailData.seeDisabled || item[2].disabled"
-                                                                          :buttonIf="false"
-                                                                          :forParameter="item[1].forParameter"
-                                                                          :placeholder="`请选择${item[2].text || ''}`"
-                                                                          @remoteMethod="remoteMethod($event,item[2].prop)"
-                                                                          @corpChange="corpChange($event,item[2].prop)"
-                                                                          @corpFocus="remoteMethod($event,item[2].prop)" >
-                                                            </search-query>
-                                                            <el-input v-else type="age" style="width: 100%;" v-model="form[item[2].prop]"
-                                                                      size="small" autocomplete="off"
-                                                                      :disabled="detailData.seeDisabled || item[1].disabled"
-                                                                      clearable :placeholder="'请输入' + item[2].text || ''" ></el-input>
-                                                        </el-form-item>
-                                                    </el-col>
-                                                </el-row>
-                                            </div>
-                                            <!--对象-->
-                                            <div v-else>
-                                                <el-form-item :label="item.label" :prop="item.prop" :rules="item.rules">
+                                                        <search-query v-if="item[2].type == 'select'"
+                                                                      :datalist="item[2].dicData"
+                                                                      :selectValue="form[item[2].prop]"
+                                                                      :filterable="true"
+                                                                      :clearable="true"
+                                                                      :remote="true"
+                                                                      :disabled="detailData.seeDisabled || item[2].disabled"
+                                                                      :buttonIf="false"
+                                                                      :forParameter="item[1].forParameter"
+                                                                      :placeholder="`请选择${item[2].text || ''}`"
+                                                                      @remoteMethod="remoteMethod($event,item[2].prop)"
+                                                                      @corpChange="corpChange($event,item[2].prop)"
+                                                                      @corpFocus="remoteMethod($event,item[2].prop)" >
+                                                        </search-query>
+                                                        <el-input v-else type="age" style="width: 100%;" v-model="form[item[2].prop]"
+                                                                  size="small" autocomplete="off"
+                                                                  :disabled="detailData.seeDisabled || item[1].disabled"
+                                                                  clearable :placeholder="'请输入' + item[2].text || ''" ></el-input>
+                                                    </el-form-item>
+                                                </el-col>
+                                            </el-row>
+                                        </div>
+                                        <!--对象-->
+                                        <div v-else>
+                                            <el-form-item :label="item.label" :prop="item.prop" :rules="item.rules">
                                                     <span slot="label" v-if="item.label">
                                                         <span style="color: #1e9fff">{{item.label}}</span>
                                                     </span>
-                                                    <search-query v-if="item.type == 'select'"
-                                                                  :datalist="item.dicData"
-                                                                  :selectValue="form[item.prop]"
-                                                                  :filterable="true"
-                                                                  :clearable="true"
-                                                                  :remote="true"
-                                                                  :disabled="detailData.seeDisabled || item.disabled"
-                                                                  :buttonIf="item.buttonIf"
-                                                                  :forParameter="item.forParameter"
-                                                                  :placeholder="`请选择${item.text || ''}`"
-                                                                  @remoteMethod="remoteMethod($event,item.prop)"
-                                                                  @corpChange="corpChange($event,item.prop)"
-                                                                  @corpFocus="remoteMethod($event,item.prop)">
-                                                        <bcorps v-if="item.slot == 'bcorps'"></bcorps>
-                                                        <bcorpstypedefine v-if="item.slot == 'bcorpstypedefine'"></bcorpstypedefine>
-                                                    </search-query>
-                                                    <el-input v-else type="age" style="width: 100%;" v-model="form[item.prop]"
-                                                              size="small" autocomplete="off"
+                                                <search-query v-if="item.type == 'select'"
+                                                              :datalist="item.dicData"
+                                                              :selectValue="form[item.prop]"
+                                                              :filterable="true"
+                                                              :clearable="true"
+                                                              :remote="true"
                                                               :disabled="detailData.seeDisabled || item.disabled"
-                                                              clearable :placeholder="'请输入' + item.text || ''" ></el-input>
-                                                </el-form-item>
-                                            </div>
+                                                              :buttonIf="item.buttonIf"
+                                                              :forParameter="item.forParameter"
+                                                              :placeholder="`请选择${item.text || ''}`"
+                                                              @remoteMethod="remoteMethod($event,item.prop)"
+                                                              @corpChange="corpChange($event,item.prop)"
+                                                              @corpFocus="remoteMethod($event,item.prop)">
+                                                    <bcorps v-if="item.slot == 'bcorps'"></bcorps>
+                                                    <bcorpstypedefine v-if="item.slot == 'bcorpstypedefine'"></bcorpstypedefine>
+                                                </search-query>
+                                                <el-input v-else type="age" style="width: 100%;" v-model="form[item.prop]"
+                                                          size="small" autocomplete="off"
+                                                          :disabled="detailData.seeDisabled || item.disabled"
+                                                          clearable :placeholder="'请输入' + item.text || ''" ></el-input>
+                                            </el-form-item>
+                                        </div>
 
-                                        </el-col>
+                                    </el-col>
 
-                                    </el-row>
-                                </basic-container>
-                            </el-form>
-                        </div>
-                        <div class="customer-main margintop">
-                            <containerTitle title="详细"></containerTitle>
-                            <basic-container :showBtn="true">
-                                <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
-                                    <el-tab-pane label="委托详情" name="first">
-                                        <entrustment-lnformation :assemblyForm="form"
-                                                                 :detailData="detailData"
-                                                                 :generateBillsfalse="generateBillsfalse"
-                                                                 @billsDetailfun="billsDetailfun(form.id)">
-                                        </entrustment-lnformation>
-                                    </el-tab-pane>
-                                    <el-tab-pane label="配箱处理" name="second">
-                                        <DistributionBox :assemblyForm="form" :detailData="detailData" @billsDetailfun="billsDetailfun(form.id)"></DistributionBox>
-                                    </el-tab-pane>
-                                    <el-tab-pane label="MB/L信息" name="third">
-                                        <mbinformation :assemblyForm="form" :detailData="detailData"></mbinformation>
-                                    </el-tab-pane>
-                                    <el-tab-pane label="报表管理" name="fourth">
-                                      <reports :id="form.id" :disabled="detailData.seeDisabled"></reports>
-                                    </el-tab-pane>
-                                    <el-tab-pane label="EDI CODE" name="sixth">
-                                        <edicode :assemblyForm="form" :detailData="detailData"></edicode>
-                                    </el-tab-pane>
-                                    <el-tab-pane label="文件中心" name="seventh">
-                                        <filescenter :assemblyForm="form" :detailData="detailData"></filescenter>
-                                    </el-tab-pane>
-                                </el-tabs>
+                                </el-row>
                             </basic-container>
-                            <basic-container :showBtn="true" v-if="activeName == 'first' || activeName == 'third'">
-                                <formbottom :assemblyForm="form" :generateBillsfalse="generateBillsfalse" :detailData="detailData"></formbottom>
-                            </basic-container>
-                        </div>
+                        </el-form>
+                    </div>
+                    <div class="customer-main margintop">
+                        <containerTitle title="详细"></containerTitle>
+                        <basic-container :showBtn="true">
+                            <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
+                                <el-tab-pane label="委托详情" name="first">
+                                    <entrustment-lnformation :assemblyForm="form"
+                                                             :detailData="detailData"
+                                                             :generateBillsfalse="generateBillsfalse"
+                                                             @billsDetailfun="billsDetailfun(form.id)">
+                                    </entrustment-lnformation>
+                                </el-tab-pane>
+                                <el-tab-pane label="配箱处理" name="second">
+                                    <DistributionBox :assemblyForm="form" :detailData="detailData" @billsDetailfun="billsDetailfun(form.id)"></DistributionBox>
+                                </el-tab-pane>
+                                <el-tab-pane label="MB/L信息" name="third">
+                                    <mbinformation :assemblyForm="form" :detailData="detailData"></mbinformation>
+                                </el-tab-pane>
+                                <el-tab-pane label="报表管理" name="fourth">
+                                    <reports :id="form.id" :disabled="detailData.seeDisabled"></reports>
+                                </el-tab-pane>
+                                <el-tab-pane label="EDI CODE" name="sixth">
+                                    <edicode :assemblyForm="form" :detailData="detailData"></edicode>
+                                </el-tab-pane>
+                                <el-tab-pane label="文件中心" name="seventh">
+                                    <filescenter :assemblyForm="form" :detailData="detailData"></filescenter>
+                                </el-tab-pane>
+                            </el-tabs>
+                        </basic-container>
+                        <basic-container :showBtn="true" v-if="activeName == 'first' || activeName == 'third'">
+                            <formbottom :assemblyForm="form" :generateBillsfalse="generateBillsfalse" :detailData="detailData"></formbottom>
+                        </basic-container>
                     </div>
                 </el-tab-pane>
                 <el-tab-pane label="费用信息" name="fy">
@@ -255,6 +253,13 @@
                    :close-on-click-modal="false" :destroy-on-close="true" :close-on-press-escape="false" v-dialog-drag>
             <check-schedule :checkId="checkId" :batchNo="batchNo" @choceScheduleFun="choceScheduleFun"></check-schedule>
         </el-dialog>
+
+        <!--预览报表弹窗-->
+        <el-dialog append-to-body title="预览报表" class="el-dialogDeep" :visible.sync="previewDialog" width="60%"
+                   :close-on-click-modal="false" :destroy-on-close="true" :close-on-press-escape="false" v-dialog-drag>
+            <business-reports :id="form.id" :disabled="detailData.seeDisabled"></business-reports>
+        </el-dialog>
+
     </div>
 </template>
 
@@ -291,6 +296,7 @@ import {dateFormat} from "@/util/date";
 import checkSchedule from "@/components/checkH/checkSchedule.vue";
 import {getBvesselsList} from "@/api/iosBasicData/bvessels";
 import DocumentCenter from "@/views/iosBasicData/SeafreightExportF/bills/assembly/DocumentCenter.vue";
+import businessReports from "@/views/iosBasicData/SeafreightExportF/bills/assembly/businessReports.vue";
     export default {
         components:{
             checkSchedule,
@@ -307,7 +313,8 @@ import DocumentCenter from "@/views/iosBasicData/SeafreightExportF/bills/assembl
             bcorpstypedefine,
             SplitList,
             TreeSelect,
-            DocumentCenter
+            DocumentCenter,
+            businessReports
         },
         props:{
             detailData: {
@@ -316,6 +323,7 @@ import DocumentCenter from "@/views/iosBasicData/SeafreightExportF/bills/assembl
         },
         data() {
             return {
+                previewDialog:false, // 预览报表弹窗开启
                 generateBillsfalse:false, // 如果生成账单就禁用
                 checkScheduleDialog:false, // 审核弹窗
                 checkId:'', // 审核需要的id
@@ -635,11 +643,15 @@ import DocumentCenter from "@/views/iosBasicData/SeafreightExportF/bills/assembl
                 this.deptGetDetailPolfun() // 收货地 装货港 当前登录人的默认
                 this.userGetListfun(undefined,true) // 获取用户管理数据
             }
-            // this.ownDeptLazyTreefun() // 获取公司数据
+            this.ownDeptLazyTreefun() // 获取公司数据
             this.getLazylistfun() // 获取审核数据
             this.srcTypeWorkDictsfun()
         },
         methods:{
+            // 报表弹窗
+            previewDialogfun(){
+                this.previewDialog = true
+            },
             //请核关闭
             choceScheduleFun() {
                 this.checkScheduleDialog = false
@@ -657,14 +669,14 @@ import DocumentCenter from "@/views/iosBasicData/SeafreightExportF/bills/assembl
                     this.form.polId = res.data.data.polId
                     this.form.polNamePrint = res.data.data.polEnName
                     // 签单地点 默认 装货港
-                    this.$set(this.form,'issueAt',this.form.polCnName)
+                    this.$set(this.form,'issueAt',this.form.polEnName)
                     // 主单单付费地点 默认  如果主单付费方式 为PP 取装货港 如果主单付费地点为CC 取卸货港
                     if (this.form.mpaymode == 'PP') {
-                        this.$set(this.form,'mpayplace',this.form.polCnName)
+                        this.$set(this.form,'mpayplace',this.form.polEnName)
                     }
                     // 分单单付费地点 默认  如果分单付费方式 为PP 取装货港 如果分单付费地点为CC 取卸货港
                     if (this.form.hpaymode == 'PP') {
-                        this.$set(this.form,'hpayplace',this.form.polCnName)
+                        this.$set(this.form,'hpayplace',this.form.polEnName)
                     }
                 })
             },
@@ -703,12 +715,17 @@ import DocumentCenter from "@/views/iosBasicData/SeafreightExportF/bills/assembl
             getBcorpsattnListfun(cnName){
                 getBcorpsattnList(1,10,{pid:this.form.corpId,cnName}).then(res=>{
                     this.columnforfun('corpAttnName').dicData = res.data.data.records
-                    if(res.data.data.records.length == 1) {
-                        this.form.corpAttnName = res.data.data.records[0].cname
-                        this.form.corpAttnId = res.data.data.records[0].id
-                        this.$set(this.form,'corpAttnTel',res.data.data.records[0].tel)
-                        this.$set(this.form,'corpAttnEmail',res.data.data.records[0].email)
+                    if(res.data.data.records.length == 0) {
+                        this.form.corpAttnName = ''
+                        this.form.corpAttnId = ''
+                        this.$set(this.form,'corpAttnTel','')
+                        this.$set(this.form,'corpAttnEmail','')
+                        return
                     }
+                    this.form.corpAttnName = res.data.data.records[0].cname
+                    this.form.corpAttnId = res.data.data.records[0].id
+                    this.$set(this.form,'corpAttnTel',res.data.data.records[0].tel)
+                    this.$set(this.form,'corpAttnEmail',res.data.data.records[0].email)
                 })
             },
             // 获取地点信息
@@ -742,13 +759,13 @@ import DocumentCenter from "@/views/iosBasicData/SeafreightExportF/bills/assembl
                 getDeptLazyTree(0).then(res=>{
                     this.columnforfun('srcCnName').dicData = res.data.data
                     // 来源 内容 默认登录人所属公司
-                    // for(let item of this.columnforfun('srcCnName').dicData) {
-                    //     if (item.id == JSON.parse(localStorage.getItem('saber-userInfo')).content.dept_id) {
-                    //         this.$set(this.form,'srcId',item.id)
-                    //         this.$set(this.form,'srcCnName',item.title)
-                    //         this.$set(this.form,'srcEnName',item.title)
-                    //     }
-                    // }
+                    for(let item of this.columnforfun('srcCnName').dicData) {
+                        if (item.id == JSON.parse(localStorage.getItem('saber-userInfo')).content.dept_id) {
+                            this.$set(this.form,'srcId',item.id)
+                            this.$set(this.form,'srcCnName',item.title)
+                            this.$set(this.form,'srcEnName',item.title)
+                        }
+                    }
                 })
             },
             // 申请B/L NO
@@ -834,6 +851,16 @@ import DocumentCenter from "@/views/iosBasicData/SeafreightExportF/bills/assembl
                         this.form.corpEnName = ''
                         this.form.corpId = ''
                         this.form.corpCode = ''
+                        // 清空 客户OP
+                        this.form.corpAttnName = ''
+                        this.form.corpAttnId = ''
+                        this.$set(this.form,'corpAttnTel','')
+                        this.$set(this.form,'corpAttnEmail','')
+                        // 清空 业务来源和来源详情
+                        this.$set(this.form,'srcType','')
+                        this.$set(this.form,'srcId','')
+                        this.$set(this.form,'srcCnName','')
+                        this.$set(this.form,'srcEnName','')
                     }
                     // 往来单位
                     for(let item of this.columnforfun('corpCnName').dicData) {
@@ -851,6 +878,8 @@ import DocumentCenter from "@/views/iosBasicData/SeafreightExportF/bills/assembl
                             this.$set(this.form,'srcEnName',item.srcEnName)
                             this.columnforfun('srcType').disabled = false
                             this.columnforfun('srcCnName').disabled = false
+                            // 航线带出往来单位的优势航线
+                            this.$set(this.form,'lineCnName',item.advantageRoute)
                         }
                     }
                 }
@@ -876,17 +905,8 @@ import DocumentCenter from "@/views/iosBasicData/SeafreightExportF/bills/assembl
                     this.form[name] = value
                     if (value == 'OWN') {
                         // 公司
-                        // this.columnforfun('srcCnName').type = ''
                         this.columnforfun('srcCnName').forParameter = { key:'id', label:'title', value:'title'}
                         this.ownDeptLazyTreefun()
-                        // for(let item of this.columnforfun('srcCnName').dicData) {
-                        //     if (item.id == JSON.parse(localStorage.getItem('saber-userInfo')).content.dept_id) {
-                        //         this.$set(this.form,'srcId',item.id)
-                        //         this.$set(this.form,'srcCnName',item.title)
-                        //         this.$set(this.form,'srcEnName',item.title)
-                        //     }
-                        // }
-                        // this.columnforfun('srcCnName').disabled = true
                     }else if (value == 'AGENT') {
                         // 代理
                         this.columnforfun('srcCnName').type = 'select'
@@ -927,6 +947,24 @@ import DocumentCenter from "@/views/iosBasicData/SeafreightExportF/bills/assembl
                         }
                     }
                 }
+                else if (name == 'mpaymode') {
+                    // 主单付费方式
+                    this.form[name] = value
+                    if (value == 'PP') {
+                        this.$set(this.form,'mpayplace',this.form.polEnName.split(' - ')[0])
+                    }else {
+                        this.$set(this.form,'mpayplace',this.form.podEnName.split(' - ')[0])
+                    }
+                }
+                else if (name == 'hpaymode') {
+                    // 分单付费方式
+                    this.form[name] = value
+                    if (value == 'PP') {
+                        this.$set(this.form,'hpayplace',this.form.polEnName.split(' - ')[0])
+                    }else {
+                        this.$set(this.form,'hpayplace',this.form.podEnName.split(' - ')[0])
+                    }
+                }
                 else {
                     this.form[name] = value
                 }
@@ -1164,18 +1202,18 @@ import DocumentCenter from "@/views/iosBasicData/SeafreightExportF/bills/assembl
                     this.$set(item,'editMeasurement',item.measurement)
                     this.$set(item,'edit',false)
                 }
+                // 先把状态改成可以编辑,然后判断是否可以编辑
+                this.generateBillsfalse = false
                 // 应收
                 for(let item of this.form.feeCenterListD) {
                     // 判断是否生成了账单
                     if (item.accStatus == 1) {
-                        this.generateBillsfalse = true
                         this.columnforfun('corpCnName').disabled = true
                         this.columnforfun('srcType').disabled = true
                         this.columnforfun('mblno').disabled = true
                         this.columnforfun('bookingNo').disabled = true
                         this.columnforfun('refno').disabled = true
-                    }else {
-                        this.generateBillsfalse = false
+                        this.generateBillsfalse = true
                     }
                     if (item.curCode == 'CNY') {
                         this.$set(item,'rmbAmount',item.amount)
@@ -1200,8 +1238,6 @@ import DocumentCenter from "@/views/iosBasicData/SeafreightExportF/bills/assembl
                         this.columnforfun('mblno').disabled = true
                         this.columnforfun('bookingNo').disabled = true
                         this.columnforfun('refno').disabled = true
-                    }else {
-                        this.generateBillsfalse = false
                     }
                     if (item.curCode == 'CNY') {
                         this.$set(item,'rmbAmount',item.amount)
@@ -1257,6 +1293,10 @@ import DocumentCenter from "@/views/iosBasicData/SeafreightExportF/bills/assembl
                 if (this.form.hnotifyCnName) {
                     this.form.hnotifyCnName = this.form.hnotifyCnName.split(' - ')[0]
                 }
+                // COLOADER
+                if (this.form.coloaderCnName) {
+                    this.form.coloaderCnName = this.form.coloaderCnName.split(' - ')[0]
+                }
                 // 船公司
                 if (this.form.carrierCnName) {
                     this.form.carrierCnName = this.form.carrierCnName.split(' - ')[0]
@@ -1315,6 +1355,13 @@ import DocumentCenter from "@/views/iosBasicData/SeafreightExportF/bills/assembl
                 if (this.form.hnotifyCnName) {
                     this.form.hnotifyCnName = this.form.hnotifyCnName + ' - ' + this.form.hnotifyCode
                 }
+                // COLOADER
+                if (this.form.coloaderCnName) {
+                    let corpType = '1712285382575398914,1712285645314990082,1712285842321448962,1712286433378574338'
+                    getBcorpslistByType(1,10,{cnName:this.form.coloaderCnName,corpType}).then(res=>{
+                        this.form.coloaderCnName = this.form.coloaderCnName + ' - ' + res.data.data.records[0].code
+                    })
+                }
                 // 船公司
                 if (this.form.carrierCnName) {
                     let corpType = '1712286570540703745'

+ 60 - 6
src/views/iosBasicData/bcorps/detailsPage.vue

@@ -117,7 +117,7 @@
 
 
     <el-card class="box-card">
-      <el-form :model="formData" size="medium" label-width="100px">
+      <el-form :model="formData" size="medium" label-width="100px" ref="customerDetailsForm" :rules="rules">
         <el-row gutter="15">
           <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
             <el-tab-pane label="客户详情" name="kgxq">
@@ -176,8 +176,20 @@
               </el-col>
               <el-col :span="8">
                 <el-form-item label="优势航线" prop="advantageRoute">
-                  <el-input v-model="formData.advantageRoute" placeholder="请输入优势航线" clearable :style="{ width: '100%' }">
-                  </el-input>
+                    <search-query ref="SearchQuery"
+                                  :datalist="advantageData"
+                                  :selectValue="formData.advantageRoute"
+                                  title="优势航线"
+                                  :filterable="true"
+                                  :clearable="true"
+                                  :remote="true"
+                                  placeholder="请选择优势航线"
+                                  :forParameter="{ key: 'id', label: 'cnName', value: 'cnName' }"
+                                  @corpFocus="blinesListfun"
+                                  @remoteMethod="blinesListfun"
+                                  @corpChange="blinesChange">
+                        <blines></blines>
+                    </search-query>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
@@ -225,7 +237,6 @@
                     <el-option v-for="(item, index) in userOptions" :key="index" :label="item.realName" :value="item.id"
                       :disabled="item.disabled"></el-option>
                   </el-select>
-                  </el-input>
                 </el-form-item>
               </el-col>
               <!-- <el-col :span="8">
@@ -253,7 +264,6 @@
                   <!-- <el-input v-model="formData.psRate" placeholder="请输入PS规则" clearable :style="{ width: '100%' }"> -->
                   <el-input-number v-model="formData.psRate" controls-position="right" @change="handleChange" :min="0"
                     :precision="2" :step="1" :style="{ width: '100%' }"></el-input-number>
-                  </el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="8">
@@ -833,9 +843,11 @@ import SearchQuery from '@/components/iosbasic-data/searchquery.vue'
 import {getList as userGetList} from '@/api/system/user'
 import {getDeptLazyTree} from "@/api/system/dept";
 import {getBcorpslistByType} from "@/api/iosBasicData/bcorps";
+import {blinesList} from "@/api/iosBasicData/blines";
+import blines from "@/views/iosBasicData/blines/index.vue";
 export default {
   components: {
-    SearchQuery, bcountrys, user, rateManagement
+    SearchQuery, bcountrys, user, rateManagement,blines
   },
   props: {
     detailData: {
@@ -875,6 +887,8 @@ export default {
       fileList: [],
       // 国家list
       cntyOptions: [],
+      // 优势航线
+      advantageData:[],
       // 币别list
       rateOptions: [],
       // 用户list
@@ -980,6 +994,16 @@ export default {
           message: ' ',
           trigger: 'change'
         }],
+        sourceType: [{
+            required: true,
+            message: ' ',
+            trigger: 'change'
+        }],
+        srcCnName: [{
+            required: true,
+            message: ' ',
+            trigger: 'change'
+        }],
       },
       // 客户联系人表单校验
       // corpsAttnRules: {
@@ -1049,6 +1073,7 @@ export default {
   computed: {},
   watch: {},
   created() {
+
     if (this.detailData.id) {
       getBcorpsDetail(this.detailData.id).then(res => {
         this.formData = res.data.data
@@ -1090,6 +1115,11 @@ export default {
       // 客户来源下拉
       sourceCorp(value,name){
           if (name == 'srcCnName') {
+              if (!value) {
+                  this.$set(this.formData,'srcId','')
+                  this.$set(this.formData,'srcCnName','')
+                  this.$set(this.formData,'srcEnName','')
+              }
               for (let item of this.srcData) {
                   if (item[this.sourceforParameter.value] == value) {
                       if (this.formData.sourceType == 'OWN') {
@@ -1131,10 +1161,13 @@ export default {
       sourceRemote(value,name){
           if (name == 'srcCnName') {
               if (this.formData.sourceType == 'OWN') {
+                  this.sourceforParameter = { key:'id', label:'title', value:'title'}
                   this.ownDeptLazyTreefun()
               }else if (this.formData.sourceType == 'AGENT') {
+                  this.sourceforParameter = { key:'id', label:'cnName', value:'cnName'}
                   this.agentBcorpsListfun(value)
               }else if (this.formData.sourceType == 'SALES') {
+                  this.sourceforParameter = { key:'id', label:'name', value:'name'}
                   this.salesUserGetListfun(value)
               }else {}
           }else {}
@@ -1189,12 +1222,19 @@ export default {
         this.cntyOptions = res.data.data.records
       })
     },
+    // 获取优势航线数据
+    blinesListfun(cnName){
+        blinesList(1,10,{cnName}).then(res=>{
+            this.advantageData = res.data.data.records
+        })
+    },
     // 查询币别下拉
     rateListfun(cnName) {
       getRateList(1, 10, { cnName }).then(res => {
         this.rateOptions = res.data.data.records
       })
     },
+      // 国家的下拉赋值
     bcountrysChange(value) {
       this.formData.cntyCode = value
       for (let item of this.cntyOptions) {
@@ -1203,6 +1243,10 @@ export default {
         }
       }
     },
+      // 优势航线下拉赋值
+      blinesChange(value){
+          this.$set(this.formData,'advantageRoute',value)
+      },
       // 银行信息币别回调
     rateChange(value) {
       for (let item of this.rateOptions) {
@@ -1232,6 +1276,16 @@ export default {
     submitForm() {
       this.$refs['userDataForm'].validate(valid => {
         if (!valid) return
+          // 判断客户来源是否填写
+          if (!this.formData.sourceType) {
+              this.$message.warning('请填写客户来源')
+              return;
+          }
+          // 判断来源明细是否填写
+          if (!this.formData.srcCnName) {
+              this.$message.warning('请填写来源明细')
+              return;
+          }
         // TODO 提交表单
         // 联系电话赋值
         if (this.formData.id != null) {

+ 6 - 34
src/views/iosBasicData/bcorps/index.vue

@@ -27,9 +27,6 @@
             @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange"
             @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 304)"
             @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 304)" @on-load="onLoad">
-
-
-
             <template slot="code" slot-scope="scope">
               <avue-text-ellipsis :text="scope.row.code" :height="30" use-tooltip placement="top">
                 <small slot="more">...</small>
@@ -67,41 +64,11 @@
                 <small slot="more">...</small>
               </avue-text-ellipsis>
             </template>
-            <!--<template slot="fax" slot-scope="scope">-->
-            <!--  <avue-text-ellipsis :text="scope.row.fax" :height="30" use-tooltip placement="top">-->
-            <!--    <small slot="more">...</small>-->
-            <!--  </avue-text-ellipsis>-->
-            <!--</template>-->
             <template slot="adminProfilesName" slot-scope="scope">
               <avue-text-ellipsis :text="scope.row.adminProfilesName" :height="30" use-tooltip placement="top">
                 <small slot="more">...</small>
               </avue-text-ellipsis>
             </template>
-            <!--<template slot="seaEmail" slot-scope="scope">-->
-            <!--  <avue-text-ellipsis :text="scope.row.seaEmail" :height="30" use-tooltip placement="top">-->
-            <!--    <small slot="more">...</small>-->
-            <!--  </avue-text-ellipsis>-->
-            <!--</template>-->
-            <!--<template slot="airEmail" slot-scope="scope">-->
-            <!--  <avue-text-ellipsis :text="scope.row.airEmail" :height="30" use-tooltip placement="top">-->
-            <!--    <small slot="more">...</small>-->
-            <!--  </avue-text-ellipsis>-->
-            <!--</template>-->
-            <!--<template slot="unCode" slot-scope="scope">-->
-            <!--  <avue-text-ellipsis :text="scope.row.unCode" :height="30" use-tooltip placement="top">-->
-            <!--    <small slot="more">...</small>-->
-            <!--  </avue-text-ellipsis>-->
-            <!--</template>-->
-            <!--<template slot="customsCode" slot-scope="scope">-->
-            <!--  <avue-text-ellipsis :text="scope.row.customsCode" :height="30" use-tooltip placement="top">-->
-            <!--    <small slot="more">...</small>-->
-            <!--  </avue-text-ellipsis>-->
-            <!--</template>-->
-            <!--<template slot="scacCode" slot-scope="scope">-->
-            <!--  <avue-text-ellipsis :text="scope.row.scacCode" :height="30" use-tooltip placement="top">-->
-            <!--    <small slot="more">...</small>-->
-            <!--  </avue-text-ellipsis>-->
-            <!--</template>-->
               <template slot="status" slot-scope="scope">
                   <div v-for="(item,index) of ifInvoiceData" :key="index" v-if="scope.row.status == item.dictKey"
                        class="statusClass" :style="'background:' + item.colour">{{item.dictValue}}</div>
@@ -1062,9 +1029,14 @@ export default {
     // 这个是从海运出口跳进来的
     if (this.$route.query.corpType) {
         this.isShow = false
+        this.$store.commit("DOMIO_IN_CUL");
     }
+    this.$store.commit("DOMIO_IN_CUL");
     this.bcorpstypedefineListfun() // 获取客户类别
-      this.ifInvoiceGetWorkDictsfun() // 字典状态
+    this.ifInvoiceGetWorkDictsfun() // 字典状态
+  },
+  activated(){
+      this.$store.commit("DOMIO_OUT_CUL");
   },
   methods: {
       // 获取状态字典数据

+ 16 - 4
src/views/iosBasicData/losbfeestemplate/feesTemplateItems.vue

@@ -59,15 +59,21 @@
                     :header-cell-class-name="headerClassName"
                     style="width: 100%">
                     <el-table-column
-                        prop="curCode"
+                        prop="corpCnName"
                         label="客户">
+                        <template slot-scope="{ row }">
+                            <span class="nowrapClass">{{row.corpCnName}}</span>
+                        </template>
                     </el-table-column>
                     <el-table-column
-                        prop="curCode"
+                        prop="corpEnName"
                         label="客户英文名称">
+                        <template slot-scope="{ row }">
+                            <span class="nowrapClass">{{row.corpEnName}}</span>
+                        </template>
                     </el-table-column>
                     <el-table-column
-                        prop="curCode"
+                        prop="feeCode"
                         label="费用编码">
                     </el-table-column>
                     <el-table-column
@@ -75,7 +81,7 @@
                         label="费用">
                     </el-table-column>
                     <el-table-column
-                        prop="curCode"
+                        prop="feeEnName"
                         label="费用英文名称">
                     </el-table-column>
                     <el-table-column
@@ -659,4 +665,10 @@ export default {
 .isShow {
     display: none;
 }
+.nowrapClass {
+    width: 100%;
+    overflow: hidden;
+    white-space: nowrap;
+    text-overflow: ellipsis;
+}
 </style>

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików