Browse Source

销售派车修改

zouzhd 3 years ago
parent
commit
d6c900663d

+ 1 - 17
build/utils.js

@@ -17,24 +17,8 @@ const devPathSrc = path.resolve(__dirname, '../../../src'); // node_modules应
 //  'logistics', 'process', '   ', 'reportform', 'basicconfig', 'system']
 // let devModules = ['index', 'qualityControl', 'standard', 'basicconfig'];
 // let devModules = ['index','devops','workFlow','systemConfig', 'microService'];
-let devModules = ['all'];
-// let devModules = ['index','TMS','RMS']
-// let devModules = ['index','SporadicManage','TMS']
-// let devModules = ['index','SporadicManage'];
-// let devModules = ['index','systemConfig', 'formGenerator', 'preview', 'metaData', 'serviceManager', 'configManager', 'custom'];
-// let devModules = ['index', 'systemConfig','formGenerator', 'preview', 'metaData', 'serviceManager', 'configManager', 'btnControll'];
-//  let devModules = ['all'];
-// let devModules = ['index','RMS']
-//let devModules = ['index','SporadicManage','TMS']
-// let devModules = ['index','SporadicManage'];
-// let devModules = ['index','systemConfig', 'formGenerator', 'preview', 'metaData', 'serviceManager', 'configManager', 'custom'];
-// let devModules = ['index', 'systemConfig','formGenerator', 'preview', 'metaData', 'serviceManager', 'configManager', 'btnControll'];
-// let devModules = ['index','inward','SporadicManage']
-// let devModules = ['index','']
 // let devModules = ['all'];
-// let devModules = ['index','RMS','systemConfig','TMS']
-// let devModules = ['all'];
-// let devModules = ['index','inward','appoint','sale']
+let devModules = ['index','appoint','sale','systemConfig']
 // let devModules = ['index','SporadicManage']
 if (pathSrc.indexOf('node_modules') > -1) {
     devModules = require('../../../cors.js').devModules;

+ 542 - 0
src/views/appoint/components/saleContract/addSaleOrderSend.vue

@@ -0,0 +1,542 @@
+<template>
+  <!-- 添加销售订单排车 -->
+  <div class="addSalePlan">
+    <page-title>新增销售订单派车</page-title>
+        <div>
+            <el-tabs v-model="activeName" >
+                <dilTable ref="tab" v-bind.sync="option">
+                </dilTable>
+            </el-tabs>
+        </div>
+        
+        <el-form :inline="true" style="margin-top: 2rem;">
+            <el-form-item>
+                <label class="el-form-item__label" style="width: auto;margin-left: 2rem;">物资名称:</label>
+                <el-select v-model="materials" placeholder="请选择">
+                    <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
+                 </el-select>
+            </el-form-item>
+            <el-form-item>
+                <div class="lineId">
+                <div class="materialId">
+                    <label class="el-form-item__label" style="width: auto;margin-left: 2rem;">承运商:</label>
+                    <el-input class="input" v-model="carrierName" disabled> </el-input>
+                    <el-button type="primary" class="btn" @click="table2 = true">浏览</el-button>
+                </div>
+                </div>
+            </el-form-item>
+            <el-form-item>
+                <div class="lineId">
+                <div class="materialId">
+                    <label class="el-form-item__label" style="width: auto;margin-left: 2rem;">选择路线:</label>
+                    <el-input class="input" v-model="lineName" disabled> </el-input>
+                    <el-button type="primary" class="btn" @click="table1 = true">浏览</el-button>
+                </div>
+                </div>
+            </el-form-item>
+        </el-form>
+
+        <!-- 承运商模态框 -->
+        <el-drawer
+        title="选择承运商"
+        :visible.sync="table2"
+        direction="rtl"
+        size="35%"
+        :show-close="false"
+        >
+        <el-input placeholder="请输入内容" v-model="index"  
+        style="margin-top: 10px; margin-left: 20px;width:160px" clearable> </el-input
+        ><el-button type="primary" class="btn" @click="onclick" style="margin-left: 4px;">
+            <i class="el-icon-search"></i>查询
+        </el-button>
+        <div class="tablecls">
+            <!-- 查询所有的承运商 -->
+            <dilTable v-bind.sync="carrier" @radio-change="currentRadioChange2">
+            </dilTable>
+        </div>
+        </el-drawer>
+
+        <!-- 选择路线模态窗口 -->
+        <el-drawer
+        title="选择路线"
+        :visible.sync="table1"
+        direction="rtl"
+        size="50%"
+        :show-close="false"
+        >
+        <el-input placeholder="请输入内容" v-model="input"  
+        style="margin-top: 10px; margin-left: 20px;width:160px" clearable> </el-input
+        ><el-button type="primary" class="btn" @click="onclick1" style="margin-left: 4px;">
+            <i class="el-icon-search"></i>查询
+        </el-button>
+        <div class="tablecls">
+            <!-- 查询所有的路线 -->
+            <dilTable
+            v-bind.sync="line" @radio-change="currentRadioChange5"
+            ></dilTable>
+        </div>
+        </el-drawer>
+
+        <!-- 选择新增条数及确认按钮 -->
+        <div class="lineId">
+            <div class="materialId">
+                <label class="el-form-item__label" style="width: auto;margin-left: 2rem;margin-top: 0.3rem;">派车数:</label>
+                <el-input class="input1" v-model="carCount"> </el-input>
+                <el-button type="primary" class="btn" @click="makeSure1">确认分派</el-button>
+            </div>
+        </div>
+
+    <!-- 派车表格 -->
+    <div class="selectionTable from">
+      <el-table :data="selectionList" border style="width: 100%" highlight-current-row>
+        <el-table-column v-for="(item, i) in tableTop" :key="i" :prop="item.prop" :label="item.label" :width="item.width" align="center"
+          show-overflow-tooltip>
+          <template slot="scope" v-if="item.label !== '重量'">
+            <span>{{ item.label }}</span>
+          </template>
+          <template slot="scope" v-if="item.label !== '车牌号'">
+            <span>{{ item.label }}</span>
+          </template>
+          <template slot="scope" v-if="item.label !== '收货地址'">
+            <span>{{ item.label }}</span>
+          </template>
+          <template slot="scope" v-if="item.label !== '收货日期'">
+            <span>{{ item.label }}</span>
+          </template>
+          <template slot="scope" v-if="item.label !== '收货姓名'">
+            <span>{{ item.label }}</span>
+          </template>
+          <template slot="scope" v-if="item.label !== '收货方电话'">
+            <span>{{ item.label }}</span>
+          </template>
+          <!-- 插入输入框 -->
+          <template slot-scope="scope">
+            <template v-if="item.slot">
+              <!-- 车牌号 -->
+              <template v-if="item.prop == 'capacityNumber'">
+                <el-input
+                  class="textinput1"
+                  v-model.number="scope.row.capacityNumber"
+                ></el-input>
+              </template>
+              <!-- 物资重量 -->
+              <template v-if="item.prop == 'orderPlanWeight'">
+                <el-input
+                  class="textinput"
+                  v-model.number="scope.row.orderPlanWeight"
+                ></el-input>
+              </template>
+              
+              <!-- 收货地址id -->
+              <template style="width: 400px" v-if="item.prop == 'saleShipperAddressName'">
+                <el-input style="width: 200px" v-model="scope.row.saleShipperAddressName" disabled>
+                </el-input>
+                <el-button type="primary" @click="ondrawer(scope.row,scope.$index)"
+                  >浏览</el-button
+                >
+              </template>
+              <!-- 收货日期 -->
+              <template v-if="item.prop == 'saleDateOfReceipt'">
+                <el-date-picker
+                  class="textinput3"
+                  type="date"
+                  v-model.number="scope.row.saleDateOfReceipt"
+                ></el-date-picker>
+              </template>
+              <!-- 收货客户 -->
+              <template v-if="item.prop == 'saleOrderConsignee'">
+                <el-input
+                  class="textinput4"
+                  v-model.number="scope.row.saleOrderConsignee"
+                ></el-input>
+              </template>
+              <!-- 收货客户电话号码 -->
+              <template v-if="item.prop == 'saleOrderConsigneeTel'">
+                <el-input
+                  class="textinput5"
+                  v-model.number="scope.row.saleOrderConsigneeTel"
+                ></el-input>
+              </template>
+            </template>
+            <template v-else>
+              <span>{{ scope.row[item.prop] }}</span>
+            </template>
+          </template>
+        </el-table-column>
+        <!-- 操作列 -->
+        <el-table-column fixed="right" label="操作" width="100">
+          <template slot-scope="scope">
+            <el-button
+              @click.native.prevent="deleteRow(scope.$index, selectionList)"
+              type="text"
+              icon="el-icon-close"
+              size="big"
+            ></el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+
+    <el-drawer
+      :visible.sync="drawer"
+      :direction="direction"
+      :close-on-press-escape="true"
+      :show-close="true"
+      :wrapperClosable="true"
+      modal
+      size="30%"
+    >
+      <el-input
+        placeholder="请输入内容"
+        v-model="textInput"
+        style="margin-top: 10px; margin-left: 20px;width: 200px"
+        clearable
+      >
+      </el-input>
+      <el-button
+        type="primary"
+        class="btn"
+        @click="onclick1()"
+        style="margin-bottom: 15px"
+      >
+        <i class="el-icon-search"></i>查询
+      </el-button>
+      <dilTable
+        v-bind.sync="frist"
+        @radio-change="currentRadioChange1"
+      ></dilTable>
+    </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";
+
+export default {
+  components: { PageTitle },
+  data() {
+    return {
+      materials: "",
+      //线路
+      table1: false,
+      lineName:"",
+      line: {
+        requestUrl: "/api/v1/rms/getAllLineDesk?apiId=249&lineType=3",
+        selectionType: "radio",
+      },
+      //承运商
+      table2: false,
+      carrierName: "",
+      carrier: {
+        requestUrl: "/api/v1/uc/getCarrierListByLike?apiId=412",
+        selectionType: "radio",
+      },
+      //新增车数
+      carCount: 1,
+
+
+      textInput: "",
+      input: "",
+      //销售订单物资信息
+      option: {
+        // 表格请求数据的地址
+        requestUrl: "/api/v1/ams/getSaleOrderAndMaterialById?apiId=410&saleOrderId=" + this.$route.params.saleOrderId,
+      },
+      table: false,
+      //表格数据lists
+      selectionList: [],
+      //表格新增lists
+      selectionList1: [],
+      drawer: false,
+      direction: "rtl",
+      form1: {},
+      value: false,
+      frist: {
+        requestUrl: "/api/v1/ams/getAddressDeliveryAddress?apiId=255",
+        selectionType: "radio",
+        mapList: [],
+      },
+      options: [
+        {
+          values: "yes",
+          label: "是",
+        },
+        {
+          values: "no",
+          label: "否",
+        },
+      ],
+      values: "yes",
+      tableTop: [
+        {
+          prop: "capacityNumber",
+          label: "车牌号",
+          slot: true,
+        },
+        {
+          prop: "materialName",
+          label: "物资名称",
+          width: "140",
+        },
+        {
+          prop: "carrierName",
+          label: "承运商",
+          width: "120",
+        },
+        {
+          prop: "lineName",
+          label: "运输线路",
+          width: "140",
+        },
+        {
+          prop: "orderPlanWeight",
+          label: "重量",
+          slot: true,
+        },
+        {
+          prop: "saleShipperAddressName",
+          label: "收货地址",
+          width: "300",
+          slot: true,
+        },
+        {
+          prop: "saleDateOfReceipt",
+          label: "收货日期",
+          width: "110",
+          slot: true,
+        },
+        {
+          prop: "saleOrderConsignee",
+          label: "收货客户",
+          slot: true,
+        },
+        {
+          prop: "saleOrderConsigneeTel",
+          label: "收货客户电话号码",
+          slot: true,
+        },
+      ],
+      row: {},
+    };
+  },
+  watch: {
+    
+  },
+  methods: {
+    currentRadioChange2(selectoin){
+        console.log("selectoin",selectoin)
+      this.carrierName = selectoin.carrierName;
+    },
+    currentRadioChange5(selection) {
+      this.lineName = selection.lineName;
+    //   this.lineId = selection.lineId;
+    },
+    // 确认新增一列或多列派车行
+    // makeSure1() {
+    //     console.log("this.option[0].saleMaterialId",this.option)
+    //   for(var i=0;i<this.carCount;i++){
+    //       var addmap = {
+    //           capacityNumber : null,
+    //           materialName : this.materials,
+    //           carrierName : this.carrierName,
+    //           lineName : this.lineName,
+    //           orderPlanWeight : null,
+    //           saleShipperAddressId: null,
+    //           saleShipperAddressName:null,
+    //           saleDateOfReceipt: null,
+    //           saleOrderConsignee: null,
+    //           saleOrderConsigneeTel: null,
+    //       }
+    //       this.selectionList.push(addmap);
+    //   }
+    // },
+    //删除派车列
+    deleteRow(index, rows) {
+      rows.splice(index, 1);
+    },
+    //点击浏览事件
+    ondrawer(row,index) {
+      this.row = row;
+      this.row.index = index;
+      this.drawer = true;
+    },
+    //监听模态框点击事件
+    currentRadioChange1(radioList) {
+      this.selectionList[this.row.index].saleShipperAddressId = radioList.addressId;
+      this.selectionList[this.row.index].saleShipperAddressName = radioList.address;
+    },
+    //收货地址模态框查询
+    onclick1() {
+      this.option.requestUrl =
+        "/api/v1/ams/getAddressDeliveryAddress?apiId=255&con=" + this.textInput;
+    },
+    //物资模态框查询
+    // 框计算
+    onclick() {
+      this.option.requestUrl =
+      "/api/v1/ams/getSaleOrderAndMaterialById?apiId=410&saleOrderId=" + this.$route.params.saleOrderId;
+    },
+    open() {
+      if (this.selectionList1.length != 0) {
+        this.$confirm("取消会将已选择的数据清空, 是否继续?", "提示", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+        })
+          .then(() => {
+            this.selectionList1 = [];
+            this.table = false;
+          })
+          .catch(() => {});
+      } else {
+        this.table = false;
+      }
+    },
+    // 确定
+    makeSure() {
+        //初始化maplist
+      var mapList = [];
+      console.log("this.selectionList",this.selectionList)
+      this.selectionList.forEach((item,i) => {
+        //初始化mapItem
+        var mapItem={
+                //销售订单id
+                saleOrderId : 0,
+                //车序号    
+                truckNo : "",
+                //收货地址id
+                shippingAddressId : 0,
+                //收货日期
+                dateOfReceipt :null,
+                //收货方姓名   
+                orderConsignee :"",
+                //收货方电话 
+                orderConsigneeTel :"",
+                //车序号物资ID
+                saleMaterialId : 0,
+                //物资数量
+                materialNumber : 0,
+            };
+        mapItem.saleOrderId=this.$route.params.saleOrderId;
+        mapItem.truckNo=item.cxh;
+        mapItem.shippingAddressId=item.saleShipperAddressId;
+        mapItem.dateOfReceipt=item.saleDateOfReceipt;
+        mapItem.orderConsignee=item.saleOrderConsignee;
+        mapItem.orderConsigneeTel=item.saleOrderConsigneeTel;
+        mapItem.saleMaterialId=item.saleMaterialId;
+        mapItem.materialNumber=item.orderPlanWeight;
+        mapList.push(mapItem);
+      });
+      // console.log("mapList",mapList);
+        this.axios.post("/api/v1/ams/addTruckNo", mapList).then((res) => {
+          if (res.data.code == "200") {
+            this.$router.go(-1);
+          }
+          this.$message({
+            type: "success",
+            message: "新增车序号成功!",
+          });
+        });    
+    },
+    // 取消
+    cancel() {
+      this.$router.go(-1);
+    },
+    //关闭事件
+    handleClose(done) {
+      this.$confirm("确认关闭?")
+        .then((_) => {
+          done();
+        })
+        .catch((_) => {});
+    },
+
+    CloseClick() {},
+  },
+};
+</script>
+<style lang='scss' scoped>
+.addSalePlan{
+  width: 100%;
+}
+.switch{
+  margin-left: 60rem;
+}
+.lineId {
+  display: flex;
+  justify-content: center;
+  margin-left: 2rem;
+  .text {
+    display: inline-block;
+    width: 170px;
+    text-align: right;
+  }
+  .input{
+    width: 250px;
+    margin-right: 20px;
+  }
+  .input1{
+    width: 60px;
+    margin-right: 20px;
+  }
+}
+.form-box,
+.from {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  margin-top: 5px;
+  margin-bottom: 20px;
+}
+.button-box{
+  display: flex;
+  text-align: center;
+  align-items: center;
+  justify-content: center;
+  margin-top: 0.3125rem;
+  margin-bottom: 1.25rem;
+}
+.select {
+  margin-left: 2rem;
+}
+.makeSureAdd{
+  width: 100px;
+  margin-left: 3.5rem;
+  margin-top: 0.3rem;
+  align-items: center;
+  justify-content: center;
+  text-align: center;
+  display: flex;
+}
+.demo-form-inline {
+  margin-left: 2rem;
+}
+.table_form {
+  margin-left: -16rem;
+}
+.textinput {
+  width: 50px;
+}
+.textinput1 {
+  width: 50px;
+  text-align: center;
+  size: small;
+}
+.textinput2 {
+  width: 50px;
+  margin-right: 30px;
+}
+.textinput3 {
+  width: 270px;
+}
+.textinput4 {
+  width: 60px;
+}
+.textinput5 {
+  width: 120px;
+}
+</style>

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

@@ -153,11 +153,17 @@
         <dilTable v-bind.sync="option4" ref="table">
           <el-table-column fixed="right" label="操作" width="130">
             <template slot-scope="scope">
+              <el-button
+                @click="sendClick(scope.row.saleOrderId)"
+                type="text"
+                size="small"
+                >派车</el-button
+              >
               <el-button
                 @click="addClick(scope.row.saleOrderId)"
                 type="text"
                 size="small"
-                >新增车序号</el-button
+                >排车</el-button
               >
               <el-button
                 @click="detailclick(scope.row)"
@@ -288,6 +294,9 @@ export default {
     addClick(saleOrderId){
       this.$router.push("/addSaleOrderArrange/" + saleOrderId);
     },
+    sendClick(saleOrderId){
+      this.$router.push("/addSaleOrderSend/" + saleOrderId);
+    },
     // detailedClick(saleOrderId){
     //   this.$router.push("saleOrderMaterial/" + saleOrderId);
     // },

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

@@ -33,6 +33,7 @@ import updateTrainPrice from '../components/purchase/updateTrainPrice.vue'
 import updateTruckPrice from '../components/purchase/updateTruckPrice.vue'
 import addSaleOrder from '../components/saleContract/addSaleOrder.vue'
 import addSaleOrderArrange from '../components/saleContract/addSaleOrderArrange.vue'
+import addSaleOrderSend from '../components/saleContract/addSaleOrderSend.vue'
 import addSalePlan from '../components/saleContract/addSalePlan.vue'
 import addSalePlanDetail from '../components/saleContract/addSalePlanDetail.vue'
 import addTransportPrice from '../components/saleContract/addTransportPrice.vue'
@@ -89,6 +90,7 @@ const constantRouterMap = [
       {path: 'updateTruckPrice/:priceId', name: 'updateTruckPrice', meta: {code: 'xtpzgl-yhgl'}, component: updateTruckPrice},
       {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},
       {path: 'addSalePlan', name: 'addSalePlan', meta: {code: 'xtpzgl-yhgl'}, component: addSalePlan},
       {path: 'addSalePlanDetail/:planId', name: 'addSalePlanDetail', meta: {code: 'xtpzgl-yhgl'}, component: addSalePlanDetail},
       {path: 'saleOrderMaterial/:saleOrderId', name: 'saleOrderMaterial', meta: {code: 'xtpzgl-yhgl'}, component: saleOrderMaterial},