zouzhd 3 years ago
parent
commit
adbf4208fb

+ 1 - 1
build/utils.js

@@ -24,7 +24,7 @@ const devPathSrc = path.resolve(__dirname, '../../../src'); // node_modules应
 
 // let devModules = ['index','RMS','systemConfig','TMS']
 // let devModules = ['all'];
-// let devModules = ['index','appoint','sale','RMS','statisticalReport']
+// let devModules = ['index','appoint','sale','RMS','statisticalReport','systemConfig']
 // let devModules = ['index','SporadicManage','RMS']
 if (pathSrc.indexOf('node_modules') > -1) {
     devModules = require('../../../cors.js').devModules;

+ 664 - 0
src/views/appoint/components/saleContract/addSaleCokeSend.vue

@@ -0,0 +1,664 @@
+<template>
+  <div class="addSaleOrderSend">
+    <page-title>新增销售订单派车</page-title>
+    <!-- 销售订单表的数据 -->
+    <div class="saleOrder">
+      <dilTable
+        v-bind.sync="option"
+        @radio-change="currentRadioChange"
+      ></dilTable>
+    </div>
+    <!-- 表单选择车辆和线路 -->
+    <div class="from">
+      <div class="line">
+        <span class="text">线路</span>
+        <el-input
+          v-model="lineName"
+          placeholder="请选择线路"
+          disabled
+        ></el-input>
+        <el-button type="primary" @click="onClick(1)">浏览</el-button>
+      </div>
+      <div class="vehicle">
+        <span class="text">车辆</span>
+        <el-button type="primary" @click="onClick(2)">浏览</el-button>
+        <span class="span"></span>
+      </div>
+    </div>
+
+    <!-- 派车表格 -->
+    <div class="selectionTable from">
+      <el-table
+        :data="selectionList"
+        border
+        style="width: 100%"
+        highlight-current-row
+      >
+        <el-table-column type="index" label="序号" width="50">
+        </el-table-column>
+        <el-table-column
+          v-for="(item, i) in tableTop"
+          :key="i"
+          :prop="item.prop"
+          :label="item.label"
+          :width="item.width"
+          align="center"
+          show-overflow-tooltip
+        >
+          <template slot="scope" v-if="item.label !== '重量'">
+            <span>{{ item.label }}</span>
+          </template>
+          <template slot="scope" v-if="item.label !== '收货地址'">
+            <span>{{ item.label }}</span>
+          </template>
+          <template slot="scope" v-if="item.label !== '截止日期'">
+            <span>{{ item.label }}</span>
+          </template>
+          <template slot="scope" v-if="item.label !== '收货姓名'">
+            <span>{{ item.label }}</span>
+          </template>
+          <template slot="scope" v-if="item.label !== '收货方电话'">
+            <span>{{ item.label }}</span>
+          </template>
+          <!-- 插入输入框 -->
+          <template slot-scope="scope">
+            <template v-if="item.slot">
+              <!-- 物资重量 -->
+              <template v-if="item.prop == 'orderPlanWeight'">
+                <el-input
+                  class="textinput"
+                  @input="onInput"
+                  placeholder="(必填)"
+                  v-model.number="scope.row.orderPlanWeight"
+                ></el-input>
+              </template>
+
+              <!-- 收货地址id -->
+              <template v-if="item.prop == 'saleShipperAddressName'" >
+                <el-input
+                  style="width: 200px"
+                  v-model="scope.row.saleShipperAddressName"
+                  disabled
+                >
+                </el-input>
+                <el-button
+                  type="primary"
+                  placeholder="(非必填)"
+                  @click="select(scope.$index,3)"
+                  >浏览</el-button
+                >
+              </template>
+              <!-- 收货客户 -->
+              <template v-if="item.prop == 'saleOrderConsignee'">
+                <el-input
+                  class="textinput4"
+                  placeholder="(非必填)"
+                  v-model.number="scope.row.saleOrderConsignee"
+                ></el-input>
+              </template>
+              <!-- 收货客户电话号码 -->
+              <template v-if="item.prop == 'saleOrderConsigneeTel'">
+                <el-input
+                  class="textinput5"
+                  placeholder="(非必填)"
+                  v-model.number="scope.row.saleOrderConsigneeTel"
+                  @input="onInput"
+                ></el-input>
+              </template>
+            </template>
+            <template v-else>
+              <span>{{ scope.row[item.prop] }}</span>
+            </template>
+          </template>
+        </el-table-column>
+        <!-- 操作列 -->
+        <el-table-column fixed="right" label="操作" width="100">
+          <template slot-scope="scope">
+            <el-button
+              @click="copyRow(scope.$index,scope.row)"
+              type="text"
+              size="big"
+            >
+              复制
+            </el-button>
+            <el-button
+              @click="deleteRow(scope.$index)"
+              type="text"
+              icon="el-icon-close"
+              size="big"
+            ></el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+    <!-- 线路模态框 -->
+    <el-drawer 
+      :visible.sync="drawer" 
+      :destroy-on-close="false"
+      direction="rtl"
+      size="40%"
+      :wrapperClosable="false"
+      @keyup.enter.native="AddClick"
+      modal
+      close-on-press-escape
+    
+    >
+      <el-input
+        placeholder="请输入内容"
+        v-model="lineText"
+        style="margin-top: 10px; margin-left: 20px; width: 250px"
+        @keyup.enter.native="selectClick"
+        clearable
+      >
+      </el-input>
+      <el-button
+        type="primary"
+        class="btn"
+        @click="selectClick"
+        style="margin-left: 5px"
+      >
+        <i class="el-icon-search"></i>查询
+      </el-button>
+      <el-button
+        type="primary"
+        class="btn"
+        @click="AddClick"
+        style="margin-left: 5px"
+      >
+        <i class="el-icon-check"></i>确定
+      </el-button>
+      <div class="tablecls">
+        <!-- 查询所有的路线 -->
+        <dilTable
+          v-bind.sync="line"
+          @radio-change="currentRadioChange5"
+        ></dilTable>
+      </div>
+    </el-drawer>
+    <!-- 车辆模态框 -->
+    <el-drawer 
+      :visible.sync="truckDrawer" 
+      :destroy-on-close="false"
+      direction="rtl"
+      size="40%"
+      @keyup.enter.native="AddTruckClick"
+      :wrapperClosable="false"
+      modal
+      close-on-press-escape
+    
+    >
+      <el-input
+        placeholder="请输入内容"
+        v-model="truckText"
+        style="margin-top: 10px; margin-left: 20px; width: 250px"
+        @keyup.enter.native="selectTruckClick"
+        clearable
+      >
+      </el-input>
+      <el-button
+        type="primary"
+        class="btn"
+        @click="selectTruckClick"
+        style="margin-left: 5px"
+      >
+        <i class="el-icon-search"></i>查询
+      </el-button>
+      <el-button
+        type="primary"
+        class="btn"
+        @click="AddTruckClick"
+        style="margin-left: 5px"
+      >
+        <i class="el-icon-check"></i>确定
+      </el-button>
+      <div class="tablecls">
+        <!-- 查询所有的车辆 -->
+        <dilTable
+          v-bind.sync="truck"
+          @selection-change="currentRadioChange1"
+        ></dilTable>
+      </div>
+    </el-drawer>
+    <!-- 收货地址的模态框 -->
+    <el-drawer 
+      :visible.sync="addressDrawer" 
+      :destroy-on-close="false"
+      direction="rtl"
+      size="40%"
+      :wrapperClosable="false"
+      modal
+      close-on-press-escape
+    
+    >
+      <el-input
+        placeholder="请输入内容"
+        v-model="addressText"
+        style="margin-top: 10px; margin-left: 20px; width: 250px"
+        clearable
+      >
+      </el-input>
+      <el-button
+        type="primary"
+        class="btn"
+        @click="selectAddressClick"
+        style="margin-left: 5px"
+      >
+        <i class="el-icon-search"></i>查询
+      </el-button>
+      <el-button
+        type="primary"
+        class="btn"
+        @click="addAddressClick"
+        style="margin-left: 5px"
+      >
+        <i class="el-icon-check"></i>确定
+      </el-button>
+      <div class="tablecls">
+        <!-- 查询所有的收货地址 -->
+        <dilTable
+          v-bind.sync="Address"
+          @radio-change="currentRadioChange2"
+        ></dilTable>
+      </div>
+    </el-drawer>
+
+    <div class="button_box">
+      <el-button @click="cancel">取消</el-button>
+      <el-button type="primary" @click="makeSure">确定</el-button>
+    </div>
+  </div>
+</template>
+
+<script>
+import PageTitle from "@/components/Page/Title";
+import { getCookie } from "@/utils/util.js";
+import { sjTime,isNumber } from "@/utils/sharedJsFile";
+export default {
+  components: { PageTitle },
+  data() {
+    return {
+      //线路名称
+      lineName:null,
+      lineId:null,
+      //线路表格单选缓存数据的
+      cacheLine:{
+        ROW_ID : 0,
+        lineDesk : '',
+        lineId : 0,
+        lineName : '',
+        lineNo : '',
+        lineType : '',
+        spellNumber : 0,
+      },
+      //已经选择车辆物资信息
+      selectionList:[],
+      //销售订单物资信息
+      option: {
+        // 表格请求数据的地址
+        requestUrl:"",
+        // 控制显示当选列
+        selectionType: "radio",
+        isPagination: false,
+      },
+      //当前选中的物资id
+      materialId: null,
+      //当前选中的物资名称
+      materialName: null,
+      //选中的线路名称
+      lineName: null,
+      //选中的线路id
+      lineId: null,
+      //是否打开选择线路的模态框
+      drawer:false,
+      //是否打开选择车辆的模态框
+      truckDrawer:false,
+      //是否打开收货地址的模态框
+      addressDrawer:false,
+      //线路的表格
+      line: {
+        requestUrl: "/api/v1/rms/getAllLineDesk?apiId=249&lineType=3",
+        selectionType: "radio",
+      },
+      //车辆的表格
+      truck: {
+        requestUrl: "",
+        selectionType: "select",
+      },
+      //收货地址的表格
+      Address: {
+        requestUrl: "/api/v1/ams/getAddressDeliveryAddress?apiId=255",
+        selectionType: "radio",
+      },
+      addressText:null,
+      //线路表格的框计算输入的值
+      lineText:null,
+      tableTop: [
+        {
+          prop: "capacityNumber",
+          label: "车牌号",
+          width: "100",
+        },
+        {
+          prop: "materialName",
+          label: "物资名称",
+          width: "140",
+        },
+        {
+          prop: "carrierName",
+          label: "承运商",
+          width: "220",
+        },
+        {
+          prop: "lineName",
+          label: "运输线路",
+          width: "220",
+        },
+        {
+          prop: "orderPlanWeight",
+          label: "重量",
+          width: "140",
+          slot: true,
+        },
+        {
+          prop: "saleShipperAddressName",
+          label: "收货地址",
+          width: "300",
+          slot: true,
+        },
+        {
+          prop: "saleOrderConsignee",
+          label: "收货客户",
+          width: "150",
+          slot: true,
+        },
+        {
+          prop: "saleOrderConsigneeTel",
+          label: "收货客户电话号码",
+          slot: true,
+          width: "150",
+        },
+      ],
+      truckText:null,
+      //当前多选选中的车辆
+      selectTruck:[],
+      //销售订单与物资表主键
+      saleMaterialId:null,
+      //记录点击的市哪一个收货地址的浏览
+      addressIndex:null,
+      //缓存当前选中的收货地址
+      addressMap:{},
+    };
+  },
+  created() {
+    if (getCookie("orgCode") == "chengyunshang") {
+      this.truck.requestUrl =
+        "/api/v1/uc/getAllCapacityByCarrierLike?apiId=248&carrierSsoId=" +
+        getCookie("userId");
+    } else {
+      this.truck.requestUrl =
+        "/api/v1/uc/getAllCapacityByCarrierLike?apiId=248&carrierSsoId=" + null;
+    }
+    this.option.requestUrl = "/api/v1/ams/getSaleOrderAndMaterialById?apiId=410&saleOrderId=" + this.$route.params.saleOrderId;
+  },
+  methods: {
+    onInput(val){
+      if(!isNumber(val)){
+        this.$message.warning('重量/电话号码请输入数字')
+      }
+    },
+    //点击确定按钮的事件
+    makeSure(){
+      let state = false;
+      this.selectionList.forEach((e)=>{
+        if(!isNumber(e.orderPlanWeight)){
+          this.$message.error('重量请输入数字')
+        }else if(e.saleOrderConsigneeTel){
+          if(!isNumber(e.saleOrderConsigneeTel)){
+            this.$message.error('电话号码请输入数字')
+          }else{
+            e.saleOrderConsigneeTel = e.saleOrderConsigneeTel+"",
+            state = true
+          }
+        }else {
+          e.saleOrderConsigneeTel = null,
+          state = true
+        }
+      })
+      
+      if(state){
+        this.axios.post('/api/v1/ams/dispatchTruckOrderByCarrier',{
+          saleOrderId:this.$route.params.saleOrderId,
+          mapList:this.selectionList,
+        }).then((res)=>{
+          if(res.data.code == '200'){
+            this.$message.success('派车成功')
+            this.cancel();
+          }
+        })
+      }else{
+        this.$message.warning('重量/电话号码请输入数字')
+      }
+    },
+    //点击取消按钮的事件
+    cancel(){
+      this.$router.push('/saleCokeInward')
+    },
+    //点击删除按钮删除当前点击的对象
+    deleteRow(index){
+      this.selectionList.splice(index,1)
+    },
+    //复制的方法
+    copyRow(index,row){
+      let arr = [];
+      for(var i = 0 ;i<this.selectionList.length; i++){
+        if(i == index){
+          arr.push(this.selectionList[i]);
+          arr.push({
+            capacityId:row.capacityId,
+            capacityNumber:row.capacityNumber,
+            carrierName:row.carrierName,
+            lineId:row.lineId,
+            lineName:row.lineName,
+            materialId:row.materialId,
+            materialName:row.materialName,
+            orderPlanWeight:row.orderPlanWeight,
+            saleMaterialId:row.saleMaterialId,
+            saleOrderConsignee:row.saleOrderConsignee,
+            saleOrderConsigneeTel:row.saleOrderConsigneeTel,
+            saleShipperAddressName:row.saleShipperAddressName,
+            saleShippingAddressId:row.saleShippingAddressId,
+          }
+          )
+        }else{
+          arr.push(this.selectionList[i]);
+        }
+      }
+      this.selectionList = [];
+      this.selectionList = arr;
+    },
+    //收货地址模态窗口的框计算
+    selectAddressClick(){
+      this.Address.requestUrl = '/api/v1/ams/getAddressDeliveryAddress?apiId=255&con='+this.addressText;
+    },
+    //收货地址模态窗口的点击事件
+    addAddressClick(){
+      this.selectionList[this.addressIndex].saleShipperAddressName = this.addressMap.address
+      this.selectionList[this.addressIndex].saleShippingAddressId = this.addressMap.addressId
+      this.addressDrawer = false;
+      let arr = this.selectionList;
+      this.selectionList = [];
+      arr.forEach((e)=>{
+        this.selectionList.push({
+          //销售订单与物资表主键
+          capacityId:e.capacityId,
+          capacityNumber:e.capacityNumber,
+          carrierName:e.carrierName,
+          lineId:e.lineId,
+          lineName:e.lineName,
+          materialId:e.materialId,
+          materialName:e.materialName,
+          orderPlanWeight:e.orderPlanWeight,
+          saleMaterialId:e.saleMaterialId,
+          saleOrderConsignee:e.saleOrderConsignee,
+          saleOrderConsigneeTel:e.saleOrderConsigneeTel,
+          saleShipperAddressName:e.saleShipperAddressName,
+          saleShippingAddressId:e.saleShippingAddressId,
+        })
+      })
+    },
+    //收货地址点击浏览的事件
+    select(index){
+      this.addressDrawer = true;
+      this.addressIndex = index ;
+    },
+    //收货地址模态框单选选中的事件
+    currentRadioChange2(val){
+      this.addressMap = {};
+      this.addressMap = val;
+    },
+    //车辆模态框的确定事件
+    AddTruckClick(){
+      if(this.selectTruck.length>0){
+      this.selectTruck.forEach(e => {
+        this.selectionList.push({
+          //销售订单与物资表主键
+          saleMaterialId:this.saleMaterialId,
+          capacityId:e.capacityId,
+          capacityNumber:e.capacityNumber,
+          carrierName:e.carrierName,
+          materialName:this.materialName,
+          materialId:this.materialId,
+          lineName:this.lineName,
+          lineId:this.lineId,
+        })
+      });
+      this.truckDrawer = false;
+      //置空当前多选选中的车辆数据
+      this.selectTruck = [];
+      }
+      
+    },
+    //车辆模态框框计算
+    selectTruckClick(){
+      if (getCookie("orgCode") == "chengyunshang") {
+        this.truck.requestUrl =
+          "/api/v1/uc/getAllCapacityByCarrierLike?apiId=248&carrierSsoId=" +
+          getCookie("userId") + "&index="+this.truckText;
+      } else {
+        this.truck.requestUrl =
+          "/api/v1/uc/getAllCapacityByCarrierLike?apiId=248&carrierSsoId=" + null + "&index="+this.truckText;
+      }
+    },
+    //车辆表格
+    currentRadioChange1(select){
+      this.selectTruck = [];
+      this.selectTruck = select;
+    },
+    //主界面表格单选
+    currentRadioChange(row) {
+      this.materialId = row.materialId;
+      this.materialName = row.materialName;
+      this.saleMaterialId = row.saleMaterialId;
+    },
+    //线路表格的单选事件
+    currentRadioChange5(row){
+      //存在lineName,赋值,否则初始化
+      if(row.lineName){
+        this.cacheLine = row;
+      }else{
+        this.cacheLine = {
+        ROW_ID : 0,
+        lineDesk : '',
+        lineId : 0,
+        lineName : '',
+        lineNo : '',
+        lineType : '',
+        spellNumber : 0,
+      }
+      } 
+    },
+    onClick(num) {
+      if (num == 1) {
+        this.drawer = true;
+        this.lineText = null;
+      }else if(num == 2){
+        //再度初始化选择车辆表头
+        if (getCookie("orgCode") == "chengyunshang") {
+          this.truck.requestUrl =
+            "/api/v1/uc/getAllCapacityByCarrierLike?apiId=248&carrierSsoId=" +
+            getCookie("userId") + "&i=" + new Date();
+        } else {
+          this.truck.requestUrl =
+            "/api/v1/uc/getAllCapacityByCarrierLike?apiId=248&carrierSsoId=" + null + "&i=" + new Date();;
+        }
+        //后续操作
+        if(!this.materialId){
+          this.$message.warning('请选择物资后,再点击')
+        }else if(!this.lineId){
+          this.$message.warning('请选择线路后,再点击')
+        }else{
+          this.truckDrawer = true;
+          this.truckText = null;
+        }
+      }
+    },
+    //线路表格的框计算
+    selectClick(){
+      this.line.requestUrl = '/api/v1/rms/getAllLineDesk?apiId=249&lineType=3&con='+this.lineText;
+    },
+    //线路表格的确定事件
+    AddClick(){
+        if(this.cacheLine.lineName!=''){
+          this.drawer = false;
+          this.lineName = this.cacheLine.lineName +"  "+ this.cacheLine.lineDesk;
+          this.lineId = this.cacheLine.lineId;
+        }
+
+    }
+  },
+};
+</script>
+
+<style lang='scss'>
+.addSaleOrderSend {
+  .from {
+    margin-top: 20px;
+    .line {
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      .el-input {
+        width: 350px;
+        margin-left: 10px;
+        margin-right: 10px;
+      }
+    }
+    .vehicle {
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      margin-top: 20px;
+      .el-button {
+        width: 250px;
+        margin-left: 10px;
+        margin-right: 10px;
+      }
+      .span {
+        width: 70px;
+      }
+    }
+  }
+  .tablecls{
+    margin-top: 20px;
+  }
+  .button_box{
+    display: flex;
+    justify-content: center;
+    margin: 20px;
+    .el-button{
+      width: 100px;
+      margin-left: 20px;
+    }
+  }
+}
+</style>

+ 38 - 11
src/views/appoint/components/saleContract/addSaleOrderSend.vue

@@ -146,6 +146,7 @@
       direction="rtl"
       size="40%"
       :wrapperClosable="false"
+      @keyup.enter.native="AddClick"
       modal
       close-on-press-escape
     
@@ -154,6 +155,7 @@
         placeholder="请输入内容"
         v-model="lineText"
         style="margin-top: 10px; margin-left: 20px; width: 250px"
+        @keyup.enter.native="selectClick"
         clearable
       >
       </el-input>
@@ -187,6 +189,7 @@
       :destroy-on-close="false"
       direction="rtl"
       size="40%"
+      @keyup.enter.native="AddTruckClick"
       :wrapperClosable="false"
       modal
       close-on-press-escape
@@ -196,6 +199,7 @@
         placeholder="请输入内容"
         v-model="truckText"
         style="margin-top: 10px; margin-left: 20px; width: 250px"
+        @keyup.enter.native="selectTruckClick"
         clearable
       >
       </el-input>
@@ -285,7 +289,15 @@ export default {
       lineName:null,
       lineId:null,
       //线路表格单选缓存数据的
-      cacheLine:[],
+      cacheLine:{
+        ROW_ID : 0,
+        lineDesk : '',
+        lineId : 0,
+        lineName : '',
+        lineNo : '',
+        lineType : '',
+        spellNumber : 0,
+      },
       //已经选择车辆物资信息
       selectionList:[],
       //销售订单物资信息
@@ -412,7 +424,6 @@ export default {
     makeSure(){
       let state = false;
       this.selectionList.forEach((e)=>{
-        console.log(e.orderPlanWeight,"orderPlanWeight")
         if(!isNumber(e.orderPlanWeight)){
           this.$message.error('重量请输入数字')
         }else if(e.saleOrderConsigneeTel){
@@ -429,10 +440,8 @@ export default {
         if(e.saleDateOfReceipt){
           e.saleDateOfReceipt = sjTime(e.saleDateOfReceipt)
         }
-        console.log(typeof e.saleDateOfReceipt)
       })
       
-      console.log("this.selectionList",this.selectionList)
       if(state){
         this.axios.post('/api/v1/ams/dispatchTruckOrderBySale',{
           saleOrderId:this.$route.params.saleOrderId,
@@ -528,9 +537,8 @@ export default {
     },
     //车辆模态框的确定事件
     AddTruckClick(){
-      console.log("1111111",this.selectTruck)
+      if(this.selectTruck.length>0){
       this.selectTruck.forEach(e => {
-        // console.log(e)
         this.selectionList.push({
           //销售订单与物资表主键
           saleMaterialId:this.saleMaterialId,
@@ -546,7 +554,8 @@ export default {
       this.truckDrawer = false;
       //置空当前多选选中的车辆数据
       this.selectTruck = [];
-      console.log("222222",this.selectTruck)
+      }
+      
     },
     //车辆模态框框计算
     selectTruckClick(){
@@ -572,11 +581,25 @@ export default {
     },
     //线路表格的单选事件
     currentRadioChange5(row){
-      this.cacheLine = row;
+      //存在lineName,赋值,否则初始化
+      if(row.lineName){
+        this.cacheLine = row;
+      }else{
+        this.cacheLine = {
+        ROW_ID : 0,
+        lineDesk : '',
+        lineId : 0,
+        lineName : '',
+        lineNo : '',
+        lineType : '',
+        spellNumber : 0,
+      }
+      } 
     },
     onClick(num) {
       if (num == 1) {
         this.drawer = true;
+        this.lineText = null;
       }else if(num == 2){
         //再度初始化选择车辆表头
         if (getCookie("orgCode") == "chengyunshang") {
@@ -594,6 +617,7 @@ export default {
           this.$message.warning('请选择线路后,再点击')
         }else{
           this.truckDrawer = true;
+          this.truckText = null;
         }
       }
     },
@@ -603,9 +627,12 @@ export default {
     },
     //线路表格的确定事件
     AddClick(){
-      this.drawer = false;
-      this.lineName = this.cacheLine.lineName +"  "+ this.cacheLine.lineDesk;
-      this.lineId = this.cacheLine.lineId;
+        if(this.cacheLine.lineName!=''){
+          this.drawer = false;
+          this.lineName = this.cacheLine.lineName +"  "+ this.cacheLine.lineDesk;
+          this.lineId = this.cacheLine.lineId;
+        }
+
     }
   },
 };

+ 146 - 0
src/views/appoint/components/saleContract/saleCokeInward.vue

@@ -0,0 +1,146 @@
+<template>
+  <!-- 销售订单页面 -->
+  <div class="salePlan">
+    <div class="top">
+      <el-input placeholder="请输入内容" v-model="input" clearable> </el-input>
+      <el-button type="primary" class="btn" @click="onclick">
+        <i class="el-icon-search"></i>查询
+      </el-button>
+      <el-button type="primary" @click="refresh">
+        <i class="el-icon-refresh"></i>刷新
+      </el-button>
+    </div>
+    <el-tabs v-model="activeName" @tab-click="handleClick">
+      <!-- 已审批 -->
+       <!-- <el-tab-pane name="four"> -->
+        <dilTable v-bind.sync="option4" ref="table">
+          <el-table-column fixed="right" label="操作" width="120">
+            <template slot-scope="scope">
+              <el-button
+                @click="sendClick(scope.row.saleOrderId)"
+                type="text"
+                size="small"
+                >派车</el-button
+              >
+              <el-button
+                @click="closeOrder(scope.row.saleOrderId)"
+                type="text"
+                size="small"
+                >关闭订单</el-button
+              >
+            </template>
+          </el-table-column>
+
+        </dilTable>
+      <!-- </el-tab-pane> -->
+    </el-tabs>
+  </div>
+</template>
+<script>
+export default {
+  name: "saleOrder",
+  data() {
+    return {
+      activeName: "four",
+      input: "",
+      option4: {
+        // 表格请求数据的地址
+        requestUrl:
+          "/api/v1/ams/getCokeSaleOrderList?apiId=409",
+      },
+      
+      //记录旧的row对象 (销售公司已审批/财务已审批)
+      oldRow: "",
+      //记录上一个展开的点击次数,单数为展开状态,复数为闭合状态 (销售公司已审批/财务已审批)
+      oldRowCount: 1,
+      tableHead: [
+        {
+          prop: "materialName",
+          label: "物资名称",
+          width: 150,
+        },
+        {
+          prop: "specificationModel",
+          label: "规格型号",
+          width: 150,
+        },
+        {
+          prop: "materialNumber",
+          label: "物资件数",
+          width: 100,
+        },
+        {
+          prop: "materialWeight",
+          label: "物资重量",
+          width: 100,
+        },
+      ],
+      //(销售公司已审批\财务已审批)
+      tableData: [],
+    };
+  },
+//   created(){
+//       验证订单是否关闭
+      
+//       this.axios.post("/api/v1/ams/getCokeSaleOrderList?apiId=409")
+//       .then((res)=>{
+//           res.data.data.list.
+//           console.log("res",res)
+//           console.log("res111",res.data.data.list[0])
+//       })
+//   },
+  methods: {
+    refresh(){
+      this.$router.go(0);
+    },
+    handleClick(tab, event) {
+      console.log(tab, event);
+    },
+    onclick() {
+        this.option4.requestUrl = "/api/v1/ams/getCokeSaleOrderList?apiId=409&con="+this.input;      
+    },
+    sendClick(saleOrderId){
+      this.$router.push("/addSaleCokeSend/" + saleOrderId);
+    },
+    closeOrder(saleOrderId) {
+      this.$confirm("是否关闭", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+        center: true,
+      })
+        .then(() => {
+          this.$message({
+            type: "success",
+            message: "关闭成功!",
+          });
+          this.axios
+            .post(
+              "/api/v1/ams/closeSaleOrder?saleOrderId=" +
+                saleOrderId
+            )
+            .then(() => {
+              this.$router.go(0);
+            });
+        })
+        .catch(() => {
+          this.$message({
+            type: "info",
+            message: "取消关闭!",
+          });
+        });
+    },
+  },
+};
+</script>
+<style lang='scss' scoped>
+.salePlan {
+  .top {
+    padding: 1.25rem 0.375rem;
+    .el-input {
+      width: 20%;
+      margin-right: 1.25rem;
+    }
+  }
+}
+</style>

+ 6 - 1
src/views/appoint/components/saleContract/saleOrder.vue

@@ -9,6 +9,9 @@
       <el-button type="primary" @click="btnclick(0)">
         <i class="el-icon-plus"></i>钢材订单新增
       </el-button>
+      <el-button type="primary" @click="refresh">
+        <i class="el-icon-refresh"></i>刷新
+      </el-button>
     </div>
     <el-tabs v-model="activeName" @tab-click="handleClick">
       <!-- 已审批 -->
@@ -227,7 +230,9 @@ export default {
     };
   },
   methods: {
-
+    refresh(){
+      this.$router.go(0);
+    },
     handleClick(tab, event) {
       console.log(tab, event);
     },

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

@@ -31,6 +31,7 @@ import updateOtherPrice from '../components/purchase/updateOtherPrice.vue'
 import updateShipPrice from '../components/purchase/updateShipPrice.vue'
 import updateTrainPrice from '../components/purchase/updateTrainPrice.vue'
 import updateTruckPrice from '../components/purchase/updateTruckPrice.vue'
+import addSaleCokeSend from '../components/saleContract/addSaleCokeSend.vue'
 import addSaleOrder from '../components/saleContract/addSaleOrder.vue'
 import addSaleOrderArrange from '../components/saleContract/addSaleOrderArrange.vue'
 import addSaleOrderSend from '../components/saleContract/addSaleOrderSend.vue'
@@ -45,6 +46,7 @@ import editSalePalnDetail from '../components/saleContract/editSalePalnDetail.vu
 import editSalePlan from '../components/saleContract/editSalePlan.vue'
 import editTransportPrice from '../components/saleContract/editTransportPrice.vue'
 import editTruckNoDetail from '../components/saleContract/editTruckNoDetail.vue'
+import saleCokeInward from '../components/saleContract/saleCokeInward.vue'
 import saleOrder from '../components/saleContract/saleOrder.vue'
 import saleOrderArrange from '../components/saleContract/saleOrderArrange.vue'
 import saleOrderDetail from '../components/saleContract/saleOrderDetail.vue'
@@ -88,6 +90,7 @@ const constantRouterMap = [
       {path: 'updateShipPrice/:priceId', name: 'updateShipPrice', meta: {code: 'xtpzgl-yhgl'}, component: updateShipPrice},
       {path: 'updateTrainPrice/:priceId', name: 'updateTrainPrice', meta: {code: 'xtpzgl-yhgl'}, component: updateTrainPrice},
       {path: 'updateTruckPrice/:priceId', name: 'updateTruckPrice', meta: {code: 'xtpzgl-yhgl'}, component: updateTruckPrice},
+      {path: 'addSaleCokeSend/:saleOrderId', name: 'addSaleCokeSend', meta: {code: 'xtpzgl-jggl'}, component: addSaleCokeSend},
       {path: 'addSaleOrder', name: 'addSaleOrder', meta: {code: 'xtpzgl-jggl'}, component: addSaleOrder},
       {path: 'addSaleOrderArrange/:saleOrderId', name: 'addSaleOrderArrange', meta: {code: 'xtpzgl-jggl'}, component: addSaleOrderArrange},
       {path: 'addSaleOrderSend/:saleOrderId', name: 'addSaleOrderSend', meta: {code: 'xtpzgl-jggl'}, component: addSaleOrderSend},
@@ -103,6 +106,7 @@ const constantRouterMap = [
       {path: 'editSalePlan/:planId', name: 'editSalePlan', meta: {code: 'xtpzgl-yhgl'}, component: editSalePlan},
       {path: 'editTransportPrice/:priceId', name: 'editTransportPrice', meta: {code: 'xtpzgl-yhgl'}, component: editTransportPrice},
       {path: 'editTruckNoDetail/:trucknoMaterialId', name: 'editTruckNoDetail', meta: {code: 'xtpzgl-yhgl'}, component: editTruckNoDetail},
+      {path: 'saleCokeInward', name: 'saleCokeInward', meta: {code: 'xtpzgl-yhgl'}, component: saleCokeInward},
       {path: 'saleOrder', name: 'saleOrder', meta: {code: 'xtpzgl-yhgl'}, component: saleOrder},
       {path: 'saleOrderArrange', name: 'saleOrderArrange', meta: {code: 'xtpzgl-yhgl'}, component: saleOrderArrange},
       {path: 'saleOrderDetail/:saleOrderId', name: 'saleOrderDetail', meta: {code: 'xtpzgl-yhgl'}, component: saleOrderDetail},

+ 9 - 2
src/views/sale/components/saleSelfMachine/printScan.vue

@@ -4,7 +4,7 @@
             <img :src="backgroundImgURL" width="100%" height="100%"/>
         </div>
         <div class="orderNumberData">
-            <el-input placeholder="请将二维码放置在扫描区" v-model="orderNumber" :focus="true" ref="inputs">
+            <el-input placeholder="请将二维码放置在扫描区" v-model="orderNumber" :focus="true" @blur="onInputBlur" ref="inputs">
             </el-input>
         </div>
     </div>    
@@ -26,10 +26,16 @@ export default {
     methods:{
         //输入框自动聚焦
         changfouce(){
+            console.log("enter")
         this.$nextTick((x)=>{
         this.$refs.inputs.focus();
         })
-        }
+        },
+        //失去焦点后自动执行获得焦点事件
+        // onInputBlur(){
+        //     console.log("获取焦点")
+        //     this.changfouce();
+        // }
         // toSaleSelfMachine(){
         //      this.$router.push({
         //         path:'/saleSelfMachine',
@@ -37,6 +43,7 @@ export default {
         // }
     },
     mounted(){
+        // this.changfouce();
     const timer = setInterval(()=>{
         // if(this.$refs.inputs.focus==false){
         //     console.log("false")

+ 12 - 8
src/views/sale/components/transport_excute/tms-offsite/arrivalResult.vue

@@ -2,7 +2,7 @@
   <!-- 抵达实绩信息页面 -->
   <div class="arrivalResult">
     <div class="top">
-      <el-form :inline="true">
+      <el-form :inline="true" style="margin-top: 0.5rem;">
         <el-form-item>
           <label class="el-form-item__label" style="width: auto;">时间段</label>
          <el-date-picker
@@ -26,13 +26,17 @@
       </el-autocomplete>
         </el-form-item>
         <el-form-item>
-      <label class="el-form-item__label" style="width: auto;">车牌号</label>
-      <el-input v-model="capacityNumber1" placeholder="请输入内容"></el-input>
-  </el-form-item>
-  <el-form-item>
-      <label class="el-form-item__label" style="width: auto;">收货单位</label>
-      <el-input v-model="consigneeCompanyName1" placeholder="请输入内容"></el-input>
-  </el-form-item> 
+      <label class="el-form-item__label" style="width: auto;margin-top: 0.4rem;">车牌号</label>
+      </el-form-item>
+      <el-form-item>
+          <el-input class="el-form-item__content" v-model="capacityNumber1" placeholder="请输入内容"></el-input>
+      </el-form-item>
+      <el-form-item>
+          <label class="el-form-item__label" style="width: auto;margin-top: 0.4rem;">收货单位</label>
+      </el-form-item>
+      <el-form-item>
+          <el-input v-model="consigneeCompanyName1" placeholder="请输入内容"></el-input>
+      </el-form-item>
         <el-form-item>
           <el-button type="primary" @click="onSearch"><i class="el-icon-search"></i>查询</el-button>
         </el-form-item>

+ 8 - 4
src/views/sale/components/transport_excute/tms-offsite/inTransit.vue

@@ -2,7 +2,7 @@
   <!-- 在途运输信息选择页面 -->
   <div class="inTransit">
 
-    <el-form :inline="true">
+    <el-form :inline="true" style="margin-top: 0.5rem;">
   <el-form-item>
     <label class="el-form-item__label" style="width: auto;">时间段</label>
          <el-date-picker
@@ -25,11 +25,15 @@
       </el-autocomplete>
   </el-form-item>
   <el-form-item>
-      <label class="el-form-item__label" style="width: auto;">车牌号</label>
-      <el-input v-model="capacityNumber1" placeholder="请输入内容"></el-input>
+      <label class="el-form-item__label" style="width: auto;margin-top: 0.4rem;">车牌号</label>
+  </el-form-item>
+  <el-form-item>
+      <el-input class="el-form-item__content" v-model="capacityNumber1" placeholder="请输入内容"></el-input>
+  </el-form-item>
+  <el-form-item>
+      <label class="el-form-item__label" style="width: auto;margin-top: 0.4rem;">收货单位</label>
   </el-form-item>
   <el-form-item>
-      <label class="el-form-item__label" style="width: auto;">收货单位</label>
       <el-input v-model="consigneeCompanyName1" placeholder="请输入内容"></el-input>
   </el-form-item> 
   <el-form-item>

+ 12 - 8
src/views/sale/components/transport_excute/tms-offsite/receiptResult.vue

@@ -2,7 +2,7 @@
   <!-- 收货实绩信息页面 -->
   <div class="receiptResult">
   <div class="top">
-    <el-form :inline="true">
+    <el-form :inline="true" style="margin-top: 0.5rem;">
         <el-form-item>
           <label class="el-form-item__label" style="width: auto;">时间段</label>
          <el-date-picker
@@ -25,13 +25,17 @@
       </el-autocomplete>
         </el-form-item>
         <el-form-item>
-      <label class="el-form-item__label" style="width: auto;">车牌号</label>
-      <el-input v-model="capacityNumber1" placeholder="请输入内容"></el-input>
-  </el-form-item>
-  <el-form-item>
-      <label class="el-form-item__label" style="width: auto;">收货单位</label>
-      <el-input v-model="consigneeCompanyName1" placeholder="请输入内容"></el-input>
-  </el-form-item> 
+      <label class="el-form-item__label" style="width: auto;margin-top: 0.4rem;">车牌号</label>
+      </el-form-item>
+      <el-form-item>
+          <el-input class="el-form-item__content" v-model="capacityNumber1" placeholder="请输入内容"></el-input>
+      </el-form-item>
+      <el-form-item>
+          <label class="el-form-item__label" style="width: auto;margin-top: 0.4rem;">收货单位</label>
+      </el-form-item>
+      <el-form-item>
+          <el-input v-model="consigneeCompanyName1" placeholder="请输入内容"></el-input>
+      </el-form-item>
         <el-form-item>
           <el-button type="primary" @click="onSearch"><i class="el-icon-search"></i>查询</el-button>
         </el-form-item>

+ 13 - 9
src/views/sale/components/transport_excute/tms-offsite/transportInfo.vue

@@ -2,7 +2,7 @@
   <!-- 运输实绩信息页面 -->
   <div class="transportInfo">
     <div class="top">
-      <el-form :inline="true">
+      <el-form :inline="true" style="margin-top: 0.5rem;">
         <el-form-item>
           <label class="el-form-item__label" style="width: auto;">时间段</label>
          <el-date-picker
@@ -24,14 +24,18 @@
         <i class="el-icon-edit el-input__icon" slot="suffix"> </i>
       </el-autocomplete>
         </el-form-item>
-        <el-form-item>
-      <label class="el-form-item__label" style="width: auto; margin-left:5px">车牌号</label>
-      <el-input v-model="capacityNumber1" placeholder="请输入内容"></el-input>
-  </el-form-item>
-  <el-form-item>
-      <label class="el-form-item__label" style="width: auto;">收货单位</label>
-      <el-input v-model="consigneeCompanyName1" placeholder="请输入内容"></el-input>
-  </el-form-item> 
+      <el-form-item>
+      <label class="el-form-item__label" style="width: auto;margin-top: 0.4rem;">车牌号</label>
+      </el-form-item>
+      <el-form-item>
+          <el-input class="el-form-item__content" v-model="capacityNumber1" placeholder="请输入内容"></el-input>
+      </el-form-item>
+      <el-form-item>
+          <label class="el-form-item__label" style="width: auto;margin-top: 0.4rem;">收货单位</label>
+      </el-form-item>
+      <el-form-item>
+          <el-input v-model="consigneeCompanyName1" placeholder="请输入内容"></el-input>
+      </el-form-item>
         <el-form-item>
           <el-button type="primary" @click="onSearch"><i class="el-icon-search"></i>查询</el-button>
         </el-form-item>

+ 6 - 0
src/views/sale/components/transport_order/receiveOrder.vue

@@ -7,6 +7,9 @@
       <el-button type="primary" class="btn" @click="onClick">
         <i class="el-icon-search"></i>查询
       </el-button>
+      <el-button type="primary" @click="refresh">
+        <i class="el-icon-refresh"></i>刷新
+      </el-button>
     </div>
         <el-tabs v-model="activeName">
           <!-- 未接收 -->
@@ -189,6 +192,9 @@ export default {
     };
   },
   methods: {
+    refresh(){
+      this.$router.go(0);
+    },
     onClick() {
       if (this.activeName == "first") {
         this.option1.requestUrl =