Parcourir la source

修改内转钢材到异地库

zx il y a 3 ans
Parent
commit
4002ccee4d

+ 1 - 1
build/utils.js

@@ -21,7 +21,7 @@ const devPathSrc = path.resolve(__dirname, "../../../src"); // node_modules应
 
 // let devModules = ["all"];
 
-let devModules = ["index", "appoint", "statisticalReport", "WMS","TMS","inward","RMS"];
+let devModules = ["all"];
 
 // let devModules = ["index", "appoint", "statisticalReport", "WMS","TMS"];
 // let devModules = ["index", "inward", "appoint", "queue"];

+ 2 - 2
config/index.js

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

+ 1 - 1
src/views/TMS/components/bmsship/addMoistureDetection.vue

@@ -209,7 +209,7 @@ export default {
       }
     },
     makeSure() {
-      //this.isLoading=true;
+      this.isLoading=true;
       let map = {
         batchId: this.batchId,
 

+ 1 - 1
src/views/TMS/components/bmsship/addThreeSectionFee.vue

@@ -280,7 +280,7 @@ export default {
       let realTonnage = this.form.Array.reduce(function(prev, item) {
         return prev + item.resultActualInstallations;
       }, 0);
-      //this.isLoading=true;
+      this.isLoading=true;
       let map = {
         batchId: this.batchId,
         purchaseOrderId: this.purchaseOrderId,

+ 1 - 1
src/views/TMS/components/bmsship/addThreeSectionHandleFee.vue

@@ -188,7 +188,7 @@ export default {
         }
     },
     makeSure() {
-      //this.isLoading=true;
+      this.isLoading=true;
       let map={
         batchId:this.batchId,
         purchaseOrderId:this.purchaseOrderId,

+ 1 - 1
src/views/TMS/components/bmsship/addTwoSectionFee.vue

@@ -188,7 +188,7 @@ export default {
         }
     },
     makeSure() {
-      //this.isLoading=true;
+      this.isLoading=true;
       let map={
         batchId:this.batchId,
         purchaseOrderId:this.purchaseOrderId,

+ 1 - 1
src/views/TMS/components/bmsship/addTwoSectionHandleFee.vue

@@ -188,7 +188,7 @@ export default {
         }
     },
     makeSure() {
-      //this.isLoading=true;
+      this.isLoading=true;
       let map={
         batchId:this.batchId,
         purchaseOrderId:this.purchaseOrderId,

+ 459 - 0
src/views/TMS/components/bmsship/editThreeSectionFee.vue

@@ -0,0 +1,459 @@
+<template>
+  <!-- 添加二程船水运费1-->
+  <div class="addWagonLoad">
+    <PageTitle>返回</PageTitle>
+    <div class="form-box">
+      <!-- <dil-form :formId="271" v-model="form1" ref="from1"></dil-form> -->
+      <el-form v-model="form">
+        <div class="searchSelect">
+          <span class="text">批次</span>
+          <el-input class="input" v-model="batchName" disabled> </el-input>
+          <el-button class="button" type="primary" @click="ondrawer(5)"
+            >浏览</el-button
+          >
+        </div>
+        <div
+          class="material"
+          v-for="(item, index) in form.Array"
+          :key="index"
+          style="margin-left:30px"
+        >
+          <el-form :inline="true">
+            <el-form-item label="装船时间">
+              <el-input
+                v-model="item.resultLoadShipDate"
+                placeholder="装船时间"
+                disabled
+              ></el-input>
+            </el-form-item>
+            <el-form-item label="离港时间">
+              <el-input
+                v-model="item.resultOutPortTime"
+                placeholder="离港时间"
+                disabled
+              ></el-input>
+            </el-form-item>
+            <el-form-item label="实装吨位">
+              <el-input
+                v-model="item.resultActualInstallations"
+                placeholder="实装吨位"
+                disabled
+              ></el-input>
+            </el-form-item>
+            <el-form-item label="水运费用">
+              <el-input v-model="item.fee" type="number" disabled></el-input>
+              <el-button type="primary" @click="ondrawer(6, index)"
+                >浏览单价</el-button
+              >
+            </el-form-item>
+          </el-form>
+        </div>
+        <div class="preview-group">
+          <el-form-item label="开票日期">
+            <el-date-picker
+              v-model="form.makeTime"
+              type="datetime"
+              placeholder="选择日期"
+            >
+            </el-date-picker>
+          </el-form-item>
+          <el-form-item label="上传水运单图片">
+            <el-upload
+              class="upload-demo"
+              style="width: 270px"
+              ref="upload1"
+              accept=".pdf , .jpg, .png, .jpeg, .tif, .gif, .pcx, .tga, .exif, .fpx, .svg , .bmp"
+              action="/api/v1/bms/uploadBmsshipOrder"
+              :before-upload="beforeUpload"
+              :multiple="false"
+              list-type="picture"
+              :show-file-list="false"
+              :on-success="handleAvatarSuccess"
+              :on-error="onError(1)"
+            >
+              <el-input
+                class="shippingCertificate"
+                style="width: 270px; display: flex"
+                placeholder="上传水运单图片(必填项)"
+                v-model="form.image"
+                disabled
+              >
+              </el-input>
+              <el-button
+                size="small"
+                type="primary"
+                style="
+                      width: 115px;
+                      height: 35px;
+                      margin-left: 275px;
+                      margin-top: -35px;
+                      display: flex;
+                      "
+                @click="upCLick(1)"
+              >
+                点击上传附件</el-button
+              >
+            </el-upload>
+          </el-form-item>
+        </div>
+      </el-form>
+    </div>
+    <!-- 模态框 -->
+    <el-drawer
+      :visible.sync="drawer"
+      :direction="direction"
+      :before-close="handleClose"
+      size="50%"
+    >
+      <el-input
+        placeholder="请输入内容"
+        v-model="input"
+        style="margin-top: 10px; margin-left: 20px; width: 250px"
+        clearable
+      >
+      </el-input>
+      <el-button
+        type="primary"
+        class="btn"
+        @click="onclick(a)"
+        style="margin-bottom: 15px"
+      >
+        <i class="el-icon-search"></i>查询
+      </el-button>
+      <div v-show="a == 5">
+        <dilTable
+          v-bind.sync="batchOption"
+          @radio-change="batchChange"
+        ></dilTable>
+      </div>
+      <div v-show="a == 6">
+        <dilTable
+          v-bind.sync="contractPriceOption"
+          @radio-change="priceChange"
+        ></dilTable>
+      </div>
+    </el-drawer>
+    <!-- 底部按钮 -->
+    <div class="button-box">
+      <el-button @click="cancel">取消</el-button>
+      <el-button type="primary" @click="makeSure" :loading="isLoading"
+        >确定</el-button
+      >
+    </div>
+  </div>
+</template>
+
+<script>
+import PageTitle from "@/components/Page/Title";
+import { sjTime } from "@/utils/sharedJsFile";
+import { getCookie } from "@/utils/util.js";
+import { BigNumber } from "bignumber.js";
+export default {
+  components: { PageTitle },
+  data() {
+    return {
+      indexNum: null,
+      form: {},
+      portId: null,
+      ports: [],
+      isLoading: false,
+      drawer: false,
+      direction: "rtl",
+      a: 0,
+      input: null,
+      batchId: null,
+      purchaseOrderId: null,
+      batchName: null,
+      cargoPictureUrl: "",
+      batchOption: {
+        requestUrl: "/api/v1/uc/findBatchHavingLoad?apiId=502",
+        selectionType: "radio",
+        map: []
+      },
+      contractPriceOption: {
+        requestUrl: "/api/v1/rms/selectbmsshipContractPriceList?apiId=500",
+        selectionType: "radio",
+        map: []
+      }
+    };
+  },
+  mounted() {
+    //this.getPorts();
+    this.information();
+  },
+  computed: {
+    batch() {
+      return this.batchId;
+    }
+  },
+  watch: {
+    batch() {
+      console.log("无变化l");
+      this.findLoadByBatch();
+    }
+  },
+  methods: {
+    information() {
+      //编辑车皮装车作业
+      this.axios
+        .post(
+          "/api/v1/bms/getBmsshipFee/" + this.$route.params.resultId
+        )
+        .then((res) => {
+          res.data.data.forEach((e) => {
+            console.log(e);
+            this.form = e;
+            this.batchName=e.batchName;
+            this.batchId=e.batchId;
+            this.purchaseOrderId=e.purchaseOrderId;
+          });
+        }).then(()=>{
+          this.findLoadByBatch();
+        });
+    },
+    findLoadByBatch() {
+      if (this.batchId != null) {
+        this.axios
+          .post("/api/v1/bms/findLoadByBatch/" + this.batchId)
+          .then(res => {
+            console.log(res.data.data);
+            this.$set(this.form, "Array", res.data.data);
+            // this.form.Array = res.data.data;
+          });
+      }else{
+        console.log("尚未选择批次");
+      }
+    },
+    //右侧选中框
+    ondrawer(num, index) {
+      if (num == 5) {
+        this.batchOption.requestUrl =
+          "/api/v1/uc/findBatchHavingLoad?apiId=502" + "&i=" + new Date();
+      } else if (num == 6) {
+        this.contractPriceOption.requestUrl =
+          "/api/v1/rms/selectbmsshipContractPriceList?apiId=500" +
+          "&i=" +
+          new Date();
+      }
+      this.drawer = true;
+      this.indexNum = index;
+      this.a = num;
+      // 清空当前输入框中的数据
+      this.input = "";
+    },
+    handleClose(done) {
+      done();
+    },
+    onclick(a) {
+      if (a == 5) {
+        this.batchOption.requestUrl =
+          "/api/v1/uc/findBatchHavingLoad?apiId=502&index=" +
+          this.input +
+          "&i=" +
+          new Date();
+      } else if (a == 6) {
+        this.contractPriceOption.requestUrl =
+          "/api/v1/rms/selectbmsshipContractPriceList?apiId=500&con=" +
+          this.input;
+      }
+    },
+    //修改选中
+    batchChange(selection) {
+      console.log(JSON.stringify(selection).length);
+      if (JSON.stringify(selection).length > 2) {
+        this.batchId = selection.batchId;
+        this.purchaseOrderId = selection.purchaseOrderId;
+        this.batchName =
+          selection.materialName + selection.resultForeignShipName;
+      } else {
+        this.batchId = null;
+        this.purchaseOrderId = null;
+        this.batchName = "";
+      }
+    },
+    priceChange(selection) {
+      this.form.Array[this.indexNum].unitPriceId = selection.resultId;
+      this.form.Array[this.indexNum].unitPrice = selection.unitPrice;
+      //   this.form.unitPriceId = selection.resultId;
+      //   this.form.unitPrice = selection.unitPrice;
+      this.calculate();
+    },
+    //计算水运费
+    calculate() {
+      if (
+        this.form.Array[this.indexNum].resultActualInstallations &&
+        this.form.Array[this.indexNum].unitPrice
+      ) {
+        let fee = new BigNumber(
+          this.form.Array[this.indexNum].resultActualInstallations
+        );
+        this.$set(
+          this.form.Array[this.indexNum],
+          "fee",
+          fee.multipliedBy(this.form.Array[this.indexNum].unitPrice).toNumber()
+        );
+      }
+    },
+    makeSure() {
+      let totalFee = this.form.Array.reduce(function(prev, item) {
+        return prev + item.fee;
+      }, 0);
+      let realTonnage = this.form.Array.reduce(function(prev, item) {
+        return prev + item.resultActualInstallations;
+      }, 0);
+      //this.isLoading=true;
+      let map = {
+        resultId:this.$route.params.resultId,
+        batchId: this.batchId,
+        purchaseOrderId: this.purchaseOrderId,
+        realTonnage: realTonnage,
+        mapList: this.form.Array,
+        fee: totalFee,
+        makeTime: sjTime(this.form.makeTime),
+        image: this.form.image,
+        feeType: 3,
+        userId: getCookie("userId")
+      };
+      console.log(map);
+      //   if (
+      //     map.batchId == null ||
+      //     map.purchaseOrderId == null ||
+      //     map.unitPrice == null ||
+      //     map.unitPriceId == null ||
+      //     map.realTonnage == null ||
+      //     map.fee == null ||
+      //     map.makeTime == null ||
+      //     map.image == null ||
+      //     map.image == ""
+      //   ) {
+      //     this.$message.error("存在空值!");
+      //     this.isLoading = false;
+      //   } else {
+      this.axios
+        .post("/api/v1/bms/updatePortHandlingFee", map)
+        .then(res => {
+          if (res.data.code == 0) {
+            this.$message({
+              type: "success",
+              message: "修改成功!"
+            });
+            this.cancel();
+          } else {
+            this.$message.error(res.data.data);
+          }
+        })
+        .then(() => {
+          this.isLoading = false;
+        });
+      //   }
+    },
+    // 取消
+    cancel() {
+      this.$router.go(-1);
+    },
+    //查询港口id
+    getPorts() {
+      this.axios.post("/api/v1/rms/getPortName?index=").then(res => {
+        if (res.data.code == 200) {
+          this.ports = res.data.data;
+          console.log(this.ports);
+        } else {
+          this.$message.error(res.data.data);
+        }
+      });
+    },
+    beforeUpload(file) {
+      this.upBool = true;
+      const isLt2M = file.size < 1024 * 1024 * 0.5;
+      if (!isLt2M) {
+        this.$message.error("上传文件大小不能超过500kb!");
+      } else {
+        let size = file.size / 1024;
+        let _URL = window.URL || window.webkitURL;
+        let img = new Image();
+        img.src = _URL.createObjectURL(file);
+      }
+      return isLt2M;
+    },
+    onError(err) {
+      if (this.upBool) {
+        if (this.num == 1) {
+          this.form.image = null;
+          this.$message.error("上传失败");
+        }
+      }
+    },
+    handleAvatarSuccess(res, file) {
+      if (res.code) {
+        this.upBool = false;
+        if (this.num == 1) {
+          this.form.image = res.data;
+        }
+        this.$message.success("上传成功");
+      }
+    },
+    upCLick(val) {
+      this.num = val;
+    }
+  }
+};
+</script>
+<style lang="scss">
+.searchSelect {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  margin: 5px;
+  .text {
+    width: 40px;
+  }
+  .input {
+    width: 200px;
+  }
+  .button {
+    margin-left: 6px;
+  }
+}
+.button-box {
+  display: flex;
+  justify-content: center;
+  margin: 20px;
+  .el-button {
+    width: 80px;
+    margin: 10px;
+  }
+}
+.material {
+  display: flex;
+  justify-content: center;
+  margin-top: 20px;
+  margin-right: 100px;
+  .text {
+    display: inline-block;
+    width: 170px;
+    text-align: right;
+  }
+  .el-input {
+    width: 250px;
+  }
+}
+.form-box {
+  display: flex;
+  justify-content: center;
+  .el-form-item {
+    display: flex;
+    justify-content: center;
+    .el-form-item__label {
+      display: flex;
+      align-items: center;
+    }
+    .el-form-item__content {
+      .el-input {
+        .el-input__inner {
+          width: 250px;
+        }
+      }
+    }
+  }
+}
+</style>

+ 1 - 1
src/views/TMS/components/bmsship/threeSectionFee.vue

@@ -75,7 +75,7 @@ export default {
     },
     update(scope) {
       console.log(scope.row.resultId);
-      this.$router.push("/editTwoSectionFee/" + scope.row.resultId);
+      this.$router.push("/editThreeSectionFee/" + scope.row.resultId);
     },
     showCarrier(scope) {
       console.log(scope.row.resultId);

+ 1 - 1
src/views/TMS/components/bmstrain/addDomesticTrainFee.vue

@@ -191,7 +191,7 @@ export default {
         }
     },
     makeSure() {
-      //this.isLoading=true;
+      this.isLoading=true;
       let map={
         // batchId:this.batchId,
         // purchaseOrderId:this.purchaseOrderId,

+ 1 - 1
src/views/TMS/components/bmstrain/addImportedTrainFee.vue

@@ -191,7 +191,7 @@ export default {
         }
     },
     makeSure() {
-      //this.isLoading=true;
+      this.isLoading=true;
       let map={
         // batchId:this.batchId,
         // purchaseOrderId:this.purchaseOrderId,

+ 2 - 11
src/views/TMS/components/importedMine/addWagonloadCopy.vue

@@ -67,7 +67,7 @@
           @row-click="rowClick"
           :data="tableData"
           :row-style="{height:'40px'}"
-          style="width: 1000px;font-size: 18px">
+          style="width: 100%;font-size: 18px">
         <el-table-column
           type="selection"
           width="40px">
@@ -117,6 +117,7 @@
     <div
       class="right"
       style="margin-top:10px;
+            margin-left:10px;
            float:right;"
     >
       <div class="form">
@@ -623,11 +624,6 @@ export default {
         }
         //绑定数据
         rows.forEach((row, index) => {
-          let carNumber = row["车皮号"];
-          if (typeof carNumber != "undefined" && carNumber.length == 7) {
-            //车皮号表
-            let map = {};
-            map.wagonNo = carNumber;
             //表格数据
             let temp = {
               number: row["序号"],
@@ -638,11 +634,6 @@ export default {
               wagonWeight: row["标重"]
             };
             that.tableData.push(temp);
-          } else {
-            let errorNumb = index + 1;
-            console.log("第" + errorNumb + "行车皮号异常!");
-            return;
-          }
         });
       };
       reader.readAsBinaryString(file.raw); //以二进制方式读取

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

@@ -230,6 +230,7 @@ import addThreeSectionHandleFee from "../components/bmsship/addThreeSectionHandl
 import editThreeSectionHandleFee from "../components/bmsship/editThreeSectionHandleFee.vue";
 import threeSectionFee from "../components/bmsship/threeSectionFee.vue";
 import addThreeSectionFee from "../components/bmsship/addThreeSectionFee.vue";
+import editThreeSectionFee from "../components/bmsship/editThreeSectionFee.vue";
 import moistureDetection from "../components/bmsship/moistureDetection.vue";
 import addMoistureDetection from "../components/bmsship/addMoistureDetection.vue";
 Vue.use(Router);
@@ -1446,6 +1447,12 @@ const constantRouterMap = [
         meta: { code: "xtpzgl-jggl" },
         component: addThreeSectionFee
       },
+      {
+        path: "editThreeSectionFee/:resultId",
+        name: "editThreeSectionFee",
+        meta: { code: "xtpzgl-jggl" },
+        component: editThreeSectionFee
+      },
       {
         path: "addMoistureDetection",
         name: "addMoistureDetection",

+ 2 - 2
src/views/appoint/components/ship/addDeliveryNotice.vue

@@ -291,9 +291,9 @@ export default {
 
     beforeUpload(file) {
       this.upBool = true;
-      const isLt2M = file.size < 1024 * 1024 * 1;
+      const isLt2M = file.size < 1024 * 1024 * 3;
       if (!isLt2M) {
-        this.$message.error("上传文件大小不能超过1MB!");
+        this.$message.error("上传文件大小不能超过3MB!");
       } else {
         let size = file.size / 1024;
         let _URL = window.URL || window.webkitURL;

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

@@ -265,9 +265,9 @@ export default {
     },
     beforeUpload(file) {
       this.upBool = true;
-      const isLt2M = file.size < 1024 * 1024 * 1;
+      const isLt2M = file.size < 1024 * 1024 * 3;
       if (!isLt2M) {
-        this.$message.error("上传文件大小不能超过1M!");
+        this.$message.error("上传文件大小不能超过3M!");
       } else {
         let size = file.size / 1024;
         let _URL = window.URL || window.webkitURL;

+ 1431 - 0
src/views/inward/components/offsetSteel/saleSteelTruckOrder/saleTruckOrder.vue

@@ -0,0 +1,1431 @@
+<!-- 内转钢材到异地库派单界面 -->
+<template>
+  <div class="purchasFuelNewMonitor">
+    <div class="tableTop">
+      <el-form :inline="true" style="margin-top: 5px">
+        <el-form-item>
+          <el-select
+            v-model="screen"
+            placeholder="请选择需筛选的内容"
+            clearable
+            @change="changeScreen"
+            style="width: 150px"
+          >
+            <el-option
+              v-for="item in options"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+          <el-input
+            style="width: 200px"
+            v-model="input"
+            placeholder="请输入查询条件"
+            clearable
+          ></el-input>
+        </el-form-item>
+        <el-form-item>
+          <label class="el-form-item__label" style="width: auto"
+            >订单时间:</label
+          >
+          <el-date-picker
+            v-model="startTime"
+            type="datetime"
+            placeholder="选择日期时间"
+            style="width: 200px"
+          >
+          </el-date-picker>
+          <span>至</span>
+          <el-date-picker
+            v-model="endTime"
+            type="datetime"
+            placeholder="选择日期时间"
+            style="width: 200px"
+          >
+          </el-date-picker>
+          <el-button type="primary" class="btn" @click="onclick">
+            <i class="el-icon-search"></i>
+          </el-button>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="exportAllReportToExcel"
+            ><i class="el-icon-download"></i>Excel</el-button
+          >
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="refresh">
+            <i class="el-icon-refresh"></i>
+          </el-button>
+        </el-form-item>
+        <el-form-item>
+          <span style="margin-left: 1rem">合计车数:</span>
+          <el-input
+            v-model="totalCapacity"
+            :disabled="true"
+            style="width: 100px"
+          ></el-input>
+        </el-form-item>
+        <el-form-item>
+          <span style="margin-left: 1rem">合计件数:</span>
+          <el-input
+            v-model="totalNumber"
+            :disabled="true"
+            style="width: 100px"
+          ></el-input>
+        </el-form-item>
+      </el-form>
+    </div>
+    <div class="table">
+      <el-table
+        :data="tableData"
+        :span-method="objectSpanMethod"
+        ref="tableRef"
+        border
+        stripe
+        style="width: 100%; margin-top: 20px"
+        max-height="800px"
+        @cell-click="cellClik"
+        :row-style="{ height: '30px' }"
+        :cell-style="{ fontWeight: '700' }"
+      >
+        <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="consigneeName"
+          label="下单客户"
+          :width="flexColumnWidth('consigneeName', tableData, 'max')"
+          align="center"
+          fixed
+        >
+        </el-table-column>
+        <el-table-column
+          prop="carrierName"
+          label="承运商"
+          align="center"
+          width="250px"
+          fixed
+        >
+          <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-autocomplete>
+            <el-button
+              @click="updateTruckCarrier(scope.row)"
+              type="primary"
+              v-if="scope.row.isCarrierShow == 1"
+              >提交</el-button
+            >
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="capacityNo"
+          column-key="capacityNo"
+          label="车牌号"
+          align="center"
+          width="250px"
+          fixed
+        >
+          <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(scope.row)"
+              type="primary"
+              v-if="scope.row.isCapacityShow == 1"
+              >提交</el-button
+            >
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="lineName"
+          column-key="lineName"
+          label="路线"
+          align="center"
+          width="250px"
+          fixed
+        >
+          <!-- 选择路线 -->
+          <template slot-scope="scope">
+            <el-autocomplete
+              style="width: 120px"
+              v-model="scope.row.lineName"
+              :fetch-suggestions="querySearchLineName"
+              placeholder="请选择路线"
+              @select="handleSelectLine(scope.row, scope.$index)"
+              :disabled="scope.row.isLineName != 1"
+            >
+            
+            </el-autocomplete>
+            <el-button
+              @click="updateLine(scope.row)"
+              type="primary"
+              v-if="scope.row.isLineName == 1"
+              >提交</el-button
+            >
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="materialName"
+          label="物资名称"
+          align="center"
+          width="150px"
+        >
+        </el-table-column>
+        <el-table-column prop="materialSpe" label="物资规格" align="center">
+        </el-table-column>
+        <el-table-column
+          prop="materialNum"
+          label="物资件数"
+          align="center"
+          width="150px"
+        >
+          <template slot-scope="scope">
+            <button
+              type="primary"
+              @click="scope.row.materialNum--"
+              v-if="scope.row.isNumShow == 1"
+              style="height: 40px"
+            >
+              -
+            </button>
+            <input
+              v-model="scope.row.materialNum"
+              disabled
+              style="
+                width: 40px;
+                height: 40px;
+                font-size: 16px;
+                line-height: 40px;
+                text-align: center;
+              "
+            />
+            <el-button
+              type="primary"
+              @click="updateBillOrder(scope.row)"
+              v-if="scope.row.isNumShow == 1"
+              >提交</el-button
+            >
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="addressPlace"
+          label="收货地址"
+          :width="flexColumnWidth('addressPlace', tableData, 'max')"
+        >
+          <template slot-scope="scope">
+            <el-input
+              style="width: 280px"
+              v-model="scope.row.addressPlace"
+              placeholder="请输入收货地址"
+              :disabled="scope.row.isAddressShow != 1"
+            ></el-input>
+            <el-button
+              @click="updateAddress(scope.row)"
+              type="primary"
+              v-if="scope.row.isAddressShow == 1"
+              >选择</el-button
+            >
+          </template>
+        </el-table-column>
+        <el-table-column prop="orderStatus" label="运单状态" align="center">
+        </el-table-column>
+        <el-table-column prop="grossWeight" label="毛重"> </el-table-column>
+        <el-table-column prop="grossWeightTime" label="毛重时间" width="130px">
+        </el-table-column>
+        <el-table-column prop="tareWeight" label="皮重"> </el-table-column>
+        <el-table-column prop="tareWeightTime" label="皮重时间" width="130px">
+        </el-table-column>
+        <el-table-column prop="netWeight" label="净重"> </el-table-column>
+        <el-table-column prop="entryGateTime" label="进厂时间" width="130px">
+        </el-table-column>
+        <el-table-column prop="loadTime" label="装货时间" width="130px">
+        </el-table-column>
+        <el-table-column prop="outGateTime" label="出厂时间" width="130px">
+        </el-table-column>
+        <el-table-column
+          prop="arrivalAddress"
+          label="抵达地址"
+          :width="flexColumnWidth('arrivalAddress', tableData, 'max')"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="receiptAddress"
+          label="签收地址"
+          :width="flexColumnWidth('receiptAddress', tableData, 'max')"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="orderNo"
+          label="运输订单号"
+          width="180px"
+          align="center"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="capacityTel"
+          label="司机电话"
+          width="250px"
+          align="center"
+        >
+          <template slot-scope="scope">
+            <el-input
+              style="width: 120px"
+              v-model="scope.row.capacityTel"
+              placeholder="请输入电话号码"
+              :disabled="scope.row.isTelShow != 1"
+            ></el-input>
+            <el-button
+              @click="updateDriverTel(scope.row)"
+              type="primary"
+              v-if="scope.row.isTelShow == 1"
+              >提交</el-button
+            >
+          </template>
+        </el-table-column>
+        <el-table-column prop="saler" label="业务员" align="center">
+        </el-table-column>
+        <el-table-column
+          prop="shipperName"
+          label="发货单位"
+          width="170px"
+          align="center"
+        >
+        </el-table-column>
+        <el-table-column prop="truckNo" label="车序号"> </el-table-column>
+        <el-table-column prop="consigneeTel" label="收货客户电话" width="120px">
+        </el-table-column>
+        <el-table-column prop="isSelfMention" label="是否自提" align="center">
+        </el-table-column>
+        <el-table-column
+          prop="saleOrderNo"
+          label="销售订单号"
+          width="200px"
+          align="center"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="saleOrderStatus"
+          label="销售订单状态"
+          width="100px"
+        >
+        </el-table-column>
+        <el-table-column
+          label="操作"
+          fixed="right"
+          width="120px"
+          align="center"
+        >
+          <template slot-scope="scope">
+            <el-button
+              type="text"
+              size="small"
+              @click="closeEasEntryId(scope.row)"
+              v-if="scope.row.deletedStatus == null"
+              >关闭分录</el-button
+            >
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="操作"
+          fixed="right"
+          width="120px"
+          align="center"
+        >
+          <template slot-scope="scope">
+            <el-button
+              type="text"
+              size="small"
+              @click="deleteEasEntryId(scope.row)"
+              v-if="
+                scope.row.carStatus == 4 ||
+                scope.row.carStatus == 5 ||
+                scope.row.carStatus == null
+              "
+              >关闭车辆</el-button
+            >
+          </template>
+        </el-table-column>
+        <el-table-column
+          label="操作"
+          fixed="right"
+          width="120px"
+          align="center"
+        >
+          <template slot-scope="scope">
+            <el-button
+              type="text"
+              size="small"
+              @click="adverseCloseSaleMaterial(scope.row)"
+              v-if="scope.row.deletedStatus != null"
+              >反关闭分录</el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+    <div class="address">
+      <!-- 收货地址弹出框 -->
+      <el-dialog title="收货地址" :visible.sync="drawer" 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="drawer = false">取消</el-button>
+          <el-button type="primary" @click="addAddressClick">确定</el-button>
+        </div>
+      </el-dialog>
+    </div>
+  </div>
+</template>
+<script>
+import { sjTime, isVehicleNumber } from "@/utils/sharedJsFile";
+import { getCookie } from "@/utils/util.js";
+export default {
+  data() {
+    return {
+      // 线路名称
+      lineName: "",
+      //线路id
+      lineId: null,
+      drawer: false,
+      clickIndex: null,
+      input: null,
+      screen: "",
+      options: [
+        {
+          value: "下单客户",
+          lable: "下单客户",
+        },
+        {
+          value: "承运商",
+          lable: "承运商",
+        },
+        {
+          value: "车牌号",
+          lable: "车牌号",
+        },
+         {
+          value: "路线",
+          lable: "路线",
+        },
+      ],
+      startTime: null,
+      endTime: null,
+      //合计净重
+      totalNumber: 0,
+      //合计车数
+      totalCapacity: 0,
+      tableTitle: "销售统计报表",
+      capacityList: [],
+      carrierList: [],
+      // 线路
+      LineList:[],
+      tableData: [],
+      spanArr: [],
+      pos: 0,
+      a: 1,
+      isCellClick: 0,
+      columnIndexs: [
+        0, 1, 2, 3, 7, 8, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
+        29, 31,
+      ],
+      //钢材多拼车辆线路ID
+      //索引从1-10为1-10拼路线ID
+      // lineSpelling: [
+      //   0,
+      //   110001,
+      //   110002,
+      //   110003,
+      //   110004,
+      //   110005,
+      //   110006,
+      //   110007,
+      //   110008,
+      //   110009,
+      //   110010
+      // ],
+      tableTitle: "销售钢材统计报表",
+      //所有省
+      provinceList: [],
+      //选中的省
+      province: "",
+      //所有市
+      cityList: [],
+      //选中的市
+      city: "",
+      //所有的县(区)
+      countyList: [],
+      //选中的县
+      county: "",
+      //地址输入框的值
+      addresText: "",
+      //已选中省市县
+      address: null,
+      //具体地址
+      place: null,
+      //暂存具体地址
+      place1: null,
+      //省市县Id
+      addressId: null,
+      direction: "rtl",
+      addressRow: {},
+    };
+  },
+  created() {},
+  mounted() {
+    this.getSteelReport();
+  },
+  methods: {
+    //反关闭整条分录
+    adverseCloseSaleMaterial(row) {
+      console.log(row.saleMaterialId);
+      this.$confirm("确定反关闭该条分录?", "提示", {
+        cancelButtonText: "确定",
+        confirmButtonText: "取消",
+        center: true,
+      }).then(() => {
+        this.axios
+          .post(
+            "/api/v1/ams/adverseCloseSaleMaterial?saleMaterialId=" +
+              row.saleMaterialId
+          )
+          .then((res) => {
+            if (res.data.code == "200") {
+              this.$message.success("反关闭成功");
+              this.getSteelReport();
+            } else {
+              this.$message.error("反关闭失败");
+              this.getSteelReport();
+            }
+          })
+          .catch(() => {
+            this.$message.error("反关闭失败");
+            this.getSteelReport();
+          });
+      });
+    },
+
+    //销售钢材报表导出excel
+    exportAllReportToExcel() {
+      const loading = this.$loading({
+        lock: true,
+        text: "正在导出Excel",
+        spinner: "el-icon-loading",
+        background: "rgba(0, 0, 0, 0.7)",
+      });
+      var title = this.tableTitle;
+      let tHeader = [];
+      let filterVal = [];
+      console.log(this.$refs.tableRef);
+      this.$refs.tableRef.$children.forEach((item) => {
+        if (item.label != undefined && item.prop != undefined) {
+          if (tHeader.indexOf(item.label) === -1) {
+            tHeader.push(item.label);
+          }
+          if (filterVal.indexOf(item.prop) === -1) {
+            filterVal.push(item.prop);
+          }
+        }
+      });
+      this.downloadLoading = true;
+      require.ensure([], () => {
+        const {
+          export_json_to_excel,
+        } = require("@/assets/excel/Export2Excel.js"); //这里必须使用绝对路径,使用@/+存放export2Excel的路径
+        let data = this.tableData.map((v) => filterVal.map((j) => v[j])); //3.formatJson格式转换
+        export_json_to_excel(tHeader, data, title); // (title)导出的表格名称
+      });
+      loading.close();
+    },
+    changeScreen() {
+      console.log(this.screen);
+    },
+    cellClik(row, column, cell, event) {
+      if (row.group != this.clickIndex) {
+        // this.getSteelReport();
+        this.tableData.forEach((item) => {
+          if (item.group == this.clickIndex) {
+            this.$set(item, "isCapacityShow", 0);
+            this.$set(item, "isCarrierShow", 0);
+            this.$set(item, "isTelShow", 0);
+            this.$set(item, "isAddressShow", 0);
+            this.$set(item, "isNumShow", 0);
+            this.$set(item, "isLineName", 0);
+          }
+        });
+      }
+      if (column.property == "capacityNo") {
+        this.$set(row, "isCapacityShow", 1);
+        this.clickIndex = row.group;
+      }
+      if (column.property == "LineName") {
+        this.$set(row, "isLineName", 1);
+        this.clickIndex = row.group;
+      }
+      if (column.property == "carrierName") {
+        this.$set(row, "isCarrierShow", 1);
+        this.clickIndex = row.group;
+      }
+      if (column.property == "capacityTel") {
+        this.$set(row, "isTelShow", 1);
+        this.clickIndex = row.group;
+      }
+      if (column.property == "addressPlace") {
+        this.$set(row, "isAddressShow", 1);
+        this.clickIndex = row.group;
+      }
+      if (column.property == "materialNum") {
+        this.$set(row, "isNumShow", 1);
+        this.clickIndex = row.group;
+      }
+    },
+    //承运商弹出层
+    handleSelectCarrier(row, index, item) {
+      this.carrierList.forEach((item) => {
+        if (item.carrierName == row.carrierName) {
+          row.newCarrierId = item.carrierId;
+          row.carrierId = item.carrierId;
+        }
+      });
+    },
+    //承运商边输边查
+    querySearchCarrier(queryString, cb) {
+      if (queryString.length > 1) {
+        this.axios
+          .post("/api/v1/uc/getCarrierMesByLike?index=" + queryString)
+          .then((res) => {
+            if (res.data.code == "200") {
+              this.carrierList = [];
+              if (res.data.data.length == 0) {
+                this.$message.info("承运商不存在,请前往注册");
+                return;
+              }
+              var restaurants = res.data.data;
+              this.carrierList = res.data.data;
+              var results = queryString
+                ? restaurants.filter(this.createFilterCarrier(queryString))
+                : restaurants;
+              cb(results);
+            }
+          });
+      }
+    },
+
+    querySearchLineName(queryString, cb) {
+      if (queryString.length > 1) {
+        this.axios
+          .post(
+            "/api/v1/rms/getAllLineDesk?apiId=249&lineType=3&con=" + queryString
+          )
+          .then((res) => {
+            console.log(res.data.data.list.length);
+            console.log(res.data.data);
+            if (res.data.code == "200") {
+              this.LineList = [];
+              if (res.data.data.list.length == 0) {
+                this.$message.info("线路不存在,请前往注册");
+                return;
+              }
+              var restaurants = res.data.data.list;
+              this.LineList = res.data.data.list;
+              console.log(this.LineList);
+              var results = queryString
+                ? restaurants.filter(this.createFilterLine(queryString))
+                : restaurants;
+              cb(results);
+            }
+          });
+      }
+    },
+    // 过滤器
+    createFilterLine(queryString) {
+      return (restaurants) => {
+        return (
+          restaurants.lineName.toLowerCase().indexOf(queryString.toLowerCase()) >
+          -1
+        );
+      };
+    },
+
+    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) => {
+            this.capacityList = [];
+            if (res.data.code == "200") {
+              if (res.data.data.length == 0) {
+                this.$message.info("车牌号不存在,请前往注册");
+                return;
+              }
+              var restaurants = res.data.data;
+              this.capacityList = res.data.data;
+              var results = queryString
+                ? restaurants.filter(this.createFilter(queryString))
+                : restaurants;
+                console.log("res",+results);
+              // 调用 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.newsCapacityId = item.capacityId;
+        }
+      });
+    },
+
+  // 线路弹出层
+  handleSelectLine(row, index) {
+      this.capacityList.forEach((item) => {
+        if (item.lineName === row.lineName) {
+          console("item",item);
+          row.newLineId = item.lineId;
+        }
+      });
+    },
+
+    updateCapacity(row) {
+      if (row.newsCapacityId == null) {
+        this.$message.warning("请先注册车牌号或者选中弹出后再提交!");
+        return;
+      }
+      if (!isVehicleNumber(row.capacityNo)) {
+        this.$message.error("请输入正确格式的车牌号!");
+        return;
+      }
+      if (row.capacityIds != 0) {
+        const loading = this.$loading({
+          lock: true,
+          text: "正在变更车牌号",
+          spinner: "el-icon-loading",
+          background: "rgba(0, 0, 0, 0.7)",
+        });
+        this.axios
+          .post("/api/v1/ams/updateCapacityNumberInFactory", row)
+          .then((res) => {
+            if (res.data.code == 200) {
+              this.$message.success("变更车牌号成功!");
+              this.getSteelReport();
+              loading.close();
+            } else {
+              this.$message.success("变更失败,请联系管理员");
+              this.getSteelReport();
+              loading.close();
+            }
+          })
+          .catch(() => {
+            this.$message.success("变更失败,请联系管理员");
+            this.getSteelReport();
+            loading.close();
+          });
+      } else {
+        if (row.carrierIds == 0) {
+          this.$message.error("请先选择承运商!");
+          return;
+        }
+        let i = 0;
+        this.tableData.forEach((e) => {
+          if (row.group == e.group) {
+            i++;
+          }
+        });
+        // row.lineId = this.lineSpelling[i];
+        row.driverTel = row.capacityTel;
+        row.capacityNumber = row.capacityNo;
+        let arr = [];
+        arr.push(row);
+        const loading = this.$loading({
+          lock: true,
+          text: "正在变更车牌号",
+          spinner: "el-icon-loading",
+          background: "rgba(0, 0, 0, 0.7)",
+        });
+        this.axios
+          .post("/api/v1/ams/dispatchSteelOrder", arr)
+          .then((res) => {
+            if (res.data.code == "200") {
+              this.$message.success("派车成功!");
+              this.getSteelReport();
+              loading.close();
+            } else {
+              this.$message.error("派车失败,请联系管理员");
+              this.getSteelReport();
+              loading.close();
+            }
+          })
+          .catch(() => {
+            this.$message.error("派车失败,请联系管理员");
+            this.getSteelReport();
+            loading.close();
+          });
+      }
+    },
+    //修改司机电话号码
+    updateDriverTel(row) {
+      const loading = this.$loading({
+        lock: true,
+        text: "修改电话号码中",
+        spinner: "el-icon-loading",
+        background: "rgba(0, 0, 0, 0.7)",
+      });
+      if (row.capacityTel == null || row.capacityTel == "") {
+        this.$message.error("电话号码不能为空");
+        return;
+      }
+      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();
+            loading.close();
+          } else {
+            this.$message.error("修改失败");
+            this.getSteelReport();
+            loading.close();
+          }
+        })
+        .catch(() => {
+          this.$message.error("修改失败");
+          this.getSteelReport();
+          loading.close();
+        });
+    },
+    //关闭车辆金蝶分录
+    deleteEasEntryId(row) {
+      this.$confirm("确定关闭该车金蝶分录吗?", "提示", {
+        confirmButtonText: "是",
+        cancelButtonText: "否",
+        center: true,
+        type: "warning",
+      })
+        .then(() => {
+          let map = row;
+          map.isCloseEas = Number(0);
+          const loading = this.$loading({
+            lock: true,
+            text: "正在关闭车辆",
+            spinner: "el-icon-loading",
+            background: "rgba(0, 0, 0, 0.7)",
+          });
+          this.axios
+            .post("/api/v1/ams/updateCarAddress", map)
+            .then((res) => {
+              if (res.data.code == "200") {
+                this.$message.success("关闭车辆成功");
+                this.getSteelReport();
+                loading.close();
+              } else {
+                this.$message.error("关闭车辆失败");
+                this.getSteelReport();
+                loading.close();
+              }
+            })
+            .catch(() => {
+              this.$message.error("关闭车辆失败");
+              this.getSteelReport();
+              loading.close();
+            });
+        })
+        .catch(() => {
+          this.$message.info("取消关闭");
+        });
+    },
+    //修改承运商授权
+    updateTruckCarrier(row) {
+      if (row.newCarrierId == null) {
+        this.$message.warning("请注册承运商或者选中弹出层之后再提交!");
+        this.getSteelReport();
+        return;
+      }
+      if (row.carrierIds != 0) {
+        const loading = this.$loading({
+          lock: true,
+          text: "正在修改承运商授权",
+          spinner: "el-icon-loading",
+          background: "rgba(0, 0, 0, 0.7)",
+        });
+        this.axios
+          .post("/api/v1/ams/updateTruckNoCarrier", row)
+          .then((res) => {
+            if (res.data.code == "200") {
+              this.$message.success("修改承运商授权成功");
+              this.getSteelReport();
+              loading.close();
+            } else {
+              this.$message.error("修改失败,请联系管理员!");
+              this.getSteelReport();
+              loading.close();
+            }
+          })
+          .catch(() => {
+            this.$message.error("修改失败,请联系管理员!");
+            this.getSteelReport();
+            loading.close();
+          });
+      } else {
+        //授权承运商
+        let arr = [];
+        arr.push(row);
+        const loading = this.$loading({
+          lock: true,
+          text: "正在授权承运商",
+          spinner: "el-icon-loading",
+          background: "rgba(0, 0, 0, 0.7)",
+        });
+        this.axios
+          .post("/api/v1/ams/dispatchToCarrier", arr)
+          .then((res) => {
+            if (res.data.code == "200") {
+              this.$message.success("授权承运商成功");
+              this.getSteelReport();
+              loading.close();
+            } else {
+              this.$message.error("授权失败,请联系管理员");
+              this.getSteelReport();
+              loading.close();
+            }
+          })
+          .catch(() => {
+            this.$message.error("授权失败,请联系管理员");
+            this.getSteelReport();
+            loading.close();
+          });
+      }
+    },
+    updateAddress(row) {
+      this.drawer = true;
+      this.addressRow = row;
+      this.province = row.addressProvince;
+      this.city = row.addressDistrict;
+      this.county = row.addressTown;
+      this.addressId = row.shipperAddressId;
+      this.getAllProvince();
+      this.onchangeProvince();
+      this.onchangeCity();
+    },
+    //获取所有省数据
+    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 +
+            "&i=" +
+            new Date()
+        )
+        .then((res) => {
+          this.cityList = res.data.data;
+          // this.city = "";
+          // this.county = "";
+        });
+    },
+    //市改变
+    onchangeCity() {
+      this.axios
+        .post(
+          "/api/v1/uc/getTownByDistrict?addressDistrict=" +
+            this.city +
+            "&i=" +
+            new Date()
+        )
+        .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;
+        });
+    },
+    //收货地址弹出层
+    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
+        );
+      };
+    },
+    //修改收货地址
+    addAddressClick() {
+      const loading = this.$loading({
+        lock: true,
+        text: "正在修改收货地址",
+        spinner: "el-icon-loading",
+        background: "rgba(0, 0, 0, 0.7)",
+      });
+      let map = this.addressRow;
+      map.isCloseEas = Number(1);
+      map.isNewCar = Number(1);
+      map.place = this.place;
+      map.shipperAddressId = this.addressId;
+      this.axios
+        .post("/api/v1/ams/updateCarAddress", map)
+        .then((res) => {
+          if (res.data.code == "200") {
+            this.$message.success("修改收货地址成功!");
+            this.getSteelReport();
+            this.drawer = false;
+            loading.close();
+          } else {
+            this.$message.error("修改失败,请联系管理员!");
+            this.getSteelReport();
+            this.drawer = false;
+            loading.close();
+          }
+        })
+        .catch(() => {
+          this.$message.error("修改失败,请联系管理员!");
+          this.getSteelReport();
+          this.drawer = false;
+          loading.close();
+        });
+    },
+    //记录每一行的合并数
+    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 + 1;
+        this.totalNumber = data.reduce(function (prev, item) {
+          return prev + item.materialNum;
+        }, 0);
+      }
+    },
+    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,
+        };
+      }
+    },
+    //减少物资件数
+    updateBillOrder(row) {
+      const loading = this.$loading({
+        lock: true,
+        text: "修改物资件数中",
+        spinner: "el-icon-loading",
+        background: "rgba(0, 0, 0, 0.7)",
+      });
+      let map = {
+        materialId: row.materialId,
+        materialNum: row.materialNum,
+      };
+      let arr = [];
+      arr.push(map);
+      let updateMap = {
+        orderId: row.orderId,
+        saleOrderId: row.saleOrderId,
+        saleOrderMaterialId: row.saleOrderMaterialId,
+        mapList: arr,
+      };
+      this.axios
+        .post("/api/v1/oms/updateMaterialMes", updateMap)
+        .then((res) => {
+          if (res.data.code == "200") {
+            this.$message.success("修改物资数量成功");
+            this.getSteelReport();
+            loading.close();
+          } else {
+            this.$message.error("修改物资数量失败,请联系管理员");
+            this.getSteelReport();
+            loading.close();
+          }
+        })
+        .catch(() => {
+          this.$message.error("修改物资数量失败,请联系管理员");
+          this.getSteelReport();
+          loading.close();
+        });
+    },
+    //关闭单条分录
+    closeEasEntryId(row) {
+      console.log(row);
+      this.$prompt("确定关闭该条分录吗?", "警告", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        center: true,
+        inputPlaceholder: "请输入关闭理由",
+      })
+        .then(({ value }) => {
+          if (value != null || value != "") {
+            const loading = this.$loading({
+              lock: true,
+              text: "正在关闭该条分录",
+              spinner: "el-icon-loading",
+              background: "rgba(0, 0, 0, 0.7)",
+            });
+            let map = {
+              orderId: row.orderId,
+              saleOrderMaterialId: row.saleOrderMaterialId,
+              saleMaterialId: row.saleMaterialId,
+              reason: value,
+              number: row.saleOrderNo,
+              closeEntryId: row.closeEntryId,
+            };
+            this.axios
+              .post("/api/v1/ams/closeSteelMaterialId", map)
+              .then((res) => {
+                if (res.data.code == "200") {
+                  this.$message.success("关闭成功");
+                  this.getSteelReport();
+                  loading.close();
+                } else {
+                  this.$message.error("关闭失败,请联系管理员");
+                  this.getSteelReport();
+                  loading.close();
+                }
+              })
+              .catch(() => {
+                this.$message.error("关闭失败,请联系管理员");
+                this.getSteelReport();
+                loading.close();
+              });
+          }
+        })
+        .catch(() => {
+          this.$message.info("取消输入");
+        });
+    },
+    //查询,输入查询条件
+    onclick() {
+      let startTime = null;
+      let endTime = null;
+      let carrierSsoId = null;
+      let carrierName = null;
+      let consigneeName = null;
+      let capacityNo = null;
+      let remark = null;
+      let saler = null;
+      if (this.startTime && this.endTime) {
+        startTime = sjTime(this.startTime);
+        endTime = sjTime(this.endTime);
+      }
+      if (getCookie("orgCode") == "chengyunshang") {
+        carrierSsoId = getCookie("userId");
+      }
+      if (getCookie("orgCode") == "xiaoshouyewuyuan") {
+        saler = getCookie("loginName");
+      }
+      if (this.screen == "下单客户") {
+        consigneeName = this.input;
+      } else if (this.screen == "承运商") {
+        carrierName = this.input;
+      } else if (this.screen == "车牌号") {
+        capacityNo = this.input;
+      } else {
+        remark = this.input;
+      }
+      this.axios
+        .post(
+          "/api/v1/tms/getSaleSteelReport?startTime=" +
+            startTime +
+            "&endTime=" +
+            endTime +
+            "&carrierSsoId=" +
+            carrierSsoId +
+            "&i=" +
+            new Date() +
+            "&remark=" +
+            remark +
+            "&consigneeName=" +
+            consigneeName +
+            "&carrierName=" +
+            carrierName +
+            "&capacityNo=" +
+            capacityNo +
+            "&saler=" +
+            saler
+        )
+        .then((res) => {
+          this.tableData = res.data.data;
+          this.getSpanArr(res.data.data);
+        });
+    },
+    //重新获取表格数据
+    refresh() {
+      this.getSteelReport();
+    },
+    //获取钢材统计报表
+    getSteelReport() {
+      let carrierSsoId = null;
+      let saler = null;
+      if (getCookie("orgCode") == "chengyunshang") {
+        carrierSsoId = getCookie("userId");
+      }
+      if (getCookie("orgCode") == "xiaoshouyewuyuan") {
+        saler = getCookie("loginName");
+      }
+      this.axios
+        .post(
+          "/api/v1/tms/getSaleSteelReport?startTime=" +
+            null +
+            "&endTime=" +
+            null +
+            "&carrierSsoId=" +
+            carrierSsoId +
+            "&saler=" +
+            saler +
+            "&i=" +
+            new Date()
+        )
+        .then((res) => {
+          this.tableData = res.data.data;
+          this.getSpanArr(res.data.data);
+        });
+    },
+    //控制列自动撑开
+    flexColumnWidth(str, tableData, flag) {
+      // str为该列的字段名(传字符串);tableData为该表格的数据源(传变量);
+      // flag为可选值,可不传该参数,传参时可选'max'或'equal',默认为'max'
+      // flag为'max'则设置列宽适配该列中最长的内容,flag为'equal'则设置列宽适配该列中第一行内容的长度。
+      str = str + "";
+      let columnContent = "";
+      if (
+        !tableData ||
+        !tableData.length ||
+        tableData.length === 0 ||
+        tableData === undefined
+      ) {
+        return;
+      }
+      if (!str || !str.length || str.length === 0 || str === undefined) {
+        return;
+      }
+      if (flag === "equal") {
+        // 获取该列中第一个不为空的数据(内容)
+        for (let i = 0; i < tableData.length; i++) {
+          if (tableData[i][str].length > 0) {
+            columnContent = tableData[i][str] + "";
+            break;
+          }
+        }
+      } else {
+        // 获取该列中最长的数据(内容)
+        let index = 0;
+        for (let i = 0; i < tableData.length; i++) {
+          if (tableData[i][str] === null) {
+            // 当数据为空时跳过本次循环获取下一条数据长度
+            continue;
+          }
+          const now_temp = tableData[i][str] + "";
+          const max_temp = tableData[index][str] + "";
+          if (now_temp.length > max_temp.length) {
+            index = i;
+          }
+        }
+        columnContent = tableData[index][str] + "";
+      } // 以下分配的单位长度可根据实际需求进行调整
+      let flexWidth = 0;
+      if (columnContent != undefined) {
+        for (const char of columnContent) {
+          if ((char >= "A" && char <= "Z") || (char >= "a" && char <= "z")) {
+            // 如果是英文字符,为字符分配10个单位宽度
+            flexWidth += 10;
+          } else if (char >= "\u4e00" && char <= "\u9fa5") {
+            // 如果是中文字符,为字符分配16个单位宽度
+            flexWidth += 14;
+          } else {
+            // 其他种类字符,为字符分配10个单位宽度
+            flexWidth += 10;
+          }
+        }
+      }
+      if (flexWidth < 80) {
+        // 设置最小宽度
+        flexWidth = 80;
+      }
+      if (flexWidth > 500) {
+        // 设置最大宽度
+        flexWidth = 500;
+      }
+      return flexWidth + "px";
+    },
+  },
+};
+</script>
+
+<style lang="scss" scoped>
+.purchasFuelNewMonitor {
+  .tableTop {
+    margin-left: 20px;
+    margin-top: 20px;
+  }
+  .table {
+    margin-left: 20px;
+    margin-top: 20px;
+  }
+  .address {
+    .button-box {
+      display: flex;
+      justify-content: center;
+      align-items: center;
+    }
+  }
+}
+</style>

+ 8 - 3
src/views/inward/router/index.js

@@ -43,6 +43,10 @@ import outFactory from "@/views/inward/components/offsetSteel/truckTransport/out
 import truckReceiptResult from "@/views/inward/components/offsetSteel/truckTransport/truckReceiptResult.vue";
 //内转钢材到异地库--火车运输--请车作业
 import wagonPlease from "@/views/inward/components/offsetSteel/truckTrain/wagonPlease.vue";
+
+//内转钢材到异地库--分派订单
+import saleTruckOrder from "@/views/inward/components/offsetSteel/saleSteelTruckOrder/saleTruckOrder.vue";
+
 //内转钢材到异地库--火车运输--批车作业
 import wagonApprove from "@/views/inward/components/offsetSteel/truckTrain/wagonApprove.vue";
 //内转钢材到异地库--火车运输--装车作业
@@ -317,11 +321,12 @@ const constantRouterMap = [
         meta: { code: "xtpzgl-yhgl" },
         component: trainUnload
       },
+      
       {
-        path: "truckLoad",
-        name: "truckLoad",
+        path: "saleTruckOrder",
+        name: "saleTruckOrder",
         meta: { code: "xtpzgl-yhgl" },
-        component: truckLoad
+        component: saleTruckOrder
       },
       {
         path: "daZhouEnFactoryResult",

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
static/lib/XLSX/xlsx.core.min.js


Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff