Przeglądaj źródła

同步分销商订单调整

逆水行舟 3 tygodni temu
rodzic
commit
ace3fc400b

+ 14 - 5
src/views/oms/B2COrder/components/addOrder.vue

@@ -1181,6 +1181,15 @@ export default class AddOrder extends Vue {
     (this.$refs.editProductModal as any).setOrderValue(this.orderValue);
     (this.$refs.editProductModal as any).setTableValue(tableValue);
   }
+  //判断是否加密数据,如果加密数据就返回****,否则返回原值
+  showEncryptData(data: string) {
+    //正则表达式匹配 包含~,=,-,_,:
+    let reg = /[~= -_:]/;
+    if (reg.test(data)) {
+      return '****'
+    }
+    return data
+  }
   show() {
     this.baseConfig = (this as any).$lodash.cloneDeep(this.config);
     this.buyerInfoConfig = (this as any).$lodash.cloneDeep(this.config2);
@@ -1209,8 +1218,8 @@ export default class AddOrder extends Vue {
       (this.$refs.baseform as any).setValue(info);
       //买家
       let buyerInfo: any = {};
-      buyerInfo.buyerNickname = data.buyerNickname;
-      buyerInfo.receiverName = data.receiverName;
+      buyerInfo.buyerNickname = this.showEncryptData(data.buyerNickname);
+      buyerInfo.receiverName = this.showEncryptData(data.receiverName);
       buyerInfo.receiverProvince = data.receiverProvince;//省
       buyerInfo.receiverProvinceCode = data.receiverProvinceCode; //省编码
       buyerInfo.receiverCity = data.receiverCity;   //市
@@ -1219,9 +1228,9 @@ export default class AddOrder extends Vue {
       buyerInfo.receiverDistrictCode = data.receiverDistrictCode;   //县/区编码
       buyerInfo.receiverTownCode = data.receiverTownCode;
       buyerInfo.receiverTown = data.receiverTown;
-      buyerInfo.receiverAddress = data.receiverAddress;
-      buyerInfo.receiverPhone = data.receiverPhone;
-      buyerInfo.receiverMobile = data.receiverMobile;
+      buyerInfo.receiverAddress = this.showEncryptData(data.receiverAddress);
+      buyerInfo.receiverPhone = this.showEncryptData(data.receiverPhone);
+      buyerInfo.receiverMobile = this.showEncryptData(data.receiverMobile);
       buyerInfo.receiverZip = data.receiverZip;
       this.buyerInfoConfig.attr.data = buyerInfo;
       (this.$refs.infoform as any).setValue(buyerInfo);

+ 2 - 1
src/views/oms/B2COrder/components/orderTable.vue

@@ -3,7 +3,7 @@
     :checkbox-config="{ checkMethod: checCheckboxkMethod }" :data="data">
     <vxe-column type="checkbox" width="50" fixed="left"></vxe-column>
     <!-- <vxe-column type="seq" width="60" title="序号" fixed="left"></vxe-column> -->
-    <vxe-column field="id" title="内部订单号" width="100" fixed="left">
+    <vxe-column field="id" title="OMS订单号" width="100" fixed="left">
       <template #default="{ row }">
         <div class="col-cont">
           <span>{{ row.id }}</span>
@@ -14,6 +14,7 @@
       </template>
     </vxe-column>
     <vxe-column field="innerId" title="内部订单号(聚水潭)" width="140"> </vxe-column>
+    <vxe-column title="分销商" width="140"> </vxe-column>
     <vxe-column field="distributorNo" title="分销商订单号" width="140"> </vxe-column>
     <vxe-column field="rawSourceId" title="线上订单号" width="140"> </vxe-column>
     <vxe-column field="isSubmitted" title="审核状态" width="100">

+ 2 - 1
src/views/oms/B2COrder/components/orderTool.vue

@@ -54,7 +54,8 @@
     <div class="split"></div>
     <el-button type="text" @click="handle('batchSendGoods')">发货<i class="el-icon-info"
         title="发货条件:已审核,待付款,已付款待审核"></i></el-button>
-    <el-button type="text" @click="handle('syncOrder')">同步订单</el-button>
+    <el-button type="text" @click="handle('syncOrder')">同步订单(店铺)</el-button>
+    <el-button type="text" @click="handle('syncDistributor')">同步订单(分销商)</el-button>
   </div>
 </template>
 

+ 109 - 0
src/views/oms/B2COrder/components/syncDistributor.vue

@@ -0,0 +1,109 @@
+<template>
+    <vxe-modal v-model="value" id="syncOrder" width="500" v-loading="load" @hide="hide" height="300" show-footer
+        title="同步订单(分销商)">
+        <el-form ref="form" :model="form" label-width="100px">
+            <el-form-item label="店铺" prop="shopId">
+                <el-select v-model="form.channelCompanyId" placeholder="请选择店铺">
+                    <el-option v-for="(item, index) in shopList" :label="item.companyName"
+                        :value="item.channelCompanyId"></el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item label="起始时间" prop="modifiedBegin">
+                <el-date-picker v-model="form.modifiedBegin" type="date" value-format="yyyy-MM-dd"
+                    placeholder="请选择修改时间"></el-date-picker>
+            </el-form-item>
+            <el-form-item label="结束时间" prop="modifiedEnd">
+                <el-date-picker v-model="form.modifiedEnd" type="date" value-format="yyyy-MM-dd"
+                    placeholder="请选择修改时间"></el-date-picker>
+            </el-form-item>
+        </el-form>
+        <template #footer>
+            <div class="btn">
+                <el-button plain size="small" @click="value = false">取消</el-button>
+                <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 { IResponeData, getDistributorOrder, syncDistributorOrder } from "@/api/omsOrder";
+@Component({ components: {} })
+export default class AddConfig extends Vue {
+    value = false;
+    load = false;
+    shopList: { channelCompanyId: number, companyName: string }[] = [];
+    form = {
+        channelCompanyId: null as number | null,
+        modifiedBegin: '',
+        modifiedEnd: ''
+    }
+    hide() {
+
+    }
+    async loadShop() {
+        this.load = true;
+        const res = await getDistributorOrder({ pageNum: 1, pageSize: 1000 }) as unknown as IResponeData<any>;
+        this.load = false;
+        if (res.code != 200) {
+            return;
+        }
+        this.shopList = res.rows
+        console.info(this.shopList)
+    }
+    setShow(v: boolean) {
+        this.loadShop();
+        this.value = v;
+    }
+    setValue(v: any) {
+    }
+    getValue() {
+
+    }
+
+    btn() {
+        if (this.form.channelCompanyId === null) {
+            this.$message.error('请选择分销商');
+            return;
+        }
+        if (this.form.modifiedBegin == '') {
+            this.$message.error('请选择起始时间');
+            return;
+        }
+        if (this.form.modifiedEnd == '') {
+            this.$message.error('请选择结束时间');
+            return;
+        }
+        this.form.channelCompanyId = Number(this.form.channelCompanyId);
+        //判断两个时间之间不能大于8天,并且开始时间不能大于结束时间
+        const begin = new Date(this.form.modifiedBegin);
+        const end = new Date(this.form.modifiedEnd);
+        const diff = end.getTime() - begin.getTime();
+        if (diff > 1 * 24 * 60 * 60 * 1000) {
+            this.$message.error('时间范围不能大于1天');
+            return;
+        }
+        if (begin.getTime() > end.getTime()) {
+            this.$message.error('开始时间不能大于结束时间');
+            return;
+        }
+        this.$confirm('确认同步订单吗?', '提示', {
+            confirmButtonText: '确定',
+            cancelButtonText: '取消',
+            type: 'warning'
+        }).then(() => {
+            syncDistributorOrder(this.form).then(res => {
+                this.$message.success('同步成功');
+            }).catch((err) => {
+                console.error(err);
+            }).finally(() => {
+                this.load = false;
+            })
+        })
+    }
+
+}
+</script>
+
+<style lang="scss" scoped></style>

+ 14 - 13
src/views/oms/B2COrder/components/syncOrder.vue

@@ -1,10 +1,11 @@
 <template>
     <vxe-modal v-model="value" id="syncOrder" width="500" v-loading="load" @hide="hide" height="300" show-footer
-        title="同步分销商订单">
+        title="同步订单(店铺)">
         <el-form ref="form" :model="form" label-width="100px">
             <el-form-item label="店铺" prop="shopId">
-                <el-select v-model="form.channelCompanyId" placeholder="请选择店铺">
-                    <el-option v-for="(item, index) in shopList" :label="item.companyName" :value="item.id"></el-option>
+                <el-select v-model="form.shopId" placeholder="请选择店铺">
+                    <el-option v-for="(item, index) in shopList" :label="item.shopName"
+                        :value="item.shopId"></el-option>
                 </el-select>
             </el-form-item>
             <el-form-item label="起始时间" prop="modifiedBegin">
@@ -27,14 +28,14 @@
 
 <script lang="ts">
 import { Component, Prop, Vue, Watch } from "vue-property-decorator";
-import { IResponeData, getDistributorOrder, syncDistributorOrder } from "@/api/omsOrder";
+import { IResponeData, waterShop, syncOrder } from "@/api/omsOrder";
 @Component({ components: {} })
-export default class AddConfig extends Vue {
+export default class SyncDistributor extends Vue {
     value = false;
     load = false;
-    shopList: { id: number, companyName: string }[] = [];
+    shopList: { shopId: number, shopName: string }[] = [];
     form = {
-        channelCompanyId: null,
+        shopId: 0,
         modifiedBegin: '',
         modifiedEnd: ''
     }
@@ -43,7 +44,7 @@ export default class AddConfig extends Vue {
     }
     async loadShop() {
         this.load = true;
-        const res = await getDistributorOrder({ pageNum: 1, pageSize: 1000 }) as unknown as IResponeData<any>;
+        const res = await waterShop() as unknown as IResponeData<any>;
         this.load = false;
         if (res.code != 200) {
             return;
@@ -62,8 +63,8 @@ export default class AddConfig extends Vue {
     }
 
     btn() {
-        if (!this.form.channelCompanyId) {
-            this.$message.error('请选择分销商');
+        if (this.form.shopId == 0) {
+            this.$message.error('请选择店铺');
             return;
         }
         if (this.form.modifiedBegin == '') {
@@ -78,8 +79,8 @@ export default class AddConfig extends Vue {
         const begin = new Date(this.form.modifiedBegin);
         const end = new Date(this.form.modifiedEnd);
         const diff = end.getTime() - begin.getTime();
-        if (diff > 1 * 24 * 60 * 60 * 1000) {
-            this.$message.error('时间范围不能大于1天');
+        if (diff > 7 * 24 * 60 * 60 * 1000) {
+            this.$message.error('时间范围不能大于7天');
             return;
         }
         if (begin.getTime() > end.getTime()) {
@@ -91,7 +92,7 @@ export default class AddConfig extends Vue {
             cancelButtonText: '取消',
             type: 'warning'
         }).then(() => {
-            syncDistributorOrder(this.form).then(res => {
+            syncOrder(this.form).then(res => {
                 this.$message.success('同步成功');
             }).catch((err) => {
                 console.error(err);

+ 14 - 3
src/views/oms/B2COrder/index.vue

@@ -28,7 +28,7 @@
                   <div class="ques-list" v-show="showQues">
                     <template v-for="item of questData">
                       <el-checkbox :label="item.id" v-if="item.isShow == 1" :key="item.value">{{ item.type
-                      }}</el-checkbox>
+                        }}</el-checkbox>
                     </template>
                   </div>
                 </el-collapse-transition>
@@ -112,7 +112,8 @@
           @producePurchase="producePurchase" @cancelOrder="cancelOrder" @reCancelOrder="reCancelOrder"
           @updateRmk="updateRmk" @changeQues="changeQues" @changeNormal="changeNormal" @updateSalesman="updateSalesman"
           @updateTag="updateTag" @addGift="addGift" @addProduct="addProduct" @updateFreight="updateFreight"
-          @orderFile="orderFile" @batchSendGoods="batchSendGoods" @importOrder="importOrder" @syncOrder="syncOrder" />
+          @orderFile="orderFile" @batchSendGoods="batchSendGoods" @importOrder="importOrder" @syncOrder="syncOrder"
+          @syncDistributor="syncDistributor" />
       </div>
       <div class="table">
         <order-table :data="data" ref="orderTable" class="order-table" @detail="detail" @mergeHandle="mergeHandle"
@@ -169,6 +170,8 @@
       <ImportExcelModel ref="ImportExcelModel" @handleSuccess="handleSuccess" />
       <!-- 同步订单 -->
       <SyncOrder ref="syncOrderRef" />
+      <!-- 同步分销商 -->
+      <SyncDistributor ref="syncDistributorRef" />
     </div>
   </div>
 </template>
@@ -205,6 +208,7 @@ import LogisticsInfo from "./components/logisticsInfo.vue";
 import ExpressDeliveryModal from "./components/expressDeliveryModal.vue";
 import ImportExcelModel from "./components/importExcelModal.vue";
 import SyncOrder from './components/syncOrder.vue';
+import SyncDistributor from './components/syncDistributor.vue';
 import { query, getProvince, smt, unSmt, purchaseQty, unCancel, resetQuestion, archive, queryByBarCode } from '@/api/omsOrder'
 import { queryAll } from '@/api/question'
 @Component({
@@ -212,7 +216,7 @@ import { queryAll } from '@/api/question'
     filterInput, OrderCheckbox, OrderRadio, filterDate, OrderTool, OrderTable, AddOrder, InputSelect, OrderProduct,
     filterMinMax, loadOrderModal, PurchaseModel, MergeModel, SplitModel, CancelOrderModel, QuestModel, SetQuesModal, UpdateRmkModal, UpdateSalerModal,
     TabModal, AddProductModal, FreightModal, LabelsModal, SendModeModal, batchbyOneModal, carpoolModal, DeliveryDetail, LogisticsInfo, ExpressDeliveryModal, ImportExcelModel,
-    SyncOrder
+    SyncOrder, SyncDistributor
   }
 })
 export default class Order extends Vue {
@@ -561,6 +565,13 @@ export default class Order extends Vue {
     }
   }
 
+  //同步分销商
+  syncDistributor() {
+    if (this.$refs.syncDistributorRef) {
+      (this.$refs.syncDistributorRef as any).setShow(true)
+    }
+  }
+
 
   //查看物流
   showLogistics(code: string) {