zyf 2 年 前
コミット
d0a5cde01c

+ 0 - 1
build/utils.js

@@ -17,7 +17,6 @@ const devPathSrc = path.resolve(__dirname, '../../../src') // node_modules应用
 //  'statisticalReport','systemConfig','TMS','WMS','workFlow']
 //let devModules = ["index", "statisticalReport", "appoint", "sale","AMS","TMS",'queue','WMS',"inward","RMS"];
 let devModules = ['all']
-
 if (pathSrc.indexOf('node_modules') > -1) {
   devModules = require('../../../cors.js').devModules
 }

BIN
dist.rar


+ 4 - 2
src/components/DilCommonUI/packages/mergeRowTable/src/mergeRowTable.vue

@@ -125,7 +125,9 @@ export default {
   props: {
     // 合并行下标
     columnIndexs: {
-      default: []
+      default() {
+        return []
+      }
     },
     //比对字段
     comparison: {
@@ -190,7 +192,7 @@ export default {
       default: '500px'
     },
     //行展开的key数组,用于控制行是否展开
-    expandRowKeys:[],
+    expandRowKeys: [],
     // 是否启用排序
     sortable: {
       default: 'custom'

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

@@ -161,9 +161,7 @@
               width="100px"
               align="center"
             >
-             <template slot-scope="scope">
-                {{(scope.row.monthRealTonnage).toFixed(2)}}
-              </template>
+           
             </el-table-column>
            
             <el-table-column
@@ -199,9 +197,6 @@
               width="120px"
               align="center"
             >
-              <template slot-scope="scope" v-if="scope.row.totalPreviewFee">
-                {{(scope.row.totalPreviewFee).toFixed(2)}}
-              </template>
             </el-table-column>
             <el-table-column
               prop="monthMakeTonnage"
@@ -209,9 +204,7 @@
               width="100px"
               align="center"
             >
-             <template slot-scope="scope">
-                {{(scope.row.monthMakeTonnage).toFixed(2)}}
-              </template>
+            
             </el-table-column>
              <el-table-column
               prop="statementTotalAmount"
@@ -232,7 +225,6 @@
               label="操作"
               width="100px"
               align="center"
-              fixed="right"
             >
               <template slot-scope="scope">
                 <el-button type="text" @click="operate(scope.row)"
@@ -482,13 +474,13 @@ export default {
           item.totalEnTonnage = data[index - 1].totalEnTonnage;
         }
         //总计预开票金额
-        item.totalPreviewFee=Math.round(item.totalPreviewTonnage*item.unitPrice*100)/100;
+        item.totalPreviewFee = new BigNumber(item.totalPreviewTonnage).times(item.unitPrice).toFixed(2);
         //月份结算吨位/
-        item.monthRealTonnage = Math.round(item.totalEnTonnage*item.monthLoadingProportion*100)/100;
+        item.monthRealTonnage = new BigNumber(item.totalEnTonnage).times(item.monthLoadingProportion).toFixed(2);
         //月份开票吨位
-        item.monthMakeTonnage = Math.round((item.monthRealTonnage-item.totalPreviewTonnage)*100)/100;
+        item.monthMakeTonnage = new BigNumber(item.monthRealTonnage).minus(item.totalPreviewTonnage).toFixed(2);
         //月份开票金额
-        item.statementTotalAmount=Math.round((item.monthMakeTonnage*item.unitPrice-item.inspectionsFee)*100)/100;
+        item.statementTotalAmount=new BigNumber(item.monthMakeTonnage).times(item.unitPrice).minus(item.inspectionsFee).toFixed(2);
       });
       this.getSpanArr(this.tableData);
     },

+ 36 - 8
src/views/WMS/components/port_deposit/loadPortStock.vue

@@ -55,7 +55,7 @@
       :pageSize="pageSize"
       :expandRowKeys="expandRowKeys"
     >
-    <el-table-column fixed="right" label="点后出入库详情" width="120">
+    <el-table-column fixed="right" label="操作" width="180">
           <template slot-scope="scope">
               <el-button @click="detailclick1(scope.row)" type="text" size="small">
                 入库详情
@@ -63,6 +63,9 @@
               <el-button @click="detailclick2(scope.row)" type="text" size="small">
                 出库详情
               </el-button>
+              <el-button @click="detailclick3(scope.row)" type="text" size="small">
+                手动清场
+              </el-button>
           </template>
     </el-table-column>
     <el-table-column type="expand" width="1">
@@ -128,7 +131,7 @@ export default {
       tableHead1:[
         {
           prop: "resultMaterialNumber",
-          label: "入库吨位",
+          label: "点后入库吨位",
           width: 150
         },
         {
@@ -140,12 +143,12 @@ export default {
       tableHead2:[
          {
           prop: "resultMaterialNumber",
-          label: "出库吨位",
+          label: "点后出库吨位",
           width: 150
         },
         {
           prop: "wagonNumber",
-          label: "出库车皮数",
+          label: "点后出库车皮数",
           width: 150
         },
         {
@@ -206,6 +209,29 @@ export default {
         }
       });
     },
+    detailclick3(row){
+      console.log("row",row);
+       this.$confirm('确认清场?', '提示', {
+          confirmButtonText: '确定',
+          cancelButtonText: '取消',
+          type: 'warning'
+        }).then(() => {
+         this.axios.post("/api/v1/wmsh/clearWmshGridMaterial", row).then(res => {
+          console.log("res", res);
+          if(res.data.succeed){
+            this.$message.success("清场成功!");
+            this.onclick();
+          }else{
+            this.$message.error("清场失败!");
+          }
+        });
+        }).catch(() => {
+          this.$message({
+            type: 'info',
+            message: '取消操作'
+          });          
+        });
+    },
     func(res) {
       console.log("aaa" + res);
       var resultActualInstallations = 0;
@@ -216,11 +242,13 @@ export default {
     },
     // 点击查询查看
     onclick() {
-      this.option.requestUrl =
+      let requestUrl=
         "/api/v1/wmsh/getLoadPortStockList?apiId=158&i=" +
-        new Date() +
-        "&con=" +
-        this.input;
+        new Date() 
+      if(this.input){
+        requestUrl+="&con=" + this.input;
+      }
+      this.option.requestUrl =requestUrl;
     },
     onclick1() {
       this.option2.requestUrl =

+ 15 - 13
src/views/WMS/components/steel/bar1_steel/bar1_steel_inboundReal.vue

@@ -14,7 +14,9 @@
         <el-option label="中班" value="2"></el-option>
         <el-option label="晚班" value="3"></el-option>
       </el-select>
-
+       <el-button type="primary" class="btn" @click="onclick">
+        查询
+      </el-button>
       <!-- <el-button type="primary" class="btn" @click="onreserved">
         预留
       </el-button> -->
@@ -67,7 +69,7 @@ export default {
                 this.$message({
                   type: "success",
                   message: "删除成功!",
-                });     
+                });
                 this.$router.go(0);
               } else {
                 this.$message({
@@ -106,7 +108,7 @@ export default {
     onclick(){
       let startTime = null;
       let endTime = null;
-      
+
       // 判断用户有没有班次,有班次则提供默认时间
       if(this.region!=null){
         let date =null;
@@ -121,10 +123,10 @@ export default {
         if(this.startTime!=null){
             date = this.startTime;
             // 判断当前开始时间是标准时间还是字符串时间
-            
+
            year = date.getFullYear(); // 年
           month = date.getMonth() + 1; // 月
-          day = date.getDate(); // 日 
+          day = date.getDate(); // 日
         }
         if(this.endTime!=null){
            date2 = this.endTime;
@@ -152,7 +154,7 @@ export default {
           // 将结束时间加一
           day =parseInt(day) + 1;
           this.endTime = year+"-"+month+"-"+day+" "+"00:00:00";
-          
+
         }else if(this.region == 1){
           this.startTime = year+"-"+month+"-"+day+" "+"07:30:00";
           this.endTime = year+"-"+month+"-"+day+" "+"15:30:00";
@@ -189,7 +191,7 @@ export default {
           endTime = sjTime(this.endTime);
         }
       }
-      
+
       // console.log(startTime)
       // console.log(endTime)
       if (startTime && endTime) {
@@ -197,9 +199,9 @@ export default {
           // if(getCookie("orgCode") == "dagangadmin" || getCookie("orgCode") == "zidonghuabu"){
           this.options.requestUrl = "/api/v1/wms/getWmsInboundResults?apiId=450&warehouseId="+1+"&startTime=" + startTime + "&endTime=" + endTime + "&i=" +new Date();
           // }else if(getCookie("orgCode") == "wuliuchuyunzhongxin"){
-          // this.options.requestUrl = "/api/v1/wms/getWmsInboundResults?apiId=371&orderType=13&startTime=" + startTime + "&endTime=" + endTime + "&i=" +new Date(); 
+          // this.options.requestUrl = "/api/v1/wms/getWmsInboundResults?apiId=371&orderType=13&startTime=" + startTime + "&endTime=" + endTime + "&i=" +new Date();
           // }else{
-          // this.options.requestUrl = '/api/v1/wms/getWmsInboundResults?apiId=371&userId=' + getCookie("orgCode") +"&startTime=" + startTime + "&endTime=" + endTime + "&i=" +new Date(); 
+          // this.options.requestUrl = '/api/v1/wms/getWmsInboundResults?apiId=371&userId=' + getCookie("orgCode") +"&startTime=" + startTime + "&endTime=" + endTime + "&i=" +new Date();
           // }
         } else {
           this.startTime = null;
@@ -250,9 +252,9 @@ export default {
               console.log("res.data"+res.data)
               if (res.data >= 1) {
                 //改变查询条件
-                this.$refs.table.setDataRequestQuery({
-                  
-                });  
+           this.$refs.table.setDataRequestQuery({
+
+                });
                 this.$router.go(0);
               }
             });
@@ -288,4 +290,4 @@ export default {
     }
     }
   }
-</style>
+</style>

+ 51 - 0
src/views/appoint/components/saleContract/dispacherSwitch.vue

@@ -0,0 +1,51 @@
+<template>
+  <div>
+    <div style="margin-left:45%;margin-top:50px;font-size:40px">
+        <el-switch
+        v-model="value"
+        active-text="允许派车给无GPS车辆"
+        @change="updateSwitch">
+        </el-switch>
+    </div>
+    
+  </div>
+</template>
+<script>
+import { getCookie } from "@/utils/util.js";
+export default {
+  name: "dispacherSwitch",
+  data() {
+    return {
+      value: true
+    };
+  },
+  mounted() {
+   this.getSwitch();
+  },
+  methods: {
+    getSwitch(){
+        this.axios.post("/api/v1/uc/getDispachSwitch").then((res)=>{
+            if(res.data.data.isOk==0){
+                this.value=false;
+            }else{
+                this.value=true;
+            }
+        });
+    },
+    updateSwitch(){
+        let map={};
+        if(this.value){
+            map.isOk=1;
+        }else{
+            map.isOk=0
+        }
+        this.axios.post("/api/v1/uc/updateDispachSwitch",map).then((res)=>{
+           console.log(res);
+        });
+    }
+  }
+};
+</script>
+<style lang="scss" scoped>
+
+</style>

+ 7 - 0
src/views/appoint/router/index.js

@@ -57,6 +57,7 @@ import saleOrderCoproductCarrier from '../components/saleContract/saleOrderCopro
 import saleOrderDetail from '../components/saleContract/saleOrderDetail.vue'
 import saleOrderDetailApproved from '../components/saleContract/saleOrderDetailApproved.vue'
 import saleOrderMaterial from '../components/saleContract/saleOrderMaterial.vue'
+import dispacherSwitch from '../components/saleContract/dispacherSwitch.vue'
 // import saleOrderSteel from "../components/saleContract/saleOrderSteel.vue";
 const saleOrderSteel = () =>
   import('../components/saleContract/saleOrderSteel.vue')
@@ -281,6 +282,12 @@ const constantRouterMap = [
         meta: { code: 'xtpzgl-jggl' },
         component: addSaleOrderSteelSend
       },
+      {
+        path: 'dispacherSwitch',
+        name: 'dispacherSwitch',
+        meta: { code: 'xtpzgl-jggl' },
+        component: dispacherSwitch
+      },
       {
         path: 'addSaleOrderSteelSendCarrier/:saleOrderId',
         name: 'addSaleOrderSteelSendCarrier',

+ 474 - 0
src/views/inward/components/inwardBillet/addInwardBillet.vue

@@ -0,0 +1,474 @@
+// 新增内转钢坯需求
+<template>
+  <div class="inwardRequirement">
+    <div>
+      <!-- 用车单位 -->
+      <div class="requireUnit form">
+        <el-form class="demo-form-inline" label-width="80px" :inline="true">
+          <el-form-item label="用车单位" v-show="false">
+            <el-input class="inline-input" v-model="requireUnitName" disabled>
+            </el-input>
+          </el-form-item>
+          <el-form-item label="需求类型" v-show="false">
+            <el-input class="inline-input" v-model="requirementType" disabled>
+            </el-input>
+          </el-form-item>
+          <el-form-item label="炉号">
+            <el-input class="inline-input" v-model.number="heatNo"> </el-input>
+          </el-form-item>
+          <el-form-item label="支数">
+            <el-input class="inline-input" v-model="count"> </el-input>
+          </el-form-item>
+          <!-- 车辆我设为多选了,我觉得会省事,他们应该不希望每台车都做一次 -->
+          <el-form-item label="选择车辆">
+            <el-select class="inline-select" v-model="capacityIds" multiple>
+              <el-option
+                v-for="item in optionsCapacity"
+                :label="item.capacityNumber"
+                :value="item.capacityId"
+                :key="item.capacityId"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="选择班别">
+            <el-select class="inline-select" v-model="clazz">
+              <el-option
+                v-for="item in options"
+                :key="item.value"
+                :label="item.value"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="选择钢种">
+            <el-select class="inline-select" v-model="type" filterable>
+              <el-option
+                v-for="(item, index) in options1"
+                :key="index"
+                :label="item.value"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="选择规格">
+            <el-select class="inline-select" v-model="model" filterable>
+              <el-option
+                v-for="(item, index) in options2"
+                :key="index"
+                :label="item.value"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="选择装货点" v-show="false">
+            <el-select class="inline-select" v-model="loadPoint">
+              <el-option
+                v-for="item in optionsLoad"
+                :key="item.warehouseId"
+                :label="item.warehouseName"
+                :value="item.warehouseId"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="选择卸货点">
+            <el-select class="inline-select" v-model="unloadPoint">
+              <el-option
+                v-for="item in optionsUnload"
+                :key="item.warehouseId"
+                :label="item.warehouseName"
+                :value="item.warehouseId"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-form>
+      </div>
+    </div>
+    <div class="button-box">
+      <el-button type="primary" @click="makeSure">保存</el-button>
+    </div>
+    <div>
+      <mergeRowTable v-bind.sync="first" ref="table"> </mergeRowTable>
+    </div>
+  </div>
+</template>
+
+<script>
+import PageTitle from '@/components/Page/Title'
+import { sjTime } from '@/utils/sharedJsFile'
+import { getCookie } from '@/utils/util.js'
+import { isNumber } from '../../../ADMINISTRATORS/app'
+export default {
+  components: { PageTitle },
+  data() {
+    return {
+      requireUnitId: null,
+      requireUnitName: null,
+      heatNo: null,
+      requirementType: '计重',
+      clazz: null,
+      type: null,
+      model: null,
+      capacityId: null,
+      capacityNumber: null,
+      loadPoint: null,
+      unloadPoint: null,
+      count: null,
+      options: [
+        {
+          value: '甲'
+        },
+        {
+          value: '乙'
+        },
+        {
+          value: '丙'
+        },
+        {
+          value: '丁'
+        }
+      ],
+      options1: [
+        {
+          value: 'Q215'
+        },
+        {
+          value: 'HPB300'
+        },
+        {
+          value: 'HRB400E'
+        },
+        {
+          value: 'HRB400'
+        },
+        {
+          value: 'HRB500'
+        },
+        {
+          value: 'HRB500E'
+        },
+        {
+          value: 'HRB600'
+        }
+      ],
+      options2: [
+        {
+          value: 'Φ16'
+        },
+        {
+          value: 'Φ6.5'
+        },
+        {
+          value: 'Φ6'
+        },
+        {
+          value: 'Φ8'
+        },
+        {
+          value: 'Φ10'
+        },
+        {
+          value: 'Φ12'
+        },
+        {
+          value: 'Φ14'
+        },
+        {
+          value: 'Φ16'
+        },
+        {
+          value: 'Φ36'
+        },
+        {
+          value: 'Φ40'
+        }
+      ],
+      optionsCapacity: [],
+      optionsLoad: [],
+      optionsUnload: [],
+      capacityIds: [],
+      first: {
+        // first请求数据的地址
+        requestUrl: ''
+      }
+    }
+  },
+  mounted() {
+    this.getRequireUnit()
+    this.getLoadPoint()
+    this.getUnloadPoint()
+    this.getCapacity()
+  },
+  created() {
+    if (
+      getCookie('orgCode') == 'dagangadmin' ||
+      getCookie('orgCode') == 'zidonghuabu'
+    ) {
+      this.first.requestUrl = '/api/v1/ams/getBilletRequirementList?apiId=518'
+    } else {
+      this.first.requestUrl =
+        '/api/v1/ams/getBilletRequirementList?apiId=518&orgCode=' +
+        getCookie('orgCode')
+    }
+  },
+  methods: {
+    resetCapacity() {
+      this.getCapacity()
+    },
+    deleteRow(index) {
+      this.selectionList.splice(index, 1)
+    },
+    //获取炼钢厂连铸车间
+    getRequireUnit() {
+      this.axios
+        .post('/api/v1/uc/getRequireUnitName?index=炼钢厂连铸车间')
+        .then(res => {
+          if (res.data.code == '200') {
+            this.requireUnitId = res.data.data[0].shipperId
+            this.requireUnitName = res.data.data[0].shipperName
+          }
+        })
+    },
+    //查询装货点
+    getLoadPoint() {
+      this.axios
+        .post('/api/v1/uc/getUnloadingMesByLike?apiId=374&index=连铸车间')
+        .then(res => {
+          if (res.data.code == '200') {
+            this.optionsLoad = res.data.data.list
+            this.loadPoint = parseInt(this.optionsLoad[0].warehouseId)
+          }
+        })
+    },
+    //查询卸货点
+    getUnloadPoint() {
+      this.axios
+        .post('/api/v1/uc/getUnloadingMesByLike?apiId=374', {
+          warehouseName: ['一棒车间', '高线车间']
+        })
+        .then(res => {
+          if (res.data.code == '200') {
+            this.optionsUnload = res.data.data.list
+          }
+        })
+    },
+    //查询车牌号
+    getCapacity() {
+      this.axios
+        .post(
+          '/api/v1/uc/getAllCapacityByCarrierLike?apiId=429&con=钢坯&carrierSsoId=1024042523359842304'
+        )
+        .then(res => {
+          if (res.data.code == '200') {
+            //过滤
+            let arr = []
+            // this.selectionList = res.data.data.list
+            res.data.data.list.forEach(e => {
+              let map = {}
+              map.capacityNumber = e.capacityNumber
+              map.capacityId = e.capacityId
+              arr.push(map)
+            })
+            this.optionsCapacity = Array.from(arr)
+            console.log(this.optionsCapacity)
+            // console.log(Array.from(this.optionsCapacity))
+            // console.log(res.data.data.list)
+          }
+        })
+    },
+    // 新增
+    makeSure() {
+      let capacityList = []
+      this.capacityIds.forEach(e => {
+        let map = {}
+        map.capacityId = e
+        capacityList.push(map)
+      })
+      let map = {
+        requirementShipperId: this.requireUnitId,
+        heatNo: this.heatNo,
+        requirementType: '计重',
+        clazz: this.clazz,
+        type: this.type,
+        model: this.model,
+        requirementPlatformId: this.loadPoint,
+        requirementUnloadUnitId: this.unloadPoint,
+        capacityList: capacityList,
+        count: this.count,
+        orgCode: getCookie('orgCode')
+      }
+      console.log('map:', map)
+      if (
+        !map.requirementShipperId ||
+        !map.heatNo ||
+        !map.requirementType ||
+        !map.clazz ||
+        !map.type ||
+        !map.model ||
+        !map.requirementPlatformId ||
+        !map.requirementUnloadUnitId ||
+        !map.count ||
+        map.capacityList.length <= 0
+      ) {
+        this.$message.warning('每项都为必填!')
+        return
+      }
+      if (!isNumber(map.count)) {
+        this.$message.error('支数不为整数!')
+        return
+      } else if (map.count > 25) {
+        this.$message.error('支数必须小于等于25支')
+        return
+      }
+      //提交
+      this.axios.post('/api/v1/ams/addBilletRequirement', map).then(res => {
+        if (res.data.code == '200') {
+          this.$message.success('派发成功!')
+        }
+      })
+    },
+    // 返回
+    cancel() {
+      this.$router.go(-1)
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+.inwardRequirement {
+  .from {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    margin-top: 5px;
+    margin-bottom: 20px;
+  }
+  .drawSty {
+    .el-input {
+      width: 240px;
+    }
+  }
+  .DueTime {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    margin-top: 5px;
+    margin-bottom: 20px;
+    .chooseDueTime {
+      margin-right: 70px;
+    }
+  }
+  .capacity {
+    display: flex;
+    text-align: center;
+    align-items: center;
+    justify-content: center;
+    margin-top: 2rem;
+    margin-bottom: 1.25rem;
+    margin-right: 10px;
+  }
+  .materialDrawer {
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    .el-input {
+      width: 320px;
+    }
+    .el-select {
+      width: 320px;
+    }
+    .el-autocomplete {
+      width: 320px;
+    }
+    .el-form {
+      padding: 10px;
+    }
+    .truckBtn {
+      width: 320px;
+    }
+  }
+  .swtichTop {
+    display: flex;
+    height: 40px;
+    align-content: center;
+    justify-content: center;
+    padding-right: 20px;
+    .titile {
+      color: red;
+      font-size: 14px;
+    }
+    .switch {
+      margin-right: -30px;
+    }
+  }
+  .requireUnit {
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    margin-top: 20px;
+    .text {
+      display: inline-block;
+      width: 170px;
+      text-align: right;
+      .input {
+        width: 250px;
+        margin-right: 90px;
+      }
+    }
+  }
+  .form-box {
+    display: flex;
+    text-align: center;
+    align-items: center;
+    justify-content: center;
+    margin-top: 20px;
+    margin-bottom: 20px;
+    margin-left: 10px;
+    ::v-deep .el-form {
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      margin-right: 600px;
+      // margin-left: -20px;
+      background-color: yellow;
+      .preview-group {
+        background-color: blue;
+        ::v-deep .el-form-item {
+          background-color: blue;
+          .el-form-item__label {
+            width: 170px !important;
+            background-color: blue;
+          }
+          ::v-deep .el-form-item__content {
+            background-color: red;
+            width: 300px;
+          }
+          .el-input {
+            width: 210px !important;
+          }
+        }
+      }
+    }
+  }
+  .button-box {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    margin-top: 20px;
+    margin-right: 90px;
+  }
+}
+</style>
+<style>
+.el-drawer__body {
+  overflow: auto;
+}
+.el-drawer__container ::-webkit-scrollbar {
+  display: none;
+}
+</style>

+ 187 - 0
src/views/inward/components/inwardBillet/inwardBillet.vue

@@ -0,0 +1,187 @@
+// 内转钢坯界面,留作备用
+<template>
+  <div class="inwardBilletRequirement">
+    <div class="sache">
+      <el-input placeholder="请输入内容" v-model="inputText" clearable>
+      </el-input>
+      <span>需求时间:</span>
+      <el-date-picker
+        v-model="startTime"
+        type="datetime"
+        placeholder="选择日期"
+        style="width:220px"
+      >
+      </el-date-picker>
+      <span>至</span>
+      <el-date-picker
+        v-model="endTime"
+        type="datetime"
+        placeholder="选择日期"
+        style="width:220px"
+      >
+      </el-date-picker>
+      <el-button type="primary" class="btn" @click="onclick">
+        <i class="el-icon-search"></i>查询
+      </el-button>
+      <el-button type="primary" class="btn" @click="toInsert2">
+        <i class="el-icon-plus"></i>新增
+      </el-button>
+    </div>
+    <template>
+      <div>
+        <mergeRowTable v-bind.sync="first" ref="table">
+          <el-table-column fixed="right" label="操作" width="80">
+            <template slot-scope="scope">
+              <el-button
+                type="text"
+                size="mini"
+                @click="closeRequirement(scope)"
+              >
+                停止
+              </el-button>
+              <el-button
+                type="text"
+                size="mini"
+                @click="getRequirementOrder(scope)"
+                >运单</el-button
+              >
+            </template>
+          </el-table-column>
+        </mergeRowTable>
+      </div>
+    </template>
+  </div>
+</template>
+<script>
+import { getCookie } from '@/utils/util.js'
+import { sjTime } from '@/utils/sharedJsFile'
+export default {
+  data() {
+    return {
+      inputText: null,
+      orgCode: '',
+      startTime: null,
+      endTime: null,
+      first: {
+        // first请求数据的地址
+        requestUrl: ''
+      }
+    }
+  },
+  created() {
+    if (
+      getCookie('orgCode') == 'dagangadmin' ||
+      getCookie('orgCode') == 'zidonghuabu'
+    ) {
+      this.first.requestUrl = '/api/v1/ams/getBilletRequirementList?apiId=518'
+    } else {
+      this.first.requestUrl =
+        '/api/v1/ams/getBilletRequirementList?apiId=518&orgCode=' +
+        getCookie('orgCode')
+    }
+  },
+  mounted() {},
+  methods: {
+    onclick() {
+      let orgCode = null
+      let startTime = null
+      let endTime = null
+      if (this.startTime && this.endTime) {
+        startTime = sjTime(this.startTime)
+        endTime = sjTime(this.endTime)
+      }
+      if (
+        getCookie('orgCode') != 'dagangadmin' &&
+        getCookie('orgCode') != 'zidonghuabu'
+      ) {
+        orgCode = getCookie('orgCode')
+      }
+      this.first.requestUrl =
+        '/api/v1/ams/getBilletRequirementList?apiId=518&requirementStatus=0&orgCode=' +
+        orgCode +
+        '&index=' +
+        this.inputText +
+        '&startTime=' +
+        startTime +
+        '&endTime=' +
+        endTime +
+        '&i=' +
+        new Date()
+    },
+    //查看需求下面的运单
+    getRequirementOrder(scope) {
+      this.$router.push('/getRequirementOrder/' + scope.row.requirementId)
+    },
+    handleClick(tab, event) {
+      this.getRequestUrl()
+    },
+    getRequestUrl() {
+      if (
+        getCookie('orgCode') == 'dagangadmin' ||
+        getCookie('orgCode') == 'zidonghuabu'
+      ) {
+        this.first.requestUrl =
+          '/api/v1/ams/getBilletRequirementList?apiId=518&requirementStatus=0&i=' +
+          new Date()
+      } else {
+        this.first.requestUrl =
+          '/api/v1/ams/getBilletRequirementList?apiId=518&requirementStatus=0&orgCode=' +
+          getCookie('orgCode') +
+          '&i=' +
+          new Date()
+      }
+    },
+    toInsert2() {
+      this.$router.push('/addInwardBillet')
+    },
+    closeRequirement(scope) {
+      this.$confirm('是否停止转运', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning',
+        center: true
+      })
+        .then(() => {
+          this.axios
+            .post(
+              '/api/v1/ams/closeDueDate?requirementId=' +
+                scope.row.requirementId
+            )
+            .then(res => {
+              if (res.data.code == 200) {
+                this.$message({
+                  type: 'success',
+                  message: '停止成功!'
+                })
+                this.getRequestUrl()
+              } else {
+                this.$message({
+                  message: '停止失败',
+                  type: 'warning'
+                })
+              }
+            })
+        })
+        .catch(() => {
+          this.$message({
+            type: 'info',
+            message: '删除操作已取消!'
+          })
+        })
+    }
+  }
+}
+</script>
+<style lang="scss" scoped>
+.inwardBilletRequirement {
+  margin-top: 20px;
+  margin-left: 20px;
+  .sache {
+    margin-top: 30px;
+    padding-bottom: 10px;
+    .el-input {
+      width: 20%;
+    }
+  }
+}
+</style>

+ 357 - 336
src/views/inward/router/index.js

@@ -1,687 +1,708 @@
-import Vue from "vue";
-import Router from "vue-router";
+import Vue from 'vue'
+import Router from 'vue-router'
 
-import routerBefore from "@/config/routerBefore.js";
+import routerBefore from '@/config/routerBefore.js'
 
 // 主要
-import main from "@/components/main.vue";
+import main from '@/components/main.vue'
 // 系统配置管理
 //运输预约--提出需求
-import requirement from "@/views/inward/components/truckAppoint/requirement.vue";
+import requirement from '@/views/inward/components/truckAppoint/requirement.vue'
 // 没有提出需求页面
-import requirementOther from "@/views/inward/components/truckAppoint/requirementOther.vue";
+import requirementOther from '@/views/inward/components/truckAppoint/requirementOther.vue'
 //运输预约--提出采购内转需求
-import purInwardRequirement from "@/views/inward/components/truckAppoint/purInwardRequirement.vue";
+import purInwardRequirement from '@/views/inward/components/truckAppoint/purInwardRequirement.vue'
 //运输预约--制定计划
-import truckAppointPlan from "@/views/inward/components/truckAppoint/plan.vue";
+import truckAppointPlan from '@/views/inward/components/truckAppoint/plan.vue'
 //运输订单--新增采购内转派单
-import addPurInwardOrder from "@/views/inward/components/truckOrder/addPurInwardOrder.vue";
+import addPurInwardOrder from '@/views/inward/components/truckOrder/addPurInwardOrder.vue'
 //运输订单--采购内转派单
-import purInwardTruckOrder from "@/views/inward/components/truckOrder/purInwardTruckOrder.vue";
+import purInwardTruckOrder from '@/views/inward/components/truckOrder/purInwardTruckOrder.vue'
 
 //运输预约--制定内转钢材到异地库计划
-import RailPlan from "@/views/inward/components/truckAppoint/RailPlan.vue";
+import RailPlan from '@/views/inward/components/truckAppoint/RailPlan.vue'
 //运输订单--分解计划
-import truckOrderPlan from "@/views/inward/components/truckOrder/plan.vue";
+import truckOrderPlan from '@/views/inward/components/truckOrder/plan.vue'
 //运输订单--分解内转异地库计划
-import truckOrderRailPlan from "@/views/inward/components/truckOrder/RailPlan.vue";
+import truckOrderRailPlan from '@/views/inward/components/truckOrder/RailPlan.vue'
 //运输订单--分派计划
-import dispatchPlan from "@/views/inward/components/truckOrder/dispatchPlan.vue";
+import dispatchPlan from '@/views/inward/components/truckOrder/dispatchPlan.vue'
 //内转钢材到异地库--汽车运输--进厂作业
-import enFactoryResult from "@/views/inward/components/offsetSteel/truckTransport/enFactoryResult.vue";
+import enFactoryResult from '@/views/inward/components/offsetSteel/truckTransport/enFactoryResult.vue'
 //内转钢材到异地库--汽车运输--计皮作业
-import tareWeightResult from "@/views/inward/components/offsetSteel/truckTransport/tareWeightResult.vue";
+import tareWeightResult from '@/views/inward/components/offsetSteel/truckTransport/tareWeightResult.vue'
 //内转钢材到异地库--汽车运输--装车作业
-import loadTruckResult from "@/views/inward/components/offsetSteel/truckTransport/loadTruckResult.vue";
+import loadTruckResult from '@/views/inward/components/offsetSteel/truckTransport/loadTruckResult.vue'
 //内转钢材到异地库--汽车运输--质检作业
-import qualityResult from "@/views/inward/components/offsetSteel/truckTransport/qualityResult.vue";
+import qualityResult from '@/views/inward/components/offsetSteel/truckTransport/qualityResult.vue'
 //内转钢材到异地库--汽车运输--计毛作业
-import grossWeightResult from "@/views/inward/components/offsetSteel/truckTransport/grossWeightResult.vue";
+import grossWeightResult from '@/views/inward/components/offsetSteel/truckTransport/grossWeightResult.vue'
 //内转钢材到异地库--汽车运输--出厂作业
-import outFactory from "@/views/inward/components/offsetSteel/truckTransport/outFactory.vue";
+import outFactory from '@/views/inward/components/offsetSteel/truckTransport/outFactory.vue'
 //内转钢材到异地库--汽车运输--收货作业
-import truckReceiptResult from "@/views/inward/components/offsetSteel/truckTransport/truckReceiptResult.vue";
+import truckReceiptResult from '@/views/inward/components/offsetSteel/truckTransport/truckReceiptResult.vue'
 //内转钢材到异地库--火车运输--请车作业
-import wagonPlease from "@/views/inward/components/offsetSteel/truckTrain/wagonPlease.vue";
+import wagonPlease from '@/views/inward/components/offsetSteel/truckTrain/wagonPlease.vue'
 
 //内转钢材到异地库--分派订单
-import saleTruckOrder from "@/views/inward/components/offsetSteel/saleSteelTruckOrder/saleTruckOrder.vue";
-import saleTruckPreview from "@/views/inward/components/offsetSteel/saleSteelTruckOrder/saleTruckPreview.vue";
+import saleTruckOrder from '@/views/inward/components/offsetSteel/saleSteelTruckOrder/saleTruckOrder.vue'
+import saleTruckPreview from '@/views/inward/components/offsetSteel/saleSteelTruckOrder/saleTruckPreview.vue'
 
 //内转钢材到异地库--火车运输--批车作业
-import wagonApprove from "@/views/inward/components/offsetSteel/truckTrain/wagonApprove.vue";
+import wagonApprove from '@/views/inward/components/offsetSteel/truckTrain/wagonApprove.vue'
 //内转钢材到异地库--火车运输--装车作业
-import wagonLoad from "@/views/inward/components/offsetSteel/truckTrain/wagonLoad.vue";
+import wagonLoad from '@/views/inward/components/offsetSteel/truckTrain/wagonLoad.vue'
 //内转钢材到异地库--火车运输--卸车作业
-import wagonUnLoad from "@/views/inward/components/offsetSteel/truckTrain/wagonUnLoad.vue";
+import wagonUnLoad from '@/views/inward/components/offsetSteel/truckTrain/wagonUnLoad.vue'
 //内转进口矿/国产矿/燃料--达州站-厂内料场--火车卸车
-import trainUnload from "@/views/inward/components/inwardImport/daZhou/trainUnload.vue";
+import trainUnload from '@/views/inward/components/inwardImport/daZhou/trainUnload.vue'
 //内转进口矿/国产矿/燃料--达州站-厂内料场--汽车装车
-import truckLoad from "@/views/inward/components/inwardImport/daZhou/truckLoad.vue";
+import truckLoad from '@/views/inward/components/inwardImport/daZhou/truckLoad.vue'
 //内转进口矿/国产矿/燃料--达州站-厂内料场--进厂作业
-import daZhouEnFactoryResult from "@/views/inward/components/inwardImport/daZhou/enFactoryResult.vue";
+import daZhouEnFactoryResult from '@/views/inward/components/inwardImport/daZhou/enFactoryResult.vue'
 //内转进口矿/国产矿/燃料--达州站-厂内料场--计毛作业
-import daZhouGrossWeightResult from "@/views/inward/components/inwardImport/daZhou/grossWeightResult.vue";
+import daZhouGrossWeightResult from '@/views/inward/components/inwardImport/daZhou/grossWeightResult.vue'
 //内转进口矿/国产矿/燃料--达州站-厂内料场--卸货作业
-import unload from "@/views/inward/components/inwardImport/daZhou/unload.vue";
+import unload from '@/views/inward/components/inwardImport/daZhou/unload.vue'
 //内转进口矿/国产矿/燃料--达州站-厂内料场--质检作业
-import daZhouQualityResult from "@/views/inward/components/inwardImport/daZhou/qualityResult.vue";
+import daZhouQualityResult from '@/views/inward/components/inwardImport/daZhou/qualityResult.vue'
 //内转进口矿/国产矿/燃料--达州站-厂内料场--计皮作业
-import daZhouTareWeightResult from "@/views/inward/components/inwardImport/daZhou/tareWeightResult.vue";
+import daZhouTareWeightResult from '@/views/inward/components/inwardImport/daZhou/tareWeightResult.vue'
 //内转进口矿/国产矿/燃料--达州站-厂内料场--收货作业
-import receipt from "@/views/inward/components/inwardImport/daZhou/receipt.vue";
+import receipt from '@/views/inward/components/inwardImport/daZhou/receipt.vue'
 //内转进口矿/国产矿/燃料--达州站-厂内料场--出厂作业
-import daZhouOutFactory from "@/views/inward/components/inwardImport/daZhou/outFactory.vue";
+import daZhouOutFactory from '@/views/inward/components/inwardImport/daZhou/outFactory.vue'
 //内转进口矿/国产矿/燃料--老区轨道衡-厂内料场--铁路专用线卸货
-import trainLineUnload from "@/views/inward/components/inwardImport/oldAreaRailScale/trainLineUnload.vue";
+import trainLineUnload from '@/views/inward/components/inwardImport/oldAreaRailScale/trainLineUnload.vue'
 //内转进口矿/国产矿/燃料--老区轨道衡-厂内料场--质检作业
-import oldAreaRailScaleQualityResult from "@/views/inward/components/inwardImport/oldAreaRailScale/qualityResult.vue";
+import oldAreaRailScaleQualityResult from '@/views/inward/components/inwardImport/oldAreaRailScale/qualityResult.vue'
 //内转进口矿-轨道衡厂内料场-质检作业
-import oldAreaEnfactoryResult from "@/views/inward/components/inwardImport/oldAreaRailScale/enFactory.vue";
+import oldAreaEnfactoryResult from '@/views/inward/components/inwardImport/oldAreaRailScale/enFactory.vue'
 //内转老区轨道衡进厂
-import oldAreaOutfactoryResult from "@/views/inward/components/inwardImport/oldAreaRailScale/outFactory.vue";
+import oldAreaOutfactoryResult from '@/views/inward/components/inwardImport/oldAreaRailScale/outFactory.vue'
 //内转进口矿/国产矿/燃料--老区轨道衡-厂内料场--汽车装货
-import oldAreaRailScaleTruckLoad from "@/views/inward/components/inwardImport/oldAreaRailScale/truckLoad.vue";
+import oldAreaRailScaleTruckLoad from '@/views/inward/components/inwardImport/oldAreaRailScale/truckLoad.vue'
 //内转进口矿/国产矿/燃料--老区轨道衡-厂内料场--计毛作业
-import oldAreaRailScaleGrossWeightResult from "@/views/inward/components/inwardImport/oldAreaRailScale/grossWeightResult.vue";
+import oldAreaRailScaleGrossWeightResult from '@/views/inward/components/inwardImport/oldAreaRailScale/grossWeightResult.vue'
 //内转进口矿/国产矿/燃料--老区轨道衡-厂内料场--卸货作业
-import oldAreaRailScaleUnload from "@/views/inward/components/inwardImport/oldAreaRailScale/unload.vue";
+import oldAreaRailScaleUnload from '@/views/inward/components/inwardImport/oldAreaRailScale/unload.vue'
 //内转进口矿/国产矿/燃料--老区轨道衡-厂内料场--计皮作业
-import oldAreaRailScaleTareWeightResult from "@/views/inward/components/inwardImport/oldAreaRailScale/tareWeightResult.vue";
+import oldAreaRailScaleTareWeightResult from '@/views/inward/components/inwardImport/oldAreaRailScale/tareWeightResult.vue'
 //内转进口矿/国产矿/燃料--老区轨道衡-厂内料场--收货作业
-import oldAreaRailScaleReceipt from "@/views/inward/components/inwardImport/oldAreaRailScale/receipt.vue";
+import oldAreaRailScaleReceipt from '@/views/inward/components/inwardImport/oldAreaRailScale/receipt.vue'
 //内转进口矿/国产矿/燃料--内转厂内物资--进厂作业
-import inwardFactoryEnFactoryResult from "@/views/inward/components/inwardFactory/enFactoryResult.vue";
+import inwardFactoryEnFactoryResult from '@/views/inward/components/inwardFactory/enFactoryResult.vue'
 //内转进口矿/国产矿/燃料--内转厂内物资--装车作业
-import inwardFactoryTruckLoad from "@/views/inward/components/inwardFactory/truckLoad.vue";
+import inwardFactoryTruckLoad from '@/views/inward/components/inwardFactory/truckLoad.vue'
 //内转进口矿/国产矿/燃料--内转厂内物资--计量作业
-import inwardFactoryTareWeightResult from "@/views/inward/components/inwardFactory/tareWeightResult.vue";
+import inwardFactoryTareWeightResult from '@/views/inward/components/inwardFactory/tareWeightResult.vue'
 //内转进口矿/国产矿/燃料--内转厂内物资--卸车作业
-import inwardFactoryUnload from "@/views/inward/components/inwardFactory/unload.vue";
+import inwardFactoryUnload from '@/views/inward/components/inwardFactory/unload.vue'
 //内转进口矿/国产矿/燃料--内转厂内物资--出厂作业
-import inwardFactoryOutFactory from "@/views/inward/components/inwardFactory/outFactory.vue";
+import inwardFactoryOutFactory from '@/views/inward/components/inwardFactory/outFactory.vue'
 //内转进口矿/国产矿/燃料--内转厂内物资--计时作业
-import timeTaskResult from "@/views/inward/components/inwardFactory/timeTaskResult.vue";
+import timeTaskResult from '@/views/inward/components/inwardFactory/timeTaskResult.vue'
 //内转进口矿/国产矿/燃料--内转厂内物资--计数作业
-import countResult from "@/views/inward/components/inwardFactory/countResult.vue";
+import countResult from '@/views/inward/components/inwardFactory/countResult.vue'
 //内转进口矿/国产矿/燃料--内转厂内物资--包月作业
-import monthResult from "@/views/inward/components/inwardFactory/monthResult.vue";
+import monthResult from '@/views/inward/components/inwardFactory/monthResult.vue'
 //倒库作业
-import reverseResult from "@/views/inward/components/inwardFactory/reverseResult.vue";
+import reverseResult from '@/views/inward/components/inwardFactory/reverseResult.vue'
 //**************************************跳转界面**************************************/
 
 //新增采购内转需求
-import addRequirement from "@/views/inward/components/truckAppoint/addRequirement.vue";
+import addRequirement from '@/views/inward/components/truckAppoint/addRequirement.vue'
 //新增厂内内转需求
-import addRequirement2 from "@/views/inward/components/truckAppoint/addRequirement2.vue";
+import addRequirement2 from '@/views/inward/components/truckAppoint/addRequirement2.vue'
 //修改需求
-import updateRequirement from "@/views/inward/components/truckAppoint/updateRequirement.vue";
+import updateRequirement from '@/views/inward/components/truckAppoint/updateRequirement.vue'
 //新增计划
-import addPlan from "@/views/inward/components/truckAppoint/addPlan.vue";
+import addPlan from '@/views/inward/components/truckAppoint/addPlan.vue'
 //修改计划
-import updatePlan from "@/views/inward/components/truckAppoint/updatePlan.vue";
+import updatePlan from '@/views/inward/components/truckAppoint/updatePlan.vue'
 //新增内转钢材到异地库计划
-import addRailPlan from "@/views/inward/components/truckAppoint/addRailPlan.vue";
+import addRailPlan from '@/views/inward/components/truckAppoint/addRailPlan.vue'
 //计划分解
-import decomposePlan from "@/views/inward/components/truckOrder/decomposePlan.vue";
+import decomposePlan from '@/views/inward/components/truckOrder/decomposePlan.vue'
 
 //查看计划运单详情
-import getPlanOrder from "@/views/inward/components/truckOrder/getPlanOrder.vue";
+import getPlanOrder from '@/views/inward/components/truckOrder/getPlanOrder.vue'
 //查看需求运单详情
-import getRequirementOrder from "@/views/inward/components/truckAppoint/getRequirementOrder.vue";
+import getRequirementOrder from '@/views/inward/components/truckAppoint/getRequirementOrder.vue'
 //内转异地库计划分解
-import decomposeRailPlan from "@/views/inward/components/truckOrder/decomposeRailPlan.vue";
+import decomposeRailPlan from '@/views/inward/components/truckOrder/decomposeRailPlan.vue'
 //请车作业新增
-import addWagonPlease from "@/views/inward/components/offsetSteel/truckTrain/addWagonPlease.vue";
+import addWagonPlease from '@/views/inward/components/offsetSteel/truckTrain/addWagonPlease.vue'
 //请车作业修改
-import editWagonPlease from "@/views/inward/components/offsetSteel/truckTrain/editWagonPlease.vue";
+import editWagonPlease from '@/views/inward/components/offsetSteel/truckTrain/editWagonPlease.vue'
 //批车作业新增
-import addApproveWagonPlease from "@/views/inward/components/offsetSteel/truckTrain/addApproveWagonPlease.vue";
+import addApproveWagonPlease from '@/views/inward/components/offsetSteel/truckTrain/addApproveWagonPlease.vue'
 //新增批车作业
-import editApproveWagonPlease from "@/views/inward/components/offsetSteel/truckTrain/editApproveWagonPlease.vue";
+import editApproveWagonPlease from '@/views/inward/components/offsetSteel/truckTrain/editApproveWagonPlease.vue'
 //装车作业新增
-import addWagonLoad from "@/views/inward/components/offsetSteel/truckTrain/addWagonLoad.vue";
+import addWagonLoad from '@/views/inward/components/offsetSteel/truckTrain/addWagonLoad.vue'
 //装车作业修改
-import editWagonLoad from "@/views/inward/components/offsetSteel/truckTrain/editWagonLoad.vue";
+import editWagonLoad from '@/views/inward/components/offsetSteel/truckTrain/editWagonLoad.vue'
 //车皮卸车作业新增
-import addWagonUnLoad from "@/views/inward/components/offsetSteel/truckTrain/addWagonUnLoad.vue";
+import addWagonUnLoad from '@/views/inward/components/offsetSteel/truckTrain/addWagonUnLoad.vue'
 //车皮卸车作业修改
-import editWagonUnLoad from "@/views/inward/components/offsetSteel/truckTrain/editWagonUnLoad.vue";
+import editWagonUnLoad from '@/views/inward/components/offsetSteel/truckTrain/editWagonUnLoad.vue'
 //新增汽车装货
-import addTruckLoad from "@/views/inward/components/inwardImport/daZhou/addTruckLoad.vue";
+import addTruckLoad from '@/views/inward/components/inwardImport/daZhou/addTruckLoad.vue'
 //修改汽车装货
-import updateTruckLoad from "@/views/inward/components/inwardImport/daZhou/updateTruckLoad.vue";
+import updateTruckLoad from '@/views/inward/components/inwardImport/daZhou/updateTruckLoad.vue'
 //新增汽车装车
-import oldAreaRailScaleAddTruckLoad from "@/views/inward/components/inwardImport/oldAreaRailScale/addTruckLoad.vue";
+import oldAreaRailScaleAddTruckLoad from '@/views/inward/components/inwardImport/oldAreaRailScale/addTruckLoad.vue'
 //内转厂内物资--新增汽车装货
-import inwardFactoryAddTruckLoad from "@/views/inward/components/inwardFactory/addTruckLoad.vue";
+import inwardFactoryAddTruckLoad from '@/views/inward/components/inwardFactory/addTruckLoad.vue'
 
 //内转结算--纯内转计费详单
-import inwardDetailOrders from "../components/inwardSettlement/detailOrder.vue";
+import inwardDetailOrders from '../components/inwardSettlement/detailOrder.vue'
 //内转结算--采购内转计费详单
-import inwardPurDetailsOrders from "../components/inwardSettlement/purInwardDetailsOrder.vue";
+import inwardPurDetailsOrders from '../components/inwardSettlement/purInwardDetailsOrder.vue'
 //内转结算--计时计费详单
-import inwardTimeDetailsOrders from "../components/inwardSettlement/timeDetailsWeight.vue";
+import inwardTimeDetailsOrders from '../components/inwardSettlement/timeDetailsWeight.vue'
 //内转结算--计数计费详单
-import inwardCountDetailsOrders from "../components/inwardSettlement/countDetailOrder.vue";
+import inwardCountDetailsOrders from '../components/inwardSettlement/countDetailOrder.vue'
 //内转结算--计时和计重计费详单
-import inwardWeightTimeDetailsOrder from "../components/inwardSettlement/inwardAllDetailsOrder.vue";
+import inwardWeightTimeDetailsOrder from '../components/inwardSettlement/inwardAllDetailsOrder.vue'
 
 //继续分解采购内转需求订单
-import addPurInwardOrderCon from "@/views/inward/components/truckOrder/addPurInwardOrderCon";
+import addPurInwardOrderCon from '@/views/inward/components/truckOrder/addPurInwardOrderCon'
 
 //内转火车发运明细
-import platformStockInfo from "@/views/inward/components/offsetSteel/saleSteelTruckOrder/platformStockInfo.vue";
-
+import platformStockInfo from '@/views/inward/components/offsetSteel/saleSteelTruckOrder/platformStockInfo.vue'
 //库存调拨单浏览
-import kucunList from "@/views/inward/components/offsetSteel/saleSteelTruckOrder/kucunList.vue";
-Vue.use(Router);
+import kucunList from '@/views/inward/components/offsetSteel/saleSteelTruckOrder/kucunList.vue'
+
+const inwardBilletRequirement = () =>
+  import('@/views/inward/components/inwardBillet/inwardBillet.vue')
+
+const addInwardBillet = () =>
+  import('@/views/inward/components/inwardBillet/addInwardBillet.vue')
+Vue.use(Router)
 
 const constantRouterMap = [
   {
-    path: "/",
-    name: "main",
+    path: '/',
+    name: 'main',
     meta: {
-      title: "首页",
-      code: "xtpzgl"
+      title: '首页',
+      code: 'xtpzgl'
     },
     component: main,
     redirect: {
-      name: "requirement"
+      name: 'requirement'
     },
     children: [
       {
-        path: "requirement",
-        name: "requirement",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'requirement',
+        name: 'requirement',
+        meta: { code: 'xtpzgl-yhgl' },
         component: requirement
       },
       {
-        path: "requirementOther",
-        name: "requirementOther",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'requirementOther',
+        name: 'requirementOther',
+        meta: { code: 'xtpzgl-yhgl' },
         component: requirementOther
       },
       {
-        path: "purInwardRequirement",
-        name: "purInwardRequirement",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'purInwardRequirement',
+        name: 'purInwardRequirement',
+        meta: { code: 'xtpzgl-yhgl' },
         component: purInwardRequirement
       },
       {
-        path: "truckAppointPlan",
-        name: "truckAppointPlan",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'truckAppointPlan',
+        name: 'truckAppointPlan',
+        meta: { code: 'xtpzgl-yhgl' },
         component: truckAppointPlan
       },
       {
-        path: "purInwardTruckOrder",
-        name: "purInwardTruckOrder",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'purInwardTruckOrder',
+        name: 'purInwardTruckOrder',
+        meta: { code: 'xtpzgl-yhgl' },
         component: purInwardTruckOrder
       },
       {
-        path: "addPurInwardOrder",
-        name: "addPurInwardOrder",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'addPurInwardOrder',
+        name: 'addPurInwardOrder',
+        meta: { code: 'xtpzgl-yhgl' },
         component: addPurInwardOrder
       },
       {
-        path: "truckAppointPlan",
-        name: "truckAppointPlan",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'truckAppointPlan',
+        name: 'truckAppointPlan',
+        meta: { code: 'xtpzgl-yhgl' },
         component: truckAppointPlan
       },
       {
-        path: "RailPlan",
-        name: "RailPlan",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'RailPlan',
+        name: 'RailPlan',
+        meta: { code: 'xtpzgl-yhgl' },
         component: RailPlan
       },
       {
-        path: "truckOrderPlan",
-        name: "truckOrderPlan",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'truckOrderPlan',
+        name: 'truckOrderPlan',
+        meta: { code: 'xtpzgl-yhgl' },
         component: truckOrderPlan
       },
       {
-        path: "truckOrderRailPlan",
-        name: "truckOrderRailPlan",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'truckOrderRailPlan',
+        name: 'truckOrderRailPlan',
+        meta: { code: 'xtpzgl-yhgl' },
         component: truckOrderRailPlan
       },
       {
-        path: "dispatchPlan",
-        name: "dispatchPlan",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'dispatchPlan',
+        name: 'dispatchPlan',
+        meta: { code: 'xtpzgl-yhgl' },
         component: dispatchPlan
       },
       {
-        path: "enFactoryResult",
-        name: "enFactoryResult",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'enFactoryResult',
+        name: 'enFactoryResult',
+        meta: { code: 'xtpzgl-yhgl' },
         component: enFactoryResult
       },
       {
-        path: "tareWeightResult",
-        name: "tareWeightResult",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'tareWeightResult',
+        name: 'tareWeightResult',
+        meta: { code: 'xtpzgl-yhgl' },
         component: tareWeightResult
       },
       {
-        path: "loadTruckResult",
-        name: "loadTruckResult",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'loadTruckResult',
+        name: 'loadTruckResult',
+        meta: { code: 'xtpzgl-yhgl' },
         component: loadTruckResult
       },
       {
-        path: "qualityResult",
-        name: "qualityResult",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'qualityResult',
+        name: 'qualityResult',
+        meta: { code: 'xtpzgl-yhgl' },
         component: qualityResult
       },
       {
-        path: "grossWeightResult",
-        name: "grossWeightResult",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'grossWeightResult',
+        name: 'grossWeightResult',
+        meta: { code: 'xtpzgl-yhgl' },
         component: grossWeightResult
       },
       {
-        path: "outFactory",
-        name: "outFactory",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'outFactory',
+        name: 'outFactory',
+        meta: { code: 'xtpzgl-yhgl' },
         component: outFactory
       },
       {
-        path: "truckReceiptResult",
-        name: "truckReceiptResult",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'truckReceiptResult',
+        name: 'truckReceiptResult',
+        meta: { code: 'xtpzgl-yhgl' },
         component: truckReceiptResult
       },
       {
-        path: "wagonPlease",
-        name: "wagonPlease",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'wagonPlease',
+        name: 'wagonPlease',
+        meta: { code: 'xtpzgl-yhgl' },
         component: wagonPlease
       },
       {
-        path: "wagonApprove",
-        name: "wagonApprove",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'wagonApprove',
+        name: 'wagonApprove',
+        meta: { code: 'xtpzgl-yhgl' },
         component: wagonApprove
       },
       {
-        path: "wagonLoad",
-        name: "wagonLoad",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'wagonLoad',
+        name: 'wagonLoad',
+        meta: { code: 'xtpzgl-yhgl' },
         component: wagonLoad
       },
       {
-        path: "wagonUnLoad",
-        name: "wagonUnLoad",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'wagonUnLoad',
+        name: 'wagonUnLoad',
+        meta: { code: 'xtpzgl-yhgl' },
         component: wagonUnLoad
       },
       {
-        path: "trainUnload",
-        name: "trainUnload",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'trainUnload',
+        name: 'trainUnload',
+        meta: { code: 'xtpzgl-yhgl' },
         component: trainUnload
       },
 
       {
-        path: "saleTruckOrder",
-        name: "saleTruckOrder",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'saleTruckOrder',
+        name: 'saleTruckOrder',
+        meta: { code: 'xtpzgl-yhgl' },
         component: saleTruckOrder
       },
       {
-        path: "saleTruckPreview",
-        name: "saleTruckPreview",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'saleTruckPreview',
+        name: 'saleTruckPreview',
+        meta: { code: 'xtpzgl-yhgl' },
         component: saleTruckPreview
       },
       {
-        path: "daZhouEnFactoryResult",
-        name: "daZhouEnFactoryResult",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'daZhouEnFactoryResult',
+        name: 'daZhouEnFactoryResult',
+        meta: { code: 'xtpzgl-yhgl' },
         component: daZhouEnFactoryResult
       },
       {
-        path: "daZhouGrossWeightResult",
-        name: "daZhouGrossWeightResult",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'daZhouGrossWeightResult',
+        name: 'daZhouGrossWeightResult',
+        meta: { code: 'xtpzgl-yhgl' },
         component: daZhouGrossWeightResult
       },
       {
-        path: "unload",
-        name: "unload",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'unload',
+        name: 'unload',
+        meta: { code: 'xtpzgl-yhgl' },
         component: unload
       },
       {
-        path: "daZhouQualityResult",
-        name: "daZhouQualityResult",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'daZhouQualityResult',
+        name: 'daZhouQualityResult',
+        meta: { code: 'xtpzgl-yhgl' },
         component: daZhouQualityResult
       },
       {
-        path: "daZhouTareWeightResult",
-        name: "daZhouTareWeightResult",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'daZhouTareWeightResult',
+        name: 'daZhouTareWeightResult',
+        meta: { code: 'xtpzgl-yhgl' },
         component: daZhouTareWeightResult
       },
       {
-        path: "receipt",
-        name: "receipt",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'receipt',
+        name: 'receipt',
+        meta: { code: 'xtpzgl-yhgl' },
         component: receipt
       },
       {
-        path: "daZhouOutFactory",
-        name: "daZhouOutFactory",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'daZhouOutFactory',
+        name: 'daZhouOutFactory',
+        meta: { code: 'xtpzgl-yhgl' },
         component: daZhouOutFactory
       },
       {
-        path: "trainLineUnload",
-        name: "trainLineUnload",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'trainLineUnload',
+        name: 'trainLineUnload',
+        meta: { code: 'xtpzgl-yhgl' },
         component: trainLineUnload
       },
       {
-        path: "oldAreaRailScaleQualityResult",
-        name: "oldAreaRailScaleQualityResult",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'oldAreaRailScaleQualityResult',
+        name: 'oldAreaRailScaleQualityResult',
+        meta: { code: 'xtpzgl-yhgl' },
         component: oldAreaRailScaleQualityResult
       },
       {
-        path: "oldAreaOutfactoryResult",
-        name: "oldAreaOutfactoryResult",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'oldAreaOutfactoryResult',
+        name: 'oldAreaOutfactoryResult',
+        meta: { code: 'xtpzgl-yhgl' },
         component: oldAreaOutfactoryResult
       },
       {
-        path: "oldAreaEnfactoryResult",
-        name: "oldAreaEnfactoryResult",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'oldAreaEnfactoryResult',
+        name: 'oldAreaEnfactoryResult',
+        meta: { code: 'xtpzgl-yhgl' },
         component: oldAreaEnfactoryResult
       },
       {
-        path: "oldAreaRailScaleTruckLoad",
-        name: "oldAreaRailScaleTruckLoad",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'oldAreaRailScaleTruckLoad',
+        name: 'oldAreaRailScaleTruckLoad',
+        meta: { code: 'xtpzgl-yhgl' },
         component: oldAreaRailScaleTruckLoad
       },
       {
-        path: "oldAreaRailScaleGrossWeightResult",
-        name: "oldAreaRailScaleGrossWeightResult",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'oldAreaRailScaleGrossWeightResult',
+        name: 'oldAreaRailScaleGrossWeightResult',
+        meta: { code: 'xtpzgl-yhgl' },
         component: oldAreaRailScaleGrossWeightResult
       },
       {
-        path: "oldAreaRailScaleUnload",
-        name: "oldAreaRailScaleUnload",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'oldAreaRailScaleUnload',
+        name: 'oldAreaRailScaleUnload',
+        meta: { code: 'xtpzgl-yhgl' },
         component: oldAreaRailScaleUnload
       },
       {
-        path: "oldAreaRailScaleTareWeightResult",
-        name: "oldAreaRailScaleTareWeightResult",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'oldAreaRailScaleTareWeightResult',
+        name: 'oldAreaRailScaleTareWeightResult',
+        meta: { code: 'xtpzgl-yhgl' },
         component: oldAreaRailScaleTareWeightResult
       },
       {
-        path: "oldAreaRailScaleReceipt",
-        name: "oldAreaRailScaleReceipt",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'oldAreaRailScaleReceipt',
+        name: 'oldAreaRailScaleReceipt',
+        meta: { code: 'xtpzgl-yhgl' },
         component: oldAreaRailScaleReceipt
       },
       {
-        path: "inwardFactoryEnFactoryResult",
-        name: "inwardFactoryEnFactoryResult",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'inwardFactoryEnFactoryResult',
+        name: 'inwardFactoryEnFactoryResult',
+        meta: { code: 'xtpzgl-yhgl' },
         component: inwardFactoryEnFactoryResult
       },
       {
-        path: "inwardFactoryTruckLoad",
-        name: "inwardFactoryTruckLoad",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'inwardFactoryTruckLoad',
+        name: 'inwardFactoryTruckLoad',
+        meta: { code: 'xtpzgl-yhgl' },
         component: inwardFactoryTruckLoad
       },
       {
-        path: "inwardFactoryTareWeightResult",
-        name: "inwardFactoryTareWeightResult",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'inwardFactoryTareWeightResult',
+        name: 'inwardFactoryTareWeightResult',
+        meta: { code: 'xtpzgl-yhgl' },
         component: inwardFactoryTareWeightResult
       },
       {
-        path: "inwardFactoryUnload",
-        name: "inwardFactoryUnload",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'inwardFactoryUnload',
+        name: 'inwardFactoryUnload',
+        meta: { code: 'xtpzgl-yhgl' },
         component: inwardFactoryUnload
       },
       {
-        path: "inwardFactoryOutFactory",
-        name: "inwardFactoryOutFactory",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'inwardFactoryOutFactory',
+        name: 'inwardFactoryOutFactory',
+        meta: { code: 'xtpzgl-yhgl' },
         component: inwardFactoryOutFactory
       },
       {
-        path: "timeTaskResult",
-        name: "timeTaskResult",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'timeTaskResult',
+        name: 'timeTaskResult',
+        meta: { code: 'xtpzgl-yhgl' },
         component: timeTaskResult
       },
       {
-        path: "countResult",
-        name: "countResult",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'countResult',
+        name: 'countResult',
+        meta: { code: 'xtpzgl-yhgl' },
         component: countResult
       },
       {
-        path: "monthResult",
-        name: "monthResult",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'monthResult',
+        name: 'monthResult',
+        meta: { code: 'xtpzgl-yhgl' },
         component: monthResult
       },
       {
-        path: "reverseResult",
-        name: "reverseResult",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'reverseResult',
+        name: 'reverseResult',
+        meta: { code: 'xtpzgl-yhgl' },
         component: reverseResult
       },
       /*****************************************跳转页面*****************************************/
       {
-        path: "addRequirement",
-        name: "addRequirement",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'addRequirement',
+        name: 'addRequirement',
+        meta: { code: 'xtpzgl-yhgl' },
         component: addRequirement
       },
       {
-        path: "addRequirement2",
-        name: "addRequirement2",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'addRequirement2',
+        name: 'addRequirement2',
+        meta: { code: 'xtpzgl-yhgl' },
         component: addRequirement2
       },
       {
-        path: "updateRequirement/:requirementId",
-        name: "updateRequirement",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'updateRequirement/:requirementId',
+        name: 'updateRequirement',
+        meta: { code: 'xtpzgl-yhgl' },
         component: updateRequirement
       },
       {
-        path: "addPlan",
-        name: "addPlan",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'addPlan',
+        name: 'addPlan',
+        meta: { code: 'xtpzgl-yhgl' },
         component: addPlan
       },
       {
-        path: "updatePlan/:planId",
-        name: "updatePlan",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'updatePlan/:planId',
+        name: 'updatePlan',
+        meta: { code: 'xtpzgl-yhgl' },
         component: updatePlan
       },
       {
-        path: "addRailPlan",
-        name: "addRailPlan",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'addRailPlan',
+        name: 'addRailPlan',
+        meta: { code: 'xtpzgl-yhgl' },
         component: addRailPlan
       },
       {
-        path: "decomposePlan/:planId",
-        name: "decomposePlan",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'decomposePlan/:planId',
+        name: 'decomposePlan',
+        meta: { code: 'xtpzgl-yhgl' },
         component: decomposePlan
       },
       {
-        path: "getPlanOrder/:planId",
-        name: "getPlanOrder",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'getPlanOrder/:planId',
+        name: 'getPlanOrder',
+        meta: { code: 'xtpzgl-yhgl' },
         component: getPlanOrder
       },
       {
-        path: "getRequirementOrder/:requirementId",
-        name: "getRequirementOrder",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'getRequirementOrder/:requirementId',
+        name: 'getRequirementOrder',
+        meta: { code: 'xtpzgl-yhgl' },
         component: getRequirementOrder
       },
       {
-        path: "decomposeRailPlan/:dayPlanId",
-        name: "decomposeRailPlan",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'decomposeRailPlan/:dayPlanId',
+        name: 'decomposeRailPlan',
+        meta: { code: 'xtpzgl-yhgl' },
         component: decomposeRailPlan
       },
       {
-        path: "addWagonPlease",
-        name: "addWagonPlease",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'addWagonPlease',
+        name: 'addWagonPlease',
+        meta: { code: 'xtpzgl-yhgl' },
         component: addWagonPlease
       },
       {
-        path: "editWagonPlease/:resultId",
-        name: "editWagonPlease",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'editWagonPlease/:resultId',
+        name: 'editWagonPlease',
+        meta: { code: 'xtpzgl-yhgl' },
         component: editWagonPlease
       },
       {
-        path: "addApproveWagonPlease",
-        name: "requaddApproveWagonPleaseirement",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'addApproveWagonPlease',
+        name: 'requaddApproveWagonPleaseirement',
+        meta: { code: 'xtpzgl-yhgl' },
         component: addApproveWagonPlease
       },
       {
-        path: "editApproveWagonPlease/:resultId",
-        name: "editApproveWagonPlease",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'editApproveWagonPlease/:resultId',
+        name: 'editApproveWagonPlease',
+        meta: { code: 'xtpzgl-yhgl' },
         component: editApproveWagonPlease
       },
       {
-        path: "addWagonLoad",
-        name: "addWagonLoad",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'addWagonLoad',
+        name: 'addWagonLoad',
+        meta: { code: 'xtpzgl-yhgl' },
         component: addWagonLoad
       },
       {
-        path: "editWagonLoad/:resultId",
-        name: "editWagonLoad",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'editWagonLoad/:resultId',
+        name: 'editWagonLoad',
+        meta: { code: 'xtpzgl-yhgl' },
         component: editWagonLoad
       },
       {
-        path: "addWagonUnLoad",
-        name: "addWagonUnLoad",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'addWagonUnLoad',
+        name: 'addWagonUnLoad',
+        meta: { code: 'xtpzgl-yhgl' },
         component: addWagonUnLoad
       },
       {
-        path: "editWagonUnLoad/:unloadingId",
-        name: "editWagonUnLoad",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'editWagonUnLoad/:unloadingId',
+        name: 'editWagonUnLoad',
+        meta: { code: 'xtpzgl-yhgl' },
         component: editWagonUnLoad
       },
       {
-        path: "addTruckLoad",
-        name: "addTruckLoad",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'addTruckLoad',
+        name: 'addTruckLoad',
+        meta: { code: 'xtpzgl-yhgl' },
         component: addTruckLoad
       },
       {
-        path: "updateTruckLoad/:resultId",
-        name: "updateTruckLoad",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'updateTruckLoad/:resultId',
+        name: 'updateTruckLoad',
+        meta: { code: 'xtpzgl-yhgl' },
         component: updateTruckLoad
       },
       {
-        path: "oldAreaRailScaleAddTruckLoad",
-        name: "oldAreaRailScaleAddTruckLoad",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'oldAreaRailScaleAddTruckLoad',
+        name: 'oldAreaRailScaleAddTruckLoad',
+        meta: { code: 'xtpzgl-yhgl' },
         component: oldAreaRailScaleAddTruckLoad
       },
       {
-        path: "inwardFactoryAddTruckLoad",
-        name: "inwardFactoryAddTruckLoad",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'inwardFactoryAddTruckLoad',
+        name: 'inwardFactoryAddTruckLoad',
+        meta: { code: 'xtpzgl-yhgl' },
         component: inwardFactoryAddTruckLoad
       },
       {
-        path: "inwardDetailOrders",
-        name: "inwardDetailOrders",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'inwardDetailOrders',
+        name: 'inwardDetailOrders',
+        meta: { code: 'xtpzgl-yhgl' },
         component: inwardDetailOrders
       },
       {
-        path: "inwardCountDetailsOrders",
-        name: "inwardCountDetailsOrders",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'inwardCountDetailsOrders',
+        name: 'inwardCountDetailsOrders',
+        meta: { code: 'xtpzgl-yhgl' },
         component: inwardCountDetailsOrders
       },
       {
-        path: "inwardTimeDetailsOrders",
-        name: "inwardTimeDetailsOrders",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'inwardTimeDetailsOrders',
+        name: 'inwardTimeDetailsOrders',
+        meta: { code: 'xtpzgl-yhgl' },
         component: inwardTimeDetailsOrders
       },
       {
-        path: "inwardPurDetailsOrders",
-        name: "inwardPurDetailsOrders",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'inwardPurDetailsOrders',
+        name: 'inwardPurDetailsOrders',
+        meta: { code: 'xtpzgl-yhgl' },
         component: inwardPurDetailsOrders
       },
       {
-        path: "inwardWeightTimeDetailsOrder",
-        name: "inwardWeightTimeDetailsOrder",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'inwardWeightTimeDetailsOrder',
+        name: 'inwardWeightTimeDetailsOrder',
+        meta: { code: 'xtpzgl-yhgl' },
         component: inwardWeightTimeDetailsOrder
       },
       {
-        path: "addPurInwardOrderCon/:planId",
-        name: "addPurInwardOrderCon",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'addPurInwardOrderCon/:planId',
+        name: 'addPurInwardOrderCon',
+        meta: { code: 'xtpzgl-yhgl' },
         component: addPurInwardOrderCon
       },
       {
-        path: "platformStockInfo",
-        name: "platformStockInfo",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'platformStockInfo',
+        name: 'platformStockInfo',
+        meta: { code: 'xtpzgl-yhgl' },
         component: platformStockInfo
       },
       {
-        path: "kucunList",
-        name: "kucunList",
-        meta: { code: "xtpzgl-yhgl" },
+        path: 'kucunList',
+        name: 'kucunList',
+        meta: { code: 'xtpzgl-yhgl' },
         component: kucunList
+      },
+      {
+        path: 'inwardBilletRequirement',
+        name: 'inwardBilletRequirement',
+        meta: {
+          code: 'xtpzgl-yhgl'
+        },
+        component: inwardBilletRequirement
+      },
+      {
+        path: 'addInwardBillet',
+        name: 'addInwardBillet',
+        meta: {
+          code: 'xtpzgl-yhgl'
+        },
+        component: addInwardBillet
       }
     ]
   }
-];
+]
 
 const router = new Router({
   routes: constantRouterMap
-});
+})
 //  before
-routerBefore(router, constantRouterMap);
+routerBefore(router, constantRouterMap)
 
-export default router;
+export default router
 //  constantRouterMap
-export const routes = constantRouterMap;
+export const routes = constantRouterMap

+ 1 - 1
src/views/queue/components/qmsEnFacotory/queueFStart.vue

@@ -191,7 +191,7 @@
             max-height="500px"
           >
             <el-table-column type="selection" width="55"></el-table-column>
-            <el-table-column width="80" align="center" prop="Nosort" label="序号"></el-table-column>
+            <el-table-column width="80" align="center" prop="Nosort"></el-table-column>
             <el-table-column prop="capacityNumber" label="车牌号" fit>
             </el-table-column>
             <el-table-column prop="resultStartTime" label="排队开始时间">

+ 258 - 364
src/views/sale/components/transportFreight/saleTruckSettlement/bmsTruckSteelDetails.vue

@@ -1,20 +1,21 @@
 // 计费详单
 <template>
-  <div class="steel_inbound">
+  <div class="steelDetailsOrder">
     <div class="sache">
+      <label class="el-form-item__label" style="width: auto;">订单日期:</label>
       <el-date-picker
         v-model="startTime"
-        type="datetime"
+        type="date"
         placeholder="选择日期"
-        style="width:220px"
+        style="width:200px"
       >
       </el-date-picker>
       <span>至</span>
       <el-date-picker
         v-model="endTime"
-        type="datetime"
+        type="date"
         placeholder="选择日期"
-        style="width:220px"
+        style="width:200px"
       >
       </el-date-picker>
       <el-input placeholder="请输入内容" v-model="input" clearable> </el-input>
@@ -30,8 +31,13 @@
       <el-tabs v-model="activeName">
         <!-- 未结算 -->
         <el-tab-pane label="未结算" name="first">
-          <dilTable v-bind.sync="options1" ref="excelDom">
-            <el-table-column fixed="right" label="操作" width="145">
+          <mergeRowTable
+            v-bind.sync="options1"
+            ref="excelDom"
+            :stripe="false"
+            :isPagination="false"
+          >
+            <el-table-column fixed="right" label="操作" width="120">
               <template slot-scope="scope">
                 <el-button
                   v-if="ssoId == null"
@@ -42,180 +48,72 @@
                 >
               </template>
             </el-table-column>
-          </dilTable>
+          </mergeRowTable>
         </el-tab-pane>
         <!-- 已结算 -->
         <el-tab-pane label="已结算" name="second">
-          <dilTable v-bind.sync="options2">
-            <!-- <el-table-column fixed="right" label="操作" width="40">
-                <template slot-scope="scope">
-                  <el-button type="text" size="mini" @click="getclick(scope)">查看</el-button>
-                </template>
-            </el-table-column> -->
-          </dilTable>
+          <mergeRowTable v-bind.sync="options2"> </mergeRowTable>
         </el-tab-pane>
       </el-tabs>
     </div>
-    <!-- 修改详单单价弹出框 -->
-      <!-- 内层单价选择弹出框 -->
-<!--      <el-dialog
-        width="40%"
-        title="地址筛选"
-        :visible.sync="addressDrawer"
-        append-to-body
-      >
-        <el-input
-          v-model="addresText"
-          placeholder="请输入内容"
-          style="margin-top: 10px; margin-left: 20px; width: 250px"
-        ></el-input>
-        <el-button
-          type="primary"
-          @click="selectAddresClick"
-          :loading="selectLineLoading"
-          ><i class="el-icon-search"></i>查询</el-button
-        >
-        &lt;!&ndash; 已选中 省市(区)县 &ndash;&gt;
-        <el-form :inline="true" style="margin-top: 0.5rem;">
-          <el-form-item>
-            <label class="el-form-item__label" style="width: auto;"
-              >已选中省市县(区):</label
-            >
-          </el-form-item>
-          <el-form-item>
-            <el-input
-              class="el-form-item__content"
-              v-model="address"
-              placeholder="请输入内容"
-              :disabled="true"
-            ></el-input>
-          </el-form-item>
-        </el-form>
-        &lt;!&ndash; 具体收货地址 &ndash;&gt;
-        <div v-if="address != null">
-          <el-form :inline="true" style="margin-top: 0.5rem;">
-            <el-form-item label="具体收货地址:">
-              <el-autocomplete
-                class="inline-input"
-                v-model="place"
-                :fetch-suggestions="querySearch1"
-                placeholder="请输入具体收货地址"
-                :trigger-on-focus="false"
-                @select="handleSelect1"
-              >
-              </el-autocomplete>
-            </el-form-item>
-
-            <el-button type="primary" @click="addAddressClick">确定</el-button>
-          </el-form>
-        </div>
-
-        <div class="tablecls">
-          &lt;!&ndash; 查询所有的运输单价 &ndash;&gt;
-          <dilTable
-            v-bind.sync="Address"
-            @radio-change="currentRadioChange2"
-          ></dilTable>
-        </div>
-      </el-dialog>-->
-      <!-- 内层单价选择弹出框 -->
-
-      <!--append-to-body-->
-      <el-drawer
-        title="修改详单地址"
-        :visible.sync="dialogFormVisible"
-        size="40%"
-        >
-<!--        <el-form-item label="原详单地址" :label-width="formLabelWidth">-->
-        原详单地址
-        <el-input
-            style="width:250px"
-            v-model="originalAddress"
-            disabled
-          ></el-input>
-          <label>原单价</label>
-          <el-input
-            style="width:100px"
-            v-model="originalPriceValue"
-            disabled
-          ></el-input>
-<!--        </el-form-item>-->
-        <!---->
-        <el-input
-          v-model="addresText"
-          placeholder="请输入内容"
-          style="margin-top: 10px; margin-left: 20px; width: 250px"
-          @keyup.native.enter="selectAddresClick"
-        ></el-input>
-        <el-button
-          type="primary"
-          @click="selectAddresClick"
-          :loading="selectLineLoading"
+    <el-drawer
+      title="修改详单地址"
+      :visible.sync="dialogFormVisible"
+      size="40%"
+    >
+      <!--        <el-form-item label="原详单地址" :label-width="formLabelWidth">-->
+      原详单地址
+      <el-input
+        style="width:250px"
+        v-model="originalAddress"
+        disabled
+      ></el-input>
+      <label>原单价</label>
+      <el-input
+        style="width:100px"
+        v-model="originalPriceValue"
+        disabled
+      ></el-input>
+      <!--        </el-form-item>-->
+      <!---->
+      <el-input
+        v-model="addresText"
+        placeholder="请输入内容"
+        style="margin-top: 10px; margin-left: 20px; width: 250px"
+        @keyup.native.enter="selectAddresClick"
+      ></el-input>
+      <el-button
+        type="primary"
+        @click="selectAddresClick"
+        :loading="selectLineLoading"
         ><i class="el-icon-search"></i>查询</el-button
-        >
-        <div class="tablecls">
-          <!-- 查询所有的运输单价 -->
-          <vue-scorll :ops="ops" style="width: 100%;height: 100%">
+      >
+      <div class="tablecls">
+        <!-- 查询所有的运输单价 -->
+        <vue-scorll :ops="ops" style="width: 100%;height: 100%">
           <dilTable
             v-bind.sync="Address"
             @radio-change="currentRadioChange2"
             :drawer="aaadrawer"
           ></dilTable>
-          </vue-scorll>
-        </div>
-<!--        <el-form-item label="新详单地址" :label-width="formLabelWidth">
-          <el-input
-            style="width:250px"
-            v-model="newAddress"
-            disabled
-          ></el-input>
-          <label>现单价</label>
-          <el-input
-            style="width:100px"
-            v-model="newPriceValue"
-            disabled
-          ></el-input>
-          <el-button type="primary" placeholder="()" @click="select"
-            >浏览</el-button
-          >
-        </el-form-item>-->
-
-        <!-- class="dialog-footer" slot="footer"-->
+        </vue-scorll>
+      </div>
       <div class="opreation">
         <el-button @click="dialogFormVisible = false">取 消</el-button>
         <el-button type="primary" @click="makeSure">确 定</el-button>
       </div>
-
-      </el-drawer>
-    <!-- 增加途损 -->
-    <el-dialog title="增加途损" width="30%" :visible.sync="dialogDamage">
-      <el-form>
-        <el-form-item label="达钢的干基" :label-width="formLabelWidth">
-          <el-input v-model="DaDryBasis"></el-input>
-        </el-form-item>
-        <el-form-item label="九江收货的干基" :label-width="formLabelWidth">
-          <el-input v-model="JiuDryBasis"></el-input>
-        </el-form-item>
-        <el-form-item label="单价" :label-width="formLabelWidth">
-          <el-input v-model="Fee"></el-input>
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button @click="dialogDamage = false">取 消</el-button>
-        <el-button type="primary" @click="makeSureAdd">确 定</el-button>
-      </div>
-    </el-dialog>
+    </el-drawer>
   </div>
-
 </template>
 
 <script>
-import { getCookie } from "@/utils/util.js";
-import { sjTime } from "../../../../ADMINISTRATORS/app";
+import { getCookie } from '@/utils/util.js'
+import { sjTime } from '../../../../ADMINISTRATORS/app'
 export default {
   data() {
     return {
-      aaadrawer:false,
+      aaadrawer: false,
+      pageSize: 100,
       ops: {
         vuescroll: {},
         scrollPanel: {},
@@ -225,12 +123,12 @@ export default {
         bar: {
           hoverStyle: true,
           onlyShowBarOnScroll: false, //是否只有滚动的时候才显示滚动条
-          background: "#5f9ea0", //滚动条颜色
+          background: '#5f9ea0', //滚动条颜色
           opacity: 0.8, //滚动条透明度
-          "overflow-x": "hidden"
+          'overflow-x': 'hidden'
         }
       },
-      tableTitle: "销售钢材汽运结算详单",
+      tableTitle: '销售钢材汽运结算详单',
       endTime: null,
       startTime: null,
       //已选中 省市县(区)
@@ -241,29 +139,25 @@ export default {
       addressId: null,
       //省市县(区)查询值
       addresText: null,
-      noSettleDetailsColumn:[],
-      //达钢的干基
-      DaDryBasis: null,
-      //九江收货的干基
-      JiuDryBasis: null,
+      noSettleDetailsColumn: [],
       //单价
       Fee: null,
-      //途损费
-      damageFee: null,
       //加载
       selectLineLoading: false,
-      input: "",
-      activeName: "first",
+      input: '',
+      activeName: 'first',
       ssoId: null,
       //详单Id
       detailsId: null,
       options1: {
         // first请求数据的地址
-        requestUrl: ""
+        requestUrl: '',
+        comparison: 'orderId',
+        columnIndexs: [0, 2, 3, 4, 5, 7, 13, 14, 16, 17, 18]
       },
       options2: {
         // second请求数据的地址
-        requestUrl: ""
+        requestUrl: ''
       },
       //是否打开修改详单地址弹出框
       dialogFormVisible: false,
@@ -283,53 +177,55 @@ export default {
       addressDrawer: false,
       //运输单价的表格
       Address: {
-        requestUrl: "/api/v1/ams/getAddressDeliveryAddress?apiId=511",
-        selectionType: "radio"
+        requestUrl: '/api/v1/ams/getAddressDeliveryAddress?apiId=511',
+        selectionType: 'radio'
       },
       // addressText:null,
       //缓存当前选中的运输单价
       priceMap: {},
-      formLabelWidth: "125px"
-    };
+      formLabelWidth: '125px',
+      orderId: null,
+      placeId: null
+    }
   },
   created() {
-    this.options1GetRequestUrl();
-    this.options2GetRequestUrl();
+    this.options1GetRequestUrl()
+    this.options2GetRequestUrl()
   },
   methods: {
     //excel方法
     exportAllExcel() {
-      let startTime = null;
-      let endTime = null;
-      let carrierSsoId = null;
-      if (getCookie("orgCode") == "chengyunshang") {
-        carrierSsoId = getCookie("userId");
+      let startTime = null
+      let endTime = null
+      let carrierSsoId = null
+      if (getCookie('orgCode') == 'chengyunshang') {
+        carrierSsoId = getCookie('userId')
       }
       if (this.startTime && this.endTime) {
-        startTime = sjTime(this.startTime);
-        endTime = sjTime(this.endTime);
+        startTime = sjTime(this.startTime)
+        endTime = sjTime(this.endTime)
       }
       if (this.activeName == 'first') {
-        console.log("进入了first")
+        console.log('进入了first')
         this.tableTitle = '销售钢材汽运结算详单(未结算)'
         this.axios
           .post(
             '/api/v1/bms/getSteelTruckDetailsOrder?apiId=507&orderType=1&con=' +
-            this.input +
-            "&startTime=" +
-            startTime +
-            "&endTime=" +
-            endTime +
-            "&status=0" +
-            "&i=" +
-            new Date()
+              this.input +
+              '&startTime=' +
+              startTime +
+              '&endTime=' +
+              endTime +
+              '&status=0' +
+              '&i=' +
+              new Date()
           )
           .then(res => {
             console.log(res.data.data)
-            console.log("测试打印功能")
+            console.log('测试打印功能')
             console.log()
             this.exportAllList = res.data.data.list
-            this.noSettleDetailsColumn=res.data.data.columnData
+            this.noSettleDetailsColumn = res.data.data.columnData
             this.exportAllReportToExcel(
               this.tableTitle,
               this.exportAllList,
@@ -337,16 +233,16 @@ export default {
             )
           })
       } else if (this.activeName == 'second') {
-        console.log("进入了second")
+        console.log('进入了second')
         this.tableTitle = '销售钢材汽运结算详单(已结算)'
         this.axios
           .post(
             '/api/v1/bms/getSteelTruckDetailsOrder?apiId=507&orderType=1&carrierSsoId=' +
-            this.ssoId
+              this.ssoId
           )
           .then(res => {
             this.exportAllList = res.data.data
-            console.log("测试2")
+            console.log('测试2')
             console.log(res)
             this.exportAllReportToExcel(
               this.tableTitle,
@@ -361,8 +257,6 @@ export default {
       var title = tableTitle
       let tHeader = []
       let filterVal = []
-      console.log("进入了导出")
-      console.log(columnData)
       columnData.forEach(e1 => {
         if (tHeader.indexOf(e1.label) === -1) {
           tHeader.push(e1.label)
@@ -384,185 +278,133 @@ export default {
     },
     //未结算数据
     options1GetRequestUrl() {
-      if (getCookie("orgCode") == "chengyunshang") {
-        this.ssoId = getCookie("userId");
+      if (getCookie('orgCode') == 'chengyunshang') {
+        this.ssoId = getCookie('userId')
         this.options1.requestUrl =
-          "/api/v1/bms/getSteelTruckDetailsOrder?apiId=507&orderType=1&carrierSsoId=" +
-          getCookie("userId");
+          '/api/v1/bms/getSteelTruckDetailsOrder?apiId=507&orderType=1&carrierSsoId=' +
+          getCookie('userId')
       } else {
         this.options1.requestUrl =
-          "/api/v1/bms/getSteelTruckDetailsOrder?apiId=507&orderType=1&carrierSsoId=" +
-          this.ssoId;
+          '/api/v1/bms/getSteelTruckDetailsOrder?apiId=507&orderType=1&carrierSsoId=' +
+          this.ssoId
       }
     },
     //已结算数据
     options2GetRequestUrl() {
-      if (getCookie("orgCode") == "chengyunshang") {
+      if (getCookie('orgCode') == 'chengyunshang') {
         this.options2.requestUrl =
-          "/api/v1/bms/getSteelTruckDetailsOrder?apiId=507&orderType=1&carrierSsoId=" +
-          getCookie("userId");
+          '/api/v1/bms/getSteelTruckDetailsOrder?apiId=507&orderType=1&carrierSsoId=' +
+          getCookie('userId')
       } else {
         this.options2.requestUrl =
-          "/api/v1/bms/getSteelTruckDetailsOrder?apiId=507&orderType=1&carrierSsoId=" +
-          this.ssoId;
+          '/api/v1/bms/getSteelTruckDetailsOrder?apiId=507&orderType=1&carrierSsoId=' +
+          this.ssoId
       }
     },
     //收货地址弹出层
     handleSelect1(item) {
-      console.log("获取所有下拉值!");
+      console.log('获取所有下拉值!')
     },
     //查询全国省市县
     selectAddresClick() {
       if (this.addresText) {
         this.Address.requestUrl =
-          "/api/v1/ams/getAddressDeliveryAddress?apiId=511&con=" +
-          this.addresText;
+          '/api/v1/ams/getAddressDeliveryAddress?apiId=511&con=' +
+          this.addresText
       } else {
         this.Address.requestUrl =
-          "/api/v1/ams/getAddressDeliveryAddress?apiId=511&i=" + new Date();
+          '/api/v1/ams/getAddressDeliveryAddress?apiId=511&i=' + new Date()
       }
     },
     //以下是收货地址边输边查搜索
     querySearch1(queryString, cb) {
       this.axios
         .post(
-          "/api/v1/ams/getRealAddressByLike?addressId=" +
+          '/api/v1/ams/getRealAddressByLike?addressId=' +
             this.addressId +
-            "&index=" +
+            '&index=' +
             queryString
         )
         .then(res => {
-          if (res.data.code == "200") {
-            var restaurants = res.data.data;
+          if (res.data.code == '200') {
+            var restaurants = res.data.data
             var results = queryString
               ? restaurants.filter(this.createFilter1(queryString))
-              : restaurants;
+              : restaurants
             // 调用 callback 返回建议列表的数据
-            cb(results);
+            cb(results)
           }
-        });
+        })
     },
     createFilter1(queryString) {
       return restaurants => {
         return (
           restaurants.value.toLowerCase().indexOf(queryString.toLowerCase()) >
           -1
-        );
-      };
+        )
+      }
     },
     //以上是收货地址边输边查搜索
     toInsert() {
-      this.$router.push("/insertCheckInventory");
+      this.$router.push('/insertCheckInventory')
     },
     // getclick(scope){
     //   this.$router.push("/getTransportResult/"+scope.row.orderId)
     // },
     //增加途损
-    addDamage(row) {
-      this.detailsId = row.detailsId;
-      this.dialogDamage = true;
-    },
-    makeSureAdd() {
-      if (!this.DaDryBasis) {
-        this.$message.error("达钢的干基还未填!");
-      } else if (!this.JiuDryBasis) {
-        this.$message.error("九江收货的干基还未填!");
-      } else if (!this.Fee) {
-        this.$message.error("单价还未填!");
-      } else {
-        this.dialogDamage = false;
-        //计算途损 [(达钢的干基-九江收货的干基)/达钢的干基 - 0.03] * 单价 > 0, 扣除途损
-        this.damageFee =
-          ((this.DaDryBasis - this.JiuDryBasis) / this.DaDryBasis - 0.03) *
-          this.Fee;
-        if (this.damageFee > 0) {
-          let map = {
-            detailsId: this.detailsId,
-            lossFees: this.damageFee.toFixed(2)
-          };
-          //是否确定增加途损费!
-          this.$confirm("是否确定增加途损费", "提示", {
-            confirmButtonText: "确定",
-            cancelButtonText: "取消",
-            type: "warning",
-            center: true
-          })
-            .then(() => {
-              //初始化增加途损费对话框中的信息
-              (this.damageFee = null),
-                this.axios
-                  .post("/api/v1/bms/addLossFeeOfCoke", map)
-                  .then(res => {
-                    if (res.data.code == "0") {
-                      this.$message.success("增加途损费成功!");
-                      //重置未结算详单表单信息
-                      this.options1.requestUrl =
-                        "/api/v1/bms/getSteelTruckDetailsOrder?apiId=507&orderType=1&i=" +
-                        new Date();
-                    } else {
-                      this.$message.error("增加途损费失败,请联系管理员!");
-                    }
-                  });
-            })
-            .catch(() => {
-              this.$message({
-                type: "info",
-                message: "取消修改详单单价!"
-              });
-            });
-        }
-      }
-    },
     onclick() {
-
-      console.log("查询待定值");
-      let startTime = null;
-      let endTime = null;
-      let carrierSsoId = null;
-      if (getCookie("orgCode") == "chengyunshang") {
-        carrierSsoId = getCookie("userId");
+      console.log('查询待定值')
+      let startTime = null
+      let endTime = null
+      let carrierSsoId = null
+      if (getCookie('orgCode') == 'chengyunshang') {
+        carrierSsoId = getCookie('userId')
       }
       if (this.startTime && this.endTime) {
-        startTime = sjTime(this.startTime);
-        endTime = sjTime(this.endTime);
+        startTime = sjTime(this.startTime)
+        endTime = sjTime(this.endTime)
       }
       this.options1.requestUrl =
-        "/api/v1/bms/getSteelTruckDetailsOrder?apiId=507&orderType=1&con=" +
+        '/api/v1/bms/getSteelTruckDetailsOrder?apiId=507&orderType=1&con=' +
         this.input +
-        "&startTime=" +
+        '&startTime=' +
         startTime +
-        "&endTime=" +
+        '&endTime=' +
         endTime +
-        "&status=0" +
-        "&i=" +
-        new Date();
+        '&status=0' +
+        '&i=' +
+        new Date()
       this.options2.requestUrl =
-        "/api/v1/bms/getSteelTruckDetailsOrder?apiId=507&orderType=1&con=" +
+        '/api/v1/bms/getSteelTruckDetailsOrder?apiId=507&orderType=1&con=' +
         this.input +
-        "&startTime=" +
+        '&startTime=' +
         startTime +
-        "&endTime=" +
+        '&endTime=' +
         endTime +
-        "&status=1" +
-        "&i=" +
-        new Date();
+        '&status=1' +
+        '&i=' +
+        new Date()
     },
     //修改详单单价
     priceValueUpdate(row) {
-      this.originalAddress = row.realAddress;
-      this.originalPriceValue = row.priceValue;
-      this.detailsId = row.detailsId;
-      this.dialogFormVisible = true;
+      this.orderId = row.orderId
+      this.originalAddress = row.realAddress
+      this.originalPriceValue = row.priceValue
+      this.detailsId = row.detailsId
+
+      this.Address.requestUrl =
+        '/api/v1/ams/getAddressDeliveryAddress?apiId=511&i=' + new Date()
+      this.dialogFormVisible = true
     },
     //运输订单点击浏览的事件
     select() {
-      this.addressDrawer = true;
+      this.addressDrawer = true
     },
     //运输单价模态窗口的框计算
     selectAddressClick() {
       this.Price.requestUrl =
-        "/api/v1/ams/getAddressDeliveryAddress?apiId=255&con=" +
-        this.addressText;
+        '/api/v1/ams/getAddressDeliveryAddress?apiId=255&con=' +
+        this.addressText
     },
     //运输单价模态窗口的点击事件
     addAddressClick() {
@@ -570,31 +412,32 @@ export default {
       let map = {
         place: this.place,
         addressId: this.addressId
-      };
-      this.axios.post("/api/v1/ams/getPriceMap", map).then(res => {
+      }
+      this.axios.post('/api/v1/ams/getPriceMap', map).then(res => {
         if (res.data.data.priceId == -1) {
-          this.newPriceValue = "未录单价!";
-          this.priceId = null;
+          this.newPriceValue = '未录单价!'
+          this.priceId = null
         } else {
           //赋值运输单价和运输单价ID
-          this.newPriceValue = res.data.data.priceValue; //this.priceMap.priceValue
-          this.priceId = res.data.data.priceId; //this.priceMap.priceId
+          this.newPriceValue = res.data.data.priceValue //this.priceMap.priceValue
+          this.priceId = res.data.data.priceId //this.priceMap.priceId
         }
-      });
+      })
       //priceMap
-      this.newAddress = this.address + this.place;
-      this.addressDrawer = false;
+      this.newAddress = this.address + this.place
+      this.addressDrawer = false
     },
     //运输单价模态框单选选中的事件
     currentRadioChange2(val) {
-      console.log(val);
+      console.log(val)
       //若具体地址有值,清空值
       if (this.place != null) {
-        this.place = null;
+        this.place = null
       }
-      (this.address = val.address), (this.addressId = val.addressId);
-
-      this.priceId=val.priceid
+      this.placeId = val.placeId
+      this.address = val.address
+      this.addressId = val.addressId
+      this.priceId = val.priceid
       // this.priceMap = {};
       // this.priceMap = val;
     },
@@ -602,73 +445,124 @@ export default {
     makeSure() {
       //若没有单价Id
       if (this.priceId == null) {
-        this.$message.error("该区域没有录入单价,不可修改!");
+        this.$message.error('该区域没有录入单价,不可修改!')
       } else {
-        this.dialogFormVisible = false;
+        this.dialogFormVisible = false
         let mapValue = {
+          orderId: this.orderId,
           detailsId: this.detailsId,
-          priceId: this.priceId
-        };
+          priceId: this.priceId,
+          placeId: this.placeId
+        }
         //是否确定修改详单地址!
-        this.$confirm("是否确定修改详单地址", "提示", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning",
+        this.$confirm('确定修改', '提示', {
+          confirmButtonText: '仅修改单价',
+          cancelButtonText: '修改下货地址和单价',
+          distinguishCancelAndClose: true,
+          type: 'warning',
           center: true
         })
           .then(() => {
             //初始化修改详单地址对话框的信息
-            (this.newPriceValue = null),
-              (this.newAddress = null),
-              (this.address = null),
-              (this.addresText = null),
-              (this.addressId = null),
-              (this.priceId = null),
+            this.newPriceValue = null
+            this.newAddress = null
+            this.address = null
+            this.addresText = null
+            this.addressId = null
+            this.priceId = null
+            this.axios
+              .post('/api/v1/bms/updateDetailsOrder', mapValue)
+              .then(res => {
+                if (res.data.code == '0') {
+                  this.$message.success('修改详单单价成功!')
+                  let startTime = null
+                  let endTime = null
+                  let carrierSsoId = null
+                  if (getCookie('orgCode') == 'chengyunshang') {
+                    carrierSsoId = getCookie('userId')
+                  }
+                  if (this.startTime && this.endTime) {
+                    startTime = sjTime(this.startTime)
+                    endTime = sjTime(this.endTime)
+                  }
+                  //重置未结算详单表单信息
+                  this.options1.requestUrl =
+                    '/api/v1/bms/getSteelTruckDetailsOrder?apiId=507&orderType=1&con=' +
+                    this.input +
+                    '&startTime=' +
+                    startTime +
+                    '&endTime=' +
+                    endTime +
+                    '&status=0' +
+                    '&i=' +
+                    new Date()
+                } else {
+                  this.$message.error('修改详单单价失败,请联系管理员!')
+                }
+              })
+          })
+          .catch(action => {
+            if (action === 'cancel') {
+              mapValue.updatePlace = 1
+              this.newPriceValue = null
+              this.newAddress = null
+              this.address = null
+              this.addresText = null
+              this.addressId = null
+              this.priceId = null
               this.axios
-                .post("/api/v1/bms/updateDetailsOrder", mapValue)
+                .post('/api/v1/bms/updateDetailsOrder', mapValue)
                 .then(res => {
-                  if (res.data.code == "0") {
-                    this.$message.success("修改详单单价成功!");
+                  if (res.data.code == '0') {
+                    this.$message.success('修改详单单价和地址成功!')
+                    let startTime = null
+                    let endTime = null
+                    let carrierSsoId = null
+                    if (getCookie('orgCode') == 'chengyunshang') {
+                      carrierSsoId = getCookie('userId')
+                    }
+                    if (this.startTime && this.endTime) {
+                      startTime = sjTime(this.startTime)
+                      endTime = sjTime(this.endTime)
+                    }
                     //重置未结算详单表单信息
                     this.options1.requestUrl =
-                      "/api/v1/bms/getSteelTruckDetailsOrder?apiId=507&orderType=1&con=" +
+                      '/api/v1/bms/getSteelTruckDetailsOrder?apiId=507&orderType=1&con=' +
                       this.input +
-                      "&startTime=" +
+                      '&startTime=' +
                       startTime +
-                      "&endTime=" +
+                      '&endTime=' +
                       endTime +
-                      "&status=0" +
-                      "&i=" +
-                      new Date();
-                  } else {
-                    this.$message.error("修改详单单价失败,请联系管理员!");
+                      '&status=0' +
+                      '&i=' +
+                      new Date()
                   }
-                });
+                })
+            }
+            //初始化修改详单地址对话框的信息
           })
-          .catch(() => {
-            this.$message({
-              type: "info",
-              message: "取消修改详单单价!"
-            });
-          });
       }
     }
   }
-};
+}
 </script>
 
 <style lang="scss" scode>
-.steel_inbound {
+.steelDetailsOrder {
   .sache {
-    padding: 1.25rem 0.375rem;
+    margin-left: 20px;
+    margin-top: 20px;
     .el-input {
-      width: 20%;
-      margin-right: 1.25rem;
+      width: 250px;
     }
   }
-}
-.opreation{
-  width: 300px;
-  height: 200px;
+  .table {
+    margin-left: 20px;
+    margin-top: 20px;
+  }
+  .opreation {
+    width: 300px;
+    height: 200px;
+  }
 }
 </style>

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

@@ -16,13 +16,17 @@
         <el-button type="primary" class="btn" @click="getPdfs()">
           <i class="el-icon-download"></i>下载PDF
         </el-button>
+         <el-button type="primary" class="btn" @click="getExcel('船舶动态')">
+          <i class="el-icon-download"></i>下载Excel
+        </el-button>
       </div>
-      <table-item :tableData="tableData" :col="col" id="pdfDom"> </table-item>
+      <table-item ref="ship" :tableData="tableData" :col="col" id="pdfDom"> </table-item>
     </div>
   </div>
 </template>
 <script>
 import tableItem from "./tableItem";
+import FileSaver from "file-saver";
 export default {
   name: "TableView",
   components: {
@@ -148,13 +152,19 @@ export default {
       input: "",
       //万州港库存信息
       stockString: null,
-      stockStringArr: []
+      downStockString:null,
+      runStockString:null,
+      stockStringArr: [],
+      downStockStringArr: [],
+      runStockStringArr:[]
     };
   },
   created() {},
   mounted() {
     this.initialization();
     this.getStockString();
+    this.getDownStockString();
+    this.getRunStockList();
     // console.log(this.$refs.excelDom);
   },
   methods: {
@@ -170,6 +180,70 @@ export default {
           }
         });
     },
+    getExcel(tableTitle) {
+        //let tables = this.$refs.ship;//此处是拿表格document元素,也可以取父div的ref
+        let tables = document.getElementById("pdfDom");
+        let table_book = XLSX.utils.table_to_book(tables);
+        console.log("table_book:",table_book);
+        console.log("sheet:",table_book.Sheets.Sheet1);
+        table_book.Sheets.Sheet1=this.appendOne(table_book.Sheets.Sheet1,this.downStockString);
+        table_book.Sheets.Sheet1=this.appendOne(table_book.Sheets.Sheet1,this.stockString);
+        table_book.Sheets.Sheet1=this.appendOne(table_book.Sheets.Sheet1,this.runStockString);
+        //这里遍历单元格给单元格对象设置属性,s为控制样式的属性
+        Object.keys(table_book.Sheets.Sheet1).forEach((key) => {
+          if (key.indexOf('!') < 0) {
+            table_book.Sheets.Sheet1[key].s = {
+              alignment: {//对齐方式
+                horizontal: 'center',//水平居中
+                vertical: 'center',//竖直居中
+                wrapText: true,//自动换行
+              },
+            }
+          }
+       })
+       console.log("sheet:",table_book.Sheets.Sheet1);
+        //导出
+        var table_write = XLSX.write(table_book, {
+            bookType: "xlsx",
+            bookSST: true,
+            type: "array"
+        });
+        try {
+            FileSaver.saveAs(
+                new Blob([table_write], { type: "application/octet-stream" }),
+                tableTitle+".xlsx"
+            );
+        } catch (e) {
+            if (typeof console !== "undefined") console.log(e, table_write);
+        }
+        return table_write;
+    },
+    appendOne(Sheet,row){
+      //从后面新增1行,并行合并
+        let seArr=Sheet['!fullref'].split(":");
+        let length=parseInt(seArr[1].replace(/[^0-9]/ig,""));
+        let endCol=seArr[1].replace(length,"");
+        //新增行
+        length++;
+        Sheet['A'+length]={
+          t: "s",
+          v: row
+        };
+        Sheet['!fullref']=seArr[0]+':'+endCol+length;
+        Sheet['!ref']=seArr[0]+':'+endCol+length;
+        //行合并
+        Sheet['!merges'].push({
+          s:{
+            c:0,
+            r:length-1
+          },
+          e:{
+            c:21,
+            r:length-1
+          }
+        });
+        return Sheet;
+    },
     initialization() {
       this.axios.post("/api/v1/tms/selectAllShipDynamaics").then(res => {
         if (res.data.code == "200") {
@@ -255,11 +329,119 @@ export default {
                 });
               }
             });
-            console.log("arr:", this.stockStringArr);
+            this.stockString='';
+            this.stockStringArr.forEach((item)=>{
+              this.stockString+=item.value;
+            });
+            console.log("this.stockString:", this.stockString);
           } else {
           }
         });
-    }
+    },
+    getDownStockString() {
+      let that = this;
+      this.axios
+        .post("/api/v1/wmsh/getDownPortStockList")
+        .then(res => {
+          console.log(res);
+          if (res.status == "200") {
+            let resultActualInstallations = 0;
+            res.data.data.forEach(e => {
+              resultActualInstallations =
+                resultActualInstallations + e.gmTonnage;
+            });
+            
+            this.downStockStringArr.push({
+              class: "normalFirst",
+              value: "下游港口库存" + resultActualInstallations.toFixed(2) + "吨:"
+            });
+
+            let materialName = res.data.data[0].materialName;
+            this.downStockStringArr.push({
+              class: "black",
+              value: materialName + res.data.data[0].totalTonnage + "吨:"
+            });
+
+            res.data.data.forEach(e => {
+              if (e.materialName == materialName) {
+                this.downStockStringArr.push({
+                  class: "normal",
+                  value:
+                    " “" + e.resultForeignShipName + "”" + e.gmTonnage + "吨 "
+                });
+              } else {
+                materialName = e.materialName;
+                this.downStockStringArr.push({
+                  class: "black",
+                  value: ";" + materialName + e.totalTonnage + "吨:"
+                });
+                this.downStockStringArr.push({
+                  class: "normal",
+                  value:
+                    " “" + e.resultForeignShipName + "”" + e.gmTonnage + "吨 "
+                });
+              }
+            });
+            this.downStockString='';
+            this.downStockStringArr.forEach((item)=>{
+              this.downStockString+=item.value;
+            });
+            console.log("this.downStockString:", this.downStockString);
+          }
+        });
+    },
+   getRunStockList(){
+      let that = this;
+      this.axios
+        .post("/api/v1/wmsh/getRunStockList")
+        .then(res => {
+          console.log(res);
+          if (res.status == "200") {
+            let resultActualInstallations = 0;
+            res.data.data.forEach(e => {
+              resultActualInstallations =
+                resultActualInstallations + e.gmTonnage;
+            });
+
+            this.runStockStringArr.push({
+              class: "normalFirst",
+              value: "在途库存" + resultActualInstallations.toFixed(2) + "吨:"
+            });
+
+            let materialName = res.data.data[0].materialName;
+            this.runStockStringArr.push({
+              class: "black",
+              value: materialName + res.data.data[0].totalTonnage + "吨:"
+            });
+
+            res.data.data.forEach(e => {
+              if (e.materialName == materialName) {
+                this.runStockStringArr.push({
+                  class: "normal",
+                  value:
+                    " “" + e.resultForeignShipName + "”" + e.gmTonnage + "吨 "
+                });
+              } else {
+                materialName = e.materialName;
+                this.runStockStringArr.push({
+                  class: "black",
+                  value: ";" + materialName + e.totalTonnage + "吨:"
+                });
+                this.runStockStringArr.push({
+                  class: "normal",
+                  value:
+                    " “" + e.resultForeignShipName + "”" + e.gmTonnage + "吨 "
+                });
+              }
+            });
+            this.runStockString='';
+            this.runStockStringArr.forEach((item)=>{
+              this.runStockString+=item.value;
+            });
+            console.log("this.runStockString:", this.runStockString);
+          }
+        });
+   },
   }
 };
 </script>

+ 121 - 0
src/views/statisticalReport/components/controlLines.vue

@@ -0,0 +1,121 @@
+<template>
+  <!-- 万州港装船作业报表 -->
+  <div class="control" style="width:100%;">
+    <div style="height:100%;width:100%">
+      <div class="search" style="display:flex;margin: 10px;">
+        <el-date-picker
+        v-model="month"
+        type="month"
+        placeholder="选择月"
+        style="margin: 10px;"
+        @change="search">
+        </el-date-picker>
+      </div>
+
+      <!-- 装车出库详情 -->
+      <div ref="controlData" style="width:100%;height:500px;float:left;margin-left:5px">
+        <div class="loadTable" style="height:500px;width:100%;overflow:scroll;">
+             <el-table
+          ref="controlTable"
+          highlight-current-row
+          border
+          fit
+          :data="controlTable"
+          :row-style="{height:'40px'}"
+          style="width: 100%;font-size: 18px">
+          <el-table-column
+          align="center"
+            prop="lineDate"
+            label="日期">
+          </el-table-column>
+          <el-table-column
+          align="center"
+            prop="up"
+            label="上行等闸数量">
+            <template slot-scope="scope">
+                  <el-input type="number" v-model="scope.row.up" @change="update(scope.row)"></el-input>
+            </template>
+          </el-table-column>
+           <el-table-column
+          align="center"
+            prop="down"
+            label="下行等闸数量">
+            <template slot-scope="scope">
+                  <el-input type="number" v-model="scope.row.down" @change="update(scope.row)"></el-input>
+            </template>
+          </el-table-column>
+          <el-table-column
+          align="center"
+            prop="count"
+            label="等闸总量">
+          </el-table-column>
+        </el-table>
+        </div >
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import PageTitle from "@/components/Page/Title";
+import { sjTime } from "@/utils/sharedJsFile";
+import {getCookie} from "@/utils/util.js";
+import FileSaver from "file-saver";
+import BigNumber from "bignumber.js";
+export default {
+  components: { PageTitle },
+  data() {
+    return {
+        month:new Date(),
+        controlTable:[]
+    };
+  },
+  mounted(){
+    this.search();
+  },
+  watch: {
+    controlTable: {
+      handler(newVal) {
+        this.computedTableData();
+      },
+      deep: true,
+      immediate: false
+    },
+  },
+  methods: {
+    search(){
+        let year=this.month.getFullYear();
+        let month=this.month.getMonth()+1;
+        console.log("year:",year);
+        console.log("month:",month);
+        let map={
+            year:year,
+            month:month
+        }
+        this.axios.post("/api/v1/tms/getControlLines",map).then((res)=>{
+            this.controlTable=res.data.data;
+        });
+    },
+    computedTableData(){
+        this.controlTable.forEach((item, index) => {
+            item.count=parseInt(item.up)+parseInt(item.down);
+        });
+    },
+    update(row){
+        if(row.up==''){
+          row.up=0
+        }
+        if(row.down==''){
+          row.down=0
+        }
+        this.axios.post("/api/v1/tms/updateControlLine",row).then((res)=>{
+            this.$message.success("修改成功");
+        });
+    }
+  },
+};
+</script>
+<style lang='scss'>
+
+</style>
+

+ 99 - 33
src/views/statisticalReport/components/salesLogisticsStatistics/saleSteelReports.vue

@@ -115,6 +115,8 @@
         @cell-mouse-leave="cellLeave"
         @row-click="rowClick"
         :cell-style="cellStyle"
+        @filter-change="filterChange"
+        :lazy="true"
       >
         <el-table-column
           width="50"
@@ -136,6 +138,7 @@
           prop="saleOrderStatus"
           label="销售订单状态"
           width="100px"
+          align="center"
           show-overflow-tooltip
         >
         </el-table-column>
@@ -146,7 +149,6 @@
           align="center"
           column-key="consigneeName"
           :filters="filterConsigneeList"
-          :filter-method="filterConsignee"
           sortable
           show-overflow-tooltip
         >
@@ -154,9 +156,10 @@
         <el-table-column
           prop="areaName"
           label="销售片区"
-          width="160px"
+          width="150px"
           align="center"
-          show-overflow-tooltip
+          column-key="saleAreaList"
+          :filters="filterSaleAreaList"
         >
         </el-table-column>
         <el-table-column
@@ -164,10 +167,10 @@
           label="承运商"
           align="center"
           width="80px"
+          column-key="carrierList"
           sortable
           show-overflow-tooltip
           :filters="filterCarrierList"
-          :filter-method="filterCarrier"
         >
         </el-table-column>
         <el-table-column
@@ -179,18 +182,16 @@
           sortable
           show-overflow-tooltip
           :filters="filterCapacityList"
-          :filter-method="filterCapacity"
         >
         </el-table-column>
         <el-table-column
           prop="materialName"
+          column-key="materialNameList"
           label="物资名称"
           align="center"
           width="150px"
           sortable
-          show-overflow-tooltip
           :filters="filtermaterialNameList"
-          :filter-method="filtermaterialName"
         >
         </el-table-column>
         <el-table-column
@@ -775,7 +776,6 @@ import { sjTime, isVehicleNumber } from '@/utils/sharedJsFile'
 import { getCookie } from '@/utils/util.js'
 import PathView from './mapTest.vue'
 import currentLocation from './currentLocation.vue'
-import newNoticeVue from '../../../sale/components/dilNotice/newNotice.vue'
 export default {
   components: {
     PathView,
@@ -867,7 +867,10 @@ export default {
         '收货客户电话',
         '是否自提',
         '订单日期',
-        '短信发送'
+        '短信发送',
+        '销售片区',
+        '抵达时间',
+        '签收时间'
       ],
       //钢材多拼车辆线路ID
       //索引从1-10为1-10拼路线ID
@@ -940,7 +943,9 @@ export default {
       filterConsigneeList: [],
       filterCarrierList: [],
       filterCapacityList: [],
-      filtermaterialNameList: []
+      filtermaterialNameList: [],
+      filterSaleAreaList: [],
+      filterMap: {}
     }
   },
   created() {
@@ -988,33 +993,93 @@ export default {
       })
       this.getSteelReport()
     },
+    //筛选
+    filterChange(obj) {
+      if (typeof obj.carrierList != 'undefined' && obj.carrierList.length > 0) {
+        this.filterMap.carrierList = obj.carrierList
+      }
+      if (
+        typeof obj.carrierList != 'undefined' &&
+        obj.carrierList.length == 0
+      ) {
+        delete this.filterMap.carrierList
+      }
+      if (
+        typeof obj.materialNameList != 'undefined' &&
+        obj.materialNameList.length > 0
+      ) {
+        this.filterMap.materialNameList = obj.materialNameList
+      }
+      if (
+        typeof obj.materialNameList != 'undefined' &&
+        obj.materialNameList.length == 0
+      ) {
+        delete this.filterMap.materialNameList
+      }
+      if (typeof obj.capacityNo != 'undefined' && obj.capacityNo.length > 0) {
+        this.filterMap.capacityList = obj.capacityNo
+      }
+      if (typeof obj.capacityNo != 'undefined' && obj.capacityNo.length == 0) {
+        delete this.filterMap.capacityList
+      }
+      if (
+        typeof obj.consigneeName != 'undefined' &&
+        obj.consigneeName.length > 0
+      ) {
+        this.filterMap.consigneeNameList = obj.consigneeName
+      }
+      if (
+        typeof obj.consigneeName != 'undefined' &&
+        obj.consigneeName.length == 0
+      ) {
+        delete this.filterMap.consigneeNameList
+      }
+      if (
+        typeof obj.saleAreaList != 'undefined' &&
+        obj.saleAreaList.length > 0
+      ) {
+        this.filterMap.saleAreaList = obj.saleAreaList
+      }
+      if (
+        typeof obj.saleAreaList != 'undefined' &&
+        obj.saleAreaList.length == 0
+      ) {
+        delete this.filterMap.saleAreaList
+      }
+      // if (obj)
+      this.onclick(this.filterMap)
+>>>>>>> dab0695a0b4c11d9b863eeba4255c1bfcfc451c7
+    },
     //控制筛选数组变化
     filterListChange() {
       let consigneeNameList = this.tableData.map(e => {
         return e.consigneeName
       })
-      let carrierNameList = this.tableData
-        .map(e => {
-          return e.carrierName
-        })
-        .filter(e => {
-          return e != null
-        })
-      let capacityList = this.tableData
+      let carrierNameList = this.tableData.map(e => {
+        return e.carrierName
+      })
+      let capacityList = this.tableData.map(e => {
+        return e.capacityNo
+      })
+      let materialNameList = this.tableData
         .map(e => {
-          return e.capacityNo
+          return e.materialName
         })
         .filter(e => {
           return e != null
         })
-      let materialNameList = this.tableData
+      let saleAreaList = this.tableData
         .map(e => {
-          return e.materialName
+          return e.areaName
         })
         .filter(e => {
           return e != null
         })
-
+      this.filterConsigneeList = []
+      this.filterCarrierList = []
+      this.filterCapacityList = []
+      this.filtermaterialNameList = []
+      this.filterSaleAreaList = []
       Array.from(new Set(consigneeNameList)).forEach(e => {
         let map = {}
         map.text = e
@@ -1039,15 +1104,12 @@ export default {
         map.value = e
         this.filtermaterialNameList.push(map)
       })
-    },
-    filterConsignee(value, row) {
-      return row.consigneeName === value
-    },
-    filterCarrier(value, row) {
-      return row.carrierName === value
-    },
-    filterCapacity(value, row) {
-      return row.capacityNo === value
+      Array.from(new Set(saleAreaList)).forEach(e => {
+        let map = {}
+        map.text = e
+        map.value = e
+        this.filterSaleAreaList.push(map)
+      })
     },
     cellStyle({ row, column, rowIndex, columnIndex }) {
       if (
@@ -1908,7 +1970,7 @@ export default {
         })
     },
     //查询,输入查询条件
-    onclick() {
+    onclick(obj) {
       this.isRowClick = 0
       const loading = this.$loading({
         lock: true,
@@ -1976,7 +2038,8 @@ export default {
             '&saler=' +
             saler +
             '&easPrimaryId=' +
-            easPrimaryId
+            easPrimaryId,
+          obj
         )
         .then(res => {
           this.tableData = res.data.data
@@ -2075,6 +2138,9 @@ export default {
   .table {
     margin-left: 20px;
     margin-top: 20px;
+    .el-tooltip {
+      width: auto !important;
+    }
     ::-webkit-scrollbar {
       // width: 20px;
       height: 20px;

+ 129 - 1
src/views/statisticalReport/components/tableItem.vue

@@ -29,6 +29,15 @@
         </div>
       </template>
       <div slot="append">
+        <div class="appendSlot" style="margin-top:20px">
+          <span
+            v-for="item in downStockStringArr"
+            :class="item.class"
+            :key="item.value"
+            >{{ item.value }}</span
+          >
+        </div>
+        <el-divider></el-divider>
         <div class="appendSlot">
           <span
             v-for="item in stockStringArr"
@@ -37,6 +46,15 @@
             >{{ item.value }}</span
           >
         </div>
+        <el-divider></el-divider>
+        <div class="appendSlot">
+          <span
+            v-for="item in runStockStringArr"
+            :class="item.class"
+            :key="item.value"
+            >{{ item.value }}</span
+          >
+        </div>
       </div>
     </el-table>
   </div>
@@ -83,11 +101,17 @@ export default {
   data() {
     return {
       stockString: null,
-      stockStringArr: []
+      downStockString:null,
+      runStockString:null,
+      stockStringArr: [],
+      downStockStringArr: [],
+      runStockStringArr:[]
     };
   },
   mounted() {
     this.getStockString();
+    this.getDownStockString();
+    this.getRunStockList();
   },
   methods: {
     getStockString() {
@@ -166,6 +190,110 @@ export default {
           }
         });
     },
+    getDownStockString() {
+      let that = this;
+      this.axios
+        .post("/api/v1/wmsh/getDownPortStockList")
+        .then(res => {
+          console.log(res);
+          if (res.status == "200") {
+            let resultActualInstallations = 0;
+            res.data.data.forEach(e => {
+              resultActualInstallations =
+                resultActualInstallations + e.gmTonnage;
+            });
+            
+            this.downStockStringArr.push({
+              class: "normalFirst",
+              value: "下游港口库存" + resultActualInstallations.toFixed(2) + "吨:"
+            });
+
+            let materialName = res.data.data[0].materialName;
+            this.downStockStringArr.push({
+              class: "black",
+              value: materialName + res.data.data[0].totalTonnage + "吨:"
+            });
+
+            res.data.data.forEach(e => {
+              if (e.materialName == materialName) {
+                this.downStockStringArr.push({
+                  class: "normal",
+                  value:
+                    " “" + e.resultForeignShipName + "”" + e.gmTonnage + "吨 "
+                });
+              } else {
+                materialName = e.materialName;
+                this.downStockStringArr.push({
+                  class: "black",
+                  value: ";" + materialName + e.totalTonnage + "吨:"
+                });
+                this.downStockStringArr.push({
+                  class: "normal",
+                  value:
+                    " “" + e.resultForeignShipName + "”" + e.gmTonnage + "吨 "
+                });
+              }
+            });
+            console.log("arr:", this.downStockStringArr);
+            this.downStockString='';
+            this.downStockStringArr.forEach((item)=>{
+              downStockString+=item.value;
+            });
+          }
+        });
+    },
+   getRunStockList(){
+      let that = this;
+      this.axios
+        .post("/api/v1/wmsh/getRunStockList")
+        .then(res => {
+          console.log(res);
+          if (res.status == "200") {
+            let resultActualInstallations = 0;
+            res.data.data.forEach(e => {
+              resultActualInstallations =
+                resultActualInstallations + e.gmTonnage;
+            });
+
+            this.runStockStringArr.push({
+              class: "normalFirst",
+              value: "在途库存" + resultActualInstallations.toFixed(2) + "吨:"
+            });
+
+            let materialName = res.data.data[0].materialName;
+            this.runStockStringArr.push({
+              class: "black",
+              value: materialName + res.data.data[0].totalTonnage + "吨:"
+            });
+
+            res.data.data.forEach(e => {
+              if (e.materialName == materialName) {
+                this.runStockStringArr.push({
+                  class: "normal",
+                  value:
+                    " “" + e.resultForeignShipName + "”" + e.gmTonnage + "吨 "
+                });
+              } else {
+                materialName = e.materialName;
+                this.runStockStringArr.push({
+                  class: "black",
+                  value: ";" + materialName + e.totalTonnage + "吨:"
+                });
+                this.runStockStringArr.push({
+                  class: "normal",
+                  value:
+                    " “" + e.resultForeignShipName + "”" + e.gmTonnage + "吨 "
+                });
+              }
+            });
+            console.log("arr:", this.runStockStringArr);
+            this.runStockString='';
+            this.runStockStringArr.forEach((item)=>{
+              runStockString+=item.value;
+            });
+          }
+        });
+   },
     headerCellStyle({ row, column, rowIndex, columnIndex }) {
       let columnIndexList1 = [5];
       let columnIndexList2 = [6];

+ 7 - 0
src/views/statisticalReport/router/index.js

@@ -9,6 +9,7 @@ import main from '@/components/main.vue'
 import ShipDynamicTable from '../components/Ship_dynamic_table.vue'
 import ShipWorkReport from '../components/ShipWorkReport.vue'
 import dowmShipDynamicTable from '../components/dowmShipDynamicTable.vue'
+import controlLines from '../components/controlLines.vue'
 import purchaseAccessoriesMonitor from '../components/purchaseAccessoriesMonitor.vue'
 import purchasFuelOldMonitor from '../components/purchasFuelMonitor/purchasFuelOldMonitor.vue'
 import purchasFuelNewMonitor from '../components/purchasFuelMonitor/purchasFuelNewMonitor.vue'
@@ -78,6 +79,12 @@ const constantRouterMap = [
         meta: { code: 'xtpzgl-yhgl' },
         component: dowmShipDynamicTable
       },
+      {
+        path: 'controlLines',
+        name: 'controlLines',
+        meta: { code: 'xtpzgl-yhgl' },
+        component: controlLines
+      },
       {
         path: 'purchaseAccessoriesMonitor',
         name: 'purchaseAccessoriesMonitor',