Parcourir la source

新增聚水潭订单和电商ERP报文

ymy il y a 1 an
Parent
commit
0b3b34c613

+ 52 - 0
src/api/jstOrder.ts

@@ -0,0 +1,52 @@
+import request from '@/benyun/utils/request'
+//发货订单
+export function jstOrderList(params:any){
+	return request({
+		url: '/omsOrder/dswDeliveryOrder/page',
+		params:params,
+		method: 'GET'
+	})
+}
+
+//拉取聚水潭店铺订单子表(商品)
+export function jstOrderListProduct(params:any){
+	return request({
+		url: '/omsOrder/dswDeliveryOrderLine/queryByOrderId',
+		params:params,
+		method: 'GET'
+	})
+}
+
+//入库订单
+export function inStore(params:any){
+	return request({
+		url: '/omsOrder/dswEntryOrder/page',
+		params:params,
+		method: 'GET'
+	})
+}
+//入库单商品
+export function inStoreProduct(params:any){
+	return request({
+		url: '/omsOrder/dswEntryOrderLine/queryByOrderId',
+		params:params,
+		method: 'GET'
+	})
+}
+
+//出库订单
+export function outStore(params:any){
+	return request({
+		url: '/omsOrder/dswStockOut/page',
+		params:params,
+		method: 'GET'
+	})
+}
+//入库单商品
+export function outStoreProduct(params:any){
+	return request({
+		url: '/omsOrder/dswStockOutLine/queryByOrderId',
+		params:params,
+		method: 'GET'
+	})
+}

+ 10 - 0
src/api/omsOrder.ts

@@ -284,4 +284,14 @@ export function importB2cOrder(data:any) {
       'Content-Type':'application/x-www-form-urlencoded'
     }
 	})
+}
+
+
+//回调日志
+export function dsCallbackLog(params:any){
+	return request({
+		url: '/omsOrder/dsCallbackLog/page',
+		params:params,
+		method: 'GET'
+	})
 }

+ 2 - 2
src/benyun/components/byTable/byTable.vue

@@ -61,10 +61,10 @@
             <component v-else-if="item.component" :is="item.component" :ref="item.field+'Comp'" :propConfig="item.compConfig" :parentValue="scope.row"
               :propValue="scope.row[item.field]" @onChange="onChange($event, scope,item.field)" />
             <template v-else>
-              <div v-if="item.isDetail" :class="{'ellipsis':item.ellipsis}" :title="scope.row[item.field]" :style="{ 'text-align': item.align }" class="tdCol detail" @click="detail(scope.row)">
+              <div v-if="item.isDetail" :class="{'ellipsis':item.ellipsis}" :style="{ 'text-align': item.align }" class="tdCol detail" @click="detail(scope.row)">
                 {{ item.formatField ? formatField(item,scope.row) : scope.row[item.field] }}
               </div>
-              <div class="tdCol" :class="{'ellipsis':item.ellipsis}" :title="scope.row[item.field]" :style="{ 'text-align': item.align }" v-else>
+              <div class="tdCol" :class="{'ellipsis':item.ellipsis}" :style="{ 'text-align': item.align }" v-else>
                 {{ item.formatField ? formatField(item,scope.row) : scope.row[item.field] }}
               </div>
             </template>

+ 5 - 5
src/benyun/components/moduleView/moduleView.vue

@@ -108,13 +108,13 @@ export default class ModuleView extends ModuleViewHandle {
     let tHeight = 0;
     let vHeight = (this as any).$el.offsetHeight;
     if(this.$refs[this.searchID] && !this.hideSearch){
-      fHeight = (this.$refs[this.searchID] as any).$el.offsetHeight + 32 + 8;
+      fHeight = (this.$refs[this.searchID] as any).$el.offsetHeight + 8;
+    }
+    if(this.$refs[this.toolID]){
+      tHeight = (this.$refs[this.toolID] as any).$el.offsetHeight + 16;
     }
-    // if(this.$refs[this.toolID]){
-    //   tHeight = (this.$refs[this.toolID] as any).$el.offsetHeight + 16;
-    // }
     if(this.config.table && vHeight > 0){
-      const h = vHeight - 32 - fHeight - 48;
+      const h = vHeight - tHeight - fHeight - 48 - 32;
       this.config.table.attr.height = h;
       if(this.$refs[this.tableID]){
         (this.$refs[this.tableID] as any).recalculate();

+ 1 - 1
src/views/oms/B2BOrder/components/addOrder.vue

@@ -260,7 +260,7 @@ export default class AddOrder extends Vue {
     columns:[
       [{
         span:8,
-        label:'订单来源',
+        label:'来源渠道',
         prop:'upSourceName',
         // slot:true,
         component:'by-input',

+ 7 - 2
src/views/oms/B2BOrder/components/batchbyOneModal.vue

@@ -87,7 +87,12 @@ export default class BatchbyOneModal extends Vue {
     this.setInfo()
   }
   editResult(v:any){
-    this.data[this.currentOrder] = v;
+    if(this.currentOrder >= this.data.length){
+      this.data[this.currentOrder-1] = v;
+    }else{
+      this.data[this.currentOrder] = v;
+    }
+    
     // this.getStoreCount(v);
     // this.getPriceInfo(v);
   }
@@ -275,7 +280,7 @@ export default class BatchbyOneModal extends Vue {
       this.$message("订单信息不完整,请编辑信息!");
       return
     }
-    if(_value.tmsBusinessMan.length > 10){
+    if(_value.tmsBusinessMan.length >= 10){
       this.$message("业务员名称不能超过10个字符!");
       return
     }

+ 1 - 1
src/views/oms/B2BOrder/components/orderTable.vue

@@ -61,7 +61,7 @@
         <span v-if="row.status == 'Cancelled'">取消</span>
       </template>
     </vxe-column>
-    <vxe-column field="upSourceName" title="订单来源" width="110"></vxe-column>
+    <vxe-column field="upSourceName" title="来源渠道" width="110"></vxe-column>
     <vxe-column field="operationFlag" title="操作标记" width="120">
       <template #default="{ row }">
         {{ getFromText(row.operationFlag) }}

+ 1 - 1
src/views/oms/B2COrder/components/addOrder.vue

@@ -248,7 +248,7 @@ export default class AddOrder extends Vue {
     columns:[
       [{
         span:6,
-        label:'订单来源',
+        label:'来源渠道',
         prop:'upSourceName',
         // slot:true,
         component:'by-input',

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

@@ -61,14 +61,14 @@
         <span v-if="row.status == 'Cancelled'">取消</span>
       </template>
     </vxe-column>
-    <vxe-column field="upSourceName" title="订单来源" width="110"></vxe-column>
+    <vxe-column field="upSourceName" title="来源渠道" width="110"></vxe-column>
     <vxe-column field="operationFlag" title="操作标记" width="120">
       <template #default="{ row }">
         {{ getFromText(row.operationFlag) }}
       </template>
     </vxe-column>
     <vxe-column field="shopName" title="店铺名称" width="140"></vxe-column>
-    <vxe-column field="shopSite" title="平台" width="140"></vxe-column>
+    <vxe-column field="shopSite" title="平台渠道" width="140"></vxe-column>
     <vxe-column field="orderDate" title="订单日期" width="140">
       <!-- <template #default="{ row }">
         {{ formatDate(row.orderDate) }}

+ 1 - 1
src/views/oms/B2COrder/index.vue

@@ -479,7 +479,7 @@ export default class Order extends Vue {
     params.pageSize = 200;
     let data={
       statusList: [ "Question"],
-      businessType: "B2B"
+      businessType: "B2C"
     }
     this.load = true;
     query(params,data).then((res:any) => {

+ 114 - 0
src/views/oms/cackCallLog/index.vue

@@ -0,0 +1,114 @@
+<template>
+  <div class="view">
+    <module-view :propConfig="config" ref="view"  @pagination="getList" @resert="getList"/>
+  </div>
+  
+</template>
+
+<script lang="ts">
+import { Component, Prop, Vue, Watch } from "vue-property-decorator";
+import {dsCallbackLog} from '@/api/omsOrder'
+@Component
+export default class BackCallLog extends Vue {
+  config:any={
+    attr:{
+      calculateH:true
+    },
+    tool:{
+      tools:{
+        // search:true,
+        refresh:true
+      }
+    },
+    table:{
+      attr:{
+        size:'mini',
+        seq:true,
+        align:'center',
+        triggerRowCheck:'row'
+      },
+      columns:[{
+        title:'回调方法',
+        field:'dsMethod',
+        width:100
+      },{
+        title:'业务编码',
+        field:'dsTag',
+        width:100
+      },{
+        title:'参数签名',
+        field:'dsSign',
+      },{
+        title:'请求时',
+        field:'dsTimestamp',
+        width:150
+      },{
+        title:'URL参数',
+        field:'dsParams',
+        ellipsis:true,
+        width:160
+      },{
+        title:'Body参数',
+        field:'dsBody',
+        ellipsis:true,
+        width:160
+      },{
+        title:'该回调是否已处理',
+        field:'isProcess',
+        width:130
+      },{
+        title:'响应信息',
+        field:'respMsg',
+        width:130
+      }]
+    }
+  }
+  time:any;
+  timeNum = 0;
+  data:Array<any>=[]
+  load = false;
+
+
+  getList(){
+    if(!this.$refs.view){
+      if(this.timeNum > 5){
+        return
+      }
+      this.timeNum ++;
+      setTimeout(()=>{
+        this.getList()
+      },500) 
+      return
+    }
+    let query:any = (this.$refs.view as any).getQuery();
+    this.load = true;
+    dsCallbackLog(query).then((res:any) =>{
+      this.load = false;
+      (this.$refs.view as any).setTableValue(res.data.records);
+      let page={
+        pageNo: res.data.current, //当前页
+        pageSize: res.data.size, //每页条数
+        total: res.data.total //总条数
+      };
+      (this.$refs.view as any).setPage(page)
+    }).catch(()=>{
+      this.load = false;
+    });
+    
+  }
+
+  mounted(){
+    this.$nextTick(()=>{
+      this.getList()
+    })
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.view{
+  width: 100%;
+  height: 100%;
+  overflow-y: hidden;
+}
+</style>

+ 116 - 0
src/views/oms/jushuitanOrder/compoments/inStore.vue

@@ -0,0 +1,116 @@
+<template>
+  <div class="page-view" v-loading="load">
+    <div class="tool">
+      <el-tooltip class="item" effect="dark" content="刷新" placement="top">
+        <el-button icon="el-icon-refresh" size="small" circle @click="getList"></el-button>
+      </el-tooltip>
+    </div>
+    <vxe-table
+      size="mini"
+      border
+      stripe
+      ref="table"
+      :height="height"
+      :row-config="{isCurrent: true,isHover: true}"
+      :data="data">
+      <vxe-column field="entryOrderCode" title="订单编号" width="100"> </vxe-column>
+      <vxe-column field="orderType" title="出库类型" width="140"> </vxe-column>
+      <vxe-column field="entryOrderId" title="入库单仓储系统编码" width="150"> </vxe-column>
+      <vxe-column field="warehouseCode" title="仓库编码" width="150"> </vxe-column>
+      <vxe-column field="logisticsCode" title="物流公司编码" width="150"> </vxe-column>
+      <vxe-column field="logisticsName" title="物流公司名称" width="150"> </vxe-column>
+      <vxe-column field="expectStartTime" title="预期到货时间" width="150"> </vxe-column>
+      <vxe-column field="expectEndTime" title="最迟预期到货时间" width="140"> </vxe-column>
+      <vxe-column field="senderInfo" title="发件人信息" width="170"> </vxe-column>
+      <vxe-column field="receiverInfo" title="收件人信息" width="170"> </vxe-column>
+      <vxe-column field="supplierName" title="供应商名称" width="140"> </vxe-column>
+      <vxe-column field="sourceWarehouseName" title="出库仓库名称" width="140"> </vxe-column>
+      <vxe-column field="expressCode" title="运单号" width="140"> </vxe-column>
+      <vxe-column title="操作" width="120" fixed="right" align="center">
+      <template #default="{ row }">
+        <el-button type="text" size="mini" @click="detailProduct(row)">查看商品</el-button>
+      </template>
+    </vxe-column>
+    </vxe-table>
+    <div class="page">
+      <el-pagination v-if="page.total > 0" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="page.pageNo" :page-size="page.pageSize"
+        :layout="'total, sizes, prev, pager, next, jumper'" :total="page.total"></el-pagination>
+    </div>
+    <JstproductModal ref="JstproductModal" />
+  </div>
+</template>
+
+<script lang="ts">
+import { Component, Prop, Vue, Watch } from "vue-property-decorator";
+import {inStore} from '@/api/jstOrder'
+import JstproductModal from "./jstproductModal.vue";
+@Component({components:{JstproductModal}})
+export default class Instore extends Vue {
+  data:Array<any>=[]
+  load:boolean=false
+  height=700
+  page:any={
+    pageNo: 1, //当前页
+    pageSize: 20, //每页条数
+    total: 0 //总条数
+  }
+  handleSizeChange(v:number){
+    this.page.pageSize = v;
+    this.getList()
+  }
+  handleCurrentChange(v:number){
+    this.page.pageNo = v;
+    this.getList()
+  }
+  getList(){
+    let data:any={}
+    data.pageNo = this.page.pageNo;
+    data.pageSize = this.page.pageSize;
+    this.load = true
+    inStore(data).then((res:any) => {
+      this.load = false
+      this.data = res.data.records;
+      this.page.total = res.data.total
+    }).catch(()=>{
+      this.load = false
+    })
+  }
+  detailProduct(row:any){
+    if(this.$refs.JstproductModal){
+      (this.$refs.JstproductModal as any).setShow(true);
+      (this.$refs.JstproductModal as any).setType('inStore');
+      (this.$refs.JstproductModal as any).setValue(row);
+    }
+  }
+  mounted() {
+    this.getList()
+    this.$nextTick(() => {
+      this.height = (this as any).$el.offsetHeight;
+      console.log('高度:', this.height)
+      if(this.height > 200) {
+        this.height = this.height - 50 - 50
+      }
+    })
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.page-view{
+  height: 100%;
+  width: 100%;
+  .page{
+    height: 50px;
+    display: flex;
+    justify-content: flex-end;
+    align-items: flex-end;
+  }
+  .tool{
+    padding: 8px 16px;
+    box-sizing: border-box;
+    width: 100%;
+    display: flex;
+    justify-content: flex-end;
+  }
+}
+</style>

+ 106 - 0
src/views/oms/jushuitanOrder/compoments/jstproductModal.vue

@@ -0,0 +1,106 @@
+<template>
+  <vxe-modal v-model="value" id="productDialogModal" width="60%" v-loading="load" @hide="hide" height="70%" min-width="500" min-height="400" show-zoom resize transfer show-footer>
+    <template #title>
+      <span>订单商品</span>
+    </template>
+    <template #default>
+      <module-view :propConfig="config" ref="view"/>
+    </template>
+    <template #footer>
+      <div class="btn">
+        <el-button type="primary" size="small" @click="value = false">确定</el-button>
+      </div>
+    </template>
+  </vxe-modal>
+</template>
+
+<script lang="ts">
+import { Component, Prop, Vue, Watch } from "vue-property-decorator";
+import {jstOrderListProduct,inStoreProduct,outStoreProduct} from '@/api/jstOrder'
+@Component
+export default class JstproductModal extends Vue {
+  value:boolean=false;
+  load:boolean = false;
+  type:string='';
+  config:any={
+    attr:{
+      calculateH:true
+    },
+    table:{
+      attr:{
+        size:'mini',
+        align:'center',
+        triggerRowCheck:'row'
+      },
+      columns:[{
+        title:'编号',
+        field:'id',
+        width:100
+      },{
+        title:'商品名称',
+        field:'itemName',
+      },{
+        title:'数量',
+        field:'planQty',
+        width:80
+      }]
+    }
+  }
+  hide(){
+    if(this.$refs.view){
+      (this.$refs.view as any).setTableValue([]);
+    }
+    this.type = ''
+  }
+  setShow(v:boolean){
+    this.value = v;
+  }
+  setType(v:string){
+    this.type = v;
+  }
+  setValue(data:any){
+    let params:any = {}
+    if(data.id){
+      params.orderId = data.id
+      if(this.type == 'sg'){
+        this.load = true
+        jstOrderListProduct(params).then((res:any) => {
+          this.load = false
+          if(res.data){
+            (this.$refs.view as any).setTableValue(res.data);
+          }
+        }).catch(()=>{
+          this.load = false
+        })
+      }
+      if(this.type == 'inStore'){
+        this.load = true
+        inStoreProduct(params).then((res:any) => {
+          this.load = false
+          if(res.data){
+            (this.$refs.view as any).setTableValue(res.data);
+          }
+        }).catch(()=>{
+          this.load = false
+        })
+      }
+      if(this.type == 'outStore'){
+        this.load = true
+        outStoreProduct(params).then((res:any) => {
+          this.load = false
+          if(res.data){
+            (this.$refs.view as any).setTableValue(res.data);
+          }
+        }).catch(()=>{
+          this.load = false
+        })
+      }
+    }
+  }
+
+}
+</script>
+
+<style lang="scss" scoped>
+
+</style>

+ 115 - 0
src/views/oms/jushuitanOrder/compoments/outStore.vue

@@ -0,0 +1,115 @@
+<template>
+  <div class="page-view" v-loading="load">
+    <div class="tool">
+      <el-tooltip class="item" effect="dark" content="刷新" placement="top">
+        <el-button icon="el-icon-refresh" size="small" circle @click="getList"></el-button>
+      </el-tooltip>
+    </div>
+    <vxe-table
+      size="mini"
+      border
+      stripe
+      ref="table"
+      :height="height"
+      :row-config="{isCurrent: true,isHover: true}"
+      :data="data">
+      <vxe-column field="entryOrderCode" title="订单编号" width="100"> </vxe-column>
+      <vxe-column field="orderType" title="出库类型" width="140"> </vxe-column>
+      <vxe-column field="entryOrderId" title="入库单仓储系统编码" width="150"> </vxe-column>
+      <vxe-column field="warehouseCode" title="仓库编码" width="150"> </vxe-column>
+      <vxe-column field="logisticsCode" title="物流公司编码" width="150"> </vxe-column>
+      <vxe-column field="logisticsName" title="物流公司名称" width="150"> </vxe-column>
+      <vxe-column field="expectStartTime" title="预期到货时间" width="150"> </vxe-column>
+      <vxe-column field="expectEndTime" title="最迟预期到货时间" width="140"> </vxe-column>
+      <vxe-column field="senderInfo" title="发件人信息" width="170"> </vxe-column>
+      <vxe-column field="receiverInfo" title="收件人信息" width="170"> </vxe-column>
+      <vxe-column field="supplierName" title="供应商名称" width="140"> </vxe-column>
+      <vxe-column field="sourceWarehouseName" title="出库仓库名称" width="140"> </vxe-column>
+      <vxe-column field="expressCode" title="运单号" width="140"> </vxe-column>
+      <vxe-column title="操作" width="120" fixed="right" align="center">
+      <template #default="{ row }">
+        <el-button type="text" size="mini" @click="detailProduct(row)">查看商品</el-button>
+      </template>
+    </vxe-column>
+    </vxe-table>
+    <div class="page">
+      <el-pagination v-if="page.total > 0" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="page.pageNo" :page-size="page.pageSize"
+        :layout="'total, sizes, prev, pager, next, jumper'" :total="page.total"></el-pagination>
+    </div>
+    <JstproductModal ref="JstproductModal" />
+  </div>
+</template>
+
+<script lang="ts">
+import { Component, Prop, Vue, Watch } from "vue-property-decorator";
+import {outStore} from '@/api/jstOrder'
+import JstproductModal from "./jstproductModal.vue";
+@Component({components:{JstproductModal}})
+export default class Outstore extends Vue {
+  data:Array<any>=[]
+  load:boolean=false
+  height=700
+  page:any={
+    pageNo: 1, //当前页
+    pageSize: 20, //每页条数
+    total: 0 //总条数
+  }
+  handleSizeChange(v:number){
+    this.page.pageSize = v;
+    this.getList()
+  }
+  handleCurrentChange(v:number){
+    this.page.pageNo = v;
+    this.getList()
+  }
+  getList(){
+    let data:any={}
+    data.pageNo = this.page.pageNo;
+    data.pageSize = this.page.pageSize;
+    this.load = true
+    outStore(data).then((res:any) => {
+      this.load = false
+      this.data = res.data.records;
+      this.page.total = res.data.total
+    }).catch(()=>{
+      this.load = false
+    })
+  }
+  detailProduct(row:any){
+    if(this.$refs.JstproductModal){
+      (this.$refs.JstproductModal as any).setShow(true);
+      (this.$refs.JstproductModal as any).setType('outStore');
+      (this.$refs.JstproductModal as any).setValue(row);
+    }
+  }
+  mounted() {
+    this.getList()
+    this.$nextTick(() => {
+      this.height = (this as any).$el.offsetHeight;
+      if(this.height > 200) {
+        this.height = this.height - 50 - 50
+      }
+    })
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.page-view{
+  height: 100%;
+  width: 100%;
+  .page{
+    height: 50px;
+    display: flex;
+    justify-content: flex-end;
+    align-items: flex-end;
+  }
+  .tool{
+    padding: 8px 16px;
+    box-sizing: border-box;
+    width: 100%;
+    display: flex;
+    justify-content: flex-end;
+  }
+}
+</style>

+ 111 - 0
src/views/oms/jushuitanOrder/compoments/sendGoods.vue

@@ -0,0 +1,111 @@
+<template>
+  <div class="page-view" v-loading="load">
+    <div class="tool">
+      <el-tooltip class="item" effect="dark" content="刷新" placement="top">
+        <el-button icon="el-icon-refresh" size="small" circle @click="getList"></el-button>
+      </el-tooltip>
+    </div>
+    <vxe-table
+      size="mini"
+      border
+      stripe
+      ref="table"
+      :height="height"
+      :row-config="{isCurrent: true,isHover: true}"
+      :data="data">
+      <vxe-column field="deliveryOrderCode" title="订单编号" width="140"> </vxe-column>
+      <vxe-column field="orderType" title="出库类型" width="140"> </vxe-column>
+      <vxe-column field="deliveryOrderId" title="发货单仓储系统编码" width="150"> </vxe-column>
+      <vxe-column field="warehouseCode" title="仓库编码" width="150"> </vxe-column>
+      <vxe-column field="orderFlag" title="订单标记" width="150"> </vxe-column>
+      <vxe-column field="sourcePlatformCode" title="订单来源平台编码" width="150"> </vxe-column>
+      <vxe-column field="shopNick" title="店铺名称" width="140"> </vxe-column>
+      <vxe-column field="totalAmount" title="订单总金额" width="140"> </vxe-column>
+      <vxe-column field="itemAmount" title="商品总金额(元)" width="140"> </vxe-column>
+      <vxe-column title="操作" width="120" fixed="right" align="center">
+      <template #default="{ row }">
+        <el-button type="text" size="mini" @click="detailProduct(row)">查看商品</el-button>
+      </template>
+    </vxe-column>
+    </vxe-table>
+    <div class="page">
+      <el-pagination v-if="page.total > 0" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="page.pageNo" :page-size="page.pageSize"
+        :layout="'total, sizes, prev, pager, next, jumper'" :total="page.total"></el-pagination>
+    </div>
+    <JstproductModal ref="JstproductModal" />
+  </div>
+</template>
+
+<script lang="ts">
+import { Component, Prop, Vue, Watch } from "vue-property-decorator";
+import {jstOrderList} from '@/api/jstOrder'
+import JstproductModal from "./jstproductModal.vue";
+@Component({components:{JstproductModal}})
+export default class JushuitanOrder extends Vue {
+  data:Array<any>=[]
+  load:boolean=false
+  height=700
+  page:any={
+    pageNo: 1, //当前页
+    pageSize: 20, //每页条数
+    total: 0 //总条数
+  }
+  handleSizeChange(v:number){
+    this.page.pageSize = v;
+    this.getList()
+  }
+  handleCurrentChange(v:number){
+    this.page.pageNo = v;
+    this.getList()
+  }
+  getList(){
+    let data:any={}
+    data.pageNo = this.page.pageNo;
+    data.pageSize = this.page.pageSize;
+    this.load = true
+    jstOrderList(data).then((res:any) => {
+      this.load = false
+      this.data = res.data.records;
+      this.page.total = res.data.total
+    }).catch(()=>{
+      this.load = false
+    })
+  }
+  detailProduct(row:any){
+    if(this.$refs.JstproductModal){
+      (this.$refs.JstproductModal as any).setShow(true);
+      (this.$refs.JstproductModal as any).setType('sg');
+      (this.$refs.JstproductModal as any).setValue(row);
+    }
+  }
+  mounted() {
+    this.getList()
+    this.$nextTick(() => {
+      this.height = (this as any).$el.offsetHeight;
+      if(this.height > 200) {
+        this.height = this.height - 50 - 50
+      }
+    })
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.page-view{
+  height: 100%;
+  width: 100%;
+  .page{
+    height: 50px;
+    display: flex;
+    justify-content: flex-end;
+    align-items: flex-end;
+  }
+  .tool{
+    padding: 8px 16px;
+    box-sizing: border-box;
+    width: 100%;
+    display: flex;
+    justify-content: flex-end;
+  }
+}
+</style>

+ 56 - 36
src/views/oms/jushuitanOrder/index.vue

@@ -1,48 +1,30 @@
 <template>
-  <div class="box">
-    <vxe-table
-      size="mini"
-      border
-      stripe
-      ref="table"
-      :height="height"
-      :row-config="{isCurrent: true,isHover: true}"
-      :data="data"></vxe-table>
-    <div class="page">
-      <el-pagination v-if="page.total > 0" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="page.pageNo" :page-size="page.pageSize"
-        :layout="'total, sizes, prev, pager, next, jumper'" :total="page.total"></el-pagination>
-    </div>
+  <div class="jst-box">
+    <el-tabs v-model="activeName" @tab-click="handleClick">
+      <el-tab-pane label="发货单" name="first">
+        <sendGoods v-if="activeName == 'first'" />
+      </el-tab-pane>
+      <el-tab-pane label="入库单" name="second">
+        <inStore v-if="activeName == 'second'" />
+      </el-tab-pane>
+      <el-tab-pane label="出库单" name="third">
+        <outStore v-if="activeName == 'third'" />
+      </el-tab-pane>
+    </el-tabs>
   </div>
 </template>
 
 <script lang="ts">
 import { Component, Prop, Vue, Watch } from "vue-property-decorator";
-@Component({components:{}})
+import sendGoods from './compoments/sendGoods.vue'
+import inStore from './compoments/inStore.vue'
+import outStore from './compoments/outStore.vue'
+@Component({components:{sendGoods,inStore,outStore}})
 export default class JushuitanOrder extends Vue {
-  data:Array<any>=[]
-  height=700
-  page:any={
-    pageNo: 1, //当前页
-    pageSize: 20, //每页条数
-    total: 0 //总条数
-  }
-  handleSizeChange(v:number){
-    this.page.pageSize = v;
-    this.getList()
-  }
-  handleCurrentChange(v:number){
-    this.page.pageNo = v;
-    this.getList()
-  }
-  getList(){
+  activeName:string='first'
 
-  }
+  handleClick(){
 
-  mounted() {
-    this.getList()
-    this.$nextTick(() => {
-      this.height = (this as any).$el.offsetHeight;
-    })
   }
 }
 </script>
@@ -51,5 +33,43 @@ export default class JushuitanOrder extends Vue {
 .box{
   height: 100%;
   width: 100%;
+  .page{
+    height: 50px;
+    display: flex;
+    justify-content: flex-end;
+    align-items: flex-end;
+  }
+  .tool{
+    padding: 8px 16px;
+    box-sizing: border-box;
+    width: 100%;
+    display: flex;
+    justify-content: flex-end;
+  }
+}
+</style>
+<style lang="scss">
+.jst-box{
+  width: 100%;
+  height: 100%;
+  box-sizing: border-box;
+  padding: 0 16px;
+  .el-tabs{
+    width: 100%;
+    height: 100%;
+  }
+  .el-tabs__header{
+    margin: 0 !important;
+  }
+  .el-tabs__content{
+    height: calc(100% - 40px);
+    padding-top: 8px;
+    box-sizing: border-box;
+    overflow: hidden;
+    .el-tab-pane{
+      width: 100%;
+      height: 100%;
+    }
+  }
 }
 </style>