Prechádzať zdrojové kódy

销售订单授权承运商

zouzhd 3 rokov pred
rodič
commit
e68b003a87

+ 1 - 1
build/utils.js

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

+ 1 - 1
config/index.js

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

+ 63 - 66
src/views/appoint/components/saleContract/addSaleOrderCoproductSend.vue

@@ -28,11 +28,6 @@
           <el-date-picker type="date" v-model="uniteSaleDateOfReceipt" style="width:150px"></el-date-picker>
           <el-button type="primary" @click="AddTruckClick" style="margin-top: 10px;">确定</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>
 
     <!-- 派车表格 -->
@@ -334,6 +329,10 @@ export default {
   components: { PageTitle },
   data() {
     return {
+      //订单总重量
+      number:null,
+      //预估总重量
+      totalWeight:null,
       //已选中 省市县(区)
       address:null,
       //具体收货地址
@@ -500,6 +499,7 @@ export default {
         "/api/v1/uc/getAllCapacityByCarrierLike?apiId=248&carrierSsoId=" + null;
     }
     this.option.requestUrl = "/api/v1/ams/getSaleOrderAndMaterialById?apiId=410&saleOrderId=" + this.$route.params.saleOrderId;
+    this.initializeLine();
   },
   methods: {
     onInput(val){
@@ -507,6 +507,15 @@ export default {
         this.$message.warning('重量/电话号码请输入数字')
       }
     },
+    //初始化线路
+    initializeLine(){
+      this.axios
+      .post("/api/v1/rms/getAllLineDesk?apiId=249&lineType=3&con="+'销售副产品单拼路线')
+      .then((res)=>{
+        this.lineName = res.data.data.list[0].lineName +"  "+ res.data.data.list[0].lineDesk;
+        this.lineId = res.data.data.list[0].lineId;
+      });
+    },
     //校验是否为车牌
     isVehicleNumber(vehicleNumber) {
       var result = false;
@@ -540,7 +549,7 @@ export default {
         carrierId: mapValue.carrierId,
         state: mapValue.carrierName,
       };
-      this.$confirm("车牌号与承运商未有绑定关系, 是否立即绑定该车牌号和承运商?","提示",{
+      this.$confirm("车牌号("+mapValue.capacityNumber+")与承运商未有绑定关系, 是否立即绑定该车牌号和承运商?","提示",{
           confirmButtonText: "确定",
           cancelButtonText: "取消",
           type: "warning",
@@ -669,50 +678,56 @@ export default {
 
     //点击确定按钮的事件
     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(e.saleDateOfReceipt){  //转化截止日期格式
-          e.saleDateOfReceipt = sjTime(e.saleDateOfReceipt)
-        }
-        if(isIntegerNumber(e.carrierName)){
-          e.carrierId = e.carrierName
-        }
-      })
-      if(state){
-        //校验是否自提,是自提,则运输单价必选,非自提,运输单价为空
-        if(this.saleOrderIsselfMention=='是'){
+      //判断是否达到95%
+      var canDo = (this.totalWeight/this.number).toFixed(2);
+      if(canDo>0.95){
+        this.$message.error('当前已派发吨数接近订单总吨数,不可继续派单!')
+      }else{
+        let state = false;
           this.selectionList.forEach((e)=>{
-            e.priceValue = null;
-            e.priceId = null;
+            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(e.saleDateOfReceipt){  //转化截止日期格式
+              e.saleDateOfReceipt = sjTime(e.saleDateOfReceipt)
+            }
+            if(isIntegerNumber(e.carrierName)){
+              e.carrierId = e.carrierName
+            }
           })
-          this.sendRequest();
-        }else{
-          //判断是否全部完成运输单价的选择
-          if(this.choosePriceCount==this.selectionList.length){
-            this.sendRequest();
+          if(state){
+            //校验是否自提,是自提,则运输单价必选,非自提,运输单价为空
+            if(this.saleOrderIsselfMention=='是'){
+              this.selectionList.forEach((e)=>{
+                e.priceValue = null;
+                e.priceId = null;
+              })
+              this.sendRequest();
+            }else{
+              //判断是否全部完成运输单价的选择
+              if(this.choosePriceCount==this.selectionList.length){
+                this.sendRequest();
+              }else{
+                this.$message.warning('还有运输单价未被选定!')
+              }
+            }
           }else{
-            this.$message.warning('还有运输单价未被选定!')
+            this.$message.warning('重量/电话号码请输入数字')
           }
-        }
-      }else{
-        this.$message.warning('重量/电话号码请输入数字')
-      }
+      } 
     },
     //发送请求
     sendRequest(){
@@ -960,6 +975,8 @@ export default {
       this.materialName = row.materialName;
       this.saleMaterialId = row.saleMaterialId;
       this.saleOrderId = row.saleOrderId;
+      this.totalWeight = row.totalWeight;
+      this.number = row.number;
     },
     //线路表格的单选事件
     currentRadioChange5(row){
@@ -983,26 +1000,6 @@ export default {
         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(){

+ 1068 - 0
src/views/appoint/components/saleContract/addSaleOrderCoproductSendCarrier.vue

@@ -0,0 +1,1068 @@
+<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="sendCar">
+          <span class="text">派车数</span>
+          <el-input v-model="carNumber"></el-input>
+          <span class="text">每车重量</span>
+          <el-input v-model="uniteOrderPlanWeight"></el-input>
+          <span class="text">截止日期</span>
+          <el-date-picker type="date" v-model="uniteSaleDateOfReceipt" style="width:150px"></el-date-picker>
+          <el-button type="primary" @click="AddTruckClick" style="margin-top: 10px;">确定</el-button>
+      </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" 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-autocomplete
+                class="inline-input"
+                v-model="scope.row.capacityNumber"
+                :fetch-suggestions="querySearch"
+                placeholder="(必填)"
+                :trigger-on-focus="false"
+                @select="handleSelect"
+                @blur="checkRelationship(scope.$index)"
+                ></el-autocomplete>
+              </template>
+
+              <!-- 承运商 -->
+              <template v-if="item.prop == 'carrierName'">
+                 <el-select v-model="scope.row.carrierName" placeholder="请选择">
+                  <el-option
+                    v-for="item in carrierNameOptions[scope.$index]"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value">
+                  </el-option>
+                </el-select>
+              </template>
+
+              <!-- 物资重量 -->
+              <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 == 'priceValue'" >
+                <el-input
+                  style="width: 200px"
+                  v-model="scope.row.priceValue"
+                  disabled
+                >
+                </el-input>
+                <el-button
+                  type="primary"
+                  placeholder="()"
+                  @click="select(scope.$index,3)"
+                  >浏览</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"
+                  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 v-model="addresText" placeholder="请输入内容" style="margin-top: 10px; margin-left: 20px; width: 250px"></el-input>
+        <el-button type="primary" @click="selectAddresClick" :loading="selectLineLoading"><i class="el-icon-search"></i>查询</el-button>
+         <!-- 已选中 省市(区)县 -->
+         <el-form :inline="true" style="margin-top: 0.5rem;">
+          <el-form-item>
+          <label class="el-form-item__label" style="width: auto;">已选中省市县(区):</label>
+          </el-form-item>
+          <el-form-item>
+              <el-input class="el-form-item__content" v-model="address" placeholder="请输入内容" :disabled="true"></el-input>
+          </el-form-item>
+         </el-form>
+         <!-- 具体收货地址 -->
+         <div v-if="address != null">
+           <el-form :inline="true" style="margin-top: 0.5rem;" >
+
+          <el-form-item label="具体收货地址:">
+            <el-autocomplete
+              class="inline-input"
+              v-model="place"
+              :fetch-suggestions="querySearch1"
+              placeholder="请输入具体收货地址"
+              :trigger-on-focus="false"
+              @select="handleSelect1"
+            >
+            </el-autocomplete>
+          </el-form-item> 
+
+          <el-button type="primary" @click="addAddressClick">确定</el-button>
+         </el-form>
+         </div>
+
+      <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,isIntegerNumber } from "@/utils/sharedJsFile";
+export default {
+  components: { PageTitle },
+  data() {
+    return {
+      //订单总重量
+      number:null,
+      //预估总重量
+      totalWeight:null,
+      //已选中 省市县(区)
+      address:null,
+      //具体收货地址
+      place:null,
+      //收货地址id
+      addressId:null,
+      //省市县(区)查询值
+      addresText:null,
+      //加载
+      selectLineLoading:false,
+      //承运商下拉框中的值
+      carrierNameOptions:[],
+      //收货客户注册承运商Id
+      receiveCarrierId:null,
+      //收货客户注册承运商名称
+      receiveCarrierName:null,
+      //统一截止日期
+      uniteSaleDateOfReceipt:null,
+      //统一每车重量
+      uniteOrderPlanWeight:null,
+      //线路名称
+      lineName:null,
+      lineId:null,
+      //派车数
+      carNumber:null,
+      //线路表格单选缓存数据的
+      cacheLine:{
+        ROW_ID : 0,
+        lineDesk : '',
+        lineId : 0,
+        lineName : '',
+        lineNo : '',
+        lineType : '',
+        spellNumber : 0,
+      },
+      //收货客户
+      consigneeCompanyName:'',
+      //是否自提
+      saleOrderIsselfMention:'',
+      //单价已选数量
+      choosePriceCount: 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&con="+'销售',
+        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: "130",
+          slot: true,
+        },
+        {
+          prop: "carrierName",
+          label: "承运商",
+          width: "240",
+          slot: true,
+        },
+        {
+          prop: "materialName",
+          label: "物资名称",
+          width: "140",
+        },
+        {
+          prop: "lineName",
+          label: "运输线路",
+          width: "220",
+        },
+        {
+          prop: "orderPlanWeight",
+          label: "重量",
+          width: "140",
+          slot: true,
+        },
+        {
+          prop: "saleDateOfReceipt",
+          label: "截止日期",
+          width: "230",
+          slot: true,
+        },
+        {
+          prop: "priceValue",
+          label: "运输单价",
+          width: "300",
+          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,
+      //销售订单主键
+      saleOrderId:null,
+      //记录点击的是哪一个收货地址的浏览
+      addressIndex:null,
+      //缓存当前选中的运输单价
+      // priceMap:{},
+    };
+  },
+  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;
+    this.initializeLine();
+  },
+  methods: {
+    onInput(val){
+      if(!isNumber(val)){
+        this.$message.warning('重量/电话号码请输入数字')
+      }
+    },
+    //初始化线路
+    initializeLine(){
+      this.axios
+      .post("/api/v1/rms/getAllLineDesk?apiId=249&lineType=3&con="+'销售副产品单拼路线')
+      .then((res)=>{
+        console.log("res.data.data.list[0].lineName",res.data.data.list[0].lineName)
+        this.lineName = res.data.data.list[0].lineName +"  "+ res.data.data.list[0].lineDesk;
+        this.lineId = res.data.data.list[0].lineId;
+      });
+    },
+    //校验是否为车牌
+    isVehicleNumber(vehicleNumber) {
+      var result = false;
+      if (vehicleNumber.length == 7) {
+        var express =
+          /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/;
+        result = express.test(vehicleNumber);
+      }
+      return result;
+    },
+    //填充承运商下拉框
+    fillCarrier(capacityId){
+      this.axios
+      .get("/api/v1/uc/getCarrierByCapacityId?capacityId=" + capacityId)
+      .then((res)=>{
+        var carrierNameList = [];
+        carrierNameList = res.data.data;
+        this.carrierNameOptions.push(carrierNameList);
+      });
+    },
+    //绑定车牌号和承运商的关系
+    bindRelationship(mapValue){
+      let RmsCapacity = {
+        capacityTypeId: 1,
+        capacityNumber: mapValue.capacityNumber,
+        capacityCorlor: "黄",
+        capacityOwneris: "否",
+        capacityVip: "否",
+        capacityBlacklist: "否",
+        remark: null,
+        carrierId: mapValue.carrierId,
+        state: mapValue.carrierName,
+      };
+      this.$confirm("车牌号("+mapValue.capacityNumber+")与承运商未有绑定关系, 是否立即绑定该车牌号和承运商?","提示",{
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning",
+      })
+      .then(() => {
+          this.axios
+            .post("/api/v1/rms/insertCapacity", RmsCapacity)
+            .then((res) => {
+                this.$message.success("该车牌号与承运商绑定关系成功!");
+            });
+        })
+        .catch(() => {this.$message({ type: "info", message: "已取消该车牌号与承运商绑定关系",});});
+    },
+    //失焦事件后确定车牌号与承运商是否有绑定关系
+    checkRelationship(index){
+      if(this.selectionList[index].carrierId!=null){
+        //暂存车牌号
+      var capacityNumber1;
+      if(this.isVehicleNumber(this.selectionList[index].capacityNumber)){
+        let mapValue = {
+        capacityNumber:this.selectionList[index].capacityNumber,
+        carrierId:this.selectionList[index].carrierId,
+        carrierName:this.selectionList[index].carrierName
+      }
+      this.axios
+       .post("/api/v1/uc/isInCapacityCarrier", mapValue)
+       .then((res)=>{
+         if(res.data.code=="201"){
+           capacityNumber1 = res.data.data;
+           if(capacityNumber1==null){
+             this.selectionList[index].capacityNumber = null;
+             this.$message.error("该车牌号未注册,请先前往注册!");
+           }else{
+             this.bindRelationship(mapValue);
+           }
+         }
+       });
+      }
+      }
+    },
+    //收货地址弹出层
+    handleSelect1(item) {
+        console.log("获取所有下拉值!");
+    },
+    //车牌号弹出层
+    handleSelect(item) {
+      if(this.receiveCarrierId!=null){
+        let mapValue = {
+          capacityNumber:item.capacityNumber,
+          carrierId:this.receiveCarrierId,
+          carrierName:this.receiveCarrierName
+        }
+        this.axios
+        .post("/api/v1/uc/isInCapacityCarrier", mapValue)
+        .then((res)=>{
+          if(res.data.code=="201"){
+            this.bindRelationship(mapValue);
+          }else{
+            this.fillCarrier(item.capacityId);
+          }
+        });
+      }else{
+        this.fillCarrier(item.capacityId);
+      }
+    },
+    //查询全国省市县
+    selectAddresClick(){
+      if(this.addresText){
+        this.Address.requestUrl = "/api/v1/ams/getAddressDeliveryAddress?apiId=255&con="+this.addresText;
+      }else{
+        this.Address.requestUrl = "/api/v1/ams/getAddressDeliveryAddress?apiId=255&i=" + new Date();
+      }
+    },
+
+    //以下是车牌号边输边查搜索
+    querySearch(queryString, cb){
+      this.axios
+        .post("/api/v1/uc/getCapacityByLike?index=" + queryString)
+        .then((res) => {
+          if (res.data.code == "200") {
+            var restaurants = res.data.data;
+            var results = queryString
+              ? restaurants.filter(this.createFilter(queryString))
+              : restaurants;
+            // 调用 callback 返回建议列表的数据
+            cb(results);
+          }
+        });
+    },
+    createFilter(queryString) {
+      return (restaurants) => {
+        return (
+          restaurants.value.toLowerCase().indexOf(queryString.toLowerCase()) >
+          -1
+        );
+      };
+    },
+    //以上是车牌号边输边查搜索
+
+    //以下是收货地址边输边查搜索
+    querySearch1(queryString, cb){
+      this.axios
+        .post("/api/v1/ams/getRealAddressByLike?addressId="+this.addressId + "&index=" + queryString)
+        .then((res) => {
+          if (res.data.code == "200") {
+            var restaurants = res.data.data;
+            var results = queryString
+              ? restaurants.filter(this.createFilter1(queryString))
+              : restaurants;
+            // 调用 callback 返回建议列表的数据
+            cb(results);
+          }
+        });
+    },
+    createFilter1(queryString) {
+      return (restaurants) => {
+        return (
+          restaurants.value.toLowerCase().indexOf(queryString.toLowerCase()) >
+          -1
+        );
+      };
+    },
+    //以上是收货地址边输边查搜索
+
+    //点击确定按钮的事件
+    makeSure(){
+      var canDo = (this.totalWeight/this.number).toFixed(2);
+      if(canDo>0.95){
+        this.$message.error('当前已派发吨数接近订单总吨数,不可继续派单!')
+      }else{
+        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(e.saleDateOfReceipt){  //转化截止日期格式
+            e.saleDateOfReceipt = sjTime(e.saleDateOfReceipt)
+          }
+          if(isIntegerNumber(e.carrierName)){
+            e.carrierId = e.carrierName
+          }
+        })
+        if(state){
+          //校验是否自提,是自提,则运输单价必选,非自提,运输单价为空
+          if(this.saleOrderIsselfMention=='是'){
+            this.selectionList.forEach((e)=>{
+              e.priceValue = null;
+              e.priceId = null;
+            })
+            this.sendRequest();
+          }else{
+            //判断是否全部完成运输单价的选择
+            if(this.choosePriceCount==this.selectionList.length){
+              this.sendRequest();
+            }else{
+              this.$message.warning('还有运输单价未被选定!')
+            }
+          }
+        }else{
+          this.$message.warning('重量/电话号码请输入数字')
+        }
+      }
+      
+    },
+    //发送请求
+    sendRequest(){
+      this.axios.post('/api/v1/ams/dispatchTruckOrderBySale',{
+          saleOrderId:this.$route.params.saleOrderId,
+          mapList:this.selectionList,
+        }).then((res)=>{
+          if(res.data.code == '200'){
+            this.$message.success('派车成功')
+            this.cancel();
+          }else{
+            //若该销售订单的净重已达到97%!
+            this.$confirm("该销售订单的净重已达到97%! 是否仍然派车", "提示", {
+              confirmButtonText: "确定",
+              cancelButtonText: "取消",
+              type: "warning",
+              center: true,
+            })
+            .then(() => {
+              this.axios.post('/api/v1/ams/dispatchTruckOrderBySale',{
+              saleOrderId:this.$route.params.saleOrderId,
+              sendAgain:1,
+              mapList:this.selectionList,
+              }).then((res)=>{
+                  if(res.data.code == '200'){
+                  this.$message.success('派车成功')
+                  this.cancel();
+                }
+              });
+            })
+            .catch(() => {
+              this.$message({
+                type: "info",
+                message: "取消派车!",
+              });
+            });
+
+          }
+        })
+    },
+    //点击取消按钮的事件
+    cancel(){
+      this.$router.push('/saleOrderCoproductCarrier')
+    },
+    //点击删除按钮删除当前点击的对象
+    deleteRow(index){
+      this.selectionList.splice(index,1)
+    },
+    //复制的方法
+    copyRow(index,row){
+      let arr = [];
+      let crr = [];
+      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,
+            carrierId:row.carrierId,
+            lineId:row.lineId,
+            lineName:row.lineName,
+            materialId:row.materialId,
+            materialName:row.materialName,
+            orderPlanWeight:row.orderPlanWeight,
+            saleDateOfReceipt:row.saleDateOfReceipt,
+            saleMaterialId:row.saleMaterialId,
+            saleOrderConsignee:row.saleOrderConsignee,
+            saleOrderConsigneeTel:row.saleOrderConsigneeTel,
+            saleShipperAddressId:row.saleShipperAddressId,
+            place:row.place,
+            priceValue:row.priceValue,
+            priceId:row.priceId
+          });
+          //下拉框数据复制
+          crr.push(this.carrierNameOptions[i]);
+          crr.push(this.carrierNameOptions[i]);
+        }else{
+          arr.push(this.selectionList[i]);
+          crr.push(this.carrierNameOptions[i]);
+        }
+      }
+      this.selectionList = [];
+      this.selectionList = arr;
+      this.carrierNameOptions = [];
+      this.carrierNameOptions = crr;
+    },
+    //收货地址模态窗口的框计算
+    selectAddressClick(){
+      this.Address.requestUrl = '/api/v1/ams/getAddressDeliveryAddress?apiId=255&con='+this.addressText;
+    },
+
+    //运输单价模态窗口的点击确定事件--------------
+    addAddressClick(){
+      //获取运输单价和运输单价ID
+      let map = {
+        place: this.place,
+        addressId: this.addressId
+      }
+      this.axios.post('/api/v1/ams/getPriceMap',map)
+      .then((res)=>{
+          if(res.data.data.priceId==-1){
+            this.selectionList[this.addressIndex].saleShipperAddressId = this.addressId;
+            this.selectionList[this.addressIndex].place = this.place;
+            this.selectionList[this.addressIndex].priceValue = '该区域尚未录入任何单价!';
+            this.selectionList[this.addressIndex].priceId = 0;
+            this.addAddressClickNext();
+          }else{
+            //赋值运输单价和运输单价ID
+            this.selectionList[this.addressIndex].saleShipperAddressId = this.addressId;
+            this.selectionList[this.addressIndex].place = this.place;
+            this.selectionList[this.addressIndex].priceValue = res.data.data.priceValue;//this.priceMap.priceValue
+            this.selectionList[this.addressIndex].priceId = res.data.data.priceId;//this.priceMap.priceId
+            this.addAddressClickNext();
+          }
+      });
+    },
+    //运输单价模态窗口的点击确定事件接续执行方法
+    addAddressClickNext(){
+      this.addressDrawer = false;
+      let arr = this.selectionList;
+      this.selectionList = [];
+      //统计被选中的运输单价数量
+      var count = 0;
+      arr.forEach((e)=>{
+        if(e.priceValue){
+          count++;
+        }
+        this.selectionList.push({
+          //销售订单与物资表主键
+          capacityId:e.capacityId,
+          capacityNumber:e.capacityNumber,
+          carrierName:e.carrierName,
+          carrierId:e.carrierId,
+          lineId:e.lineId,
+          lineName:e.lineName,
+          materialId:e.materialId,
+          materialName:e.materialName,
+          orderPlanWeight:e.orderPlanWeight,
+          saleDateOfReceipt:e.saleDateOfReceipt,
+          saleMaterialId:e.saleMaterialId,
+          saleOrderConsignee:e.saleOrderConsignee,
+          saleOrderConsigneeTel:e.saleOrderConsigneeTel,
+          saleShipperAddressId:e.saleShipperAddressId,
+          place:e.place,
+          priceValue:e.priceValue,
+          priceId:e.priceId,
+        })
+      })
+      console.log("this.selectionList222",this.selectionList)
+      //赋值单价已选数量
+      this.choosePriceCount = count;
+    },
+
+    //收货地址点击浏览的事件
+    select(index){
+      this.addressDrawer = true;
+      this.addressIndex = index ;
+    },
+    //收货地址模态框单选选中的事件
+    currentRadioChange2(val){
+      //若具体地址有值,清空值
+      if(this.place!=null){
+        this.place=null;
+      }
+      this.address = val.address,
+      this.addressId = val.addressId;
+      // this.priceMap = {};
+      // this.priceMap = val;
+    },
+    //派车数确定事件
+    AddTruckClick(){
+        if(!this.materialId){
+          this.$message.warning('请选择物资后,再点击!')
+        }else if(!this.lineId){
+          this.$message.warning('请选择线路后,再点击!')
+        }else if(!this.carNumber){
+          this.$message.warning('请先输入派车数!')
+        }else if(!this.uniteOrderPlanWeight){
+          this.$message.warning('请先输入每车数量!')
+        }else if(!this.uniteSaleDateOfReceipt){
+          this.$message.warning('请先输入截止日期!')
+        }else{
+          var i=0;
+          this.axios.get('/api/v1/uc/getRmsCarrierByCarrierSsoId?carrierSsoId='+getCookie("userId"))
+          .then((res)=>{
+            if(res.data.data==null){
+              this.receiveCarrierId = null;
+              this.receiveCarrierName = null;
+              this.$message.warning('该收货单位尚未注册为承运商!')
+            }else{
+              this.receiveCarrierId = res.data.data.carrierId;
+              this.receiveCarrierName = res.data.data.carrierName;
+            }
+            //生成下方表单单元格
+            for(i=0;i<this.carNumber;i++){
+            this.selectionList.push({
+            //销售订单与物资表主键
+            saleMaterialId:this.saleMaterialId,
+            capacityId:null,
+            carrierId:this.receiveCarrierId,
+            capacityNumber:null,
+            carrierName:this.receiveCarrierName,
+            materialName:this.materialName,
+            materialId:this.materialId,
+            orderPlanWeight:this.uniteOrderPlanWeight,
+            saleDateOfReceipt:this.uniteSaleDateOfReceipt,
+            lineName:this.lineName,
+            lineId:this.lineId,
+            priceValue:null,
+            priceId:null,
+            saleOrderConsignee:null
+            })
+            }
+          });
+        }   
+    },
+    //车辆模态框框计算
+    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.consigneeCompanyName = row.consigneeCompanyName;
+      this.saleOrderIsselfMention = row.saleOrderIsselfMention;
+      this.materialId = row.materialId;
+      this.materialName = row.materialName;
+      this.saleMaterialId = row.saleMaterialId;
+      this.saleOrderId = row.saleOrderId;
+      this.totalWeight = row.totalWeight;
+      this.number = row.number;
+    },
+    //线路表格的单选事件
+    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;
+      }
+    },
+    //线路表格的框计算
+    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;
+      }
+    }
+    .sendCar {
+      display: flex;
+      justify-content: center;
+      align-items: center;
+      .el-input {
+        width: 70px;
+        margin-left: 10px;
+        margin-right: 10px;
+        margin-top: 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>

+ 33 - 9
src/views/appoint/components/saleContract/saleOrder.vue

@@ -3,15 +3,35 @@
   <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="btnclick(0)">
-        <i class="el-icon-plus"></i>钢材订单新增
-      </el-button>
-      <el-button type="primary" @click="refresh">
-        <i class="el-icon-refresh"></i>刷新
-      </el-button>
+          <el-button type="primary" class="btn" @click="onclick">
+            <i class="el-icon-search"></i>查询
+          </el-button>
+          <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>
+      <!-- <el-form :inline="true">
+        <el-form-item>
+          <label class="el-form-item__label" style="width: auto;">时间段</label>
+            <el-date-picker
+            v-model="startDate"
+            type="date"
+            placeholder="开始日期">
+        </el-date-picker>
+        </el-form-item>
+        <el-form-item>
+          <label class="el-form-item__label" style="width: auto;">至</label>
+            <el-date-picker
+            v-model="endDate"
+            type="date"
+            placeholder="结束日期">
+        </el-date-picker>
+        </el-form-item>
+        <el-form-item>
+        </el-form-item>
+      </el-form> -->
     </div>
     <el-tabs v-model="activeName" @tab-click="handleClick">
       <!-- 已审批 -->
@@ -154,6 +174,7 @@
   </div>
 </template>
 <script>
+import { sjTime } from "@/utils/sharedJsFile";
 export default {
   name: "saleOrder",
   data() {
@@ -161,6 +182,8 @@ export default {
       // shiyHeigth:140,
       // isHeigth:true,
       // isKuang:false,
+      // startDate : new Date().getTime() - 3600 * 1000 * 24 * 3,
+      // endDate : new Date(),
       activeName: "four",
       input: "",
       option: {
@@ -182,6 +205,7 @@ export default {
         // 表格请求数据的地址
         requestUrl:
           "/api/v1/ams/getSaleOrderListBySaleCompanyes?apiId=409",
+          //&shipperId=2&startDate="+sjTime(this.startDate)+"&endDate="+sjTime(this.endDate)
       },
       
       //记录旧的row对象 (销售公司已审批)

+ 98 - 2
src/views/appoint/components/saleContract/saleOrderCoproduct.vue

@@ -6,6 +6,9 @@
       <el-button type="primary" class="btn" @click="onclick">
         <i class="el-icon-search"></i>查询
       </el-button>
+      <el-button type="primary" class="btn" @click="empower">
+        <i class="el-icon-check"></i>销售订单授权承运商
+      </el-button>
       <el-button type="primary" @click="refresh">
         <i class="el-icon-refresh"></i>刷新
       </el-button>
@@ -13,7 +16,7 @@
     <el-tabs v-model="activeName" @tab-click="handleClick">
       <!-- 已审批 -->
        <el-tab-pane label="已审批" name="four">
-        <dilTable v-bind.sync="option4" ref="table">
+        <dilTable v-bind.sync="option4" @selection-change="selectionChange" ref="table">
           <el-table-column fixed="right" label="操作" width="200">
             <template slot-scope="scope">
               <el-button
@@ -142,6 +145,27 @@
       </el-tab-pane>
       
     </el-tabs>
+    <!-- 承运商模态框 -->
+    <el-drawer
+      title="选择承运商"
+      :visible.sync="drawer"
+      direction="rtl"
+      size="40%"
+      :show-close="false"
+    >
+      <el-input placeholder="请输入内容" v-model="index"  
+      style="margin-top: 10px; margin-left: 20px;width:250px" clearable> </el-input
+      ><el-button type="primary" class="btn" @click="onclickCarrier" style="margin-left: 4px;">
+        <i class="el-icon-search"></i>查询
+      </el-button>
+      <!-- <el-button @click="open">取消</el-button> -->
+      <el-button type="primary" @click="selectMakeSure">确定</el-button>
+      <div class="tablecls">
+        <!-- 查询所有的承运商 -->
+        <dilTable v-bind.sync="carrier" @radio-change="currentRadioChange">
+        </dilTable>
+      </div>
+    </el-drawer>
   </div>
 </template>
 <script>
@@ -150,7 +174,11 @@ export default {
   data() {
     return {
       activeName: "four",
+      drawer: false,
       input: "",
+      index: "",
+      carrierId: null,
+      carrierName: null,
       option: {
         // 表格请求数据的地址
         requestUrl:
@@ -170,8 +198,14 @@ export default {
         // 表格请求数据的地址
         requestUrl:
           "/api/v1/ams/getSaleOrderListBySaleCompanyes?apiId=409",
+          selectionType: "select",
       },
-      
+      carrier: {
+					requestUrl: "",
+					selectionType: "radio",
+			},
+      mapList: [],
+      mapItemList:[],
       //记录旧的row对象 (销售公司已审批)
       oldRow: "",
       //记录上一个展开的点击次数,单数为展开状态,复数为闭合状态 (销售公司已审批)
@@ -236,6 +270,68 @@ export default {
         this.option4.requestUrl = "/api/v1/ams/getSaleOrderListBySaleCompanyes?apiId=409&con="+this.input;      
       }
     },
+    //模糊查询承运商
+    onclickCarrier(){
+      this.carrier.requestUrl =
+      "/api/v1/uc/getCarrierListByLike?apiId=412&index=" + this.index + "&i=" + new Date();
+    },
+    selectionChange(selection) {
+      this.mapList = selection;
+    },
+    currentRadioChange(row) {
+			this.carrierId = row.carrierId,
+      this.carrierName= row.carrierName
+		},
+    empower(){
+      if(this.mapList.length==0){
+        this.$message.warning("请先选择至少一个销售订单");
+      }else{
+        this.carrier.requestUrl = "/api/v1/uc/getCarrierListByLike?apiId=412&i="+new Date();
+        this.drawer = true;
+      }  
+    },
+    selectMakeSure(){
+      this.index = null;
+      this.drawer = false;
+      this.$confirm("是否确认授权选中的销售订单给承运商:("+this.carrierName+")", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning",
+        center: true,
+      })
+        .then(() => {
+          this.mapList.forEach((item) => {
+          //初始化mapItem
+          var mapItem={
+                  //销售订单id
+                  saleOrderId : 0,
+              };
+          mapItem.saleOrderId=item.saleOrderId;
+          this.mapItemList.push(mapItem);
+          });
+           //初始化传递的参数
+          let mapValue = {
+            saleOrderIds : this.mapItemList,
+            carrierId : this.carrierId
+          }
+          this.axios
+            .post(
+              "/api/v1/ams/saleOrderEmpowerCarrier",mapValue
+            ).then((res) => {
+              if(res.data.code=='0'){
+                this.$message({ type: "success",message: "授权成功!",});
+                this.$router.go(0);
+              }
+            });
+        })
+        .catch(() => {
+          this.$message({
+            type: "info",
+            message: "取消授权!",
+          });
+        });
+      
+    },
     seeclick(saleOrderId) {
       this.$router.push("/saleOrderDetail/" + saleOrderId);
     },

+ 173 - 0
src/views/appoint/components/saleContract/saleOrderCoproductCarrier.vue

@@ -0,0 +1,173 @@
+<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 label="已审批" name="four">
+        <dilTable v-bind.sync="option4" ref="table">
+          <el-table-column fixed="right" label="操作" width="200">
+            <template slot-scope="scope">
+              <el-button
+                @click="coproductSendClick(scope.row.saleOrderId)"
+                type="text"
+                size="small"
+                >副产品派车</el-button
+              >
+              <el-button
+                @click="detailclick(scope.row)"
+                type="text"
+                size="small"
+                >物资详情</el-button
+              >
+            </template>
+          </el-table-column>
+          <!-- 物资详情抽屉 -->
+        <el-table-column type="expand" width="1">
+          <template slot-scope="props">
+            <el-form label-position="center" inline class="demo-table-expand">
+              <div v-if="false">{{ props }}</div>
+              <div>
+                <el-table :data="tableData" border >
+                  <el-table-column
+                    v-for="(item, i) in tableHead"
+                    :key="i"
+                    :prop="item.prop"
+                    :label="item.label"
+                    :width="item.width"
+                  ></el-table-column>
+                </el-table>
+              </div>
+            </el-form>
+          </template>
+        </el-table-column>
+        </dilTable>
+      </el-tab-pane>
+    </el-tabs>
+  </div>
+</template>
+<script>
+import { getCookie } from "@/utils/util.js";
+export default {
+  name: "saleOrder",
+  data() {
+    return {
+      activeName: "four",
+      input: "",
+      carrierId: null,
+      carrierName: null,
+      option4: {
+        // 表格请求数据的地址
+        requestUrl:
+          "",
+      },
+      //记录旧的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.initUrl();
+  },
+  methods: {
+    initUrl(){
+        if (getCookie("orgCode") == "chengyunshang") {
+        this.option4.requestUrl =
+          "/api/v1/ams/getSaleOrderListByCarrierSsoId?apiId=409&carrierSsoId=" +
+          getCookie("userId");
+      } else {
+        this.option4.requestUrl =
+          "/api/v1/ams/getSaleOrderListByCarrierSsoId?apiId=409";
+      }
+    },
+    refresh(){
+      this.$router.go(0);
+    },
+    handleClick(tab, event) {
+      console.log(tab, event);
+    },
+    onclick() {
+      if(this.activeName == "four"){
+        this.option4.requestUrl = "/api/v1/ams/getSaleOrderListBySaleCompanyes?apiId=409&con="+this.input;      
+      }
+    },
+    coproductSendClick(saleOrderId){
+      this.$router.push("/addSaleOrderCoproductSendCarrier/" + saleOrderId);
+    },
+    // -------查看物资详情 (已审批)
+    detailclick(row) {
+      // 记录重复点击次数
+      if (this.oldRow === row) {
+        this.oldRowCount += 1;
+      }
+      // 切换当前详情表
+      this.$refs.table.toggleRowExpansion(row);
+      // 打开前关闭上一个详情表
+      if (this.oldRow != "") {
+        if (this.oldRow != row) {
+          if (this.oldRowCount % 2 === 1) {
+            this.$refs.table.toggleRowExpansion(this.oldRow);
+          } else {
+            this.oldRowCount = 1;
+          }
+        } else {
+          this.oldRow = null;
+          return;
+        }
+      }
+      // 重置上一个点击对象
+      this.oldRow = row;
+      // 根据销售订单id查询物资信息
+      this.axios
+        .post("/api/v1/ams/getSaleMaterialList?saleOrderId=" +row.saleOrderId)
+        .then((res) => {
+          this.tableData = res.data.data;
+        });
+    },
+  },
+};
+</script>
+<style lang='scss' scoped>
+.salePlan {
+  .top {
+    padding: 1.25rem 0.375rem;
+    .el-input {
+      width: 20%;
+      margin-right: 1.25rem;
+    }
+  }
+}
+</style>

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

@@ -34,6 +34,7 @@ import addSaleOrder from '../components/saleContract/addSaleOrder.vue'
 import addSaleOrderArrange from '../components/saleContract/addSaleOrderArrange.vue'
 import addSaleOrderSend from '../components/saleContract/addSaleOrderSend.vue'
 import addSaleOrderCoproductSend from '../components/saleContract/addSaleOrderCoproductSend.vue'
+import addSaleOrderCoproductSendCarrier from '../components/saleContract/addSaleOrderCoproductSendCarrier.vue'
 import addSalePlan from '../components/saleContract/addSalePlan.vue'
 import addSalePlanDetail from '../components/saleContract/addSalePlanDetail.vue'
 import addTransportPrice from '../components/saleContract/addTransportPrice.vue'
@@ -49,6 +50,7 @@ import saleCokeInward from '../components/saleContract/saleCokeInward.vue'
 import saleOrder from '../components/saleContract/saleOrder.vue'
 import saleOrderArrange from '../components/saleContract/saleOrderArrange.vue'
 import saleOrderCoproduct from '../components/saleContract/saleOrderCoproduct.vue'
+import saleOrderCoproductCarrier from '../components/saleContract/saleOrderCoproductCarrier.vue'
 import saleOrderDetail from '../components/saleContract/saleOrderDetail.vue'
 import saleOrderDetailApproved from '../components/saleContract/saleOrderDetailApproved.vue'
 import saleOrderMaterial from '../components/saleContract/saleOrderMaterial.vue'
@@ -94,6 +96,7 @@ const constantRouterMap = [
       {path: 'addSaleOrder', name: 'addSaleOrder', meta: {code: 'xtpzgl-jggl'}, component: addSaleOrder},
       {path: 'addSaleOrderArrange/:saleOrderId', name: 'addSaleOrderArrange', meta: {code: 'xtpzgl-jggl'}, component: addSaleOrderArrange},
       {path: 'addSaleOrderCoproductSend/:saleOrderId', name: 'addSaleOrderCoproductSend', meta: {code: 'xtpzgl-jggl'}, component: addSaleOrderCoproductSend},
+      {path: 'addSaleOrderCoproductSendCarrier/:saleOrderId', name: 'addSaleOrderCoproductSendCarrier', meta: {code: 'xtpzgl-jggl'}, component: addSaleOrderCoproductSendCarrier},
       {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},
@@ -111,6 +114,7 @@ const constantRouterMap = [
       {path: 'saleOrder', name: 'saleOrder', meta: {code: 'xtpzgl-yhgl'}, component: saleOrder},
       {path: 'saleOrderArrange', name: 'saleOrderArrange', meta: {code: 'xtpzgl-yhgl'}, component: saleOrderArrange},
       {path: 'saleOrderCoproduct', name: 'saleOrderCoproduct', meta: {code: 'xtpzgl-yhgl'}, component: saleOrderCoproduct},
+      {path: 'saleOrderCoproductCarrier', name: 'saleOrderCoproductCarrier', meta: {code: 'xtpzgl-yhgl'}, component: saleOrderCoproductCarrier},
       {path: 'saleOrderDetail/:saleOrderId', name: 'saleOrderDetail', meta: {code: 'xtpzgl-yhgl'}, component: saleOrderDetail},
       {path: 'saleOrderDetailApproved/:saleOrderId', name: 'saleOrderDetailApproved', meta: {code: 'xtpzgl-yhgl'}, component: saleOrderDetailApproved},
       {path: 'saleOrderUpdateLog/:saleOrderId', name: 'saleOrderUpdateLog', meta: {code: 'xtpzgl-yhgl'}, component: saleOrderUpdateLog},

+ 0 - 1
src/views/sale/components/transport_appointment/directionalDispatch.vue

@@ -222,7 +222,6 @@ export default {
     //监听模态框点击事件
     currentRadioChange1(row) {
       this.carrierId = row.carrierId;
-      console.log("this.carrierId",this.carrierId)
     },
     //模糊查询承运商
     onclick(){

+ 5 - 2
src/views/sale/components/transport_excute/loadTruckResult.vue

@@ -15,6 +15,7 @@
   </div>
 </template>
 <script>
+import { getCookie } from "@/utils/util.js";
 export default {
   data() {
     return {
@@ -22,14 +23,16 @@ export default {
       option: {
         // 表格请求数据的地址
         requestUrl:
-          "/api/v1/tms/getAllLoadResult?apiId=221&status=0&orderType=2",
+          "/api/v1/tms/getAllLoadResult?apiId=221&status=0&orderType=2&userId="+
+          getCookie("userId"),
       },
     };
   },
   methods: {
     onclick() {
       this.option.requestUrl =
-        "/api/v1/tms/getAllLoadResult?apiId=221&status=0&orderType=2&con=" + this.inputText;
+        "/api/v1/tms/getAllLoadResult?apiId=221&status=0&orderType=2&userId="+
+          getCookie("userId") + "&con=" + this.inputText;
     },
   },