zx 2 years ago
parent
commit
c314d1e135
34 changed files with 6425 additions and 1815 deletions
  1. 3 1
      build/utils.js
  2. 4 2
      config/index.js
  3. 1 0
      src/components/DilCommonUI/packages/mergeRowTable/src/mergeRowTable.js
  4. 9 6
      src/views/TMS/components/domesticMine/entrustMine.vue
  5. 159 357
      src/views/TMS/components/domesticMine/wagonLoadAdd.vue
  6. 203 449
      src/views/TMS/components/importedEmergency/addWagonLoadEmergency.vue
  7. 6 0
      src/views/TMS/components/importedEmergency/entrustEmergency.vue
  8. 200 447
      src/views/TMS/components/importedMine/addWagonLoad.vue
  9. 889 0
      src/views/TMS/components/importedMine/addWagonloadCopy.vue
  10. 6 0
      src/views/TMS/components/importedMine/entrust.vue
  11. 65 0
      src/views/TMS/components/importedMine/outBoundWagon.vue
  12. 43 42
      src/views/TMS/components/importedMine/wagonLoad.vue
  13. 6 0
      src/views/TMS/components/importedShip/bargeShip.vue
  14. 6 0
      src/views/TMS/components/importedShip/loadShip.vue
  15. 6 0
      src/views/TMS/components/importedShip/shipLocation.vue
  16. 7 1
      src/views/TMS/components/importedShip/shipResult.vue
  17. 9 5
      src/views/TMS/components/importedShip/shipmentInstructionText.vue
  18. 6 0
      src/views/TMS/components/importedShip/shipmentInstructions.vue
  19. 6 0
      src/views/TMS/components/importedShip/unloadShip.vue
  20. 1292 394
      src/views/TMS/router/index.js
  21. 14 9
      src/views/appoint/components/saleContract/addSaleOrderSteelSendCarrier.vue
  22. 1935 0
      src/views/appoint/components/saleContract/copySteelOrder.vue
  23. 29 4
      src/views/appoint/components/saleContract/saleOrderSteel.vue
  24. 17 9
      src/views/appoint/components/ship/addDeliveryAttorney.vue
  25. 22 4
      src/views/appoint/components/ship/addDeliveryNotice.vue
  26. 10 7
      src/views/appoint/components/ship/attorneytext.vue
  27. 6 0
      src/views/appoint/components/ship/deliveryAttorney.vue
  28. 6 0
      src/views/appoint/components/ship/deliveryNotice.vue
  29. 1 1
      src/views/appoint/components/ship/modifyDeliveryNotice.vue
  30. 7 0
      src/views/appoint/router/index.js
  31. 61 21
      src/views/queue/components/qmsEnFacotory/queueFStart.vue
  32. 695 0
      src/views/statisticalReport/components/salesLogisticsStatistics/saleSteelAllReport.vue
  33. 516 0
      src/views/statisticalReport/components/salesLogisticsStatistics/steelReportCom.vue
  34. 180 56
      src/views/statisticalReport/router/index.js

+ 3 - 1
build/utils.js

@@ -16,7 +16,9 @@ const devPathSrc = path.resolve(__dirname, "../../../src"); // node_modules应
 //       统计报表       组织机构/系统管理 采购  仓储
 //  'statisticalReport','systemConfig','TMS','WMS','workFlow']
 // let devModules = ["index", "appoint", "statisticalReport"];
-let devModules = ["index","TMS","appoint"];
+// let devModules = ["index", "statisticalReport", "appoint", "TMS"];
+// let devModules = ["index", "statisticalReport", "TMS", "appoint"];
+let devModules = ["index","appoint","TMS"];
 // let devModules = ['index','appoint','sale','statisticalReport','RMS','TMS','WMS']
 // let devModules = ["index", "ADMINISTRATORS", "RMS"];
 // let devModules = ["index", "inward", "statisticalReport"];

+ 4 - 2
config/index.js

@@ -65,15 +65,17 @@ let proxyTable = {
   },
   // 所有数据的请求域名地址
   "/api/v1": {
-    target: "http://172.16.33.166:80",
     // target: "http://localhost:8080",
+    target: "http://172.16.33.166:80",
+    // target: "http://192.168.1.105:8080",
+    // target: "http://192.168.1.106:8080",
     ws: true,
     pathRewrite: {
       "^/api/v1": "/api/v1"
     }
   },
   "/views/api/v1": {
-    target: "http://172.16.33.166:80",
+    target: "http://localhost:8080",
     // target: "http://192.168.1.109:8080",
     ws: true,
     pathRewrite: {

+ 1 - 0
src/components/DilCommonUI/packages/mergeRowTable/src/mergeRowTable.js

@@ -67,6 +67,7 @@ export default {
           }
         }
       }
+      this.$emit("funs", data);
     },
     objectSpanMethod({ row, column, rowIndex, columnIndex }) {
       if (this.columnIndexs.indexOf(columnIndex) != -1) {

+ 9 - 6
src/views/TMS/components/domesticMine/entrustMine.vue

@@ -21,12 +21,12 @@
       <el-button type="primary" class="btn" @click="onclick">
         <i class="el-icon-search"></i>查询
       </el-button>
-      <el-button
-        type="primary"
-        @click="exportData()"
-        v-if="activeName == 'second'"
-        ><i class="el-icon-download"></i>导出(Excel)</el-button
-      >
+      <el-button type="primary" @click="exportData()">
+        <i class="el-icon-download"></i>导出(Excel)
+      </el-button>
+       <el-button type="primary" @click="refresh()">
+        <i class="el-icon-refresh"></i>刷新
+      </el-button>
     </div>
 
     <el-tabs v-model="activeName" @tab-click="handleClick">
@@ -148,6 +148,9 @@ export default {
       console.log(selection);
       this.selectionListMap2 = selection;
     },
+    refresh(){
+      this.$router.go(0);
+    }
   },
 };
 </script>

+ 159 - 357
src/views/TMS/components/domesticMine/wagonLoadAdd.vue

@@ -1,5 +1,5 @@
 <template>
-  <!-- 国产矿导入-->
+  <!-- 国产矿导入3-->
   <div class="addWagonLoad">
     <page-title>返回</page-title>
     <div class="cp">
@@ -13,10 +13,6 @@
           <el-button  type="primary">导入车皮号(Excel)</el-button>
       </el-upload>
       <div style="margin-right:200px;">当前导入数量:{{tableData.length}}</div>
-      <!-- <el-button type="primary" @click="exportData()"><i class="el-icon-download"></i>下载Excel模板</el-button> -->
-    </div>
-    <div>
-      <span style="color:red">导入数据中的 品名、发货单位、车号、发站 是必须的</span>
     </div>
     <div class="table item">
       <el-table
@@ -35,15 +31,15 @@
         </el-table-column>
         <el-table-column
         align="center"
-          prop="materialName"
+          prop="productName"
           label="品  名"
-          width="180px">
+          width="240px">
         </el-table-column>
         <el-table-column
         align="center"
-          prop="supplierName"
-          label="发货单位"
-          width="180px">
+          prop="mineral"
+          label="矿种"
+          width="100px">
         </el-table-column>
         <el-table-column
         align="center"
@@ -53,8 +49,8 @@
         </el-table-column>
         <el-table-column
         align="center"
-          prop="sendDate"
-          label="发货日期"
+          prop="unloadPoint"
+          label="卸货地点"
           width="180px">
         </el-table-column>
         <el-table-column
@@ -75,82 +71,8 @@
           prop="weight"
           label="标重">
         </el-table-column>
-        <!-- <el-table-column
-        align="center"
-        width="100px"
-          fixed="right"
-          label="操作">
-          <template slot-scope="scope">
-            <el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button>
-            <el-button type="text" size="small">编辑</el-button>
-          </template>
-        </el-table-column> -->
       </el-table>
     </div>
-    <!-- <div class="matching item">
-          <span class="text">是否知道采购订单号:</span>
-          <el-switch
-            v-model="matching"
-            active-color="#27d452"
-            inactive-color="#e1e3e6"
-          >
-          </el-switch>
-    </div>
-    <div class="material item">
-      <span class="text">物资:</span>
-      <el-input v-model="materialName" disabled> </el-input>
-      <el-button type="primary" @click="ondrawer(1)">浏览</el-button>
-    </div>
-
-    <div class="forwardingUnit item">
-      <span class="text">发货单位:</span>
-      <el-input v-model="supplierName" disabled> </el-input>
-      <el-button type="primary" @click="ondrawer(2)">浏览</el-button>
-    </div>
-    <div class="forwardingUnit item" v-if="matching">
-      <span class="text">卸货点:</span>
-      <el-input v-model="unloadPointName" disabled> </el-input>
-      <el-button type="primary" @click="ondrawer(3)">浏览</el-button>
-    </div> -->
-    <div class="fromOther">
-      <!-- <el-form :inline="true" class="demo-form-inline" label-width="80px" style="margin-left:500px;">
-        <el-form-item label="发站:">
-          <el-autocomplete
-            class="inline-input"
-            v-model="sendStation"
-            :fetch-suggestions="querySearchSendStation"
-            placeholder="请输入发站名称"
-            :trigger-on-focus="false"
-            @select="handleSelectSendStation"
-          >
-            <template slot-scope="{ item }">
-              <div class="name">{{ item.arrivalName }}</div>
-            </template>
-          </el-autocomplete>
-        </el-form-item>
-      </el-form> -->
-      
-    </div>
-    <!-- <div class="remark from" v-if="matching">
-      <span class="text">船名/备注:</span>
-      <el-input
-        v-model="remark"
-        @blur="onBlur"
-        placeholder="可输入船名\备注重新匹配采购订单"
-      >
-      </el-input>
-      <span class="span"></span>
-    </div>
-    <div class="purchaseOrder from" v-if="matching" >
-      <span class="text" style="width:140px">采购订单号:</span>
-      <el-input
-        v-model="purchaseOrderNo"
-        placeholder="请选择物资和发货单位"
-        disabled
-      >
-      </el-input>
-      <span class="span"></span>
-    </div> -->
     <div class="form">
       <div class="form_box" style="margin-right: 10rem;margin-top:20px">
         <el-form>
@@ -174,46 +96,10 @@
         <dil-form :formId="364" v-model="form1" ref="from1"></dil-form>
       </div>
     </div>
-
     <div class="button_box">
       <el-button @click="cancel">取消</el-button>
-      <el-button type="primary" :disabled="disable"  @click="makeSure">确定</el-button>
+      <el-button type="primary" :loading="isLoading"  @click="makeSure">确定</el-button>
     </div>
-    <!-- 模态窗口 -->
-    <el-drawer :visible.sync="drawer" :direction="direction" size="30%">
-      <el-input
-        placeholder="请输入内容"
-        v-model="inputText"
-        style="margin-top: 0rem; margin-right: 0.1rem; width: 230px"
-        clearable
-      ></el-input>
-      <el-button
-        type="primary"
-        class="btn"
-        @click="onClick(a)"
-        style="margin-bottom: 0.9375rem"
-      >
-        <i class="el-icon-search"></i>查询
-      </el-button>
-      <div v-show="a == 1">
-        <dilTable
-          v-bind.sync="frist"
-          @radio-change="currentRadioChange1"
-        ></dilTable>
-      </div>
-      <div v-show="a == 2">
-        <dilTable
-          v-bind.sync="secend"
-          @radio-change="currentRadioChange2"
-        ></dilTable>
-      </div>
-       <div v-show="a == 3">
-        <dilTable
-          v-bind.sync="unloadPoint"
-          @radio-change="currentRadioChange3"
-        ></dilTable>
-      </div>
-    </el-drawer>
   </div>
 </template>
 
@@ -225,7 +111,7 @@ export default {
   components: { PageTitle },
   data() {
     return {
-      disable:true,
+      isLoading:false,
       file:null,
       list: [],
       form1: {},
@@ -250,9 +136,6 @@ export default {
       //表格数据
       tableData:[],
       unloadPointName:null,
-      //物资集合和供应商映射,相当于本地缓存,减少请求次数
-      materialMap:new Map(),
-      supplierMap:new Map(),
       materials:[],
       suppliers:[],
       unloadPointId:null,
@@ -298,39 +181,6 @@ export default {
     this.form1.resultLoadingDate=new Date();
   },
   methods: {
-    currentRadioChange1(selection) {
-      this.input = null;
-      this.materialName = selection.materialName;
-      this.materialId = selection.materialId;
-      if (this.matching) {
-        this.getPurchaseOrderNo();
-      }
-    },
-    currentRadioChange2(selection) {
-      this.supplierName = selection.supplierName;
-      this.supplierId = selection.supplierId;
-      if (this.matching) {
-        this.getPurchaseOrderNo();
-      }
-    },
-    currentRadioChange3(selection) {
-      this.unloadPointId = selection.warehouseId;
-      this.unloadPointName = selection.warehouseName;
-    },
-    ondrawer(num) {
-      this.drawer = true;
-      this.a = num;
-      if (num == 2) {
-        this.secend.requestUrl =
-          "/api/v1/uc/getSupplierMesByMaterialId?apiId=247&materialId=" +
-          this.materialId;
-      }
-    },
-    onBlur() {
-      if (this.matching) {
-        this.getPurchaseOrderNo();
-      }
-    },
     getPurchaseOrderNo() {
       console.log(this.matching);
       let map = {
@@ -362,39 +212,6 @@ export default {
         });
       }
     },
-    //发站弹出层
-    handleSelectSendStation(item) {
-      this.sendStationId = item.arrivalId;
-      this.sendStation = item.arrivalName;
-    },
-    //以下是发站边输边查搜索
-    querySearchSendStation(queryString, cb) {
-      this.axios
-        .get("/api/v1/uc/getArrivalByLike?index=" + this.sendStation)
-        .then((res) => {
-          if (res.data.code == "200") {
-            var restaurantsSupplier = res.data.data;
-            console.log(restaurantsSupplier)
-            var results = queryString
-              ? restaurantsSupplier.filter(
-                  this.createFilterSendStation(queryString)
-                )
-              : restaurantsSupplier;
-            // 调用 callback 返回建议列表的数据
-            cb(results);
-          }
-        });
-    },
-    //发站
-    createFilterSendStation(queryString) {
-      return (restaurantsSupplier) => {
-        return (
-          restaurantsSupplier.arrivalName
-            .toLowerCase()
-            .indexOf(queryString.toLowerCase()) > -1
-        );
-      };
-    },
     //到站弹出层
     handleSelectToTheStation(item) {
       this.toTheStationId = item.arrivalId;
@@ -428,98 +245,29 @@ export default {
         );
       };
     },
-    onClick(a) {
-      if (a == 1) {
-        this.frist.requestUrl =
-          "/api/v1/uc/queryAPOMaterialByLike?apiId=244&startNum=050&index=" +
-          this.inputText;
-      } else if (a == 2) {
-        this.secend.requestUrl =
-          "/api/v1/uc/getSupplierMesByMaterialId?apiId=247&materialId=" +
-          this.materialId +
-          "&index=" +
-          this.inputText;
-      } else if (a == 3) {
-        this.unloadPoint.requestUrl =
-          "/api/v1/uc/getUnloadingMesByLike?apiId=374&index=" + this.inputText;
-      }
-    },
-    onchang() {
-      var state = false;
-      var cptop = this.input.substring(0, 2);
-      var cptop1 = this.input.substring(0, 3);
-      if (
-        cptop == "45" ||
-        cptop == "46" ||
-        cptop == "42" ||
-        cptop == "47" ||
-        cptop == "15" ||
-        cptop == "16" ||
-        cptop == "17" ||
-        cptop == "18"
-      ) {
-        state = true;
-      } else if (
-        cptop1 == "140" ||
-        cptop1 == "141" ||
-        cptop1 == "142" ||
-        cptop1 == "143" ||
-        cptop1 == "145"
-      ) {
-        state = true;
-      } else {
-        this.$message({
-          type: "warning",
-          message: "车皮号格式不对,请重新输入!",
-        });
-      }
-      if (state) {
-        if (this.input.length == 7) {
-          this.list.push(this.input);
-          this.input = "";
-        } else if (this.input.length < 7) {
+    // 确定
+    makeSure() {
+      let that=this;
+      this.isLoading=true;
+      if (this.tableData.length <= 0  || !this.toTheStationId || !this.form1.resultLoadingDate){
+        if (this.tableData.length <= 0) {
           this.$message({
             type: "warning",
-            message: "车皮号长度不足7位数,请重新输入!",
+            message: "请导入数据!",
           });
-        } else if (this.input.length > 7) {
+        } else if (!this.toTheStationId) {
           this.$message({
             type: "warning",
-            message: "车皮号长度超过7位数,请重新输入!",
+            message: "请选择到站!",
           });
-        }
-      }
-    },
-    onclick(index) {
-      this.list.splice(index, 1);
-    },
-    // 确定
-    makeSure() {
-      this.disable=true;
-      let that=this;
-      if (this.tableData.length <= 0  || !this.toTheStationId || this.form1.resultLoadingDate){
-        if (this.tableData.length <= 0) {
+        }else if (!this.form1.resultLoadingDate) {
           this.$message({
             type: "warning",
-            message: "请导入数据!",
+            message: "请选择装车时间!",
           });
-        } else {
-            this.disable=false;
-            if (this.toTheStationId) {
-              if (this.form1.resultLoadingDate) {
-              } else {
-                this.$message({
-                  type: "warning",
-                  message: "请选择装车时间!",
-                });
-              }
-            } else {
-              this.$message({
-                type: "warning",
-                message: "请选择到站!",
-              });
-            }
         }
+        this.isLoading=false;
+        return;
       }
       //绑定通用字段
       this.tableData.forEach((row)=>{
@@ -543,10 +291,15 @@ export default {
               type: "success",
               message: "新增成功",
             });
-            this.$router.push("/wagonLoadMine");
+            this.cancel();
+          }else{
+            this.$message({
+              type: "error", 
+              message: res.data.data,
+            });
           }
+          this.isLoading=false;
         });
-      
     },
     cancel() {
       this.$router.push("/wagonLoadMine");
@@ -560,95 +313,144 @@ export default {
           type: "warning",
         });
         return
+      }
+      this.tableData=[];
+      var reader = new FileReader();
+      var data=null;
+      var workbook=null;
+      //设置读取操作
+      reader.onload = function (e) {
+        console.log(e);
+        data = e.target.result;
+        workbook= XLSX.read(data, {
+            type: 'binary'
+        });
+        console.log(workbook);
+        let rows= XLSX.utils.sheet_to_json(workbook.Sheets[workbook.SheetNames[0]]);//只取第一页
+        let index=1;
+        for(index=1;index<rows.length;index++){
+          if(typeof workbook.Sheets[workbook.SheetNames[0]]['A'+index] !='undefined'){
+            index++;
+            break;
+           }
         }
-        var reader = new FileReader();
-        var data=null;
-        var workbook=null;
-        //设置读取操作
-        reader.onload = function (e) {
-          console.log(e);
-          data = e.target.result;
-          workbook= XLSX.read(data, {
-              type: 'binary'
-          });
-          console.log(workbook);
-          //读取表格
-          let rows= XLSX.utils.sheet_to_json(workbook.Sheets[workbook.SheetNames[0]]);//只取第一页
-          console.log(rows);
-          //清空
-          if(rows.length>0){
-            that.disable=false;
-            that.tableData=[];
-            if((typeof rows[0]['车号'])=='undefined'){
-               that.$message({
-                message: "导入Excel格式错误,车号不能为空!",
+        console.log('表头行数:'+index);
+        //校验表头
+        if( workbook.Sheets[workbook.SheetNames[0]]['A'+index].v!='序号'
+        || workbook.Sheets[workbook.SheetNames[0]]['B'+index].v!='发站'
+        || workbook.Sheets[workbook.SheetNames[0]]['C'+index].v!='到站'
+        || workbook.Sheets[workbook.SheetNames[0]]['D'+index].v!='发货日期'
+        || workbook.Sheets[workbook.SheetNames[0]]['E'+index].v!='到货日期'
+        || workbook.Sheets[workbook.SheetNames[0]]['F'+index].v!='卸货地点'
+        || workbook.Sheets[workbook.SheetNames[0]]['G'+index].v!='品名'
+        || (workbook.Sheets[workbook.SheetNames[0]]['I'+index].v!='计费\n吨位'
+        && workbook.Sheets[workbook.SheetNames[0]]['I'+index].v!='计费吨位'
+        && workbook.Sheets[workbook.SheetNames[0]]['I'+index].v!='计费&#10;吨位')
+        || workbook.Sheets[workbook.SheetNames[0]]['J'+index].v!='车号'
+        || workbook.Sheets[workbook.SheetNames[0]]['K'+index].v!='计量吨位'
+        || workbook.Sheets[workbook.SheetNames[0]]['L'+index].v!='计费吨位合计'){
+          if(workbook.Sheets[workbook.SheetNames[0]]['A'+index].v!='序号'){
+             that.$message({
+                message: "表格格式错误:序号错误",
                 type: "warning",
-              });
-              return;
-            }
-            if((typeof rows[0]['品  名'])=='undefined' && (typeof rows[0]['品名'])=='undefined' && (typeof rows[0]['物资'])=='undefined'){
-               that.$message({
-                message: "导入Excel格式错误,品名不能为空!",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['B'+index].v!='发站'){
+             that.$message({
+                message: "表格格式错误:发站错误",
                 type: "warning",
-              });
-              return;
-            }
-            if((typeof rows[0]['发货单位'])=='undefined'){
-               that.$message({
-                message: "导入Excel格式错误,发货单位不能为空!",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['C'+index].v!='到站'){
+             that.$message({
+                message: "表格格式错误:到站错误",
                 type: "warning",
-              });
-              return;
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['D'+index].v!='发货日期'){
+             that.$message({
+                message: "表格格式错误:发货日期错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['E'+index].v!='到货日期'){
+             that.$message({
+                message: "表格格式错误:到货日期错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['F'+index].v!='卸货地点'){
+             that.$message({
+                message: "表格格式错误:卸货地点错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['G'+index].v!='品名'){
+             that.$message({
+                message: "表格格式错误:品名错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['I'+index].v!='计费\n吨位' 
+          && workbook.Sheets[workbook.SheetNames[0]]['I'+index].v!='计费吨位'
+          && workbook.Sheets[workbook.SheetNames[0]]['I'+index].v!='计费&#10;吨位'){
+             that.$message({
+                message: "表格格式错误:计费吨位错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['J'+index].v!='车号'){
+             that.$message({
+                message: "表格格式错误:车号错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['K'+index].v!='计量吨位'){
+             that.$message({
+                message: "表格格式错误:计量吨位错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['L'+index].v!='计费吨位合计'){
+             that.$message({
+                message: "表格格式错误:计费吨位合计错误",
+                type: "warning",
+            });
+          }
+          return;
+        }
+        //读取表格
+        for(let i=1;i<=rows.length+1;i++){
+          let row=workbook.Sheets[workbook.SheetNames[0]]['A'+i];
+          if(row!='undefined' && row!=null && typeof row.v=='number' 
+              && workbook.Sheets[workbook.SheetNames[0]]['B'+i]!='undefined'
+            && workbook.Sheets[workbook.SheetNames[0]]['B'+i]!=null
+              && workbook.Sheets[workbook.SheetNames[0]]['C'+i]!='undefined'
+            && workbook.Sheets[workbook.SheetNames[0]]['C'+i]!=null
+              && workbook.Sheets[workbook.SheetNames[0]]['D'+i]!='undefined'
+            && workbook.Sheets[workbook.SheetNames[0]]['D'+i]!=null
+              && workbook.Sheets[workbook.SheetNames[0]]['E'+i]!='undefined'
+            && workbook.Sheets[workbook.SheetNames[0]]['E'+i]!=null
+              && workbook.Sheets[workbook.SheetNames[0]]['F'+i]!='undefined'
+            && workbook.Sheets[workbook.SheetNames[0]]['F'+i]!=null
+              && workbook.Sheets[workbook.SheetNames[0]]['G'+i]!='undefined'
+            && workbook.Sheets[workbook.SheetNames[0]]['G'+i]!=null
+              && workbook.Sheets[workbook.SheetNames[0]]['J'+i]!='undefined'
+            && workbook.Sheets[workbook.SheetNames[0]]['J'+i]!=null){
+            let tableRow={
+              sendStation:workbook.Sheets[workbook.SheetNames[0]]['B'+i].v,
+              arrivalStation:workbook.Sheets[workbook.SheetNames[0]]['C'+i].v,
+              sendDate:sjTime(workbook.Sheets[workbook.SheetNames[0]]['D'+i].v),
+              arrivalDate:workbook.Sheets[workbook.SheetNames[0]]['E'+i].v,
+              unloadPoint:workbook.Sheets[workbook.SheetNames[0]]['F'+i].v,
+              productName:workbook.Sheets[workbook.SheetNames[0]]['G'+i].v,
+              wagonNo:workbook.Sheets[workbook.SheetNames[0]]['J'+i].v,
+              weight:workbook.Sheets[workbook.SheetNames[0]]['I'+i].v,
+              mineral:workbook.Sheets[workbook.SheetNames[0]]['H'+i].v,
             }
-            if((typeof rows[0]['发站']) =='undefined'){
-               that.$message({
-                message: "导入Excel格式错误,发站不能为空!",
+            if((tableRow.wagonNo+"").length!=7){
+              that.$message({
+                message: "存在车皮号长度不等于7:"+tableRow.wagonNo,
                 type: "warning",
               });
-              return;
+              continue;
             }
+            that.tableData.push(tableRow);
           }
-          //绑定数据
-          rows.forEach((row,index) => {
-            let carNumber=row['车号'];
-            let currentRow=index+1;
-            if((typeof carNumber)!="undefined" && carNumber.length == 7){
-              //表格数据
-              let temp={
-                number:row['序号'],
-                materialName:row['品  名'],
-                supplierName:row['发货单位'],
-                sendDate:row['发货日期'],
-                sendStation:row['发站'],
-                arrivalStation:row['到站'],
-                wagonNo:row['车号'],
-                weight:row['标重']
-              }
-              if(typeof temp.materialName=='undefined' || temp.materialName==null){
-                temp.materialName=row['品名'];
-              }
-              if(typeof temp.materialName=='undefined' || temp.materialName==null){
-                temp.materialName=row['物资'];
-              }
-              //判断校验
-              if((typeof temp.wagonNo)=='undefined' ||
-                  (typeof temp.materialName)=='undefined'||
-                  (typeof temp.supplierName)=='undefined'||
-                  (typeof temp.sendStation)=='undefined'){
-                console.log("数据异常:");
-                console.log(row);
-                return;//退出当前循环,不导入表格
-              }
-              
-              that.tableData.push(temp);
-            }
-            else{
-              console.log("第"+currentRow+ "行车皮号异常!");
-              return;
-            }
-        });
-        };
-        reader.readAsBinaryString(file.raw); //以二进制方式读取
+        }
+        console.log(that.tableData);
+      };
+      reader.readAsBinaryString(file.raw); //以二进制方式读取
     },
   },
 };

+ 203 - 449
src/views/TMS/components/importedEmergency/addWagonLoadEmergency.vue

@@ -1,47 +1,7 @@
 <template>
-  <!-- 海港-老区轨道衡新增装车  -->
+  <!-- 海港-老区轨道衡新增装车2 -->
   <div class="addWagonLoad">
     <page-title>返回</page-title>
-    <div class="purchaseOrder_table">
-      <div class="search" style="display:flex">
-        <div style="margin-top: 18px;margin-left:10px">
-          <el-label>物资名或订单号:</el-label>
-        </div>
-        <el-input
-        placeholder="请输入"
-        v-model="search1"
-        style="margin: 10px; width:10%"
-        clearable
-        ></el-input>
-        <div style="margin-top: 18px;margin-left:10px">
-          <el-label>外轮船名:</el-label>
-        </div>
-        <el-input
-          placeholder="请输入"
-          v-model="search2"
-          style="margin: 10px;width:10%"
-          clearable
-        ></el-input>
-      <el-button
-        type="primary"
-        class="btn"
-        @click="searchOrder()"
-        style="margin: 10px;">
-        <i class="el-icon-search"></i>查询
-      </el-button>
-      <!-- <el-button 
-      type="primary"
-      class="btn" 
-      @click="makeSure" 
-      style="margin: 10px;">确认配单
-      </el-button> -->
-      </div>
-      <!-- 采购订单号 -->
-      <dilTable
-        v-bind.sync="purchaseOption"
-        @radio-change="orderChange"
-      ></dilTable>
-    </div>
     <div class="cp">
       <span >车皮号:</span>
       <el-upload style="margin: 8px;"
@@ -55,18 +15,12 @@
       </el-upload>
       <span >当前导入数量:{{tableData.length}}</span>
     </div>
-    <div>
-      <span style="color:red">导入数据中的 车皮号 是必须的</span>
-    </div>
-    <div class="table item"
-        style="width:680px;
-        height:300px;
-        float:left;
-        overflow:auto" >
+    <div class="table item">
       <el-table
         stripe
         :data="tableData"
-        style="width: 100%">
+        style="width: 100%"
+        id="domesticTable">
         <el-table-column
         type="index"
         width="50"
@@ -78,86 +32,48 @@
         </el-table-column>
         <el-table-column
         align="center"
-          prop="makeDate"
-          label="制票日期"
-          width="120px">
+          prop="productName"
+          label="品  名"
+          width="240px">
+        </el-table-column>
+        <el-table-column
+        align="center"
+          prop="mineral"
+          label="矿种"
+          width="100px">
         </el-table-column>
         <el-table-column
         align="center"
           prop="wagonNo"
-          label="车皮号"
-          width="120px">
+          label="车号"
+          width="180px">
         </el-table-column>
         <el-table-column
         align="center"
-          prop="materialName"
-          label="物资"
+          prop="unloadPoint"
+          label="卸货地点"
           width="180px">
         </el-table-column>
         <el-table-column
         align="center"
-          prop="mineral"
-          label="矿种"
-          width="120px">
+          prop="sendStation"
+          label="发站"
+          width="180px">
+        </el-table-column>
+        <el-table-column
+        align="center"
+        width="180px"
+          prop="arrivalStation"
+          label="到站">
         </el-table-column>
          <el-table-column
          align="center"
-        width="80px"
+        width="180px"
           prop="weight"
           label="标重">
         </el-table-column>
-        <!-- <el-table-column
-        align="center"
-        width="100px"
-          fixed="right"
-          label="操作">
-          <template slot-scope="scope">
-            <el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button>
-            <el-button type="text" size="small">编辑</el-button>
-          </template>
-        </el-table-column> -->
       </el-table>
     </div>
-    <!-- <div class="cp">
-      <span style="width:80px">车皮号:</span>
-      <el-input
-        placeholder="请输入内容"
-        v-model="input"
-        @change="onchang"
-        clearable
-      >
-      </el-input>
-    </div>
-    <div class="cpList">
-      <div class="list">
-        <span class="cpList1" v-for="(item, i) in list" :key="i">
-          {{ item }}
-          <i class="el-icon-close itu" @click="onclick(i)"></i>
-        </span>
-      </div>
-    </div>
-
-    <div class="material from">
-      <span class="text">物资:</span>
-      <el-input v-model="materialName" disabled> </el-input>
-      <el-button type="primary" @click="ondrawer(1)">浏览</el-button>
-    </div>
-
-    <div class="forwardingUnit from">
-      <span class="text">发货单位:</span>
-      <el-input v-model="supplierName" disabled> </el-input>
-      <el-button type="primary" @click="ondrawer(2)">浏览</el-button>
-    </div>
-    <div class="remark from">
-      <span class="text">船名:</span>
-      <el-input class="el-input" v-model="remark" @blur="onBlur"> </el-input>
-      <span class="span"></span>
-    </div>
-    <div class="forwardingUnit from">
-      <span class="text">卸货点:</span>
-      <el-input v-model="unloadPointName" disabled> </el-input>
-      <el-button type="primary" @click="ondrawer(4)">浏览</el-button>
-    </div> -->
     <div class="right" 
     style="margin-top:10px
            float:right;">
@@ -195,50 +111,14 @@
                   </el-form-item>
                </div>
           </el-form>
-            <dil-form :formId="102" v-model="form1" ref="from1"></dil-form>
+            <dil-form :formId="387" v-model="form1" ref="from1"></dil-form>
           </div>
         </div>
         <div class="button-box">
           <el-button @click="cancel">取消</el-button>
-          <el-button type="primary" :disabled="disable" @click="makeSure">确定</el-button>
+          <el-button type="primary" :loading="isLoading" @click="makeSure">确定</el-button>
         </div>
     </div>
-    
-    <!-- 模态窗口 -->
-    <el-drawer :visible.sync="drawer" :direction="direction" size="30%">
-      <el-input
-        placeholder="请输入内容"
-        v-model="inputText"
-        style="margin-top: 0.625rem; margin-left: 1.25rem;width:250px"
-        clearable
-      ></el-input>
-      <el-button
-        type="primary"
-        class="btn"
-        @click="onClick(a)"
-        style="margin-bottom: 0.9375rem"
-      >
-        <i class="el-icon-search"></i>查询
-      </el-button>
-      <div v-show="a == 1">
-        <dilTable
-          v-bind.sync="frist"
-          @radio-change="currentRadioChange1"
-        ></dilTable>
-      </div>
-      <div v-show="a == 2">
-        <dilTable
-          v-bind.sync="secend"
-          @radio-change="currentRadioChange2"
-        ></dilTable>
-      </div>
-      <div v-show="a == 4">
-        <dilTable
-          v-bind.sync="unloadPoint"
-          @radio-change="currentRadioChange4"
-        ></dilTable>
-      </div>
-    </el-drawer>
   </div>
 </template>
 
@@ -250,7 +130,7 @@ export default {
   components: { PageTitle },
   data() {
     return {
-      disable:true,
+      isLoading:false,
       list: [],
       form1: {},
       tableData:[],
@@ -280,28 +160,6 @@ export default {
       a: 1,
       direction: "rtl",
       inputText: "",
-      purchaseOption:{
-         // 表格请求数据的地址
-        requestUrl: "/api/v1/tms/findPurchaseOrderList?apiId=81",
-        // 控制选择单列
-        selectionType: "radio",
-        pageSize:5,
-      },
-      frist: {
-        requestUrl: "/api/v1/uc/queryAPOMaterialByLike?apiId=244&startNum=050",
-        selectionType: "radio",
-        mapList1: [],
-      },
-      secend: {
-        requestUrl:
-          "/api/v1/uc/getSupplierMesByMaterialId?apiId=247&materialId=",
-        selectionType: "radio",
-        mapList2: [],
-      },
-      unloadPoint: {
-        requestUrl: "/api/v1/uc/getUnloadingMesByLike?apiId=374",
-        selectionType: "radio",
-      },
       sendStationId:2,
       toTheStationId:1,
       sendStation:"万州港",
@@ -312,79 +170,6 @@ export default {
     this.form1.resultLoadingDate=new Date();
   },
   methods: {
-    currentRadioChange1(selection) {
-      this.input = null;
-      this.materialName = selection.materialName;
-      this.materialId = selection.materialId;
-      this.getPurchaseOrderNo();
-    },
-    currentRadioChange2(selection) {
-      this.supplierName = selection.supplierName;
-      this.supplierId = selection.supplierId;
-      this.getPurchaseOrderNo();
-    },
-    currentRadioChange4(selection) {
-      this.unloadPointId = selection.warehouseId;
-      this.unloadPointName = selection.warehouseName;
-    },
-    ondrawer(num) {
-      this.drawer = true;
-      this.a = num;
-      if (num == 2) {
-        this.secend.requestUrl =
-          "/api/v1/uc/getSupplierMesByMaterialId?apiId=247&materialId=" +
-          this.materialId;
-      }
-    },
-    onBlur() {
-      this.getPurchaseOrderNo();
-    },
-    getPurchaseOrderNo() {
-      let map = {
-        materialId: this.materialId,
-        supplierId: this.supplierId,
-      };
-      if (this.remark) {
-        map.remark = this.remark;
-      }
-      console.log(this.map);
-      if (this.materialId && this.supplierId) {
-        this.axios.post("/api/v1/oms/selectNewOrderId", map).then((res) => {
-          console.log(res);
-          if (res.data.code == "200") {
-            if (res.data.data == null) {
-              this.$message({
-                message: "没有匹配的采购订单号!",
-                type: "warning",
-              });
-              this.form1 = [];
-            } else {
-              this.remark = res.data.data.remark;
-              this.purchaseOrderId = res.data.data.purchaseOrderId;
-              this.form1 = { purchaseOrderNo: res.data.data.purchaseOrderNo };
-            }
-          } else {
-            this.$message.error("请求失败");
-          }
-        });
-      }
-    },
-    onClick(a) {
-      if (a == 1) {
-        this.frist.requestUrl =
-          "/api/v1/uc/queryAPOMaterialByLike?apiId=244&startNum=050&index=" +
-          this.inputText;
-      } else if (a == 2) {
-        this.secend.requestUrl =
-          "/api/v1/uc/getSupplierMesByMaterialId?apiId=247&materialId=" +
-          this.materialId +
-          "&index=" +
-          this.inputText;
-      } else if (a == 4) {
-        this.unloadPoint.requestUrl =
-          "/api/v1/uc/getUnloadingMesByLike?apiId=374&index=" + this.inputText;
-      }
-    },
     //发站弹出层
     handleSelectSendStation(item) {
       this.sendStationId = item.arrivalId;
@@ -451,170 +236,53 @@ export default {
         );
       };
     },
-    onchang() {
-      var state = false;
-      var cptop = this.input.substring(0, 2);
-      var cptop1 = this.input.substring(0, 3);
-      if (
-        cptop == "45" ||
-        cptop == "46" ||
-        cptop == "42" ||
-        cptop == "47" ||
-        cptop == "15" ||
-        cptop == "16" ||
-        cptop == "17" ||
-        cptop == "18"
-      ) {
-        state = true;
-      } else if (
-        cptop1 == "140" ||
-        cptop1 == "141" ||
-        cptop1 == "142" ||
-        cptop1 == "143" ||
-        cptop1 == "145"
-      ) {
-        state = true;
-      } else {
-        this.$message({
-          type: "warning",
-          message: "车皮号格式不对,请重新输入!",
-        });
-      }
-      if (state) {
-        if (this.input.length == 7) {
-          this.list.push(this.input);
-          this.input = "";
-        } else {
+    // 确定
+    makeSure() {
+      this.isLoading=true;
+      if (this.tableData.length <= 0  || 
+          !this.sendStationId ||
+          !this.toTheStationId ||
+          !this.form1.resultLoadingDate){
+        if (this.tableData.length <= 0) {
           this.$message({
             type: "warning",
-            message: "车皮号长度不足7位数,请重新输入!",
+            message: "请导入数据!",
           });
-        }
-      }
-    },
-    searchOrder(){
-      //查询订单
-      if((typeof this.search1)!="undefined" && (typeof this.search2)!='undefined'){
-        let requestUrl="/api/v1/tms/findPurchaseOrderList?apiId=81";
-        if(this.search1!=null){
-            requestUrl+=("&materialName="+this.search1);
-        }
-        if(this.search2!=null){
-            requestUrl+=("&resultForeignShipName="+this.search2);
-        }
-        this.purchaseOption.requestUrl=requestUrl;
-      }else{
-        this.purchaseOption.requestUrl=
-        "/api/v1/tms/findPurchaseOrderList?apiId=81"
-      }
-    },
-    onclick(index) {
-      this.list.splice(index, 1);
-    },
-    // 确定
-    makeSure() {
-      this.disable=true;
-      let state = 0;
-      if (
-        this.list.length > 0 &&
-        this.materialId &&
-        this.supplierId &&
-        this.purchaseOrderId &&
-        this.form1.resultIsclear &&
-        this.form1.resultClass &&
-        this.sendStationId &&
-        this.toTheStationId &&
-        this.form1.resultLoadingDate
-      ) {
-        state = 1;
-      } else {
-        this.disable=false;
-        console.log(this.list.length);
-        if (this.list.length == 0) {
+        }else{
           this.$message({
             type: "warning",
-            message: "请输入车皮号!",
+            message: "除备注外皆为必填!",
           });
-        } else {
-          if (this.materialId) {
-                if (this.purchaseOrderId) {
-                  if (this.form1.resultIsclear) {
-                    if (this.form1.resultClass) {
-                      if (this.sendStationId) {
-                        if (this.toTheStationId) {
-                          if (this.form1.resultLoadingDate) {
-                          } else {
-                            this.$message({
-                              type: "warning",
-                              message: "请选择装车时间!",
-                            });
-                          }
-                        } else {
-                          this.$message({
-                            type: "warning",
-                            message: "请选择到站!",
-                          });
-                        }
-                      } else {
-                        this.$message({
-                          type: "warning",
-                          message: "请选择发站!",
-                        });
-                      }
-                    } else {
-                      this.$message({
-                        type: "warning",
-                        message: "请选择班别!",
-                      });
-                    }
-                  } else {
-                    this.$message({
-                      type: "warning",
-                      message: "请选择是否清场!",
-                    });
-                  }
-                } else {
-                  this.$message({
-                    type: "warning",
-                    message: "请选择采购订单号!",
-                  });
-                }
-            }  else {
-            this.$message({
-              type: "warning",
-              message: "请选择采购订单号!",
-            });
-          }
+          this.isLoading=false;
+          return;
         }
       }
-      if(state == 1){
-        let map = {
-          wagonNoList:this.list,
-          // unloadingPointId:this.unloadPointId,
-          purchaseOrderRailPlanId:this.purchaseOrderId,
-          materialId:this.materialId,
-          sendUnitId:this.supplierId,
-          resultIsclear:this.form1.resultIsclear,
-          resultClass: this.form1.resultClass,
-          sendStationId: this.sendStationId,
-          arrivalStationId: this.toTheStationId,
-          resultLoadingDate: sjTime(this.form1.resultLoadingDate),
-          resultRemarks: this.form1.resultRemarks,
-          userId:getCookie("userId"),
-          resultType:2,
-        }
-        console.log(map);
-        this.axios.post('/api/v1/tms/insertTmstrainLoadingResult',map).then((res)=>{
-          console.log(res);
-          if(res.data.code == "200"){
-            this.$message({
-              type: "success",
-              message: "新增成功",
-            });
-            this.cancel();
-          }
-        })
+      let map = {
+        list:this.tableData,
+        sendStationId: this.sendStationId,
+        arrivalStationId: this.toTheStationId,
+        resultLoadingDate: sjTime(this.form1.resultLoadingDate),
+        resultRemarks: this.form1.resultRemarks,
+        userId:getCookie("userId"),
+        resultType:2,
       }
+      console.log(map);
+      this.axios.post('/api/v1/tms/insertTmstrainLoadingResult',map).then((res)=>{
+        console.log(res);
+        if(res.data.code == "200"){
+          this.$message({
+            type: "success",
+            message: "新增成功",
+          });
+          this.cancel();
+        }else {
+          this.$message({
+              type: "error", 
+              message: res.data.data,
+          });
+        }
+        this.isLoading=false;
+      })
     },
     // 取消
     cancel() {
@@ -629,67 +297,153 @@ export default {
           type: "warning",
         });
         return
+      }
+      this.tableData=[];
+      var reader = new FileReader();
+      var data=null;
+      var workbook=null;
+      //设置读取操作
+      reader.onload = function (e) {
+        console.log(e);
+        data = e.target.result;
+        workbook= XLSX.read(data, {
+            type: 'binary'
+        });
+        console.log(workbook);
+        let rows= XLSX.utils.sheet_to_json(workbook.Sheets[workbook.SheetNames[0]]);//只取第一页
+        let index=1;
+        for(index=1;index<rows.length;index++){
+          if(typeof workbook.Sheets[workbook.SheetNames[0]]['A'+index] !='undefined'){
+            index++;
+            break;
+           }
         }
-        var reader = new FileReader();
-        var data=null;
-        var workbook=null;
-        //设置读取操作
-        reader.onload = function (e) {
-          console.log(e);
-          data = e.target.result;
-          workbook= XLSX.read(data, {
-              type: 'binary'
-          });
-          console.log(workbook);
-          //读取表格
-          let rows= XLSX.utils.sheet_to_json(workbook.Sheets[workbook.SheetNames[0]]);//只取第一页
-          console.log(rows);
-          //清空
-          if(rows.length>0){
-            that.list=[];
-            that.tableData=[];
-            that.disable=false;
-            if((typeof rows[0]['车皮号'])=='undefined'){
+        console.log('表头行数:'+index);
+        //校验表头
+        if( workbook.Sheets[workbook.SheetNames[0]]['A'+index].v!='序号'
+        || workbook.Sheets[workbook.SheetNames[0]]['B'+index].v!='发站'
+        || workbook.Sheets[workbook.SheetNames[0]]['C'+index].v!='到站'
+        || workbook.Sheets[workbook.SheetNames[0]]['D'+index].v!='发货日期'
+        || workbook.Sheets[workbook.SheetNames[0]]['E'+index].v!='到货日期'
+        || workbook.Sheets[workbook.SheetNames[0]]['F'+index].v!='卸货地点'
+        || workbook.Sheets[workbook.SheetNames[0]]['G'+index].v!='品名'
+        || (workbook.Sheets[workbook.SheetNames[0]]['I'+index].v!='计费\n吨位'
+        && workbook.Sheets[workbook.SheetNames[0]]['I'+index].v!='计费吨位'
+        && workbook.Sheets[workbook.SheetNames[0]]['I'+index].v!='计费&#10;吨位')
+        || workbook.Sheets[workbook.SheetNames[0]]['J'+index].v!='车号'
+        || workbook.Sheets[workbook.SheetNames[0]]['K'+index].v!='计量吨位'
+        || workbook.Sheets[workbook.SheetNames[0]]['L'+index].v!='计费吨位合计'){
+          if(workbook.Sheets[workbook.SheetNames[0]]['A'+index].v!='序号'){
+             that.$message({
+                message: "表格格式错误:序号错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['B'+index].v!='发站'){
+             that.$message({
+                message: "表格格式错误:发站错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['C'+index].v!='到站'){
+             that.$message({
+                message: "表格格式错误:到站错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['D'+index].v!='发货日期'){
+             that.$message({
+                message: "表格格式错误:发货日期错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['E'+index].v!='到货日期'){
+             that.$message({
+                message: "表格格式错误:到货日期错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['F'+index].v!='卸货地点'){
+             that.$message({
+                message: "表格格式错误:卸货地点错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['G'+index].v!='品名'){
+             that.$message({
+                message: "表格格式错误:品名错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['I'+index].v!='计费\n吨位' 
+          && workbook.Sheets[workbook.SheetNames[0]]['I'+index].v!='计费吨位'
+          && workbook.Sheets[workbook.SheetNames[0]]['I'+index].v!='计费&#10;吨位'){
+             that.$message({
+                message: "表格格式错误:计费吨位错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['J'+index].v!='车号'){
+             that.$message({
+                message: "表格格式错误:车号错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['K'+index].v!='计量吨位'){
+             that.$message({
+                message: "表格格式错误:计量吨位错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['L'+index].v!='计费吨位合计'){
+             that.$message({
+                message: "表格格式错误:计费吨位合计错误",
+                type: "warning",
+            });
+          }
+          return;
+        }
+        //读取表格
+        for(let i=1;i<=rows.length+1;i++){
+          let row=workbook.Sheets[workbook.SheetNames[0]]['A'+i];
+          if(row!='undefined' && row!=null && typeof row.v=='number' 
+              && workbook.Sheets[workbook.SheetNames[0]]['B'+i]!='undefined'
+            && workbook.Sheets[workbook.SheetNames[0]]['B'+i]!=null
+              && workbook.Sheets[workbook.SheetNames[0]]['C'+i]!='undefined'
+            && workbook.Sheets[workbook.SheetNames[0]]['C'+i]!=null
+              && workbook.Sheets[workbook.SheetNames[0]]['D'+i]!='undefined'
+            && workbook.Sheets[workbook.SheetNames[0]]['D'+i]!=null
+              && workbook.Sheets[workbook.SheetNames[0]]['E'+i]!='undefined'
+            && workbook.Sheets[workbook.SheetNames[0]]['E'+i]!=null
+              && workbook.Sheets[workbook.SheetNames[0]]['F'+i]!='undefined'
+            && workbook.Sheets[workbook.SheetNames[0]]['F'+i]!=null
+              && workbook.Sheets[workbook.SheetNames[0]]['G'+i]!='undefined'
+            && workbook.Sheets[workbook.SheetNames[0]]['G'+i]!=null
+              && workbook.Sheets[workbook.SheetNames[0]]['J'+i]!='undefined'
+            && workbook.Sheets[workbook.SheetNames[0]]['J'+i]!=null){
+            let tableRow={
+              sendStation:workbook.Sheets[workbook.SheetNames[0]]['B'+i].v,
+              arrivalStation:workbook.Sheets[workbook.SheetNames[0]]['C'+i].v,
+              sendDate:sjTime(workbook.Sheets[workbook.SheetNames[0]]['D'+i].v),
+              arrivalDate:workbook.Sheets[workbook.SheetNames[0]]['E'+i].v,
+              unloadPoint:workbook.Sheets[workbook.SheetNames[0]]['F'+i].v,
+              productName:workbook.Sheets[workbook.SheetNames[0]]['G'+i].v,
+              wagonNo:workbook.Sheets[workbook.SheetNames[0]]['J'+i].v,
+              weight:workbook.Sheets[workbook.SheetNames[0]]['I'+i].v,
+              mineral:workbook.Sheets[workbook.SheetNames[0]]['H'+i].v,
+            }
+            if((tableRow.wagonNo+"").length!=7){
               that.$message({
-                message: "车皮号不存在!请参考下方格式!",
+                message: "存在车皮号长度不等于7:"+tableRow.wagonNo,
                 type: "warning",
               });
-              return;
+              continue;
             }
+            that.tableData.push(tableRow);
           }
-          //绑定数据
-          rows.forEach((row,index) => {
-            let carNumber=row['车皮号'];
-            if((typeof carNumber)!="undefined" && carNumber.length == 7){
-              //车皮号表
-              that.list.push(carNumber);
-              //表格数据
-              let temp={
-                number:row['序号'],
-                makeDate:row['制票日期'],
-                materialName:row['品名'],
-                wagonNo:row['车皮号'],
-                mineral:row['矿种'],
-                weight:row['计费&#10;吨位']
-              }
-              that.tableData.push(temp);
-            }
-            else{
-              let errorNumb=index+1;
-              console.log("第"+errorNumb+ "行车皮号异常!");
-              return;
-            }
-        });
-        };
-        reader.readAsBinaryString(file.raw); //以二进制方式读取
+        }
+        console.log(that.tableData);
+      };
+      reader.readAsBinaryString(file.raw); //以二进制方式读取
     },
     //采购订单表格选中
     orderChange(selection){
       console.log(selection);
       this.purchaseOrderId=selection.purchaseOrderId;
       this.form1 = { 
-        purchaseOrderNo: selection.purchaseOrderNo ,
-        resultLoadingDate:new Date() };
+        purchaseOrderNo: selection.purchaseOrderNo,
+        resultLoadingDate:new Date() 
+        };
       this.materialId=selection.materialId;
       this.materialName=selection.materialName;
       this.supplierId=selection.supplierId;

+ 6 - 0
src/views/TMS/components/importedEmergency/entrustEmergency.vue

@@ -25,6 +25,9 @@
       v-if="activeName == 'second'"
         ><i class="el-icon-download"></i>导出(Excel)</el-button
       >
+       <el-button type="primary" @click="refresh()">
+        <i class="el-icon-refresh"></i>刷新
+      </el-button>
     </div>
     <el-tabs v-model="activeName" @tab-click="handleClick">
       <el-tab-pane label="待计量" name="first">
@@ -137,6 +140,9 @@ export default {
       console.log(selection);
       this.selectionListMap2 = selection;
     },
+    refresh(){
+      this.$router.go(0);
+    }
   },
 };
 </script>

+ 200 - 447
src/views/TMS/components/importedMine/addWagonLoad.vue

@@ -1,47 +1,7 @@
 <template>
-  <!-- 万州港-达州新增装车 -->
+  <!-- 万州港-达州新增装车1 -->
   <div class="addWagonLoad">
     <page-title>返回</page-title>
-    <div class="purchaseOrder_table">
-      <div class="search" style="display:flex">
-        <div style="margin-top: 18px;margin-left:10px">
-          <el-label>物资名或订单号:</el-label>
-        </div>
-        <el-input
-        placeholder="请输入"
-        v-model="search1"
-        style="margin: 10px; width:10%"
-        clearable
-        ></el-input>
-        <div style="margin-top: 18px;margin-left:10px">
-          <el-label>外轮船名:</el-label>
-        </div>
-        <el-input
-          placeholder="请输入"
-          v-model="search2"
-          style="margin: 10px;width:10%"
-          clearable
-        ></el-input>
-      <el-button
-        type="primary"
-        class="btn"
-        @click="searchOrder()"
-        style="margin: 10px;">
-        <i class="el-icon-search"></i>查询
-      </el-button>
-      <!-- <el-button 
-      type="primary"
-      class="btn" 
-      @click="makeSure" 
-      style="margin: 10px;">确认配单
-      </el-button> -->
-      </div>
-      <!-- 采购订单号 -->
-      <dilTable
-        v-bind.sync="purchaseOption"
-        @radio-change="orderChange"
-      ></dilTable>
-    </div>
     <div class="cp">
       <span >车皮号:</span>
       <el-upload style="margin: 8px;"
@@ -55,18 +15,12 @@
       </el-upload>
       <span >当前导入数量:{{tableData.length}}</span>
     </div>
-    <div>
-      <span style="color:red">导入数据中的 车皮号 是必须的</span>
-    </div>
-    <div class="table item"
-        style="width:680px;
-        height:300px;
-        float:left;
-        overflow:auto" >
+    <div class="table item">
       <el-table
         stripe
         :data="tableData"
-        style="width: 100%">
+        style="width: 100%"
+        id="domesticTable">
         <el-table-column
         type="index"
         width="50"
@@ -78,86 +32,48 @@
         </el-table-column>
         <el-table-column
         align="center"
-          prop="makeDate"
-          label="制票日期"
-          width="120px">
+          prop="productName"
+          label="品  名"
+          width="240px">
+        </el-table-column>
+        <el-table-column
+        align="center"
+          prop="mineral"
+          label="矿种"
+          width="100px">
         </el-table-column>
         <el-table-column
         align="center"
           prop="wagonNo"
-          label="车皮号"
-          width="120px">
+          label="车号"
+          width="180px">
         </el-table-column>
         <el-table-column
         align="center"
-          prop="materialName"
-          label="物资"
+          prop="unloadPoint"
+          label="卸货地点"
           width="180px">
         </el-table-column>
         <el-table-column
         align="center"
-          prop="mineral"
-          label="矿种"
-          width="120px">
+          prop="sendStation"
+          label="发站"
+          width="180px">
+        </el-table-column>
+        <el-table-column
+        align="center"
+        width="180px"
+          prop="arrivalStation"
+          label="到站">
         </el-table-column>
          <el-table-column
          align="center"
-        width="80px"
+        width="180px"
           prop="weight"
           label="标重">
         </el-table-column>
-        <!-- <el-table-column
-        align="center"
-        width="100px"
-          fixed="right"
-          label="操作">
-          <template slot-scope="scope">
-            <el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button>
-            <el-button type="text" size="small">编辑</el-button>
-          </template>
-        </el-table-column> -->
       </el-table>
     </div>
-    <!-- <div class="cp">
-      <span style="width:80px">车皮号:</span>
-      <el-input
-        placeholder="请输入内容"
-        v-model="input"
-        @change="onchang"
-        clearable
-      >
-      </el-input>
-    </div>
-    <div class="cpList">
-      <div class="list">
-        <span class="cpList1" v-for="(item, i) in list" :key="i">
-          {{ item }}
-          <i class="el-icon-close itu" @click="onclick(i)"></i>
-        </span>
-      </div>
-    </div>
-
-    <div class="material from">
-      <span class="text">物资:</span>
-      <el-input v-model="materialName" disabled> </el-input>
-      <el-button type="primary" @click="ondrawer(1)">浏览</el-button>
-    </div>
-
-    <div class="forwardingUnit from">
-      <span class="text">发货单位:</span>
-      <el-input v-model="supplierName" disabled> </el-input>
-      <el-button type="primary" @click="ondrawer(2)">浏览</el-button>
-    </div>
-    <div class="remark from">
-      <span class="text">船名:</span>
-      <el-input class="el-input" v-model="remark" @blur="onBlur"> </el-input>
-      <span class="span"></span>
-    </div>
-    <div class="forwardingUnit from">
-      <span class="text">卸货点:</span>
-      <el-input v-model="unloadPointName" disabled> </el-input>
-      <el-button type="primary" @click="ondrawer(4)">浏览</el-button>
-    </div> -->
     <div class="right" 
     style="margin-top:10px
            float:right;">
@@ -195,50 +111,14 @@
                   </el-form-item>
                </div>
           </el-form>
-            <dil-form :formId="102" v-model="form1" ref="from1"></dil-form>
+            <dil-form :formId="387" v-model="form1" ref="from1"></dil-form>
           </div>
         </div>
         <div class="button-box">
           <el-button @click="cancel">取消</el-button>
-          <el-button type="primary" :disabled="disable" @click="makeSure">确定</el-button>
+          <el-button type="primary" :loading="isLoading" @click="makeSure">确定</el-button>
         </div>
     </div>
-    
-    <!-- 模态窗口 -->
-    <el-drawer :visible.sync="drawer" :direction="direction" size="30%">
-      <el-input
-        placeholder="请输入内容"
-        v-model="inputText"
-        style="margin-top: 0.625rem; margin-left: 1.25rem;width:250px"
-        clearable
-      ></el-input>
-      <el-button
-        type="primary"
-        class="btn"
-        @click="onClick(a)"
-        style="margin-bottom: 0.9375rem"
-      >
-        <i class="el-icon-search"></i>查询
-      </el-button>
-      <div v-show="a == 1">
-        <dilTable
-          v-bind.sync="frist"
-          @radio-change="currentRadioChange1"
-        ></dilTable>
-      </div>
-      <div v-show="a == 2">
-        <dilTable
-          v-bind.sync="secend"
-          @radio-change="currentRadioChange2"
-        ></dilTable>
-      </div>
-      <div v-show="a == 4">
-        <dilTable
-          v-bind.sync="unloadPoint"
-          @radio-change="currentRadioChange4"
-        ></dilTable>
-      </div>
-    </el-drawer>
   </div>
 </template>
 
@@ -250,7 +130,7 @@ export default {
   components: { PageTitle },
   data() {
     return {
-      disable:true,
+      isLoading:false,
       list: [],
       form1: {},
       tableData:[],
@@ -280,28 +160,6 @@ export default {
       a: 1,
       direction: "rtl",
       inputText: "",
-      purchaseOption:{
-         // 表格请求数据的地址
-        requestUrl: "/api/v1/tms/findPurchaseOrderList?apiId=81",
-        // 控制选择单列
-        selectionType: "radio",
-        pageSize:5,
-      },
-      frist: {
-        requestUrl: "/api/v1/uc/queryAPOMaterialByLike?apiId=244&startNum=050",
-        selectionType: "radio",
-        mapList1: [],
-      },
-      secend: {
-        requestUrl:
-          "/api/v1/uc/getSupplierMesByMaterialId?apiId=247&materialId=",
-        selectionType: "radio",
-        mapList2: [],
-      },
-      unloadPoint: {
-        requestUrl: "/api/v1/uc/getUnloadingMesByLike?apiId=374",
-        selectionType: "radio",
-      },
       sendStationId:2,
       toTheStationId:1,
       sendStation:"万州港",
@@ -312,79 +170,6 @@ export default {
     this.form1.resultLoadingDate=new Date();
   },
   methods: {
-    currentRadioChange1(selection) {
-      this.input = null;
-      this.materialName = selection.materialName;
-      this.materialId = selection.materialId;
-      this.getPurchaseOrderNo();
-    },
-    currentRadioChange2(selection) {
-      this.supplierName = selection.supplierName;
-      this.supplierId = selection.supplierId;
-      this.getPurchaseOrderNo();
-    },
-    currentRadioChange4(selection) {
-      this.unloadPointId = selection.warehouseId;
-      this.unloadPointName = selection.warehouseName;
-    },
-    ondrawer(num) {
-      this.drawer = true;
-      this.a = num;
-      if (num == 2) {
-        this.secend.requestUrl =
-          "/api/v1/uc/getSupplierMesByMaterialId?apiId=247&materialId=" +
-          this.materialId;
-      }
-    },
-    onBlur() {
-      this.getPurchaseOrderNo();
-    },
-    getPurchaseOrderNo() {
-      let map = {
-        materialId: this.materialId,
-        supplierId: this.supplierId,
-      };
-      if (this.remark) {
-        map.remark = this.remark;
-      }
-      console.log(this.map);
-      if (this.materialId && this.supplierId) {
-        this.axios.post("/api/v1/oms/selectNewOrderId", map).then((res) => {
-          console.log(res);
-          if (res.data.code == "200") {
-            if (res.data.data == null) {
-              this.$message({
-                message: "没有匹配的采购订单号!",
-                type: "warning",
-              });
-              this.form1 = [];
-            } else {
-              this.remark = res.data.data.remark;
-              this.purchaseOrderId = res.data.data.purchaseOrderId;
-              this.form1 = { purchaseOrderNo: res.data.data.purchaseOrderNo };
-            }
-          } else {
-            this.$message.error("请求失败");
-          }
-        });
-      }
-    },
-    onClick(a) {
-      if (a == 1) {
-        this.frist.requestUrl =
-          "/api/v1/uc/queryAPOMaterialByLike?apiId=244&startNum=050&index=" +
-          this.inputText;
-      } else if (a == 2) {
-        this.secend.requestUrl =
-          "/api/v1/uc/getSupplierMesByMaterialId?apiId=247&materialId=" +
-          this.materialId +
-          "&index=" +
-          this.inputText;
-      } else if (a == 4) {
-        this.unloadPoint.requestUrl =
-          "/api/v1/uc/getUnloadingMesByLike?apiId=374&index=" + this.inputText;
-      }
-    },
     //发站弹出层
     handleSelectSendStation(item) {
       this.sendStationId = item.arrivalId;
@@ -451,170 +236,53 @@ export default {
         );
       };
     },
-    onchang() {
-      var state = false;
-      var cptop = this.input.substring(0, 2);
-      var cptop1 = this.input.substring(0, 3);
-      if (
-        cptop == "45" ||
-        cptop == "46" ||
-        cptop == "42" ||
-        cptop == "47" ||
-        cptop == "15" ||
-        cptop == "16" ||
-        cptop == "17" ||
-        cptop == "18"
-      ) {
-        state = true;
-      } else if (
-        cptop1 == "140" ||
-        cptop1 == "141" ||
-        cptop1 == "142" ||
-        cptop1 == "143" ||
-        cptop1 == "145"
-      ) {
-        state = true;
-      } else {
-        this.$message({
-          type: "warning",
-          message: "车皮号格式不对,请重新输入!",
-        });
-      }
-      if (state) {
-        if (this.input.length == 7) {
-          this.list.push(this.input);
-          this.input = "";
-        } else {
+    // 确定
+    makeSure() {
+      this.isLoading=true;
+      if (this.tableData.length <= 0  || 
+          !this.sendStationId ||
+          !this.toTheStationId ||
+          !this.form1.resultLoadingDate){
+        if (this.tableData.length <= 0) {
           this.$message({
             type: "warning",
-            message: "车皮号长度不足7位数,请重新输入!",
+            message: "请导入数据!",
           });
-        }
-      }
-    },
-    searchOrder(){
-      //查询订单
-      if((typeof this.search1)!="undefined" && (typeof this.search2)!='undefined'){
-        let requestUrl="/api/v1/tms/findPurchaseOrderList?apiId=81";
-        if(this.search1!=null){
-            requestUrl+=("&materialName="+this.search1);
-        }
-        if(this.search2!=null){
-            requestUrl+=("&resultForeignShipName="+this.search2);
-        }
-        this.purchaseOption.requestUrl=requestUrl;
-      }else{
-        this.purchaseOption.requestUrl=
-        "/api/v1/tms/findPurchaseOrderList?apiId=81"
-      }
-    },
-    onclick(index) {
-      this.list.splice(index, 1);
-    },
-    // 确定
-    makeSure() {
-      this.disable=true;
-      let state = 0;
-      if (
-        this.list.length > 0 &&
-        this.materialId &&
-        this.supplierId &&
-        this.purchaseOrderId &&
-        this.form1.resultIsclear &&
-        this.form1.resultClass &&
-        this.sendStationId &&
-        this.toTheStationId &&
-        this.form1.resultLoadingDate
-      ) {
-        state = 1;
-      } else {
-        this.disable=false;
-        console.log(this.list.length);
-        if (this.list.length == 0) {
+        }else{
           this.$message({
             type: "warning",
-            message: "请输入车皮号!",
+            message: "除备注外皆为必填!",
           });
-        } else {
-          if (this.materialId) {
-                if (this.purchaseOrderId) {
-                  if (this.form1.resultIsclear) {
-                    if (this.form1.resultClass) {
-                      if (this.sendStationId) {
-                        if (this.toTheStationId) {
-                          if (this.form1.resultLoadingDate) {
-                          } else {
-                            this.$message({
-                              type: "warning",
-                              message: "请选择装车时间!",
-                            });
-                          }
-                        } else {
-                          this.$message({
-                            type: "warning",
-                            message: "请选择到站!",
-                          });
-                        }
-                      } else {
-                        this.$message({
-                          type: "warning",
-                          message: "请选择发站!",
-                        });
-                      }
-                    } else {
-                      this.$message({
-                        type: "warning",
-                        message: "请选择班别!",
-                      });
-                    }
-                  } else {
-                    this.$message({
-                      type: "warning",
-                      message: "请选择是否清场!",
-                    });
-                  }
-                } else {
-                  this.$message({
-                    type: "warning",
-                    message: "请选择采购订单号!",
-                  });
-                }
-            }  else {
-            this.$message({
-              type: "warning",
-              message: "请选择采购订单号!",
-            });
-          }
+          this.isLoading=false;
+          return;
         }
       }
-      if(state == 1){
-        let map = {
-          wagonNoList:this.list,
-          // unloadingPointId:this.unloadPointId,
-          purchaseOrderRailPlanId:this.purchaseOrderId,
-          materialId:this.materialId,
-          sendUnitId:this.supplierId,
-          resultIsclear:this.form1.resultIsclear,
-          resultClass: this.form1.resultClass,
-          sendStationId: this.sendStationId,
-          arrivalStationId: this.toTheStationId,
-          resultLoadingDate: sjTime(this.form1.resultLoadingDate),
-          resultRemarks: this.form1.resultRemarks,
-          userId:getCookie("userId"),
-          resultType:1,
-        }
-        console.log(map);
-        this.axios.post('/api/v1/tms/insertTmstrainLoadingResult',map).then((res)=>{
-          console.log(res);
-          if(res.data.code == "200"){
-            this.$message({
-              type: "success",
-              message: "新增成功",
-            });
-            this.cancel();
-          }
-        })
+      let map = {
+        list:this.tableData,
+        sendStationId: this.sendStationId,
+        arrivalStationId: this.toTheStationId,
+        resultLoadingDate: sjTime(this.form1.resultLoadingDate),
+        resultRemarks: this.form1.resultRemarks,
+        userId:getCookie("userId"),
+        resultType:1,
       }
+      console.log(map);
+      this.axios.post('/api/v1/tms/insertTmstrainLoadingResult',map).then((res)=>{
+        console.log(res);
+        if(res.data.code == "200"){
+          this.$message({
+            type: "success",
+            message: "新增成功",
+          });
+          this.cancel();
+        }else {
+          this.$message({
+              type: "error", 
+              message: res.data.data,
+          });
+        }
+        this.isLoading=false;
+      })
     },
     // 取消
     cancel() {
@@ -629,59 +297,144 @@ export default {
           type: "warning",
         });
         return
+      }
+      this.tableData=[];
+      var reader = new FileReader();
+      var data=null;
+      var workbook=null;
+      //设置读取操作
+      reader.onload = function (e) {
+        console.log(e);
+        data = e.target.result;
+        workbook= XLSX.read(data, {
+            type: 'binary'
+        });
+        console.log(workbook);
+        let rows= XLSX.utils.sheet_to_json(workbook.Sheets[workbook.SheetNames[0]]);//只取第一页
+        let index=1;
+        for(index=1;index<rows.length;index++){
+          if(typeof workbook.Sheets[workbook.SheetNames[0]]['A'+index] !='undefined'){
+            index++;
+            break;
+           }
         }
-        var reader = new FileReader();
-        var data=null;
-        var workbook=null;
-        //设置读取操作
-        reader.onload = function (e) {
-          console.log(e);
-          data = e.target.result;
-          workbook= XLSX.read(data, {
-              type: 'binary'
-          });
-          console.log(workbook);
-          //读取表格
-          let rows= XLSX.utils.sheet_to_json(workbook.Sheets[workbook.SheetNames[0]]);//只取第一页
-          console.log(rows);
-          //清空
-          if(rows.length>0){
-            that.list=[];
-            that.tableData=[];
-            that.disable=false;
-            if((typeof rows[0]['车皮号'])=='undefined'){
+        console.log('表头行数:'+index);
+        //校验表头
+        if( workbook.Sheets[workbook.SheetNames[0]]['A'+index].v!='序号'
+        || workbook.Sheets[workbook.SheetNames[0]]['B'+index].v!='发站'
+        || workbook.Sheets[workbook.SheetNames[0]]['C'+index].v!='到站'
+        || workbook.Sheets[workbook.SheetNames[0]]['D'+index].v!='发货日期'
+        || workbook.Sheets[workbook.SheetNames[0]]['E'+index].v!='到货日期'
+        || workbook.Sheets[workbook.SheetNames[0]]['F'+index].v!='卸货地点'
+        || workbook.Sheets[workbook.SheetNames[0]]['G'+index].v!='品名'
+        || (workbook.Sheets[workbook.SheetNames[0]]['I'+index].v!='计费\n吨位'
+        && workbook.Sheets[workbook.SheetNames[0]]['I'+index].v!='计费吨位'
+        && workbook.Sheets[workbook.SheetNames[0]]['I'+index].v!='计费&#10;吨位')
+        || workbook.Sheets[workbook.SheetNames[0]]['J'+index].v!='车号'
+        || workbook.Sheets[workbook.SheetNames[0]]['K'+index].v!='计量吨位'
+        || workbook.Sheets[workbook.SheetNames[0]]['L'+index].v!='计费吨位合计'){
+          if(workbook.Sheets[workbook.SheetNames[0]]['A'+index].v!='序号'){
+             that.$message({
+                message: "表格格式错误:序号错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['B'+index].v!='发站'){
+             that.$message({
+                message: "表格格式错误:发站错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['C'+index].v!='到站'){
+             that.$message({
+                message: "表格格式错误:到站错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['D'+index].v!='发货日期'){
+             that.$message({
+                message: "表格格式错误:发货日期错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['E'+index].v!='到货日期'){
+             that.$message({
+                message: "表格格式错误:到货日期错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['F'+index].v!='卸货地点'){
+             that.$message({
+                message: "表格格式错误:卸货地点错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['G'+index].v!='品名'){
+             that.$message({
+                message: "表格格式错误:品名错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['I'+index].v!='计费\n吨位' 
+          && workbook.Sheets[workbook.SheetNames[0]]['I'+index].v!='计费吨位'
+          && workbook.Sheets[workbook.SheetNames[0]]['I'+index].v!='计费&#10;吨位'){
+             that.$message({
+                message: "表格格式错误:计费吨位错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['J'+index].v!='车号'){
+             that.$message({
+                message: "表格格式错误:车号错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['K'+index].v!='计量吨位'){
+             that.$message({
+                message: "表格格式错误:计量吨位错误",
+                type: "warning",
+            });
+          }else if(workbook.Sheets[workbook.SheetNames[0]]['L'+index].v!='计费吨位合计'){
+             that.$message({
+                message: "表格格式错误:计费吨位合计错误",
+                type: "warning",
+            });
+          }
+          return;
+        }
+        //读取表格
+        for(let i=1;i<=rows.length+1;i++){
+          let row=workbook.Sheets[workbook.SheetNames[0]]['A'+i];
+          if(row!='undefined' && row!=null && typeof row.v=='number' 
+              && workbook.Sheets[workbook.SheetNames[0]]['B'+i]!='undefined'
+            && workbook.Sheets[workbook.SheetNames[0]]['B'+i]!=null
+              && workbook.Sheets[workbook.SheetNames[0]]['C'+i]!='undefined'
+            && workbook.Sheets[workbook.SheetNames[0]]['C'+i]!=null
+              && workbook.Sheets[workbook.SheetNames[0]]['D'+i]!='undefined'
+            && workbook.Sheets[workbook.SheetNames[0]]['D'+i]!=null
+              && workbook.Sheets[workbook.SheetNames[0]]['E'+i]!='undefined'
+            && workbook.Sheets[workbook.SheetNames[0]]['E'+i]!=null
+              && workbook.Sheets[workbook.SheetNames[0]]['F'+i]!='undefined'
+            && workbook.Sheets[workbook.SheetNames[0]]['F'+i]!=null
+              && workbook.Sheets[workbook.SheetNames[0]]['G'+i]!='undefined'
+            && workbook.Sheets[workbook.SheetNames[0]]['G'+i]!=null
+              && workbook.Sheets[workbook.SheetNames[0]]['J'+i]!='undefined'
+            && workbook.Sheets[workbook.SheetNames[0]]['J'+i]!=null){
+            let tableRow={
+              sendStation:workbook.Sheets[workbook.SheetNames[0]]['B'+i].v,
+              arrivalStation:workbook.Sheets[workbook.SheetNames[0]]['C'+i].v,
+              sendDate:sjTime(workbook.Sheets[workbook.SheetNames[0]]['D'+i].v),
+              arrivalDate:workbook.Sheets[workbook.SheetNames[0]]['E'+i].v,
+              unloadPoint:workbook.Sheets[workbook.SheetNames[0]]['F'+i].v,
+              productName:workbook.Sheets[workbook.SheetNames[0]]['G'+i].v,
+              wagonNo:workbook.Sheets[workbook.SheetNames[0]]['J'+i].v,
+              weight:workbook.Sheets[workbook.SheetNames[0]]['I'+i].v,
+              mineral:workbook.Sheets[workbook.SheetNames[0]]['H'+i].v,
+            }
+            if((tableRow.wagonNo+"").length!=7){
               that.$message({
-                message: "车皮号不存在!请参考下方格式!",
+                message: "存在车皮号长度不等于7:"+tableRow.wagonNo,
                 type: "warning",
               });
-              return;
+              continue;
             }
+            that.tableData.push(tableRow);
           }
-          //绑定数据
-          rows.forEach((row,index) => {
-            let carNumber=row['车皮号'];
-            if((typeof carNumber)!="undefined" && carNumber.length == 7){
-              //车皮号表
-              that.list.push(carNumber);
-              //表格数据
-              let temp={
-                number:row['序号'],
-                makeDate:row['制票日期'],
-                materialName:row['品名'],
-                wagonNo:row['车皮号'],
-                mineral:row['矿种'],
-                weight:row['计费&#10;吨位']
-              }
-              that.tableData.push(temp);
-            }
-            else{
-              let errorNumb=index+1;
-              console.log("第"+errorNumb+ "行车皮号异常!");
-              return;
-            }
-        });
-        };
-        reader.readAsBinaryString(file.raw); //以二进制方式读取
+        }
+        console.log(that.tableData);
+      };
+      reader.readAsBinaryString(file.raw); //以二进制方式读取
     },
     //采购订单表格选中
     orderChange(selection){

+ 889 - 0
src/views/TMS/components/importedMine/addWagonloadCopy.vue

@@ -0,0 +1,889 @@
+<template>
+  <!-- 万州港-达州新增装车 -->
+  <div class="addWagonLoad">
+    <page-title>返回</page-title>
+    <div class="purchaseOrder_table">
+      <div class="search" style="display:flex">
+        <div style="margin-top: 18px;margin-left:10px">
+          <el-label>物资名或订单号:</el-label>
+        </div>
+        <el-input
+          placeholder="请输入"
+          v-model="search1"
+          style="margin: 10px; width:10%"
+          clearable
+        ></el-input>
+        <div style="margin-top: 18px;margin-left:10px">
+          <el-label>外轮船名:</el-label>
+        </div>
+        <el-input
+          placeholder="请输入"
+          v-model="search2"
+          style="margin: 10px;width:10%"
+          clearable
+        ></el-input>
+        <el-button
+          type="primary"
+          class="btn"
+          @click="searchOrder()"
+          style="margin: 10px;"
+        >
+          <i class="el-icon-search"></i>查询
+        </el-button>
+        <!-- <el-button 
+      type="primary"
+      class="btn" 
+      @click="makeSure" 
+      style="margin: 10px;">确认配单
+      </el-button> -->
+      </div>
+      <!-- 采购订单号 -->
+      <dilTable
+        v-bind.sync="purchaseOption"
+        @radio-change="orderChange"
+      ></dilTable>
+    </div>
+    <div class="cp">
+      <span>车皮号:</span>
+      <el-upload
+        style="margin: 8px;"
+        class="upload-excel"
+        action=""
+        :on-change="importExcel"
+        :show-file-list="false"
+        accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"
+        :auto-upload="false"
+      >
+        <el-button type="primary">导入</el-button>
+      </el-upload>
+      <span>当前导入数量:{{ tableData.length }}</span>
+    </div>
+    <div>
+      <span style="color:red">导入数据中的 车皮号 是必须的</span>
+    </div>
+    <div
+      class="table item"
+      style="width:680px;
+        height:300px;
+        float:left;
+        overflow:auto"
+    >
+      <el-table stripe :data="tableData" style="width: 100%">
+        <el-table-column
+          type="index"
+          width="50"
+          prop="number"
+          label="序号"
+          align="center"
+          fixed="left"
+          :resizable="false"
+        >
+        </el-table-column>
+        <el-table-column
+          align="center"
+          prop="makeDate"
+          label="制票日期"
+          width="120px"
+        >
+        </el-table-column>
+        <el-table-column
+          align="center"
+          prop="wagonNo"
+          label="车皮号"
+          width="120px"
+        >
+        </el-table-column>
+        <el-table-column
+          align="center"
+          prop="materialName"
+          label="物资"
+          width="180px"
+        >
+        </el-table-column>
+        <el-table-column
+          align="center"
+          prop="mineral"
+          label="矿种"
+          width="120px"
+        >
+        </el-table-column>
+        <el-table-column align="center" width="80px" prop="weight" label="标重">
+        </el-table-column>
+        <!-- <el-table-column
+        align="center"
+        width="100px"
+          fixed="right"
+          label="操作">
+          <template slot-scope="scope">
+            <el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button>
+            <el-button type="text" size="small">编辑</el-button>
+          </template>
+        </el-table-column> -->
+      </el-table>
+    </div>
+    <!-- <div class="cp">
+      <span style="width:80px">车皮号:</span>
+      <el-input
+        placeholder="请输入内容"
+        v-model="input"
+        @change="onchang"
+        clearable
+      >
+      </el-input>
+    </div>
+    <div class="cpList">
+      <div class="list">
+        <span class="cpList1" v-for="(item, i) in list" :key="i">
+          {{ item }}
+          <i class="el-icon-close itu" @click="onclick(i)"></i>
+        </span>
+      </div>
+    </div>
+
+    <div class="material from">
+      <span class="text">物资:</span>
+      <el-input v-model="materialName" disabled> </el-input>
+      <el-button type="primary" @click="ondrawer(1)">浏览</el-button>
+    </div>
+
+    <div class="forwardingUnit from">
+      <span class="text">发货单位:</span>
+      <el-input v-model="supplierName" disabled> </el-input>
+      <el-button type="primary" @click="ondrawer(2)">浏览</el-button>
+    </div>
+    <div class="remark from">
+      <span class="text">船名:</span>
+      <el-input class="el-input" v-model="remark" @blur="onBlur"> </el-input>
+      <span class="span"></span>
+    </div>
+    <div class="forwardingUnit from">
+      <span class="text">卸货点:</span>
+      <el-input v-model="unloadPointName" disabled> </el-input>
+      <el-button type="primary" @click="ondrawer(4)">浏览</el-button>
+    </div> -->
+    <div
+      class="right"
+      style="margin-top:10px
+           float:right;"
+    >
+      <div class="form">
+        <div class="form_box" style="margin-right: 10rem">
+          <el-form>
+            <div class="preview-group">
+              <el-form-item label="发站:">
+                <el-autocomplete
+                  class="inline-input"
+                  v-model="sendStation"
+                  :fetch-suggestions="querySearchSendStation"
+                  placeholder="请输入发站名称"
+                  :trigger-on-focus="false"
+                  @select="handleSelectSendStation"
+                >
+                  <template slot-scope="{ item }">
+                    <div class="name">{{ item.arrivalName }}</div>
+                  </template>
+                </el-autocomplete>
+              </el-form-item>
+              <el-form-item label="到站:">
+                <el-autocomplete
+                  class="inline-input"
+                  v-model="toTheStation"
+                  :fetch-suggestions="querySearchToTheStation"
+                  placeholder="请输入到站名称"
+                  :trigger-on-focus="false"
+                  @select="handleSelectToTheStation"
+                >
+                  <template slot-scope="{ item }">
+                    <div class="name">{{ item.arrivalName }}</div>
+                  </template>
+                </el-autocomplete>
+              </el-form-item>
+            </div>
+          </el-form>
+          <dil-form :formId="102" v-model="form1" ref="from1"></dil-form>
+        </div>
+      </div>
+      <div class="button-box">
+        <el-button @click="cancel">取消</el-button>
+        <el-button type="primary" :disabled="disable" @click="makeSure"
+          >确定</el-button
+        >
+      </div>
+    </div>
+
+    <!-- 模态窗口 -->
+    <el-drawer :visible.sync="drawer" :direction="direction" size="30%">
+      <el-input
+        placeholder="请输入内容"
+        v-model="inputText"
+        style="margin-top: 0.625rem; margin-left: 1.25rem;width:250px"
+        clearable
+      ></el-input>
+      <el-button
+        type="primary"
+        class="btn"
+        @click="onClick(a)"
+        style="margin-bottom: 0.9375rem"
+      >
+        <i class="el-icon-search"></i>查询
+      </el-button>
+      <div v-show="a == 1">
+        <dilTable
+          v-bind.sync="frist"
+          @radio-change="currentRadioChange1"
+        ></dilTable>
+      </div>
+      <div v-show="a == 2">
+        <dilTable
+          v-bind.sync="secend"
+          @radio-change="currentRadioChange2"
+        ></dilTable>
+      </div>
+      <div v-show="a == 4">
+        <dilTable
+          v-bind.sync="unloadPoint"
+          @radio-change="currentRadioChange4"
+        ></dilTable>
+      </div>
+    </el-drawer>
+  </div>
+</template>
+
+<script>
+import PageTitle from "@/components/Page/Title";
+import { sjTime } from "@/utils/sharedJsFile";
+import { getCookie } from "@/utils/util.js";
+export default {
+  components: { PageTitle },
+  data() {
+    return {
+      disable: false,
+      list: [],
+      form1: {},
+      tableData: [],
+      input: "",
+      value: undefined,
+      //船名
+      remark: null,
+      //采购订单id
+      purchaseOrderId: null,
+      //物资名称
+      materialName: null,
+      //发货单位名称
+      supplierName: null,
+      //发货单位id
+      supplierId: null,
+      //物资id
+      materialId: null,
+      //是否需要打开模态窗口
+      drawer: false,
+      //卸货点id
+      unloadPointId: null,
+      //卸货点名称
+      unloadPointName: null,
+      //查询
+      search1: null,
+      search2: null,
+      a: 1,
+      direction: "rtl",
+      inputText: "",
+      purchaseOption: {
+        // 表格请求数据的地址
+        requestUrl: "/api/v1/tms/findPurchaseOrderList?apiId=81",
+        // 控制选择单列
+        selectionType: "radio",
+        pageSize: 5
+      },
+      frist: {
+        requestUrl: "/api/v1/uc/queryAPOMaterialByLike?apiId=244&startNum=050",
+        selectionType: "radio",
+        mapList1: []
+      },
+      secend: {
+        requestUrl:
+          "/api/v1/uc/getSupplierMesByMaterialId?apiId=247&materialId=",
+        selectionType: "radio",
+        mapList2: []
+      },
+      unloadPoint: {
+        requestUrl: "/api/v1/uc/getUnloadingMesByLike?apiId=374",
+        selectionType: "radio"
+      },
+      sendStationId: 2,
+      toTheStationId: 1,
+      sendStation: "万州港",
+      toTheStation: "老区轨道衡"
+    };
+  },
+  mounted() {
+    this.form1.resultLoadingDate = new Date();
+  },
+  methods: {
+    currentRadioChange1(selection) {
+      this.input = null;
+      this.materialName = selection.materialName;
+      this.materialId = selection.materialId;
+      this.getPurchaseOrderNo();
+    },
+    currentRadioChange2(selection) {
+      this.supplierName = selection.supplierName;
+      this.supplierId = selection.supplierId;
+      this.getPurchaseOrderNo();
+    },
+    currentRadioChange4(selection) {
+      this.unloadPointId = selection.warehouseId;
+      this.unloadPointName = selection.warehouseName;
+    },
+    ondrawer(num) {
+      this.drawer = true;
+      this.a = num;
+      if (num == 2) {
+        this.secend.requestUrl =
+          "/api/v1/uc/getSupplierMesByMaterialId?apiId=247&materialId=" +
+          this.materialId;
+      }
+    },
+    onBlur() {
+      this.getPurchaseOrderNo();
+    },
+    getPurchaseOrderNo() {
+      let map = {
+        materialId: this.materialId,
+        supplierId: this.supplierId
+      };
+      if (this.remark) {
+        map.remark = this.remark;
+      }
+      console.log(this.map);
+      if (this.materialId && this.supplierId) {
+        this.axios.post("/api/v1/oms/selectNewOrderId", map).then(res => {
+          console.log(res);
+          if (res.data.code == "200") {
+            if (res.data.data == null) {
+              this.$message({
+                message: "没有匹配的采购订单号!",
+                type: "warning"
+              });
+              this.form1 = [];
+            } else {
+              this.remark = res.data.data.remark;
+              this.purchaseOrderId = res.data.data.purchaseOrderId;
+              this.form1 = { purchaseOrderNo: res.data.data.purchaseOrderNo };
+            }
+          } else {
+            this.$message.error("请求失败");
+          }
+        });
+      }
+    },
+    onClick(a) {
+      if (a == 1) {
+        this.frist.requestUrl =
+          "/api/v1/uc/queryAPOMaterialByLike?apiId=244&startNum=050&index=" +
+          this.inputText;
+      } else if (a == 2) {
+        this.secend.requestUrl =
+          "/api/v1/uc/getSupplierMesByMaterialId?apiId=247&materialId=" +
+          this.materialId +
+          "&index=" +
+          this.inputText;
+      } else if (a == 4) {
+        this.unloadPoint.requestUrl =
+          "/api/v1/uc/getUnloadingMesByLike?apiId=374&index=" + this.inputText;
+      }
+    },
+    //发站弹出层
+    handleSelectSendStation(item) {
+      this.sendStationId = item.arrivalId;
+      this.sendStation = item.arrivalName;
+    },
+    //以下是发站边输边查搜索
+    querySearchSendStation(queryString, cb) {
+      this.axios
+        .get("/api/v1/uc/getArrivalByLike?index=" + this.sendStation)
+        .then(res => {
+          if (res.data.code == "200") {
+            var restaurantsSupplier = res.data.data;
+            console.log(restaurantsSupplier);
+            var results = queryString
+              ? restaurantsSupplier.filter(
+                  this.createFilterSendStation(queryString)
+                )
+              : restaurantsSupplier;
+            // 调用 callback 返回建议列表的数据
+            cb(results);
+          }
+        });
+    },
+    //发站
+    createFilterSendStation(queryString) {
+      return restaurantsSupplier => {
+        return (
+          restaurantsSupplier.arrivalName
+            .toLowerCase()
+            .indexOf(queryString.toLowerCase()) > -1
+        );
+      };
+    },
+    //到站弹出层
+    handleSelectToTheStation(item) {
+      this.toTheStationId = item.arrivalId;
+      this.toTheStation = item.arrivalName;
+    },
+    //以下是到站边输边查搜索
+    querySearchToTheStation(queryString, cb) {
+      this.axios
+        .get("/api/v1/uc/getArrivalByLike?index=" + this.toTheStation)
+        .then(res => {
+          if (res.data.code == "200") {
+            var restaurantsSupplier = res.data.data;
+            console.log(restaurantsSupplier);
+            var results = queryString
+              ? restaurantsSupplier.filter(
+                  this.createFilterToTheStation(queryString)
+                )
+              : restaurantsSupplier;
+            // 调用 callback 返回建议列表的数据
+            cb(results);
+          }
+        });
+    },
+    //到站
+    createFilterToTheStation(queryString) {
+      return restaurantsSupplier => {
+        return (
+          restaurantsSupplier.arrivalName
+            .toLowerCase()
+            .indexOf(queryString.toLowerCase()) > -1
+        );
+      };
+    },
+    onchang() {
+      var state = false;
+      var cptop = this.input.substring(0, 2);
+      var cptop1 = this.input.substring(0, 3);
+      if (
+        cptop == "45" ||
+        cptop == "46" ||
+        cptop == "42" ||
+        cptop == "47" ||
+        cptop == "15" ||
+        cptop == "16" ||
+        cptop == "17" ||
+        cptop == "18"
+      ) {
+        state = true;
+      } else if (
+        cptop1 == "140" ||
+        cptop1 == "141" ||
+        cptop1 == "142" ||
+        cptop1 == "143" ||
+        cptop1 == "145"
+      ) {
+        state = true;
+      } else {
+        this.$message({
+          type: "warning",
+          message: "车皮号格式不对,请重新输入!"
+        });
+      }
+      if (state) {
+        if (this.input.length == 7) {
+          this.list.push(this.input);
+          this.input = "";
+        } else {
+          this.$message({
+            type: "warning",
+            message: "车皮号长度不足7位数,请重新输入!"
+          });
+        }
+      }
+    },
+    searchOrder() {
+      //查询订单
+      if (
+        typeof this.search1 != "undefined" &&
+        typeof this.search2 != "undefined"
+      ) {
+        let requestUrl = "/api/v1/tms/findPurchaseOrderList?apiId=81";
+        if (this.search1 != null) {
+          requestUrl += "&materialName=" + this.search1;
+        }
+        if (this.search2 != null) {
+          requestUrl += "&resultForeignShipName=" + this.search2;
+        }
+        this.purchaseOption.requestUrl = requestUrl;
+      } else {
+        this.purchaseOption.requestUrl =
+          "/api/v1/tms/findPurchaseOrderList?apiId=81";
+      }
+    },
+    onclick(index) {
+      this.list.splice(index, 1);
+    },
+    // 确定
+    makeSure() {
+      this.disable = true;
+      let state = 0;
+      if (
+        this.list.length > 0 &&
+        this.materialId &&
+        this.supplierId &&
+        this.purchaseOrderId &&
+        this.form1.resultIsclear &&
+        this.form1.resultClass &&
+        this.sendStationId &&
+        this.toTheStationId &&
+        this.form1.resultLoadingDate
+      ) {
+        state = 1;
+      } else {
+        this.disable = false;
+        console.log(this.list.length);
+        if (this.list.length == 0) {
+          this.$message({
+            type: "warning",
+            message: "请输入车皮号!"
+          });
+        } else {
+          if (this.materialId) {
+            if (this.purchaseOrderId) {
+              if (this.form1.resultIsclear) {
+                if (this.form1.resultClass) {
+                  if (this.sendStationId) {
+                    if (this.toTheStationId) {
+                      if (this.form1.resultLoadingDate) {
+                      } else {
+                        this.$message({
+                          type: "warning",
+                          message: "请选择装车时间!"
+                        });
+                      }
+                    } else {
+                      this.$message({
+                        type: "warning",
+                        message: "请选择到站!"
+                      });
+                    }
+                  } else {
+                    this.$message({
+                      type: "warning",
+                      message: "请选择发站!"
+                    });
+                  }
+                } else {
+                  this.$message({
+                    type: "warning",
+                    message: "请选择班别!"
+                  });
+                }
+              } else {
+                this.$message({
+                  type: "warning",
+                  message: "请选择是否清场!"
+                });
+              }
+            } else {
+              this.$message({
+                type: "warning",
+                message: "请选择采购订单号!"
+              });
+            }
+          } else {
+            this.$message({
+              type: "warning",
+              message: "请选择采购订单号!"
+            });
+          }
+        }
+      }
+      if (state == 1) {
+        let map = {
+          portName: this.sendStation,
+          wagonList: this.list,
+          // unloadingPointId:this.unloadPointId,
+          purchaseOrderRailPlanId: this.purchaseOrderId,
+          materialId: this.materialId,
+          sendUnitId: this.supplierId,
+          isClean: this.form1.resultIsclear,
+          resultClass: this.form1.resultClass,
+          sendStationId: this.sendStationId,
+          arrivalStationId: this.toTheStationId,
+          resultLoadingDate: sjTime(this.form1.resultLoadingDate),
+          resultRemarks: this.form1.resultRemarks,
+          userId: getCookie("userId"),
+          resultType: 1,
+          purchaseNo: this.form1.purchaseOrderNo
+        };
+        console.log(map);
+        this.axios
+          .post("/api/v1/tms/addWarehouseOutResult", map)
+          .then(res => {
+            console.log(res);
+            if (res.data.code == "200") {
+              this.$message({
+                type: "success",
+                message: "新增成功"
+              });
+              this.disable = false;
+              this.cancel();
+            } else {
+              this.disable = false;
+              this.$message({
+                type: "error",
+                message: res.data.data
+              });
+            }
+          })
+          .catch(() => {
+            this.$message.error("请联系管理员");
+            this.disable = false;
+          });
+      }
+    },
+    // 取消
+    cancel() {
+      this.$router.go(-1);
+    },
+    // 导入excel
+    importExcel(file) {
+      let that = this;
+      if (!file) {
+        that.$message({
+          message: "文件错误!",
+          type: "warning"
+        });
+        return;
+      }
+      var reader = new FileReader();
+      var data = null;
+      var workbook = null;
+      //设置读取操作
+      reader.onload = function(e) {
+        console.log(e);
+        data = e.target.result;
+        workbook = XLSX.read(data, {
+          type: "binary"
+        });
+        console.log(workbook);
+        //读取表格
+        let rows = XLSX.utils.sheet_to_json(
+          workbook.Sheets[workbook.SheetNames[0]]
+        ); //只取第一页
+        console.log(rows);
+        //清空
+        if (rows.length > 0) {
+          that.list = [];
+          that.tableData = [];
+          that.disable = false;
+          if (typeof rows[0]["车皮号"] == "undefined") {
+            that.$message({
+              message: "车皮号不存在!请参考下方格式!",
+              type: "warning"
+            });
+            return;
+          }
+        }
+        //绑定数据
+        rows.forEach((row, index) => {
+          let carNumber = row["车皮号"];
+          if (typeof carNumber != "undefined" && carNumber.length == 7) {
+            //车皮号表
+            let map = {};
+            map.wagonNo = carNumber;
+            that.list.push(map);
+            //表格数据
+            let temp = {
+              number: row["序号"],
+              makeDate: row["制票日期"],
+              materialName: row["品名"],
+              wagonNo: row["车皮号"],
+              mineral: row["矿种"],
+              weight: row["计费&#10;吨位"]
+            };
+            that.tableData.push(temp);
+          } else {
+            let errorNumb = index + 1;
+            console.log("第" + errorNumb + "行车皮号异常!");
+            return;
+          }
+        });
+      };
+      reader.readAsBinaryString(file.raw); //以二进制方式读取
+    },
+    //采购订单表格选中
+    orderChange(selection) {
+      console.log(selection);
+      this.purchaseOrderId = selection.purchaseOrderId;
+      this.form1 = {
+        purchaseOrderNo: selection.purchaseOrderNo,
+        resultLoadingDate: new Date()
+      };
+      this.materialId = selection.materialId;
+      this.materialName = selection.materialName;
+      this.supplierId = selection.supplierId;
+      this.supplierName = selection.supplierName;
+    }
+  }
+};
+</script>
+<style lang="scss">
+.addWagonLoad {
+  color: #606266;
+  font-size: 0.675rem;
+  font-weight: 500;
+  .cp {
+    width: 49%;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    padding-top: 0.625rem;
+    padding-bottom: 0.625rem;
+    margin-left: 364px;
+    .cp_title {
+      .cp_top {
+        width: 3.125rem;
+        padding-right: 1.55rem;
+      }
+    }
+  }
+  .cpList {
+    display: flex;
+    justify-content: center;
+    width: 100%;
+    height: 10rem;
+    .list {
+      width: 45%;
+      border: #000 0.0625rem solid;
+      padding: 0.625rem;
+      display: flex;
+      flex-wrap: wrap;
+      .cpList1 {
+        background-color: #c9c7c7;
+        height: 1.875rem;
+        margin-right: 0.5rem;
+        padding: 0.625rem;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        position: relative;
+        .itu {
+          position: absolute;
+          top: -0.125rem;
+          right: 0.0625rem;
+          width: 0.625rem;
+          height: 0.625rem;
+        }
+      }
+    }
+  }
+  .matching {
+    width: 100%;
+    height: 3.125rem;
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    .text {
+      width: 8.75rem;
+    }
+    .span {
+      display: inline-block;
+      width: 310px;
+      height: 0.0625rem;
+    }
+  }
+  .material {
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    height: 3.75rem;
+    margin-left: 27rem;
+    width: 20rem;
+    .text {
+      text-align: right;
+      width: 8.125rem;
+    }
+  }
+  .forwardingUnit {
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    height: 3.75rem;
+    margin-left: 27rem;
+    width: 20rem;
+    .text {
+      text-align: right;
+      width: 8.125rem;
+    }
+  }
+  .remark {
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    height: 3.75rem;
+    .text {
+      text-align: right;
+      width: 5.625rem;
+    }
+    .span {
+      display: inline-block;
+      width: 1.875rem;
+      height: 1.25rem;
+    }
+    .el-input {
+      width: 13.5rem;
+      margin-right: 2.375rem;
+    }
+  }
+  .purchaseOrder {
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    .span {
+      display: inline-block;
+      width: 1.875rem;
+      height: 0.0625rem;
+    }
+  }
+  .form {
+    display: flex;
+    .form_box {
+      width: 340px;
+      margin-left: 37%;
+      margin-right: 20px;
+      .el-form {
+        .preview-group {
+          .el-form-item {
+            .el-form-item__label {
+              display: inline-block;
+              width: 70px !important;
+            }
+            .el-form-item__content {
+              .el-select {
+                width: 250px;
+              }
+              .el-input {
+                width: 250px;
+              }
+              .el-textarea {
+                .el-textarea__inner {
+                  width: 225px;
+                  margin-top: 0.03rem;
+                }
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+  .button-box {
+    display: flex;
+    justify-content: center;
+    padding-top: 30px;
+  }
+  .formOther .el-input__inner {
+    width: 250px;
+  }
+}
+</style>

+ 6 - 0
src/views/TMS/components/importedMine/entrust.vue

@@ -26,6 +26,9 @@
       v-if="activeName == 'second'"
         ><i class="el-icon-download"></i>导出(Excel)</el-button
       >
+       <el-button type="primary" @click="refresh()">
+        <i class="el-icon-refresh"></i>刷新
+      </el-button>
     </div>
     <el-tabs v-model="activeName" @tab-click="handleClick">
       <el-tab-pane label="待计量" name="first">
@@ -146,6 +149,9 @@ export default {
       console.log(selection);
       this.selectionListMap2 = selection;
     },
+    refresh(){
+      this.$router.go(0);
+    }
   },
 };
 </script>

+ 65 - 0
src/views/TMS/components/importedMine/outBoundWagon.vue

@@ -0,0 +1,65 @@
+<template>
+  <!-- 出库 -->
+  <div class="homeworkPath">
+    <div class="top">
+      <el-input placeholder="请输入内容" v-model="input" clearable> </el-input>
+
+      <el-button type="primary" class="btn" @click="onclick">
+        <i class="el-icon-search"></i>查询
+      </el-button>
+      <el-button type="primary" class="btn" @click="insert">
+        出库
+      </el-button>
+    </div>
+    <el-tabs v-model="activeName" @tab-click="handleClick">
+      <dilTable v-bind.sync="option1" ref="table"> </dilTable>
+    </el-tabs>
+  </div>
+</template>
+
+<script>
+export default {
+  name: "inplantTMS",
+  data() {
+    return {
+      input: "",
+      Time: "",
+      activeName: "first",
+      option1: {
+        // 表格请求数据的地址
+        requestUrl: "/api/v1/wmsh/getOutBoundResult?apiId=159"
+      }
+    };
+  },
+  filters: {},
+  methods: {
+    onclick() {
+      if (this.activeName == "first") {
+        this.option1.requestUrl =
+          "/api/v1/wmsh/getOutBoundResult?apiId=159&con=" + this.input;
+      }
+    },
+    insert() {
+      this.$router.push("/addWagonLoadCopy");
+    },
+    handleClick(tab, event) {
+      console.log(tab, event);
+    }
+  }
+};
+</script>
+<style lang="scss" scoped>
+.homeworkPath {
+  .top {
+    padding: 1.25rem 0.375rem;
+    .el-input {
+      width: 20%;
+      margin-right: 40rpx;
+    }
+    .btn {
+      width: 5.5%;
+      margin-left: 0.25rem;
+    }
+  }
+}
+</style>

+ 43 - 42
src/views/TMS/components/importedMine/wagonLoad.vue

@@ -9,7 +9,7 @@
         clearable
       >
       </el-input>
-        <el-date-picker
+      <el-date-picker
         v-model="startTime"
         type="datetime"
         placeholder="选择日期"
@@ -44,58 +44,59 @@
   </div>
 </template>
 
-
 <script>
 import { sjTime } from "@/utils/sharedJsFile";
 export default {
   name: "wagonload",
   data() {
     return {
-      startTime:null,
-      endTime:null,
+      startTime: null,
+      endTime: null,
       input: "",
       option: {
         // 表格请求数据的地址
-        requestUrl:
-          "",
-      },
+        requestUrl: ""
+      }
     };
   },
-     created() {
-      this.getRequestUrl();
-    },
+  created() {
+    this.getRequestUrl();
+  },
   methods: {
-     getRequestUrl(){
-      this.option.requestUrl = "/api/v1/tms/getTmstrainWagonLoad?apiId=58&resultType=1&i=" + new Date()  
+    getRequestUrl() {
+      this.option.requestUrl =
+        "/api/v1/tms/getTmstrainWagonLoad?apiId=58&resultType=1&i=" +
+        new Date();
     },
     onclick() {
-       let startTime = null;
-        let endTime = null;
-        if (this.startTime) {
-          startTime = sjTime(this.startTime);
-        }
-        if (this.endTime) {
-          endTime = sjTime(this.endTime);
-        }
-        if (startTime && endTime) {
-          if (startTime < endTime) {
-             this.option.requestUrl =
-            "/api/v1/tms/getTmstrainWagonLoad?apiId=58&resultType=1&con=" +
-            this.input + "&startTime=" +
-              startTime +
-              "&endTime=" +
-              endTime +
-              "&i=" +
-              new Date();
-          }
-        } else {
+      let startTime = null;
+      let endTime = null;
+      if (this.startTime) {
+        startTime = sjTime(this.startTime);
+      }
+      if (this.endTime) {
+        endTime = sjTime(this.endTime);
+      }
+      if (startTime && endTime) {
+        if (startTime < endTime) {
           this.option.requestUrl =
             "/api/v1/tms/getTmstrainWagonLoad?apiId=58&resultType=1&con=" +
-            this.input;
+            this.input +
+            "&startTime=" +
+            startTime +
+            "&endTime=" +
+            endTime +
+            "&i=" +
+            new Date();
         }
+      } else {
+        this.option.requestUrl =
+          "/api/v1/tms/getTmstrainWagonLoad?apiId=58&resultType=1&con=" +
+          this.input;
+      }
     },
     btnclick() {
-      this.$router.push("/addWagonLoad");
+      this.$router.push("/addWagonLoadCopy");
     },
     click(resultId) {
       this.$router.push("/editWagonLoad/" + resultId);
@@ -106,12 +107,12 @@ export default {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
         type: "warning",
-        center: true,
+        center: true
       })
         .then(() => {
           this.$message({
             type: "success",
-            message: "删除成功!",
+            message: "删除成功!"
           });
           this.axios
             .post(
@@ -119,20 +120,20 @@ export default {
                 resultId
             )
             .then(() => {
-              this.getRequestUrl()
+              this.getRequestUrl();
             });
         })
         .catch(() => {
           this.$message({
             type: "info",
-            message: "取消删除!",
+            message: "取消删除!"
           });
         });
-    },
-  },
+    }
+  }
 };
 </script>
-<style lang='scss' scoped>
+<style lang="scss" scoped>
 .trainTransport {
   .top {
     padding: 1.25rem 0.375rem;
@@ -142,4 +143,4 @@ export default {
     }
   }
 }
-</style>
+</style>

+ 6 - 0
src/views/TMS/components/importedShip/bargeShip.vue

@@ -15,6 +15,9 @@
       <el-button type="primary" class="btn" @click="addclick">
         <i class="el-icon-circle-plus-outline"></i>新增
       </el-button>
+      <el-button type="primary" @click="refresh()">
+        <i class="el-icon-refresh"></i>刷新
+      </el-button>
     </div>
     <dilTable v-bind.sync="option">
       <el-table-column fixed="right" label="操作" align="center" width="100">
@@ -97,6 +100,9 @@ export default {
             message: "取消删除!"
           });
         });
+    },
+    refresh(){
+      this.$router.go(0);
     }
   }
 };

+ 6 - 0
src/views/TMS/components/importedShip/loadShip.vue

@@ -15,6 +15,9 @@
       <el-button type="primary" class="btn" @click="addclick">
         <i class="el-icon-circle-plus-outline"></i>新增
       </el-button>
+       <el-button type="primary" @click="refresh()">
+        <i class="el-icon-refresh"></i>刷新
+      </el-button>
     </div>
     <dilTable v-bind.sync="option">
       <el-table-column fixed="right" label="操作" align="center" width="100">
@@ -83,6 +86,9 @@ export default {
             message: "取消删除!"
           });
         });
+    },
+    refresh(){
+      this.$router.go(0);
     }
   }
 };

+ 6 - 0
src/views/TMS/components/importedShip/shipLocation.vue

@@ -7,6 +7,9 @@
       <el-button type="primary" class="btn" @click="onclick">
         <i class="el-icon-search"></i>查询
       </el-button>
+      <el-button type="primary" @click="refresh()">
+        <i class="el-icon-refresh"></i>刷新
+      </el-button>
     </div>
     <el-table :data="selectionList" border highlight-current-row>
       <el-table-column type="index" width="50" label="序号" align="center">
@@ -217,6 +220,9 @@ export default {
           this.initialization();
         }
       });
+    },
+    refresh(){
+      this.$router.go(0);
     }
   }
 };

+ 7 - 1
src/views/TMS/components/importedShip/shipResult.vue

@@ -1,5 +1,5 @@
 <template>
-  <!-- 水路货物运单页面 -->
+  <!-- 装船作业明细页面 -->
   <div class="shipTransport">
     <div class="top">
 
@@ -7,6 +7,9 @@
       <el-button type="primary" class="btn" @click="onclick">
         <i class="el-icon-search"></i>查询
       </el-button>
+      <el-button type="primary" @click="refresh()">
+        <i class="el-icon-refresh"></i>刷新
+      </el-button>
     <dilTable v-bind.sync="option">
     </dilTable>
   </div>
@@ -35,6 +38,9 @@ export default {
     btnclick(pathId) {
       this.$router.push("/path/addHomeworkPath/" + pathId);
     },
+    refresh(){
+      this.$router.go(0);
+    }
   },
 };
 </script>

+ 9 - 5
src/views/TMS/components/importedShip/shipmentInstructionText.vue

@@ -120,6 +120,7 @@
               </th>
             </tr>
           </table>
+
           <table
             border="1"
             cellpadding="10"
@@ -148,7 +149,7 @@
             </tr>
           </table>
         </div>
-        <div>
+        <div class="luokuan">
           <!-- tablePart6 -->
           <table
             border="0"
@@ -234,7 +235,7 @@ export default {
   data() {
     return {
       shipmentInstructionLists: [],
-      htmlTitle: "装船通知单",
+      htmlTitle: "装船通知单"
     };
   },
   created() {
@@ -252,13 +253,13 @@ export default {
       console.log(this.shipmentInstructionLists);
       // this.amsShipDeliveryNameLists = this.$route.params.test;
       console.log(this.shipmentInstructionLists);
-      this.shipmentInstructionLists.forEach((e) => {
+      this.shipmentInstructionLists.forEach(e => {
         e.year = e.instructionTime.split("-")[0];
         e.month = e.instructionTime.split("-")[1];
         e.date = e.instructionTime.split("-")[2].split(" ")[0];
       });
-    },
-  },
+    }
+  }
 };
 </script>
 
@@ -315,6 +316,9 @@ export default {
     border-top: 0px;
   }
 }
+.luokuan {
+  margin-top: 150px !important;
+}
 .blank {
   width: 100%;
   height: 50px;

+ 6 - 0
src/views/TMS/components/importedShip/shipmentInstructions.vue

@@ -14,6 +14,9 @@
       </el-button>
       <el-button class="btn" type="primary" @click="btnclick(0)">
         <i class="el-icon-circle-plus-outline"></i>新增
+      </el-button>
+       <el-button type="primary" @click="refresh()">
+        <i class="el-icon-refresh"></i>刷新
       </el-button>
       <el-button
         type="primary"
@@ -210,6 +213,9 @@ export default {
           });
         });
     },
+    refresh(){
+      this.$router.go(0);
+    }
   },
 };
 </script>

+ 6 - 0
src/views/TMS/components/importedShip/unloadShip.vue

@@ -15,6 +15,9 @@
       <el-button type="primary" class="btn" @click="addclick">
         <i class="el-icon-circle-plus-outline"></i>新增
       </el-button>
+      <el-button type="primary" @click="refresh()">
+        <i class="el-icon-refresh"></i>刷新
+      </el-button>
     </div>
     <dilTable v-bind.sync="option">
       <el-table-column fixed="right" label="操作" align="center" width="100">
@@ -87,6 +90,9 @@ export default {
             message: "取消删除!"
           });
         });
+    },
+    refresh(){
+      this.$router.go(0);
     }
   }
 };

+ 1292 - 394
src/views/TMS/router/index.js

@@ -1,424 +1,1322 @@
-import Vue from 'vue'
-import Router from 'vue-router'
-import routerBefore from '@/config/routerBefore.js'
+import Vue from "vue";
+import Router from "vue-router";
+import routerBefore from "@/config/routerBefore.js";
 // 主要
-import main from '@/components/main.vue'
+import main from "@/components/main.vue";
 // 系统配置管理
-import addHandlingFee from '../components/bmsport/addHandlingFee.vue'
-import handlingFee from '../components/bmsport/handlingFee.vue'
-import updateHandlingFee from '../components/bmsport/updateHandlingFee.vue'
-
-import detailsOrder from '../components/bmsship/detailsOrder.vue'
-import detailsStatement from '../components/bmsship/detailsStatement.vue'
-import lossDetailsStatement from '../components/bmsship/lossDetailsStatement.vue'
-import shipBillingFormula from '../components/bmsship/shipBillingFormula.vue'
-import bmsshipResult from '../components/bmsship/bmsshipResult.vue'
-import statementDetailsOrderShip from '../components/bmsship/statementDetailsOrderShip.vue'
-import bmsstatementDetailsOrder from '../components/bmsship/bmsstatementDetailsOrder.vue'
-import toBeStatement from '../components/bmsship/toBeStatement.vue'
-import uncomplateDetails from '../components/bmsship/uncomplateDetails.vue'
-import uncomplateWater from '../components/bmsship/uncomplateWater.vue'
-
-import addTrainDetails from '../components/bmstrain/addTrainDetails.vue'
-import detailsTrainOrder from '../components/bmstrain/detailsTrainOrder.vue'
-import detailsTrainStatement from '../components/bmstrain/detailsTrainStatement.vue'
-import statementDetailsOrder from '../components/bmstrain/statementDetailsOrder.vue'
-import trainResult from '../components/bmstrain/trainResult.vue'
-import uncomplateTrainDetails from '../components/bmstrain/uncomplateTrainDetails.vue'
-
-import detailsTruckOrder from '../components/bmstruck/detailsTruckOrder.vue'
-import truckResult from '../components/bmstruck/truckResult.vue'
-
-import approveWagonPlease from '../components/domesticMine/approveWagonPlease.vue'
-import approveWagonPleaseAdd from '../components/domesticMine/approveWagonPleaseAdd.vue'
-import approveWagonPleaseEdit from '../components/domesticMine/approveWagonPleaseEdit.vue'
+import addHandlingFee from "../components/bmsport/addHandlingFee.vue";
+import handlingFee from "../components/bmsport/handlingFee.vue";
+import updateHandlingFee from "../components/bmsport/updateHandlingFee.vue";
+
+import detailsOrder from "../components/bmsship/detailsOrder.vue";
+import detailsStatement from "../components/bmsship/detailsStatement.vue";
+import lossDetailsStatement from "../components/bmsship/lossDetailsStatement.vue";
+import shipBillingFormula from "../components/bmsship/shipBillingFormula.vue";
+import bmsshipResult from "../components/bmsship/bmsshipResult.vue";
+import statementDetailsOrderShip from "../components/bmsship/statementDetailsOrderShip.vue";
+import bmsstatementDetailsOrder from "../components/bmsship/bmsstatementDetailsOrder.vue";
+import toBeStatement from "../components/bmsship/toBeStatement.vue";
+import uncomplateDetails from "../components/bmsship/uncomplateDetails.vue";
+import uncomplateWater from "../components/bmsship/uncomplateWater.vue";
+
+import addTrainDetails from "../components/bmstrain/addTrainDetails.vue";
+import detailsTrainOrder from "../components/bmstrain/detailsTrainOrder.vue";
+import detailsTrainStatement from "../components/bmstrain/detailsTrainStatement.vue";
+import statementDetailsOrder from "../components/bmstrain/statementDetailsOrder.vue";
+import trainResult from "../components/bmstrain/trainResult.vue";
+import uncomplateTrainDetails from "../components/bmstrain/uncomplateTrainDetails.vue";
+
+import detailsTruckOrder from "../components/bmstruck/detailsTruckOrder.vue";
+import truckResult from "../components/bmstruck/truckResult.vue";
+
+import approveWagonPlease from "../components/domesticMine/approveWagonPlease.vue";
+import approveWagonPleaseAdd from "../components/domesticMine/approveWagonPleaseAdd.vue";
+import approveWagonPleaseEdit from "../components/domesticMine/approveWagonPleaseEdit.vue";
 // entrust存在重复
-import entrustMine from '../components/domesticMine/entrustMine.vue'
+import entrustMine from "../components/domesticMine/entrustMine.vue";
 // wagonLoad存在重复
-import wagonLoadMine from '../components/domesticMine/wagonLoadMine.vue'
-import wagonLoadAdd from '../components/domesticMine/wagonLoadAdd.vue'
-import wagonLoadbu from '../components/domesticMine/wagonLoadbu.vue'
-import wagonLoadEdit from '../components/domesticMine/wagonLoadEdit.vue'
+import wagonLoadMine from "../components/domesticMine/wagonLoadMine.vue";
+import wagonLoadAdd from "../components/domesticMine/wagonLoadAdd.vue";
+import wagonLoadbu from "../components/domesticMine/wagonLoadbu.vue";
+import wagonLoadEdit from "../components/domesticMine/wagonLoadEdit.vue";
 //wagonPlease存在重复
-import wagonPleaseMine from '../components/domesticMine/wagonPleaseMine.vue'
-import wagonPleaseAdd from '../components/domesticMine/wagonPleaseAdd.vue'
-import wagonPleaseEdit from '../components/domesticMine/wagonPleaseEdit.vue'
+import wagonPleaseMine from "../components/domesticMine/wagonPleaseMine.vue";
+import wagonPleaseAdd from "../components/domesticMine/wagonPleaseAdd.vue";
+import wagonPleaseEdit from "../components/domesticMine/wagonPleaseEdit.vue";
 // wagonUnLoad存在重复
-import wagonUnLoadMine from '../components/domesticMine/wagonUnLoadMine.vue'
-import wagonUnLoadAdd from '../components/domesticMine/wagonUnLoadAdd.vue'
-import wagonUnLoadEdit from '../components/domesticMine/wagonUnLoadEdit.vue'
+import wagonUnLoadMine from "../components/domesticMine/wagonUnLoadMine.vue";
+import wagonUnLoadAdd from "../components/domesticMine/wagonUnLoadAdd.vue";
+import wagonUnLoadEdit from "../components/domesticMine/wagonUnLoadEdit.vue";
 
 //import index from '../components/download/index.vue'
 //addWagonLoad存在重复
-import addWagonLoadEmergency from '../components/importedEmergency/addWagonLoadEmergency.vue'
+import addWagonLoadEmergency from "../components/importedEmergency/addWagonLoadEmergency.vue";
 //addWagonUnLoad存在重复
-import addWagonUnLoadEmergency from '../components/importedEmergency/addWagonUnLoadEmergency.vue'
+import addWagonUnLoadEmergency from "../components/importedEmergency/addWagonUnLoadEmergency.vue";
 //editWagonLoad存在重复
-import editWagonLoadEmergency from '../components/importedEmergency/editWagonLoadEmergency.vue'
+import editWagonLoadEmergency from "../components/importedEmergency/editWagonLoadEmergency.vue";
 //editWagonUnLoad存在重复
-import editWagonUnLoadEmergency from '../components/importedEmergency/editWagonUnLoadEmergency.vue'
+import editWagonUnLoadEmergency from "../components/importedEmergency/editWagonUnLoadEmergency.vue";
 //entrust存在重复
-import entrustEmergency from '../components/importedEmergency/entrustEmergency.vue'
-import trainDetails from '../components/importedEmergency/trainDetails.vue'
+import entrustEmergency from "../components/importedEmergency/entrustEmergency.vue";
+import trainDetails from "../components/importedEmergency/trainDetails.vue";
 //wagonLoad存在重复
-import wagonLoadEmergency from '../components/importedEmergency/wagonLoadEmergency.vue'
+import wagonLoadEmergency from "../components/importedEmergency/wagonLoadEmergency.vue";
 //wagonUnLoad存在重复
-import wagonUnLoadEmergency from '../components/importedEmergency/wagonUnLoadEmergency.vue'
-
-import transportReserveFuAdd from '../components/importedFuel/transportReserveFuAdd.vue'
-import transportReserveRan from '../components/importedFuel/transportReserveRan.vue'
-import transportReserveRanAdd from '../components/importedFuel/transportReserveRanAdd.vue'
-import transportReserveRanEdit from '../components/importedFuel/transportReserveRanEdit.vue'
-import truckDriverReceiveRan from '../components/importedFuel/truckDriverReceiveRan.vue'
-import truckEnfactoryRanLaoResult from '../components/importedFuel/truckEnfactoryRanLaoResult.vue'
-import truckEnfactoryRanXingResult from '../components/importedFuel/truckEnfactoryRanXingResult.vue'
-import truckJiMaoRanLaoResult from '../components/importedFuel/truckJiMaoRanLaoResult.vue'
-import truckJiMaoRanXingResult from '../components/importedFuel/truckJiMaoRanXingResult.vue'
-import truckJiPiRanLaoResult from '../components/importedFuel/truckJiPiRanLaoResult.vue'
-import truckJiPiRanXingResult from '../components/importedFuel/truckJiPiRanXingResult.vue'
-import truckLeaveFactoryRanLaoResult from '../components/importedFuel/truckLeaveFactoryRanLaoResult.vue'
-import truckLeaveFactoryRanXingResult from '../components/importedFuel/truckLeaveFactoryRanXingResult.vue'
-import truckQualityRanLaoResult from '../components/importedFuel/truckQualityRanLaoResult.vue'
-import truckQualityRanLaoResultEdit from '../components/importedFuel/truckQualityRanLaoResultEdit.vue'
-import truckQualityRanXingResult from '../components/importedFuel/truckQualityRanXingResult.vue'
-import truckQualityRanXingResultEdit from '../components/importedFuel/truckQualityRanXingResultEdit.vue'
-import truckReceiptRanLaoResult from '../components/importedFuel/truckReceiptRanLaoResult.vue'
-import truckReceiptRanXingResult from '../components/importedFuel/truckReceiptRanXingResult.vue'
-import truckUnloadRanLaoResult from '../components/importedFuel/truckUnloadRanLaoResult.vue'
-import truckUnloadRanXingResult from '../components/importedFuel/truckUnloadRanXingResult.vue'
-
-import transportReserveFu from '../components/importedIngredients/transportReserveFu.vue'
+import wagonUnLoadEmergency from "../components/importedEmergency/wagonUnLoadEmergency.vue";
+
+import transportReserveFuAdd from "../components/importedFuel/transportReserveFuAdd.vue";
+import transportReserveRan from "../components/importedFuel/transportReserveRan.vue";
+import transportReserveRanAdd from "../components/importedFuel/transportReserveRanAdd.vue";
+import transportReserveRanEdit from "../components/importedFuel/transportReserveRanEdit.vue";
+import truckDriverReceiveRan from "../components/importedFuel/truckDriverReceiveRan.vue";
+import truckEnfactoryRanLaoResult from "../components/importedFuel/truckEnfactoryRanLaoResult.vue";
+import truckEnfactoryRanXingResult from "../components/importedFuel/truckEnfactoryRanXingResult.vue";
+import truckJiMaoRanLaoResult from "../components/importedFuel/truckJiMaoRanLaoResult.vue";
+import truckJiMaoRanXingResult from "../components/importedFuel/truckJiMaoRanXingResult.vue";
+import truckJiPiRanLaoResult from "../components/importedFuel/truckJiPiRanLaoResult.vue";
+import truckJiPiRanXingResult from "../components/importedFuel/truckJiPiRanXingResult.vue";
+import truckLeaveFactoryRanLaoResult from "../components/importedFuel/truckLeaveFactoryRanLaoResult.vue";
+import truckLeaveFactoryRanXingResult from "../components/importedFuel/truckLeaveFactoryRanXingResult.vue";
+import truckQualityRanLaoResult from "../components/importedFuel/truckQualityRanLaoResult.vue";
+import truckQualityRanLaoResultEdit from "../components/importedFuel/truckQualityRanLaoResultEdit.vue";
+import truckQualityRanXingResult from "../components/importedFuel/truckQualityRanXingResult.vue";
+import truckQualityRanXingResultEdit from "../components/importedFuel/truckQualityRanXingResultEdit.vue";
+import truckReceiptRanLaoResult from "../components/importedFuel/truckReceiptRanLaoResult.vue";
+import truckReceiptRanXingResult from "../components/importedFuel/truckReceiptRanXingResult.vue";
+import truckUnloadRanLaoResult from "../components/importedFuel/truckUnloadRanLaoResult.vue";
+import truckUnloadRanXingResult from "../components/importedFuel/truckUnloadRanXingResult.vue";
+
+import transportReserveFu from "../components/importedIngredients/transportReserveFu.vue";
 // transportReserveFuAdd重复使用
-import transportReserveFuAddIngredients from '../components/importedIngredients/transportReserveFuAddIngredients.vue'
-import transportReserveFuEdit from '../components/importedIngredients/transportReserveFuEdit.vue'
-import truckDriverReceiveFu from '../components/importedIngredients/truckDriverReceiveFu.vue'
-import truckEnfactoryFuResult from '../components/importedIngredients/truckEnfactoryFuResult.vue'
-import truckJiMaoFuResult from '../components/importedIngredients/truckJiMaoFuResult.vue'
-import truckJiPiFuResult from '../components/importedIngredients/truckJiPiFuResult.vue'
-import truckLeaveFactoryFuResult from '../components/importedIngredients/truckLeaveFactoryFuResult.vue'
-import truckQualityFuResult from '../components/importedIngredients/truckQualityFuResult.vue'
-import truckQualityFuResultEdit from '../components/importedIngredients/truckQualityFuResultEdit.vue'
-import truckReceiptFuResult from '../components/importedIngredients/truckReceiptFuResult.vue'
-import truckReturnResult from '../components/importedIngredients/truckReturnResult.vue'
-import truckUnloadFuResult from '../components/importedIngredients/truckUnloadFuResult.vue'
-import getTransportOrder from '../components/importedFuel/getTransportOrder.vue'
-
-
-
-import addApproveWagonPlease from '../components/importedMine/addApproveWagonPlease.vue'
-import addWagonLoad from '../components/importedMine/addWagonLoad.vue'
-import addWagonPlease from '../components/importedMine/addWagonPlease.vue'
-import addWagonUnLoad from '../components/importedMine/addWagonUnLoad.vue'
-import editApproveWagonPlease from '../components/importedMine/editApproveWagonPlease.vue'
-import editWagonLoad from '../components/importedMine/editWagonLoad.vue'
-import editWagonPlease from '../components/importedMine/editWagonPlease.vue'
-import editWagonUnLoad from '../components/importedMine/editWagonUnLoad.vue'
-import entrust from '../components/importedMine/entrust.vue'
-import wagonApprove from '../components/importedMine/wagonApprove.vue'
-import wagonLoad from '../components/importedMine/wagonLoad.vue'
-import wagonPlease from '../components/importedMine/wagonPlease.vue'
-import wagonUnLoad from '../components//importedMine/wagonUnLoad.vue'
-
-import addBargeShip from '../components/importedShip/addBargeShip.vue'
-import addLoadShip from '../components/importedShip/addLoadShip.vue'
-import addShipLocation from '../components/importedShip/addShipLocation.vue'
-import addShipmentInstructions from '../components/importedShip/addShipmentInstructions.vue'
-import addUnloadShip from '../components/importedShip/addUnloadShip.vue'
-import addWaterQuality from '../components/importedShip/addWaterQuality.vue'
-import bargeShip from '../components/importedShip/bargeShip.vue'
-import instructionsCapacity from '../components/importedShip/instructionsCapacity.vue'
-import loadShip from '../components/importedShip/loadShip.vue'
-import shipLocation from '../components/importedShip/shipLocation.vue'
-import shipmentInstructions from '../components/importedShip/shipmentInstructions.vue'
-import shipResult from '../components/importedShip/shipResult.vue'
-import unloadShip from '../components/importedShip/unloadShip.vue'
-import updateBargeShip from '../components/importedShip/updateBargeShip.vue'
-import updateInstructionsCapacity from '../components/importedShip/updateInstructionsCapacity.vue'
-import updateShipLocation from '../components/importedShip/updateShipLocation'
-import updateShipmentInstructions from '../components/importedShip/updateShipmentInstructions'
-import updateUnloadShip from '../components/importedShip/updateUnloadShip.vue'
-import updateWaterQuality from '../components/importedShip/updateWaterQuality.vue'
-import updateLoadShip from '../components/importedShip/updateLoadShip.vue'
-import waterQuality from '../components/importedShip/waterQuality.vue'
-
-import assignmentPlan from '../components/importedTruck/assignmentPlan.vue'
-import breakdownPlan from '../components/importedTruck/breakdownPlan.vue'
-import breakdownPlanAdd from '../components/importedTruck/breakdownPlanAdd.vue'
-import breakdownPlanCheck from '../components/importedTruck/breakdownPlanCheck.vue'
-import breakdownPlanEdit from '../components/importedTruck/breakdownPlanEdit.vue'
-import submitWaybill from '../components/importedTruck/submitWaybill.vue'
-import transportReserve from '../components/importedTruck/transportReserve.vue'
-import transportReserveAdd from '../components/importedTruck/transportReserveAdd.vue'
-import transportReserveEdit from '../components/importedTruck/transportReserveEdit.vue'
-import truckDriverReceive from '../components/importedTruck/truckDriverReceive.vue'
-import truckEnfactoryResult from '../components/importedTruck/truckEnfactoryResult.vue'
-import truckJiMaoResult from '../components/importedTruck/truckJiMaoResult.vue'
-import truckJiPiResult from '../components/importedTruck/truckJiPiResult.vue'
-import truckLeaveFactoryResult from '../components/importedTruck/truckLeaveFactoryResult.vue'
-import truckLoadResult from '../components/importedTruck/truckLoadResult.vue'
-import truckLoadResultAdd from '../components/importedTruck/truckLoadResultAdd.vue'
-import truckLoadResultEdit from '../components/importedTruck/truckLoadResultEdit.vue'
-import truckQualityResult from '../components/importedTruck/truckQualityResult.vue'
-import truckQualityResultEdit from '../components/importedTruck/truckQualityResultEdit.vue'
-import truckReceiptResult from '../components/importedTruck/truckReceiptResult.vue'
-import truckUnloadResult from '../components/importedTruck/truckUnloadResult.vue'
-
-import addBreach from '../components/purchase/addBreach.vue'
-import addOtherPrice from '../components/purchase/addOtherPrice.vue'
-import addShipPrice from '../components/purchase/addShipPrice.vue'
-import addTrainPrice from '../components/purchase/addTrainPrice.vue'
-import addTruckPrice from '../components/purchase/addTruckPrice.vue'
-import breach from '../components/purchase/breach.vue'
-import otherPrice from '../components/purchase/otherPrice.vue'
-import purchaseOrder from '../components/purchase/purchaseOrder.vue'
-import shipPrice from '../components/purchase/shipPrice.vue'
-import trainPrice from '../components/purchase/trainPrice.vue'
-import truckPrice from '../components/purchase/truckPrice.vue'
-import updateBreach from '../components/purchase/updateBreach.vue'
-import updateOtherPrice from '../components/purchase/updateOtherPrice.vue'
-import updateShipPrice from '../components/purchase/updateShipPrice.vue'
-import updateTrainPrice from '../components/purchase/updateTrainPrice.vue'
-import updateTruckPrice from '../components/purchase/updateTruckPrice.vue'
-
-import transportationReservation from '../components/purchaseChemicalMaterials/transportationReservation.vue'
-import transportationReservationAdd from '../components/purchaseChemicalMaterials/transportationReservationAdd.vue'
-import transportationReservationEDIT from '../components/purchaseChemicalMaterials/transportationReservationEDIT.vue'
-import transportationDispatch from '../components/purchaseChemicalMaterials/transportationDispatch.vue'
-import dischargeCargoNew from '../components/purchaseChemicalMaterials/purchaseChemicalMaterialsNEW/dischargeCargoNew.vue'
-import enterFactoryNew from '../components/purchaseChemicalMaterials/purchaseChemicalMaterialsNEW/enterFactoryNew.vue'
-import exFactoryNew from '../components/purchaseChemicalMaterials/purchaseChemicalMaterialsNEW/exFactoryNew.vue'
-import qualityTestingNew from '../components/purchaseChemicalMaterials/purchaseChemicalMaterialsNEW/qualityTestingNew.vue'
-import receivingNew from '../components/purchaseChemicalMaterials/purchaseChemicalMaterialsNEW/receivingNew.vue'
-import skinCountingNew from '../components/purchaseChemicalMaterials/purchaseChemicalMaterialsNEW/skinCountingNew.vue'
-import woolCountingNew from '../components/purchaseChemicalMaterials/purchaseChemicalMaterialsNEW/woolCountingNew.vue'
-
-import dischargeCargoOld from '../components/purchaseChemicalMaterials/purchaseChemicalMaterialsOLD/dischargeCargoOld.vue'
-import enterFactoryOld from '../components/purchaseChemicalMaterials/purchaseChemicalMaterialsOLD/enterFactoryOld.vue'
-import exFactoryOld from '../components/purchaseChemicalMaterials/purchaseChemicalMaterialsOLD/exFactoryOld.vue'
-import qualityTestingOld from '../components/purchaseChemicalMaterials/purchaseChemicalMaterialsOLD/qualityTestingOld.vue'
-import receivingOld from '../components/purchaseChemicalMaterials/purchaseChemicalMaterialsOLD/receivingOld.vue'
-import skinCountingOld from '../components/purchaseChemicalMaterials/purchaseChemicalMaterialsOLD/skinCountingOld.vue'
-import woolCountingOld from '../components/purchaseChemicalMaterials/purchaseChemicalMaterialsOLD/woolCountingOld.vue'
-
-import mineralTransportAppoint from '../components/importedMineral/transportAppoint.vue'
-import addMineralTransportAppoint from '../components/importedMineral/addTransportAppoint.vue'
-import mineralTransportOrder from '../components/importedMineral/transportOrder.vue'
-import mineralEnfactory from '../components/importedMineral/transportExcute/enfactory.vue'
-import mineralOutfactory from '../components/importedMineral/transportExcute/outfactory.vue'
-import mineralGrossResult from '../components/importedMineral/transportExcute/grossResult.vue'
-import mineralTareResult from '../components/importedMineral/transportExcute/tareResult.vue'
-import mineralUnload from '../components/importedMineral/transportExcute/unload.vue'
-import mineralQuality from '../components/importedMineral/transportExcute/qualityResult.vue'
-import shipmentInstructionText from '../components/importedShip/shipmentInstructionText.vue'
-Vue.use(Router)
+import transportReserveFuAddIngredients from "../components/importedIngredients/transportReserveFuAddIngredients.vue";
+import transportReserveFuEdit from "../components/importedIngredients/transportReserveFuEdit.vue";
+import truckDriverReceiveFu from "../components/importedIngredients/truckDriverReceiveFu.vue";
+import truckEnfactoryFuResult from "../components/importedIngredients/truckEnfactoryFuResult.vue";
+import truckJiMaoFuResult from "../components/importedIngredients/truckJiMaoFuResult.vue";
+import truckJiPiFuResult from "../components/importedIngredients/truckJiPiFuResult.vue";
+import truckLeaveFactoryFuResult from "../components/importedIngredients/truckLeaveFactoryFuResult.vue";
+import truckQualityFuResult from "../components/importedIngredients/truckQualityFuResult.vue";
+import truckQualityFuResultEdit from "../components/importedIngredients/truckQualityFuResultEdit.vue";
+import truckReceiptFuResult from "../components/importedIngredients/truckReceiptFuResult.vue";
+import truckReturnResult from "../components/importedIngredients/truckReturnResult.vue";
+import truckUnloadFuResult from "../components/importedIngredients/truckUnloadFuResult.vue";
+import getTransportOrder from "../components/importedFuel/getTransportOrder.vue";
+
+import addApproveWagonPlease from "../components/importedMine/addApproveWagonPlease.vue";
+import addWagonLoad from "../components/importedMine/addWagonLoad.vue";
+import addWagonPlease from "../components/importedMine/addWagonPlease.vue";
+import addWagonUnLoad from "../components/importedMine/addWagonUnLoad.vue";
+import editApproveWagonPlease from "../components/importedMine/editApproveWagonPlease.vue";
+import editWagonLoad from "../components/importedMine/editWagonLoad.vue";
+import editWagonPlease from "../components/importedMine/editWagonPlease.vue";
+import editWagonUnLoad from "../components/importedMine/editWagonUnLoad.vue";
+import entrust from "../components/importedMine/entrust.vue";
+import wagonApprove from "../components/importedMine/wagonApprove.vue";
+import wagonLoad from "../components/importedMine/wagonLoad.vue";
+import wagonPlease from "../components/importedMine/wagonPlease.vue";
+import wagonUnLoad from "../components//importedMine/wagonUnLoad.vue";
+
+import addBargeShip from "../components/importedShip/addBargeShip.vue";
+import addLoadShip from "../components/importedShip/addLoadShip.vue";
+import addShipLocation from "../components/importedShip/addShipLocation.vue";
+import addShipmentInstructions from "../components/importedShip/addShipmentInstructions.vue";
+import addUnloadShip from "../components/importedShip/addUnloadShip.vue";
+import addWaterQuality from "../components/importedShip/addWaterQuality.vue";
+import bargeShip from "../components/importedShip/bargeShip.vue";
+import instructionsCapacity from "../components/importedShip/instructionsCapacity.vue";
+import loadShip from "../components/importedShip/loadShip.vue";
+import shipLocation from "../components/importedShip/shipLocation.vue";
+import shipmentInstructions from "../components/importedShip/shipmentInstructions.vue";
+import shipResult from "../components/importedShip/shipResult.vue";
+import unloadShip from "../components/importedShip/unloadShip.vue";
+import updateBargeShip from "../components/importedShip/updateBargeShip.vue";
+import updateInstructionsCapacity from "../components/importedShip/updateInstructionsCapacity.vue";
+import updateShipLocation from "../components/importedShip/updateShipLocation";
+import updateShipmentInstructions from "../components/importedShip/updateShipmentInstructions";
+import updateUnloadShip from "../components/importedShip/updateUnloadShip.vue";
+import updateWaterQuality from "../components/importedShip/updateWaterQuality.vue";
+import updateLoadShip from "../components/importedShip/updateLoadShip.vue";
+import waterQuality from "../components/importedShip/waterQuality.vue";
+
+import assignmentPlan from "../components/importedTruck/assignmentPlan.vue";
+import breakdownPlan from "../components/importedTruck/breakdownPlan.vue";
+import breakdownPlanAdd from "../components/importedTruck/breakdownPlanAdd.vue";
+import breakdownPlanCheck from "../components/importedTruck/breakdownPlanCheck.vue";
+import breakdownPlanEdit from "../components/importedTruck/breakdownPlanEdit.vue";
+import submitWaybill from "../components/importedTruck/submitWaybill.vue";
+import transportReserve from "../components/importedTruck/transportReserve.vue";
+import transportReserveAdd from "../components/importedTruck/transportReserveAdd.vue";
+import transportReserveEdit from "../components/importedTruck/transportReserveEdit.vue";
+import truckDriverReceive from "../components/importedTruck/truckDriverReceive.vue";
+import truckEnfactoryResult from "../components/importedTruck/truckEnfactoryResult.vue";
+import truckJiMaoResult from "../components/importedTruck/truckJiMaoResult.vue";
+import truckJiPiResult from "../components/importedTruck/truckJiPiResult.vue";
+import truckLeaveFactoryResult from "../components/importedTruck/truckLeaveFactoryResult.vue";
+import truckLoadResult from "../components/importedTruck/truckLoadResult.vue";
+import truckLoadResultAdd from "../components/importedTruck/truckLoadResultAdd.vue";
+import truckLoadResultEdit from "../components/importedTruck/truckLoadResultEdit.vue";
+import truckQualityResult from "../components/importedTruck/truckQualityResult.vue";
+import truckQualityResultEdit from "../components/importedTruck/truckQualityResultEdit.vue";
+import truckReceiptResult from "../components/importedTruck/truckReceiptResult.vue";
+import truckUnloadResult from "../components/importedTruck/truckUnloadResult.vue";
+
+import addBreach from "../components/purchase/addBreach.vue";
+import addOtherPrice from "../components/purchase/addOtherPrice.vue";
+import addShipPrice from "../components/purchase/addShipPrice.vue";
+import addTrainPrice from "../components/purchase/addTrainPrice.vue";
+import addTruckPrice from "../components/purchase/addTruckPrice.vue";
+import breach from "../components/purchase/breach.vue";
+import otherPrice from "../components/purchase/otherPrice.vue";
+import purchaseOrder from "../components/purchase/purchaseOrder.vue";
+import shipPrice from "../components/purchase/shipPrice.vue";
+import trainPrice from "../components/purchase/trainPrice.vue";
+import truckPrice from "../components/purchase/truckPrice.vue";
+import updateBreach from "../components/purchase/updateBreach.vue";
+import updateOtherPrice from "../components/purchase/updateOtherPrice.vue";
+import updateShipPrice from "../components/purchase/updateShipPrice.vue";
+import updateTrainPrice from "../components/purchase/updateTrainPrice.vue";
+import updateTruckPrice from "../components/purchase/updateTruckPrice.vue";
+
+import transportationReservation from "../components/purchaseChemicalMaterials/transportationReservation.vue";
+import transportationReservationAdd from "../components/purchaseChemicalMaterials/transportationReservationAdd.vue";
+import transportationReservationEDIT from "../components/purchaseChemicalMaterials/transportationReservationEDIT.vue";
+import transportationDispatch from "../components/purchaseChemicalMaterials/transportationDispatch.vue";
+import dischargeCargoNew from "../components/purchaseChemicalMaterials/purchaseChemicalMaterialsNEW/dischargeCargoNew.vue";
+import enterFactoryNew from "../components/purchaseChemicalMaterials/purchaseChemicalMaterialsNEW/enterFactoryNew.vue";
+import exFactoryNew from "../components/purchaseChemicalMaterials/purchaseChemicalMaterialsNEW/exFactoryNew.vue";
+import qualityTestingNew from "../components/purchaseChemicalMaterials/purchaseChemicalMaterialsNEW/qualityTestingNew.vue";
+import receivingNew from "../components/purchaseChemicalMaterials/purchaseChemicalMaterialsNEW/receivingNew.vue";
+import skinCountingNew from "../components/purchaseChemicalMaterials/purchaseChemicalMaterialsNEW/skinCountingNew.vue";
+import woolCountingNew from "../components/purchaseChemicalMaterials/purchaseChemicalMaterialsNEW/woolCountingNew.vue";
+
+import dischargeCargoOld from "../components/purchaseChemicalMaterials/purchaseChemicalMaterialsOLD/dischargeCargoOld.vue";
+import enterFactoryOld from "../components/purchaseChemicalMaterials/purchaseChemicalMaterialsOLD/enterFactoryOld.vue";
+import exFactoryOld from "../components/purchaseChemicalMaterials/purchaseChemicalMaterialsOLD/exFactoryOld.vue";
+import qualityTestingOld from "../components/purchaseChemicalMaterials/purchaseChemicalMaterialsOLD/qualityTestingOld.vue";
+import receivingOld from "../components/purchaseChemicalMaterials/purchaseChemicalMaterialsOLD/receivingOld.vue";
+import skinCountingOld from "../components/purchaseChemicalMaterials/purchaseChemicalMaterialsOLD/skinCountingOld.vue";
+import woolCountingOld from "../components/purchaseChemicalMaterials/purchaseChemicalMaterialsOLD/woolCountingOld.vue";
+
+import mineralTransportAppoint from "../components/importedMineral/transportAppoint.vue";
+import addMineralTransportAppoint from "../components/importedMineral/addTransportAppoint.vue";
+import mineralTransportOrder from "../components/importedMineral/transportOrder.vue";
+import mineralEnfactory from "../components/importedMineral/transportExcute/enfactory.vue";
+import mineralOutfactory from "../components/importedMineral/transportExcute/outfactory.vue";
+import mineralGrossResult from "../components/importedMineral/transportExcute/grossResult.vue";
+import mineralTareResult from "../components/importedMineral/transportExcute/tareResult.vue";
+import mineralUnload from "../components/importedMineral/transportExcute/unload.vue";
+import mineralQuality from "../components/importedMineral/transportExcute/qualityResult.vue";
+import shipmentInstructionText from "../components/importedShip/shipmentInstructionText.vue";
+
+import addWagonLoadCopy from "../components/importedMine/addWagonloadCopy.vue";
+import outBoundWagon from "../components/importedMine/outBoundWagon.vue";
+Vue.use(Router);
 
 const constantRouterMap = [
   {
-    path: '/',
-    name: 'main',
-    meta: {title: '首页', code: 'xtpzgl'},
+    path: "/",
+    name: "main",
+    meta: { title: "首页", code: "xtpzgl" },
     component: main,
-    redirect: {name: 'addApproveWagonPlease'},
+    redirect: { name: "addApproveWagonPlease" },
     children: [
-      {path: 'dischargeCargoNew', name: 'dischargeCargoNew', meta: {code: 'xtpzgl-jggl'}, component: dischargeCargoNew},
-      {path: 'enterFactoryNew', name: 'enterFactoryNew', meta: {code: 'xtpzgl-jggl'}, component: enterFactoryNew},
-      {path: 'exFactoryNew', name: 'exFactoryNew', meta: {code: 'xtpzgl-jggl'}, component: exFactoryNew},
-      {path: 'qualityTestingNew', name: 'qualityTestingNew', meta: {code: 'xtpzgl-jggl'}, component: qualityTestingNew},
-      {path: 'receivingNew', name: 'receivingNew', meta: {code: 'xtpzgl-jggl'}, component: receivingNew},
-      {path: 'skinCountingNew', name: 'skinCountingNew', meta: {code: 'xtpzgl-jggl'}, component: skinCountingNew},
-      {path: 'woolCountingNew', name: 'woolCountingNew', meta: {code: 'xtpzgl-jggl'}, component: woolCountingNew},
-      {path: 'addHandlingFee', name: 'addHandlingFee', meta: {code: 'xtpzgl-jggl'}, component: addHandlingFee},
-      {path: 'handlingFee', name: 'handlingFee', meta: {code: 'xtpzgl-yhgl'}, component: handlingFee},
-      {path: 'updateHandlingFee/:feeId', name: 'updateHandlingFee', meta: {code: 'xtpzgl-yhgl'}, component: updateHandlingFee},
-      
-      {path: 'detailsOrder', name: 'detailsOrder', meta: {code: 'xtpzgl-yhgl'}, component: detailsOrder},
-      {path: 'detailsStatement', name: 'detailsStatement', meta: {code: 'xtpzgl-yhgl'}, component: detailsStatement},
-      {path: 'lossDetailsStatement', name: 'lossDetailsStatement', meta: {code: 'xtpzgl-yhgl'}, component: lossDetailsStatement},
-      {path: 'shipBillingFormula', name: 'shipBillingFormula', meta: {code: 'xtpzgl-yhgl'}, component: shipBillingFormula},
-      {path: 'bmsstatementDetailsOrder/:batchId', name: 'bmsstatementDetailsOrder', meta: {code: 'xtpzgl-yhgl'}, component: bmsstatementDetailsOrder},
-      {path: 'bmsshipResult', name: 'bmsshipResult', meta: {code: 'xtpzgl-yhgl'}, component: bmsshipResult},
-      {path: 'toBeStatement', name: 'toBeStatement', meta: {code: 'xtpzgl-yhgl'}, component: toBeStatement},
-      {path: 'uncomplateDetails', name: 'uncomplateDetails', meta: {code: 'xtpzgl-yhgl'}, component: uncomplateDetails},
-      {path: 'uncomplateWater', name: 'uncomplateWater', meta: {code: 'xtpzgl-yhgl'}, component: uncomplateWater},
-      {path: 'statementDetailsOrderShip/:batchId', name: 'statementDetailsOrderShip', meta: {code: 'xtpzgl-yhgl'}, component: statementDetailsOrderShip},
-
-      {path: 'addTrainDetails', name: 'addTrainDetails', meta: {code: 'xtpzgl-yhgl'}, component: addTrainDetails},
-      {path: 'detailsTrainStatement', name: 'detailsTrainStatement', meta: {code: 'xtpzgl-yhgl'}, component: detailsTrainStatement},
-      {path: 'detailsTrainOrder', name: 'detailsTrainOrder', meta: {code: 'xtpzgl-yhgl'}, component: detailsTrainOrder},
-      {path: 'statementDetailsOrder/:batchId', name: 'statementDetailsOrder', meta: {code: 'xtpzgl-yhgl'}, component: statementDetailsOrder},
-      {path: 'trainResult', name: 'trainResult', meta: {code: 'xtpzgl-yhgl'}, component: trainResult},
-      {path: 'uncomplateTrainDetails', name: 'uncomplateTrainDetails', meta: {code: 'xtpzgl-yhgl'}, component: uncomplateTrainDetails},
-      
-      {path: 'detailsTruckOrder', name: 'detailsTruckOrder', meta: {code: 'xtpzgl-yhgl'}, component: detailsTruckOrder},
-      {path: 'truckResult', name: 'truckResult', meta: {code: 'xtpzgl-yhgl'}, component: truckResult},
-
-      {path: 'approveWagonPlease', name: 'approveWagonPlease', meta: {code: 'xtpzgl-yhgl'}, component: approveWagonPlease},
-      {path: 'approveWagonPleaseAdd', name: 'approveWagonPleaseAdd', meta: {code: 'xtpzgl-yhgl'}, component: approveWagonPleaseAdd},
-      {path: 'approveWagonPleaseEdit/:resultId', name: 'approveWagonPleaseEdit', meta: {code: 'xtpzgl-yhgl'}, component: approveWagonPleaseEdit},
-      {path: 'entrustMine', name: 'entrustMine', meta: {code: 'xtpzgl-yhgl'}, component: entrustMine},
-      {path: 'wagonLoadMine', name: 'wagonLoadMine', meta: {code: 'xtpzgl-yhgl'}, component: wagonLoadMine},
-      {path: 'wagonLoadbu', name: 'wagonLoadbu', meta: {code: 'xtpzgl-yhgl'}, component: wagonLoadbu},
-      {path: 'wagonLoadAdd', name: 'wagonLoadAdd', meta: {code: 'xtpzgl-yhgl'}, component: wagonLoadAdd},
-      {path: 'wagonLoadEdit/:resultId', name: 'wagonLoadEdit', meta: {code: 'xtpzgl-yhgl'}, component: wagonLoadEdit},
-      {path: 'wagonPleaseMine', name: 'wagonPleaseMine', meta: {code: 'xtpzgl-yhgl'}, component: wagonPleaseMine},
-      {path: 'wagonPleaseAdd', name: 'wagonPleaseAdd', meta: {code: 'xtpzgl-yhgl'}, component: wagonPleaseAdd},
-      {path: 'wagonPleaseEdit/:resultId', name: 'wagonPleaseEdit', meta: {code: 'xtpzgl-yhgl'}, component: wagonPleaseEdit},
-      {path: 'wagonUnLoadAdd', name: 'wagonUnLoadAdd', meta: {code: 'xtpzgl-yhgl'}, component: wagonUnLoadAdd},
-      {path: 'wagonUnLoadMine', name: 'wagonUnLoadMine', meta: {code: 'xtpzgl-yhgl'}, component: wagonUnLoadMine},
-      {path: 'wagonUnLoadEdit/:unloadingId', name: 'wagonUnLoadEdit', meta: {code: 'xtpzgl-yhgl'}, component: wagonUnLoadEdit},
-    //  {path: 'index', name: 'index', meta: {code: 'xtpzgl-yhgl'}, component: index},
-
-      {path: 'addWagonLoadEmergency', name: 'addWagonLoadEmergency', meta: {code: 'xtpzgl-yhgl'}, component: addWagonLoadEmergency},
-      {path: 'addWagonUnLoadEmergency', name: 'addWagonUnLoadEmergency', meta: {code: 'xtpzgl-yhgl'}, component: addWagonUnLoadEmergency},
-      {path: 'editWagonUnLoadEmergency/:unloadingId', name: 'editWagonUnLoadEmergency', meta: {code: 'xtpzgl-yhgl'}, component: editWagonUnLoadEmergency},
-      {path: 'editWagonLoadEmergency/:unloadingId', name: 'editWagonLoadEmergency', meta: {code: 'xtpzgl-yhgl'}, component: editWagonLoadEmergency},
-      {path: 'entrustEmergency', name: 'entrustEmergency', meta: {code: 'xtpzgl-yhgl'}, component: entrustEmergency},
-      {path: 'trainDetails', name: 'trainDetails', meta: {code: 'xtpzgl-yhgl'}, component: trainDetails},
-      {path: 'wagonLoadEmergency', name: 'wagonLoadEmergency', meta: {code: 'xtpzgl-yhgl'}, component: wagonLoadEmergency},
-      {path: 'wagonUnLoadEmergency', name: 'wagonUnLoadEmergency', meta: {code: 'xtpzgl-yhgl'}, component: wagonUnLoadEmergency},
-
-      {path: 'transportReserveFuAdd', name: 'transportReserveFuAdd', meta: {code: 'xtpzgl-yhgl'}, component: transportReserveFuAdd},
-      {path: 'transportReserveRan', name: 'transportReserveRan', meta: {code: 'xtpzgl-yhgl'}, component: transportReserveRan},
-      {path: 'transportReserveRanEdit/:orderId', name: 'transportReserveRanEdit', meta: {code: 'xtpzgl-yhgl'}, component: transportReserveRanEdit},
-      {path: 'transportReserveRanAdd', name: 'transportReserveRanAdd', meta: {code: 'xtpzgl-yhgl'}, component: transportReserveRanAdd},
-      {path: 'truckDriverReceiveRan', name: 'truckDriverReceiveRan', meta: {code: 'xtpzgl-yhgl'}, component: truckDriverReceiveRan},
-      {path: 'truckEnfactoryRanLaoResult', name: 'truckEnfactoryRanLaoResult', meta: {code: 'xtpzgl-yhgl'}, component: truckEnfactoryRanLaoResult},
-      {path: 'truckEnfactoryRanXingResult', name: 'truckEnfactoryRanXingResult', meta: {code: 'xtpzgl-yhgl'}, component: truckEnfactoryRanXingResult},
-      {path: 'truckJiMaoRanLaoResult', name: 'truckJiMaoRanLaoResult', meta: {code: 'xtpzgl-yhgl'}, component: truckJiMaoRanLaoResult},
-      {path: 'truckJiPiRanLaoResult', name: 'truckJiPiRanLaoResult', meta: {code: 'xtpzgl-yhgl'}, component: truckJiPiRanLaoResult},
-      {path: 'truckJiMaoRanXingResult', name: 'truckJiMaoRanXingResult', meta: {code: 'xtpzgl-yhgl'}, component: truckJiMaoRanXingResult},
-      {path: 'truckJiPiRanXingResult', name: 'truckJiPiRanXingResult', meta: {code: 'xtpzgl-yhgl'}, component: truckJiPiRanXingResult},
-      {path: 'truckLeaveFactoryRanLaoResult', name: 'truckLeaveFactoryRanLaoResult', meta: {code: 'xtpzgl-yhgl'}, component: truckLeaveFactoryRanLaoResult},
-      {path: 'truckLeaveFactoryRanXingResult', name: 'truckLeaveFactoryRanXingResult', meta: {code: 'xtpzgl-yhgl'}, component: truckLeaveFactoryRanXingResult},
-      {path: 'truckQualityRanLaoResult', name: 'truckQualityRanLaoResult', meta: {code: 'xtpzgl-yhgl'}, component: truckQualityRanLaoResult},
-      {path: 'truckQualityRanXingResult', name: 'truckQualityRanXingResult', meta: {code: 'xtpzgl-yhgl'}, component: truckQualityRanXingResult},
-      {path: 'truckQualityRanLaoResultEdit', name: 'truckQualityRanLaoResultEdit', meta: {code: 'xtpzgl-yhgl'}, component: truckQualityRanLaoResultEdit},
-      {path: 'truckQualityRanXingResultEdit', name: 'truckQualityRanXingResultEdit', meta: {code: 'xtpzgl-yhgl'}, component: truckQualityRanXingResultEdit},
-      {path: 'truckReceiptRanLaoResult', name: 'truckReceiptRanLaoResult', meta: {code: 'xtpzgl-yhgl'}, component: truckReceiptRanLaoResult},
-      {path: 'truckReceiptRanXingResult', name: 'truckReceiptRanXingResult', meta: {code: 'xtpzgl-yhgl'}, component: truckReceiptRanXingResult},
-      {path: 'truckUnloadRanLaoResult', name: 'truckUnloadRanLaoResult', meta: {code: 'xtpzgl-yhgl'}, component: truckUnloadRanLaoResult},
-      {path: 'truckUnloadRanXingResult', name: 'truckUnloadRanXingResult', meta: {code: 'xtpzgl-yhgl'}, component: truckUnloadRanXingResult},
-
-      {path: 'transportReserveFu', name: 'transportReserveFu', meta: {code: 'xtpzgl-yhgl'}, component: transportReserveFu},
-      {path: 'truckLeaveFactoryFuResult', name: 'truckLeaveFactoryFuResult', meta: {code: 'xtpzgl-yhgl'}, component: truckLeaveFactoryFuResult},
-      {path: 'truckQualityFuResult', name: 'truckQualityFuResult', meta: {code: 'xtpzgl-yhgl'}, component: truckQualityFuResult},
-      {path: 'truckQualityFuResultEdit', name: 'truckQualityFuResultEdit', meta: {code: 'xtpzgl-yhgl'}, component: truckQualityFuResultEdit},
-      {path: 'truckReturnResult', name: 'truckReturnResult', meta: {code: 'xtpzgl-yhgl'}, component: truckReturnResult},
-      {path: 'truckUnloadFuResult', name: 'truckUnloadFuResult', meta: {code: 'xtpzgl-yhgl'}, component: truckUnloadFuResult},
-      {path: 'transportReserveFuEdit/:orderId', name: 'transportReserveFuEdit', meta: {code: 'xtpzgl-yhgl'}, component: transportReserveFuEdit},
-      {path: 'truckDriverReceiveFu', name: 'truckDriverReceiveFu', meta: {code: 'xtpzgl-yhgl'}, component: truckDriverReceiveFu},
-      {path: 'truckEnfactoryFuResult', name: 'truckEnfactoryFuResult', meta: {code: 'xtpzgl-yhgl'}, component: truckEnfactoryFuResult},
-      {path: 'truckJiMaoFuResult', name: 'truckJiMaoFuResult', meta: {code: 'xtpzgl-yhgl'}, component: truckJiMaoFuResult},
-      {path: 'truckJiPiFuResult', name: 'truckJiPiFuResult', meta: {code: 'xtpzgl-yhgl'}, component: truckJiPiFuResult},
-      {path: 'truckReceiptFuResult', name: 'truckReceiptFuResult', meta: {code: 'xtpzgl-yhgl'}, component: truckReceiptFuResult},
-      {path: 'transportReserveFuAddIngredients', name: 'transportReserveFuAddIngredients', meta: {code: 'xtpzgl-yhgl'}, component: transportReserveFuAddIngredients},
-
-      {path: 'addApproveWagonPlease', name: 'addApproveWagonPlease', meta: {code: 'xtpzgl-jggl'}, component: addApproveWagonPlease},
-      {path: 'addWagonLoad', name: 'addWagonLoad', meta: {code: 'xtpzgl-yhgl'}, component: addWagonLoad},
-      {path: 'addWagonPlease', name: 'addWagonPlease', meta: {code: 'xtpzgl-yhgl'}, component: addWagonPlease},
-      {path: 'addWagonUnLoad', name: 'addWagonUnLoad', meta: {code: 'xtpzgl-yhgl'}, component: addWagonUnLoad},
-      {path: 'editApproveWagonPlease/:resultId', name: 'editApproveWagonPlease', meta: {code: 'xtpzgl-yhgl'}, component: editApproveWagonPlease},
-      {path: 'editWagonLoad/:resultId', name: 'editWagonLoad', meta: {code: 'xtpzgl-yhgl'}, component: editWagonLoad},
-      {path: 'editWagonPlease/:resultId', name: 'editWagonPlease', meta: {code: 'xtpzgl-yhgl'}, component: editWagonPlease},
-      {path: 'editWagonUnLoad/:unloadingId', name: 'editWagonUnLoad', meta: {code: 'xtpzgl-yhgl'}, component: editWagonUnLoad},
-      {path: 'entrust', name: 'entrust', meta: {code: 'xtpzgl-yhgl'}, component: entrust},
-      {path: 'wagonApprove', name: 'wagonApprove', meta: {code: 'xtpzgl-yhgl'}, component: wagonApprove},
-      {path: 'wagonLoad', name: 'wagonLoad', meta: {code: 'xtpzgl-yhgl'}, component: wagonLoad},
-      {path: 'wagonPlease', name: 'wagonPlease', meta: {code: 'xtpzgl-yhgl'}, component: wagonPlease},
-      {path: 'wagonUnLoad', name: 'wagonUnLoad', meta: {code: 'xtpzgl-yhgl'}, component: wagonUnLoad},
-      
-      {path: 'addBargeShip', name: 'addBargeShip', meta: {code: 'xtpzgl-jggl'}, component: addBargeShip},
-      {path: 'addLoadShip', name: 'addLoadShip', meta: {code: 'xtpzgl-yhgl'}, component: addLoadShip},
-      {path: 'addShipLocation', name: 'addShipLocation', meta: {code: 'xtpzgl-yhgl'}, component: addShipLocation},
-      {path: 'addShipmentInstructions', name: 'addShipmentInstructions', meta: {code: 'xtpzgl-yhgl'}, component: addShipmentInstructions},
-      {path: 'addUnloadShip', name: 'addUnloadShip', meta: {code: 'xtpzgl-yhgl'}, component: addUnloadShip},
-      {path: 'addWaterQuality', name: 'addWaterQuality', meta: {code: 'xtpzgl-yhgl'}, component: addWaterQuality},
-      {path: 'bargeShip', name: 'bargeShip', meta: {code: 'xtpzgl-yhgl'}, component: bargeShip},
-      {path: 'instructionsCapacity/:instructionsId', name: 'instructionsCapacity', meta: {code: 'xtpzgl-yhgl'}, component: instructionsCapacity},
-      {path: 'loadShip', name: 'loadShip', meta: {code: 'xtpzgl-yhgl'}, component: loadShip},
-      {path: 'shipLocation', name: 'shipLocation', meta: {code: 'xtpzgl-yhgl'}, component: shipLocation},
-      {path: 'shipmentInstructions', name: 'shipmentInstructions', meta: {code: 'xtpzgl-yhgl'}, component: shipmentInstructions},
-      {path: 'shipResult', name: 'shipResult', meta: {code: 'xtpzgl-yhgl'}, component: shipResult},
-      {path: 'unloadShip', name: 'unloadShip', meta: {code: 'xtpzgl-yhgl'}, component: unloadShip},
-      {path: 'updateBargeShip', name: 'updateBargeShip', meta: {code: 'xtpzgl-yhgl'}, component: updateBargeShip},
-      {path: 'updateInstructionsCapacity/:orderId', name: 'updateInstructionsCapacity', meta: {code: 'xtpzgl-yhgl'}, component: updateInstructionsCapacity},
-      {path: 'updateShipLocation', name: 'updateShipLocation', meta: {code: 'xtpzgl-yhgl'}, component: updateShipLocation},
-      {path: 'updateShipmentInstructions/:instructionsId', name: 'updateShipmentInstructions', meta: {code: 'xtpzgl-yhgl'}, component: updateShipmentInstructions},
-      {path: 'updateUnloadShip/:resultId', name: 'updateUnloadShip', meta: {code: 'xtpzgl-yhgl'}, component: updateUnloadShip},
-      {path: 'updateWaterQuality/:resultId', name: 'updateWaterQuality', meta: {code: 'xtpzgl-yhgl'}, component: updateWaterQuality},
-      {path: 'waterQuality', name: 'waterQuality', meta: {code: 'xtpzgl-yhgl'}, component: waterQuality},
-      {path: 'updateLoadShip/:resultId', name: 'updateLoadShip', meta: {code: 'xtpzgl-yhgl'}, component: updateLoadShip},
-      {path: 'shipmentInstructionText/:text', name: 'shipmentInstructionText', meta: {code: 'xtpzgl-yhgl'}, component: shipmentInstructionText},
-
-      {path: 'assignmentPlan', name: 'assignmentPlan', meta: {code: 'xtpzgl-yhgl'}, component: assignmentPlan},
-      {path: 'breakdownPlan', name: 'breakdownPlan', meta: {code: 'xtpzgl-yhgl'}, component: breakdownPlan},
-      {path: 'breakdownPlanAdd/:planId', name: 'breakdownPlanAdd', meta: {code: 'xtpzgl-yhgl'}, component: breakdownPlanAdd},
-      {path: 'breakdownPlanCheck', name: 'breakdownPlanCheck', meta: {code: 'xtpzgl-yhgl'}, component: breakdownPlanCheck},
-      {path: 'breakdownPlanEdit/:planId', name: 'breakdownPlanEdit', meta: {code: 'xtpzgl-yhgl'}, component: breakdownPlanEdit},
-      {path: 'submitWaybill', name: 'submitWaybill', meta: {code: 'xtpzgl-yhgl'}, component: submitWaybill},
-      {path: 'transportReserve', name: 'transportReserve', meta: {code: 'xtpzgl-yhgl'}, component: transportReserve},
-      {path: 'transportReserveAdd', name: 'transportReserveAdd', meta: {code: 'xtpzgl-yhgl'}, component: transportReserveAdd},
-      {path: 'transportReserveEdit/:planId', name: 'transportReserveEdit', meta: {code: 'xtpzgl-yhgl'}, component: transportReserveEdit},
-      {path: 'truckDriverReceive', name: 'truckDriverReceive', meta: {code: 'xtpzgl-yhgl'}, component: truckDriverReceive},
-      {path: 'truckEnfactoryResult', name: 'truckEnfactoryResult', meta: {code: 'xtpzgl-yhgl'}, component: truckEnfactoryResult},
-      {path: 'truckJiMaoResult', name: 'truckJiMaoResult', meta: {code: 'xtpzgl-yhgl'}, component: truckJiMaoResult},
-      {path: 'truckJiPiResult', name: 'truckJiPiResult', meta: {code: 'xtpzgl-yhgl'}, component: truckJiPiResult},
-      {path: 'truckLeaveFactoryResult', name: 'truckLeaveFactoryResult', meta: {code: 'xtpzgl-yhgl'}, component: truckLeaveFactoryResult},
-      {path: 'truckLoadResult', name: 'truckLoadResult', meta: {code: 'xtpzgl-yhgl'}, component: truckLoadResult},
-      {path: 'truckLoadResultAdd', name: 'truckLoadResultAdd', meta: {code: 'xtpzgl-yhgl'}, component: truckLoadResultAdd},
-      {path: 'truckLoadResultEdit/:resultId', name: 'truckLoadResultEdit', meta: {code: 'xtpzgl-yhgl'}, component: truckLoadResultEdit},
-      {path: 'truckQualityResult', name: 'truckQualityResult', meta: {code: 'xtpzgl-yhgl'}, component: truckQualityResult},
-      {path: 'truckQualityResultEdit/:resultId', name: 'truckQualityResultEdit', meta: {code: 'xtpzgl-yhgl'}, component: truckQualityResultEdit},
-      {path: 'truckReceiptResult', name: 'truckReceiptResult', meta: {code: 'xtpzgl-yhgl'}, component: truckReceiptResult},
-      {path: 'truckUnloadResult', name: 'truckUnloadResult', meta: {code: 'xtpzgl-yhgl'}, component: truckUnloadResult},
-      
-      {path: 'addBreach', name: 'addBreach', meta: {code: 'xtpzgl-yhgl'}, component: addBreach},
-      {path: 'addOtherPrice', name: 'addOtherPrice', meta: {code: 'xtpzgl-yhgl'}, component: addOtherPrice},
-      {path: 'addShipPrice', name: 'addShipPrice', meta: {code: 'xtpzgl-yhgl'}, component: addShipPrice},
-      {path: 'addTrainPrice', name: 'addTrainPrice', meta: {code: 'xtpzgl-yhgl'}, component: addTrainPrice},
-      {path: 'addTruckPrice', name: 'addTruckPrice', meta: {code: 'xtpzgl-yhgl'}, component: addTruckPrice},
-      {path: 'breach', name: 'breach', meta: {code: 'xtpzgl-yhgl'}, component: breach},
-      {path: 'otherPrice', name: 'otherPrice', meta: {code: 'xtpzgl-yhgl'}, component: otherPrice},
-      {path: 'purchaseOrder', name: 'purchaseOrder', meta: {code: 'xtpzgl-yhgl'}, component: purchaseOrder},
-      {path: 'shipPrice', name: 'shipPrice', meta: {code: 'xtpzgl-yhgl'}, component: shipPrice},
-      {path: 'trainPrice', name: 'trainPrice', meta: {code: 'xtpzgl-yhgl'}, component: trainPrice},
-      {path: 'updateBreach/:breachId', name: 'updateBreach', meta: {code: 'xtpzgl-yhgl'}, component: updateBreach},
-      {path: 'updateOtherPrice/:priceId', name: 'updateOtherPrice', meta: {code: 'xtpzgl-yhgl'}, component: updateOtherPrice},
-      {path: 'updateShipPrice/:priceId', name: 'updateShipPrice', meta: {code: 'xtpzgl-yhgl'}, component: updateShipPrice},
-      {path: 'updateTrainPrice/:priceId', name: 'updateTrainPrice', meta: {code: 'xtpzgl-yhgl'}, component: updateTrainPrice},
-      {path: 'updateTruckPrice/:priceId', name: 'updateTruckPrice', meta: {code: 'xtpzgl-yhgl'}, component: updateTruckPrice},
-      {path: 'truckPrice', name: 'truckPrice', meta: {code: 'xtpzgl-yhgl'}, component: truckPrice},
-      
-      {path: 'transportationReservation', name: 'transportationReservation', meta: {code: 'xtpzgl-yhgl'}, component: transportationReservation},
-      {path: 'transportationDispatch', name: 'transportationDispatch', meta: {code: 'xtpzgl-yhgl'}, component: transportationDispatch},
-      {path: 'transportationReservationAdd', name: 'transportationReservationAdd', meta: {code: 'xtpzgl-yhgl'}, component: transportationReservationAdd},
-      {path: 'transportationReservationEDIT/:orderId', name: 'transportationReservationEDIT', meta: {code: 'xtpzgl-yhgl'}, component: transportationReservationEDIT},
-     
-      {path: 'dischargeCargoOld', name: 'dischargeCargoOld', meta: {code: 'xtpzgl-jggl'}, component: dischargeCargoOld},
-      {path: 'enterFactoryOld', name: 'enterFactoryOld', meta: {code: 'xtpzgl-jggl'}, component: enterFactoryOld},
-      {path: 'exFactoryOld', name: 'exFactoryOld', meta: {code: 'xtpzgl-jggl'}, component: exFactoryOld},
-      {path: 'qualityTestingOld', name: 'qualityTestingOld', meta: {code: 'xtpzgl-jggl'}, component: qualityTestingOld},
-      {path: 'receivingOld', name: 'receivingOld', meta: {code: 'xtpzgl-jggl'}, component: receivingOld},
-      {path: 'skinCountingOld', name: 'skinCountingOld', meta: {code: 'xtpzgl-jggl'}, component: skinCountingOld},
-      {path: 'woolCountingOld', name: 'woolCountingOld', meta: {code: 'xtpzgl-jggl'}, component: woolCountingOld},
-    
-      {path: 'mineralTransportAppoint', name: 'mineralTransportAppoint', meta: {code: 'xtpzgl-jggl'}, component: mineralTransportAppoint},
-      {path: 'addMineralTransportAppoint', name: 'addMineralTransportAppoint', meta: {code: 'xtpzgl-jggl'}, component: addMineralTransportAppoint},
-      {path: 'mineralTransportOrder', name: 'mineralTransportOrder', meta: {code: 'xtpzgl-jggl'}, component: mineralTransportOrder},
-      {path: 'mineralUnload', name: 'mineralUnload', meta: {code: 'xtpzgl-jggl'}, component: mineralUnload},
-      {path: 'mineralTareResult', name: 'mineralTareResult', meta: {code: 'xtpzgl-jggl'}, component: mineralTareResult},
-      {path: 'mineralGrossResult', name: 'mineralGrossResult', meta: {code: 'xtpzgl-jggl'}, component: mineralGrossResult},
-      {path: 'mineralOutfactory', name: 'mineralOutfactory', meta: {code: 'xtpzgl-jggl'}, component: mineralOutfactory},
-      {path: 'mineralEnfactory', name: 'mineralEnfactory', meta: {code: 'xtpzgl-jggl'}, component: mineralEnfactory},      
-      {path: 'mineralQuality', name: 'mineralQuality', meta: {code: 'xtpzgl-jggl'}, component: mineralQuality},
-      {path: 'getTransportOrder/:orderId', name: 'getTransportOrder', meta: {code: 'xtpzgl-jggl'}, component: getTransportOrder},
+      {
+        path: "dischargeCargoNew",
+        name: "dischargeCargoNew",
+        meta: { code: "xtpzgl-jggl" },
+        component: dischargeCargoNew
+      },
+      {
+        path: "enterFactoryNew",
+        name: "enterFactoryNew",
+        meta: { code: "xtpzgl-jggl" },
+        component: enterFactoryNew
+      },
+      {
+        path: "exFactoryNew",
+        name: "exFactoryNew",
+        meta: { code: "xtpzgl-jggl" },
+        component: exFactoryNew
+      },
+      {
+        path: "qualityTestingNew",
+        name: "qualityTestingNew",
+        meta: { code: "xtpzgl-jggl" },
+        component: qualityTestingNew
+      },
+      {
+        path: "receivingNew",
+        name: "receivingNew",
+        meta: { code: "xtpzgl-jggl" },
+        component: receivingNew
+      },
+      {
+        path: "skinCountingNew",
+        name: "skinCountingNew",
+        meta: { code: "xtpzgl-jggl" },
+        component: skinCountingNew
+      },
+      {
+        path: "woolCountingNew",
+        name: "woolCountingNew",
+        meta: { code: "xtpzgl-jggl" },
+        component: woolCountingNew
+      },
+      {
+        path: "addHandlingFee",
+        name: "addHandlingFee",
+        meta: { code: "xtpzgl-jggl" },
+        component: addHandlingFee
+      },
+      {
+        path: "handlingFee",
+        name: "handlingFee",
+        meta: { code: "xtpzgl-yhgl" },
+        component: handlingFee
+      },
+      {
+        path: "updateHandlingFee/:feeId",
+        name: "updateHandlingFee",
+        meta: { code: "xtpzgl-yhgl" },
+        component: updateHandlingFee
+      },
+
+      {
+        path: "detailsOrder",
+        name: "detailsOrder",
+        meta: { code: "xtpzgl-yhgl" },
+        component: detailsOrder
+      },
+      {
+        path: "detailsStatement",
+        name: "detailsStatement",
+        meta: { code: "xtpzgl-yhgl" },
+        component: detailsStatement
+      },
+      {
+        path: "lossDetailsStatement",
+        name: "lossDetailsStatement",
+        meta: { code: "xtpzgl-yhgl" },
+        component: lossDetailsStatement
+      },
+      {
+        path: "shipBillingFormula",
+        name: "shipBillingFormula",
+        meta: { code: "xtpzgl-yhgl" },
+        component: shipBillingFormula
+      },
+      {
+        path: "bmsstatementDetailsOrder/:batchId",
+        name: "bmsstatementDetailsOrder",
+        meta: { code: "xtpzgl-yhgl" },
+        component: bmsstatementDetailsOrder
+      },
+      {
+        path: "bmsshipResult",
+        name: "bmsshipResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: bmsshipResult
+      },
+      {
+        path: "toBeStatement",
+        name: "toBeStatement",
+        meta: { code: "xtpzgl-yhgl" },
+        component: toBeStatement
+      },
+      {
+        path: "uncomplateDetails",
+        name: "uncomplateDetails",
+        meta: { code: "xtpzgl-yhgl" },
+        component: uncomplateDetails
+      },
+      {
+        path: "uncomplateWater",
+        name: "uncomplateWater",
+        meta: { code: "xtpzgl-yhgl" },
+        component: uncomplateWater
+      },
+      {
+        path: "statementDetailsOrderShip/:batchId",
+        name: "statementDetailsOrderShip",
+        meta: { code: "xtpzgl-yhgl" },
+        component: statementDetailsOrderShip
+      },
+
+      {
+        path: "addTrainDetails",
+        name: "addTrainDetails",
+        meta: { code: "xtpzgl-yhgl" },
+        component: addTrainDetails
+      },
+      {
+        path: "detailsTrainStatement",
+        name: "detailsTrainStatement",
+        meta: { code: "xtpzgl-yhgl" },
+        component: detailsTrainStatement
+      },
+      {
+        path: "detailsTrainOrder",
+        name: "detailsTrainOrder",
+        meta: { code: "xtpzgl-yhgl" },
+        component: detailsTrainOrder
+      },
+      {
+        path: "statementDetailsOrder/:batchId",
+        name: "statementDetailsOrder",
+        meta: { code: "xtpzgl-yhgl" },
+        component: statementDetailsOrder
+      },
+      {
+        path: "trainResult",
+        name: "trainResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: trainResult
+      },
+      {
+        path: "uncomplateTrainDetails",
+        name: "uncomplateTrainDetails",
+        meta: { code: "xtpzgl-yhgl" },
+        component: uncomplateTrainDetails
+      },
+
+      {
+        path: "detailsTruckOrder",
+        name: "detailsTruckOrder",
+        meta: { code: "xtpzgl-yhgl" },
+        component: detailsTruckOrder
+      },
+      {
+        path: "truckResult",
+        name: "truckResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckResult
+      },
+
+      {
+        path: "approveWagonPlease",
+        name: "approveWagonPlease",
+        meta: { code: "xtpzgl-yhgl" },
+        component: approveWagonPlease
+      },
+      {
+        path: "approveWagonPleaseAdd",
+        name: "approveWagonPleaseAdd",
+        meta: { code: "xtpzgl-yhgl" },
+        component: approveWagonPleaseAdd
+      },
+      {
+        path: "approveWagonPleaseEdit/:resultId",
+        name: "approveWagonPleaseEdit",
+        meta: { code: "xtpzgl-yhgl" },
+        component: approveWagonPleaseEdit
+      },
+      {
+        path: "entrustMine",
+        name: "entrustMine",
+        meta: { code: "xtpzgl-yhgl" },
+        component: entrustMine
+      },
+      {
+        path: "wagonLoadMine",
+        name: "wagonLoadMine",
+        meta: { code: "xtpzgl-yhgl" },
+        component: wagonLoadMine
+      },
+      {
+        path: "wagonLoadbu",
+        name: "wagonLoadbu",
+        meta: { code: "xtpzgl-yhgl" },
+        component: wagonLoadbu
+      },
+      {
+        path: "wagonLoadAdd",
+        name: "wagonLoadAdd",
+        meta: { code: "xtpzgl-yhgl" },
+        component: wagonLoadAdd
+      },
+      {
+        path: "wagonLoadEdit/:resultId",
+        name: "wagonLoadEdit",
+        meta: { code: "xtpzgl-yhgl" },
+        component: wagonLoadEdit
+      },
+      {
+        path: "wagonPleaseMine",
+        name: "wagonPleaseMine",
+        meta: { code: "xtpzgl-yhgl" },
+        component: wagonPleaseMine
+      },
+      {
+        path: "wagonPleaseAdd",
+        name: "wagonPleaseAdd",
+        meta: { code: "xtpzgl-yhgl" },
+        component: wagonPleaseAdd
+      },
+      {
+        path: "wagonPleaseEdit/:resultId",
+        name: "wagonPleaseEdit",
+        meta: { code: "xtpzgl-yhgl" },
+        component: wagonPleaseEdit
+      },
+      {
+        path: "wagonUnLoadAdd",
+        name: "wagonUnLoadAdd",
+        meta: { code: "xtpzgl-yhgl" },
+        component: wagonUnLoadAdd
+      },
+      {
+        path: "wagonUnLoadMine",
+        name: "wagonUnLoadMine",
+        meta: { code: "xtpzgl-yhgl" },
+        component: wagonUnLoadMine
+      },
+      {
+        path: "wagonUnLoadEdit/:unloadingId",
+        name: "wagonUnLoadEdit",
+        meta: { code: "xtpzgl-yhgl" },
+        component: wagonUnLoadEdit
+      },
+      //  {path: 'index', name: 'index', meta: {code: 'xtpzgl-yhgl'}, component: index},
+
+      {
+        path: "addWagonLoadEmergency",
+        name: "addWagonLoadEmergency",
+        meta: { code: "xtpzgl-yhgl" },
+        component: addWagonLoadEmergency
+      },
+      {
+        path: "addWagonUnLoadEmergency",
+        name: "addWagonUnLoadEmergency",
+        meta: { code: "xtpzgl-yhgl" },
+        component: addWagonUnLoadEmergency
+      },
+      {
+        path: "editWagonUnLoadEmergency/:unloadingId",
+        name: "editWagonUnLoadEmergency",
+        meta: { code: "xtpzgl-yhgl" },
+        component: editWagonUnLoadEmergency
+      },
+      {
+        path: "editWagonLoadEmergency/:unloadingId",
+        name: "editWagonLoadEmergency",
+        meta: { code: "xtpzgl-yhgl" },
+        component: editWagonLoadEmergency
+      },
+      {
+        path: "entrustEmergency",
+        name: "entrustEmergency",
+        meta: { code: "xtpzgl-yhgl" },
+        component: entrustEmergency
+      },
+      {
+        path: "trainDetails",
+        name: "trainDetails",
+        meta: { code: "xtpzgl-yhgl" },
+        component: trainDetails
+      },
+      {
+        path: "wagonLoadEmergency",
+        name: "wagonLoadEmergency",
+        meta: { code: "xtpzgl-yhgl" },
+        component: wagonLoadEmergency
+      },
+      {
+        path: "wagonUnLoadEmergency",
+        name: "wagonUnLoadEmergency",
+        meta: { code: "xtpzgl-yhgl" },
+        component: wagonUnLoadEmergency
+      },
+
+      {
+        path: "transportReserveFuAdd",
+        name: "transportReserveFuAdd",
+        meta: { code: "xtpzgl-yhgl" },
+        component: transportReserveFuAdd
+      },
+      {
+        path: "transportReserveRan",
+        name: "transportReserveRan",
+        meta: { code: "xtpzgl-yhgl" },
+        component: transportReserveRan
+      },
+      {
+        path: "transportReserveRanEdit/:orderId",
+        name: "transportReserveRanEdit",
+        meta: { code: "xtpzgl-yhgl" },
+        component: transportReserveRanEdit
+      },
+      {
+        path: "transportReserveRanAdd",
+        name: "transportReserveRanAdd",
+        meta: { code: "xtpzgl-yhgl" },
+        component: transportReserveRanAdd
+      },
+      {
+        path: "truckDriverReceiveRan",
+        name: "truckDriverReceiveRan",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckDriverReceiveRan
+      },
+      {
+        path: "truckEnfactoryRanLaoResult",
+        name: "truckEnfactoryRanLaoResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckEnfactoryRanLaoResult
+      },
+      {
+        path: "truckEnfactoryRanXingResult",
+        name: "truckEnfactoryRanXingResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckEnfactoryRanXingResult
+      },
+      {
+        path: "truckJiMaoRanLaoResult",
+        name: "truckJiMaoRanLaoResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckJiMaoRanLaoResult
+      },
+      {
+        path: "truckJiPiRanLaoResult",
+        name: "truckJiPiRanLaoResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckJiPiRanLaoResult
+      },
+      {
+        path: "truckJiMaoRanXingResult",
+        name: "truckJiMaoRanXingResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckJiMaoRanXingResult
+      },
+      {
+        path: "truckJiPiRanXingResult",
+        name: "truckJiPiRanXingResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckJiPiRanXingResult
+      },
+      {
+        path: "truckLeaveFactoryRanLaoResult",
+        name: "truckLeaveFactoryRanLaoResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckLeaveFactoryRanLaoResult
+      },
+      {
+        path: "truckLeaveFactoryRanXingResult",
+        name: "truckLeaveFactoryRanXingResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckLeaveFactoryRanXingResult
+      },
+      {
+        path: "truckQualityRanLaoResult",
+        name: "truckQualityRanLaoResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckQualityRanLaoResult
+      },
+      {
+        path: "truckQualityRanXingResult",
+        name: "truckQualityRanXingResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckQualityRanXingResult
+      },
+      {
+        path: "truckQualityRanLaoResultEdit",
+        name: "truckQualityRanLaoResultEdit",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckQualityRanLaoResultEdit
+      },
+      {
+        path: "truckQualityRanXingResultEdit",
+        name: "truckQualityRanXingResultEdit",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckQualityRanXingResultEdit
+      },
+      {
+        path: "truckReceiptRanLaoResult",
+        name: "truckReceiptRanLaoResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckReceiptRanLaoResult
+      },
+      {
+        path: "truckReceiptRanXingResult",
+        name: "truckReceiptRanXingResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckReceiptRanXingResult
+      },
+      {
+        path: "truckUnloadRanLaoResult",
+        name: "truckUnloadRanLaoResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckUnloadRanLaoResult
+      },
+      {
+        path: "truckUnloadRanXingResult",
+        name: "truckUnloadRanXingResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckUnloadRanXingResult
+      },
+
+      {
+        path: "transportReserveFu",
+        name: "transportReserveFu",
+        meta: { code: "xtpzgl-yhgl" },
+        component: transportReserveFu
+      },
+      {
+        path: "truckLeaveFactoryFuResult",
+        name: "truckLeaveFactoryFuResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckLeaveFactoryFuResult
+      },
+      {
+        path: "truckQualityFuResult",
+        name: "truckQualityFuResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckQualityFuResult
+      },
+      {
+        path: "truckQualityFuResultEdit",
+        name: "truckQualityFuResultEdit",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckQualityFuResultEdit
+      },
+      {
+        path: "truckReturnResult",
+        name: "truckReturnResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckReturnResult
+      },
+      {
+        path: "truckUnloadFuResult",
+        name: "truckUnloadFuResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckUnloadFuResult
+      },
+      {
+        path: "transportReserveFuEdit/:orderId",
+        name: "transportReserveFuEdit",
+        meta: { code: "xtpzgl-yhgl" },
+        component: transportReserveFuEdit
+      },
+      {
+        path: "truckDriverReceiveFu",
+        name: "truckDriverReceiveFu",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckDriverReceiveFu
+      },
+      {
+        path: "truckEnfactoryFuResult",
+        name: "truckEnfactoryFuResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckEnfactoryFuResult
+      },
+      {
+        path: "truckJiMaoFuResult",
+        name: "truckJiMaoFuResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckJiMaoFuResult
+      },
+      {
+        path: "truckJiPiFuResult",
+        name: "truckJiPiFuResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckJiPiFuResult
+      },
+      {
+        path: "truckReceiptFuResult",
+        name: "truckReceiptFuResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckReceiptFuResult
+      },
+      {
+        path: "transportReserveFuAddIngredients",
+        name: "transportReserveFuAddIngredients",
+        meta: { code: "xtpzgl-yhgl" },
+        component: transportReserveFuAddIngredients
+      },
+
+      {
+        path: "addApproveWagonPlease",
+        name: "addApproveWagonPlease",
+        meta: { code: "xtpzgl-jggl" },
+        component: addApproveWagonPlease
+      },
+      {
+        path: "addWagonLoad",
+        name: "addWagonLoad",
+        meta: { code: "xtpzgl-yhgl" },
+        component: addWagonLoad
+      },
+      {
+        path: "addWagonPlease",
+        name: "addWagonPlease",
+        meta: { code: "xtpzgl-yhgl" },
+        component: addWagonPlease
+      },
+      {
+        path: "addWagonUnLoad",
+        name: "addWagonUnLoad",
+        meta: { code: "xtpzgl-yhgl" },
+        component: addWagonUnLoad
+      },
+      {
+        path: "editApproveWagonPlease/:resultId",
+        name: "editApproveWagonPlease",
+        meta: { code: "xtpzgl-yhgl" },
+        component: editApproveWagonPlease
+      },
+      {
+        path: "editWagonLoad/:resultId",
+        name: "editWagonLoad",
+        meta: { code: "xtpzgl-yhgl" },
+        component: editWagonLoad
+      },
+      {
+        path: "editWagonPlease/:resultId",
+        name: "editWagonPlease",
+        meta: { code: "xtpzgl-yhgl" },
+        component: editWagonPlease
+      },
+      {
+        path: "editWagonUnLoad/:unloadingId",
+        name: "editWagonUnLoad",
+        meta: { code: "xtpzgl-yhgl" },
+        component: editWagonUnLoad
+      },
+      {
+        path: "entrust",
+        name: "entrust",
+        meta: { code: "xtpzgl-yhgl" },
+        component: entrust
+      },
+      {
+        path: "wagonApprove",
+        name: "wagonApprove",
+        meta: { code: "xtpzgl-yhgl" },
+        component: wagonApprove
+      },
+      {
+        path: "wagonLoad",
+        name: "wagonLoad",
+        meta: { code: "xtpzgl-yhgl" },
+        component: wagonLoad
+      },
+      {
+        path: "wagonPlease",
+        name: "wagonPlease",
+        meta: { code: "xtpzgl-yhgl" },
+        component: wagonPlease
+      },
+      {
+        path: "wagonUnLoad",
+        name: "wagonUnLoad",
+        meta: { code: "xtpzgl-yhgl" },
+        component: wagonUnLoad
+      },
+
+      {
+        path: "addBargeShip",
+        name: "addBargeShip",
+        meta: { code: "xtpzgl-jggl" },
+        component: addBargeShip
+      },
+      {
+        path: "addLoadShip",
+        name: "addLoadShip",
+        meta: { code: "xtpzgl-yhgl" },
+        component: addLoadShip
+      },
+      {
+        path: "addShipLocation",
+        name: "addShipLocation",
+        meta: { code: "xtpzgl-yhgl" },
+        component: addShipLocation
+      },
+      {
+        path: "addShipmentInstructions",
+        name: "addShipmentInstructions",
+        meta: { code: "xtpzgl-yhgl" },
+        component: addShipmentInstructions
+      },
+      {
+        path: "addUnloadShip",
+        name: "addUnloadShip",
+        meta: { code: "xtpzgl-yhgl" },
+        component: addUnloadShip
+      },
+      {
+        path: "addWaterQuality",
+        name: "addWaterQuality",
+        meta: { code: "xtpzgl-yhgl" },
+        component: addWaterQuality
+      },
+      {
+        path: "bargeShip",
+        name: "bargeShip",
+        meta: { code: "xtpzgl-yhgl" },
+        component: bargeShip
+      },
+      {
+        path: "instructionsCapacity/:instructionsId",
+        name: "instructionsCapacity",
+        meta: { code: "xtpzgl-yhgl" },
+        component: instructionsCapacity
+      },
+      {
+        path: "loadShip",
+        name: "loadShip",
+        meta: { code: "xtpzgl-yhgl" },
+        component: loadShip
+      },
+      {
+        path: "shipLocation",
+        name: "shipLocation",
+        meta: { code: "xtpzgl-yhgl" },
+        component: shipLocation
+      },
+      {
+        path: "shipmentInstructions",
+        name: "shipmentInstructions",
+        meta: { code: "xtpzgl-yhgl" },
+        component: shipmentInstructions
+      },
+      {
+        path: "shipResult",
+        name: "shipResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: shipResult
+      },
+      {
+        path: "unloadShip",
+        name: "unloadShip",
+        meta: { code: "xtpzgl-yhgl" },
+        component: unloadShip
+      },
+      {
+        path: "updateBargeShip",
+        name: "updateBargeShip",
+        meta: { code: "xtpzgl-yhgl" },
+        component: updateBargeShip
+      },
+      {
+        path: "updateInstructionsCapacity/:orderId",
+        name: "updateInstructionsCapacity",
+        meta: { code: "xtpzgl-yhgl" },
+        component: updateInstructionsCapacity
+      },
+      {
+        path: "updateShipLocation",
+        name: "updateShipLocation",
+        meta: { code: "xtpzgl-yhgl" },
+        component: updateShipLocation
+      },
+      {
+        path: "updateShipmentInstructions/:instructionsId",
+        name: "updateShipmentInstructions",
+        meta: { code: "xtpzgl-yhgl" },
+        component: updateShipmentInstructions
+      },
+      {
+        path: "updateUnloadShip/:resultId",
+        name: "updateUnloadShip",
+        meta: { code: "xtpzgl-yhgl" },
+        component: updateUnloadShip
+      },
+      {
+        path: "updateWaterQuality/:resultId",
+        name: "updateWaterQuality",
+        meta: { code: "xtpzgl-yhgl" },
+        component: updateWaterQuality
+      },
+      {
+        path: "waterQuality",
+        name: "waterQuality",
+        meta: { code: "xtpzgl-yhgl" },
+        component: waterQuality
+      },
+      {
+        path: "updateLoadShip/:resultId",
+        name: "updateLoadShip",
+        meta: { code: "xtpzgl-yhgl" },
+        component: updateLoadShip
+      },
+      {
+        path: "shipmentInstructionText/:text",
+        name: "shipmentInstructionText",
+        meta: { code: "xtpzgl-yhgl" },
+        component: shipmentInstructionText
+      },
+
+      {
+        path: "assignmentPlan",
+        name: "assignmentPlan",
+        meta: { code: "xtpzgl-yhgl" },
+        component: assignmentPlan
+      },
+      {
+        path: "breakdownPlan",
+        name: "breakdownPlan",
+        meta: { code: "xtpzgl-yhgl" },
+        component: breakdownPlan
+      },
+      {
+        path: "breakdownPlanAdd/:planId",
+        name: "breakdownPlanAdd",
+        meta: { code: "xtpzgl-yhgl" },
+        component: breakdownPlanAdd
+      },
+      {
+        path: "breakdownPlanCheck",
+        name: "breakdownPlanCheck",
+        meta: { code: "xtpzgl-yhgl" },
+        component: breakdownPlanCheck
+      },
+      {
+        path: "breakdownPlanEdit/:planId",
+        name: "breakdownPlanEdit",
+        meta: { code: "xtpzgl-yhgl" },
+        component: breakdownPlanEdit
+      },
+      {
+        path: "submitWaybill",
+        name: "submitWaybill",
+        meta: { code: "xtpzgl-yhgl" },
+        component: submitWaybill
+      },
+      {
+        path: "transportReserve",
+        name: "transportReserve",
+        meta: { code: "xtpzgl-yhgl" },
+        component: transportReserve
+      },
+      {
+        path: "transportReserveAdd",
+        name: "transportReserveAdd",
+        meta: { code: "xtpzgl-yhgl" },
+        component: transportReserveAdd
+      },
+      {
+        path: "transportReserveEdit/:planId",
+        name: "transportReserveEdit",
+        meta: { code: "xtpzgl-yhgl" },
+        component: transportReserveEdit
+      },
+      {
+        path: "truckDriverReceive",
+        name: "truckDriverReceive",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckDriverReceive
+      },
+      {
+        path: "truckEnfactoryResult",
+        name: "truckEnfactoryResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckEnfactoryResult
+      },
+      {
+        path: "truckJiMaoResult",
+        name: "truckJiMaoResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckJiMaoResult
+      },
+      {
+        path: "truckJiPiResult",
+        name: "truckJiPiResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckJiPiResult
+      },
+      {
+        path: "truckLeaveFactoryResult",
+        name: "truckLeaveFactoryResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckLeaveFactoryResult
+      },
+      {
+        path: "truckLoadResult",
+        name: "truckLoadResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckLoadResult
+      },
+      {
+        path: "truckLoadResultAdd",
+        name: "truckLoadResultAdd",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckLoadResultAdd
+      },
+      {
+        path: "truckLoadResultEdit/:resultId",
+        name: "truckLoadResultEdit",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckLoadResultEdit
+      },
+      {
+        path: "truckQualityResult",
+        name: "truckQualityResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckQualityResult
+      },
+      {
+        path: "truckQualityResultEdit/:resultId",
+        name: "truckQualityResultEdit",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckQualityResultEdit
+      },
+      {
+        path: "truckReceiptResult",
+        name: "truckReceiptResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckReceiptResult
+      },
+      {
+        path: "truckUnloadResult",
+        name: "truckUnloadResult",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckUnloadResult
+      },
+
+      {
+        path: "addBreach",
+        name: "addBreach",
+        meta: { code: "xtpzgl-yhgl" },
+        component: addBreach
+      },
+      {
+        path: "addOtherPrice",
+        name: "addOtherPrice",
+        meta: { code: "xtpzgl-yhgl" },
+        component: addOtherPrice
+      },
+      {
+        path: "addShipPrice",
+        name: "addShipPrice",
+        meta: { code: "xtpzgl-yhgl" },
+        component: addShipPrice
+      },
+      {
+        path: "addTrainPrice",
+        name: "addTrainPrice",
+        meta: { code: "xtpzgl-yhgl" },
+        component: addTrainPrice
+      },
+      {
+        path: "addTruckPrice",
+        name: "addTruckPrice",
+        meta: { code: "xtpzgl-yhgl" },
+        component: addTruckPrice
+      },
+      {
+        path: "breach",
+        name: "breach",
+        meta: { code: "xtpzgl-yhgl" },
+        component: breach
+      },
+      {
+        path: "otherPrice",
+        name: "otherPrice",
+        meta: { code: "xtpzgl-yhgl" },
+        component: otherPrice
+      },
+      {
+        path: "purchaseOrder",
+        name: "purchaseOrder",
+        meta: { code: "xtpzgl-yhgl" },
+        component: purchaseOrder
+      },
+      {
+        path: "shipPrice",
+        name: "shipPrice",
+        meta: { code: "xtpzgl-yhgl" },
+        component: shipPrice
+      },
+      {
+        path: "trainPrice",
+        name: "trainPrice",
+        meta: { code: "xtpzgl-yhgl" },
+        component: trainPrice
+      },
+      {
+        path: "updateBreach/:breachId",
+        name: "updateBreach",
+        meta: { code: "xtpzgl-yhgl" },
+        component: updateBreach
+      },
+      {
+        path: "updateOtherPrice/:priceId",
+        name: "updateOtherPrice",
+        meta: { code: "xtpzgl-yhgl" },
+        component: updateOtherPrice
+      },
+      {
+        path: "updateShipPrice/:priceId",
+        name: "updateShipPrice",
+        meta: { code: "xtpzgl-yhgl" },
+        component: updateShipPrice
+      },
+      {
+        path: "updateTrainPrice/:priceId",
+        name: "updateTrainPrice",
+        meta: { code: "xtpzgl-yhgl" },
+        component: updateTrainPrice
+      },
+      {
+        path: "updateTruckPrice/:priceId",
+        name: "updateTruckPrice",
+        meta: { code: "xtpzgl-yhgl" },
+        component: updateTruckPrice
+      },
+      {
+        path: "truckPrice",
+        name: "truckPrice",
+        meta: { code: "xtpzgl-yhgl" },
+        component: truckPrice
+      },
+
+      {
+        path: "transportationReservation",
+        name: "transportationReservation",
+        meta: { code: "xtpzgl-yhgl" },
+        component: transportationReservation
+      },
+      {
+        path: "transportationDispatch",
+        name: "transportationDispatch",
+        meta: { code: "xtpzgl-yhgl" },
+        component: transportationDispatch
+      },
+      {
+        path: "transportationReservationAdd",
+        name: "transportationReservationAdd",
+        meta: { code: "xtpzgl-yhgl" },
+        component: transportationReservationAdd
+      },
+      {
+        path: "transportationReservationEDIT/:orderId",
+        name: "transportationReservationEDIT",
+        meta: { code: "xtpzgl-yhgl" },
+        component: transportationReservationEDIT
+      },
+
+      {
+        path: "dischargeCargoOld",
+        name: "dischargeCargoOld",
+        meta: { code: "xtpzgl-jggl" },
+        component: dischargeCargoOld
+      },
+      {
+        path: "enterFactoryOld",
+        name: "enterFactoryOld",
+        meta: { code: "xtpzgl-jggl" },
+        component: enterFactoryOld
+      },
+      {
+        path: "exFactoryOld",
+        name: "exFactoryOld",
+        meta: { code: "xtpzgl-jggl" },
+        component: exFactoryOld
+      },
+      {
+        path: "qualityTestingOld",
+        name: "qualityTestingOld",
+        meta: { code: "xtpzgl-jggl" },
+        component: qualityTestingOld
+      },
+      {
+        path: "receivingOld",
+        name: "receivingOld",
+        meta: { code: "xtpzgl-jggl" },
+        component: receivingOld
+      },
+      {
+        path: "skinCountingOld",
+        name: "skinCountingOld",
+        meta: { code: "xtpzgl-jggl" },
+        component: skinCountingOld
+      },
+      {
+        path: "woolCountingOld",
+        name: "woolCountingOld",
+        meta: { code: "xtpzgl-jggl" },
+        component: woolCountingOld
+      },
+
+      {
+        path: "mineralTransportAppoint",
+        name: "mineralTransportAppoint",
+        meta: { code: "xtpzgl-jggl" },
+        component: mineralTransportAppoint
+      },
+      {
+        path: "addMineralTransportAppoint",
+        name: "addMineralTransportAppoint",
+        meta: { code: "xtpzgl-jggl" },
+        component: addMineralTransportAppoint
+      },
+      {
+        path: "mineralTransportOrder",
+        name: "mineralTransportOrder",
+        meta: { code: "xtpzgl-jggl" },
+        component: mineralTransportOrder
+      },
+      {
+        path: "mineralUnload",
+        name: "mineralUnload",
+        meta: { code: "xtpzgl-jggl" },
+        component: mineralUnload
+      },
+      {
+        path: "mineralTareResult",
+        name: "mineralTareResult",
+        meta: { code: "xtpzgl-jggl" },
+        component: mineralTareResult
+      },
+      {
+        path: "mineralGrossResult",
+        name: "mineralGrossResult",
+        meta: { code: "xtpzgl-jggl" },
+        component: mineralGrossResult
+      },
+      {
+        path: "mineralOutfactory",
+        name: "mineralOutfactory",
+        meta: { code: "xtpzgl-jggl" },
+        component: mineralOutfactory
+      },
+      {
+        path: "mineralEnfactory",
+        name: "mineralEnfactory",
+        meta: { code: "xtpzgl-jggl" },
+        component: mineralEnfactory
+      },
+      {
+        path: "mineralQuality",
+        name: "mineralQuality",
+        meta: { code: "xtpzgl-jggl" },
+        component: mineralQuality
+      },
+      {
+        path: "getTransportOrder/:orderId",
+        name: "getTransportOrder",
+        meta: { code: "xtpzgl-jggl" },
+        component: getTransportOrder
+      },
+      {
+        path: "addWagonLoadCopy",
+        name: "addWagonLoadCopy",
+        meta: { code: "xtpzgl-jggl" },
+        component: addWagonLoadCopy
+      },
+      {
+        path: "outBoundWagon",
+        name: "outBoundWagon",
+        meta: { code: "xtpzgl-jggl" },
+        component: outBoundWagon
+      }
     ]
   }
 ];
 
 const router = new Router({
   routes: constantRouterMap
-})
+});
 //  before
 routerBefore(router, constantRouterMap);
 

+ 14 - 9
src/views/appoint/components/saleContract/addSaleOrderSteelSendCarrier.vue

@@ -158,7 +158,9 @@
 
     <div class="button_box">
       <el-button @click="cancel">取消</el-button>
-      <el-button type="primary" @click="makeSure" :loading="isLoading">确定</el-button>
+      <el-button type="primary" @click="makeSure" :loading="isLoading"
+        >确定</el-button
+      >
     </div>
   </div>
 </template>
@@ -172,7 +174,7 @@ export default {
   data() {
     return {
       //是否正在加载
-      isLoading:false,
+      isLoading: false,
       //存放每一行记录的合并数
       spanArr: [],
       //pos是spanArr的索引
@@ -284,11 +286,15 @@ export default {
   },
   methods: {
     getValue() {
+      let map = {};
+      if (getCookie("orgCode") == "chengyunshang") {
+        map.saleOrderId = this.$route.params.saleOrderId;
+        map.carrierSsoId = getCookie("userId");
+      } else {
+        map.saleOrderId = this.$route.params.saleOrderId;
+      }
       this.axios
-        .post(
-          "/api/v1/ams/getTruckNoAndMaterialList?saleOrderId=" +
-            this.$route.params.saleOrderId
-        )
+        .post("/api/v1/ams/getCarrierTruckNoAndMaterialList", map)
         .then(res => {
           if (res.data.data.length == 0) {
             this.$confirm("该销售订单尚未排车!是否先进行排车?", "提示", {
@@ -429,7 +435,6 @@ export default {
     },
     //车牌号弹出层
     handleSelect(row, index) {
-      console.log(index);
       this.axios
         .post(
           "/api/v1/ams/matchingDriverTelRecently?capacityNumber=" +
@@ -477,7 +482,7 @@ export default {
     },
     //点击确定按钮的事件
     makeSure() {
-      this.isLoading=true;
+      this.isLoading = true;
       //是否可发送请求
       if (this.canSend == -1) {
         this.$message.warning("电话号码格式不正确,请输入正确的电话号码!");
@@ -523,7 +528,7 @@ export default {
                 } else {
                   this.$message.error("派单失败:" + res.data.data);
                 }
-                this.isLoading=false;
+                this.isLoading = false;
               });
           })
           .catch(() => {

+ 1935 - 0
src/views/appoint/components/saleContract/copySteelOrder.vue

@@ -0,0 +1,1935 @@
+<template>
+  <!-- 修改销售订单 -->
+  <div class="addSalePlan">
+    <page-title>钢材订单复制</page-title>
+    <!-- 订单基础信息 -->
+    <el-form
+      :inline="true"
+      style="margin-top: 1rem;box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04)"
+    >
+      <el-form-item>
+        <label class="el-form-item__label" style="width: auto;">发货单位</label>
+        <el-autocomplete
+          class="inline-input"
+          v-model="shipperName"
+          :fetch-suggestions="querySearchCarrier"
+          placeholder="请输入发货单位名称"
+          :trigger-on-focus="false"
+          @select="handleSelectCarrier"
+          style="width:245px"
+          disabled
+        >
+          <template slot-scope="{ item }">
+            <div class="name">{{ item.shipperName }}</div>
+          </template>
+        </el-autocomplete>
+      </el-form-item>
+      <el-form-item>
+        <label class="el-form-item__label" style="width: auto;">下单客户</label>
+        <el-autocomplete
+          class="inline-input"
+          v-model="consigneeName"
+          :fetch-suggestions="querySearchConsignee"
+          placeholder="请输入下单客户名称"
+          :trigger-on-focus="false"
+          @select="handleSelectConsignee"
+          style="width:300px"
+        >
+          <template slot-scope="{ item }">
+            <div class="name">{{ item.consigneeCompanyName }}</div>
+          </template>
+        </el-autocomplete>
+      </el-form-item>
+      <el-form-item>
+        <label class="el-form-item__label" style="width: auto;">是否自提</label>
+        <el-select v-model="values" placeholder="请选择" style="width:60px">
+          <el-option
+            v-for="item in options"
+            :key="item.values"
+            :label="item.label"
+            :value="item.values"
+          >
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <label class="el-form-item__label" style="width: auto;">收款公司</label>
+        <el-select v-model="values1" placeholder="请选择" style="width: 255px">
+          <el-option
+            v-for="item in receivingCompany"
+            :key="item.values1"
+            :label="item.label1"
+            :value="item.values1"
+          >
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <label class="el-form-item__label" style="width: auto;">业务员</label>
+        <el-select v-model="saleMan" placeholder="请选择" style="width: 90px">
+          <el-option
+            v-for="item in saleMans"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          >
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <label
+          class="el-form-item__label"
+          style="width: auto;margin-top: 0.3rem;"
+          >摘要</label
+        >
+      </el-form-item>
+      <el-form-item>
+        <el-input
+          v-model="remarks"
+          placeholder="(非必填)"
+          style="width: 180px"
+        ></el-input>
+      </el-form-item>
+    </el-form>
+
+    <!-- 车序号基础信息 -->
+    <el-form :inline="true" style="margin-top: 1rem;">
+      <el-form-item>
+        <label class="el-form-item__label" style="width: auto;">收货地址</label>
+        <el-input
+          style="width: 400px"
+          v-model="saleShipperAddressName"
+          disabled
+        >
+        </el-input>
+        <el-button type="primary" @click="ondrawerOut">选择</el-button>
+      </el-form-item>
+      <el-form-item>
+        <label class="el-form-item__label" style="width: auto;"
+          >可装货时间</label
+        >
+        <el-date-picker
+          class="textinput3"
+          v-model.number="saleDateOfReceipt"
+          type="datetime"
+          placeholder="选择日期时间"
+          disabled
+        >
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <label
+          class="el-form-item__label"
+          style="width: auto;margin-top: 0.4rem;"
+          >收货客户电话</label
+        >
+      </el-form-item>
+      <el-form-item>
+        <el-input
+          style="width: 150px"
+          v-model="saleOrderConsigneeTel"
+          placeholder="(非必填)"
+        ></el-input>
+      </el-form-item>
+      <el-form-item>
+        <label
+          class="el-form-item__label"
+          style="width: auto;margin-top: 0.4rem;"
+          >备注</label
+        >
+      </el-form-item>
+      <el-form-item>
+        <el-input
+          style="width: 180px"
+          v-model="truckRemark"
+          placeholder="(非必填)"
+        ></el-input>
+      </el-form-item>
+    </el-form>
+
+    <div class="button-box">
+      <el-button type="primary" class="btn" @click="addMaterial"
+        ><i class="el-icon-circle-plus-outline"></i>新增物资</el-button
+      >
+    </div>
+
+    <!-- 车辆拼装物资信息table1 -->
+    <div class="selectionTable from">
+      <el-table
+        :data="materialList"
+        border
+        style="width: 100%"
+        highlight-current-row
+      >
+        <el-table-column
+          v-for="(item, i) in materialTableTop"
+          :key="i"
+          :prop="item.prop"
+          :label="item.label"
+          align="center"
+          show-overflow-tooltip
+        >
+          <!-- 插入输入框 -->
+          <template slot-scope="scope">
+            <template v-if="item.slot">
+              <!-- 物资件数 -->
+              <template v-if="item.prop == 'orderPlanWeight'">
+                <el-input
+                  class="textinput111"
+                  v-model.number="scope.row.orderPlanWeight"
+                  placeholder="(必填)"
+                ></el-input>
+              </template>
+              <!-- 米数 -->
+              <template v-if="item.prop == 'meterNumber'">
+                <el-input
+                  v-if="scope.row.haveMeter == 1"
+                  class="textinput111"
+                  v-model.number="scope.row.meterNumber"
+                  :disabled="scope.row.isDisable == 1"
+                  placeholder="(必填)"
+                ></el-input>
+              </template>
+              <!-- 分装车数 -->
+              <template v-if="item.prop == 'carNumber'">
+                <el-input
+                  v-if="materialList.length == 1"
+                  class="textinput111"
+                  v-model.number="scope.row.carNumber"
+                  placeholder="(非必填)"
+                ></el-input>
+              </template>
+              <!-- 是否磅重销售 -->
+              <template v-if="item.prop == 'isPound'">
+                <el-select
+                  v-model="scope.row.isPound"
+                  placeholder="请选择"
+                  style="width:65px"
+                >
+                  <el-option
+                    v-for="item in options2"
+                    :key="item.values2"
+                    :label="item.label2"
+                    :value="item.values2"
+                  >
+                  </el-option>
+                </el-select>
+              </template>
+            </template>
+            <template v-else>
+              <span>{{ scope.row[item.prop] }}</span>
+            </template>
+          </template>
+        </el-table-column>
+        <!-- 操作列 -->
+        <el-table-column fixed="right" label="操作" width="100">
+          <template slot-scope="scope">
+            <el-button
+              @click.native.prevent="
+                deleteMaterialRow(scope.$index, materialList)
+              "
+              type="text"
+              icon="el-icon-close"
+              size="big"
+            ></el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+
+    <!-- 新增物资和生成一车 -->
+    <div class="button-box">
+      <el-input
+        style="width: 60px;margin-right: 0.3rem;border:2px solid;"
+        v-model="toCxh"
+      ></el-input>
+      <el-button type="primary" class="btn" @click="addToCxh"
+        >添加到车序号</el-button
+      >
+      <el-button type="primary" class="btn" @click="createACar"
+        >添加到订单</el-button
+      >
+    </div>
+
+    <div style="margin-left: 0.3rem;color:red">(注:一个车序号代表一辆车)</div>
+    <!-- 销售订单信息table2 -->
+    <div class="selectionTable from">
+      <el-table
+        :data="selectionList"
+        border
+        style="width: 100%"
+        :span-method="cellMerge"
+        @cell-click="goclick"
+        highlight-current-row
+      >
+        <el-table-column
+          v-for="(item, i) in tableTop"
+          :key="i"
+          :prop="item.prop"
+          :label="item.label"
+          :width="item.width"
+          align="center"
+          show-overflow-tooltip
+        >
+          <template slot="scope" v-if="item.label !== '物资名称'">
+            <span>{{ item.label }}</span>
+          </template>
+          <template slot="scope" v-if="item.label !== '件数'">
+            <span>{{ item.label }}</span>
+          </template>
+          <template slot="scope" v-if="item.label !== '收货地址'">
+            <span>{{ item.label }}</span>
+          </template>
+          <!-- <template slot="scope" v-if="item.label !== '收货日期'">
+            <span>{{ item.label }}</span>
+          </template> -->
+          <template slot="scope" v-if="item.label !== '收货姓名'">
+            <span>{{ item.label }}</span>
+          </template>
+          <template slot="scope" v-if="item.label !== '收货方电话'">
+            <span>{{ item.label }}</span>
+          </template>
+          <!-- 插入输入框 -->
+          <template slot-scope="scope">
+            <template v-if="item.slot">
+              <!-- 物资名称 -->
+              <template v-if="item.prop == 'materialName'">
+                <el-input
+                  style="width: 200px"
+                  v-model="scope.row.materialName"
+                  disabled
+                >
+                </el-input>
+                <el-button
+                  type="primary"
+                  @click="changeMaterial(scope.$index)"
+                  v-if="isCellClick == 1"
+                  >更改</el-button
+                >
+              </template>
+              <!-- 物资件数 -->
+              <template v-if="item.prop == 'orderPlanWeight'">
+                <el-input
+                  class="textinput"
+                  v-model.number="scope.row.orderPlanWeight"
+                ></el-input>
+              </template>
+              <!-- 米数 -->
+              <template v-if="item.prop == 'meterNumber'">
+                <el-input
+                  v-if="scope.row.haveMeter == 1"
+                  class="textinput"
+                  v-model.number="scope.row.meterNumber"
+                  :disabled="scope.row.isDisable == 1"
+                ></el-input>
+              </template>
+              <!-- 是否磅重销售 -->
+              <template v-if="item.prop == 'isPound'">
+                <el-select
+                  v-model="scope.row.isPound"
+                  placeholder="请选择"
+                  style="width:65px"
+                >
+                  <el-option
+                    v-for="item in options2"
+                    :key="item.values2"
+                    :label="item.label2"
+                    :value="item.values2"
+                  >
+                  </el-option>
+                </el-select>
+              </template>
+              <!-- 收货地址id -->
+              <template
+                style="width: 380px"
+                v-if="item.prop == 'saleShipperAddressName'"
+              >
+                <el-input
+                  style="width: 310px"
+                  v-model="scope.row.saleShipperAddressName"
+                  disabled
+                >
+                </el-input>
+                <el-button
+                  type="primary"
+                  @click="ondrawer(scope.row, scope.$index)"
+                  v-if="isCellClick == 1"
+                  >选择</el-button
+                >
+              </template>
+              <!-- 收货客户电话号码 -->
+              <template v-if="item.prop == 'saleOrderConsigneeTel'">
+                <el-input
+                  class="textinput5"
+                  placeholder="(必填)"
+                  v-model.number="scope.row.saleOrderConsigneeTel"
+                  @change="batchUpdateValue(scope.row, scope.$index)"
+                ></el-input>
+              </template>
+            </template>
+            <template v-else>
+              <span>{{ scope.row[item.prop] }}</span>
+            </template>
+          </template>
+        </el-table-column>
+        <!-- 操作列 -->
+        <el-table-column fixed="right" label="操作" width="100">
+          <template slot-scope="scope">
+            <el-button
+              @click.native.prevent="deleteRow(scope.$index, selectionList)"
+              type="text"
+              icon="el-icon-close"
+              size="big"
+            ></el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+    <!-- 收货地址弹出框 -->
+    <el-dialog title="收货地址" :visible.sync="drawer1" width="90%">
+      <el-form :inline="true">
+        <el-form-item>
+          <label class="el-form-item__label" style="width: auto;">省</label>
+          <el-select
+            v-model="province"
+            filterable
+            placeholder="请选择"
+            @change="onchangeProvince"
+          >
+            <el-option
+              v-for="item in provinceList"
+              :key="item.id"
+              :label="item.addressProvince"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <label class="el-form-item__label" style="width: auto;">市</label>
+          <el-select
+            v-model="city"
+            filterable
+            placeholder="请选择"
+            @change="onchangeCity"
+          >
+            <el-option
+              v-for="item in cityList"
+              :key="item.id"
+              :label="item.addressDistrict"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <label class="el-form-item__label" style="width: auto;">县(区)</label>
+          <el-select
+            v-model="county"
+            filterable
+            placeholder="请选择"
+            @change="onchangeCounty"
+          >
+            <el-option
+              v-for="item in countyList"
+              :key="item.id"
+              :label="item.addressTown"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <label class="el-form-item__label" style="width: auto;"
+            >具体收货地址</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-form>
+      <div slot="footer" class="button-box">
+        <el-button @click="drawer1 = false">取 消</el-button>
+        <el-button type="primary" @click="addAddressClick">确定</el-button>
+      </div>
+    </el-dialog>
+    <!-- 物资选择模态框 -->
+    <el-drawer
+      title="选择物资信息"
+      :visible.sync="table1"
+      direction="rtl"
+      size="90%"
+      :show-close="true"
+    >
+      <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
+            placeholder="请输入物资名称/型号"
+            v-model="materialNameText"
+            clearable
+          ></el-input>
+        </el-form-item>
+        <el-form-item>
+          <label class="el-form-item__label" style="width: auto;">规格</label>
+        </el-form-item>
+        <el-form-item>
+          <el-input
+            placeholder="请输入内容"
+            v-model="materialSpecificationText"
+            clearable
+            ><template slot="prepend">Φ</template></el-input
+          >
+        </el-form-item>
+        <el-button
+          type="primary"
+          class="btn"
+          @click="onclick"
+          style="margin-left: 4px;"
+          ><i class="el-icon-search"></i>查询</el-button
+        >
+        <el-button type="primary" @click="makeSureMaterial"
+          ><i class="el-icon-check"></i>确定</el-button
+        >
+      </el-form>
+      <div class="tablecls">
+        <!-- 查询所有的物资 -->
+        <dilTable
+          v-bind.sync="option"
+          @selection-change="selectionChange"
+          @rowDbClick="rowDbClick"
+        >
+        </dilTable>
+      </div>
+    </el-drawer>
+    <!-- 更改行物资 -->
+    <el-dialog title="更改物资" :visible.sync="drawer" width="80%">
+      <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
+            placeholder="请输入内容"
+            v-model="materialNameText"
+            clearable
+          ></el-input>
+        </el-form-item>
+        <el-form-item>
+          <label class="el-form-item__label" style="width: auto;">规格</label>
+        </el-form-item>
+        <el-button
+          type="primary"
+          class="btn"
+          @click="onclick"
+          style="margin-left: 4px;"
+          ><i class="el-icon-search"></i>查询</el-button
+        >
+      </el-form>
+
+      <div class="tablecls">
+        <!-- 查询所有的物资 -->
+        <dilTable
+          v-bind.sync="option1"
+          @radio-change="currentRadioChange"
+          :drawer="drawer"
+        >
+        </dilTable>
+      </div>
+
+      <div class="button-box">
+        <el-button @click="closeChangeMaterial">取消更改</el-button>
+        <el-button type="primary" @click="makeSureChange">确认更改</el-button>
+      </div>
+    </el-dialog>
+
+    <!-- 订单确认 -->
+    <el-dialog
+      title="订单明细 (注*: 请仔细确认订单物资和件数后再提交)"
+      :visible.sync="orderMakeSure"
+      width="94%"
+    >
+      <el-form :inline="true" style="margin-top: 0.5rem;">
+        <el-form-item>
+          <label class="el-form-item__label" style="width: auto;"
+            >发货单位:</label
+          >
+          <el-tag size="big">{{ shipperName }}</el-tag>
+        </el-form-item>
+        <el-form-item>
+          <label class="el-form-item__label" style="width: auto;"
+            >下单客户:</label
+          >
+          <el-tag size="big">{{ consigneeName }}</el-tag>
+        </el-form-item>
+        <el-form-item>
+          <label class="el-form-item__label" style="width: auto;"
+            >是否自提:</label
+          >
+          <el-tag size="big">{{ saleOrderIsselfMention }}</el-tag>
+        </el-form-item>
+        <el-form-item>
+          <label class="el-form-item__label" style="width: auto;"
+            >收款公司:</label
+          >
+          <el-tag size="big">{{ saleOrderReceiveCustomer }}</el-tag>
+        </el-form-item>
+        <el-form-item>
+          <label class="el-form-item__label" style="width: auto;"
+            >业务员:</label
+          >
+          <el-tag size="big">{{ saleManText }}</el-tag>
+        </el-form-item>
+        <el-form-item>
+          <label class="el-form-item__label" style="width: auto;">摘要:</label>
+          <el-tag size="big" v-if="remarks != null">{{ remarks }}</el-tag>
+        </el-form-item>
+      </el-form>
+      <!-- 物资明细信息 -->
+      <el-table
+        :data="selectionList"
+        border
+        style="width: 100%;margin-top: 0.5rem;"
+        :span-method="cellMerge"
+        highlight-current-row
+      >
+        <el-table-column
+          v-for="(item, i) in tableTop"
+          :key="i"
+          :prop="item.prop"
+          :label="item.label"
+          :width="item.width"
+          align="center"
+          show-overflow-tooltip
+        >
+        </el-table-column>
+      </el-table>
+      <div class="button-box">
+        <el-button @click="orderMakeSure = false">返回编辑</el-button>
+        <el-button type="primary" @click="sendRequest">提交订单</el-button>
+      </div>
+    </el-dialog>
+
+    <div class="button-box">
+      <el-button @click="cancel">取消</el-button>
+      <el-button type="primary" @click="makeSure">确定</el-button>
+    </div>
+  </div>
+</template>
+<script>
+import PageTitle from "@/components/Page/Title";
+import { sjTime, isIntegerNumber } from "@/utils/sharedJsFile";
+export default {
+  components: { PageTitle },
+  data() {
+    return {
+      isCellClick: null,
+      truckRemark: "",
+      shipperName: "四川省达州钢铁集团有限责任公司",
+      shipperId: 1,
+      consigneeName: null,
+      consigneeId: null,
+      remarks: null,
+      saleShipperAddressName: null,
+      saleShipperAddressId: null,
+      saleDateOfReceipt: null,
+      saleOrderConsigneeTel: null,
+      //加载
+      selectLineLoading: false,
+      //物资选中暂存
+      materialList1: [],
+      //物资信息查询内容
+      materialNameText: null,
+      materialSpecificationText: null,
+      materialModelText: null,
+      //物资选中表格
+      materialList: [],
+      materialTableTop: [
+        {
+          prop: "materialName",
+          label: "物资名称",
+          width: "140"
+        },
+        {
+          prop: "meterNumber",
+          label: "米数",
+          slot: true
+        },
+        {
+          prop: "Specification",
+          label: "规格型号",
+          width: "140"
+        },
+        {
+          prop: "orderPlanWeight",
+          label: "件数",
+          slot: true
+        },
+        {
+          prop: "carNumber",
+          label: "分装车数",
+          slot: true
+        },
+        {
+          prop: "isPound",
+          label: "是否磅重销售",
+          slot: true
+        }
+      ],
+      truckRemark: "",
+      table1: false,
+      //添加到那个车序号
+      toCxh: null,
+      //最大车序号数
+      maxCxh: 1,
+      //存放每一行记录的合并数
+      spanArr: [],
+      //pos是spanArr的索引
+      pos: 0,
+      //判断是内层还是外层点击的收货地址浏览
+      inOrOut: 0,
+      //地址输入框的值
+      addresText: "",
+      //已选中省市县
+      address: null,
+      //具体地址
+      place: null,
+      //暂存具体地址
+      place1: null,
+      //省市县Id
+      addressId: null,
+      // input: "",
+      //物资表格多选
+      option: {
+        // 表格请求数据的地址
+        requestUrl: "/api/v1/uc/getSteelMaterial?apiId=244",
+        // 控制显示多选列
+        selectionType: "select"
+      },
+      //物资表格单选
+      option1: {
+        // 表格请求数据的地址
+        requestUrl: "/api/v1/uc/getSteelMaterial?apiId=244",
+        // 控制显示单选列
+        selectionType: "radio"
+      },
+      selectionList: [],
+      selectionList1: [],
+      drawer1: false,
+      direction: "rtl",
+      form1: {},
+      value: undefined,
+      frist: {
+        requestUrl: "/api/v1/ams/getAddressDeliveryAddress?apiId=255",
+        selectionType: "radio",
+        mapList: []
+      },
+      //所有省
+      provinceList: [],
+      //选中的省
+      province: "",
+      //所有市
+      cityList: [],
+      //选中的市
+      city: "",
+      //所有的县(区)
+      countyList: [],
+      //选中的县
+      county: "",
+      options: [
+        {
+          values: "yes",
+          label: "是"
+        },
+        {
+          values: "no",
+          label: "否"
+        }
+      ],
+      values: "no",
+      //是否磅重销售
+      options2: [
+        {
+          values2: 0,
+          label2: "是"
+        },
+        {
+          values2: 1,
+          label2: "否"
+        }
+      ],
+      values2: 1,
+      receivingCompany: [
+        {
+          values1: "dzgt",
+          label1: "四川省达州钢铁集团有限责任公司"
+        },
+        {
+          values1: "dgsm",
+          label1: "四川达钢商贸有限公司"
+        }
+      ],
+      values1: "dzgt",
+      saleMan: null,
+      saleManText: null,
+      saleMans: [],
+      tableTop: [
+        {
+          prop: "cxh",
+          label: "车序号",
+          width: "50"
+        },
+        {
+          prop: "materialName",
+          label: "物资名称",
+          width: "300",
+          slot: true
+        },
+        {
+          prop: "meterNumber",
+          label: "米数",
+          width: "60",
+          slot: true
+        },
+        {
+          prop: "Specification",
+          label: "规格型号",
+          width: "140"
+        },
+        {
+          prop: "orderPlanWeight",
+          label: "件数",
+          width: "60",
+          slot: true
+        },
+        {
+          prop: "isPound",
+          label: "是否磅重销售",
+          width: "80",
+          slot: true
+        },
+        {
+          prop: "saleShipperAddressName",
+          label: "收货地址",
+          width: "400",
+          slot: true
+        },
+        {
+          prop: "saleOrderConsigneeTel",
+          label: "收货客户电话",
+          width: "140",
+          slot: true
+        },
+        {
+          prop: "truckRemark",
+          label: "备注",
+          width: "140",
+          slot: true
+        }
+      ],
+      row: {},
+      //打开更改改物资弹出框
+      drawer: false,
+      //记录为内层打开
+      isOpenDrawer: 0,
+      //记录修改物资单选行的位置
+      indexChangeMaterial: null,
+      //记录单选物资Id
+      selectedMaterialId: null,
+      //记录单选物资名称
+      selectedMaterialName: null,
+      //记录单选物资规格
+      selectedMaterialSpecification: null,
+      //记录单选物资型号
+      selectedMaterialModel: null,
+      //记录单选物资编码
+      selectedMaterialCode: null,
+      //订单确认
+      orderMakeSure: false,
+      //是否自提记录字段
+      saleOrderIsselfMention: null,
+      //收款公司
+      saleOrderReceiveCustomer: null,
+      //是否忽视收货客户电话字段
+      ignoreSaleOrderConsigneeTel: 0
+    };
+  },
+  created() {
+    let loadTime1 = new Date(
+      new Date(new Date().toLocaleDateString()).getTime() +
+        (3600 * 1000 * 8 - 1)
+    ); // 当天8点前
+    let loadTime2 = new Date(
+      new Date(new Date().toLocaleDateString()).getTime() +
+        (3600 * 1000 * 32 - 1)
+    ); // 次天8点前
+    if (new Date().getTime() - loadTime1 > 0) {
+      this.saleDateOfReceipt = loadTime2;
+    } else {
+      this.saleDateOfReceipt = loadTime1;
+    }
+    //获取所有的省
+    this.getAllProvince();
+    //获取所有的业务员
+    this.getAllsaleMan();
+    //获取所有的销售订单信息
+    this.getAllSaleMessages();
+  },
+  methods: {
+    onblur() {
+      this.isCellClick = 0;
+      console.log("我这里值也变化了");
+    },
+    goclick() {
+      this.isCellClick = 1;
+      console.log("我这里值变化了");
+    },
+    rowDbClick(row) {
+      this.materialList1 = [];
+      this.materialList1.push(row);
+      this.makeSureMaterial();
+    },
+    //获取所有的销售订单信息
+    getAllSaleMessages() {
+      this.axios
+        .post(
+          "/api/v1/ams/getAllSaleMessages?saleOrderId=" +
+            this.$route.params.saleOrderId
+        )
+        .then(res => {
+          //销售订单基础数据
+          console.log(res);
+          this.shipperName = res.data.data.shipperName;
+          this.shipperId = res.data.data.shipperId;
+          this.consigneeName = res.data.data.receiveName;
+          this.consigneeId = res.data.data.receiveId;
+          this.remarks = res.data.data.saleRemark;
+          if (res.data.data.isSelfMention == "否") {
+            this.values = "no";
+          } else {
+            this.values = "yes";
+          }
+          if (
+            res.data.data.saleOrderReceiveCustomer ==
+            "四川省达州钢铁集团有限责任公司"
+          ) {
+            this.values1 = "dzgt";
+          } else {
+            this.values1 = "dgsm";
+          }
+          this.salerId = res.data.data.salerId;
+          this.saleMan = res.data.data.salerId;
+          this.saleRemark = res.data.data.saleRemark;
+          //下方车序号数据
+          res.data.data.mapList.forEach(e => {
+            var haveMeter;
+            if (e.steelMeters) {
+              haveMeter = 1;
+            } else {
+              haveMeter = 0;
+            }
+            if (e.materialName.includes("米")) {
+              var addmap = {
+                cxh: e.truckNo,
+                materialName: e.materialName,
+                Specification: e.Specification,
+                materialCode: e.materialCode,
+                orderPlanWeight: e.materialNumber,
+                isPound: e.isPoundSale,
+                saleShipperAddressId: e.shipperAddressId,
+                place: e.place,
+                saleShipperAddressName: e.saleShipperAddressName + e.place,
+                saleDateOfReceipt: e.saleDateOfReceipt,
+                saleOrderConsigneeTel: e.saleOrderConsigneeTel,
+                materialId: e.materialId,
+                truckRemark: e.truckRemark,
+                haveMeter: haveMeter,
+                meterNumber: Number(e.materialName.replace(/[^0-9]/gi, "")),
+                //有米数
+                haveMeter: 1,
+                isDisable: 1
+              };
+            } else {
+              var addmap = {
+                cxh: e.truckNo,
+                materialName: e.materialName,
+                Specification: e.Specification,
+                materialCode: e.materialCode,
+                orderPlanWeight: e.materialNumber,
+                meterNumber: e.steelMeters,
+                isPound: e.isPoundSale,
+                saleShipperAddressId: e.shipperAddressId,
+                place: e.place,
+                saleShipperAddressName: e.saleShipperAddressName + e.place,
+                saleDateOfReceipt: e.saleDateOfReceipt,
+                saleOrderConsigneeTel: e.saleOrderConsigneeTel,
+                materialId: e.materialId,
+                truckRemark: e.truckRemark,
+                haveMeter: haveMeter
+              };
+            }
+            this.selectionList.push(addmap);
+          });
+          //调用记录每一行的合并数的方法
+          this.getSpanArr(this.selectionList);
+          //确定有多少车序号
+          this.spanArr.forEach(item => {
+            if (item > 0) {
+              //最大车序号加1
+              this.maxCxh += 1;
+            }
+          });
+        });
+    },
+    //获取所有的业务员数据
+    getAllsaleMan() {
+      this.axios.get("/api/v1/uc/getSalerList").then(res => {
+        this.saleMans = res.data.data;
+      });
+    },
+    //获取所有省数据
+    getAllProvince() {
+      this.axios.post("/api/v1/uc/getAllProvince").then(res => {
+        this.provinceList = res.data.data;
+      });
+    },
+    //省改变
+    onchangeProvince() {
+      this.axios
+        .post(
+          "/api/v1/uc/getDistrictByProvince?addressProvince=" + this.province
+        )
+        .then(res => {
+          this.cityList = res.data.data;
+        });
+    },
+    //市改变
+    onchangeCity() {
+      this.axios
+        .post("/api/v1/uc/getTownByDistrict?addressDistrict=" + this.city)
+        .then(res => {
+          this.countyList = res.data.data;
+        });
+    },
+    //县(区)改变
+    onchangeCounty() {
+      let mapValue = {
+        addressProvince: this.province,
+        addressDistrict: this.city,
+        addressTown: this.county
+      };
+      this.axios.post("/api/v1/uc/getPlaceByAllAddress", mapValue).then(res => {
+        this.addressId = res.data.data[0].addressId;
+      });
+    },
+    //发货单位弹出层
+    handleSelectCarrier(item) {
+      this.shipperName = item.shipperName;
+      this.shipperId = item.shipperId;
+    },
+    //以下是发货单位边输边查搜索
+    querySearchCarrier(queryString, cb) {
+      this.axios
+        .post("/api/v1/uc/getRequireUnitName?index=" + queryString)
+        .then(res => {
+          if (res.data.code == "200") {
+            var restaurantsCarrier = res.data.data;
+            var results = queryString
+              ? restaurantsCarrier.filter(this.createFilterCarrier(queryString))
+              : restaurantsCarrier;
+            // 调用 callback 返回建议列表的数据
+            cb(results);
+          }
+        });
+    },
+    createFilterCarrier(queryString) {
+      return restaurantsCarrier => {
+        return (
+          restaurantsCarrier.shipperName
+            .toLowerCase()
+            .indexOf(queryString.toLowerCase()) > -1
+        );
+      };
+    },
+    //以上是发货单位边输边查搜索
+    //下单客户弹出层
+    handleSelectConsignee(item) {
+      this.consigneeName = item.consigneeCompanyName;
+      this.consigneeId = item.consigneeId;
+      //带出摘要
+      this.axios
+        .post("/api/v1/uc/getSaleArea?receiveId=" + this.consigneeId)
+        .then(res => {
+          this.remarks = res.data.data;
+        });
+      this.axios
+        .post(
+          "/api/v1/ams/matchingAddressRecently?receiveId=" + this.consigneeId
+        )
+        .then(res => {
+          const place = res.data.data;
+          console.log(place);
+          this.saleShipperAddressName =
+            place[0].addressProvince +
+            place[0].addressDistrict +
+            place[0].addressTown +
+            place[0].place;
+          this.saleShipperAddressId = place[0].shipperAddressId;
+          this.place1 = place[0].place;
+          this.saleMan = place[0].salerId;
+          this.saleOrderConsigneeTel = place[0].saleOrderConsigneeTel;
+        });
+    },
+    //以下是下单客户边输边查搜索
+    querySearchConsignee(queryString, cb) {
+      this.axios
+        .post("/api/v1/uc/getConsigneeByLike?index=" + queryString)
+        .then(res => {
+          if (res.data.code == "200") {
+            var restaurantsConsignee = res.data.data;
+            var results = queryString
+              ? restaurantsConsignee.filter(
+                  this.createFilterConsignee(queryString)
+                )
+              : restaurantsConsignee;
+            // 调用 callback 返回建议列表的数据
+            cb(results);
+          }
+        });
+    },
+    createFilterConsignee(queryString) {
+      return restaurantsConsignee => {
+        return (
+          restaurantsConsignee.value
+            .toLowerCase()
+            .indexOf(queryString.toLowerCase()) > -1
+        );
+      };
+    },
+    //以上是下单客户边输边查搜索
+    //新增物资
+    addMaterial() {
+      if (!this.shipperName) {
+        this.$message.warning("发货单位未填写!");
+      } else if (!this.consigneeName) {
+        this.$message.warning("下单客户未填写!");
+      } else if (!this.consigneeId) {
+        this.$message.error("请选择一个下单客户下拉框中的选项!");
+      } else if (!this.saleMan) {
+        this.$message.warning("业务员未选择!");
+      } else {
+        this.option.requestUrl =
+          "/api/v1/uc/getSteelMaterial?apiId=244&i=" + new Date();
+        this.table1 = true;
+      }
+    },
+    //返回选中的物资信息
+    selectionChange(selection) {
+      this.materialList1 = [];
+      this.materialList1 = selection;
+    },
+    //确认新增物资
+    makeSureMaterial() {
+      this.onblur();
+      //记录是理重还是磅重
+      var getisPound = 1;
+      this.materialList1.forEach(e => {
+        if (!e.materialSpecification) {
+          e.materialSpecification = "";
+        }
+        if (!e.materialModel) {
+          e.materialModel = "";
+        }
+        //判断物资是否为盘螺或非定尺
+        if (
+          e.materialName.includes("盘螺") ||
+          e.materialName.includes("乱尺") ||
+          e.materialName.includes("盘元") ||
+          e.materialName.includes("盘圆")
+        ) {
+          getisPound = 0;
+        } else {
+          getisPound = 1;
+        }
+        //若物资为带有盘螺、盘圆、盘元,默认无米数
+        if (
+          e.materialName.includes("盘螺") ||
+          e.materialName.includes("盘圆") ||
+          e.materialName.includes("盘元")
+        ) {
+          var addmap = {
+            materialName: e.materialName,
+            Specification: e.materialSpecification + e.materialModel,
+            materialCode: e.materialCode,
+            orderPlanWeight: null,
+            meterNumber: null,
+            isPound: getisPound,
+            //物资Id
+            materialId: e.materialId,
+            //无米数
+            haveMeter: 0
+          };
+        } else {
+          if (e.materialName.includes("米")) {
+            console.log(e.materialName.replace(/[^0-9]/gi, ""));
+            var addmap = {
+              materialName: e.materialName,
+              Specification: e.materialSpecification + e.materialModel,
+              materialCode: e.materialCode,
+              orderPlanWeight: null,
+              meterNumber: Number(e.materialName.replace(/[^0-9]/gi, "")),
+              isPound: getisPound,
+              //物资Id
+              materialId: e.materialId,
+              //有米数
+              haveMeter: 1,
+              isDisable: 1
+            };
+          } else {
+            var addmap = {
+              materialName: e.materialName,
+              Specification: e.materialSpecification + e.materialModel,
+              materialCode: e.materialCode,
+              orderPlanWeight: null,
+              meterNumber: null,
+              isPound: getisPound,
+              //物资Id
+              materialId: e.materialId,
+              //有米数
+              haveMeter: 1
+            };
+          }
+        }
+        this.materialList.push(addmap);
+      });
+      this.materialList1 = [];
+      this.table1 = false;
+      //初始化查询数据
+      (this.materialNameText = null),
+        (this.materialSpecificationText = null),
+        (this.materialModelText = null);
+    },
+    //删除物资行数据
+    deleteMaterialRow(index, rows) {
+      rows.splice(index, 1);
+      this.onblur();
+    },
+    //删除一车数据
+    deleteRow(index, rows) {
+      this.onblur();
+      //删除车序号相同的行
+      if (this.spanArr[index] == 1) {
+        //动态调整车序号
+        rows.forEach(e => {
+          if (rows[index].cxh < e.cxh) {
+            e.cxh -= 1;
+          }
+        });
+        //最大车序号减1
+        this.maxCxh -= 1;
+      }
+      rows.splice(index, 1);
+      //调用记录每一行的合并数的方法
+      this.getSpanArr(this.selectionList);
+    },
+    //准备生成部分订单
+    createACar() {
+      this.onblur();
+      let i = 0;
+      this.materialList.forEach(e => {
+        if (!/(^[1-9]\d*$)/.test(e.orderPlanWeight)) {
+          e.orderPlanWeight = null;
+          i++;
+        }
+      });
+      if (i != 0) {
+        this.$message.error("件数必填且请输入正整数");
+        return;
+      }
+      this.materialList.forEach(e => {
+        if (e.materialName.includes("定尺")) {
+          if (!e.meterNumber) {
+            i++;
+          }
+        }
+      });
+      if (i != 0) {
+        this.$message.error("定尺必须填写米数");
+        return;
+      }
+      if (
+        !this.saleOrderConsigneeTel &&
+        this.ignoreSaleOrderConsigneeTel == 0
+      ) {
+        this.$confirm(
+          "收货客户电话未填写会导致无法接收车辆发货短信, 是否继续?",
+          "提示",
+          {
+            confirmButtonText: "确定",
+            cancelButtonText: "取消",
+            type: "warning"
+          }
+        )
+          .then(() => {
+            this.ignoreSaleOrderConsigneeTel = 1;
+            this.addMaterialToSaleOrder();
+          })
+          .catch(() => {
+            this.$message.info("已取消!");
+          });
+      } else {
+        this.addMaterialToSaleOrder();
+      }
+    },
+    //添加物资到订单
+    addMaterialToSaleOrder() {
+      this.onblur();
+      if (this.materialList.length == 0) {
+        this.$message.warning("请至少为这一车添加一个物资!");
+      } else if (!this.saleShipperAddressName && this.values == "no") {
+        this.$message.warning("收货地址未填写!");
+      } else if (
+        this.materialList.length == 1 &&
+        this.materialList[0].carNumber != null
+      ) {
+        var eachOrderPlanWeight =
+          this.materialList[0].orderPlanWeight / this.materialList[0].carNumber;
+        if (isIntegerNumber(eachOrderPlanWeight)) {
+          var e = this.materialList[0];
+          for (var i = 0; i < this.materialList[0].carNumber; i++) {
+            var addmap = {
+              cxh: this.maxCxh,
+              materialName: e.materialName,
+              Specification: e.Specification,
+              materialCode: e.materialCode,
+              orderPlanWeight: eachOrderPlanWeight,
+              meterNumber: e.meterNumber,
+              isPound: e.isPound,
+              saleShipperAddressId: this.saleShipperAddressId,
+              place: this.place1,
+              saleShipperAddressName: this.saleShipperAddressName,
+              saleDateOfReceipt: this.saleDateOfReceipt,
+              saleOrderConsigneeTel: this.saleOrderConsigneeTel,
+              materialId: e.materialId,
+              haveMeter: e.haveMeter,
+              isDisable: e.isDisable
+            };
+            this.selectionList.push(addmap);
+            //最大车序号加1
+            this.maxCxh += 1;
+          }
+          //清空materialList
+          this.materialList = [];
+          //调用记录每一行的合并数的方法
+          this.getSpanArr(this.selectionList);
+        } else {
+          this.$message.warning("分配件数不是整数!");
+        }
+      } else {
+        this.materialList.forEach(e => {
+          var addmap = {
+            cxh: this.maxCxh,
+            materialName: e.materialName,
+            Specification: e.Specification,
+            materialCode: e.materialCode,
+            orderPlanWeight: e.orderPlanWeight,
+            meterNumber: e.meterNumber,
+            isPound: e.isPound,
+            saleShipperAddressId: this.saleShipperAddressId,
+            place: this.place1,
+            saleShipperAddressName: this.saleShipperAddressName,
+            saleDateOfReceipt: this.saleDateOfReceipt,
+            saleOrderConsigneeTel: this.saleOrderConsigneeTel,
+            materialId: e.materialId,
+            haveMeter: e.haveMeter,
+            isDisable: e.isDisable
+          };
+          this.selectionList.push(addmap);
+        });
+        //清空materialList
+        this.materialList = [];
+        //最大车序号加1
+        this.maxCxh += 1;
+        //调用记录每一行的合并数的方法
+        this.getSpanArr(this.selectionList);
+      }
+    },
+    // 添加物资到某个车序号
+    addToCxh() {
+      this.onblur();
+      console.log("wkk");
+      if (!this.toCxh) {
+        this.$message.warning("请先在左侧输入要添加物资的车序号!");
+      } else {
+        this.addMaterialToCxh(this.toCxh);
+      }
+    },
+    //添加物资到某个车序号
+    addMaterialToCxh(toCxh) {
+      this.onblur();
+      let i = 0;
+      this.materialList.forEach(e => {
+        if (!/(^[1-9]\d*$)/.test(e.orderPlanWeight)) {
+          e.orderPlanWeight = null;
+          i++;
+        }
+      });
+      if (i != 0) {
+        this.$message.error("件数必填且请输入正整数");
+        return;
+      }
+      this.materialList.forEach(e => {
+        if (e.materialName.includes("定尺")) {
+          if (!e.meterNumber) {
+            i++;
+          }
+        }
+      });
+      if (i != 0) {
+        this.$message.error("定尺必须填写米数");
+        return;
+      }
+      if (this.materialList.length == 0) {
+        this.$message.warning("请至少为这车序号添加一个物资!");
+      } else {
+        //保存当前车序号数据
+        var arr = this.selectionList;
+        //清空原车序号数据
+        this.selectionList = [];
+        //记录是否已经执行了新增物资插入操作
+        var alreadyAdd = 0;
+        //获取新增物资应当插入的位置并插入
+        arr.forEach((item, index) => {
+          if (item.cxh <= toCxh) {
+            //插入到新增物资之前
+            this.selectionList.push(item);
+          } else {
+            //插入新增物资
+            if (alreadyAdd == 0) {
+              this.materialList.forEach(e => {
+                var addmap = {
+                  cxh: this.selectionList[index - 1].cxh,
+                  materialName: e.materialName,
+                  Specification: e.Specification,
+                  materialCode: e.materialCode,
+                  orderPlanWeight: e.orderPlanWeight,
+                  meterNumber: e.meterNumber,
+                  isPound: e.isPound,
+                  saleShipperAddressId: this.selectionList[index - 1]
+                    .saleShipperAddressId,
+                  place: this.selectionList[index - 1].place,
+                  saleShipperAddressName: this.selectionList[index - 1]
+                    .saleShipperAddressName,
+                  saleDateOfReceipt: this.selectionList[index - 1]
+                    .saleDateOfReceipt,
+                  saleOrderConsigneeTel: this.selectionList[index - 1]
+                    .saleOrderConsigneeTel,
+                  materialId: e.materialId,
+                  haveMeter: e.haveMeter,
+                  isDisable: e.isDisable
+                };
+                this.selectionList.push(addmap);
+              });
+              //清空materialList
+              this.materialList = [];
+              //设定为已经执行了车序号物资新增操作
+              alreadyAdd = 1;
+            }
+            //插入到新增物资之后
+            this.selectionList.push(item);
+          }
+        });
+        //若添加的车序号为最后一个车序号
+        if (alreadyAdd == 0) {
+          //插入新增物资
+          console.log("1345wjj");
+          this.materialList.forEach(e => {
+            var addmap = {
+              cxh: arr[this.selectionList.length - 1].cxh,
+              materialName: e.materialName,
+              Specification: e.Specification,
+              materialCode: e.materialCode,
+              orderPlanWeight: e.orderPlanWeight,
+              meterNumber: e.meterNumber,
+              isPound: e.isPound,
+              saleShipperAddressId:
+                arr[this.selectionList.length - 1].saleShipperAddressId,
+              place: arr[this.selectionList.length - 1].place,
+              saleShipperAddressName:
+                arr[this.selectionList.length - 1].saleShipperAddressName,
+              saleDateOfReceipt:
+                arr[this.selectionList.length - 1].saleDateOfReceipt,
+              saleOrderConsigneeTel:
+                arr[this.selectionList.length - 1].saleOrderConsigneeTel,
+              materialId: e.materialId,
+              haveMeter: e.haveMeter,
+              isDisable: e.isDisable
+            };
+            this.selectionList.push(addmap);
+          });
+          //清空materialList
+          this.materialList = [];
+        }
+        //调用记录每一行的合并数的方法
+        this.getSpanArr(this.selectionList);
+      }
+    },
+    //更改行物资
+    changeMaterial(index) {
+      this.option1.requestUrl =
+        "/api/v1/uc/getSteelMaterial?apiId=244&i=" + new Date();
+      this.drawer = true;
+      this.isOpenDrawer = 1;
+      this.indexChangeMaterial = index;
+    },
+    //关闭更改行物资
+    closeChangeMaterial() {
+      this.drawer = false;
+      this.isOpenDrawer = 0;
+      this.$message.info("取消更改!");
+    },
+    //单选一行物资
+    currentRadioChange(row) {
+      this.selectedMaterialId = row.materialId;
+      this.selectedMaterialName = row.materialName;
+      this.selectedMaterialSpecification = row.materialSpecification;
+      this.selectedMaterialModel = row.materialModel;
+      this.selectedMaterialCode = row.materialCode;
+    },
+    //确认物资修改
+    makeSureChange() {
+      this.onblur();
+      if (!this.selectedMaterialId) {
+        this.$message.warning("请先选择一个物资!");
+      } else {
+        if (!this.selectedMaterialSpecification) {
+          this.selectedMaterialSpecification = "";
+        }
+        if (!this.selectedMaterialModel) {
+          this.selectedMaterialModel = "";
+        }
+        //记录是理重还是磅重
+        var getisPound = 1;
+        //判断物资是否为盘螺或非定尺
+        if (
+          this.selectedMaterialName.includes("盘螺") ||
+          this.selectedMaterialName.includes("乱尺") ||
+          this.selectedMaterialName.includes("盘元") ||
+          this.selectedMaterialName.includes("盘圆")
+        ) {
+          getisPound = 0;
+        } else {
+          getisPound = 1;
+        }
+        this.selectionList[
+          this.indexChangeMaterial
+        ].materialId = this.selectedMaterialId;
+        this.selectionList[
+          this.indexChangeMaterial
+        ].materialName = this.selectedMaterialName;
+        this.selectionList[this.indexChangeMaterial].Specification =
+          this.selectedMaterialSpecification + this.selectedMaterialModel;
+        this.selectionList[
+          this.indexChangeMaterial
+        ].materialCode = this.selectedMaterialModel;
+        this.selectionList[this.indexChangeMaterial].isPound = getisPound;
+        //确定更改的物资有无米数
+        if (
+          this.selectedMaterialName.includes("盘螺") ||
+          this.selectedMaterialName.includes("盘圆") ||
+          this.selectedMaterialName.includes("盘元")
+        ) {
+          this.selectionList[this.indexChangeMaterial].haveMeter = 0;
+          this.selectionList[this.indexChangeMaterial].meterNumber = null;
+        } else {
+          this.selectionList[this.indexChangeMaterial].haveMeter = 1;
+        }
+        //重新初始化
+        this.indexChangeMaterial = null;
+        this.selectedMaterialId = null;
+        this.selectedMaterialName = null;
+        this.selectedMaterialSpecification = null;
+        this.selectedMaterialModel = null;
+        this.selectedMaterialCode = null;
+        //关闭弹出框
+        this.drawer = false;
+        this.isOpenDrawer = 0;
+        //初始化查询数据
+        (this.materialNameText = null),
+          (this.materialSpecificationText = null),
+          (this.materialModelText = null);
+        this.$message.success("成功更改!");
+      }
+    },
+    //记录每一行的合并数
+    getSpanArr(data) {
+      //每次调用方法初始化
+      this.spanArr = [];
+      for (var i = 0; i < data.length; i++) {
+        if (i === 0) {
+          this.spanArr.push(1);
+          this.pos = 0;
+        } else {
+          // 判断当前元素与上一个元素是否相同
+          if (data[i].cxh === data[i - 1].cxh) {
+            this.spanArr[this.pos] += 1;
+            this.spanArr.push(0);
+          } else {
+            this.spanArr.push(1);
+            this.pos = i;
+          }
+        }
+      }
+    },
+    //根据条件合并行
+    cellMerge({ row, column, rowIndex, columnIndex }) {
+      if (columnIndex === 0) {
+        const _row = this.spanArr[rowIndex];
+        const _col = _row > 0 ? 1 : 0;
+        return {
+          rowspan: _row,
+          colspan: _col
+        };
+      }
+      if (columnIndex === 6) {
+        const _row = this.spanArr[rowIndex];
+        const _col = _row > 0 ? 1 : 0;
+        return {
+          rowspan: _row,
+          colspan: _col
+        };
+      }
+      if (columnIndex === 7) {
+        const _row = this.spanArr[rowIndex];
+        const _col = _row > 0 ? 1 : 0;
+        return {
+          rowspan: _row,
+          colspan: _col
+        };
+      }
+    },
+    //点击外层收货地址浏览事件
+    ondrawerOut() {
+      if (this.inOrOut % 2 == 0) {
+        this.inOrOut += 1;
+      }
+      this.frist.requestUrl =
+        "/api/v1/ams/getAddressDeliveryAddress?apiId=255&i=" + new Date();
+      this.drawer1 = true;
+    },
+    //点击内层收货地址浏览事件
+    ondrawer(row, index) {
+      if (this.inOrOut % 2 == 1) {
+        this.inOrOut += 1;
+      }
+      this.row = row;
+      this.row.index = index;
+      this.frist.requestUrl =
+        "/api/v1/ams/getAddressDeliveryAddress?apiId=255&i=" + new Date();
+      this.drawer1 = true;
+    },
+    //查询全国省市县
+    selectAddresClick() {
+      if (this.addresText) {
+        this.frist.requestUrl =
+          "/api/v1/ams/getAddressDeliveryAddress?apiId=255&con=" +
+          this.addresText;
+      } else {
+        this.frist.requestUrl =
+          "/api/v1/ams/getAddressDeliveryAddress?apiId=255&i=" + new Date();
+      }
+    },
+    //收货地址弹出层
+    handleSelect1(item) {
+      console.log("获取所有下拉值!");
+    },
+    //以下是收货地址边输边查搜索
+    querySearch1(queryString, cb) {
+      this.axios
+        .post(
+          "/api/v1/ams/getRealAddressByLike?addressId=" +
+            this.addressId +
+            "&index=" +
+            queryString
+        )
+        .then(res => {
+          if (res.data.code == "200") {
+            var restaurants = res.data.data;
+            var results = queryString
+              ? restaurants.filter(this.createFilter1(queryString))
+              : restaurants;
+            // 调用 callback 返回建议列表的数据
+            cb(results);
+          }
+        });
+    },
+    createFilter1(queryString) {
+      return restaurants => {
+        return (
+          restaurants.value.toLowerCase().indexOf(queryString.toLowerCase()) >
+          -1
+        );
+      };
+    },
+    //以上是收货地址边输边查搜索
+    //监听收货地址模态框点击事件
+    currentRadioChange1(radioList) {
+      this.addressId = radioList.addressId;
+      this.address = radioList.address;
+    },
+    //确定收货地址事件
+    addAddressClick() {
+      if (this.inOrOut % 2 == 0) {
+        for (
+          var i = this.row.index;
+          i < this.spanArr[this.row.index] + this.row.index;
+          i++
+        ) {
+          this.selectionList[i].saleShipperAddressId = this.addressId;
+          this.selectionList[i].place = this.place;
+          this.selectionList[i].saleShipperAddressName =
+            this.province + this.city + this.county + this.place;
+        }
+        this.drawer1 = false;
+      } else {
+        this.saleShipperAddressId = this.addressId;
+        this.saleShipperAddressName =
+          this.province + this.city + this.county + this.place;
+        this.drawer1 = false;
+      }
+      //初始化
+      this.addressId = null;
+      this.province = null;
+      this.cityList = [];
+      this.city = null;
+      this.countyList = [];
+      this.county = null;
+      //暂存具体地址
+      this.place1 = this.place;
+      this.place = null;
+      this.addresText = null;
+    },
+    //批量修改内层值
+    batchUpdateValue(row, index) {
+      for (var i = index; i < this.spanArr[index] + index; i++) {
+        this.selectionList[i].saleOrderConsigneeTel = row.saleOrderConsigneeTel;
+      }
+    },
+    //物资模态框查询
+    onclick() {
+      if (this.isOpenDrawer == 0) {
+        this.option.requestUrl =
+          "/api/v1/uc/getSteelMaterial?apiId=244&materialNameText=" +
+          this.materialNameText +
+          "&materialSpecificationText=" +
+          this.materialSpecificationText +
+          "&materialModelText=" +
+          this.materialModelText;
+      } else {
+        this.option1.requestUrl =
+          "/api/v1/uc/getSteelMaterial?apiId=244&materialNameText=" +
+          this.materialNameText +
+          "&materialSpecificationText=" +
+          this.materialSpecificationText +
+          "&materialModelText=" +
+          this.materialModelText;
+      }
+    },
+    // 确定
+    makeSure() {
+      if (this.selectionList.length == 0) {
+        this.$message.warning("请先填写具体信息");
+        return;
+      }
+      let i = 0;
+      this.selectionList.forEach(e => {
+        if (!/(^[1-9]\d*$)/.test(e.orderPlanWeight)) {
+          e.orderPlanWeight = null;
+          i++;
+        }
+      });
+      if (i != 0) {
+        this.$message.error("件数必填且请输入正整数");
+        return;
+      }
+      this.selectionList.forEach(e => {
+        if (e.materialName.includes("定尺")) {
+          if (!e.meterNumber) {
+            i++;
+          }
+        }
+      });
+      if (i != 0) {
+        this.$message.error("定尺必须填写米数");
+        return;
+      }
+      //获取是否自提字段
+      this.options.forEach(e => {
+        if (this.values == e.values) {
+          this.saleOrderIsselfMention = e.label;
+        }
+      });
+      //获取收款公司字段
+      this.receivingCompany.forEach(f => {
+        if (this.values1 == f.values1) {
+          this.saleOrderReceiveCustomer = f.label1;
+        }
+      });
+      //获取业务员姓名
+      this.saleMans.forEach(g => {
+        if (this.saleMan == g.value) {
+          this.saleManText = g.label;
+        }
+      });
+      this.orderMakeSure = true;
+    },
+    //发送请求
+    sendRequest() {
+      this.orderMakeSure = false;
+      //是否还有件数未填写
+      var orderPlanWeightAllFill = 0;
+      //初始化maplist
+      var mapList = [];
+      this.selectionList.forEach(item => {
+        if (!item.orderPlanWeight) {
+          orderPlanWeightAllFill++;
+        }
+        //初始化mapItem
+        var mapItem = {
+          //车序号
+          truckNo: 0,
+          //省市县id
+          shipperAddressId: 0,
+          //具体地址
+          place: null,
+          //截止日期
+          saleDateOfReceipt: null,
+          //收货方电话
+          saleOrderConsigneeTel: "",
+          //车序号物资ID
+          materialId: 0,
+          //物资件数
+          materialNumber: 0,
+          //米数
+          steelMeters: 0,
+          //是否磅重销售
+          isPoundSale: 0
+        };
+        mapItem.truckNo = item.cxh;
+        mapItem.shipperAddressId = item.saleShipperAddressId;
+        mapItem.place = item.place;
+        mapItem.saleDateOfReceipt = sjTime(item.saleDateOfReceipt);
+        mapItem.saleOrderConsigneeTel = item.saleOrderConsigneeTel;
+        mapItem.materialId = item.materialId;
+        mapItem.materialNumber = item.orderPlanWeight;
+        mapItem.steelMeters = item.meterNumber;
+        mapItem.isPoundSale = item.isPound;
+        mapList.push(mapItem);
+      });
+      let mapValue = {
+        shipperId: this.shipperId,
+        receiveId: this.consigneeId,
+        isSelfMention: this.saleOrderIsselfMention,
+        saleOrderReceiveCustomer: this.saleOrderReceiveCustomer,
+        salerId: this.saleMan,
+        saleRemark: this.remarks,
+        mapList: mapList
+      };
+      //所有列件数都填写
+      if (orderPlanWeightAllFill == 0) {
+        this.axios.post("/api/v1/ams/addSteelSaleOrder", mapValue).then(res => {
+          if (res.data.code == "200") {
+            this.$router.go(-1);
+          }
+          this.$message.success("修改订单成功!");
+        });
+      } else {
+        this.$message.error("还有物资件数未填写!");
+      }
+    },
+    // 取消
+    cancel() {
+      this.$router.go(-1);
+    },
+    //关闭事件
+    handleClose(done) {
+      this.$confirm("确认关闭?")
+        .then(_ => {
+          done();
+        })
+        .catch(_ => {});
+    },
+
+    CloseClick() {}
+  }
+};
+</script>
+<style lang="scss" scoped>
+.addSalePlan {
+  width: 100%;
+}
+.el-drawer__body {
+  overflow: auto;
+}
+.el-drawer__container ::-webkit-scrollbar {
+  display: none;
+}
+.form-box,
+.from {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  margin-top: 5px;
+  margin-bottom: 20px;
+}
+.button-box {
+  display: flex;
+  text-align: center;
+  align-items: center;
+  justify-content: center;
+  margin-top: 0.3125rem;
+  margin-bottom: 1.25rem;
+}
+.select {
+  margin-left: -10rem;
+}
+.demo-form-inline {
+  margin-left: 2rem;
+}
+.table_form {
+  margin-left: -16rem;
+}
+.textinput111 {
+  width: 83px;
+}
+.textinput {
+  width: 50px;
+}
+.textinput1 {
+  width: 50px;
+  text-align: center;
+  size: small;
+}
+.textinput2 {
+  width: 50px;
+  margin-right: 30px;
+}
+.textinput3 {
+  width: 190px;
+}
+.textinput4 {
+  width: 60px;
+}
+.textinput5 {
+  width: 120px;
+}
+</style>

+ 29 - 4
src/views/appoint/components/saleContract/saleOrderSteel.vue

@@ -43,6 +43,15 @@
         v-if="activeName == 'first'"
         ><i class="el-icon-download"></i>Excel</el-button
       >
+      <el-button disabled>物资总件数</el-button>
+      <el-input
+        placeholder=""
+        v-model="matSum"
+        clearable
+        style="width:100px"
+        disabled
+      >
+      </el-input>
     </div>
     <div class="table">
       <el-tabs v-model="activeName" @tab-click="handleClick">
@@ -53,6 +62,7 @@
             ref="excelDom"
             @selection-change="selectionChange"
             :pageSize="200"
+            @func="func"
           >
             <el-table-column
               fixed="right"
@@ -79,6 +89,12 @@
                   @click="deleteclick(scope.row.saleOrderId)"
                   >删除</el-button
                 >
+                <el-button
+                  type="text"
+                  size="small"
+                  @click="copyClick(scope.row.saleOrderId)"
+                  >复制</el-button
+                >
               </template>
             </el-table-column>
           </mergeRowTable>
@@ -116,6 +132,12 @@
                   size="small"
                   >异常处理</el-button
                 >
+                <el-button
+                  type="text"
+                  size="small"
+                  @click="copyClick(scope.row.saleOrderId)"
+                  >复制</el-button
+                >
               </template>
             </el-table-column>
           </mergeRowTable>
@@ -212,7 +234,6 @@ export default {
           1,
           2,
           3,
-          7,
           8,
           9,
           10,
@@ -225,7 +246,8 @@ export default {
           17,
           18,
           20,
-          21
+          21,
+          22
         ]
       },
       option5: {
@@ -254,7 +276,8 @@ export default {
         ]
       },
       mapList: [],
-      mapItemList: []
+      mapItemList: [],
+      matSum: null
     };
   },
   created() {
@@ -588,7 +611,9 @@ export default {
     click(saleOrderId) {
       this.$router.push("/editSaleOrder/" + saleOrderId);
     },
-
+    copyClick(saleOrderId) {
+      this.$router.push("/copySteelOrder/" + saleOrderId);
+    },
     // 上传
     uploadclick(saleOrderId) {
       this.$confirm("是否上传", "提示", {

+ 17 - 9
src/views/appoint/components/ship/addDeliveryAttorney.vue

@@ -53,7 +53,7 @@
     <!-- 确定和取消 -->
     <div class="button_box">
       <el-button @click="cancel">取消</el-button>
-      <el-button type="primary" @click="makeSure">确定</el-button>
+      <el-button type="primary" @click="makeSure" :loading="isLoading">确定</el-button>
     </div>
     <!-- 模态框 -->
     <el-drawer
@@ -92,12 +92,13 @@ export default {
   components: { PageTitle },
   data() {
     return {
+      isLoading:false,
       input: "",
-      carrierId:"",//承运单位id
+      carrierId:null,//承运单位id
       carriers:[],
-      downSwimPortId:"",//提货单位id
+      downSwimPortId:null,//提货单位id
       downSwimPorts:[],
-      portId:"",//到达港id
+      portId:null,//到达港id
       ports:[],
       drawer: false,
       direction: "rtl",
@@ -206,9 +207,11 @@ export default {
     },
     // 确定
     makeSure() {
+      this.isLoading=true;
       // 判断用户是否输入了批次号
       if (this.batchIds == "" || this.batchIds == undefined) {
         this.$message.warning("请选择批次号");
+        this.isLoading=false;
         return;
       }
       let AmsshipDeliveryAttorney = {
@@ -256,17 +259,19 @@ export default {
       var val3 = this.value3;
 
       if (
-        // AmsshipDeliveryAttorney.attorneyId==null||
-        // AmsshipDeliveryAttorney.downSwimPortId == null ||
+        typeof AmsshipDeliveryAttorney.portId =='undefined' || AmsshipDeliveryAttorney.portId==null||
+        typeof AmsshipDeliveryAttorney.downSwimPortId =='undefined' ||  AmsshipDeliveryAttorney.downSwimPortId == null || 
+        typeof AmsshipDeliveryAttorney.requesterGroupId =='undefined' ||  AmsshipDeliveryAttorney.requesterGroupId == null ||
         AmsshipDeliveryAttorney.attorenyPickupIdcard == null ||
         AmsshipDeliveryAttorney.attorneyContactTelephone == null ||
         AmsshipDeliveryAttorney.attorneyPickupContactPerson == null
       )
         this.$message.error("存在空值,请核实以后再提交");
-      else if (!isTelePhone(val2)) this.$message.warning("联系电话格式不正确");
+      else if (!isTelePhone(val2)) 
+        this.$message.warning("联系电话格式不正确");
       else if (!checkCardNo(val3))
         this.$message.warning("请输入正确的身份证格式");
-      else
+      else{
         this.axios
           .post(
             "/api/v1/tms/insertshipDeliveryAttorney",
@@ -278,15 +283,18 @@ export default {
                 type: "success",
                 message: "新增成功",
               });
+              this.cancel();
             } else {
               this.$message({
                 type: "warning",
                 message: res.data.data,
               });
             }
-              this.$router.go(-1);
+             this.isLoading=false;
             
           });
+      }
+      this.isLoading=false;
     },
     // 取消
     cancel() {

+ 22 - 4
src/views/appoint/components/ship/addDeliveryNotice.vue

@@ -178,7 +178,7 @@
     <!-- 确定和取消 -->
     <div class="button_box">
       <el-button @click="cancel">取消</el-button>
-      <el-button type="primary" @click="makeSure">确定</el-button>
+      <el-button type="primary" @click="makeSure" :loading="isLoading">确定</el-button>
     </div>
   </div>
 </template>
@@ -191,10 +191,11 @@ export default {
   components: { PageTitle },
   data() {
     return {
+      isLoading:false,
       a: 1,
       cargoPictureUrl: "",
       shippingCertificate: "",
-      portId:"",
+      portId:null,
       ports:[],
       materialType: "",
       receiver: "",
@@ -348,16 +349,20 @@ export default {
       //   this.$message.warning("请选择送达单位");
       //   return;
       // }
+      this.isLoading=true;
       if (this.second2.mapList3.length == 0) {
         this.$message.warning("请选择收货人");
+        this.isLoading=false;
         return;
       }
       if (this.second3.mapList4.length == 0) {
         this.$message.warning("请选择物资品类");
+        this.isLoading=false;
         return;
       }
       if (this.second5.mapList5.length == 0) {
         this.$message.warning("请选择批次");
+        this.isLoading=false;
         return;
       }
 
@@ -427,7 +432,7 @@ export default {
         map.resultContactPerson == null ||
         map.resultTelephoneFax == null ||
         map.resultNumberOfLoans == null ||
-       //map.carrierId == null ||
+        map.portId == null ||
         map.groupId == null ||
         map.inFactoryShipName == null ||
         map.isNeedPortDisCharge == null ||
@@ -436,10 +441,12 @@ export default {
         // map.materialId==null
       ) {
         this.$message.error("存在空值!");
+        this.isLoading=false;
         return;
       }
       if (!isTelePhone(val2)) {
         this.$message.warning("电话号码或传真格式不正确");
+        this.isLoading=false;
         return;
       }
       if (
@@ -447,6 +454,7 @@ export default {
         !isNumber(map.noticePortConstructionFee)
       ) {
         this.$message.error("港建费金额得为数字");
+        this.isLoading=false;
         return;
       }
       if (
@@ -454,6 +462,7 @@ export default {
         !isNumber(map.purchaseContractMoisture)
       ) {
         this.$message.error("合同水分得为数字");
+        this.isLoading=false;
         return;
       }
       if (
@@ -461,6 +470,7 @@ export default {
         !isNumber(map.noticePortConstructionFee)
       ) {
         this.$message.error("港建费金额得为数字");
+        this.isLoading=false;
         return;
       }
       if (
@@ -468,6 +478,7 @@ export default {
         !isNumber(map.noticePileFreeDays)
       ) {
         this.$message.error("免堆天数得为数字");
+        this.isLoading=false;
         return;
       }
 
@@ -476,10 +487,12 @@ export default {
         !isNumber(map.purchaseContractUnitPrice)
       ) {
         this.$message.error("单价得为数字");
+        this.isLoading=false;
         return;
       }
       if (typeof map.tfeContent != "undefined" && !isNumber(map.tfeContent)) {
         this.$message.error("tfe含量得为数字");
+        this.isLoading=false;
         return;
       }
       if (
@@ -487,6 +500,7 @@ export default {
         !isNumber(map.silicaContent)
       ) {
         this.$message.error("二氧化硅含量得为数字");
+        this.isLoading=false;
         return;
       }
       if (
@@ -494,6 +508,7 @@ export default {
         !isNumber(map.aluminaContent)
       ) {
         this.$message.error("氧化铝含量得为数字");
+        this.isLoading=false;
         return;
       }
       if (
@@ -501,6 +516,7 @@ export default {
         !isNumber(map.phosphorusContent)
       ) {
         this.$message.error("含磷量得为数字");
+        this.isLoading=false;
         return;
       }
       if (
@@ -508,6 +524,7 @@ export default {
         !isNumber(map.resultNumberOfLoans)
       ) {
         this.$message.error("放货数量得为数字");
+        this.isLoading=false;
         return;
       } else
         this.axios.post("/api/v1/tms/insertDeliveryNotice", map).then((res) => {
@@ -516,13 +533,14 @@ export default {
               type: "success",
               message: "新增成功",
             });
+            this.cancel();
           } else {
             this.$message({
               type: "warning",
               message: res.data.data,
             });
           }
-          this.$router.go(-1);
+          this.isLoading=false;
         });
     },
     // 取消

+ 10 - 7
src/views/appoint/components/ship/attorneytext.vue

@@ -24,7 +24,7 @@
           >
             <tr>
               <td style="width: 100%; font-family: FangSong">
-                {{ item.carrierName }}:
+                {{ item.portAllName }}:
               </td>
             </tr>
           </table>
@@ -53,7 +53,7 @@
                   item.purchaseOrderMaterialNum
                 }}
                 湿吨(如遇该轮最后一批提货请清场),物流流向:{{
-                  item.portName1
+                  item.portName
                 }}。望贵公司予以支持为盼。
               </td>
             </tr>
@@ -135,7 +135,7 @@
             </tr>
           </table>
         </div>
-        <div>
+        <div class="luokuan">
           <!-- tablePart6 -->
           <table
             border="0"
@@ -223,7 +223,7 @@ export default {
   data() {
     return {
       amsShipDeliveryNameLists: [],
-      htmlTitle: "委托书",
+      htmlTitle: "委托书"
     };
   },
   created() {
@@ -241,13 +241,13 @@ export default {
       console.log(this.amsShipDeliveryNameLists);
       // this.amsShipDeliveryNameLists = this.$route.params.test;
       console.log(this.amsShipDeliveryNameLists);
-      this.amsShipDeliveryNameLists.forEach((e) => {
+      this.amsShipDeliveryNameLists.forEach(e => {
         e.year = e.attorneyTime.split("-")[0];
         e.month = e.attorneyTime.split("-")[1];
         e.date = e.attorneyTime.split("-")[2].split(" ")[0];
       });
-    },
-  },
+    }
+  }
 };
 </script>
 
@@ -272,6 +272,9 @@ export default {
     width: 260px;
   }
 }
+.luokuan {
+  margin-top: 150px !important;
+}
 .tableBody {
   table,
   th,

+ 6 - 0
src/views/appoint/components/ship/deliveryAttorney.vue

@@ -15,6 +15,9 @@
       </el-button>
       <el-button type="primary" class="btn" @click="addClick">
         <i class="el-icon-circle-plus-outline"></i>新增
+      </el-button>
+       <el-button type="primary" @click="refresh()">
+        <i class="el-icon-refresh"></i>刷新
       </el-button>
       <el-button
         type="primary"
@@ -195,6 +198,9 @@ export default {
             message: "下发失败!"
           });
         });
+    },
+    refresh(){
+      this.$router.go(0);
     }
   }
 };

+ 6 - 0
src/views/appoint/components/ship/deliveryNotice.vue

@@ -9,6 +9,9 @@
       <el-button type="primary" class="btn" @click="addClick">
         <i class="el-icon-circle-plus-outline"></i>新增
       </el-button>
+      <el-button type="primary" @click="refresh()">
+        <i class="el-icon-refresh"></i>刷新
+      </el-button>
     </div>
     <el-tabs v-model="activeName" @tab-click="handleClick">
       <!-- 未下发 -->
@@ -167,6 +170,9 @@ export default {
             message: "取消下发!"
           });
         });
+    },
+    refresh(){
+      this.$router.go(0);
     }
   }
 };

+ 1 - 1
src/views/appoint/components/ship/modifyDeliveryNotice.vue

@@ -122,7 +122,7 @@
           class="upload-demo"
           style="width: 270px"
           ref="upload1"
-          action="/api/v1/rms/uploadCarrier1"
+          action="/api/v1/tms/uploadCargoPic"
           :before-upload="beforeUpload"
           :multiple="false"
           list-type="picture"

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

@@ -68,6 +68,7 @@ import inwardTransPrice from "../components/inward/transPrice.vue";
 import inwardAddTransPrice from "../components/inward/addTransPrice.vue";
 import saleOrderOODetails from "../components/saleContract/saleOrderOODetails.vue";
 import updateSaleOrderSteel from "../components/saleContract/updateSaleOrderSteel.vue";
+import copySteelOrder from "../components/saleContract/copySteelOrder.vue";
 Vue.use(Router);
 
 const constantRouterMap = [
@@ -461,6 +462,12 @@ const constantRouterMap = [
         name: "updateSaleOrderSteel",
         meta: { code: "xtpzgl-yhgl" },
         component: updateSaleOrderSteel
+      },
+      {
+        path: "copySteelOrder/:saleOrderId",
+        name: "copySteelOrder",
+        meta: { code: "xtpzgl-yhgl" },
+        component: copySteelOrder
       }
     ]
   }

+ 61 - 21
src/views/queue/components/qmsEnFacotory/queueFStart.vue

@@ -30,11 +30,13 @@
             ><i class="el-icon-search"></i>查询物资</el-button
           >
         </el-form-item>
-        <el-form-item
-          ><el-button type="primary" class="btn" @click="refresh">
-            <i class="el-icon-refresh"></i>刷新
-          </el-button></el-form-item
-        >
+        <el-form-item>
+          <el-badge :value="redDotNum" class="item">
+            <el-button type="primary" class="btn" @click="refresh">
+              <i class="el-icon-refresh"></i>刷新
+            </el-button>
+          </el-badge>
+        </el-form-item>
         <el-form-item
           ><el-button type="primary" class="btn" @click="allow">
             <i class="el-icon-d-arrow-right"></i>放行
@@ -252,35 +254,60 @@ export default {
       //物资信息查询内容
       materialNameText: null,
       materialSpecificationText: null,
-      materialModelText: null
+      materialModelText: null,
+      timer: null,
+      totalQueueNum: null,
+      redDotNum: null,
+      i: 0,
+      totalQueueNumFirst: null
     };
   },
-  created() {
-    this.myWebsocket();
-  },
   mounted() {
+    this.i = 0;
     this.infomation();
     this.getSpellingArray();
     this.getNoSpellingArray();
     this.wantEnfactory();
+    this.start();
+  },
+  computed: {
+    wantS() {
+      return this.totalQueueNum;
+    }
+  },
+  beforeDestroy() {
+    this.timer;
+  },
+  watch: {
+    wantS() {
+      if (this.totalQueueNum - this.totalQueueNumFirst > 0) {
+        this.redDotNum = this.totalQueueNum - this.totalQueueNumFirst;
+      }
+    }
   },
-  // computed: {
-  //   wantS() {
-  //     return this.totalNoEntryTime;
-  //   }
-  // },
   methods: {
-    // myWebsocket() {
-    //   let wss = new WebSocket("wss:wl.dasteel.cn:32322/websocket/socketServer");
-    // },
     wantEnfactory() {
       this.axios.get("/api/v1/uc/getQueueCount").then(res => {
-        console.log(res.data);
+        this.totalQueueNum = res.data.data;
+        console.log(this.totalQueueNum, "totalQueueNum");
+        if (this.i == 0) {
+          this.totalQueueNumFirst = this.totalQueueNum;
+        }
+        this.i++;
       });
     },
+    start() {
+      this.timer = setInterval(this.wantEnfactory, 60000);
+    },
     refresh() {
       this.getSpellingArray();
       this.getNoSpellingArray();
+      this.redDotNum = null;
+      this.totalQueueNum = null;
+      this.totalQueueNumFirst = null;
+      this.i = 0;
+      clearInterval(this.timer);
+      this.start();
     },
     getRowKey(row) {
       return row.ROW_ID;
@@ -403,6 +430,10 @@ export default {
       }
     },
     handleClick() {
+      this.redDotNum = null;
+      this.totalQueueNum = null;
+      this.totalQueueNumFirst = null;
+      this.i = 0;
       if (this.activeName == "first") {
         this.getNoSpellingArray();
       } else {
@@ -424,13 +455,10 @@ export default {
         )
         .then(res => {
           this.tableData = res.data.data;
-          console.log(this.tableData);
           this.getSpanArr(this.tableData);
         });
     },
     onclick() {
-      console.log("我到了这里");
-      console.log(this.capacityNo);
       if (this.activeName == "first") {
         this.axios
           .post(
@@ -524,12 +552,24 @@ export default {
           this.$refs.mutiData.clearSelection();
           this.getNoSpellingArray();
           this.getSpellingArray();
+          this.redDotNum = null;
+          this.totalQueueNum = null;
+          this.totalQueueNumFirst = null;
+          this.i = 0;
+          clearInterval(this.timer);
+          this.start();
         } else {
           this.$message.error("请按顺序勾选");
           this.maplist = [];
           this.$refs.mutiData.clearSelection();
           this.getNoSpellingArray();
           this.getSpellingArray();
+          this.redDotNum = null;
+          this.totalQueueNum = null;
+          this.totalQueueNumFirst = null;
+          this.i = 0;
+          clearInterval(this.timer);
+          this.start();
         }
       });
     }

+ 695 - 0
src/views/statisticalReport/components/salesLogisticsStatistics/saleSteelAllReport.vue

@@ -0,0 +1,695 @@
+//钢材统计报表
+<template>
+  <div class="purchasFuelNewMonitor">
+    <div class="tableTop">
+      <el-form :inline="true" style="margin-top :5px">
+        <el-form-item>
+          <label class="el-form-item__label" style="width: auto;"
+            >订单时间:</label
+          >
+          <el-date-picker
+            v-model="startTime"
+            type="datetime"
+            placeholder="选择日期时间"
+          >
+          </el-date-picker>
+          <span>至</span>
+          <el-date-picker
+            v-model="endTime"
+            type="datetime"
+            placeholder="选择日期时间"
+          >
+          </el-date-picker>
+          <el-button type="primary" class="btn" @click="onclick">
+            <i class="el-icon-search"></i>查询
+          </el-button>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="exportData()"
+            ><i class="el-icon-download"></i>导出(Excel)</el-button
+          >
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="refresh">
+            <i class="el-icon-refresh"></i>刷新
+          </el-button>
+        </el-form-item>
+        <el-form-item>
+          <span style="margin-left: 1rem">合计车数:</span>
+          <el-input
+            v-model="totalCapacity"
+            :disabled="true"
+            style="width: 100px;"
+          ></el-input>
+        </el-form-item>
+      </el-form>
+    </div>
+    <div class="table">
+      <el-table
+        :data="tableData"
+        :span-method="objectSpanMethod"
+        border
+        stripe
+        @filter-change="filterChange"
+        style="width: 100%; margin-top: 20px"
+        max-height="500px"
+        @cell-click="cellClik"
+      >
+        <el-table-column
+          width="50"
+          label="序号"
+          align="center"
+          fixed="left"
+          :resizable="false"
+        >
+          <template slot-scope="scope">{{ scope.row.group + 1 }}</template>
+        </el-table-column>
+        <el-table-column
+          prop="saleOrderNo"
+          label="销售订单号"
+          width="200px"
+          align="center"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="consigneeName"
+          label="下单客户"
+          :width="flexColumnWidth('consigneeName', tableData, 'max')"
+          align="center"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="carrierName"
+          label="承运商"
+          align="center"
+          width="250px"
+        >
+          <template slot-scope="scope">
+            <el-autocomplete
+              style="width:120px"
+              v-model="scope.row.carrierName"
+              :fetch-suggestions="querySearchCarrier"
+              placeholder="请输入承运商"
+              @select="handleSelectCarrier(scope.row, scope.$index)"
+              :disabled="scope.row.isCarrierShow != 1"
+            >
+              <el-button
+                @click="updateTruckCarrier(row)"
+                type="primary"
+                v-if="scope.row.isCarrierShow == 1"
+                >提交</el-button
+              >
+            </el-autocomplete>
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="capacityNo"
+          label="车牌号"
+          align="center"
+          width="250px"
+          :filter-multiple="true"
+          :filters="filterData()"
+          :filter-method="filterTag"
+          @reset="resetChange"
+        >
+          <template slot-scope="scope">
+            <el-autocomplete
+              style="width:120px"
+              v-model="scope.row.capacityNo"
+              :fetch-suggestions="querySearch"
+              placeholder="请输入车牌号"
+              @select="handleSelect(scope.row, scope.$index)"
+              :disabled="scope.row.isCapacityShow != 1"
+            ></el-autocomplete>
+            <el-button
+              @click="updateCapacity(row)"
+              type="primary"
+              v-if="scope.row.isCapacityShow == 1"
+              >提交</el-button
+            >
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="capacityTel"
+          label="司机电话"
+          width="250px"
+          align="center"
+        >
+          <template slot-scope="scope">
+            <el-input
+              style="width:120px"
+              v-model="scope.row.capacityTel"
+              placeholder="请输入电话号码"
+              :disabled="scope.row.isTelShow != 1"
+            ></el-input>
+            <el-button
+              @click="updateDriverTel(scope.row)"
+              type="primary"
+              v-if="scope.row.isTelShow == 1"
+              >提交</el-button
+            >
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="addressPlace"
+          label="收货地址"
+          :width="flexColumnWidth('addressPlace', tableData, 'max')"
+        >
+        </el-table-column>
+        <el-table-column prop="orderStatus" label="运单状态" align="center">
+        </el-table-column>
+        <el-table-column
+          prop="materialName"
+          label="物资名称"
+          align="center"
+          :width="flexColumnWidth('materialName', tableData, 'max')"
+        >
+        </el-table-column>
+        <el-table-column prop="materialSpe" label="物资规格" align="center">
+        </el-table-column>
+        <el-table-column prop="grossWeight" label="毛重"> </el-table-column>
+        <el-table-column
+          prop="grossWeightTime"
+          label="毛重时间"
+          :width="flexColumnWidth('grossWeightTime', tableData, 'max')"
+        >
+        </el-table-column>
+        <el-table-column prop="tareWeight" label="皮重"> </el-table-column>
+        <el-table-column
+          prop="tareWeightTime"
+          label="皮重时间"
+          :width="flexColumnWidth('tareWeightTime', tableData, 'max')"
+        >
+        </el-table-column>
+        <el-table-column prop="netWeight" label="净重"> </el-table-column>
+        <el-table-column
+          prop="entryGateTime"
+          label="进厂时间"
+          :width="flexColumnWidth('entryGateTime', tableData, 'max')"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="loadTime"
+          label="装货时间"
+          :width="flexColumnWidth('loadTime', tableData, 'max')"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="outGateTime"
+          label="出厂时间"
+          :width="flexColumnWidth('outGateTime', tableData, 'max')"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="arrivalAddress"
+          label="抵达地址"
+          :width="flexColumnWidth('arrivalAddress', tableData, 'max')"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="receiptAddress"
+          label="签收地址"
+          :width="flexColumnWidth('receiptAddress', tableData, 'max')"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="orderNo"
+          label="运输订单号"
+          :width="flexColumnWidth('orderNo', tableData, 'max')"
+          align="center"
+        >
+        </el-table-column>
+        <el-table-column prop="saler" label="业务员" align="center">
+        </el-table-column>
+        <el-table-column
+          prop="shipperName"
+          label="发货单位"
+          :width="flexColumnWidth('shipperName', tableData, 'max')"
+          align="center"
+        >
+        </el-table-column>
+        <el-table-column prop="truckNo" label="车序号"> </el-table-column>
+        <el-table-column prop="consigneeTel" label="收货客户电话">
+        </el-table-column>
+        <el-table-column prop="isSelfMention" label="是否自提" align="center">
+        </el-table-column>
+        <el-table-column prop="saleOrderStatus" label="销售订单状态">
+        </el-table-column>
+        <el-table-column
+          label="操作"
+          fixed="right"
+          width="120px"
+          align="center"
+        >
+          <template slot-scope="scope">
+            <el-button
+              type="text"
+              size="small"
+              @click="deleteEasEntryId(scope.row)"
+              >关闭分录</el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+  </div>
+</template>
+
+<script>
+import { sjTime } from "@/utils/sharedJsFile";
+import { getCookie } from "@/utils/util.js";
+
+export default {
+  data() {
+    return {
+      startTime: null,
+      endTime: null,
+      //合计净重
+      totalNumber: 0,
+      //合计车数
+      totalCapacity: 0,
+      tableTitle: "销售统计报表",
+      capacityList: [],
+      carrierList: [],
+      tableData: [],
+      spanArr: [],
+      pos: 0,
+      isCellClick: 0,
+      columnIndexs: [
+        0,
+        1,
+        2,
+        3,
+        4,
+        5,
+        6,
+        7,
+        15,
+        16,
+        17,
+        18,
+        19,
+        20,
+        21,
+        22,
+        23,
+        24,
+        25,
+        26
+      ]
+    };
+  },
+  computed: {
+    filterData() {
+      return function() {
+        let obj = [];
+        //找到对应的数据,并添加到obj
+        this.tableData.filter(item => {
+          let map = {};
+          if (
+            item.capacityNo != null &&
+            item.capacityNo != "" &&
+            item.capacityNo != "null"
+          ) {
+            map.text = item.capacityNo;
+            map.value = item.capacityNo;
+            obj.push(map);
+          }
+        });
+        return this.deWeight(obj);
+      };
+    }
+  },
+  created() {},
+  mounted() {
+    this.getSteelReport();
+  },
+  methods: {
+    resetChange() {
+      console.log("wczhil");
+    },
+    filterChange() {
+      console.log("11");
+    },
+    filterTag(value, row, column) {
+      console.log(value);
+      console.log(row);
+      console.log(column);
+    },
+    // 数组对象去重
+    deWeight(arr) {
+      for (var i = 0; i < arr.length - 1; i++) {
+        for (var j = i + 1; j < arr.length; j++) {
+          if (arr[i].text == arr[j].text) {
+            arr.splice(j, 1);
+            j--;
+          }
+        }
+      }
+      return arr;
+    },
+    cellClik(row, column, cell, event) {
+      if (column.property == "capacityNo") {
+        this.$set(row, "isCapacityShow", 1);
+      }
+      if (column.property == "carrierName") {
+        this.$set(row, "isCarrierShow", 1);
+      }
+      if (column.property == "capacityTel") {
+        this.$set(row, "isTelShow", 1);
+      }
+      if (column.property == "capacityTel") {
+        this.$set(row, "isTelShow", 1);
+      }
+    },
+    //承运商弹出层
+    handleSelectCarrier(row, index, item) {
+      console.log(this.carrierList);
+      console.log(row);
+    },
+    //承运商边输边查
+    querySearchCarrier(queryString, cb) {
+      this.axios
+        .post("/api/v1/uc/getCarrierMesByLike?index=" + queryString)
+        .then(res => {
+          if (res.data.code == "200") {
+            var restaurants = res.data.data;
+            this.carrierList = res.data.data;
+            console.log(restaurants);
+            var results = queryString
+              ? restaurants.filter(this.createFilterCarrier(queryString))
+              : restaurants;
+            cb(results);
+          }
+        });
+    },
+    createFilterCarrier(queryString) {
+      return restaurants => {
+        return (
+          restaurants.value1.toLowerCase().indexOf(queryString.toLowerCase()) >
+          -1
+        );
+      };
+    },
+    //以下是车牌号边输边查搜索
+    querySearch(queryString, cb) {
+      if (queryString.length > 3) {
+        this.axios
+          .post("/api/v1/uc/getCapacityByLike?index=" + queryString)
+          .then(res => {
+            if (res.data.code == "200") {
+              if (res.data.data.length == 0) {
+                this.$message.info("车牌号不存在");
+                return;
+              }
+              this.capacityList = [];
+              var restaurants = res.data.data;
+              this.capacityList = res.data.data;
+              var results = queryString
+                ? restaurants.filter(this.createFilter(queryString))
+                : restaurants;
+              // 调用 callback 返回建议列表的数据
+              cb(results);
+            }
+          });
+      }
+    },
+    createFilter(queryString) {
+      return restaurants => {
+        return (
+          restaurants.value.toLowerCase().indexOf(queryString.toLowerCase()) >
+          -1
+        );
+      };
+    },
+    //车牌号弹出层
+    handleSelect(row, index) {
+      this.capacityList.forEach(item => {
+        if (item.capacityNumber === row.capacityNo) {
+          row.newCapacityId = item.capacityId;
+        }
+      });
+    },
+    //更换车牌号接口
+    updateCapacitySure() {
+      let map = {
+        orderId: this.orderId,
+        saleOrderMaterialId: this.saleOrderMaterialId,
+        lineSequence: this.lineSequence,
+        capacityId: this.newCapacityId
+      };
+      this.axios
+        .post("/api/v1/ams/updateCapacityNumberInFactory", map)
+        .then(res => {
+          if (res.data.code == 200) {
+            this.$message.success("变更成功");
+            this.getSteelReport();
+          } else {
+            this.$message.success("变更失败,请联系管理员");
+            this.getSteelReport();
+          }
+        })
+        .catch(() => {
+          this.$message.success("变更失败,请联系管理员");
+          this.getSteelReport();
+        });
+    },
+    //修改司机电话号码
+    updateDriverTel(row) {
+      console.log(row.capacityTel);
+      this.axios
+        .post("/api/v1/uc/updateDriverTel", {
+          orderId: parseInt(row.orderId),
+          driverTel: row.capacityTel
+        })
+        .then(res => {
+          if (res.data.code == "200") {
+            this.$message.success("修改成功");
+            this.getSteelReport();
+          } else {
+            this.$message.error("修改失败");
+            this.getSteelReport();
+          }
+        })
+        .catch(() => {
+          this.$message.error("修改失败");
+          this.getSteelReport();
+        });
+    },
+    //关闭金蝶分录
+    deleteEasEntryId(row) {
+      let title = `确定关闭-${this.capacityNumber}-金蝶分录?`;
+      this.$confirm(title, {
+        confirmButtonText: "是",
+        cancelButtonText: "否",
+        center: true,
+        type: "warning"
+      })
+        .then(() => {
+          let map = row;
+          map.isCloseEas = Number(0);
+          map.saleOrderId = this.$route.params.saleOrderId;
+          this.axios
+            .post("/api/v1/ams/updateCarAddress", map)
+            .then(res => {
+              if (res.data.code == "200") {
+                this.$message.success("关闭成功");
+                this.getOrderList();
+              } else {
+                this.$message.error("关闭失败");
+                this.getOrderList();
+              }
+            })
+            .catch(() => {
+              this.$message.error("关闭失败");
+              this.getOrderList();
+            });
+        })
+        .catch(() => {
+          this.$message.info("取消删除");
+        });
+    },
+    //修改承运商授权
+    //修改承运商授权
+    updateTruckCarrier(row) {
+      this.axios.post("/api/v1/ams/updateTruckNoCarrier", map).then(res => {
+        if (res.data.code == "200") {
+          this.$message.success("修改授权成功");
+          this.getRequestUrl();
+          this.dialogTableVisible = false;
+        }
+      });
+    },
+    //记录每一行的合并数
+    getSpanArr(data) {
+      //每次调用方法初始化
+      this.spanArr = [];
+      for (var i = 0; i < data.length; i++) {
+        if (i === 0) {
+          this.spanArr.push(1);
+          data[i].group = i;
+          this.pos = 0;
+        } else {
+          // 判断当前元素与上一个元素是否相同
+          if (data[i].saleOrderMaterialId === data[i - 1].saleOrderMaterialId) {
+            this.spanArr[this.pos] += 1;
+            data[i].group = data[i - 1].group;
+            this.spanArr.push(0);
+          } else {
+            this.spanArr.push(1);
+            this.pos = i;
+            data[i].group = data[i - 1].group + 1;
+          }
+        }
+      }
+      this.totalCapacity = data[data.length - 1].group;
+    },
+    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
+      if (this.columnIndexs.indexOf(columnIndex) != -1) {
+        const _row = this.spanArr[rowIndex];
+        const _col = _row > 0 ? 1 : 0;
+        return {
+          rowspan: _row,
+          colspan: _col
+        };
+      }
+    },
+    //查询,输入查询条件
+    onclick() {
+      let startTime = null;
+      let endTime = null;
+      let carrierSsoId = null;
+      if (this.startTime && this.endTime) {
+        startTime = sjTime(this.startTime);
+        endTime = sjTime(this.endTime);
+      }
+      if (getCookie("orgCode") == "chengyunshang") {
+        carrierSsoId = getCookie("userId");
+      }
+      this.axios
+        .post(
+          "/api/v1/tms/getSaleSteelReport?startTime=" +
+            startTime +
+            "&endTime=" +
+            endTime +
+            "&carrierSsoId=" +
+            carrierSsoId +
+            "&i=" +
+            new Date() +
+            "&remark=" +
+            this.input
+        )
+        .then(res => {
+          this.tableData = res.data.data;
+          this.getSpanArr(res.data.data);
+        });
+    },
+    //重新获取表格数据
+    refresh() {
+      this.getSteelReport();
+    },
+    //获取钢材统计报表
+    getSteelReport() {
+      let carrierSsoId = null;
+      if (getCookie("orgCode") == "chengyunshang") {
+        carrierSsoId = getCookie("userId");
+      }
+      this.axios
+        .post(
+          "/api/v1/tms/getSaleSteelReport?startTime=" +
+            null +
+            "&endTime=" +
+            null +
+            "&carrierSsoId=" +
+            carrierSsoId +
+            "&i=" +
+            new Date()
+        )
+        .then(res => {
+          this.tableData = res.data.data;
+          this.getSpanArr(res.data.data);
+        });
+    },
+    //控制列自动撑开
+    flexColumnWidth(str, tableData, flag) {
+      // str为该列的字段名(传字符串);tableData为该表格的数据源(传变量);
+      // flag为可选值,可不传该参数,传参时可选'max'或'equal',默认为'max'
+      // flag为'max'则设置列宽适配该列中最长的内容,flag为'equal'则设置列宽适配该列中第一行内容的长度。
+      str = str + "";
+      let columnContent = "";
+      if (
+        !tableData ||
+        !tableData.length ||
+        tableData.length === 0 ||
+        tableData === undefined
+      ) {
+        return;
+      }
+      if (!str || !str.length || str.length === 0 || str === undefined) {
+        return;
+      }
+      if (flag === "equal") {
+        // 获取该列中第一个不为空的数据(内容)
+        for (let i = 0; i < tableData.length; i++) {
+          if (tableData[i][str].length > 0) {
+            columnContent = tableData[i][str] + "";
+            break;
+          }
+        }
+      } else {
+        // 获取该列中最长的数据(内容)
+        let index = 0;
+        for (let i = 0; i < tableData.length; i++) {
+          if (tableData[i][str] === null) {
+            // 当数据为空时跳过本次循环获取下一条数据长度
+            continue;
+          }
+          const now_temp = tableData[i][str] + "";
+          const max_temp = tableData[index][str] + "";
+          if (now_temp.length > max_temp.length) {
+            index = i;
+          }
+        }
+        columnContent = tableData[index][str] + "";
+      } // 以下分配的单位长度可根据实际需求进行调整
+      let flexWidth = 0;
+      if (columnContent != undefined) {
+        for (const char of columnContent) {
+          if ((char >= "A" && char <= "Z") || (char >= "a" && char <= "z")) {
+            // 如果是英文字符,为字符分配10个单位宽度
+            flexWidth += 10;
+          } else if (char >= "\u4e00" && char <= "\u9fa5") {
+            // 如果是中文字符,为字符分配16个单位宽度
+            flexWidth += 14;
+          } else {
+            // 其他种类字符,为字符分配10个单位宽度
+            flexWidth += 10;
+          }
+        }
+      }
+      if (flexWidth < 80) {
+        // 设置最小宽度
+        flexWidth = 80;
+      }
+      if (flexWidth > 500) {
+        // 设置最大宽度
+        flexWidth = 500;
+      }
+      return flexWidth + "px";
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+.purchasFuelNewMonitor {
+  .tableTop {
+    margin-left: 20px;
+    margin-top: 20px;
+  }
+  .table {
+    margin-left: 20px;
+    margin-top: 20px;
+  }
+}
+</style>

+ 516 - 0
src/views/statisticalReport/components/salesLogisticsStatistics/steelReportCom.vue

@@ -0,0 +1,516 @@
+<template>
+  <el-table
+    :data="tableData"
+    :span-method="objectSpanMethod"
+    border
+    stripe
+    style="width: 100%; margin-top: 20px"
+    max-height="500px"
+    @cell-click="cellClik"
+  >
+    <el-table-column
+      width="50"
+      label="序号"
+      align="center"
+      fixed="left"
+      :resizable="false"
+    >
+      <template slot-scope="scope">{{ scope.row.group + 1 }}</template>
+    </el-table-column>
+    <el-table-column
+      prop="saleOrderNo"
+      label="销售订单号"
+      width="200px"
+      align="center"
+    >
+    </el-table-column>
+    <el-table-column
+      prop="consigneeName"
+      label="下单客户"
+      :width="flexColumnWidth('consigneeName', tableData, 'max')"
+      align="center"
+    >
+    </el-table-column>
+    <el-table-column
+      prop="carrierName"
+      label="承运商"
+      align="center"
+      width="250px"
+    >
+      <template slot-scope="scope">
+        <el-autocomplete
+          style="width:120px"
+          v-model="scope.row.carrierName"
+          :fetch-suggestions="querySearchCarrier"
+          placeholder="请输入承运商"
+          @select="handleSelectCarrier(scope.row, scope.$index)"
+          :disabled="scope.row.isCarrierShow != 1"
+        >
+          <el-button
+            @click="updateTruckCarrier(row)"
+            type="primary"
+            v-if="scope.row.isCarrierShow == 1"
+            >提交</el-button
+          >
+        </el-autocomplete>
+      </template>
+    </el-table-column>
+    <el-table-column
+      prop="capacityNo"
+      label="车牌号"
+      align="center"
+      width="250px"
+    >
+      <template slot-scope="scope">
+        <el-autocomplete
+          style="width:120px"
+          v-model="scope.row.capacityNo"
+          :fetch-suggestions="querySearch"
+          placeholder="请输入车牌号"
+          @select="handleSelect(scope.row, scope.$index)"
+          :disabled="scope.row.isCapacityShow != 1"
+        ></el-autocomplete>
+        <el-button
+          @click="updateCapacity(row)"
+          type="primary"
+          v-if="scope.row.isCapacityShow == 1"
+          >提交</el-button
+        >
+      </template>
+    </el-table-column>
+    <el-table-column prop="capacityTel" label="司机电话" width="250px">
+      <template slot-scope="scope">
+        <el-input
+          style="width:120px"
+          v-model="scope.row.capacityTel"
+          placeholder="请输入电话号码"
+          :disabled="scope.row.isTelShow != 1"
+        ></el-input>
+        <el-button
+          @click="updateDriverTel(scope.row)"
+          type="primary"
+          v-if="scope.row.isTelShow == 1"
+          >提交</el-button
+        >
+      </template>
+    </el-table-column>
+    <el-table-column
+      prop="addressPlace"
+      label="收货地址"
+      :width="flexColumnWidth('addressPlace', tableData, 'max')"
+    >
+    </el-table-column>
+    <el-table-column prop="orderStatus" label="运单状态" align="center">
+    </el-table-column>
+    <el-table-column
+      prop="materialName"
+      label="物资名称"
+      align="center"
+      :width="flexColumnWidth('materialName', tableData, 'max')"
+    >
+    </el-table-column>
+    <el-table-column prop="materialSpe" label="物资规格" align="center">
+    </el-table-column>
+    <el-table-column prop="grossWeight" label="毛重"> </el-table-column>
+    <el-table-column
+      prop="grossWeightTime"
+      label="毛重时间"
+      :width="flexColumnWidth('grossWeightTime', tableData, 'max')"
+    >
+    </el-table-column>
+    <el-table-column prop="tareWeight" label="皮重"> </el-table-column>
+    <el-table-column
+      prop="tareWeightTime"
+      label="皮重时间"
+      :width="flexColumnWidth('tareWeightTime', tableData, 'max')"
+    >
+    </el-table-column>
+    <el-table-column prop="netWeight" label="净重"> </el-table-column>
+    <el-table-column
+      prop="entryGateTime"
+      label="进厂时间"
+      :width="flexColumnWidth('entryGateTime', tableData, 'max')"
+    >
+    </el-table-column>
+    <el-table-column
+      prop="loadTime"
+      label="装货时间"
+      :width="flexColumnWidth('loadTime', tableData, 'max')"
+    >
+    </el-table-column>
+    <el-table-column
+      prop="outGateTime"
+      label="出厂时间"
+      :width="flexColumnWidth('outGateTime', tableData, 'max')"
+    >
+    </el-table-column>
+    <el-table-column
+      prop="arrivalAddress"
+      label="抵达地址"
+      :width="flexColumnWidth('arrivalAddress', tableData, 'max')"
+    >
+    </el-table-column>
+    <el-table-column
+      prop="receiptAddress"
+      label="签收地址"
+      :width="flexColumnWidth('receiptAddress', tableData, 'max')"
+    >
+    </el-table-column>
+    <el-table-column prop="orderNo" label="运输订单号"> </el-table-column>
+    <el-table-column prop="saler" label="业务员"> </el-table-column>
+    <el-table-column prop="shipperName" label="发货单位"> </el-table-column>
+    <el-table-column prop="truckNo" label="车序号"> </el-table-column>
+    <el-table-column prop="consigneeTel" label="收货客户电话">
+    </el-table-column>
+    <el-table-column prop="isSelfMention" label="是否自提"> </el-table-column>
+    <el-table-column prop="saleOrderStatus" label="销售订单状态">
+    </el-table-column>
+    <el-table-column label="操作" fixed="right" width="200px">
+      <template slot-scope="scope">
+        <el-button type="text" size="small" @click="deleteEasEntryId(scope.row)"
+          >关闭分录</el-button
+        >
+      </template>
+    </el-table-column>
+  </el-table>
+</template>
+
+<script>
+import { sjTime } from "@/utils/sharedJsFile";
+import { getCookie } from "@/utils/util.js";
+export default {
+  name: "steelReport",
+  data() {
+    return {
+      capacityList: [],
+      carrierList: [],
+      tableData: [],
+      spanArr: [],
+      pos: 0,
+      isCellClick: 0,
+      columnIndexs: [
+        0,
+        1,
+        2,
+        3,
+        4,
+        5,
+        6,
+        7,
+        15,
+        16,
+        17,
+        18,
+        19,
+        20,
+        21,
+        22,
+        23,
+        24,
+        25,
+        26
+      ]
+    };
+  },
+  mounted() {
+    this.getSteelReport();
+  },
+  methods: {
+    cellClik(row, column, cell, event) {
+      if (column.property == "capacityNo") {
+        this.$set(row, "isCapacityShow", 1);
+      }
+      if (column.property == "carrierName") {
+        this.$set(row, "isCarrierShow", 1);
+      }
+      if (column.property == "capacityTel") {
+        this.$set(row, "isTelShow", 1);
+      }
+      if (column.property == "capacityTel") {
+        this.$set(row, "isTelShow", 1);
+      }
+    },
+    //承运商弹出层
+    handleSelectCarrier(row, index, item) {
+      console.log(this.carrierList);
+      console.log(row);
+    },
+    //承运商边输边查
+    querySearchCarrier(queryString, cb) {
+      this.axios
+        .post("/api/v1/uc/getCarrierMesByLike?index=" + queryString)
+        .then(res => {
+          if (res.data.code == "200") {
+            var restaurants = res.data.data;
+            this.carrierList = res.data.data;
+            console.log(restaurants);
+            var results = queryString
+              ? restaurants.filter(this.createFilterCarrier(queryString))
+              : restaurants;
+            cb(results);
+          }
+        });
+    },
+    createFilterCarrier(queryString) {
+      return restaurants => {
+        return (
+          restaurants.value1.toLowerCase().indexOf(queryString.toLowerCase()) >
+          -1
+        );
+      };
+    },
+    //以下是车牌号边输边查搜索
+    querySearch(queryString, cb) {
+      if (queryString.length > 3) {
+        this.axios
+          .post("/api/v1/uc/getCapacityByLike?index=" + queryString)
+          .then(res => {
+            if (res.data.code == "200") {
+              if (res.data.data.length == 0) {
+                this.$message.info("车牌号不存在");
+                return;
+              }
+              this.capacityList = [];
+              var restaurants = res.data.data;
+              this.capacityList = res.data.data;
+              var results = queryString
+                ? restaurants.filter(this.createFilter(queryString))
+                : restaurants;
+              // 调用 callback 返回建议列表的数据
+              cb(results);
+            }
+          });
+      }
+    },
+    createFilter(queryString) {
+      return restaurants => {
+        return (
+          restaurants.value.toLowerCase().indexOf(queryString.toLowerCase()) >
+          -1
+        );
+      };
+    },
+    //车牌号弹出层
+    handleSelect(row, index) {
+      this.capacityList.forEach(item => {
+        if (item.capacityNumber === row.capacityNo) {
+          row.newCapacityId = item.capacityId;
+        }
+      });
+    },
+    //更换车牌号接口
+    updateCapacitySure() {
+      let map = {
+        orderId: this.orderId,
+        saleOrderMaterialId: this.saleOrderMaterialId,
+        lineSequence: this.lineSequence,
+        capacityId: this.newCapacityId
+      };
+      this.axios
+        .post("/api/v1/ams/updateCapacityNumberInFactory", map)
+        .then(res => {
+          if (res.data.code == 200) {
+            this.$message.success("变更成功");
+            this.getSteelReport();
+          } else {
+            this.$message.success("变更失败,请联系管理员");
+            this.getSteelReport();
+          }
+        })
+        .catch(() => {
+          this.$message.success("变更失败,请联系管理员");
+          this.getSteelReport();
+        });
+    },
+    //修改司机电话号码
+    updateDriverTel(row) {
+      console.log(row.capacityTel);
+      this.axios
+        .post("/api/v1/uc/updateDriverTel", {
+          orderId: parseInt(row.orderId),
+          driverTel: row.capacityTel
+        })
+        .then(res => {
+          if (res.data.code == "200") {
+            this.$message.success("修改成功");
+            this.getSteelReport();
+          } else {
+            this.$message.error("修改失败");
+            this.getSteelReport();
+          }
+        })
+        .catch(() => {
+          this.$message.error("修改失败");
+          this.getSteelReport();
+        });
+    },
+    //关闭金蝶分录
+    deleteEasEntryId(row) {
+      let title = `确定关闭-${this.capacityNumber}-金蝶分录?`;
+      this.$confirm(title, {
+        confirmButtonText: "是",
+        cancelButtonText: "否",
+        center: true,
+        type: "warning"
+      })
+        .then(() => {
+          let map = row;
+          map.isCloseEas = Number(0);
+          map.saleOrderId = this.$route.params.saleOrderId;
+          this.axios
+            .post("/api/v1/ams/updateCarAddress", map)
+            .then(res => {
+              if (res.data.code == "200") {
+                this.$message.success("关闭成功");
+                this.getOrderList();
+              } else {
+                this.$message.error("关闭失败");
+                this.getOrderList();
+              }
+            })
+            .catch(() => {
+              this.$message.error("关闭失败");
+              this.getOrderList();
+            });
+        })
+        .catch(() => {
+          this.$message.info("取消删除");
+        });
+    },
+    //修改承运商授权
+    //修改承运商授权
+    updateTruckCarrier(row) {
+      console.log(row);
+      let map = {
+        carrierId: this.carrierId,
+        saleOrderMaterialId: this.saleOrderMaterialId
+      };
+      this.axios.post("/api/v1/ams/updateTruckNoCarrier", map).then(res => {
+        if (res.data.code == "200") {
+          this.$message.success("修改授权成功");
+          this.getRequestUrl();
+          this.dialogTableVisible = false;
+        }
+      });
+    },
+    //记录每一行的合并数
+    getSpanArr(data) {
+      //每次调用方法初始化
+      this.spanArr = [];
+      for (var i = 0; i < data.length; i++) {
+        if (i === 0) {
+          this.spanArr.push(1);
+          data[i].group = i;
+          this.pos = 0;
+        } else {
+          // 判断当前元素与上一个元素是否相同
+          if (data[i].saleOrderMaterialId === data[i - 1].saleOrderMaterialId) {
+            this.spanArr[this.pos] += 1;
+            data[i].group = data[i - 1].group;
+            this.spanArr.push(0);
+          } else {
+            this.spanArr.push(1);
+            this.pos = i;
+            data[i].group = data[i - 1].group + 1;
+          }
+        }
+      }
+    },
+    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
+      if (this.columnIndexs.indexOf(columnIndex) != -1) {
+        const _row = this.spanArr[rowIndex];
+        const _col = _row > 0 ? 1 : 0;
+        return {
+          rowspan: _row,
+          colspan: _col
+        };
+      }
+    },
+    getSteelReport() {
+      let carrierSsoId = null;
+      if (getCookie("orgCode") == "chengyunshang") {
+        carrierSsoId = getCookie("userId");
+      }
+      this.axios
+        .post(
+          "/api/v1/tms/getSaleSteelReport?startTime=" +
+            null +
+            "&endTime=" +
+            null +
+            "&carrierSsoId=" +
+            carrierSsoId
+        )
+        .then(res => {
+          this.tableData = res.data.data;
+          this.getSpanArr(res.data.data);
+        });
+    },
+    flexColumnWidth(str, tableData, flag) {
+      // str为该列的字段名(传字符串);tableData为该表格的数据源(传变量);
+      // flag为可选值,可不传该参数,传参时可选'max'或'equal',默认为'max'
+      // flag为'max'则设置列宽适配该列中最长的内容,flag为'equal'则设置列宽适配该列中第一行内容的长度。
+      str = str + "";
+      let columnContent = "";
+      if (
+        !tableData ||
+        !tableData.length ||
+        tableData.length === 0 ||
+        tableData === undefined
+      ) {
+        return;
+      }
+      if (!str || !str.length || str.length === 0 || str === undefined) {
+        return;
+      }
+      if (flag === "equal") {
+        // 获取该列中第一个不为空的数据(内容)
+        for (let i = 0; i < tableData.length; i++) {
+          if (tableData[i][str].length > 0) {
+            columnContent = tableData[i][str] + "";
+            break;
+          }
+        }
+      } else {
+        // 获取该列中最长的数据(内容)
+        let index = 0;
+        for (let i = 0; i < tableData.length; i++) {
+          if (tableData[i][str] === null) {
+            // 当数据为空时跳过本次循环获取下一条数据长度
+            continue;
+          }
+          const now_temp = tableData[i][str] + "";
+          const max_temp = tableData[index][str] + "";
+          if (now_temp.length > max_temp.length) {
+            index = i;
+          }
+        }
+        columnContent = tableData[index][str] + "";
+      } // 以下分配的单位长度可根据实际需求进行调整
+      let flexWidth = 0;
+      if (columnContent != undefined) {
+        for (const char of columnContent) {
+          if ((char >= "A" && char <= "Z") || (char >= "a" && char <= "z")) {
+            // 如果是英文字符,为字符分配10个单位宽度
+            flexWidth += 10;
+          } else if (char >= "\u4e00" && char <= "\u9fa5") {
+            // 如果是中文字符,为字符分配16个单位宽度
+            flexWidth += 14;
+          } else {
+            // 其他种类字符,为字符分配10个单位宽度
+            flexWidth += 10;
+          }
+        }
+      }
+      if (flexWidth < 80) {
+        // 设置最小宽度
+        flexWidth = 80;
+      }
+      if (flexWidth > 500) {
+        // 设置最大宽度
+        flexWidth = 500;
+      }
+      return flexWidth + "px";
+    }
+  }
+};
+</script>

+ 180 - 56
src/views/statisticalReport/router/index.js

@@ -1,73 +1,197 @@
-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 ShipDynamicTable from '../components/Ship_dynamic_table.vue'
-import purchaseAccessoriesMonitor from '../components/purchaseAccessoriesMonitor.vue'
-import purchasFuelOldMonitor from '../components/purchasFuelMonitor/purchasFuelOldMonitor.vue'
-import purchasFuelNewMonitor from '../components/purchasFuelMonitor/purchasFuelNewMonitor.vue'
-import sporadicReportEnterFactory from '../components/sporadicReport/sporadicReportEnterFactory.vue'
-import sporadicReportExFactory from '../components/sporadicReport/sporadicReportExFactory.vue'
-import saleChemicalCokeForm from '../components/salesLogisticsStatistics/saleChemicalCokeForm.vue'
-import saleCoproductForm from '../components/salesLogisticsStatistics/saleCoproductForm.vue'
-import saleSteelForm from '../components/salesLogisticsStatistics/saleSteelForm.vue'
-import transportationPerformance from '../components/salesLogisticsStatistics/transportationPerformance.vue'
-import purchaseChemicalMaterialsNew from '../components/purchaseChemicalMaterials/purchaseChemicalMaterialsNew.vue'
-import purchaseChemicalMaterialsOld from '../components/purchaseChemicalMaterials/purchaseChemicalMaterialsOld.vue'
-import purInwardReport from '../components/inwardReport/putInwardReport.vue'
-import inwardFactory from '../components/inwardReport/inwardFactory.vue'
-import getLoading from '../components/inwardReport/getLoading.vue'
-import getUnLoading from '../components/inwardReport/getUnLoading.vue'
-import purchaseMineral from '../components/purachaseMineral.vue'
-import inwardSporadicReport from '../components/sporadicReport/inwardSporadicReport.vue'
-import getInstall from '../components/inwardReport/getInstall.vue'
-import getCapacityByDefend from '../components/defendCapacity/getCapacityByDefend.vue'
-import inwardAssemble from '../components/inwardAssemble/inwardAssemble.vue'
-import loadCapacityDetail from '../components/loadCapacityDetail/loadCapacityDetail.vue'
-import allInwardReport from '../components/inwardReport/allInwardReport.vue'
-Vue.use(Router)
+import ShipDynamicTable from "../components/Ship_dynamic_table.vue";
+import purchaseAccessoriesMonitor from "../components/purchaseAccessoriesMonitor.vue";
+import purchasFuelOldMonitor from "../components/purchasFuelMonitor/purchasFuelOldMonitor.vue";
+import purchasFuelNewMonitor from "../components/purchasFuelMonitor/purchasFuelNewMonitor.vue";
+import sporadicReportEnterFactory from "../components/sporadicReport/sporadicReportEnterFactory.vue";
+import sporadicReportExFactory from "../components/sporadicReport/sporadicReportExFactory.vue";
+import saleChemicalCokeForm from "../components/salesLogisticsStatistics/saleChemicalCokeForm.vue";
+import saleCoproductForm from "../components/salesLogisticsStatistics/saleCoproductForm.vue";
+import saleSteelForm from "../components/salesLogisticsStatistics/saleSteelForm.vue";
+import transportationPerformance from "../components/salesLogisticsStatistics/transportationPerformance.vue";
+import purchaseChemicalMaterialsNew from "../components/purchaseChemicalMaterials/purchaseChemicalMaterialsNew.vue";
+import purchaseChemicalMaterialsOld from "../components/purchaseChemicalMaterials/purchaseChemicalMaterialsOld.vue";
+import purInwardReport from "../components/inwardReport/putInwardReport.vue";
+import inwardFactory from "../components/inwardReport/inwardFactory.vue";
+import getLoading from "../components/inwardReport/getLoading.vue";
+import getUnLoading from "../components/inwardReport/getUnLoading.vue";
+import purchaseMineral from "../components/purachaseMineral.vue";
+import inwardSporadicReport from "../components/sporadicReport/inwardSporadicReport.vue";
+import getInstall from "../components/inwardReport/getInstall.vue";
+import getCapacityByDefend from "../components/defendCapacity/getCapacityByDefend.vue";
+import inwardAssemble from "../components/inwardAssemble/inwardAssemble.vue";
+import loadCapacityDetail from "../components/loadCapacityDetail/loadCapacityDetail.vue";
+import allInwardReport from "../components/inwardReport/allInwardReport.vue";
+import saleSteelAllReport from "../components/salesLogisticsStatistics/saleSteelAllReport.vue";
+Vue.use(Router);
 
 const constantRouterMap = [
   {
-    path: '/',
-    name: 'main',
-    meta: {title: '首页', code: 'xtpzgl'},
+    path: "/",
+    name: "main",
+    meta: { title: "首页", code: "xtpzgl" },
     component: main,
-    redirect: {name: 'cargoResult'},
+    redirect: { name: "cargoResult" },
     children: [
-      {path: 'purchaseChemicalMaterialsNew', name: 'purchaseChemicalMaterialsNew', meta: {code: 'xtpzgl-yhgl'}, component: purchaseChemicalMaterialsNew},
-      {path: 'purchaseChemicalMaterialsOld', name: 'purchaseChemicalMaterialsOld', meta: {code: 'xtpzgl-yhgl'}, component: purchaseChemicalMaterialsOld},
-      {path: 'ShipDynamicTable', name: 'ShipDynamicTable', meta: {code: 'xtpzgl-yhgl'}, component: ShipDynamicTable},
-      {path: 'purchaseAccessoriesMonitor', name: 'purchaseAccessoriesMonitor', meta: {code: 'xtpzgl-yhgl'}, component: purchaseAccessoriesMonitor},
-      {path: 'purchasFuelOldMonitor', name: 'purchasFuelOldMonitor', meta: {code: 'xtpzgl-yhgl'}, component: purchasFuelOldMonitor},
-      {path: 'purchasFuelNewMonitor', name: 'purchasFuelNewMonitor', meta: {code: 'xtpzgl-yhgl'}, component: purchasFuelNewMonitor},
-      {path: 'sporadicReportEnterFactory',name:'sporadicReportEnterFactory',meta:{code:'xtpzgl-yhgl'},component:sporadicReportEnterFactory},
-      {path: 'sporadicReportExFactory',name:'sporadicReportExFactory',meta:{code:'xtpzgl-yhgl'},component:sporadicReportExFactory},
-      {path: 'saleChemicalCokeForm', name: 'saleChemicalCokeForm', meta: {code: 'xtpzgl-yhgl'}, component: saleChemicalCokeForm},
-      {path: 'saleCoproductForm', name: 'saleCoproductForm', meta: {code: 'xtpzgl-yhgl'}, component: saleCoproductForm},
-      {path: 'saleSteelForm', name: 'saleSteelForm', meta: {code: 'xtpzgl-yhgl'}, component: saleSteelForm},
-      {path: 'transportationPerformance', name: 'transportationPerformance', meta: {code: 'xtpzgl-yhgl'}, component: transportationPerformance},
-      {path: 'purInwardReport', name: 'purInwardReport', meta: {code: 'xtpzgl-yhgl'}, component: purInwardReport},
-      {path: 'inwardFactory', name: 'inwardFactory', meta: {code: 'xtpzgl-yhgl'}, component: inwardFactory},
-      {path: 'getLoading', name: 'getLoading', meta: {code: 'xtpzgl-yhgl'}, component: getLoading},
-      {path: 'getUnLoading', name: 'getUnLoading', meta: {code: 'xtpzgl-yhgl'}, component: getUnLoading},
-      {path: 'purchaseMineral', name: 'purchaseMineral', meta: {code: 'xtpzgl-yhgl'}, component: purchaseMineral},
-      {path: 'inwardSporadicReport', name: 'inwardSporadicReport', meta: {code: 'xtpzgl-yhgl'}, component: inwardSporadicReport},
-      {path: 'getInstall', name: 'getInstall', meta: {code: 'xtpzgl-yhgl'}, component: getInstall},
-      {path: 'getCapacityByDefend', name: 'getCapacityByDefend', meta: {code: 'xtpzgl-yhgl'}, component: getCapacityByDefend},
-      {path: 'inwardAssemble', name: 'inwardAssemble', meta: {code: 'xtpzgl-yhgl'}, component: inwardAssemble},
-      {path: 'loadCapacityDetail', name: 'loadCapacityDetail', meta: {code: 'xtpzgl-yhgl'}, component: loadCapacityDetail},
-      {path: 'allInwardReport', name: 'allInwardReport', meta: {code: 'xtpzgl-yhgl'}, component: allInwardReport},
+      {
+        path: "purchaseChemicalMaterialsNew",
+        name: "purchaseChemicalMaterialsNew",
+        meta: { code: "xtpzgl-yhgl" },
+        component: purchaseChemicalMaterialsNew
+      },
+      {
+        path: "purchaseChemicalMaterialsOld",
+        name: "purchaseChemicalMaterialsOld",
+        meta: { code: "xtpzgl-yhgl" },
+        component: purchaseChemicalMaterialsOld
+      },
+      {
+        path: "ShipDynamicTable",
+        name: "ShipDynamicTable",
+        meta: { code: "xtpzgl-yhgl" },
+        component: ShipDynamicTable
+      },
+      {
+        path: "purchaseAccessoriesMonitor",
+        name: "purchaseAccessoriesMonitor",
+        meta: { code: "xtpzgl-yhgl" },
+        component: purchaseAccessoriesMonitor
+      },
+      {
+        path: "purchasFuelOldMonitor",
+        name: "purchasFuelOldMonitor",
+        meta: { code: "xtpzgl-yhgl" },
+        component: purchasFuelOldMonitor
+      },
+      {
+        path: "purchasFuelNewMonitor",
+        name: "purchasFuelNewMonitor",
+        meta: { code: "xtpzgl-yhgl" },
+        component: purchasFuelNewMonitor
+      },
+      {
+        path: "sporadicReportEnterFactory",
+        name: "sporadicReportEnterFactory",
+        meta: { code: "xtpzgl-yhgl" },
+        component: sporadicReportEnterFactory
+      },
+      {
+        path: "sporadicReportExFactory",
+        name: "sporadicReportExFactory",
+        meta: { code: "xtpzgl-yhgl" },
+        component: sporadicReportExFactory
+      },
+      {
+        path: "saleChemicalCokeForm",
+        name: "saleChemicalCokeForm",
+        meta: { code: "xtpzgl-yhgl" },
+        component: saleChemicalCokeForm
+      },
+      {
+        path: "saleCoproductForm",
+        name: "saleCoproductForm",
+        meta: { code: "xtpzgl-yhgl" },
+        component: saleCoproductForm
+      },
+      {
+        path: "saleSteelForm",
+        name: "saleSteelForm",
+        meta: { code: "xtpzgl-yhgl" },
+        component: saleSteelForm
+      },
+      {
+        path: "transportationPerformance",
+        name: "transportationPerformance",
+        meta: { code: "xtpzgl-yhgl" },
+        component: transportationPerformance
+      },
+      {
+        path: "purInwardReport",
+        name: "purInwardReport",
+        meta: { code: "xtpzgl-yhgl" },
+        component: purInwardReport
+      },
+      {
+        path: "inwardFactory",
+        name: "inwardFactory",
+        meta: { code: "xtpzgl-yhgl" },
+        component: inwardFactory
+      },
+      {
+        path: "getLoading",
+        name: "getLoading",
+        meta: { code: "xtpzgl-yhgl" },
+        component: getLoading
+      },
+      {
+        path: "getUnLoading",
+        name: "getUnLoading",
+        meta: { code: "xtpzgl-yhgl" },
+        component: getUnLoading
+      },
+      {
+        path: "purchaseMineral",
+        name: "purchaseMineral",
+        meta: { code: "xtpzgl-yhgl" },
+        component: purchaseMineral
+      },
+      {
+        path: "inwardSporadicReport",
+        name: "inwardSporadicReport",
+        meta: { code: "xtpzgl-yhgl" },
+        component: inwardSporadicReport
+      },
+      {
+        path: "getInstall",
+        name: "getInstall",
+        meta: { code: "xtpzgl-yhgl" },
+        component: getInstall
+      },
+      {
+        path: "getCapacityByDefend",
+        name: "getCapacityByDefend",
+        meta: { code: "xtpzgl-yhgl" },
+        component: getCapacityByDefend
+      },
+      {
+        path: "inwardAssemble",
+        name: "inwardAssemble",
+        meta: { code: "xtpzgl-yhgl" },
+        component: inwardAssemble
+      },
+      {
+        path: "loadCapacityDetail",
+        name: "loadCapacityDetail",
+        meta: { code: "xtpzgl-yhgl" },
+        component: loadCapacityDetail
+      },
+      {
+        path: "allInwardReport",
+        name: "allInwardReport",
+        meta: { code: "xtpzgl-yhgl" },
+        component: allInwardReport
+      },
+      {
+        path: "saleSteelAllReport",
+        name: "saleSteelAllReport",
+        meta: {
+          code: "xtpzgl-yhgl"
+        },
+        component: saleSteelAllReport
+      }
     ]
   }
 ];
 const router = new Router({
   routes: constantRouterMap
-})
+});
 //  before
 routerBefore(router, constantRouterMap);