瀏覽代碼

Merge branch 'master' of http://47.107.53.207:3000/ymy/oms

AlanWong 2 年之前
父節點
當前提交
7a0e70e86e

+ 16 - 0
src/api/omsOrder.ts

@@ -152,4 +152,20 @@ export function setCreateUser(data:any){
 		method:'POST',
 		method:'POST',
 		data:data
 		data:data
 	})
 	})
+}
+//设置标签
+export function setLabels(data:any){
+	return request({
+		url:'/omsOrder/omsOrder/setLabels',
+		method:'POST',
+		data:data
+	})
+}
+//批量添加赠品
+export function addGift(data:any){
+	return request({
+		url:'/omsOrder/omsOrder/addGift',
+		method:'POST',
+		data:data
+	})
 }
 }

+ 1 - 1
src/benyun/components/byInput/byInput.vue

@@ -1,7 +1,7 @@
 <template>
 <template>
   <el-input v-if="attrs.type == 'textarea'" :type="attrs.type" v-model="value" @input="onChange" :rows="attrs.rows" :show-word-limit="attrs.showWordLimit" :show-password="attrs.showPassword" :placeholder="placeholder"
   <el-input v-if="attrs.type == 'textarea'" :type="attrs.type" v-model="value" @input="onChange" :rows="attrs.rows" :show-word-limit="attrs.showWordLimit" :show-password="attrs.showPassword" :placeholder="placeholder"
   :maxlength="attrs.maxlength" :minlength="attrs.minlength" :clearable="attrs.clearable" :disabled="attrs.disabled" :prefix-icon="attrs.prefixIcon"
   :maxlength="attrs.maxlength" :minlength="attrs.minlength" :clearable="attrs.clearable" :disabled="attrs.disabled" :prefix-icon="attrs.prefixIcon"
-  :suffix-icon="attrs.suffixIcon" :readonly="attrs.readonly"></el-input>
+  :suffix-icon="attrs.suffixIcon" :readonly="attrs.readonly" :autosize="attrs.autosize"></el-input>
   <vxe-input 
   <vxe-input 
     v-else
     v-else
     v-model="value"
     v-model="value"

+ 5 - 1
src/views/oms/order/components/addOrder.vue

@@ -262,7 +262,8 @@ export default class AddOrder extends Vue {
         component:'by-input',
         component:'by-input',
         compConfig:{
         compConfig:{
           attr:{
           attr:{
-            readonly:true
+            placeholder:'请输入业务员',
+            // readonly:true
           }
           }
         }
         }
       }],
       }],
@@ -320,6 +321,7 @@ export default class AddOrder extends Vue {
         label:'线下备注',
         label:'线下备注',
         prop:'note',
         prop:'note',
         component:'by-input',
         component:'by-input',
+        colspan:2,
         compConfig:{
         compConfig:{
           attr:{
           attr:{
             placeholder:'请输入线下备注',
             placeholder:'请输入线下备注',
@@ -331,6 +333,7 @@ export default class AddOrder extends Vue {
         label:'买家留言',
         label:'买家留言',
         prop:'buyerMessage',
         prop:'buyerMessage',
         component:'by-input',
         component:'by-input',
+        colspan:2,
         compConfig:{
         compConfig:{
           attr:{
           attr:{
             placeholder:'请输入买家留言',
             placeholder:'请输入买家留言',
@@ -342,6 +345,7 @@ export default class AddOrder extends Vue {
         label:'卖家备注',
         label:'卖家备注',
         prop:'remark',
         prop:'remark',
         component:'by-input',
         component:'by-input',
+        colspan:4,
         compConfig:{
         compConfig:{
           attr:{
           attr:{
             placeholder:'请输入卖家备注',
             placeholder:'请输入卖家备注',

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

@@ -35,7 +35,7 @@
     <el-dropdown split-button type="text" class="dropdown" @command="handleCommand">
     <el-dropdown split-button type="text" class="dropdown" @command="handleCommand">
       修改
       修改
       <el-dropdown-menu slot="dropdown">
       <el-dropdown-menu slot="dropdown">
-        <el-dropdown-item command="updateGift">添加赠品</el-dropdown-item>
+        <el-dropdown-item command="addGift">添加赠品</el-dropdown-item>
         <el-dropdown-item command="updateFreight">改运费</el-dropdown-item>
         <el-dropdown-item command="updateFreight">改运费</el-dropdown-item>
         <el-dropdown-item command="updateTag">改标签</el-dropdown-item>
         <el-dropdown-item command="updateTag">改标签</el-dropdown-item>
         <el-dropdown-item command="updateRmk">改备注</el-dropdown-item>
         <el-dropdown-item command="updateRmk">改备注</el-dropdown-item>

+ 131 - 0
src/views/oms/order/components/tabModal.vue

@@ -0,0 +1,131 @@
+<template>
+  <vxe-modal v-model="value" id="tagModal" width="400" v-loading="load" @hide="hide" height="350" show-footer title="修改标签">
+    <by-form :propConfig="config" ref="form">
+      <template v-slot:actionType="{value}">
+        <el-switch
+          v-model="value.actionType"
+          active-text="移除"
+          inactive-text="新增"
+          :inactive-value="1"
+          :active-value="2">
+        </el-switch>
+      </template>
+    </by-form>
+    <template #footer>
+      <div class="btn">
+        <el-button type="primary" size="small" @click="btn">确定</el-button>
+      </div>
+    </template>
+  </vxe-modal>
+</template>
+<script lang="ts">
+import { Component, Prop, Vue, Watch } from "vue-property-decorator";
+import { setLabels } from '@/api/omsOrder'
+@Component({components:{}})
+export default class TabModal extends Vue {
+  value=false;
+  load=false;
+  billValue:Array<any>=[];
+  config:any={
+    attr:{
+      rules:{
+        labels: [
+          { required: true, message: '标签不能为空!', trigger: 'input' }
+        ]
+      }
+    },
+    columns:[
+      [{
+        label:'标签',
+        prop:'labels',
+        labelWidth:'80px',
+        component:'by-input',
+        compConfig:{
+          attr:{
+            type:'textarea',
+            rows:3,
+            placeholder:'每行一个标签,换行输入,每个标签字符长度不超过10',
+            autosize:{
+              maxRows:19
+            }
+          }
+        }
+      }],
+      [{
+        label:'',
+        prop:'actionType',
+        labelWidth:'80px',
+        slot:true
+      }]
+    ]
+  }
+  hide(){
+    (this.$refs.form as any).clearValidate();
+    (this.$refs.form as any).clearValue();
+  }
+  btn(){
+    (this.$refs.form as any).validate().then(()=>{
+      let data = (this.$refs.form as any).getValue();
+      let newV=data.labels.split('\n');
+      let msg1 = '';
+      let msg2='';
+      for(const item of newV){
+        if(item && item.length >10){
+          if(msg1){
+            msg1 = msg1 + ',' + item
+          }else{  
+            msg1 = item
+          }
+        }
+      }
+      let i1=-1;
+      for(const item1 of newV){
+        let i2=-1;
+        i1++;
+        for(const item2 of newV){
+          i2++;
+          if(i1 != i2 && item1 == item2){
+            if(msg2){
+              msg2 = msg2 + ',' + item2
+            }else{  
+              msg2 = item2
+            } 
+            break
+          }
+        }
+      }
+      let msg = '';
+      if(msg1){
+        msg = '标签“'+msg1 + '”不能超过10个字符;'
+      }
+      if(msg2){
+        msg = msg + '标签“'+msg2 + '”重复输入;'
+      }
+      if(msg){
+        this.$message(msg)
+        return
+      }
+      data.labels = newV;
+      data.idList = this.billValue;
+      this.load = true
+      setLabels(data).then(()=>{
+        this.load = false;
+        (this.$message({
+          message:'操作成功!',
+          type:'success'
+        }));
+        this.$emit('handleSuccess');
+        this.value = false;
+      }).catch(()=>{
+        this.load = false;
+      })
+    })
+  }
+  setShow(v:boolean){
+    this.value = v;
+  }
+  setBillValue(data:Array<any>){
+    this.billValue = data;
+  }
+}
+</script>

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

@@ -1,5 +1,5 @@
 <template>
 <template>
-  <vxe-modal v-model="value" id="updateRmkModal" width="400" v-loading="load" @show="show" @hide="hide" height="260" show-footer title="卖家备注">
+  <vxe-modal v-model="value" id="updateRmkModal" width="400" v-loading="load" @show="show" @hide="hide" height="260" show-footer title="卖家备注">
     <by-form :propConfig="config" ref="form">
     <by-form :propConfig="config" ref="form">
       <template v-slot:isAppend="{value}">
       <template v-slot:isAppend="{value}">
         <el-switch
         <el-switch
@@ -27,7 +27,7 @@ export default class UpdateRmkModal extends Vue {
     attr:{
     attr:{
       rules:{
       rules:{
         remark: [
         remark: [
-          { required: true, message: '请选择类型', trigger: 'input' }
+          { required: true, message: '卖家备注不能为空!', trigger: 'input' }
         ]
         ]
       }
       }
     },
     },

+ 75 - 0
src/views/oms/order/components/updateSalerModal.vue

@@ -0,0 +1,75 @@
+<template>
+  <vxe-modal v-model="value" id="updateSalerModal" width="400" v-loading="load" @hide="hide" height="200" show-footer title="修改业务员">
+    <by-form :propConfig="config" ref="form"></by-form>
+    <template #footer>
+      <div class="btn">
+        <el-button type="primary" size="small" @click="btn">确定</el-button>
+      </div>
+    </template>
+  </vxe-modal>
+</template>
+
+<script lang="ts">
+import { Component, Prop, Vue, Watch } from "vue-property-decorator";
+import { setCreateUser } from '@/api/omsOrder'
+@Component({components:{}})
+export default class UpdateSalerModal extends Vue {
+  value=false;
+  load=false;
+  billValue:Array<any>=[];
+  config:any={
+    attr:{
+      rules:{
+        createUser: [
+          { required: true, message: '业务员不能为空!', trigger: 'input' }
+        ]
+      }
+    },
+    columns:[
+      [{
+        label:'业务员',
+        prop:'createUser',
+        labelWidth:'80px',
+        component:'by-input',
+        compConfig:{
+          attr:{
+            placeholder:'请输入业务员'
+          }
+        }
+      }]
+    ]
+  }
+  setShow(v:boolean){
+    this.value = v;
+  }
+  setBillValue(data:Array<any>){
+    this.billValue = data;
+  }
+  hide(){
+    (this.$refs.form as any).clearValidate();
+    (this.$refs.form as any).clearValue();
+  }
+  btn(){
+    (this.$refs.form as any).validate().then(()=>{
+      let data = (this.$refs.form as any).getValue();
+      data.idList = this.billValue;
+      this.load = true
+      setCreateUser(data).then(()=>{
+        this.load = false;
+        (this.$message({
+          message:'操作成功!',
+          type:'success'
+        }));
+        this.$emit('handleSuccess');
+        this.value = false;
+      }).catch(()=>{
+        this.load = false;
+      })
+    })
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+
+</style>

+ 72 - 7
src/views/oms/order/index.vue

@@ -164,7 +164,8 @@
     <div class="order-right">
     <div class="order-right">
       <div class="tool">
       <div class="tool">
         <order-tool @addOrder="addOrder" @smt="smtOrder" @reSmt="reSmt" @loadOrder="loadOrder" @producePurchase="producePurchase" @cancelOrder="cancelOrder" 
         <order-tool @addOrder="addOrder" @smt="smtOrder" @reSmt="reSmt" @loadOrder="loadOrder" @producePurchase="producePurchase" @cancelOrder="cancelOrder" 
-        @reCancelOrder="reCancelOrder" @updateRmk="updateRmk" @changeQues="changeQues" @changeNormal="changeNormal"/>
+        @reCancelOrder="reCancelOrder" @updateRmk="updateRmk" @changeQues="changeQues" @changeNormal="changeNormal" @updateSalesman="updateSalesman" 
+        @updateTag="updateTag" @addGift="addGift" />
       </div>
       </div>
       <div class="table">
       <div class="table">
         <order-table :data="data" ref="orderTable" class="order-table" @detail="detail" @mergeHandle="mergeHandle" @splitHandle="splitHandle"/>
         <order-table :data="data" ref="orderTable" class="order-table" @detail="detail" @mergeHandle="mergeHandle" @splitHandle="splitHandle"/>
@@ -173,6 +174,7 @@
             :layout="'total, sizes, prev, pager, next, jumper'" :total="page.total"></el-pagination>
             :layout="'total, sizes, prev, pager, next, jumper'" :total="page.total"></el-pagination>
         </div>
         </div>
       </div>
       </div>
+
       <!-- 手工下单 -->
       <!-- 手工下单 -->
       <add-order ref="addOrder" @handleSuccess="handleSuccess" />
       <add-order ref="addOrder" @handleSuccess="handleSuccess" />
       <!-- 手工下载 -->
       <!-- 手工下载 -->
@@ -191,6 +193,12 @@
       <set-ques-modal ref="setQuesModal" @handleSuccess="handleSuccess" />
       <set-ques-modal ref="setQuesModal" @handleSuccess="handleSuccess" />
       <!-- 改卖家备注 -->
       <!-- 改卖家备注 -->
       <update-rmk-modal ref="updateRmkModal" @handleSuccess="handleSuccess" />
       <update-rmk-modal ref="updateRmkModal" @handleSuccess="handleSuccess" />
+      <!-- 改业务员 -->
+      <update-saler-modal ref="updateSalerModal" @handleSuccess="handleSuccess" />
+      <!-- 改标签 -->
+      <tabModal ref="tabModal" @handleSuccess="handleSuccess" />
+      <!-- 赠品 -->
+      <product-sku-modal ref="productGift" :mulit="true" @confirm="confirmProduct" />
     </div>
     </div>
   </div>
   </div>
 </template>
 </template>
@@ -214,10 +222,13 @@ import CancelOrderModel from "./components/cancelOrderModel.vue"; //取消订单
 import QuestModel from "./components/questModel.vue";
 import QuestModel from "./components/questModel.vue";
 import SetQuesModal from "./components/setQuesModal.vue";
 import SetQuesModal from "./components/setQuesModal.vue";
 import UpdateRmkModal from "./components/updateRmkModal.vue";
 import UpdateRmkModal from "./components/updateRmkModal.vue";
-import { query,getProvince,smt,unSmt,purchaseQty,unCancel,resetQuestion } from '@/api/omsOrder'
+import UpdateSalerModal from "./components/updateSalerModal.vue";
+import TabModal from "./components/tabModal.vue";
+import { query,getProvince,smt,unSmt,purchaseQty,unCancel,resetQuestion,addGift } from '@/api/omsOrder'
 import { queryAll } from '@/api/question'
 import { queryAll } from '@/api/question'
 @Component({components:{filterInput,OrderCheckbox,OrderRadio,filterDate,OrderTool,OrderTable,AddOrder,InputSelect,OrderProduct,
 @Component({components:{filterInput,OrderCheckbox,OrderRadio,filterDate,OrderTool,OrderTable,AddOrder,InputSelect,OrderProduct,
-  filterMinMax,loadOrderModal,PurchaseModel,MergeModel,SplitModel,CancelOrderModel,QuestModel,SetQuesModal,UpdateRmkModal}})
+  filterMinMax,loadOrderModal,PurchaseModel,MergeModel,SplitModel,CancelOrderModel,QuestModel,SetQuesModal,UpdateRmkModal,UpdateSalerModal,
+  TabModal}})
 export default class Order extends Vue {
 export default class Order extends Vue {
   activeNames:Array<any>=['1','status']
   activeNames:Array<any>=['1','status']
   radio=''
   radio=''
@@ -489,7 +500,60 @@ export default class Order extends Vue {
     this.getProvince();
     this.getProvince();
     this.getQuestionList();
     this.getQuestionList();
   }
   }
+  //添加赠品
+  addGift(){
+    let data = (this.$refs.orderTable as any).getSelectData();
+    if(data.length == 0){
+      this.$message('请选择订单!');
+      return
+    }
+    (this.$refs.productGift as any).setShow(true);
+  }
+  confirmProduct(v:Array<any>){
+    if(v.length == 0){
+      this.$message('请选择赠品!')
+      return
+    }
+    let data = (this.$refs.orderTable as any).getSelectData();
+    let parames:any={};
+    parames.idList = [];
+    parames.giftList=[];
+    for(const item of data){
+      parames.idList.push(item.id);
+    }
+    for(const item of v){
+      parames.giftList.push({
+        itemId:item.id,
+        qty:1
+      })
+    }
+    addGift(parames).then(() => {
+      this.$message({
+        message:'赠品添加成功!',
+        type:'success'
+      });
+      this.handleSuccess();
+    }).catch((err:any)=>{
+      if(err.msg){
+        this.$message.error(err.msg);
+      }else{
+        this.$message.error('操作失败!');
+      }
+    })
+  }
+  //改标签
+  updateTag(){
+    this.updateHandleModal('tabModal')
+  }
+  //改业务员
+  updateSalesman(){
+    this.updateHandleModal('updateSalerModal')
+  }
+  //改备注
   updateRmk(){
   updateRmk(){
+    this.updateHandleModal('updateRmkModal')
+  }
+  updateHandleModal(n:string){
     let data = (this.$refs.orderTable as any).getSelectData();
     let data = (this.$refs.orderTable as any).getSelectData();
     if(data.length == 0){
     if(data.length == 0){
       this.$message('请选择订单!');
       this.$message('请选择订单!');
@@ -499,8 +563,8 @@ export default class Order extends Vue {
     for(const item of data){
     for(const item of data){
       billData.push(item.id);
       billData.push(item.id);
     }
     }
-    (this.$refs.updateRmkModal as any).setBillValue(billData);
-    (this.$refs.updateRmkModal as any).setShow(true);
+    (this.$refs[n] as any).setBillValue(billData);
+    (this.$refs[n] as any).setShow(true);
   }
   }
   //转异常
   //转异常
   changeQues(){
   changeQues(){
@@ -898,7 +962,7 @@ export default class Order extends Vue {
     }
     }
     if(msgIds){
     if(msgIds){
       this.$message({
       this.$message({
-        message:'订单“'+msgIds + '”已经是取消状态,不能重复操作!'
+        message:'订单“'+msgIds + '”不满足取消条件!'
       })
       })
       return
       return
     }
     }
@@ -935,7 +999,8 @@ export default class Order extends Vue {
     unCancel({idList:ids}).then((res:any)=>{
     unCancel({idList:ids}).then((res:any)=>{
       this.load = false;
       this.load = false;
       this.$message({
       this.$message({
-        message:'反取消订单操作成功!'
+        message:'反取消订单操作成功!',
+        type:'success'
       })
       })
       this.handleSuccess();
       this.handleSuccess();
     }).catch(()=>{
     }).catch(()=>{