فهرست منبع

货代bug 2023-12-25

caojunjie 1 سال پیش
والد
کامیت
970a060bb6

+ 20 - 0
src/api/iosBasicData/bills.js

@@ -27,6 +27,7 @@ export const billsGetBillNo = (data) => {
     data: data
   })
 }
+// 海运出口详情
 export const billsDetail = (id) => {
   return request({
     url: '/api/blade-los/bills/detail',
@@ -36,6 +37,25 @@ export const billsDetail = (id) => {
     }
   })
 }
+// 海运出口复制单据
+export const billsCopyBills = (data) => {
+  return request({
+    url: '/api/blade-los/bills/copyBills',
+    method: 'post',
+    data: data
+  })
+}
+// 发送edi
+export const billsSendingEdi = (id) => {
+  return request({
+    url: '/api/blade-los/bills/sendingEdi',
+    method: 'get',
+    params: {
+      id
+    }
+  })
+}
+
 
 export const billsRemove = (ids) => {
   return request({

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

@@ -1393,6 +1393,18 @@ const columnName = [{
     name: '货运代理-海运出口-配箱处理-货物明细'
   },
   {
+    code: 309.5,
+    name: '货运代理-海运出口-费用-导入模板'
+  },
+  {
+    code: 309.6,
+    name: '货运代理-海运出口-分单列表'
+  },
+  {
+    code: 309.7,
+    name: '货运代理-海运出口-主单列表'
+  },
+  {
     code: 310,
     name: '货运代理-账单管理-费用中心'
   },

+ 1 - 1
src/views/approveDataH/index.vue

@@ -213,7 +213,7 @@ export default {
           reportsGetReportData({
               billId:this.reportsData.billId,
               reportCode:val.classifyCode,
-              groupCode:val.cnName,
+              groupCode:val.groupCode,
           }).then(res=>{
               this.handleReportPreview(val.url,res.data.data.data)
           })

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

@@ -51,7 +51,12 @@
         </el-dialog>
 
         <!--添加编辑弹窗-->
-        <el-dialog title="单证操作" :visible.sync="documentVisible" append-to-body width="60%" :before-close="corpTypeClose">
+        <el-dialog title="单证操作"
+                   :close-on-click-modal="false"
+                   :visible.sync="documentVisible"
+                   append-to-body
+                   width="60%"
+                   :before-close="corpTypeClose">
             <Dispatch-Notice v-if="businesstypeData.code == 'PCTZD'" :documentForm="documentForm"></Dispatch-Notice>
             <Purchase-Notice v-else-if="businesstypeData.code == 'RHTZ'" :documentForm="documentForm"></Purchase-Notice>
             <span v-else>啥也不是</span>
@@ -163,12 +168,14 @@ import reportContainer from "@/views/iosBasicData/report-container/report-contai
         methods:{
             // 打印预览按钮
             dialogPreviewfun(row){
-                console.log(row,157)
-                console.log(JSON.parse(row.printContent),153)
                 this.handleReportPreview(JSON.parse(row.printContent).url,JSON.parse(row.printContent).data)
             },
             // 新建单证按钮
             addbtnfun(){
+                if (!this.assemblyForm.id) {
+                    this.$message.warning("请先保存数据");
+                    return;
+                }
                 if(!this.businesstypeData.id){
                     this.$message.warning("请先选择报表类型");
                     return
@@ -176,7 +183,7 @@ import reportContainer from "@/views/iosBasicData/report-container/report-contai
                 reportsGetReportData({
                     billId:this.assemblyForm.id,
                     reportCode:this.businesstypeData.classifyCode,
-                    groupCode:this.businesstypeData.cnName,
+                    groupCode:this.businesstypeData.groupCode,
                 }).then(res=>{
                     this.documentForm = res.data.data.data
                     this.documenturl = this.businesstypeData.url;
@@ -220,8 +227,6 @@ import reportContainer from "@/views/iosBasicData/report-container/report-contai
                     obj.reportsCode = this.businesstypeData.code
                     obj.groupCode = this.businesstypeData.groupCode
                 }
-                console.log(this.documentForm,235)
-                console.log(this.documenturl,236)
                 obj.printContent = JSON.stringify({
                     data:this.documentForm,
                     url:this.documenturl

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

@@ -404,13 +404,13 @@
                                 <span style="color: #1e9fff">船名</span>
                             </span>
                                 <search-query :datalist="vesselData"
-                                              :selectValue="assemblyForm.vesselCnName"
+                                              :selectValue="assemblyForm.vesselEnName"
                                               :filterable="true"
                                               :clearable="true"
                                               :remote="true"
                                               :disabled="detailData.seeDisabled || generateBillsfalse"
                                               :buttonIf="false"
-                                              :forParameter="{key:'id',label:'cnName',value:'cnName'}"
+                                              :forParameter="{key:'id',label:'enName',value:'enName'}"
                                               @remoteMethod="remoteMethod($event,'vessel')"
                                               @corpChange="corpChange($event,'vessel')"
                                               @corpFocus="remoteMethod($event,'vessel')" >
@@ -1080,7 +1080,7 @@ import {NdayDate} from "@/util/date";
                 // 船名
                 else if (name == 'vessel') {
                     for(let item of this[name + 'Data']) {
-                        if (item.cnName == value) {
+                        if (item.enName == value) {
                             this.$set(this.assemblyForm,'vesselId',item.id)
                             this.$set(this.assemblyForm,'vesselCnName',item.cnName)
                             this.$set(this.assemblyForm,'vesselEnName',item.enName)

+ 44 - 29
src/views/iosBasicData/SeafreightExportF/bills/assembly/SplitList.vue

@@ -3,7 +3,9 @@
         <avue-crud :table-loading="loading" :option="option" :data="data"
                    @selection-change="selectionChange"
                    id="out-table" ref="crud"
-                   :header-cell-class-name="headerClassName" >
+                   :header-cell-class-name="headerClassName"
+                   @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 309.6)"
+                   @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 309.6)" >
             <template slot-scope="scope" slot="menuLeft">
                 <el-button v-if="!typeMenu" type="danger"
                            size="small"
@@ -19,33 +21,8 @@
                            @click.stop="withdrawfun(scope.row, scope.index)">撤回
                 </el-button>
             </template>
-            <template slot-scope="scope" slot="billNo">
-                <avue-text-ellipsis :text="scope.row.billNo" :height="30" use-tooltip placement="top">
-                    <small slot="more">...</small>
-                </avue-text-ellipsis>
-            </template>
-            <template slot-scope="scope" slot="billDate">
-                <avue-text-ellipsis :text="scope.row.billDate" :height="30" use-tooltip placement="top">
-                    <small slot="more">...</small>
-                </avue-text-ellipsis>
-            </template>
-            <template slot-scope="scope" slot="corpCnName">
-                <avue-text-ellipsis :text="scope.row.corpCnName" :height="30" use-tooltip placement="top">
-                    <small slot="more">...</small>
-                </avue-text-ellipsis>
-            </template>
-            <template slot-scope="scope" slot="marks">
-                <avue-text-ellipsis :text="scope.row.marks" :height="30" use-tooltip placement="top">
-                    <small slot="more">...</small>
-                </avue-text-ellipsis>
-            </template>
-            <template slot-scope="scope" slot="packingUnit">
-                <avue-text-ellipsis :text="scope.row.packingUnit" :height="30" use-tooltip placement="top">
-                    <small slot="more">...</small>
-                </avue-text-ellipsis>
-            </template>
             <template slot-scope="scope" slot="corpEnName">
-                <span class="textoverflow" :style="typeMenu?'color: red':''"
+                <span class="textoverflow" :style="typeMenu?'color: #409EFF':''"
                       @click.stop="corpfun(scope)" >
                     {{scope.row.corpEnName}}
                 </span>
@@ -74,7 +51,8 @@
             return {
                 selectionList:[],
                 loading:false,
-                option:{
+                option:{},
+                optionBack:{
                     calcHeight: 30,
                     tip: false,
                     searchShow: true,
@@ -94,67 +72,80 @@
                             label: "单据编号",
                             prop: "billNo",
                             width:"160",
+                            overHidden:true,
                         },
                         {
                             label: "单据日期",
                             prop: "billDate",
                             width:"160",
+                            overHidden:true,
                         },
                         {
                             label: "客户名",
                             prop: "corpCnName",
                             width:"160",
+                            overHidden:true,
                         },
                         {
                             label: "客户英文名",
                             prop: "corpEnName",
                             width:"160",
+                            overHidden:true,
                         },
                         {
                             label: "MB/L NO",
                             prop: "mblno",
                             width:"160",
+                            overHidden:true,
                         },
                         {
                             label: "HB/L NO",
                             prop: "hblno",
                             width:"160",
+                            overHidden:true,
                         },
                         {
                             label: "唛头",
                             prop: "marks",
                             width:"160",
+                            overHidden:true,
                         },
                         {
                             label: "件数",
                             prop: "quantity",
                             width:"100",
+                            overHidden:true,
                         },
                         {
                             label: "包装单位",
                             prop: "packingUnit",
                             width:"100",
+                            overHidden:true,
                         },
                         {
                             label: "毛重 (KGM)",
                             prop: "grossWeight",
                             width:"100",
+                            overHidden:true,
                         },
                         {
                             label: "净重 (KGM)",
                             prop: "netWeight",
                             width:"100",
+                            overHidden:true,
                         },
                         {
                             label: "体积 (CBM)",
                             prop: "measurement",
                             width:"100",
+                            overHidden:true,
                         },
                     ]
                 },
             }
         },
-        created() {
+        async created() {
+            this.option = await this.getColumnData(this.getColumnName(309.6), this.optionBack);
             if (this.typeMenu) {
                 this.option.menu = false
                 this.option.selection = false
@@ -226,6 +217,30 @@
                 })
             },
 
+            //自定义列保存
+            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) {
                 //颜色间隔

+ 85 - 106
src/views/iosBasicData/SeafreightExportF/bills/assembly/businessReports.vue

@@ -21,7 +21,7 @@
                  @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>
+                       @click="reportsGetReportDatafun(scope.row.url,scope.row)">预览报表</el-link>
           </template>
       </avue-crud>
       <reportContainer ref="reportContainer"></reportContainer>
@@ -508,9 +508,18 @@
               ()=>{},
           )
       },
+        // 打印报表获取数据
+      reportsGetReportDatafun(url,row){
+          reportsGetReportData({
+              billId:this.id,
+              reportCode:row.classifyCode,
+              groupCode:row.groupCode,
+          }).then(res=>{
+              this.handleReportPreview(url,res.data.data.data)
+          })
+      },
       // 预览报表
       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')
@@ -553,150 +562,120 @@
 
 
           // 获取报表数据
-          // 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++) {
+          var data = row
+          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) {
+              }
+              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++) {
+          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) {
+              }
+              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++) {
+          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) {
+              }
+              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'
-              }
+          // 处理箱号
+          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
-              }
+          // 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) {
+          // 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)
+                      let v = boxMap.get(boxQuantity.cntrTypeCode)
+                      boxMap.set(boxQuantity.cntrTypeCode, v + boxQuantity.quantity)
                   } else {
-                    boxMap.set(boxQuantity.cntrTypeCode, boxQuantity.quantity)
+                      boxMap.set(boxQuantity.cntrTypeCode, boxQuantity.quantity)
                   }
-                }
-                let boxs = ''
-                boxMap.forEach(function (value, key, map) {
+              }
+              let boxs = ''
+              boxMap.forEach(function (value, key, map) {
                   boxs += value + 'x' + key + ', '
-                })
-                boxs = boxs.substring(0, boxs.length - 2)
+              })
+              boxs = boxs.substring(0, boxs.length - 2)
 
-                data.boxQuantity = boxs + ' CONTAINER(S) ONLY'
-              }
+              data.boxQuantity = boxs + ' CONTAINER(S) ONLY'
+          }
 
-              // Number of original B/Ls
-              if (data.numberOfObl) {
-                data.numberOfObl += ' (' + data.numberOfOblDigit + ')'
-              }
+          // 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++) {
+          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) {
+              }
+              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')
+          // console.log(data.hshipperDetails, 'hshipperDetails2')
 
 
-              // 创建一个 Stimulsoft 数据集(DataSet)的实例的代码
-              var dataSet = new Stimulsoft.System.Data.DataSet(
-                'reportData'
-              )
+          // 创建一个 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, '', {})
+          dataSet.readJson(data) // 用于将 JSON 格式的数据加载到数据集中。data 是包含报表数据的 JSON 对象。
+          // 这是一个方法调用,用于在报表中注册数据源。参数 'reportData' 是数据源的名称,
+          // 第二个 'reportData' 是数据源的别名,dataSet 则是之前创建的数据集实例
+          report.regData('reportData', 'reportData', dataSet)
+          // 从模版和数据加载报表
+          // loadReport(report, '', {})
 
-              // 这是将报表对象指定给报表查看器的属性。viewer 是报表查看器的实例,而 report 是之前创建的报表对象。
-              viewer.report = report;
-            })
-          }
+          // 这是将报表对象指定给报表查看器的属性。viewer 是报表查看器的实例,而 report 是之前创建的报表对象。
+          viewer.report = report;
 
 
           this.$refs.reportContainer.showContainer(

+ 33 - 12
src/views/iosBasicData/SeafreightExportF/bills/assembly/feecenter.vue

@@ -442,6 +442,7 @@
             :visible.sync="templateVisible"
             append-to-body
             width="70%"
+            :close-on-click-modal="false"
             :before-close="handleClose">
             <div>
                 <el-row>
@@ -459,7 +460,13 @@
                         <basic-container>
                             <avue-crud :option="templateOption"
                                        :data="templateRightData"
-                                       @selection-change="feeselectionChange">
+                                       ref="templateRef"
+                                       @selection-change="feeselectionChange"
+                                       @resetColumn="resetColumnTwo('templateRef', 'templateOption', 'templateOptionBack', 309.5)"
+                                       @saveColumn="saveColumnTwo('templateRef', 'templateOption', 'templateOptionBack', 309.5)">
+                                <template slot="menuLeft">
+                                    <el-button type="primary" size="small" @click="templateExport">导 入</el-button>
+                                </template>
                             </avue-crud>
                         </basic-container>
                     </el-col>
@@ -477,6 +484,7 @@
             :visible.sync="corpVisible"
             append-to-body
             width="70%"
+            :close-on-click-modal="false"
             :before-close="handleClose">
             <div>
                 <el-form :model="assemblyForm" ref="form" label-width="90px" style="margin-bottom: 4px" class="demo-ruleForm">
@@ -500,6 +508,7 @@
             :visible.sync="printingDialog"
             append-to-body
             width="70%"
+            :close-on-click-modal="false"
             :before-close="handleClose">
             <div>
                 <el-row :gutter="10">
@@ -531,6 +540,7 @@
             :visible.sync="selectPrintingDialog"
             append-to-body
             width="70%"
+            :close-on-click-modal="false"
             :before-close="handleClose">
             <div>
                 <reportformsList ref="reportformsList" @reportRadio="reportRadio"></reportformsList>
@@ -925,7 +935,9 @@
                 },
                 // 右侧详情数据
                 templateRightData:[],
-                templateOption:{
+                // 导入弹窗表格的配置
+                templateOption:{},
+                templateOptionBack:{
                     menu:false,
                     stripe:true,
                     addBtn:false,
@@ -937,27 +949,33 @@
                     column:[
                         {
                             label: '客户',
-                            prop:'corpCnName'
+                            prop:'corpCnName',
+                            overHidden:true,
                         },
                         {
                             label: '费用',
-                            prop:'feeCnName'
+                            prop:'feeCnName',
+                            overHidden:true,
                         },
                         {
                             label: '数量',
-                            prop:'quantity'
+                            prop:'quantity',
+                            overHidden:true,
                         },
                         {
                             label: '单价',
-                            prop:'price'
+                            prop:'price',
+                            overHidden:true,
                         },
                         {
                             label: '计量单位',
-                            prop:'unitNo'
+                            prop:'unitNo',
+                            overHidden:true,
                         },
                         {
                             label: '币别',
-                            prop:'curCode'
+                            prop:'curCode',
+                            overHidden:true,
                         }
                     ]
                 },
@@ -1028,12 +1046,13 @@
         async created() {
             this.optionD = await this.getColumnData(this.getColumnName(309.2), this.optionDBack);
             this.optionC = await this.getColumnData(this.getColumnName(309.3), this.optionCBack);
+            // 导入弹窗的表格
+            this.templateOption = await this.getColumnData(this.getColumnName(309.5), this.templateOptionBack);
             this.getBcorpsListfun()
         },
         methods:{
             // 费用弹窗里的打印
             dialogPreviewfun(row){
-                console.log(row,1036)
                 if (!this.reportformsObj.id){
                     this.$message.warning('请选择打印类型')
                     return;
@@ -1042,7 +1061,7 @@
                 reportsGetReportData({
                     billId:this.assemblyForm.id,
                     reportCode:this.reportformsObj.classifyCode,
-                    groupCode:this.reportformsObj.cnName,
+                    groupCode:this.reportformsObj.groupCode,
                     corpIds:row.id,
                 }).then(res=>{
                     this.handleReportPreview(this.reportformsObj.url,res.data.data.data)
@@ -1059,7 +1078,7 @@
                 reportsGetReportData({
                     billId:this.assemblyForm.id,
                     reportCode:val.classifyCode,
-                    groupCode:val.cnName,
+                    groupCode:val.groupCode,
                     itemIds:idArr.join(','),
                 }).then(res=>{
                     this.handleReportPreview(val.url,res.data.data.data)
@@ -1111,6 +1130,8 @@
             reportsListfun(obj){
                 reportsList(1,50,obj).then(res=>{
                     this.reportTypeData = res.data.data.records
+                    // 获取第一项的值
+                    this.reportformsObj = res.data.data.records[0]
                 })
             },
             // 打印表格选择
@@ -1185,7 +1206,7 @@
                         });
                         this.feesselectionList = [] // 清空多选
                         this.templateRightData = [] // 清空数据
-                        // this.$emit('billsDetailfun')
+                        this.$emit('billsDetailfun')
                         this.templateVisible = false
                     })
                 }else {

+ 1 - 13
src/views/iosBasicData/SeafreightExportF/bills/assembly/reports.vue

@@ -587,19 +587,7 @@
               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 data = res.data.data.data
 
 
               var dataSet = new Stimulsoft.System.Data.DataSet(

+ 136 - 12
src/views/iosBasicData/SeafreightExportF/bills/billsDetails.vue

@@ -15,6 +15,9 @@
                 <!--    <div>-->
 
                 <!--    </div>-->
+                <el-button size="small" type="success" style="margin-right: 8px"
+                           :loading="saveLoading" :disabled="!form.id" @click="billsSendingEdifun" >发送 EDI
+                </el-button>
                 <el-button size="small" style="margin-right: 8px"
                            :loading="saveLoading" @click="previewDialogfun" >预 览
                 </el-button>
@@ -237,14 +240,14 @@
                 <el-tab-pane label="费用信息" name="fy">
                     <feecenter :assemblyForm="form" :detailData="detailData" :pid="form.id" @billsDetailfun="billsDetailfun(form.id)"></feecenter>
                 </el-tab-pane>
+                <el-tab-pane label="单证中心" name="dz">
+                    <document-center :assemblyForm="form"></document-center>
+                </el-tab-pane>
                 <el-tab-pane label="分单列表" name="fd" v-if="form.billType == 'MM'">
                     <Split-list :detailData="detailData" :assemblyForm="form"
                                 :data="billsListAllData"
                                 @billsListAllfun="billsListAllfun(this.form.id)"></Split-list>
                 </el-tab-pane>
-                <el-tab-pane label="单证中心" name="dz">
-                    <document-center :assemblyForm="form"></document-center>
-                </el-tab-pane>
             </el-tabs>
         </div>
 
@@ -285,10 +288,10 @@ import {getBcorpsattnList} from "@/api/iosBasicData/bcorpsattn";
 import {getWorkDicts} from "@/api/system/dictbiz";
 import {getDeptLazyTree, getDeptTree, getLazyList} from "@/api/system/dept";
 import {
-    billsCheckBills,
+    billsCheckBills, billsCopyBills,
     billsDetail,
     billsGetBillNo,
-    billsListAll, billsRevokeCheckBills,
+    billsListAll, billsRevokeCheckBills, billsSendingEdi,
     billsSubmit,
     deptGetDetailPol
 } from '@/api/iosBasicData/bills'
@@ -328,9 +331,8 @@ import businessReports from "@/views/iosBasicData/SeafreightExportF/bills/assemb
                 checkScheduleDialog:false, // 审核弹窗
                 checkId:'', // 审核需要的id
                 batchNo:'',
-                // 分单列表数据
-                billsListAllData:[],
-                pageLoading:false,
+                billsListAllData:[], // 分单列表数据
+                pageLoading:false, // 全屏的动画
                 saveLoading:false,
                 // 详情数据
                 form:{
@@ -648,6 +650,15 @@ import businessReports from "@/views/iosBasicData/SeafreightExportF/bills/assemb
             this.srcTypeWorkDictsfun()
         },
         methods:{
+            // 发送edi
+            billsSendingEdifun(){
+                this.saveLoading = true
+                billsSendingEdi(this.form.id).then(res=>{
+                    this.saveLoading = false
+                    this.$message.success('操作成功,请去文件中心查看')
+                    this.billsDetailfun(this.form.id) // 详情接口
+                })
+            },
             // 报表弹窗
             previewDialogfun(){
                 this.previewDialog = true
@@ -879,6 +890,7 @@ import businessReports from "@/views/iosBasicData/SeafreightExportF/bills/assemb
                             this.columnforfun('srcType').disabled = false
                             this.columnforfun('srcCnName').disabled = false
                             // 航线带出往来单位的优势航线
+                            console.log(item,894)
                             this.$set(this.form,'lineCnName',item.advantageRoute)
                         }
                     }
@@ -1037,6 +1049,10 @@ import businessReports from "@/views/iosBasicData/SeafreightExportF/bills/assemb
             },
             // 单据请核
             DocumentApproval(){
+                if(this.form.billType == 'MH') {
+                    this.$message.warning('分单不能提交请核')
+                    return
+                }
                 this.$confirm("确定要请核数据?", {
                     confirmButtonText: "确定",
                     cancelButtonText: "取消",
@@ -1088,6 +1104,45 @@ import businessReports from "@/views/iosBasicData/SeafreightExportF/bills/assemb
             editCustomer(){
                 this.$refs.form.validate((valid)=>{
                     if (valid) {
+                        // 判断必填项
+                        let sum = '请填写'
+                        for (let item of this.form.feeCenterListD) {
+                            if (!item.corpId) {
+                                sum += ` 应收序号${item.$index + 1}往来单位`
+                            }
+                            if (!item.feeId) {
+                                sum += ` 应收序号${item.$index + 1}费用简称`
+                            }
+                            if (!item.elementsCode) {
+                                sum += ` 应收序号${item.$index + 1}核算要素`
+                            }
+                            if (!item.curCode) {
+                                sum += ` 应收序号${item.$index + 1}币种`
+                            }
+                        }
+                        for (let item of this.form.feeCenterListC) {
+                            if (!item.corpId) {
+                                sum += ` 应付序号${item.$index + 1}往来单位`
+                            }
+                            if (!item.feeId) {
+                                sum += ` 应付序号${item.$index + 1}费用简称`
+                            }
+                            if (!item.elementsCode) {
+                                sum += ` 应付序号${item.$index + 1}核算要素`
+                            }
+                            if (!item.curCode) {
+                                sum += ` 应付序号${item.$index + 1}币种`
+                            }
+                        }
+                        if(sum != '请填写') {
+                            this.$confirm(sum, {
+                                confirmButtonText: "确定",
+                                cancelButtonText: "取消",
+                                type: "warning"
+                            })
+                            return;
+                        }
+                        // 调用保存接口
                         this.billsSubmitfun()
                     }
                 })
@@ -1097,7 +1152,6 @@ import businessReports from "@/views/iosBasicData/SeafreightExportF/bills/assemb
                 this.form.billNoFormat = 'HYCK'
                 this.form.businessTypeCode = 'HYCK'
                 // 把拼接的数据拆开 开始 🐒🐒🐒🐒🐒🐒🐒🐒🐒🐒🐒🐒🐒🐒
-                console.log(this.form,1050)
                 this.searchSplit()
                 // 把拼接的数据拆开 结束 💩💩💩💩💩💩💩💩💩💩💩💩💩💩
                 // 费用 收 赋值数据
@@ -1177,6 +1231,79 @@ import businessReports from "@/views/iosBasicData/SeafreightExportF/bills/assemb
                     this.pageLoading = false
                 })
             },
+            // 复制单据接口
+            billsCopyBillsfun(id){
+                billsCopyBills({id}).then(res=>{
+                    this.form = res.data.data;
+                    this.pageLoading = false
+                    this.searchMontage() // 下拉 中文名称和编号拼接
+                    // 配箱最上面可以编辑
+                    for(let item of this.form.containersList) {
+                        item.edit = false
+                    }
+                    // 配箱最下面的
+                    for(let item of this.form.waitingBoxList) {
+                        this.$set(item,'editQuantity',item.quantity)
+                        this.$set(item,'editGrossWeight',item.grossWeight)
+                        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.columnforfun('corpCnName').disabled = true
+                            this.columnforfun('srcType').disabled = true
+                            this.columnforfun('mblno').disabled = true
+                            this.columnforfun('bookingNo').disabled = true
+                            this.columnforfun('refno').disabled = true
+                            this.generateBillsfalse = true
+                        }
+                        if (item.curCode == 'CNY') {
+                            this.$set(item,'rmbAmount',item.amount)
+                            this.$set(item,'usdAmount','')
+                            this.$set(item,'rmbAmountNet',item.amountNet)
+                            this.$set(item,'usdAmountNet','')
+                        }else {
+                            this.$set(item,'usdAmount',item.amount)
+                            this.$set(item,'rmbAmount','')
+                            this.$set(item,'usdAmountNet',item.amountNet)
+                            this.$set(item,'rmbAmountNet','')
+                        }
+                        item.edit = false
+                    }
+                    // 应付
+                    for(let item of this.form.feeCenterListC) {
+                        // 判断是否生成了账单
+                        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
+                        }
+                        if (item.curCode == 'CNY') {
+                            this.$set(item,'rmbAmount',item.amount)
+                            this.$set(item,'usdAmount','')
+                            this.$set(item,'rmbAmountNet',item.amountNet)
+                            this.$set(item,'usdAmountNet','')
+                        }else {
+                            this.$set(item,'usdAmount',item.amount)
+                            this.$set(item,'rmbAmount','')
+                            this.$set(item,'usdAmountNet',item.amountNet)
+                            this.$set(item,'rmbAmountNet','')
+                        }
+                        item.edit = false
+                    }
+                    // 文件中心
+                    for(let item of this.form.filesList) {
+                        this.$set(item,'edit',false)
+                    }
+                })
+            },
             // 详情接口
             async billsDetailfun(id){
                 const res = await billsDetail(id)
@@ -1187,10 +1314,8 @@ import businessReports from "@/views/iosBasicData/SeafreightExportF/bills/assemb
                 // }else {
                 //     this.detailData.seeDisabled = false
                 // }
-
                 this.pageLoading = false
                 this.searchMontage() // 下拉 中文名称和编号拼接
-
                 // 配箱最上面可以编辑
                 for(let item of this.form.containersList) {
                     item.edit = false
@@ -1274,7 +1399,6 @@ import businessReports from "@/views/iosBasicData/SeafreightExportF/bills/assemb
             billsListAllfun(masterId){
                 billsListAll({masterId}).then(res=>{
                     this.billsListAllData = res.data.data
-
                 })
             },
 

+ 127 - 74
src/views/iosBasicData/SeafreightExportF/bills/index.vue

@@ -24,8 +24,7 @@
                      @on-load="onLoad"
                      @expand-change="expandChange"
                      @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 309)"
-                     @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 309)"
-          >
+                     @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 309)" >
               <template slot="search" slot-scope="{row,size}">
                   <el-form ref="form" :model="row" label-width="80px" :style="fold?'width: 100%':'width: 70%'">
                       <el-row>
@@ -221,11 +220,10 @@
               <template slot="menuLeft">
                   <el-button type="primary" size="small" icon="el-icon-plus" @click="addbtnfun()">新建业务
                   </el-button>
-                  <el-button type="danger"
+                  <el-button type="primary"
                              size="small"
                              icon="el-icon-delete"
-                             plain
-                             @click="handleDelete">删 除
+                             plain @click="CopyDocumentsfun">复制单据
                   </el-button>
                   <el-button type="success"
                              size="small"
@@ -233,12 +231,18 @@
                              plain
                              @click="increaseMawb">分单->主单
                   </el-button>
-                  <el-button type="danger"
+                  <el-button type="warning"
                              size="small"
                              icon="el-icon-delete"
                              plain
                              @click="Disembarkingfun">退 舱
                   </el-button>
+                  <el-button type="danger"
+                             size="small"
+                             icon="el-icon-delete"
+                             plain
+                             @click="handleDelete">删 除
+                  </el-button>
                   <div style="margin-top: 10px">
                       <el-tabs type="card" v-model="query.billStatus" @tab-click="handleClick">
                           <el-tab-pane label="接单" name="0">
@@ -256,16 +260,6 @@
                              @click.stop="rowCellfun(scope.row.id, scope.index)">编辑
                   </el-button>
               </template>
-              <template slot-scope="scope" slot="coloaderEnName">
-                  <avue-text-ellipsis :text="scope.row.coloaderEnName" :height="30" use-tooltip placement="top">
-                      <small slot="more">...</small>
-                  </avue-text-ellipsis>
-              </template>
-              <template slot-scope="scope" slot="remarks">
-                  <avue-text-ellipsis :text="scope.row.remarks" :height="30" use-tooltip placement="top">
-                      <small slot="more">...</small>
-                  </avue-text-ellipsis>
-              </template>
 
               <template slot="expand" slot-scope="{row}" >
                   <SplitList :typeMenu="true" :data="row.billsListAllData" :loading="SplitLoading" @corpfun="rowCellfun" ></SplitList>
@@ -311,35 +305,17 @@
                      :data="mawbData"
                      :page.sync="mawbPage"
                      :search="mawbQuery"
+                     ref="mawbOptionCrud"
                      id="out-table"
                      :header-cell-class-name="headerClassName"
                      @search-change="mawbSearch"
+                     @resetColumn="resetColumnTwo('mawbOptionCrud', 'mawbOption', 'mawbOptionBack', 309.7)"
+                     @saveColumn="saveColumnTwo('mawbOptionCrud', 'mawbOption', 'mawbOptionBack', 309.7)"
                       >
               <template slot="radio"
                         slot-scope="{row}">
                   <el-radio v-model="dialogRadio" :label="row.id" @input="radioInput(row)"></el-radio>
               </template>
-              <template slot-scope="scope" slot="mblno">
-                  <avue-text-ellipsis :text="scope.row.mblno" :height="30" use-tooltip placement="top">
-                      <small slot="more">...</small>
-                  </avue-text-ellipsis>
-              </template>
-              <template slot-scope="scope" slot="hblno">
-                  <avue-text-ellipsis :text="scope.row.hblno" :height="30" use-tooltip placement="top">
-                      <small slot="more">...</small>
-                  </avue-text-ellipsis>
-              </template>
-              <template slot-scope="scope" slot="corpCnName">
-                  <avue-text-ellipsis :text="scope.row.corpCnName" :height="30" use-tooltip placement="top">
-                      <small slot="more">...</small>
-                  </avue-text-ellipsis>
-              </template>
-              <template slot-scope="scope" slot="corpEnName">
-                  <avue-text-ellipsis :text="scope.row.corpEnName" :height="30" use-tooltip placement="top">
-                      <small slot="more">...</small>
-                  </avue-text-ellipsis>
-              </template>
-
           </avue-crud>
           <span slot="footer" class="dialog-footer">
               <el-button @click="dialogVisible = false">取 消</el-button>
@@ -484,30 +460,36 @@ import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
                     label: '分单',
                     value: 'MH'
                 }],
+                overHidden:true,
             },
             {
               label: "单据编号",
               prop: "billNo",
-                width:"160"
+                width:"160",
+                overHidden:true,
             },
             {
               label: "主单据号",
               prop: "masterBillNo",
-                width:"160"
+                width:"160",
+                overHidden:true,
             },
             {
               label: "客户名",
               prop: "corpCnName",
-                width:"160"
+                width:"160",
+                overHidden:true,
             },
             {
               label: "客户英文",
               prop: "corpEnName",
-                width:"160"
+                width:"160",
+                overHidden:true,
             },
               {
                   label: "船名",
                   prop: "vesselCnName",
+                  overHidden:true,
               },
               {
                   label: "航次",
@@ -549,12 +531,14 @@ import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
             {
               label: "装货港",
               prop: "polCnName",
-                width:"120"
+                width:"120",
+                overHidden:true,
             },
             {
               label: "卸货港",
               prop: "podCnName",
-                width:"120"
+                width:"120",
+                overHidden:true,
             },
             {
               label: "装箱方式",
@@ -567,6 +551,7 @@ import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
                     label: '拼箱',
                     value: 'LCL'
                 }],
+                overHidden:true,
             },
             {
               label: "货物类别",
@@ -582,6 +567,7 @@ import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
                     label: '冻柜',
                     value: 'reefer'
                 }],
+                overHidden:true,
             },
             {
               label: "唛头",
@@ -592,46 +578,55 @@ import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
             {
               label: "件数",
               prop: "quantity",
+                overHidden:true,
             },
             {
               label: "毛重 (KGM)",
               prop: "grossWeight",
-                width:"120"
+                width:"120",
+                overHidden:true,
             },
             {
               label: "净重 (KGM)",
               prop: "netWeight",
-                width:"120"
+                width:"120",
+                overHidden:true,
             },
             {
               label: "体积 (CBM)",
               prop: "measurement",
-                width:"120"
+                width:"120",
+                overHidden:true,
             },
             {
               label: "V20",
               prop: "quantityV20",
-                width:"100"
+                width:"100",
+                overHidden:true,
             },
             {
               label: "V40",
               prop: "quantityV40",
-                width:"100"
+                width:"100",
+                overHidden:true,
             },
               {
                   label: "40HC",
                   prop: "quantityV40hc",
-                  width:"100"
+                  width:"100",
+                  overHidden:true,
               },
             {
               label: "V45",
               prop: "quantityV45",
-                width:"100"
+                width:"100",
+                overHidden:true,
             },
             {
               label: "V48",
               prop: "quantityV48",
-                width:"100"
+                width:"100",
+                overHidden:true,
             },
             {
               label: "需陆运",
@@ -644,6 +639,7 @@ import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
                     label: '是',
                     value: 1
                 }],
+                overHidden:true,
             },
             {
               label: "需报关",
@@ -656,6 +652,7 @@ import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
                     label: '是',
                     value: 1
                 }],
+                overHidden:true,
             },
             {
               label: "需三检",
@@ -668,77 +665,92 @@ import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
                     label: '是',
                     value: 1
                 }],
+                overHidden:true,
             },
             {
               label: "应收(CNY)",
               prop: "amountDr",
-                width: "160"
+                width: "160",
+                overHidden:true,
             },
             {
               label: "应付(CNY)",
               prop: "amountCr",
-                width: "160"
+                width: "160",
+                overHidden:true,
             },
             {
               label: "利润(CNY)",
               prop: "amountProfit",
-                width: "160"
+                width: "160",
+                overHidden:true,
             },
             {
                 // label: "综合 USD 应付(USD) - 非 USD 外币转换为 USD",
               label: "综合应付(USD)",
               prop: "amountCrUsd",
-                width: "120"
+                width: "120",
+                overHidden:true,
             },
             {
               label: "综合利润(USD)",
               prop: "amountProfitUsd",
-                width: "120"
+                width: "120",
+                overHidden:true,
             },
             {
               label: "合计应收(CNY )",
               prop: "amountDrLoc",
-                width:"160"
+              width:"160",
+                overHidden:true,
             },
             {
               label: "合计应付(CNY)",
               prop: "amountCrLoc",
-                width:"160"
+                width:"160",
+                overHidden:true,
             },
             {
               label: "合计利润(CNY)",
               prop: "amountProfitLoc",
-                width:"160"
+                width:"160",
+                overHidden:true,
             },
             {
               label: "应收对账状态",
               prop: "checkDrStatusDescr",
-                width:"160"
+                width:"160",
+                overHidden:true,
             },
             {
               label: "应付对账状态",
               prop: "checkCrStatusDescr",
-                width:"160"
+                width:"160",
+                overHidden:true,
             },
             {
               label: "应收结算状态",
               prop: "stlDrStatusDescr",
-                width:"160"
+                width:"160",
+                overHidden:true,
             },
             {
               label: "应付结算状态",
               prop: "stlCrStatusDescr",
-                width:"160"
+                width:"160",
+                overHidden:true,
             },
             {
               label: "销项发票状态",
               prop: "invoiceDrStatusDescr",
-                width:"160"
+                width:"160",
+                overHidden:true,
             },
             {
               label: "进项发票状态",
               prop: "invoiceCrStatusDescr",
-                width:"160"
+                width:"160",
+                overHidden:true,
             },
               {
                   label: "创建人",
@@ -747,21 +759,25 @@ import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
                       required: true,
                       message: "请输入创建人",
                       trigger: "blur"
-                  }]
+                  }],
+                  overHidden:true,
               },
               {
                   label: "创建时间",
                   prop: "createTime",
-                  width:"160"
+                  width:"160",
+                  overHidden:true,
               },
               {
                   label: "更新人",
                   prop: "updateUserName",
+                  overHidden:true,
               },
               {
                   label: "更新时间",
                   prop: "updateTime",
-                  width:"160"
+                  width:"160",
+                  overHidden:true,
               },
             {
               label: "业务状态",
@@ -772,7 +788,8 @@ import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
                     label: "dictValue",
                     value: "dictKey"
                 },
-                width: "100"
+                width: "100",
+                overHidden:true,
             },
             {
               label: "财务状态",
@@ -784,6 +801,7 @@ import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
                     value: "dictKey"
                 },
                 width: "180",
+                overHidden:true,
             },
             {
               label: "审核状态",
@@ -794,20 +812,23 @@ import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
                     label: "dictValue",
                     value: "dictKey"
                 },
+                overHidden:true,
             },
             {
               label: "备注",
               prop: "remarks",
+                overHidden:true,
             },
           ]
         },
           // 弹窗的配置
-        mawbOption:{
+        mawbOption:{},
+        mawbOptionBack:{
               height:'450',
               calcHeight: 30,
               tip: false,
               searchShow: true,
-              searchMenuSpan: 24,
+              searchMenuSpan: 6,
               border: true,
               selection: false, // 多选
               dialogClickModal: false,
@@ -828,75 +849,92 @@ import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
                   {
                       label: "船名",
                       prop: "vesselCnName",
+                      overHidden:true,
                   },
                   {
                       label: "航次",
                       prop: "voyageNo",
+                      overHidden:true,
                   },
                   {
                       label: "MB/L NO",
                       prop: "mblno",
                       search:true,
+                      overHidden:true,
                   },
                   {
                       label: "HB/L NO",
                       prop: "hblno",
                       search:true,
+                      overHidden:true,
                   },
                   {
                       label: "开船日期",
                       prop: "etd",
+                      overHidden:true,
                   },
                   {
                       label: "到港日期",
                       prop: "eta",
+                      overHidden:true,
                   },
                   {
                       label: "装货港",
                       prop: "polCnName",
+                      overHidden:true,
                   },
                   {
                       label: "卸货港",
                       prop: "podCnName",
-                      width:"120"
+                      width:"120",
+                      overHidden:true,
                   },
                   {
                       label: "单据编号",
                       prop: "billNo",
-                      width:"160"
+                      width:"160",
+                      overHidden:true,
                   },
                   {
                       label: "客户名",
                       prop: "corpCnName",
+                      overHidden:true,
                   },
                   {
                       label: "客户英文",
                       prop: "corpEnName",
+                      overHidden:true,
                   },
                   {
                       label: "件数",
                       prop: "quantity",
+                      overHidden:true,
                   },
                   {
                       label: "包装单位",
                       prop: "packingUnit",
+                      overHidden:true,
                   },
                   {
                       label: "毛重",
                       prop: "grossWeight",
+                      overHidden:true,
                   },
                   {
                       label: "净重",
                       prop: "netWeight",
+                      overHidden:true,
                   },
                   {
                       label: "体积",
                       prop: "measurement",
+                      overHidden:true,
                   },
                   {
                       label: "单据日期",
                       prop: "billDate",
-                      width:"150"
+                      width:"150",
+                      overHidden:true,
                   },
               ]
           },
@@ -932,6 +970,7 @@ import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
               this.rowCellfun(this.$route.query.id)
           }
           this.option = await this.getColumnData(this.getColumnName(309), this.optionBack);
+          this.mawbOption = await this.getColumnData(this.getColumnName(309.7), this.mawbOptionBack); // 主单列表
           this.billStatusWorkDictsfun()
           this.accountStatusWorkDictsfun()
           this.getWorkDictsfun() // 获取签单方式字典数据
@@ -1092,6 +1131,20 @@ import SearchQuery from "@/components/iosbasic-data/searchquery.vue";
             this.detailData.seeDisabled = false
             this.isShow = false
         },
+        // 复制单据
+        CopyDocumentsfun(){
+            if (this.selectionList.length !== 1) {
+                this.$message.warning("请选择一条数据");
+                return;
+            }
+            this.detailData.seeDisabled = false
+            this.detailData.id = this.selectionList[0].id
+            this.isShow = false
+            this.$nextTick(()=>{
+                this.$refs.billsDetails.pageLoading = true
+                this.$refs.billsDetails.billsCopyBillsfun(this.selectionList[0].id)
+            })
+        },
         // 编辑详情打开
         rowCellfun(id,index) {
             this.detailData = {

+ 9 - 59
src/views/iosBasicData/bbusinesstype/index.vue

@@ -7,26 +7,6 @@
       @size-change="sizeChange" @refresh-change="refreshChange"
       @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 306)"
       @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 306)" @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>
-        </avue-text-ellipsis>
-      </template>
-      <template slot="cnName" slot-scope="scope">
-        <avue-text-ellipsis :text="scope.row.cnName" :height="30" use-tooltip placement="top">
-          <small slot="more">...</small>
-        </avue-text-ellipsis>
-      </template>
-      <template slot="enName" slot-scope="scope">
-        <avue-text-ellipsis :text="scope.row.enName" :height="30" use-tooltip placement="top">
-          <small slot="more">...</small>
-        </avue-text-ellipsis>
-      </template>
-      <template slot="remarks" slot-scope="scope">
-        <avue-text-ellipsis :text="scope.row.remarks" :height="30" use-tooltip placement="top">
-          <small slot="more">...</small>
-        </avue-text-ellipsis>
-      </template>
       <template slot="menuLeft">
         <el-button type="danger" size="small" icon="el-icon-delete" plain v-if="permission.bbusinesstype_delete"
           @click="handleDelete">删 除
@@ -88,6 +68,7 @@ export default {
             prop: "cnName",
             width: "180",
             search: true,
+            overHidden:true,
             rules: [{
               required: true,
               message: "请输入中文名称",
@@ -99,6 +80,7 @@ export default {
             prop: "enName",
             width: "180",
             search: true,
+            overHidden:true,
             rules: [{
               required: true,
               message: "请输入英文名称",
@@ -108,21 +90,18 @@ export default {
           {
             label: "单据号码格式",
             prop: "billNoFormat",
-            rules: [
-                { required: true, message: '请输入单据号码格式', trigger: 'blur' },
-                { pattern: /[Za-z0-9_]/, message: "不能输入中文", trigger: "blur" }
-            ]
-          },
-          {
-            label: "版本",
-            prop: "version",
-            hide: true,
             display: false,
+            overHidden:true,
+            // rules: [
+            //     { required: true, message: '请输入单据号码格式', trigger: 'blur' },
+            //     { pattern: /[Za-z0-9_]/, message: "不能输入中文", trigger: "blur" }
+            // ]
           },
           {
             label: "状态",
             prop: "status",
             type: 'select',
+            overHidden:true,
             dicData: [{
               label: '启用',
               value: 0
@@ -133,35 +112,11 @@ export default {
             value: 0
           },
           {
-            label: "是否已删除(0 否 1是)",
-            prop: "isDeleted",
-            hide: true,
-            display: false,
-          },
-          {
-            label: "主键",
-            prop: "id",
-            hide: true,
-            display: false,
-          },
-          {
-            label: "创建人 Id",
-            prop: "createUser",
-            hide: true,
-            display: false,
-          },
-          {
             label: "创建人",
             prop: "createUserName",
             display: false,
           },
           {
-            label: "创建部门 Id",
-            prop: "createDept",
-            hide: true,
-            display: false,
-          },
-          {
             label: "创建部门",
             prop: "createDeptName",
             display: false,
@@ -173,12 +128,6 @@ export default {
             display: false,
           },
           {
-            label: "修改人 Id",
-            prop: "updateUser",
-            hide: true,
-            display: false,
-          },
-          {
             label: "修改人",
             prop: "updateUserName",
             width: 160,
@@ -198,6 +147,7 @@ export default {
             width: "180",
             slot: true,
             minRows: 3,
+            overHidden:true,
           },
         ]
       },

+ 4 - 4
src/views/iosBasicData/fininvoicesApplyfor/fininvoicesDetails.vue

@@ -8,10 +8,10 @@
             </div>
             <div class="add-customer-btn">
                 <el-button  size="small" type="warning" plain  style="margin-right: 8px" :disabled="!form.id" v-if="form.status == 1"
-                            :loading="saveLoading" @click="revokeFinInvoicesApprovefun">撤销申请
+                            :loading="saveLoading" @click="revokeFinInvoicesApprovefun">撤销
                 </el-button>
                 <el-button  size="small" type="success" plain  style="margin-right: 8px" :disabled="!form.id" v-else
-                            :loading="saveLoading" @click="finInvoicesApprovefun">确认申请
+                            :loading="saveLoading" @click="finInvoicesApprovefun">提交
                 </el-button>
                 <el-button  size="small" type="primary" style="margin-right: 8px" v-if="editSave"
                             :loading="saveLoading" @click="editHandle">编 辑
@@ -782,7 +782,7 @@ export default {
             },
             // 确认申请
             finInvoicesApprovefun(){
-                this.$confirm("确定进行对账操作?", {
+                this.$confirm("确定进行申请操作?", {
                     confirmButtonText: "确定",
                     cancelButtonText: "取消",
                     type: "warning"
@@ -800,7 +800,7 @@ export default {
             },
             // 撤销申请
             revokeFinInvoicesApprovefun(){
-                this.$confirm("确定进行撤销对账操作?", {
+                this.$confirm("确定进行撤销申请操作?", {
                     confirmButtonText: "确定",
                     cancelButtonText: "取消",
                     type: "warning"

+ 2 - 2
src/views/iosBasicData/fininvoicesOutput/fininvoicesDetails.vue

@@ -831,7 +831,7 @@ export default {
             },
             // 确认发票
             fininvoicesConfirmFinInvoicesfun(){
-                this.$confirm("确定进行对账操作?", {
+                this.$confirm("确定进行确认发票操作?", {
                     confirmButtonText: "确定",
                     cancelButtonText: "取消",
                     type: "warning"
@@ -849,7 +849,7 @@ export default {
             },
             // 撤销发票
             fininvoicesRevokeFinInvoicesfun(){
-                this.$confirm("确定进行撤销对账操作?", {
+                this.$confirm("确定进行撤销发票操作?", {
                     confirmButtonText: "确定",
                     cancelButtonText: "取消",
                     type: "warning"

+ 1 - 2
src/views/iosBasicData/finstlbills/assembly/finstlbillsitems.vue

@@ -182,9 +182,8 @@
             </el-table-column>
             <el-table-column
                 prop="signforDate"
-                label="签收日期">
+                label="签收日期" width="160px">
             </el-table-column>
-
             <el-table-column
                 prop="billDate"
                 label="销账日期" width="150px">

+ 52 - 3
src/views/iosBasicData/losbfeestemplate/feesTemplateItems.vue

@@ -54,9 +54,12 @@
                 </div>
                 <el-table
                     stripe
+                    border
+                    :row-style="{height:'20px',padding:'0px',fontSize:'12px'}"
+                    :cell-style="{padding:'0px',fontSize:'12px'}"
                     :data="form.feesTemplateItemsList"
                     id="out-table"
-                    :header-cell-class-name="headerClassName"
+                    :header-cell-style="tableHeaderCellStyle"
                     style="width: 100%">
                     <el-table-column
                         prop="corpCnName"
@@ -67,7 +70,7 @@
                     </el-table-column>
                     <el-table-column
                         prop="corpEnName"
-                        label="客户英文名称">
+                        label="客户英文">
                         <template slot-scope="{ row }">
                             <span class="nowrapClass">{{row.corpEnName}}</span>
                         </template>
@@ -75,18 +78,33 @@
                     <el-table-column
                         prop="feeCode"
                         label="费用编码">
+                        <template slot-scope="{ row }">
+                            <span class="nowrapClass">{{row.feeCode}}</span>
+                        </template>
                     </el-table-column>
                     <el-table-column
                         prop="feeCnName"
                         label="费用">
+                        <template slot-scope="{ row }">
+                            <span class="nowrapClass">{{row.feeCnName}}</span>
+                        </template>
                     </el-table-column>
                     <el-table-column
                         prop="feeEnName"
-                        label="费用英文名称">
+                        label="费用英文">
+                        <template slot-scope="{ row }">
+                            <span class="nowrapClass">{{row.feeEnName}}</span>
+                        </template>
                     </el-table-column>
                     <el-table-column
                         prop="quantityRule"
                         label="数量规则">
+                        <template slot-scope="{ row }">
+                            <span v-for="item of quantityRuleData" :key="item.dictKey"
+                                  v-if="item.dictKey == row.quantityRule" >
+                                {{item.dictValue}}
+                            </span>
+                        </template>
                     </el-table-column>
                     <el-table-column
                         prop="quantity"
@@ -135,6 +153,7 @@
             append-to-body
             :destroy-on-close="true"
             :modal-append-to-body="false"
+            :close-on-click-modal="false"
             :before-close="feestemplateClose">
             <div>
                 <el-form :model="feestemplateForm" ref="feestemplateForm" label-width="100px" class="demo-ruleForm">
@@ -168,6 +187,18 @@
                                         <bfeesdefine></bfeesdefine>
                                     </search-query>
                                 </div>
+                                <div v-else-if="item.prop == 'quantityRule'">
+                                    <search-query ref="SearchQuery"
+                                                  :datalist="quantityRuleData"
+                                                  :selectValue="feestemplateForm[item.prop]"
+                                                  title="数量规则"
+                                                  :filterable="true"
+                                                  :clearable="true"
+                                                  :buttonIf="false"
+                                                  :forParameter="{key:'dictKey',label:'dictValue',value:'dictKey'}"
+                                                  @corpChange="quantityRuleChange" >
+                                    </search-query>
+                                </div>
                                 <div v-else-if="item.prop == 'curCode'">
                                     <search-query ref="SearchQuery"
                                                   :datalist="curCodeData"
@@ -223,6 +254,7 @@ import bcorps from "@/views/iosBasicData/bcorps/index.vue";
 import bfeesdefine from "@/views/iosBasicData/bfeesdefine/index.vue";
 import bbusinesstype from "@/views/iosBasicData/bbusinesstype/index.vue";
 import bunits from "@/views/iosBasicData/bunits/index.vue";
+import {getWorkDicts} from "@/api/system/dictbiz";
 
 
 export default {
@@ -246,6 +278,8 @@ export default {
             corpData:[],
             // 费用请求数据
             feeData:[],
+            // 数量规则字典数据
+            quantityRuleData:[],
             // 币别请求数据
             curCodeData:[],
             // 计算属性数据
@@ -473,6 +507,7 @@ export default {
     created() {
         this.getBcorpsListfun()
         this.bfeesListfun()
+        this.quantityRuleWorkDictsfun()
         this.getRateListfun()
         this.getBunitsListfun()
     },
@@ -488,6 +523,12 @@ export default {
                 this.feeData = res.data.data.records
             })
         },
+        // 获取数量规则字典数据
+        quantityRuleWorkDictsfun(){
+            getWorkDicts('number_rule').then(res=>{
+                this.quantityRuleData = res.data.data
+            })
+        },
         // 获取币别数据
         getRateListfun(cnName){
             getRateList({
@@ -531,6 +572,10 @@ export default {
                 }
             }
         },
+        // 数量规则下拉回调
+        quantityRuleChange(value){
+            this.$set(this.feestemplateForm,'quantityRule',value)
+        },
         // 币别选择之后的回调
         curCodeCorpChange(value) {
             this.$set(this.feestemplateForm,'curCode',value)
@@ -622,6 +667,10 @@ export default {
         backToList() {
             this.$emit('goBack')
         },
+        // 表头样式
+        tableHeaderCellStyle({row,column,rowIndex, columnIndex}){
+            return "padding:4px 0px;fontSize:12px;color:#000;background:#ecf5ff;textAlign:center"
+        },
         // 更改表格颜色
         headerClassName(tab){
             //颜色间隔

+ 1 - 1
src/views/iosBasicData/losbfeestemplate/index.vue

@@ -485,7 +485,7 @@ export default {
     },
     // 获取左侧业务类别数据
     bbusinesstypeListfun() {
-      bbusinesstypeList().then(res => {
+      bbusinesstypeList(1,100).then(res => {
         this.feesTypeData = res.data.data.records
       })
     },

+ 1 - 1
src/views/serviceConfiguration/businessbillno/index.vue

@@ -299,7 +299,7 @@
     },
     async created () {
       this.option = await this.getColumnData(this.getColumnName(311), this.optionBack);
-      bbusinesstypeList().then(res => {
+      bbusinesstypeList(1,100).then(res => {
         this.findObject(this.option.column, "businessTypeId").dicData = res.data.data.records
         this.feesTypeList = res.data.data.records
       })