ymy 1 жил өмнө
parent
commit
9c6af30b08

+ 10 - 1
src/benyun/components/byArea/byArea.vue

@@ -117,6 +117,11 @@ export default class ByArea extends VueViews {
   }
   mounted(){
     this.getProvince();
+    if(this.attrs.broadcastConfig){
+      (this.$root as any).eventHub.$on(this.attrs.broadcastConfig.name,(data:any) => {
+        this.setValue(data)
+      });
+    }
   }
   setAllValue(data:any){
     if(this.attrs.province){
@@ -287,7 +292,11 @@ export default class ByArea extends VueViews {
     return obj;
   }
   onChange(){
-    this.$emit('onChange',this.getValue())
+    let data = this.getValue()
+    this.$emit('onChange', data)
+    if(this.attrs.broadcastName){
+      (this.$root as any).eventHub.$emit(this.attrs.broadcastName, data)
+    }
   }
   //获取省数据
   getProvince(){

+ 35 - 3
src/benyun/components/bySelect/bySelect.vue

@@ -32,6 +32,12 @@
       clearable:true/false  //是否清空
       placeholder:''  //占位符
       requestFormat:''
+      retConfig:{'id':'mid'} //字段转换
+      broadcastName:''  //广播
+      broadcastConfig:{ //接收广播
+        name:'' //接收广播名称,
+        dataHandle:Function  //回调函数
+      }
     },
     request:{}
   }
@@ -81,6 +87,12 @@ export default class BySelect extends VueViews {
         this.setOptions(this.attrs.data)
       }
     })
+    if(this.attrs.broadcastConfig){
+      (this.$root as any).eventHub.$on(this.attrs.broadcastConfig.name,(data:any) => {
+        let v = this.attrs.broadcastConfig.dataHandle(data)
+        this.setValue(v)
+      });
+    }
   }
 
   setValue(data:any){
@@ -95,7 +107,24 @@ export default class BySelect extends VueViews {
   }
 
   getValue(){
-    return (this as any).$lodash.cloneDeep(this.value);
+    if(this.attrs.retConfig){
+      let obj:any = {}
+      let data:any = {}
+      for(const item of this.options){
+        if (item[this.itemValue] === this.value) {
+          data = item;
+          break
+        }
+      }
+      for(const key in this.attrs.retConfig){
+        obj[this.attrs.retConfig[key]] = data[key]
+      }
+      return obj
+    }else{
+      let v = this.attrs.valueType == 'number' ? Number(this.value) : (this as any).$lodash.cloneDeep(this.value);
+      return v;
+    }
+    
   }
 
   setOptions(data:Array<any>){
@@ -107,8 +136,11 @@ export default class BySelect extends VueViews {
   }
 
   onChange(){
-    let v = this.attrs.valueType == 'number' ? Number(this.value) : this.value;
-    this.$emit('onChange',v);
+    let data = this.getValue()
+    this.$emit('onChange', data);
+    if(this.attrs.broadcastName){
+      (this.$root as any).eventHub.$emit(this.attrs.broadcastName, data)
+    }
   }
 
   // 清空数据

+ 0 - 1
src/views/audit/depots/index.vue

@@ -510,7 +510,6 @@
 		confirm2() {
 			(this as any).$refs.addFormId2.validate().then(() => {
 				let query = (this as any).$refs.addFormId2.getValue();
-				console.log('表单参数 ==> ', query);
 				query.storehouseId = this.tableData.id;
 				query.idDelete = 0;
 				this.dialogFormVisible2 = false;

+ 23 - 13
src/views/oms/order/components/addOrder.vue

@@ -13,7 +13,7 @@
           <el-step title="4.等供销商|外仓发货"></el-step>
           <el-step title="5.已发货"></el-step>
         </el-steps>
-        <div class="other" v-else>{{ stepTypeName(orderValue.status) }}</div>
+        <div class="other" v-if="stepTypeName(orderValue.status)">{{ stepTypeName(orderValue.status) }}</div>
       </div>
       <el-collapse v-model="activeNames">
         <el-collapse-item title="基本信息" name="1" class="add-order-item">
@@ -49,7 +49,7 @@
         <el-collapse-item title="订单支付情况" name="4" class="add-order-item" v-if="orderValue.id">
           <div class="pay-row" v-if="orderValue.status != 'Split' && orderValue.status != 'Merged' && orderValue.status != 'Cancelled'">
             <el-button type="text" v-if="!orderValue.pays || orderValue.pays.length == 0">快速支付</el-button>
-            <div class="add-pay-btn">
+            <div class="add-pay-btn" v-if="orderValue.status !== 'Delivering'  && orderValue.status !== 'Sent'">
               <el-button type="text" v-if="!showPay" @click="showPay = true">添加手工支付</el-button>
               <el-button v-else icon="el-icon-close" size="mini" circle @click="showPay = false"></el-button>
             </div>
@@ -64,7 +64,7 @@
               <el-descriptions-item label="单号">{{item.outerPayId}}</el-descriptions-item>
               <el-descriptions-item label="金额">{{item.amount}}</el-descriptions-item>
               <el-descriptions-item label="支付日期">{{item.payDate}}</el-descriptions-item>
-              <el-descriptions-item label="状态">
+              <el-descriptions-item label="状态" v-if="orderValue.status !== 'Delivering' && orderValue.status !== 'Sent'">
                 <div class="payHandle" v-if="item.status == 'WaitConfirm'">
                   <span @click="payStatusHandle(item,'Confirmed')">审核通过</span>
                   <span @click="payStatusHandle(item,'Invalid')">作废</span>
@@ -80,7 +80,7 @@
         </el-collapse-item>
         <el-collapse-item title="商品订单" name="3" class="add-order-item">
           <div class="addProductTool">
-            <by-tool :propConfig="toolConfig" ref="tool"></by-tool>
+            <by-tool :propConfig="toolConfig" ref="tool" v-if="orderValue.status !== 'Delivering' && orderValue.status !== 'Sent'"></by-tool>
             <div class="preferential">
               <div class="pre-title">抵扣金额<i class="el-icon-info" title="支持输入数字和百分比。若输入百分比,将自动计算折扣金额=商品成交总金额*百分比(举例:打9折,请输入10%),
                 只在订单创建时计算一次,在订单创建后修改商品价格不会自动计算,运费不参与折扣。"></i>:</div>
@@ -197,7 +197,7 @@ export default class AddOrder extends Vue {
   orderValue:any={}; //新增订单值
   radioPay=1;
   stepActive:number=0;
-  stepCon=['WaitPay','WaitConfirm','WaitFConfirm','WaitOuterSent','Sent']
+  stepCon=['WaitPay','WaitConfirm','WaitFConfirm','WaitOuterSent','Sent','Delivering']
   activeNames:Array<any> =['1','2','3','4','5','save'];
   sourceFrom:any={
     'ERP':'手工下单',
@@ -492,7 +492,7 @@ export default class AddOrder extends Vue {
         }
       },{
         span:6,
-        label:'电话',
+        label:'固定电话',
         prop:'receiverPhone',
         component:'by-input',
         compConfig:{
@@ -1095,13 +1095,16 @@ export default class AddOrder extends Vue {
       if(this.orderValue.status == 'Merged' || this.orderValue.status == 'Cancelled'){
         (this.$refs.tool as any).setTool([]);
       }else{
-        (this.$refs.tool as any).setCustomTools([{
-          name: '商品编辑', icon: 'el-icon-edit', event:{
-            click:()=>{
-              this.editProduct()
+        if(this.$refs.tool) {
+          (this.$refs.tool as any).setCustomTools([{
+            name: '商品编辑', icon: 'el-icon-edit', event:{
+              click:()=>{
+                this.editProduct()
+              }
             }
-          }
-        }])
+          }])
+        }
+        
 
       }
       
@@ -1286,6 +1289,13 @@ export default class AddOrder extends Vue {
   }
   //删除商品
   deletaProduct(row:any){
+    if (this.orderValue.status == 'Delivering' || this.orderValue.status == 'Sent') {
+      this.$message({
+        message:'该订单已发货不能进行修改!',
+        type:'warning'
+      })
+      return
+    }
     let n = row.isGift == 1 ? '赠品' : '商品';
     this.$confirm('此操作将删除'+n+'“'+row.name+'”, 是否继续?', '提示', {
       confirmButtonText: '确定',
@@ -1531,7 +1541,7 @@ export default class AddOrder extends Vue {
   width: 100%;
   padding-bottom: 8px;
   display: flex;
-  justify-content: space-between;
+  justify-content: flex-end;
   .preferential{
     width: 240px;
     flex-shrink: 0;

+ 2 - 0
src/views/oms/order/components/batchbyOneModal.vue

@@ -104,6 +104,8 @@ export default class BatchbyOneModal extends Vue {
       for(const item of data){
         const requestId =  new Date().getTime() + this.getUuid()
         let obj:any={
+          tmsBusinessMan: (this as any).$store.getters.userInfo.userName,
+          tmsBusinessPhone: (this as any).$store.getters.userInfo.phonenumber,
           requestId:requestId,
           omsOrderIds:item.id,
           tmsUnloadingProvince:item.receiverProvince,

+ 2 - 0
src/views/oms/order/components/carpoolModal.vue

@@ -64,6 +64,8 @@ export default class CarpoolModal extends Vue {
   setValue(data:Array<any>){
     this.data =data;
     this.value={};
+    this.value.tmsBusinessMan = (this as any).$store.getters.userInfo.userName;
+    this.value.tmsBusinessPhone = (this as any).$store.getters.userInfo.phonenumber;
     this.value.subItem=[];
     this.checked = false;
     const requestId =  new Date().getTime() + this.getUuid();

+ 54 - 34
src/views/oms/order/components/deliveryGoodsInfo.vue

@@ -132,7 +132,7 @@
         <div class="g-cont">
           <div class="g-total">
             <span class="name-label">重量合计:</span>
-            <span class="total-num">{{totalWeight}}kg</span>
+            <span class="total-num">{{totalWeight}}g</span>
           </div>
         </div>
       </div>
@@ -276,6 +276,47 @@ export default class DeliveryGoodsInfo extends Vue {
           }
         }
       }],
+      [{
+        label:'仓库',
+        prop:'storeHouseId',
+        component:'warehouse',
+        compConfig:{
+          attr:{
+            placeholder:'请选择仓库',
+            clearable:true,
+            retConfig:{
+              tmsShipmentProvince: 'province',
+              tmsShipmentProvinceNo:'provinceCode',
+              tmsShipmentCity: 'city',
+              tmsShipmentCityNo: 'cityCode',
+              tmsShipmentRegion: 'region',
+              tmsShipmentRegionNo: 'regionCode',
+              tmsShipmentStreetNo: 'streetCode',
+              tmsShipmentStreet: 'street',
+              storeHouseId: 'id'
+            }
+          }
+        }
+      },{
+        label:'运输方式',
+        prop:'tmsTransportMethod',
+        component:'by-select',
+        compConfig:{
+          attr:{
+            clearable:true,
+            data: [{
+              label:'整车',
+              value:'整车'
+            },{
+              label:'零担',
+              value:'零担'
+            },{
+              label:'短驳',
+              value:'短驳'
+            }]
+          }
+        }
+      }],
       [{
         label:'发货人',
         prop:'tmsShipmentConsignor',
@@ -309,7 +350,15 @@ export default class DeliveryGoodsInfo extends Vue {
             county:'tmsShipmentRegion',  //县/区
             countyCode:'tmsShipmentRegionNo',   //县/区编码
             townCode:'tmsShipmentStreetNo',
-            town:'tmsShipmentStreet'
+            town:'tmsShipmentStreet',
+            broadcastConfig:{
+              name: 'warehouseChange',
+              // dataHandle: (data:any) => {
+              //   let v = (this as any).$lodash.cloneDeep(data)
+              //   delete v.storeHouseId
+              //   return v
+              // }
+            }
           }
         }
       }],
@@ -391,36 +440,6 @@ export default class DeliveryGoodsInfo extends Vue {
           }
         }
       }],
-      [{
-        label:'仓库',
-        prop:'storeHouseId',
-        component:'warehouse',
-        compConfig:{
-          attr:{
-            placeholder:'请选择仓库',
-            clearable:true
-          }
-        }
-      },{
-        label:'运输方式',
-        prop:'tmsTransportMethod',
-        component:'by-select',
-        compConfig:{
-          attr:{
-            clearable:true,
-            data: [{
-              label:'整车',
-              value:'整车'
-            },{
-              label:'零担',
-              value:'零担'
-            },{
-              label:'短驳',
-              value:'短驳'
-            }]
-          }
-        }
-      }],
       [{
         span:12,
         label:'出库方式',
@@ -481,8 +500,8 @@ export default class DeliveryGoodsInfo extends Vue {
     this.$emit('editState',true)
   }
   show(){
-    this.value.tmsBusinessMan = (this as any).$store.getters.userInfo.userName;
-    this.value.tmsBusinessPhone = (this as any).$store.getters.userInfo.phonenumber;
+    // this.value.tmsBusinessMan = (this as any).$store.getters.userInfo.userName;
+    // this.value.tmsBusinessPhone = (this as any).$store.getters.userInfo.phonenumber;
     this.$nextTick(()=>{
       if(this.$refs.form){
         (this.$refs.form as any).clearValue();
@@ -498,6 +517,7 @@ export default class DeliveryGoodsInfo extends Vue {
     if(this.$refs.form){
       (this.$refs.form as any).validate().then(()=>{
         this.value = (this.$refs.form as any).getValue();
+        console.log('asaasss', this.value)
         if(!this.value.tmsShipmentCity){
           this.$message({
             message:'请选择发货城市!',

+ 2 - 2
src/views/oms/order/components/expressDeliveryModal.vue

@@ -40,7 +40,7 @@
             <div class="g-cont">
               <div class="g-total">
                 <span class="name-label">重量合计:</span>
-                <span class="total-num">{{totalWeight}}kg</span>
+                <span class="total-num">{{totalWeight}}g</span>
               </div>
             </div>
           </div>
@@ -246,7 +246,7 @@ export default class ExpressDeliveryModal extends Vue {
             total = multiply(Number(i.qty),Number(i.price))
           }
           if(Number(i.weight)){
-            this.totalWeight = Number(i.weight)
+            this.totalWeight = Number(add(this.totalWeight, Number(i.weight)))
           }
           this.value.subItem.push({
             requestId:requestId,

+ 1 - 1
src/views/oms/order/components/questModel.vue

@@ -159,7 +159,7 @@ export default class QuestModel extends Vue {
         }).catch(()=>{
           this.load = false;
         })
-    })
+    }).catch(()=>{})
   }
   show(){
     let height = (document.getElementById('quest-table') as any).parentNode.offsetHeight;

+ 2 - 46
src/views/oms/order/index.vue

@@ -52,57 +52,13 @@
               <i class="el-icon-info" title="附加订单时间限制,许多仅限待发货订单的查询条件将自动取消限制"></i>
             </div>
             <filter-date @change="onChangeTime" ref="searchCom07" />
-            <div>付款后几小时未发货:</div>
+            <!-- <div>付款后几小时未发货:</div>
             <div class="order-time">
               <vxe-input v-model="value.deliveryHours" class="deliveryHours-input" clearable type="number" size="mini"></vxe-input>
               <i class="el-icon-info" title="单位小时,不支持小数位。如果数值大于0,强制为未发货订单。同时勾选店铺可以实现不同平台的未发货时效查询"></i>
             </div>
-            <filterMinMax title="剩余发货时间(小时)" ref="searchCom08" minField="deliveryRemainingMin" maxField="deliveryRemainingMax" @change="parameChange" />
+            <filterMinMax title="剩余发货时间(小时)" ref="searchCom08" minField="deliveryRemainingMin" maxField="deliveryRemainingMax" @change="parameChange" /> -->
           </el-collapse-item>
-          <!-- <el-collapse-item name="info">
-            <template slot="title">
-              商品信息
-              <i class="header-icon el-icon-info" 
-                title="包含商品信息,排除商品信息,商品名称包含关键字,颜色规则包含关键字,默认仅搜索前15天的订单,如需搜索15天前的订单,请在【订单时间】加上时间条件。">
-              </i>
-            </template>
-            <div>
-              <el-checkbox v-model="value.excludeRefund">不包括退款成功商品</el-checkbox>
-            </div>
-            <div>
-              <el-checkbox v-model="value.excludeSend">不包括发货成功商品</el-checkbox>
-            </div>
-            <el-select v-model="value.includeSkuType" placeholder="请选择包含的商品" size="mini" class="orderSelect">
-              <el-option
-                v-for="item in includeSkuTypeOptions"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value">
-              </el-option>
-            </el-select>
-            <order-product />
-            <filter-input title="商品名称" @input="onChange($event,'itemNameKeyword')" />
-            <filter-input title="颜色规格" @input="onChange($event,'itemStyleKeyword')" />
-            <filterMinMax title="数量范围" minField="qtyMin" maxField="qtyMax" />
-            <filterMinMax title="金额范围" minField="amountMin" maxField="amountMax" />
-            <filterMinMax title="重量范围" minField="weightMin" maxField="weightMax" />
-            <div class="info-row">
-              <el-checkbox v-model="value.onlyItemInfo">以上信息均为指定的商品</el-checkbox>
-              <i class="el-icon-info" 
-                title="如果指定了商品信息,则数量金额重量均为指定商品的数量金额重量,如果没有指定任何商品信息,则为整个订单的信息。">
-              </i>
-            </div>
-            <filterMinMax title="优惠金额范围" minField="freeAmountMin" maxField="freeAmountMax" />
-            <el-select v-model="value.excludeSkuType" placeholder="请选择排除的商品" size="mini" class="orderSelect">
-              <el-option
-                v-for="item in excludeSkuTypeOptions"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value">
-              </el-option>
-            </el-select>
-            <order-product />
-          </el-collapse-item> -->
           <order-checkbox title="平台订单状态" ref="searchCom09" keyName="shopStatusList" :options="shopStatusListOption" noLimit @checkboxChange="onChange($event,'shopStatusList')" />
           <order-radio title="线下备注" ref="searchCom10" keyName="noteFilter" :options="noteFilterOptions" noLimit @radioChange="onChange($event,'noteFilter')">
             <template v-slot:noteContent>