luobang 2 år sedan
förälder
incheckning
4bfb6c8710

+ 2 - 1
build/utils.js

@@ -17,7 +17,8 @@ const devPathSrc = path.resolve(__dirname, "../../../src"); // node_modules应
 //  'statisticalReport','systemConfig','TMS','WMS','workFlow']
 //  'statisticalReport','systemConfig','TMS','WMS','workFlow']
 // let devModules = ["index", "appoint", "statisticalReport"];
 // let devModules = ["index", "appoint", "statisticalReport"];
 // let devModules = ["index", "statisticalReport", "appoint", "TMS"];
 // let devModules = ["index", "statisticalReport", "appoint", "TMS"];
-let devModules = ["index", "statisticalReport"];
+// let devModules = ["index", "statisticalReport", "TMS", "appoint"];
+let devModules = ["all"];
 
 
 // let devModules = ['index','appoint','sale','statisticalReport','RMS','TMS','WMS']
 // let devModules = ['index','appoint','sale','statisticalReport','RMS','TMS','WMS']
 // let devModules = ["index", "ADMINISTRATORS", "RMS"];
 // let devModules = ["index", "ADMINISTRATORS", "RMS"];

+ 3 - 2
config/index.js

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

+ 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>

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

+ 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存在重复
 // entrust存在重复
-import entrustMine from '../components/domesticMine/entrustMine.vue'
+import entrustMine from "../components/domesticMine/entrustMine.vue";
 // wagonLoad存在重复
 // 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存在重复
 //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存在重复
 // 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'
 //import index from '../components/download/index.vue'
 //addWagonLoad存在重复
 //addWagonLoad存在重复
-import addWagonLoadEmergency from '../components/importedEmergency/addWagonLoadEmergency.vue'
+import addWagonLoadEmergency from "../components/importedEmergency/addWagonLoadEmergency.vue";
 //addWagonUnLoad存在重复
 //addWagonUnLoad存在重复
-import addWagonUnLoadEmergency from '../components/importedEmergency/addWagonUnLoadEmergency.vue'
+import addWagonUnLoadEmergency from "../components/importedEmergency/addWagonUnLoadEmergency.vue";
 //editWagonLoad存在重复
 //editWagonLoad存在重复
-import editWagonLoadEmergency from '../components/importedEmergency/editWagonLoadEmergency.vue'
+import editWagonLoadEmergency from "../components/importedEmergency/editWagonLoadEmergency.vue";
 //editWagonUnLoad存在重复
 //editWagonUnLoad存在重复
-import editWagonUnLoadEmergency from '../components/importedEmergency/editWagonUnLoadEmergency.vue'
+import editWagonUnLoadEmergency from "../components/importedEmergency/editWagonUnLoadEmergency.vue";
 //entrust存在重复
 //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存在重复
 //wagonLoad存在重复
-import wagonLoadEmergency from '../components/importedEmergency/wagonLoadEmergency.vue'
+import wagonLoadEmergency from "../components/importedEmergency/wagonLoadEmergency.vue";
 //wagonUnLoad存在重复
 //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重复使用
 // 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 = [
 const constantRouterMap = [
   {
   {
-    path: '/',
-    name: 'main',
-    meta: {title: '首页', code: 'xtpzgl'},
+    path: "/",
+    name: "main",
+    meta: { title: "首页", code: "xtpzgl" },
     component: main,
     component: main,
-    redirect: {name: 'addApproveWagonPlease'},
+    redirect: { name: "addApproveWagonPlease" },
     children: [
     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({
 const router = new Router({
   routes: constantRouterMap
   routes: constantRouterMap
-})
+});
 //  before
 //  before
 routerBefore(router, constantRouterMap);
 routerBefore(router, constantRouterMap);
 
 

+ 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>

+ 15 - 1
src/views/appoint/components/saleContract/saleOrderSteel.vue

@@ -89,6 +89,12 @@
                   @click="deleteclick(scope.row.saleOrderId)"
                   @click="deleteclick(scope.row.saleOrderId)"
                   >删除</el-button
                   >删除</el-button
                 >
                 >
+                <el-button
+                  type="text"
+                  size="small"
+                  @click="copyClick(scope.row.saleOrderId)"
+                  >复制</el-button
+                >
               </template>
               </template>
             </el-table-column>
             </el-table-column>
           </mergeRowTable>
           </mergeRowTable>
@@ -126,6 +132,12 @@
                   size="small"
                   size="small"
                   >异常处理</el-button
                   >异常处理</el-button
                 >
                 >
+                <el-button
+                  type="text"
+                  size="small"
+                  @click="copyClick(scope.row.saleOrderId)"
+                  >复制</el-button
+                >
               </template>
               </template>
             </el-table-column>
             </el-table-column>
           </mergeRowTable>
           </mergeRowTable>
@@ -599,7 +611,9 @@ export default {
     click(saleOrderId) {
     click(saleOrderId) {
       this.$router.push("/editSaleOrder/" + saleOrderId);
       this.$router.push("/editSaleOrder/" + saleOrderId);
     },
     },
-
+    copyClick(saleOrderId) {
+      this.$router.push("/copySteelOrder/" + saleOrderId);
+    },
     // 上传
     // 上传
     uploadclick(saleOrderId) {
     uploadclick(saleOrderId) {
       this.$confirm("是否上传", "提示", {
       this.$confirm("是否上传", "提示", {

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

+ 515 - 143
src/views/statisticalReport/components/salesLogisticsStatistics/saleSteelAllReport.vue

@@ -45,16 +45,184 @@
       </el-form>
       </el-form>
     </div>
     </div>
     <div class="table">
     <div class="table">
-      <!-- <mergeRowTable
-        ref="excelDom"
-        v-bind.sync="option"
-        :isHeigth="isHeigth"
-        :shiyHeigth="shiyHeigth"
-        :isKuang="isKuang"
-        @funs="funs"
+      <el-table
+        :data="tableData"
+        :span-method="objectSpanMethod"
+        border
+        stripe
+        style="width: 100%; margin-top: 20px"
+        max-height="500px"
+        @cell-click="cellClik"
       >
       >
-      </mergeRowTable> -->
-      <steelReport></steelReport>
+        <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>
     </div>
     </div>
   </div>
   </div>
 </template>
 </template>
@@ -62,177 +230,381 @@
 <script>
 <script>
 import { sjTime } from "@/utils/sharedJsFile";
 import { sjTime } from "@/utils/sharedJsFile";
 import { getCookie } from "@/utils/util.js";
 import { getCookie } from "@/utils/util.js";
-import steelReport from "./steelReportCom.vue";
+
 export default {
 export default {
-  components: {
-    steelReport
-  },
   data() {
   data() {
     return {
     return {
-      shiyHeigth: 140,
-      isHeigth: true,
-      pageSize: 100,
-      isKuang: false,
-      option: {
-        requestUrl: "",
-        comparison: "saleOrderMaterialId",
-        columnIndexs: [
-          0,
-          1,
-          2,
-          3,
-          4,
-          5,
-          6,
-          7,
-          8,
-          9,
-          17,
-          19,
-          20,
-          21,
-          22,
-          23,
-          24,
-          25
-        ],
-        isPagination: false
-      },
       startTime: null,
       startTime: null,
       endTime: null,
       endTime: null,
       //合计净重
       //合计净重
       totalNumber: 0,
       totalNumber: 0,
       //合计车数
       //合计车数
       totalCapacity: 0,
       totalCapacity: 0,
-      tableTitle: "销售统计报表"
+      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
+      ]
     };
     };
   },
   },
-  created() {
-    //初始化表头
-    if (getCookie("orgCode") == "chengyunshang") {
-      this.option.requestUrl =
-        "/api/v1/tms/getSaleSteelReport?apiId=492&startTime=null&endTime=null&carrierSsoId=" +
-        getCookie("userId") +
-        "&i=" +
-        new Date();
-    } else {
-      this.option.requestUrl =
-        "/api/v1/tms/getSaleSteelReport?apiId=492&startTime=null&endTime=null&carrierSsoId=" +
-        null +
-        "&i=" +
-        new Date();
-    }
-    //时间段初始化
-    const start = new Date(new Date(new Date().toLocaleDateString()).getTime());
-    var startTime = this.dataFormat(sjTime(start));
-    var endTime = this.dataFormat(sjTime(new Date()));
-    this.tableTitle = startTime + " 至 " + endTime;
+  created() {},
+  mounted() {
+    this.getSteelReport();
   },
   },
   methods: {
   methods: {
-    getRequestUrl() {
-      this.startTime = null;
-      this.endTime = null;
-      if (getCookie("orgCode") == "chengyunshang") {
-        this.option.requestUrl =
-          "/api/v1/tms/getSaleSteelReport?apiId=492&startTime=null&endTime=null&carrierSsoId=" +
-          getCookie("userId") +
-          "&i=" +
-          new Date();
-      } else {
-        this.option.requestUrl =
-          "/api/v1/tms/getSaleSteelReport?apiId=492&startTime=null&endTime=null&carrierSsoId=" +
-          null +
-          "&i=" +
-          new Date();
+    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);
       }
       }
     },
     },
-    refresh() {
-      this.getRequestUrl();
+    //承运商弹出层
+    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();
+        });
     },
     },
-    funs(res) {
-      let arr = [];
-      let arr1 = Array.from(res);
-      arr1.forEach(e => {
-        arr.push(e.group);
+    //关闭金蝶分录
+    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;
+        }
       });
       });
-      this.totalCapacity = Math.max(...arr) + 1;
     },
     },
+
+    //记录每一行的合并数
+    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() {
     onclick() {
       let startTime = null;
       let startTime = null;
       let endTime = null;
       let endTime = null;
+      let carrierSsoId = null;
       if (this.startTime && this.endTime) {
       if (this.startTime && this.endTime) {
         startTime = sjTime(this.startTime);
         startTime = sjTime(this.startTime);
         endTime = sjTime(this.endTime);
         endTime = sjTime(this.endTime);
-        //修改报表名称
-        this.tableTitle =
-          this.dataFormat(startTime) + " 至 " + this.dataFormat(endTime);
-        //加上时间重置表头
-        if (getCookie("orgCode") == "chengyunshang") {
-          this.option.requestUrl =
-            "/api/v1/tms/getSaleSteelReport?apiId=492&startTime=" +
+      }
+      if (getCookie("orgCode") == "chengyunshang") {
+        carrierSsoId = getCookie("userId");
+      }
+      this.axios
+        .post(
+          "/api/v1/tms/getSaleSteelReport?startTime=" +
             startTime +
             startTime +
             "&endTime=" +
             "&endTime=" +
             endTime +
             endTime +
             "&carrierSsoId=" +
             "&carrierSsoId=" +
-            getCookie("userId") +
+            carrierSsoId +
             "&i=" +
             "&i=" +
-            new Date();
-        } else {
-          this.option.requestUrl =
-            "/api/v1/tms/getSaleSteelReport?apiId=492&startTime=" +
-            startTime +
+            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=" +
             "&endTime=" +
-            endTime +
-            "&carrierSsoId=" +
             null +
             null +
+            "&carrierSsoId=" +
+            carrierSsoId +
             "&i=" +
             "&i=" +
-            new Date();
+            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 {
       } else {
-        if (this.startTime) {
-          startTime = sjTime(this.startTime);
-        } else if (this.endTime) {
-          endTime = sjTime(this.endTime);
+        // 获取该列中最长的数据(内容)
+        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;
+          }
         }
         }
-        //加上时间重置表头
-        if (getCookie("orgCode") == "chengyunshang") {
-          this.option.requestUrl =
-            "/api/v1/tms/getSaleSteelReport?apiId=492&startTime=" +
-            startTime +
-            "&endTime=" +
-            endTime +
-            "&carrierSsoId=" +
-            getCookie("userId") +
-            "&i=" +
-            new Date();
-        } else {
-          this.option.requestUrl =
-            "/api/v1/tms/getSaleSteelReport?apiId=492&startTime=" +
-            startTime +
-            "&endTime=" +
-            endTime +
-            "&carrierSsoId=" +
-            null +
-            "&i=" +
-            new Date();
+        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;
+          }
         }
         }
       }
       }
-    },
-    //格式化日期
-    dataFormat(value) {
-      let date = new Date(value);
-      let y = date.getFullYear();
-      let MM = date.getMonth() + 1;
-      MM = MM < 10 ? "0" + MM : MM;
-      let d = date.getDate();
-      d = d < 10 ? "0" + d : d;
-      let h = date.getHours();
-      h = h < 10 ? "0" + h : h;
-      let m = date.getMinutes();
-      m = m < 10 ? "0" + m : m;
-      let s = date.getSeconds();
-      s = s < 10 ? "0" + s : s;
-      return y + "-" + MM + "-" + d + " " + h + ":" + m + ":" + s;
+      if (flexWidth < 80) {
+        // 设置最小宽度
+        flexWidth = 80;
+      }
+      if (flexWidth > 500) {
+        // 设置最大宽度
+        flexWidth = 500;
+      }
+      return flexWidth + "px";
     }
     }
   }
   }
 };
 };

+ 21 - 2
src/views/statisticalReport/components/salesLogisticsStatistics/steelReportCom.vue

@@ -35,10 +35,11 @@
       prop="carrierName"
       prop="carrierName"
       label="承运商"
       label="承运商"
       align="center"
       align="center"
-      width="150px"
+      width="250px"
     >
     >
       <template slot-scope="scope">
       <template slot-scope="scope">
         <el-autocomplete
         <el-autocomplete
+          style="width:120px"
           v-model="scope.row.carrierName"
           v-model="scope.row.carrierName"
           :fetch-suggestions="querySearchCarrier"
           :fetch-suggestions="querySearchCarrier"
           placeholder="请输入承运商"
           placeholder="请输入承运商"
@@ -46,7 +47,7 @@
           :disabled="scope.row.isCarrierShow != 1"
           :disabled="scope.row.isCarrierShow != 1"
         >
         >
           <el-button
           <el-button
-            @click="updateCarrier(row)"
+            @click="updateTruckCarrier(row)"
             type="primary"
             type="primary"
             v-if="scope.row.isCarrierShow == 1"
             v-if="scope.row.isCarrierShow == 1"
             >提交</el-button
             >提交</el-button
@@ -231,6 +232,7 @@ export default {
     },
     },
     //承运商弹出层
     //承运商弹出层
     handleSelectCarrier(row, index, item) {
     handleSelectCarrier(row, index, item) {
+      console.log(this.carrierList);
       console.log(row);
       console.log(row);
     },
     },
     //承运商边输边查
     //承运商边输边查
@@ -240,6 +242,7 @@ export default {
         .then(res => {
         .then(res => {
           if (res.data.code == "200") {
           if (res.data.code == "200") {
             var restaurants = res.data.data;
             var restaurants = res.data.data;
+            this.carrierList = res.data.data;
             console.log(restaurants);
             console.log(restaurants);
             var results = queryString
             var results = queryString
               ? restaurants.filter(this.createFilterCarrier(queryString))
               ? restaurants.filter(this.createFilterCarrier(queryString))
@@ -374,6 +377,22 @@ export default {
           this.$message.info("取消删除");
           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) {
     getSpanArr(data) {
       //每次调用方法初始化
       //每次调用方法初始化