|
@@ -0,0 +1,273 @@
|
|
|
+<template>
|
|
|
+ <vxe-modal v-model="value" id="synchronousOrderModal" width="500" height="400" transfer show-footer v-loading="load">
|
|
|
+ <template #title>
|
|
|
+ <span>下载订单</span>
|
|
|
+ </template>
|
|
|
+ <template #default>
|
|
|
+ <div class="type">
|
|
|
+ <el-radio-group v-model="type">
|
|
|
+ <el-radio :label="1">按线上订单号</el-radio>
|
|
|
+ <el-radio :label="2">按时间段</el-radio>
|
|
|
+ <el-radio :label="3">按订单状态</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </div>
|
|
|
+ <div class="cont">
|
|
|
+ <div class="title">店铺名称:</div>
|
|
|
+ <div class="right-cont">
|
|
|
+ <el-select v-model="shopId" size="mini" style="width:100%" placeholder="请选择" clearable>
|
|
|
+ <el-option
|
|
|
+ v-for="item in shopOptions"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <template v-if="type == 1">
|
|
|
+ <div class="cont">
|
|
|
+ <div class="title">线上订单:</div>
|
|
|
+ <div class="right-cont">
|
|
|
+ <el-input v-model="sourceIds" type="textarea" rows="4" size="mini" placeholder="多个单号逗号隔开"></el-input>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template v-if="type == 2">
|
|
|
+ <div class="cont">
|
|
|
+ <div class="title">时间类型:</div>
|
|
|
+ <div class="right-cont">
|
|
|
+ <el-select v-model="dateType" size="mini" style="width:100%" placeholder="请选择" clearable>
|
|
|
+ <el-option
|
|
|
+ v-for="item in dateTypeOptions"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="cont">
|
|
|
+ <div class="title">时间:</div>
|
|
|
+ <div class="right-cont">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="time"
|
|
|
+ style="width: 100%;"
|
|
|
+ size="mini"
|
|
|
+ type="daterange"
|
|
|
+ clearable
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
+ range-separator="-"
|
|
|
+ start-placeholder="开始日期"
|
|
|
+ @change="change"
|
|
|
+ end-placeholder="结束日期">
|
|
|
+ </el-date-picker>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template v-if="type == 3">
|
|
|
+ <div class="cont">
|
|
|
+ <div class="title">订单状态:</div>
|
|
|
+ <div class="right-cont">
|
|
|
+ <el-select v-model="status" size="mini" style="width:100%" placeholder="请选择" clearable>
|
|
|
+ <el-option
|
|
|
+ v-for="item in statusOptions"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+ <template #footer>
|
|
|
+ <div class="btn">
|
|
|
+ <el-button type="primary" size="small" plain @click="clear">清空</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 { pullOrder } from '@/api/omsOrder'
|
|
|
+@Component
|
|
|
+export default class LoadOrderModal extends Vue {
|
|
|
+ load = false;
|
|
|
+ value = false;
|
|
|
+ type=1;
|
|
|
+ shopName = '犇云聚水潭店铺';
|
|
|
+ shopId:any = 2;
|
|
|
+ shopOptions=[{
|
|
|
+ label:'犇云聚水潭店铺',
|
|
|
+ value:2
|
|
|
+ }]
|
|
|
+ sourceIds=''; //线上订单号
|
|
|
+ dateType:any=null;
|
|
|
+ dateTypeOptions=[{
|
|
|
+ label:'修改时间',
|
|
|
+ value:0
|
|
|
+ },{
|
|
|
+ label:'订单日期',
|
|
|
+ value:1
|
|
|
+ },{
|
|
|
+ label:'发货时间',
|
|
|
+ value:2
|
|
|
+ }]
|
|
|
+ beginDate='';
|
|
|
+ endDate='';
|
|
|
+ time:any=null;
|
|
|
+ status='';
|
|
|
+ statusOptions:Array<any>=[{
|
|
|
+ label:'待付款',
|
|
|
+ value:'WaitPay'
|
|
|
+ },{
|
|
|
+ label:'发货中',
|
|
|
+ value:'Delivering'
|
|
|
+ },{
|
|
|
+ label:'被合并',
|
|
|
+ value:'Merged'
|
|
|
+ },{
|
|
|
+ label:'异常',
|
|
|
+ value:'Question'
|
|
|
+ },{
|
|
|
+ label:'被拆分',
|
|
|
+ value:'Split'
|
|
|
+ },{
|
|
|
+ label:'等供销商|外仓发货',
|
|
|
+ value:'WaitOuterSent'
|
|
|
+ },{
|
|
|
+ label:'已付款待审核',
|
|
|
+ value:'WaitConfirm'
|
|
|
+ },{
|
|
|
+ label:'已客审待财审',
|
|
|
+ value:'WaitFConfirm'
|
|
|
+ },{
|
|
|
+ label:'已发货',
|
|
|
+ value:'Sent'
|
|
|
+ },{
|
|
|
+ label:'取消',
|
|
|
+ value:'Cancelled'
|
|
|
+ }]
|
|
|
+ setShow(v:boolean){
|
|
|
+ this.value = v;
|
|
|
+ }
|
|
|
+ change(v:any){
|
|
|
+ if(v){
|
|
|
+ this.beginDate = v[0];
|
|
|
+ this.endDate = v[1];
|
|
|
+ }else{
|
|
|
+ this.beginDate = '';
|
|
|
+ this.endDate = '';
|
|
|
+ }
|
|
|
+ }
|
|
|
+ btn(){
|
|
|
+ let value:any={};
|
|
|
+ let msg = '';
|
|
|
+ if(!this.shopId){
|
|
|
+ msg = '店铺名称'
|
|
|
+ }
|
|
|
+ value.type = this.type;
|
|
|
+ if(this.type == 1){
|
|
|
+ if(!this.sourceIds){
|
|
|
+ if(msg){
|
|
|
+ msg = msg + ',线上订单'
|
|
|
+ }else{
|
|
|
+ msg = '线上订单'
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ value.shopId = this.shopId;
|
|
|
+ value.showName = this.shopName;
|
|
|
+ value.sourceIds = this.sourceIds.split(',');
|
|
|
+ }else if(this.type == 2){
|
|
|
+ if(this.dateType < 0 || this.dateType > 2){
|
|
|
+ if(msg){
|
|
|
+ msg = msg + ',时间类型'
|
|
|
+ }else{
|
|
|
+ msg = '时间类型'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(!this.time){
|
|
|
+ if(msg){
|
|
|
+ msg = msg + ',时间'
|
|
|
+ }else{
|
|
|
+ msg = '时间'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ value.shopId = this.shopId;
|
|
|
+ value.showName = this.shopName;
|
|
|
+ value.dateType = this.dateType;
|
|
|
+ value.beginDate = this.beginDate + ' 00:00:00';
|
|
|
+ value.endDate = this.endDate + ' 00:00:00';
|
|
|
+ }else if(this.type == 3){
|
|
|
+ if(!this.status){
|
|
|
+ if(msg){
|
|
|
+ msg = msg + ',订单状态'
|
|
|
+ }else{
|
|
|
+ msg = '订单状态'
|
|
|
+ }
|
|
|
+ }
|
|
|
+ value.shopId = this.shopId;
|
|
|
+ value.showName = this.shopName;
|
|
|
+ value.status = this.status;
|
|
|
+ }
|
|
|
+ if(msg){
|
|
|
+ this.$message({
|
|
|
+ message:msg + '不能为空!',
|
|
|
+ type: 'warning'
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.load = true;
|
|
|
+ pullOrder(value).then((res:any) => {
|
|
|
+ this.load = false;
|
|
|
+ (this as any).$message({
|
|
|
+ message: '操作成功!',
|
|
|
+ type: 'success',
|
|
|
+ });
|
|
|
+ this.value = false;
|
|
|
+ this.$emit('handleSuccess');
|
|
|
+ }).catch((err:any) => {
|
|
|
+ this.load = false;
|
|
|
+ })
|
|
|
+ }
|
|
|
+ clear(){
|
|
|
+ this.type = 1;
|
|
|
+ this.shopName = '';
|
|
|
+ this.shopId = '';
|
|
|
+ this.sourceIds = '';
|
|
|
+ this.dateType = '';
|
|
|
+ this.beginDate = '';
|
|
|
+ this.endDate = '';
|
|
|
+ this.time = null;
|
|
|
+ this.status = '';
|
|
|
+ }
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+.btn{
|
|
|
+ width: 100%;
|
|
|
+ display: flex;
|
|
|
+ justify-content: flex-end;
|
|
|
+}
|
|
|
+.type{
|
|
|
+ width: 100%;
|
|
|
+ padding: 8px 0;
|
|
|
+}
|
|
|
+.cont{
|
|
|
+ width: 100%;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ padding: 8px 0;
|
|
|
+ .title{
|
|
|
+ width: 100px;
|
|
|
+ text-align: right;
|
|
|
+ }
|
|
|
+ .right-cont{
|
|
|
+ width: calc(100% - 100px);
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|