Browse Source

分页+汇总同步处理

faster_AG_grid
安虹睿 1 year ago
parent
commit
de020929fe
  1. 28
      PC/UI.WinIn.FasterZ.AgGridReport/src/api/api.js
  2. 116
      PC/UI.WinIn.FasterZ.AgGridReport/src/components/AgTable/index.vue
  3. 6
      PC/UI.WinIn.FasterZ.AgGridReport/src/components/reportPage/index.vue
  4. 49
      PC/UI.WinIn.FasterZ.AgGridReport/src/components/reportPageHeader/index.vue
  5. 24
      PC/UI.WinIn.FasterZ.AgGridReport/src/router/index.js
  6. 29
      PC/UI.WinIn.FasterZ.AgGridReport/src/views/Home.vue
  7. 57
      PC/UI.WinIn.FasterZ.AgGridReport/src/views/inventoryAndAge.vue
  8. 56
      PC/UI.WinIn.FasterZ.AgGridReport/src/views/report/inventoryAndAge.vue
  9. 49
      PC/UI.WinIn.FasterZ.AgGridReport/src/views/report/inventoryERPWMS.vue
  10. 57
      PC/UI.WinIn.FasterZ.AgGridReport/src/views/report/inventoryTrans.vue
  11. 52
      PC/UI.WinIn.FasterZ.AgGridReport/src/views/report/procureHasPOReport.vue

28
PC/UI.WinIn.FasterZ.AgGridReport/src/api/api.js

@ -1,29 +1,41 @@
import axiosUtil from '@/utils/request' import axiosUtil from '@/utils/request'
let baseURL = window.SITE_CONFIG['apiURL'] let baseURL = window.SITE_CONFIG['apiURL']
let procApi = baseURL + '/api/app/report-proc/execute-procedure-by-sql?procName=' let procApi = baseURL + '/api/app/report-proc/execute-procedure-by-proc?procName='
// 通用获取页面数据 // 通用获取页面数据
export function getReportPageList(procName, data) { export function getReportPageList(procName, data) {
return axiosUtil.ajax_post( return axiosUtil.ajax_post(procApi+procName,data)
procApi+procName,
data
)
} }
// 获取物料 // 获取 物料
export function getItemCodeList() { export function getItemCodeList() {
return axiosUtil.ajax_post(procApi+'Proc_Zheng_InputWhere_ItemCode',{}) return axiosUtil.ajax_post(procApi+'Proc_Zheng_InputWhere_ItemCode',{})
} }
// 获取库位组 // 获取 ERP库位
export function getLocationErpCodeList() {
return axiosUtil.ajax_post(procApi+'Proc_Zheng_InputWhere_LocationErpCode',{})
}
// 获取 库位组
export function getLocationGroupCodeList() { export function getLocationGroupCodeList() {
return axiosUtil.ajax_post(procApi+'Proc_Zheng_InputWhere_LocationGroupCode',{}) return axiosUtil.ajax_post(procApi+'Proc_Zheng_InputWhere_LocationGroupCode',{})
} }
// 获取状态 // 获取 状态
export function getInventoryStatusList() { export function getInventoryStatusList() {
return axiosUtil.ajax_post(procApi+'Proc_Zheng_InputWhere_InventoryBalance_Status',{}) return axiosUtil.ajax_post(procApi+'Proc_Zheng_InputWhere_InventoryBalance_Status',{})
} }
// 获取 事务分类
export function getTransTypeList() {
return axiosUtil.ajax_post(procApi+'Proc_Zheng_InputWhere_TransType',{})
}
// 获取 供应商
export function getSupplierCodeList() {
return axiosUtil.ajax_post(procApi+'Proc_Zheng_InputWhere_SupplierCode',{})
}

116
PC/UI.WinIn.FasterZ.AgGridReport/src/components/AgTable/index.vue

@ -1,14 +1,31 @@
<template> <template>
<AgGridVue <div class="AgTableComponent">
:style="`width: 100%; height: ${tableHeight}`" <AgGridVue
class="ag-theme-alpine" :style="`width: 100%; height: ${tableHeight}`"
:columnDefs="columnDefs" class="ag-theme-alpine"
@grid-ready="onGridReady" :columnDefs="columnDefs"
:defaultColDef="defaultColDef" @grid-ready="onGridReady"
:suppressDragLeaveHidesColumns="true" :defaultColDef="defaultColDef"
:columnResized="columnResized" :suppressDragLeaveHidesColumns="true"
@filterChanged="onFloatingFilterChanged" :columnResized="columnResized"
></AgGridVue> @filterChanged="onFilterAndSortChanged"
@sortChanged="onFilterAndSortChanged"
:pagination="true"
:suppressPaginationPanel="true"
></AgGridVue>
<div class="paginationContent">
<el-pagination
background
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:page-sizes="pageSizes"
:page-size="currentPageSize"
:current-page="currentPage"
layout="total, sizes, prev, pager, next, jumper"
:total="pageTotal">
</el-pagination>
</div>
</div>
</template> </template>
<script> <script>
import "ag-grid-community/styles/ag-grid.css"; import "ag-grid-community/styles/ag-grid.css";
@ -36,7 +53,6 @@ export default {
gridApi: null, gridApi: null,
gridColumnApi: null, gridColumnApi: null,
defaultColDef: { defaultColDef: {
flex: 1,
filter: true, filter: true,
sortable: true, sortable: true,
floatingFilter: true, floatingFilter: true,
@ -46,21 +62,43 @@ export default {
autoHeight:true autoHeight:true
}, },
tableHeight:null, tableHeight:null,
// pagination: true, // pageSizes:[10, 100, 300, 500, 1000, 3000, 5000, 10000],
// paginationAutoPageSize: true, // pageTotal:null,
currentPage:1,
currentPageSize:100,
allPageData:null,//
}; };
}, },
mounted(){ mounted(){
this.setTableHeight() this.setTableHeight()
}, },
methods: { methods: {
// //
onFloatingFilterChanged(data){ handleSizeChange(value){
const allData = []; this.currentPageSize = Number(value)
data.api.forEachNodeAfterFilter(node => { this.gridApi.paginationSetPageSize(Number(value));
allData.push(node.data) this.setTableTotal(this.gridApi)
},
//
handleCurrentChange(value){
this.currentPage = Number(value)
this.gridApi.paginationGoToPage(Number(value) - 1);
this.setTableTotal(this.gridApi)
},
//
getCurrentPageData(gridApi){
this.allPageData = [];
gridApi.forEachNodeAfterFilterAndSort(node => {
this.allPageData.push(node.data)
}); });
this.setTableTotal(allData) let _begin = (this.currentPage - 1) * this.currentPageSize
let _end = this.currentPage * this.currentPageSize
let _pageData = this.allPageData.slice(_begin,_end)
return _pageData
},
//
onFilterAndSortChanged(data){
this.setTableTotal(data.api)
}, },
// //
columnResized(event){ columnResized(event){
@ -69,30 +107,38 @@ export default {
} }
}, },
// //
setTableTotal(list) { setTableTotal(gridApi) {
if(!this.BottomFixedItem || this.BottomFixedItem.length <= 0)return if(!this.BottomFixedItem || this.BottomFixedItem.length <= 0)return
let result = [{}] let result = [{}]
this.BottomFixedItem.forEach(item=>{ this.BottomFixedItem.forEach(item=>{
result[0][item] = 0 result[0][item] = 0
}) })
list.forEach((item,key) => { let _pageData = this.getCurrentPageData(gridApi)
_pageData.forEach((item,key) => {
for(let o in item){ for(let o in item){
// if(o == ''){
// //
// }
if(this.BottomFixedItem.indexOf(o) >= 0){ if(this.BottomFixedItem.indexOf(o) >= 0){
result[0][o] += item[o] result[0][o] += item[o]
} }
} }
}); });
console.log(127,result)
this.pageTotal = this.allPageData.length
this.gridApi.setPinnedBottomRowData(result); this.gridApi.setPinnedBottomRowData(result);
}, },
// //
setTableHeight(){ setTableHeight(){
let _headerH = document.getElementsByClassName('reportPageHeader')[0].clientHeight + 10 let _headerH = document.getElementsByClassName('reportPageHeader')[0].clientHeight
this.tableHeight = `calc(100% - ${_headerH}px)` let _footH = 50;
let _outH = _headerH + _footH
this.tableHeight = `calc(100vh - ${_outH}px)`
}, },
// table // table
updateTableData(data){ updateTableData(data){
this.gridApi.setRowData(data) this.gridApi.setRowData(data)
this.setTableTotal(data) this.setTableTotal(this.gridApi)
this.gridApi.resetRowHeights(); this.gridApi.resetRowHeights();
}, },
// agGrid // agGrid
@ -104,18 +150,20 @@ export default {
}; };
</script> </script>
<style lang="less"> <style lang="less">
.ag-theme-alpine{ .AgTableComponent{
.ag-theme-alpine{
// --ag-header-foreground-color: white; // --ag-header-foreground-color: white;
// --ag-header-background-color: #5a81b7; // --ag-header-background-color: #5a81b7;
// --ag-header-cell-hover-background-color: #5a81b7; // --ag-header-cell-hover-background-color: #5a81b7;
// --ag-header-cell-moving-background-color: #5a81b7; // --ag-header-cell-moving-background-color: #5a81b7;
// --ag-border-color:#4d709f; // --ag-border-color:#4d709f;
--ag-header-foreground-color: white; --ag-header-foreground-color: #333;
--ag-header-background-color: #5a81b7; --ag-header-background-color: #f2f2f2;
--ag-header-cell-hover-background-color: #5a81b7; --ag-header-cell-hover-background-color: #f2f2f2;
--ag-header-cell-moving-background-color: #5a81b7; --ag-header-cell-moving-background-color: #f2f2f2;
--ag-border-color:#4d709f; --ag-border-color:#cecece;
.ag-floating-filter-input .ag-input-field-input{ .ag-floating-filter-input .ag-input-field-input{
color:#333 !important color:#333 !important
@ -156,5 +204,13 @@ export default {
padding-top:5px; padding-top:5px;
padding-bottom:5px padding-bottom:5px
} }
}
.paginationContent{
padding:0 20px;
display:flex;
height:50px;
justify-content:flex-end;
align-items:center;
}
} }
</style> </style>

6
PC/UI.WinIn.FasterZ.AgGridReport/src/components/reportPage/index.vue

@ -11,9 +11,9 @@
:showReportTitle="showReportTitle" :showReportTitle="showReportTitle"
></reportPageHeader> ></reportPageHeader>
<AgTable <AgTable
ref="AgTable_Ref" ref="AgTable_Ref"
:columnDefs="columnList" :columnDefs="columnList"
:BottomFixedItem="BottomFixedItem" :BottomFixedItem="BottomFixedItem"
></AgTable> ></AgTable>
</div> </div>
</template> </template>

49
PC/UI.WinIn.FasterZ.AgGridReport/src/components/reportPageHeader/index.vue

@ -47,7 +47,7 @@
v-model="searchForm[item.prop]" v-model="searchForm[item.prop]"
type="date" type="date"
placeholder="选择日期" placeholder="选择日期"
value-format="yyyy-MM-ddTHH:mm:ss" value-format="yyyy-MM-dd"
></el-date-picker> ></el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -77,8 +77,11 @@ import columnFilter from "@/components/columnFilter/index"
import exportExcel from "@/components/exportExcel/index" import exportExcel from "@/components/exportExcel/index"
import { import {
getItemCodeList, getItemCodeList,
getLocationErpCodeList,
getLocationGroupCodeList, getLocationGroupCodeList,
getInventoryStatusList getInventoryStatusList,
getTransTypeList,
getSupplierCodeList
} from '@/api/api' } from '@/api/api'
export default { export default {
name: "reportPageHeader", name: "reportPageHeader",
@ -142,6 +145,14 @@ export default {
item.opV="ItemCode" item.opV="ItemCode"
}) })
} }
// ERP
if(item.optionsProc == 'ErpLocationCode'){
getLocationErpCodeList().then(res=>{
item.options = res
item.opL="ErpLocationCode"
item.opV="ErpLocationCode"
})
}
// //
if(item.optionsProc == 'LocationGroupCode'){ if(item.optionsProc == 'LocationGroupCode'){
getLocationGroupCodeList().then(res=>{ getLocationGroupCodeList().then(res=>{
@ -153,12 +164,29 @@ export default {
// //
if(item.optionsProc == 'InventoryStatus'){ if(item.optionsProc == 'InventoryStatus'){
getInventoryStatusList().then(res=>{ getInventoryStatusList().then(res=>{
res.forEach(res_item=>res_item.sValue = String(res_item.Value)) res.forEach(res_item=>res_item.sValue = String(res_item['value'.toUpperCase()]))
item.options = res item.options = res
item.opL="Key" item.opL='key'.toUpperCase()
item.opV="sValue" item.opV="sValue"
}) })
} }
//
if(item.optionsProc == 'TransType'){
getTransTypeList().then(res=>{
res.forEach(res_item=>res_item.sValue = String(res_item['value'.toUpperCase()]))
item.options = res
item.opL='key'.toUpperCase()
item.opV="sValue"
})
}
//
if(item.optionsProc == 'SupplierCode'){
getSupplierCodeList().then(res=>{
item.options = res
item.opL='SupplierCode'
item.opV="SupplierCode"
})
}
} }
}) })
}, },
@ -184,7 +212,9 @@ export default {
</script> </script>
<style scope lang="less"> <style scope lang="less">
.reportPageHeader{ .reportPageHeader{
background:#2d568e; // background:#2d568e;
background:#eaf0f6;
.FormHeader{ .FormHeader{
padding:20px 20px 0; padding:20px 20px 0;
@ -200,14 +230,15 @@ export default {
} }
} }
.el-form-item__label{ // .el-form-item__label{
color:#fff // color:#fff
} // }
} }
.reportTitle{ .reportTitle{
background:#044c93;
color:#fff; color:#fff;
line-height:40px; line-height:50px;
text-align:center; text-align:center;
font-size:16px; font-size:16px;
font-weight:bold; font-weight:bold;

24
PC/UI.WinIn.FasterZ.AgGridReport/src/router/index.js

@ -1,7 +1,10 @@
import Vue from 'vue' import Vue from 'vue'
import VueRouter from 'vue-router' import VueRouter from 'vue-router'
import Home from '../views/Home.vue' import Home from '../views/Home.vue'
import inventoryAndAge from '../views/inventoryAndAge.vue' import inventoryAndAge from '../views/report/inventoryAndAge.vue'
import inventoryERPWMS from '../views/report/inventoryERPWMS.vue'
import inventoryTrans from '../views/report/inventoryTrans.vue'
import procureHasPOReport from '../views/report/procureHasPOReport.vue'
Vue.use(VueRouter) Vue.use(VueRouter)
@ -12,10 +15,29 @@ const routes = [
component: Home component: Home
}, },
{ {
title:"库存库龄报表",
path: '/inventoryAndAge', path: '/inventoryAndAge',
name: 'inventoryAndAge', name: 'inventoryAndAge',
component: inventoryAndAge component: inventoryAndAge
}, },
// {
// title:"库存余额_ERP-WMS差异报表",
// path: '/inventoryERPWMS',
// name: 'inventoryERPWMS',
// component: inventoryERPWMS
// },
// {
// title:"库存事务报表",
// path: '/inventoryTrans',
// name: 'inventoryTrans',
// component: inventoryTrans
// },
{
title:"采购收货/采购退货-有PO",
path: '/procureHasPOReport',
name: 'procureHasPOReport',
component: procureHasPOReport
},
] ]
const router = new VueRouter({ const router = new VueRouter({

29
PC/UI.WinIn.FasterZ.AgGridReport/src/views/Home.vue

@ -1,18 +1,39 @@
<template> <template>
<div>home</div> <div class="menuList">
<div
class="menuItem"
v-for="(item,index) in menuList"
:key="index"
@click="goPage(item.path)"
>{{item.title || item.name}}</div>
</div>
</template> </template>
<script> <script>
export default { export default {
name: "home", name: "home",
data () { data () {
return { return {
menuList:""
}; };
}, },
mounted(){
this.menuList = this.$router.options.routes
console.log(this.menuList)
},
methods: { methods: {
goPage(url){
this.$router.push(url)
},
}, },
}; };
</script> </script>
<style> <style lang="less" scoped>
.menuList{
padding:20px;
.menuItem{
cursor: pointer;
padding:10px;
border-bottom:#e8e8e8 solid 1px
}
}
</style> </style>

57
PC/UI.WinIn.FasterZ.AgGridReport/src/views/inventoryAndAge.vue

@ -1,57 +0,0 @@
<template>
<reportPage
:columnList="columnDefs"
:searchConfig="searchConfig"
:searchForm="searchForm"
:reportName="'库存库龄报表'"
:BottomFixedItem="BottomFixedItem"
:procName="'Proc_Zheng_库存库龄'"
:showReportTitle="false"
></reportPage>
</template>
<script>
import reportPage from "@/components/reportPage/index"
import util from '@/utils/util'
export default {
name: "inventoryAndAge",
components: {
reportPage
},
data () {
const numberFormatter = (item) =>{
return Number(item.value).toFixed(2);
}
return {
columnDefs: [
{ field: '物料代码', filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '物料名称', filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '物料描述1', filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '物料描述2', filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '库位组', filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '总数', cellClass:"rightAlign", valueFormatter: numberFormatter, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '<=30天', cellClass:"rightAlign", valueFormatter: numberFormatter, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '31-180天', cellClass:"rightAlign", valueFormatter: numberFormatter, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '181-240天', cellClass:"rightAlign", valueFormatter: numberFormatter, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '241-300天', cellClass:"rightAlign", valueFormatter: numberFormatter, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '301-360天', cellClass:"rightAlign", valueFormatter: numberFormatter, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '>=361天', cellClass: 'rightAlign', valueFormatter: numberFormatter, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '单位', cellClass:"centerAlign", filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '状态', cellClass:"centerAlign", filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true }},
],
searchConfig:[
{type:'select',prop:'ItemCode',label:'物料',optionsProc:'itemCode'},
{type:'select',prop:'LocationGroupCode',label:'库位组',optionsProc:'LocationGroupCode'},
{type:'select',prop:'InventoryStatus',label:'状态',optionsProc:'InventoryStatus'},
],
searchForm:{
ItemCode:'',
LocationGroupCode:'',
InventoryStatus:"",
},
BottomFixedItem:['总数','<=30天','31-180天','181-240天','241-300天','301-360天','>=361天']
};
},
};
</script>

56
PC/UI.WinIn.FasterZ.AgGridReport/src/views/report/inventoryAndAge.vue

@ -0,0 +1,56 @@
<template>
<reportPage
:columnList="columnDefs"
:searchConfig="searchConfig"
:searchForm="searchForm"
:reportName="'库存库龄报表'"
:BottomFixedItem="BottomFixedItem"
:procName="'Proc_Zheng_库存库龄'"
></reportPage>
</template>
<script>
import reportPage from "@/components/reportPage/index"
import util from '@/utils/util'
export default {
name: "inventoryAndAge",
components: {
reportPage
},
data () {
const numberFormatter = (item) =>{
return Number(item.value).toFixed(2);
}
return {
columnDefs: [
{ field: '物料代码', flex:1, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '物料名称', flex:1, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '物料描述1', flex:1, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '物料描述2', flex:1, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '库位组', flex:1, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '总数', flex:1, cellClass:"rightAlign", valueFormatter: numberFormatter, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '<=30天', flex:1, cellClass:"rightAlign", valueFormatter: numberFormatter, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '31-180天', flex:1, cellClass:"rightAlign", valueFormatter: numberFormatter, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '181-240天', flex:1, cellClass:"rightAlign", valueFormatter: numberFormatter, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '241-300天', flex:1, cellClass:"rightAlign", valueFormatter: numberFormatter, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '301-360天', flex:1, cellClass:"rightAlign", valueFormatter: numberFormatter, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '>=361天', flex:1, cellClass: 'rightAlign', valueFormatter: numberFormatter, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '单位', flex:1, cellClass:"centerAlign", filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '状态', flex:1, cellClass:"centerAlign", filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true }},
],
searchConfig:[
{type:'select',prop:'ItemCode',label:'物料',optionsProc:'itemCode'},
{type:'select',prop:'LocationGroupCode',label:'库位组',optionsProc:'LocationGroupCode'},
{type:'select',prop:'InventoryStatus',label:'状态',optionsProc:'InventoryStatus'},
],
searchForm:{
ItemCode:'',
LocationGroupCode:'',
InventoryStatus:"",
},
BottomFixedItem:['总数','<=30天','31-180天','181-240天','241-300天','301-360天','>=361天']
};
},
};
</script>

49
PC/UI.WinIn.FasterZ.AgGridReport/src/views/report/inventoryERPWMS.vue

@ -0,0 +1,49 @@
<template>
<reportPage
:columnList="columnDefs"
:searchConfig="searchConfig"
:searchForm="searchForm"
:reportName="'库存余额_ERP-WMS差异报表'"
:BottomFixedItem="BottomFixedItem"
:procName="'Proc_Zheng_库存余额_erp与wms差异'"
></reportPage>
</template>
<script>
import reportPage from "@/components/reportPage/index"
import util from '@/utils/util'
export default {
name: "inventoryERPWMS",
components: {
reportPage
},
data () {
const numberFormatter = (item) =>{
return Number(item.value).toFixed(2);
}
return {
columnDefs: [
{ field: '物料代码', flex:1, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '物料名称', flex:1, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '物料描述1', flex:1, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '物料描述2', flex:1, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: 'ERP库位', cellClass:"centerAlign", width:150, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: 'ERP数量', cellClass:"rightAlign", width:200, valueFormatter: numberFormatter, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: 'WMS数量', cellClass:"rightAlign", width:200, valueFormatter: numberFormatter, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '差异', cellClass:"rightAlign", width:200, valueFormatter: numberFormatter, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '单位', cellClass:"centerAlign", width:150, suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
],
searchConfig:[
{type:'select',prop:'ItemCode',label:'物料',optionsProc:'itemCode'},
{type:'select',prop:'ErpLocationCode',label:'ERP库位',optionsProc:'ErpLocationCode'},
],
searchForm:{
ItemCode:'',
ErpLocationCode:'',
},
BottomFixedItem:['ERP数量','WMS数量','差异']
};
},
};
</script>

57
PC/UI.WinIn.FasterZ.AgGridReport/src/views/report/inventoryTrans.vue

@ -0,0 +1,57 @@
<template>
<reportPage
:columnList="columnDefs"
:searchConfig="searchConfig"
:searchForm="searchForm"
:reportName="'库存事务报表'"
:BottomFixedItem="BottomFixedItem"
:procName="'Proc_Zheng_库存事务'"
></reportPage>
</template>
<script>
import reportPage from "@/components/reportPage/index"
import util from '@/utils/util'
export default {
name: "inventoryERPWMS",
components: {
reportPage
},
data () {
const numberFormatter = (item) =>{
return Number(item.value).toFixed(2);
}
return {
columnDefs: [
{ field: '物料代码', flex:1, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '物料名称', flex:1, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '物料描述1', flex:1, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '物料描述2', flex:1, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ headerName:'库位组代码', field: '库位组', width:200, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '数量', cellClass:"rightAlign", width:200, valueFormatter: numberFormatter, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '单位', cellClass:"centerAlign", width:150, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '状态', cellClass:"centerAlign", width:150, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ headerName:'事务分类', field: '类型', width:150, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
],
searchConfig:[
{type:'select',prop:'ItemCode',label:'物料',optionsProc:'itemCode'},
{type:'select',prop:'LocationGroupCode',label:'库位组',optionsProc:'LocationGroupCode'},
{type:'select',prop:'InventoryStatus',label:'状态',optionsProc:'InventoryStatus'},
{type:'select',prop:'TransType',label:'事务分类',optionsProc:'TransType'},
{type:'date',prop:'beginDate',label:'起始'},
{type:'date',prop:'endDate',label:'截止'},
],
searchForm:{
ItemCode:'',
TransType:'',
LocationGroupCode:'',
InventoryStatus:'',
beginDate:'',
endDate:'',
},
BottomFixedItem:['数量']
};
},
};
</script>

52
PC/UI.WinIn.FasterZ.AgGridReport/src/views/report/procureHasPOReport.vue

@ -0,0 +1,52 @@
<template>
<reportPage
:columnList="columnDefs"
:searchConfig="searchConfig"
:searchForm="searchForm"
:reportName="'采购收货/采购退货(有PO)'"
:BottomFixedItem="BottomFixedItem"
:procName="'Proc_Zheng_采购收货_采购退货_有po'"
></reportPage>
</template>
<script>
import reportPage from "@/components/reportPage/index"
import util from '@/utils/util'
export default {
name: "inventoryAndAge",
components: {
reportPage
},
data () {
const numberFormatter = (item) =>{
return Number(item.value).toFixed(2);
}
return {
columnDefs: [
{ field: '供应商代码', flex:1, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '物料代码', flex:1, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '物料名称', flex:1, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '物料描述1', flex:1, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '物料描述2', flex:1, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '收货数量', width:200, cellClass:"rightAlign", valueFormatter: numberFormatter, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '退货数量', width:200, cellClass: 'rightAlign', valueFormatter: numberFormatter, filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
{ field: '单位', width:150, cellClass:"centerAlign", filter: 'agTextColumnFilter', suppressMenu: true, floatingFilterComponentParams: { suppressFilterButton: true } },
],
searchConfig:[
{type:'select',prop:'ItemCode',label:'物料',optionsProc:'itemCode'},
{type:'select',prop:'SupplierCode',label:'供应商',optionsProc:'SupplierCode'},
{type:'date',prop:'beginDate',label:'起始'},
{type:'date',prop:'endDate',label:'截止'},
],
searchForm:{
ItemCode:'',
SupplierCode:'',
beginDate:"",
endDate:'',
},
BottomFixedItem:['收货数量','退货数量']
};
},
};
</script>
Loading…
Cancel
Save