liyg 2 年之前
父节点
当前提交
fbc87ae62e

+ 14 - 0
src/views/TMS/components/bmsship/detailsStatement.vue

@@ -423,6 +423,13 @@ export default {
       let arr = this.tableData.filter(e => {
         return e.batchId == row.batchId;
       });
+      let arr1 = this.tableData.filter(e => {
+        return e.batchId == row.batchId && e.unitPriceId;
+      });
+      if(arr1.length != arr.length){
+        this.$message.warning("单价不全,无法开票!");
+        return;
+      }
       let map = {
         list: arr,
         userId: getCookie("userId"),
@@ -448,6 +455,13 @@ export default {
       let arr = this.tableData.filter(e => {
         return e.batchId == row.batchId;
       });
+      let arr1 = this.tableData.filter(e => {
+        return e.batchId == row.batchId && e.unitPriceId;
+      });
+      if(arr1.length != arr.length){
+        this.$message.warning("单价不全,无法开票!");
+        return;
+      }
       let map = {
         list: arr,
         userId: getCookie("userId"),

+ 51 - 4
src/views/statisticalReport/components/Ship_dynamic_table.vue

@@ -157,7 +157,8 @@ export default {
       runStockString:null,
       stockStringArr: [],
       downStockStringArr: [],
-      runStockStringArr:[]
+      runStockStringArr:[],
+      loadTable:[]
     };
   },
   created() {},
@@ -166,6 +167,7 @@ export default {
     this.getStockString();
     this.getDownStockString();
     this.getRunStockList();
+    this.searchLoadData();
     // console.log(this.$refs.excelDom);
   },
   methods: {
@@ -193,9 +195,14 @@ export default {
         let table_book = XLSX.utils.table_to_book(tables);
         console.log("table_book:",table_book);
         console.log("sheet:",table_book.Sheets.Sheet1);
+        //限制单元格样式范围
+        let rangeList=['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q',,'R','S','T','U','V']
+        //得到自定义过滤数组
+        let filterList=this.exportFilter(table_book.Sheets.Sheet1);
+        console.log("filterList:",filterList);
         //这里遍历单元格给单元格对象设置属性,s为控制样式的属性
         Object.keys(table_book.Sheets.Sheet1).forEach((key) => {
-          if (key.indexOf('!') < 0) {
+          if (key.indexOf('!') < 0 && rangeList.indexOf(this.getCol(key)) >= 0 && filterList.indexOf(key)< 0) {
             table_book.Sheets.Sheet1[key].s = {
               font:{
                 name:"宋体",
@@ -232,10 +239,29 @@ export default {
         }
         return table_write;
     },
+    exportFilter(sheet){
+      //导出过滤方法
+      let keys=[];
+      Object.keys(sheet).forEach((key) => {
+          if (key.indexOf('!') < 0 && sheet[key].v=='万州港发货信息') {
+             let row = this.getRow(key);
+             console.log("万州港发货信息:",row);
+             for(let i=row; i<this.loadTable.length+row+3;i++){
+                keys.push('J'+i);
+             }
+          }else if(key.indexOf('!') < 0 && sheet[key].v=='控制线等闸船舶动态'){
+            let row = this.getRow(key);
+             console.log("控制线等闸船舶动态:",row);
+             for(let i=row;i<row+2;i++){
+                keys.push('Q'+i);
+             }
+          }
+       })
+       return keys;
+    },
     addRangeBorder (range, ws) {
-      let cols = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"];
+      let cols = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V"];
       range.forEach(item => {
-        console.log(item)
         let style = {
           s: {
             border: {
@@ -257,6 +283,13 @@ export default {
       })
       return ws;
     },
+    getRow(key){
+      return parseInt(key.replace(/[^0-9]/ig,""));
+    },
+    getCol(key){
+      let row=key.replace(/[^0-9]/ig,"");
+      return key.replace(row,"");
+    },
     appendOne(Sheet,row){
       //从后面新增1行,并行合并
         let seArr=Sheet['!fullref'].split(":");
@@ -481,6 +514,20 @@ export default {
           }
         });
    },
+   //查询装车数据
+   searchLoadData() {
+      let map = {}
+      this.axios.post('/api/v1/tms/getLoadData', map).then(res => {
+        if (res.data.code == '200') {
+          this.loadTable = res.data.data;
+        } else {
+          this.$message({
+            type: 'error',
+            message: res.data.data
+          })
+        }
+      })
+    },
   }
 };
 </script>

+ 5 - 5
src/views/statisticalReport/components/tableItem.vue

@@ -34,7 +34,7 @@
           <span class="empty-desc">暂无数据</span>
         </div>
       </template>
-      <div slot="append" style="width: 100%">
+      <div slot="append" style="width: 100%;">
         <!-- 下游港口库存 -->
         <div class="appendSlot" style="margin-top:20px">
           <span class="normalFirst"
@@ -709,12 +709,12 @@ export default {
 <style lang="scss" scoped>
 .el-table {
   .appendSlot {
-    margin-left: 5%;
+    margin-left: 1%;
     font-size: 18px;
     line-height: 20px;
-    .normalFirst {
-      margin-left: 42px;
-    }
+    // .normalFirst {
+    //   margin-left: 42px;
+    // }
     .normal {
       margin-left: 20px;
       font-weight: 500;