luobang 3 년 전
부모
커밋
f785722ef0

+ 1 - 8
build/utils.js

@@ -16,15 +16,8 @@ const devPathSrc = path.resolve(__dirname, '../../../src'); // node_modules应
 //       统计报表       组织机构/系统管理 采购  仓储
 //  'statisticalReport','systemConfig','TMS','WMS','workFlow']
 let devModules = ['all']
-// let devModules = ['index','TMS','sale']
-// let devModules = ['index','appoint','WMS'];
-// let devModules = ['index','inward','ADMINISTRATORS']
-// let devModules = ['index','sale','RMS']
-// let devModules = ['index','SporadicManage','RMS','statisticalReport']
-// let devModules = ['index','inward','statisticalReport']
-//  let devModules = ['index','WMS','sale','TMS','inward','SporadicManage']
-// let devModules = ['index','SporadicManage','TMS','statisticalReport','RMS'];
 // let devModules = ['index','RMS'];
+// let devModules = ['index','queue','inward']
 if (pathSrc.indexOf('node_modules') > -1) {
     devModules = require('../../../cors.js').devModules;
 }

+ 1 - 1
config/index.js

@@ -66,7 +66,7 @@ let proxyTable = {
   "/api/v1": {
     // target: "http://localhost:8080",
     target: "http://172.16.33.166:8080",
-    // target: "http://192.168.1.114:8019",
+    // target: "http://192.168.101.9:8019",
     ws: true,
     pathRewrite: {
       "^/api/v1": "/api/v1"

+ 15 - 1
src/components/DilCommonUI/packages/table/src/table.vue

@@ -261,7 +261,21 @@ export default {
     toggleRowExpansion(row, expanded) {
       this.$refs.mainTable.toggleRowExpansion(row, expanded);
     },
-
+    // objectSpanMethod({ row, column, rowIndex, columnIndex }) {
+    //     if (columnIndex === 0) {
+    //       if (rowIndex % 2 === 0) {
+    //         return {
+    //           rowspan: 2,
+    //           colspan: 1
+    //         };
+    //       } else {
+    //         return {
+    //           rowspan: 0,
+    //           colspan: 0
+    //         };
+    //       }
+    //     }
+    //   }
   },
 };
 </script>

+ 48 - 4
src/views/ADMINISTRATORS/components/ADMINISTRATORS1.vue

@@ -148,6 +148,51 @@
           </div>
           </div>
           </el-tab-pane>
+          <el-tab-pane label="修改卸货厂区" name="third">
+              <div class="admin2">
+            <div class="carrier from">
+                <el-form
+                    :inline="true"
+                    class="demo-form-inline"
+                    label-width="80px"
+                    >
+                    <el-form-item label="车牌号:">
+                    <el-autocomplete
+                    class="inline-input"
+                    v-model="capacityName"
+                    :fetch-suggestions="querySearchCapacity"
+                    placeholder="车牌号"
+                    :trigger-on-focus="false"
+                    @select="handleSelectCapacity"
+                    >
+                    <template slot-scope="{ item }">
+                    <div class="name">{{ item.capacityNumber }}</div>
+                    </template>
+                    </el-autocomplete>
+                    </el-form-item>
+                </el-form>
+            </div>
+            <div class="poundNo from">
+                <span class="text">运输订单号:</span>
+                <el-input v-model="orderNumber" disabled></el-input>
+            </div>
+            <div class="material from">
+                <span class="text">卸货厂区:</span>
+                <el-select v-model="materialId" placeholder="请选择">
+                <el-option
+                    v-for="item in materialList"
+                    :key="item.materialId"
+                    :label="item.materialName" 
+                    :value="item.materialId"
+                >
+                </el-option>
+                </el-select>
+            </div>
+            <div class="button_box">
+            <el-button type="primary" @click="updateLineSqe" :disabled = "disabled">确认</el-button>
+          </div>
+          </div>
+          </el-tab-pane>
         </el-tabs>
       </div>
     </template>
@@ -241,9 +286,6 @@ export default {
       this.capacityName = item.capacityNumber
       this.axios.get("/api/v1/uc/getOrderNumber?capacityId=" + this.capacityId).then((res) =>{
           if(res.data.code == "200"){
-              console.log("----");
-              console.log(res.data)
-              console.log("----");
               this.orderId = res.data.data.orderId
               this.orderNumber = res.data.data.orderNumber
               this.axios.get("/api/v1/uc/getMaterialIdByOrderId?orderId=" + this.orderId).then((res) =>{
@@ -251,6 +293,9 @@ export default {
                       this.materialList = res.data.data
                   }
               })
+              this.axios.get("/api/v1/uc/getPurOrgId?orderId=" + this.orderId).then((res) =>{
+                  
+              })
           }
       })
     },
@@ -277,7 +322,6 @@ export default {
     //以上是承运商边输边查搜索
     information(){
         this.axios.get("/api/v1/uc/getAllCalculateMes").then((res) =>{
-            
             this.truckCalFirstList = res.data
             this.truckCalSecondList = res.data
         })

+ 335 - 278
src/views/WMS/components/billingOrder/updateBill.vue

@@ -4,81 +4,83 @@
     <template>
       <div class="admin1">
         <el-tabs v-model="activeName">
-          <el-tab-pane label="修改提货单" name="first">
-          <div class="admin2">
-            <div class="carrier from">
+          <el-tab-pane label="提货单" name="first">
+            <div class="admin2">
+              <div class="carrier from">
                 <el-form
-                    :inline="true"
-                    class="demo-form-inline"
-                    label-width="80px"
-                    >
-                    <el-form-item label="车牌号:">
+                  :inline="true"
+                  class="demo-form-inline"
+                  label-width="80px"
+                >
+                  <el-form-item label="车牌号:">
                     <el-autocomplete
-                    class="inline-input"
-                    v-model="capacityName"
-                    :fetch-suggestions="querySearchCapacity"
-                    placeholder="车牌号"
-                    :trigger-on-focus="false"
-                    @select="handleSelectCapacity"
+                      class="inline-input"
+                      v-model="capacityName"
+                      :fetch-suggestions="querySearchCapacity"
+                      placeholder="车牌号"
+                      :trigger-on-focus="false"
+                      @select="handleSelectCapacity"
                     >
-                    <template slot-scope="{ item }">
-                    <div class="name">{{ item.capacityNumber }}</div>
-                    </template>
+                      <template slot-scope="{ item }">
+                        <div class="name">{{ item.capacityNumber }}</div>
+                      </template>
                     </el-autocomplete>
-                    </el-form-item>
+                  </el-form-item>
                 </el-form>
-            </div>
-            <div></div>
-            <div class="poundNo from">
+              </div>
+              <div class="poundNo from">
                 <span class="text">运输订单号:</span>
-                <el-select v-model="orderId" placeholder="请选择" @change="changeOrderNo">
-                <el-option
-                    v-for="item in orderList"
-                    :key="item.orderId"
-                    :label="item.orderNumber" 
-                    :value="item.orderId"
-                >
-                </el-option>
-                </el-select>
-            </div>
-            <div class="material from">
-                <span class="text">物资:</span>
-                <el-select v-model="materialId" placeholder="请选择" @change="changeMaterial">
-                <el-option
-                    v-for="item in materialList"
-                    :key="item.materialId"
-                    :label="item.materialName" 
-                    :value="item.materialId"
-                >
-                </el-option>
-                </el-select>
-            </div>
-            <div class="material from"> 
-                <span class="text">物资件数:</span>
-                <el-input v-model="materialNum" ></el-input>
-            </div>
-            <div class="material from"> 
+                <el-input v-model="orderNumber" disabled></el-input>
+              </div>
+              <div
+                class="material from"
+                v-for="(item, index) in materialList"
+                :key="index"
+                style="margin-left:430px"
+              >
+                <el-form inline>
+                  <el-form-item label="物资名称">
+                    <el-input
+                      v-model="item.materialName"
+                      placeholder="物资名称"
+                      disabled
+                    ></el-input>
+                  </el-form-item>
+                  <el-form-item label="物资件数">
+                    <el-input
+                      v-model="item.materialNum"
+                      placeholder="物资件数"
+                      @blur="onblur(item)"
+                    ></el-input>
+                  </el-form-item>
+                </el-form>
+              </div>
+              <div class="material from">
                 <span class="text">发货单位:</span>
                 <el-input v-model="shipperName" disabled></el-input>
-            </div>
-            <div class="material from"> 
+              </div>
+              <div class="material from">
                 <span class="text">收货单位:</span>
                 <el-input v-model="consigneeCompanyName" disabled></el-input>
-            </div>
-            <div class="material from"> 
+              </div>
+              <div class="material from">
                 <span class="text">收货地址:</span>
                 <el-input v-model="receiveAddressName" disabled></el-input>
-            </div>
-            <div class="material from"> 
+              </div>
+              <div class="material from">
                 <span class="text">截止日期:</span>
                 <el-input v-model="saleDateOfReceipt" disabled></el-input>
+              </div>
+            </div>
+            <div class="button_box">
+              <el-button
+                type="primary"
+                @click="onClickConfirm"
+                :disabled="disabled"
+                >确认</el-button
+              >
             </div>
-        </div>
-          <div class="button_box">
-            <el-button type="primary" @click="onClickConfirm" :disabled = "disabled">确认</el-button>
-          </div>
           </el-tab-pane>
-
         </el-tabs>
       </div>
     </template>
@@ -86,268 +88,323 @@
 </template>
 <script>
 import { isNumber } from "@/utils/sharedJsFile";
+var i = 0
 export default {
   data() {
     return {
-        orderNumber:null,
-        activeName:"first",
-        capacityName:null,    
-        stateCapacity:null,
-        materialList:[],
-        capacityId:null,
-        materialId:null,
-        disabled:false,
-        orderId:null,
-        orderList:[],
-        materialNum:null,
-        saleDateOfReceipt:null,
-        consigneeCompanyName:null,
-        receiveAddressName:null,
-        shipperName:null
+      orderNumber: null,
+      activeName: "first",
+      capacityName: null,
+      stateCapacity: null,
+      materialList: [],
+      capacityId: null,
+      materialId: null,
+      disabled: false,
+      orderId: null,
+      orderList: [],
+      materialNum: null,
+      saleDateOfReceipt: null,
+      consigneeCompanyName: null,
+      receiveAddressName: null,
+      shipperName: null,
+      materialList1:[]
     };
   },
-  methods: {    
+  methods: {
     //运力弹出层
-    handleSelectCapacity(item){
-      console.log(item)
-      this.capacityId = item.capacityId
-      this.capacityName = item.capacityNumber
-      this.axios.get("/api/v1/oms/getSteelOrderNum?capacityId=" + this.capacityId).then((res) =>{
-          if(res.data.code == "200"){
-              console.log(res.data.data)
-              this.orderList = res.data.data
+    handleSelectCapacity(item) {
+      console.log(item);
+      this.capacityId = item.capacityId;
+      this.capacityName = item.capacityNumber;
+      this.axios
+        .get("/api/v1/oms/getSteelOrderNum?capacityId=" + this.capacityId)
+        .then(res => {
+          if (res.data.code == "200") {
+            console.log(res.data.data);
+            this.orderList = res.data.data;
+            this.orderNumber = res.data.data[0].orderNumber;
+            this.orderId = res.data.data[0].orderId;
+            this.changeOrderNo();
           }
-      })
+        });
     },
-    changeOrderNo(){
-        console.log(this.orderNumber)
-        this.axios.get("/api/v1/oms/getMesToSteelDepartment?orderId=" + this.orderId).then((res) => {
-            this.materialList = res.data.data.materialMes
-            this.saleDateOfReceipt = res.data.data.saleDateOfReceipt
-            this.consigneeCompanyName = res.data.data.consigneeCompanyName
-            this.receiveAddressName = res.data.data.receiveAddressName
-            this.shipperName = res.data.data.shipperName
-        })
+    changeOrderNo() {
+      this.axios
+        .get("/api/v1/oms/getMesToSteelDepartment?orderId=" + this.orderId)
+        .then(res => {
+          this.materialList = res.data.data.materialMes;
+          this.materialList1 = res.data.data.materialMes;
+          console.log(this.materialList);
+          this.saleDateOfReceipt = res.data.data.saleDateOfReceipt;
+          this.consigneeCompanyName = res.data.data.consigneeCompanyName;
+          this.receiveAddressName = res.data.data.receiveAddressName;
+          this.shipperName = res.data.data.shipperName;
+        });
     },
-    changeMaterial(){
-        console.log(this.materialId)
-        this.materialList.forEach((e) => {
-            if(e.materialId == this.materialId){
-                this.materialNum = e.materialNum
-                this.maxMaterialNum = e.materialNum
+    changeMaterial() {
+      console.log(this.materialId);
+      this.materialList.forEach(e => {
+        if (e.materialId == this.materialId) {
+          this.materialNum = e.materialNum;
+          this.maxMaterialNum = e.materialNum;
+        }
+      });
+    },
+    onblur(item) {
+      if (!isNumber(item.materialNum)) {
+        this.$message.error("请输入数字!");
+        this.materialList1.forEach(e => {
+          if (item.materialId == e.materialId) {
+            item.materialNum = e.materialNum;
+          }
+        });
+      } else {
+        this.materialList1.forEach(e => {
+          if (item.materialId == e.materialId) {
+            if (item.materialNum > e.materialNum) {
+              this.$message.error("修改数量不得大于计划数");
             }
-        })
+          }
+        });
+      }
     },
     //以下是运力边输边查搜索
     querySearchCapacity(queryString, cb) {
-        if(queryString.length < 3){
-            return
-        }
-        this.axios.get('/api/v1/uc/getCapacityNumber?index='+queryString).then((res)=>{
-        if(res.data.code == "200"){
-          var restaurantsCarrier = res.data.data
-          console.log(restaurantsCarrier,"restaurantsCarrier");
-          var results = queryString ? restaurantsCarrier.filter(this.createFilterCarrier(queryString)) :restaurantsCarrier;
-           // 调用 callback 返回建议列表的数据
-          cb(results);
-        }
-        })     
-      },
+      if (queryString.length < 3) {
+        return;
+      }
+      this.axios
+        .get("/api/v1/uc/getCapacityNumber?index=" + queryString)
+        .then(res => {
+          if (res.data.code == "200") {
+            var restaurantsCarrier = res.data.data;
+            console.log(restaurantsCarrier, "restaurantsCarrier");
+            var results = queryString
+              ? restaurantsCarrier.filter(this.createFilterCarrier(queryString))
+              : restaurantsCarrier;
+            // 调用 callback 返回建议列表的数据
+            cb(results);
+          }
+        });
+    },
     createFilterCarrier(queryString) {
-        return (restaurantsCarrier)  =>  {
-          return (restaurantsCarrier.capacityNumber.toLowerCase().indexOf(queryString.toLowerCase()) > -1);
-        };
-      },
-    //以上是承运商边输边查搜索
-    onClickConfirm(){
-        if(!isNumber(this.materialNum)){
-            this.$message.error("件数请输入数字")
-            return
-        }
-        if((parseInt(this.materialNum) > parseInt(this.maxMaterialNum))){
-            this.$message.error("修改后的数量不得大于提货单数量")
-            return
-        }
-        if(this.materialNum == 0){
-            this.$message.error("不能将物资数量修改为0")
-            return
-        }
-        let updateNumMap = {
-            orderId:this.orderId,
-            materialId:this.materialId,
-            materialNum:parseInt(this.materialNum)
+      return restaurantsCarrier => {
+        return (
+          restaurantsCarrier.capacityNumber
+            .toLowerCase()
+            .indexOf(queryString.toLowerCase()) > -1
+        );
+      };
+    },
+    
+    materialCompareTo(e) {
+      this.materialList1.forEach((e2) => {
+          console.log(e2.materialId)
+        if (e.materialId == e2.materialId) {
+            return e.materialNum
         }
-        this.axios.post("/api/v1/oms/updateMaterialMes",updateNumMap).then((res) => {
-            console.log(res)
-            if(res.data.code == '200'){
-                this.$message.success("修改物资数量成功")
-            }else{
-                this.$message.error("新增失败请联系管理员")
-            }
-        })
-
+      });
     },
-  },
+    //以上是运力边输边查搜索
+    onClickConfirm() {
+      var i = 0;
+      this.materialList.forEach(e => {
+        if (!isNumber(e.materialNum) || e.materialNum == 0) {
+          this.$message.error("件数不符合要求");
+          i++
+        }
+      });
+      if(i!=0){
+          return
+      }
+      //判断不能超过最大值
+      this.materialList.forEach((e) =>{
+         for(let j=0;j<this.materialList1.length;j++){
+             if((this.materialList1[j].materialId == e.materialId) && (this.materialList1[j].materialNum == e.materialNum)){
+                 this.$message.error("修改数量不得大于计划数量")
+                 i++
+             }
+         }
+      })
+      console.log(i)
+      if(i!=0){
+          return
+      }
+      let updateNumMap = {
+        orderId: this.orderId,
+        mapList: this.materialList
+      };
+      this.axios
+        .post("/api/v1/oms/updateMaterialMes", updateNumMap)
+        .then(res => {
+          console.log(res);
+          if (res.data.code == "200") {
+            this.$message.success("修改物资数量成功");
+          } else {
+            this.$message.error("新增失败请联系管理员");
+          }
+        });
+    }
+  }
 };
 </script>
 <style lang="scss">
-.admin{
+.admin {
   .admin1 {
-
+    margin-top: 40px;
+    margin-left: 40px;
+    .switch {
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      margin-top: 20px;
+      color: aqua;
+    }
+    .button_box {
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      width: 100%;
+      height: 100px;
+    }
+    .admin2 {
       margin-top: 40px;
-      margin-left: 40px;
-      .switch {
-          display: flex;
-          justify-content: center;
-          align-items: center;
-          margin-top: 20px;
-          color: aqua;
+      .from {
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        margin-top: 20px;
+        margin-bottom: 20px;
+      }
+      .carrier {
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        .el-form-item {
+          text-align: right;
+        }
+        .el-autocomplete {
+          width: 250px;
+        }
       }
-      .button_box {
-            display: flex;
-            justify-content: center;
-            align-items: center;
-            width: 100%;
-            height: 100px;
+      .material {
+        display: flex;
+        justify-content: center;
+        margin-top: 20px;
+        margin-right: 100px;
+        .text {
+          display: inline-block;
+          width: 170px;
+          text-align: right;
         }
-      .admin2 {    
-        margin-top: 40px; 
-        .from {
+        .el-input {
+          width: 250px;
+        }
+      }
+      .poundNo {
         display: flex;
+        justify-content: center;
         align-items: center;
+        margin-top: 20px;
+        margin-right: 100px;
+        .text {
+          display: inline-block;
+          width: 170px;
+          text-align: right;
+        }
+        .el-input {
+          width: 250px;
+        }
+      }
+      .block {
+        display: flex;
         justify-content: center;
+        align-items: center;
         margin-top: 20px;
-        margin-bottom: 20px;
+        margin-right: 100px;
+        .el-input {
+          width: 250px;
         }
-        .carrier{
-            display: flex;
-            justify-content: center;
-            align-items: center;
-            .el-form-item {
-                text-align: right;
-            }
-            .el-autocomplete{
-            width: 250px;
-            }
+        .text {
+          display: inline-block;
+          width: 170px;
+          text-align: right;
         }
-        .material {
+      }
+      .truckCalFirst {
         display: flex;
         justify-content: center;
         margin-top: 20px;
         margin-right: 100px;
         .text {
-            display: inline-block;
-            width: 170px;
-            text-align: right;
+          display: inline-block;
+          width: 170px;
+          text-align: right;
         }
         .el-input {
-            width: 250px;
+          width: 250px;
         }
+      }
+      .truckCalSecond {
+        display: flex;
+        justify-content: center;
+        margin-top: 20px;
+        margin-right: 100px;
+        .text {
+          display: inline-block;
+          width: 170px;
+          text-align: right;
         }
-        .poundNo {
-            display: flex;
-            justify-content: center;
-            align-items: center;
-            margin-top: 20px;
-            margin-right: 100px;
-            .text {
-            display: inline-block;
-            width: 170px;
-            text-align: right;
-                  }
-            .el-input {
-            width: 250px;
-                    }
-        }  
-        .block {
-            display: flex;
-            justify-content: center;
-            align-items: center;
-            margin-top: 20px;
-            margin-right: 100px;
-            .el-input {
-                width: 250px;
-            }
-            .text {
-            display: inline-block;
-            width: 170px;
-            text-align: right;
-            }
+        .el-input {
+          width: 250px;
         }
-        .truckCalFirst {
-            display: flex;
-            justify-content: center;
-            margin-top: 20px;
-            margin-right: 100px;
-            .text {
-                display: inline-block;
-                width: 170px;
-                text-align: right;
-            }
-            .el-input {
-                width: 250px;
-            }
+      }
+      .secondWeight {
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        margin-top: 20px;
+        margin-right: 100px;
+        .text {
+          display: inline-block;
+          width: 170px;
+          text-align: right;
         }
-        .truckCalSecond {
-            display: flex;
-            justify-content: center;
-            margin-top: 20px;
-            margin-right: 100px;
-            .text {
-                display: inline-block;
-                width: 170px;
-                text-align: right;
-            }
-            .el-input {
-                width: 250px;
-            }
+        .el-input {
+          width: 250px;
+        }
+      }
+      .firstWeight {
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        margin-top: 20px;
+        margin-right: 100px;
+        .text {
+          display: inline-block;
+          width: 170px;
+          text-align: right;
         }
-        .secondWeight {
-           display: flex;
-            justify-content: center;
-            align-items: center;
-            margin-top: 20px;
-            margin-right: 100px;
-            .text {
-            display: inline-block;
-            width: 170px;
-            text-align: right;
-                  }
-            .el-input {
-            width: 250px;
-                    } 
+        .el-input {
+          width: 250px;
         }
-        .firstWeight {
-            display: flex;
-            justify-content: center;
-            align-items: center;
-            margin-top: 20px;
-            margin-right: 100px;
-            .text {
-            display: inline-block;
-            width: 170px;
-            text-align: right;
-                  }
-            .el-input {
-            width: 250px;
-                    }
+      }
+      .netWeight {
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        margin-top: 20px;
+        margin-right: 100px;
+        .text {
+          display: inline-block;
+          width: 170px;
+          text-align: right;
         }
-        .netWeight {
-            display: flex;
-            justify-content: center;
-            align-items: center;
-            margin-top: 20px;
-            margin-right: 100px;
-            .text {
-            display: inline-block;
-            width: 170px;
-            text-align: right;
-                  }
-            .el-input {
-            width: 250px;
-                    }
+        .el-input {
+          width: 250px;
         }
-      }      
-  }
+      }
+    }
   }
+}
 </style>

+ 1 - 1
src/views/WMS/router/index.js

@@ -200,7 +200,7 @@ const constantRouterMap = [
 		{path: 'bar2_addSteelReserved', name: 'bar2_addSteelReserved', meta: {code: 'xtpzgl-yhgl'}, component: bar2_addSteelReserved},
 		{path: 'bar2_steel_inboundStatistics', name: 'bar2_steel_inboundStatistics', meta: {code: 'xtpzgl-yhgl'}, component: bar2_steel_inboundStatistics},
 		{path: 'bar2_steel_outboundStatistics', name: 'bar2_steel_outboundStatistics', meta: {code: 'xtpzgl-yhgl'}, component: bar2_steel_outboundStatistics},
-		{path: 'editBill', name: 'editBill', meta: {code: 'xtpzgl-yhgl'}, component: editBill},
+		{path: 'editBill/:capacityNumber', name: 'editBill', meta: {code: 'xtpzgl-yhgl'}, component: editBill},
 	  ]
 	}
   ];

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 516 - 455
src/views/inward/components/truckAppoint/addRequirement2.vue


+ 0 - 35
src/views/inward/components/truckAppoint/requirement.vue

@@ -67,41 +67,6 @@ export default {
         requestUrl:
           "",
       },
-      //记录旧的row对象(未下发)
-      oldRow: "",
-      //记录上一个展开的点击次数,单数为展开状态,复数为闭合状态(未下发)
-      oldRowCount: 1,
-      //记录旧的row对象(已下发)
-      oldRow1: "",
-      //记录上一个展开的点击次数,单数为展开状态,复数为闭合状态(已下发)
-      oldRowCount1: 1,
-      tableHead: [
-        {
-          prop: "materialName",
-          label: "物资名称",
-          width: 150,
-        },
-        {
-          prop:"loadName",
-          label:"装货点",
-          width:150
-        },
-        {
-          prop:"unloadName",
-          label:"卸货点",
-          width:150
-        },
-        {
-          prop: "materialWeight",
-          label: "物资重量",
-          width: 150,
-        },
-        {
-          prop: "materialCount",
-          label: "物资数量",
-          width: 150,
-        },
-      ],
       tableData: [],
       tableData1: [
         {

+ 2 - 2
src/views/inward/components/truckOrder/addPurInwardOrder.vue

@@ -234,7 +234,7 @@ export default {
         this.option.requestUrl = "/api/v1/ams/getPurRequirementList?apiId=431&requirementStatus=1&enableStatus=1&planStatus=2&carrierSsoId=" + getCookie("userId");
     }else if(getCookie("orgCode") == "biemeierchejian"){
          this.truck.requestUrl =
-        "/api/v1/uc/getAllCapacityByCarrierLike?apiId=429&carrierSsoId=" + null + "&con="+"铁专线精煤";
+        "/api/v1/uc/getAllCapacityByCarrierLike?apiId=429&carrierSsoId=929059510763524096"  + "&con="+"铁专线精煤";
         this.line.requestUrl = "/api/v1/rms/getAllLineDesk?apiId=249&lineType=3" + "&con=" + "采购内转"
         this.option.requestUrl = "/api/v1/ams/getPurRequirementList?apiId=431&requirementStatus=1&enableStatus=1&planStatus=2";
     } 
@@ -343,7 +343,7 @@ export default {
         getCookie("userId");
     }else if(getCookie("orgCode") == "biemeierchejian"){
          this.truck.requestUrl =
-        "/api/v1/uc/getAllCapacityByCarrierLike?apiId=429&carrierSsoId=" + null + "&con="+"铁专线精煤"
+        "/api/v1/uc/getAllCapacityByCarrierLike?apiId=429&carrierSsoId=929059510763524096"  + "&con="+"铁专线精煤"
     }else {
       this.truck.requestUrl =
         "/api/v1/uc/getAllCapacityByCarrierLike?apiId=429&carrierSsoId=" + null;

+ 254 - 40
src/views/queue/components/qmsEnFacotory/queueFStart.vue

@@ -1,52 +1,266 @@
 // 排队开始
 <template>
-    <div class="sale">
-        <div class="top">
-            <span>车牌号:</span>
-            <el-input
-                placeholder="请输入内容"
-                v-model="inputText"
-                class="input"
-                clearable>
-            </el-input>
-            <el-button type="primary" class="btn" @click="onclick">
-                <i class="el-icon-search"></i>查询
-            </el-button>
-        </div>
-        <div class="tab">
-            <dilTable v-bind.sync="option"></dilTable>
-        </div>
+  <div class="sale">
+    <div class="top">
+      <el-form :inline="true" style="margin-top: 1rem;">
+        <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="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-form-item>
+          <label class="el-form-item__label" style="width: auto;">型号</label>
+        </el-form-item>
+        <el-form-item>
+          <el-input
+            placeholder="请输入内容"
+            v-model="materialModelText"
+            clearable
+          ></el-input>
+        </el-form-item>
+        <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-item>
+        <el-form-item
+          ><el-button type="primary" class="btn" @click="onclick">
+            <i class="el-icon-d-arrow-right"></i>放行
+          </el-button></el-form-item
+        >
+      </el-form>
     </div>
+    <div class="tabs">
+      <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
+        <el-tab-pane label="单拼车辆排队链表" name="first">
+          <dilTable v-bind.sync="option1" @selection-change="selectionChange">
+            <el-table-column fixed="right" label="操作" width="180">
+              <template slot-scope="scope">
+                <el-button
+                  type="text"
+                  size="mini"
+                  @click="allowEnfactory(scope)"
+                >
+                  放行进厂
+                </el-button>
+                <el-button type="text" size="mini" @click="updateBill(scope)">
+                  修改提货单
+                </el-button>
+              </template>
+            </el-table-column>
+          </dilTable>
+        </el-tab-pane>
+        <el-tab-pane label="多拼车辆排队链表" name="second">
+          <el-table
+            :data="tableData"
+            :span-method="objectSpanMethod"
+            :stripe="true"
+            fit
+            border
+            style="width: 100%; margin-top: 20px"
+            @selection-change="handleSelectionChange"
+          >
+            <el-table-column type="selection" width="55"> </el-table-column>
+            <el-table-column prop="capacityNumber" label="车牌号">
+            </el-table-column>
+            <el-table-column prop="resultStartTime" label="排队开始时间">
+            </el-table-column>
+            <el-table-column
+              prop="listNodeOrder"
+              label="序号"
+            ></el-table-column>
+            <el-table-column prop="materialName" label="物资名称">
+            </el-table-column>
+            <el-table-column prop="materialSpecification" label="物资规格">
+            </el-table-column>
+            <el-table-column prop="materialModel" label="物资型号">
+            </el-table-column>
+            <el-table-column prop="materialNumber" label="物资件数">
+            </el-table-column>
+            <el-table-column fixed="right" label="操作" width="180">
+              <template slot-scope="scope">
+                <el-button
+                  type="text"
+                  size="mini"
+                  @click="allowEnfactory(scope)"
+                >
+                  放行进厂
+                </el-button>
+                <el-button type="text" size="mini" @click="updateBill(scope)">
+                  修改提货单
+                </el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+        </el-tab-pane>
+      </el-tabs>
+    </div>
+  </div>
 </template>
 <script>
 export default {
-    data(){
-        return{
-            inputText:'',
-            option: {       
-                // 表格请求数据的地址
-                requestUrl: "/api/v1/qms/getQueueListByQueueUp?apiId=128",
-            },
+  data() {
+    return {
+      inputText: "",
+      option1: {
+        // 表格请求数据的地址
+        requestUrl: "/api/v1/qms/getQueueListByQueueUp?apiId=473&isSpelling=0",
+        selectionType: "select"
+      },
+      option2: {
+        // 表格请求数据的地址
+        requestUrl: ""
+      },
+      activeName: "first",
+      tableData: [],
+      //存放每一行记录的合并数
+      spanArr: []
+    };
+  },
+  watch: {
+    activeName() {
+      console.log(this.activeName);
+    }
+  },
+  methods: {
+    //记录每一行的合并数
+    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;
+          }
         }
+      }
     },
-    methods:{
-        onclick(){
-            this.option.requestUrl = "/api/v1/qms/getQueueListByQueueUp?apiId=128&con="+this.inputText+"&i="+new Date();
-        }
+    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
+      if (
+        columnIndex === 0 ||
+        columnIndex === 1 ||
+        columnIndex === 2 ||
+        columnIndex === 3 ||
+        columnIndex === 8
+      ) {
+        const _row = this.spanArr[rowIndex];
+        const _col = _row > 0 ? 1 : 0;
+        return {
+          rowspan: _row,
+          colspan: _col
+        };
+      }
+    },
+    handleClick() {
+      if (this.activeName == "first") {
+        this.option1.requestUrl =
+          "/api/v1/qms/getQueueListByQueueUp?apiId=473&isSpelling=0";
+      } else {
+        this.getSpellingArray();
+      }
+    },
+    getSpellingArray() {
+      this.axios
+        .post("/api/v1/qms/getQueueListByQueueUp?apiId=473&isSpelling=1")
+        .then(res => {
+          console.log(res.data.data);
+          this.tableData = res.data.data;
+          this.getSpanArr(this.tableData);
+        });
+    },
+    allowEnfactory(scope) {
+      console.log(scope);
+    },
+    onclick() {
+      this.option.requestUrl =
+        "/api/v1/qms/getQueueListByQueueUp?apiId=128&con=" +
+        this.inputText +
+        "&i=" +
+        new Date();
+    },
+    handleSelectionChange(selection) {
+      console.log(selection);
+      console.log("我被多选了");
+    },
+    selectionChange(selection) {
+      console.log(selection);
+      console.log("我被单选了");
+    },
+    updateBill(scope) {
+      console.log(scope.row.capacityId);
+      this.$router.push("/editBill/" + scope.row.capacityId);
     }
-}
+  }
+};
 </script>
 <style lang="scss" scoped>
-    .sale{
-        .top{
-            width: 100%;height: 80px;
-            display: flex;
-            align-items: center;
-            padding-left: 40px;
-        }
-        .input{
-            width: 250px;
-            margin-right: 20px;
-        }
+.sale {
+  .top {
+    width: 100%;
+    height: 80px;
+    display: flex;
+    align-items: center;
+    padding-left: 40px;
+    .el-form {
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      .el-form-item__label {
+        align-items: center;
+        line-height: 80px;
+      }
+    }
+  }
+  .input {
+    width: 250px;
+    margin-right: 20px;
+  }
+  .tabs {
+    margin-left: 20px;
+    margin-top: 10px;
+    .tabs /deep/ .el-tabs__nav {
+      font-size: 40px;
     }
-</style>
+  }
+}
+</style>

+ 417 - 0
src/views/queue/components/qmsEnFacotory/updateBill.vue

@@ -0,0 +1,417 @@
+// 采购内转需求
+<template>
+  <div class="admin">
+    <template>
+      <div class="admin1">
+        <el-tabs v-model="activeName">
+          <el-tab-pane label="提货单" name="first">
+            <div class="admin2">
+              <div class="carrier from">
+                <el-form
+                  :inline="true"
+                  class="demo-form-inline"
+                  label-width="80px"
+                >
+                  <el-form-item label="车牌号:">
+                    <el-autocomplete
+                      class="inline-input"
+                      v-model="capacityName"
+                      :fetch-suggestions="querySearchCapacity"
+                      placeholder="车牌号"
+                      :trigger-on-focus="false"
+                      @select="handleSelectCapacity"
+                    >
+                      <template slot-scope="{ item }">
+                        <div class="name">{{ item.capacityNumber }}</div>
+                      </template>
+                    </el-autocomplete>
+                  </el-form-item>
+                </el-form>
+              </div>
+              <div class="poundNo from">
+                <span class="text">运输订单号:</span>
+                <el-input v-model="orderNumber" disabled></el-input>
+              </div>
+              <div
+                class="material from"
+                v-for="(item, index) in materialList"
+                :key="index"
+                style="margin-left:430px"
+              >
+                <el-form inline>
+                  <el-form-item label="物资名称">
+                    <el-input
+                      v-model="item.materialName"
+                      placeholder="物资名称"
+                      disabled
+                    ></el-input>
+                  </el-form-item>
+                  <el-form-item label="物资件数">
+                    <el-input
+                      v-model="item.materialNum"
+                      placeholder="物资件数"
+                      @blur="onblur(item)"
+                    ></el-input>
+                  </el-form-item>
+                </el-form>
+              </div>
+              <div class="material from">
+                <span class="text">发货单位:</span>
+                <el-input v-model="shipperName" disabled></el-input>
+              </div>
+              <div class="material from">
+                <span class="text">收货单位:</span>
+                <el-input v-model="consigneeCompanyName" disabled></el-input>
+              </div>
+              <div class="material from">
+                <span class="text">收货地址:</span>
+                <el-input v-model="receiveAddressName" disabled></el-input>
+              </div>
+              <div class="material from">
+                <span class="text">截止日期:</span>
+                <el-input v-model="saleDateOfReceipt" disabled></el-input>
+              </div>
+            </div>
+            <div class="button_box">
+              <el-button
+                type="primary"
+                @click="onClickConfirm"
+                :disabled="disabled"
+                >确认</el-button
+              >
+            </div>
+          </el-tab-pane>
+        </el-tabs>
+      </div>
+    </template>
+  </div>
+</template>
+<script>
+import { isNumber } from "@/utils/sharedJsFile";
+var i = 0;
+export default {
+  data() {
+    return {
+      orderNumber: null,
+      activeName: "first",
+      capacityName: null,
+      stateCapacity: null,
+      materialList: [],
+      capacityId: null,
+      materialId: null,
+      disabled: false,
+      orderId: null,
+      orderList: [],
+      materialNum: null,
+      saleDateOfReceipt: null,
+      consigneeCompanyName: null,
+      receiveAddressName: null,
+      shipperName: null,
+      materialList1: []
+    };
+  },
+  created() {
+    console.log(this.$route.params.capacityId);
+    this.handleSelectCapacity();
+  },
+  methods: {
+    //运力弹出层
+    handleSelectCapacity() {
+      this.axios
+        .get(
+          "/api/v1/oms/getSteelOrderNum?capacityId=" +
+            this.$route.params.capacityId
+        )
+        .then(res => {
+          if (res.data.code == "200") {
+            console.log(res.data.data);
+            this.orderList = res.data.data;
+            this.orderNumber = res.data.data[0].orderNumber;
+            this.orderId = res.data.data[0].orderId;
+            this.changeOrderNo();
+          }
+        });
+    },
+    changeOrderNo() {
+      this.axios
+        .get("/api/v1/oms/getMesToSteelDepartment?orderId=" + this.orderId)
+        .then(res => {
+          this.materialList = res.data.data.materialMes;
+          this.materialList1 = res.data.data.materialMes;
+          console.log(this.materialList);
+          this.saleDateOfReceipt = res.data.data.saleDateOfReceipt;
+          this.consigneeCompanyName = res.data.data.consigneeCompanyName;
+          this.receiveAddressName = res.data.data.receiveAddressName;
+          this.shipperName = res.data.data.shipperName;
+        });
+    },
+    changeMaterial() {
+      console.log(this.materialId);
+      this.materialList.forEach(e => {
+        if (e.materialId == this.materialId) {
+          this.materialNum = e.materialNum;
+          this.maxMaterialNum = e.materialNum;
+        }
+      });
+    },
+    onblur(item) {
+      if (!isNumber(item.materialNum)) {
+        this.$message.error("请输入数字!");
+        this.materialList1.forEach(e => {
+          if (item.materialId == e.materialId) {
+            item.materialNum = e.materialNum;
+          }
+        });
+      } else {
+        this.materialList1.forEach(e => {
+          if (item.materialId == e.materialId) {
+            if (item.materialNum > e.materialNum) {
+              this.$message.error("修改数量不得大于计划数");
+            }
+          }
+        });
+      }
+    },
+    //以下是运力边输边查搜索
+    querySearchCapacity(queryString, cb) {
+      if (queryString.length < 3) {
+        return;
+      }
+      this.axios
+        .get("/api/v1/uc/getCapacityNumber?index=" + queryString)
+        .then(res => {
+          if (res.data.code == "200") {
+            var restaurantsCarrier = res.data.data;
+            console.log(restaurantsCarrier, "restaurantsCarrier");
+            var results = queryString
+              ? restaurantsCarrier.filter(this.createFilterCarrier(queryString))
+              : restaurantsCarrier;
+            // 调用 callback 返回建议列表的数据
+            cb(results);
+          }
+        });
+    },
+    createFilterCarrier(queryString) {
+      return restaurantsCarrier => {
+        return (
+          restaurantsCarrier.capacityNumber
+            .toLowerCase()
+            .indexOf(queryString.toLowerCase()) > -1
+        );
+      };
+    },
+
+    materialCompareTo(e) {
+      this.materialList1.forEach(e2 => {
+        console.log(e2.materialId);
+        if (e.materialId == e2.materialId) {
+          return e.materialNum;
+        }
+      });
+    },
+    //以上是运力边输边查搜索
+    onClickConfirm() {
+      var i = 0;
+      this.materialList.forEach(e => {
+        if (!isNumber(e.materialNum) || e.materialNum == 0) {
+          this.$message.error("件数不符合要求");
+          i++;
+        }
+      });
+      if (i != 0) {
+        return;
+      }
+      //判断不能超过最大值
+      this.materialList.forEach(e => {
+        for (let j = 0; j < this.materialList1.length; j++) {
+          if (
+            this.materialList1[j].materialId == e.materialId &&
+            this.materialList1[j].materialNum == e.materialNum
+          ) {
+            this.$message.error("修改数量不得大于计划数量");
+            i++;
+          }
+        }
+      });
+      console.log(i);
+      if (i != 0) {
+        return;
+      }
+      let updateNumMap = {
+        orderId: this.orderId,
+        mapList: this.materialList
+      };
+      this.axios
+        .post("/api/v1/oms/updateMaterialMes", updateNumMap)
+        .then(res => {
+          console.log(res);
+          if (res.data.code == "200") {
+            this.$message.success("修改物资数量成功");
+          } else {
+            this.$message.error("新增失败请联系管理员");
+          }
+        });
+    }
+  }
+};
+</script>
+<style lang="scss">
+.admin {
+  .admin1 {
+    margin-top: 40px;
+    margin-left: 40px;
+    .switch {
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      margin-top: 20px;
+      color: aqua;
+    }
+    .button_box {
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      width: 100%;
+      height: 100px;
+    }
+    .admin2 {
+      margin-top: 40px;
+      .from {
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        margin-top: 20px;
+        margin-bottom: 20px;
+      }
+      .carrier {
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        .el-form-item {
+          text-align: right;
+        }
+        .el-autocomplete {
+          width: 250px;
+        }
+      }
+      .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;
+        }
+      }
+      .poundNo {
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        margin-top: 20px;
+        margin-right: 100px;
+        .text {
+          display: inline-block;
+          width: 170px;
+          text-align: right;
+        }
+        .el-input {
+          width: 250px;
+        }
+      }
+      .block {
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        margin-top: 20px;
+        margin-right: 100px;
+        .el-input {
+          width: 250px;
+        }
+        .text {
+          display: inline-block;
+          width: 170px;
+          text-align: right;
+        }
+      }
+      .truckCalFirst {
+        display: flex;
+        justify-content: center;
+        margin-top: 20px;
+        margin-right: 100px;
+        .text {
+          display: inline-block;
+          width: 170px;
+          text-align: right;
+        }
+        .el-input {
+          width: 250px;
+        }
+      }
+      .truckCalSecond {
+        display: flex;
+        justify-content: center;
+        margin-top: 20px;
+        margin-right: 100px;
+        .text {
+          display: inline-block;
+          width: 170px;
+          text-align: right;
+        }
+        .el-input {
+          width: 250px;
+        }
+      }
+      .secondWeight {
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        margin-top: 20px;
+        margin-right: 100px;
+        .text {
+          display: inline-block;
+          width: 170px;
+          text-align: right;
+        }
+        .el-input {
+          width: 250px;
+        }
+      }
+      .firstWeight {
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        margin-top: 20px;
+        margin-right: 100px;
+        .text {
+          display: inline-block;
+          width: 170px;
+          text-align: right;
+        }
+        .el-input {
+          width: 250px;
+        }
+      }
+      .netWeight {
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        margin-top: 20px;
+        margin-right: 100px;
+        .text {
+          display: inline-block;
+          width: 170px;
+          text-align: right;
+        }
+        .el-input {
+          width: 250px;
+        }
+      }
+    }
+  }
+}
+</style>

+ 3 - 1
src/views/queue/router/index.js

@@ -29,6 +29,7 @@ import queueWListMonitor from '../components/qmsWarehouse/queueWListMonitor.vue'
 import queueWStart from '../components/qmsWarehouse/queueWStart.vue'
 import queueWTransfer from '../components/qmsWarehouse/queueWTransfer.vue'
 import queueWTruckMonitor from '../components/qmsWarehouse/queueWTruckMonitor.vue'
+import editBill from '../components/qmsEnFacotory/updateBill.vue'
 Vue.use(Router)
 const constantRouterMap = [
 	{
@@ -62,7 +63,8 @@ const constantRouterMap = [
 		{path: 'queueWStart', name: 'queueWStart', meta: {code: 'xtpzgl-yhgl'}, component: queueWStart},
 		{path: 'queueWTransfer', name: 'queueWTransfer', meta: {code: 'xtpzgl-yhgl'}, component: queueWTransfer},
 		{path: 'queueWTruckMonitor', name: 'queueWTruckMonitor', meta: {code: 'xtpzgl-yhgl'}, component: queueWTruckMonitor},
-	  ]
+		{path:'editBill/:capacityId',name:'editBill', meta: {code: 'xtpzgl-yhgl'}, component: editBill}
+	]
 	}
   ];
   

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.