Browse Source

完善统计报表

master
myTest383 5 months ago
parent
commit
c5e578b943
  1. 19
      src/api/statistics/cusmoterSale.js
  2. 19
      src/api/statistics/goodsPurchase.js
  3. 18
      src/api/statistics/goodsSale.js
  4. 11
      src/views/purchase/purchaseOrder/purchaseOrderAdd.vue
  5. 7
      src/views/purchase/purchaseOrder/purchaseOrderInfo.vue
  6. 5
      src/views/purchase/purchaseOrder/relation/chooseproducts.vue
  7. 7
      src/views/purchase/purchaseReview/index.vue
  8. 7
      src/views/purchase/purchaseReview/purchaseOrderInfo.vue
  9. 61
      src/views/statistics/cusmoterSale/cusmoterSale.vue
  10. 215
      src/views/statistics/goodsPurchase/goodsPurchase.vue
  11. 236
      src/views/statistics/goodsSale/goodsSale.vue

19
src/api/statistics/cusmoterSale.js

@ -4,7 +4,7 @@ export default {
// 查询分页列表
listPage: function(params) {
return request({
url: '/oms/v1/smssalesbill/listPage',
url: '/oms//v1/smssalesbill/customerSales',
method: 'post',
data: params,
headers: {
@ -58,5 +58,20 @@ export default {
'Content-Type': 'application/json'
}
})
}
},
expExcelOfCustomer: function(params) {
return request({
url: '/oms/v1/smssalesbill/customerSalesExport',
method: 'post',
data: params,
// headers: {
// "responseType": "blob" //将二进制流转换成blob对象
// },
headers: {
'Access-Control-Allow-Headers': 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild'
},
responseType: 'blob'
})
},
}

19
src/api/statistics/goodsPurchase.js

@ -4,7 +4,7 @@ export default {
// 查询分页列表
listPage: function(params) {
return request({
url: '/oms/v1/smssalesbill/listPage',
url: '/oms/apiadmin/purchasebill/goodsPurchase',
method: 'post',
data: params,
headers: {
@ -58,5 +58,20 @@ export default {
'Content-Type': 'application/json'
}
})
}
},
expExcelOfCustomer: function(params) {
return request({
url: '/oms/apiadmin/purchasebill/goodsPurchaseExport',
method: 'post',
data: params,
// headers: {
// "responseType": "blob" //将二进制流转换成blob对象
// },
headers: {
'Access-Control-Allow-Headers': 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild'
},
responseType: 'blob'
})
},
}

18
src/api/statistics/goodsSale.js

@ -4,7 +4,7 @@ export default {
// 查询分页列表
listPage: function(params) {
return request({
url: '/oms/v1/smssalesbill/listPage',
url: '/oms/v1/smssalesbill/goodsSales',
method: 'post',
data: params,
headers: {
@ -58,5 +58,19 @@ export default {
'Content-Type': 'application/json'
}
})
}
},
expExcelOfCustomer: function(params) {
return request({
url: '/oms/v1/smssalesbill/goodsSalesExport',
method: 'post',
data: params,
// headers: {
// "responseType": "blob" //将二进制流转换成blob对象
// },
headers: {
'Access-Control-Allow-Headers': 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild'
},
responseType: 'blob'
})
},
}

11
src/views/purchase/purchaseOrder/purchaseOrderAdd.vue

@ -118,9 +118,10 @@
<el-button type="primary" size="mini" @click="deleteGoods(scope.row)">删除</el-button>
</template>
</el-table-column>
<el-table-column label="商品编码" prop="goodsSkuCode" width="120" align="center" />
<el-table-column label="商品名称" prop="goodsSkuTitle" width="150" align="center" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" width="120" align="center" />
<el-table-column label="商品编码" prop="goodsCode" width="120" align="center" />
<el-table-column label="商品名称" prop="goodsSpuName" width="150" align="center" />
<el-table-column label="规格型号" prop="goodsSkuTitle" width="120" align="center" />
<el-table-column label="规格编码" prop="goodsSkuCode" width="120" align="center" />
<el-table-column label="单位" prop="unit" width="60" align="center" />
<el-table-column label="采购数量" align="center" prop="count" width="150">
<template slot-scope="scope">
@ -828,7 +829,9 @@
"sid": value[i].sid != null ? value[i].sid : '',
"goodsSkuSid": value[i].sid != null ? value[i].sid : '',
"goodsSkuCode": value[i].goodsSkuCode != null ? value[i].goodsSkuCode : '',
"goodsSkuTitle": value[i].goodsName != null ? value[i].goodsName : '',
"goodsSkuTitle": value[i].title != null ? value[i].title : '',
"goodsCode": value[i].goodsCode != null ? value[i].goodsCode : '',
"goodsSpuName": value[i].goodsName != null ? value[i].goodsName : '',
"goodsSN": value[i].barCode != null ? value[i].barCode : '',
"goodsSkuOwnSpec": value[i].goodsSkuOwnSpec != null ? value[i].goodsSkuOwnSpec : '',
"unit": value[i].unit != null ? value[i].unit : '',

7
src/views/purchase/purchaseOrder/purchaseOrderInfo.vue

@ -80,9 +80,10 @@
</div>
<el-table v-loading="listLoading" :data="formobj.purchaseBillDetailList" border style="width: 100%;">
<el-table-column fixed width="80" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column label="商品编码" prop="goodsSkuCode" width="150" align="center" />
<el-table-column label="商品名称" prop="goodsSkuTitle" width="150" align="center" />
<el-table-column label="规格" prop="goodsSkuOwnSpec" width="150" align="center" />
<el-table-column label="商品编码" prop="goodsCode" width="120" align="center" />
<el-table-column label="商品名称" prop="goodsSpuName" width="150" align="center" />
<el-table-column label="规格型号" prop="goodsSkuTitle" width="120" align="center" />
<el-table-column label="规格编码" prop="goodsSkuCode" width="120" align="center" />
<el-table-column label="单位" prop="unit" width="120" align="center" />
<el-table-column prop="count" label="采购数量" width="120" align="center" />
<el-table-column label="数量(pcs)" prop="pcsCount" align="center" width="150" />

5
src/views/purchase/purchaseOrder/relation/chooseproducts.vue

@ -61,8 +61,9 @@
<el-table-column width="50px" type="selection" align="center" />
<el-table-column width="80px" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column prop="goodsName" label="商品名称" align="center" />
<el-table-column prop="goodsSkuCode" label="商品编码" align="center" />
<el-table-column prop="goodsSkuOwnSpec" label="规格" align="center" />
<el-table-column prop="goodsCode" label="商品编码" align="center" />
<el-table-column prop="title" label="规格型号" align="center" />
<el-table-column prop="goodsSkuCode" label="规格编码" align="center" />
<el-table-column prop="unit" label="单位" align="center" />
<!-- <el-table-column prop="tagPrice" label="吊牌价" align="center" /> -->
<el-table-column prop="cost" label="单价" align="center" />

7
src/views/purchase/purchaseReview/index.vue

@ -137,9 +137,10 @@
<el-tab-pane name="first" label="采购明细">
<el-table class="table" :data="goodsDetailList" border style="width: 100%">
<el-table-column width="60" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column prop="goodsSkuTitle" label="商品名称" width="120" align="center" />
<el-table-column prop="goodsSkuCode" label="商品编码" width="120" align="center" />
<el-table-column prop="goodsSkuOwnSpec" label="规格" width="120" align="center" />
<el-table-column label="商品编码" prop="goodsCode" width="120" align="center" />
<el-table-column label="商品名称" prop="goodsSpuName" width="150" align="center" />
<el-table-column label="规格型号" prop="goodsSkuTitle" width="120" align="center" />
<el-table-column label="规格编码" prop="goodsSkuCode" width="120" align="center" />
<el-table-column prop="unit" label="单位" align="center" />
<el-table-column prop="count" label="数量" width="120" align="center" />
<el-table-column label="数量(pcs)" prop="pcsCount" align="center" width="150" />

7
src/views/purchase/purchaseReview/purchaseOrderInfo.vue

@ -80,9 +80,10 @@
</div>
<el-table v-loading="listLoading" :data="formobj.purchaseBillDetailList" border style="width: 100%;">
<el-table-column fixed width="80" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column label="商品编码" prop="goodsSkuCode" width="150" align="center" />
<el-table-column label="商品名称" prop="goodsSkuTitle" width="150" align="center" />
<el-table-column label="商品规格" prop="goodsSkuOwnSpec" width="150" align="center" />
<el-table-column label="商品编码" prop="goodsCode" width="120" align="center" />
<el-table-column label="商品名称" prop="goodsSpuName" width="150" align="center" />
<el-table-column label="规格型号" prop="goodsSkuTitle" width="120" align="center" />
<el-table-column label="规格编码" prop="goodsSkuCode" width="120" align="center" />
<el-table-column label="单位" prop="unit" width="120" align="center" />
<el-table-column prop="count" label="采购数量" width="120" align="center" />
<el-table-column label="数量(pcs)" prop="pcsCount" align="center" width="150" />

61
src/views/statistics/cusmoterSale/cusmoterSale.vue

@ -17,7 +17,7 @@
type="date" placeholder="选择日期"></el-date-picker>
</el-form-item>
<el-form-item label="客户编码">
<el-input v-model="listQuery.params.warehouseName" placeholder="" clearable />
<el-input v-model="listQuery.params.customerCode" placeholder="" clearable />
</el-form-item>
<el-form-item label="客户名称">
<el-input v-model="listQuery.params.customerName" placeholder="" clearable />
@ -39,11 +39,11 @@
@selection-change="handleSelectionChange">
<el-table-column type="selection" align="center" width="50" />
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center" />
<el-table-column prop="billNo" label="客户编码" align="center" />
<el-table-column prop="state" label="客户名称" align="center" />
<el-table-column prop="createTime" label="销售数量" align="center" />
<el-table-column prop="billTypeValue" label="销售金额" align="center" />
<el-table-column prop="shopName" label="运费" align="center" />
<el-table-column prop="customerCode" label="客户编码" align="center" />
<el-table-column prop="customerName" label="客户名称" align="center" />
<el-table-column prop="count" label="销售数量" align="center" />
<el-table-column prop="amount" label="销售金额" align="center" />
<el-table-column prop="shippingFee" label="运费" align="center" />
</el-table>
</div>
<!--End 主页面主要部分-->
@ -76,6 +76,12 @@
return {
btndisabled: false,
btnList: [{
type: 'success',
size: 'small',
icon: 'export',
btnKey: 'build',
btnLabel: '导出'
}, {
type: 'info',
size: 'small',
icon: 'cross',
@ -99,8 +105,6 @@
endDate: '',
cusmoterCode: '',
customerName: '',
useOrgSid: '',
createOrgSid: '',
}
}
}
@ -134,6 +138,9 @@
case 'doClose':
this.doClose()
break
case 'build':
this.build()
break
default:
break
}
@ -155,8 +162,9 @@
//
getList() {
this.listLoading = true
this.listQuery.params.useOrgSid = window.sessionStorage.getItem('orgSid')
this.listQuery.params.createOrgSid = window.sessionStorage.getItem('orgSid')
this.listQuery.params.userSid = window.sessionStorage.getItem('userSid')
this.listQuery.params.orgPath = window.sessionStorage.getItem('orgSidPath')
this.listQuery.params.menuUrl = this.$route.path
req.listPage(this.listQuery).then(response => {
this.listLoading = false
if (response.success) {
@ -182,11 +190,8 @@
params: {
startDate: '',
endDate: '',
customerCode: '',
cusmoterCode: '',
customerName: '',
warehouseName: '',
useOrgSid: '',
createOrgSid: '',
}
}
this.getList()
@ -247,6 +252,34 @@
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
},
//
build() {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.expExcelOfCustomer(this.listQuery.params).then((resp) => {
loading.close()
const blob = new Blob([resp], {
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
})
const fileName = '客户销售统计_' + this.listQuery.params.startDate + '.xlsx'
const elink = document.createElement('a')
elink.download = fileName
elink.style.display = 'nonde'
elink.href = URL.createObjectURL(blob)
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href)
document.body.removeChild(elink)
}).catch(() => {
loading.close()
})
}
}
}

215
src/views/statistics/goodsPurchase/goodsPurchase.vue

@ -8,19 +8,42 @@
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="100px" class="tab-header">
<el-form-item label="下单日期">
<el-date-picker v-model="listQuery.params.startDate" value-format="yyyy-MM-dd" format="yyyy-MM-dd"
type="date" placeholder="选择日期"></el-date-picker>
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.endDate" value-format="yyyy-MM-dd" format="yyyy-MM-dd"
type="date" placeholder="选择日期"></el-date-picker>
<el-form ref="listQueryform" :inline="true" :model="listQuery" class="tab-header">
<el-form-item label="供应商">
<el-select v-model="listQuery.params.supplierSid" clearable placeholder="请选择供应商" style="width: 220px;">
<el-option v-for="item in supplierList" :key="item.sid" :label="item.supplierName" :value="item.sid">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="仓库">
<el-select v-model="listQuery.params.warehouseSid" placeholder="请选择仓库" style="width: 220px;">
<el-option v-for="item in warehouseList" :key="item.sid" :label="item.warehouseName"
:value="item.sid" />
</el-select>
</el-form-item>
<el-form-item label="采购入库日期">
<el-date-picker v-model="listQuery.params.value2" type="daterange" align="right" unlink-panels
range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" format="yyyy-MM-dd"
value-format="yyyy-MM-dd" :picker-options="pickerOptions">
</el-date-picker>
</el-form-item>
<el-form-item label="商品品牌">
<el-select v-model="listQuery.params.brandSid" placeholder="请选择品牌">
<el-option v-for="item in brandList" :key="item.sid" :label="item.brandName" :value="item.sid" />
</el-select>
</el-form-item>
<el-form-item label="客户编码">
<el-input v-model="listQuery.params.warehouseName" placeholder="" clearable />
<el-form-item label="商品类别">
<el-select v-model="listQuery.params.typeSid" placeholder="请选择类别">
<el-option v-for="item in cateList" :key="item.sid" :label="item.goodsTypeName" :value="item.sid" />
</el-select>
</el-form-item>
<el-form-item label="客户名称">
<el-input v-model="listQuery.params.customerName" placeholder="" clearable />
<el-form-item label="商品名称">
<el-select v-model="listQuery.params.goodsSid" placeholder="请选择商品" style="width: 220px;">
<el-option v-for="item in goodsList" :key="item.goodsSpuSid" :label="item.goodsName"
:value="item.goodsSpuSid" />
</el-select>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
@ -39,16 +62,16 @@
@selection-change="handleSelectionChange">
<el-table-column type="selection" align="center" width="50" />
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center" />
<el-table-column prop="billNo" label="商品编码" align="center" />
<el-table-column prop="shopName" label="条码" align="center" />
<el-table-column prop="state" label="商品名称" align="center" />
<el-table-column prop="createTime" label="规格编码" align="center" />
<el-table-column prop="billTypeValue" label="规格型号" align="center" />
<el-table-column prop="shopName" label="商品分类" align="center" />
<el-table-column prop="shopName" label="品牌" align="center" />
<el-table-column prop="shopName" label="数量" align="center" />
<el-table-column prop="shopName" label="单价" align="center" />
<el-table-column prop="shopName" label="金额" align="center" />
<el-table-column prop="goodsCode" label="商品编码" align="center" />
<el-table-column prop="barCode" label="条码" align="center" />
<el-table-column prop="goodsName" label="商品名称" align="center" />
<el-table-column prop="goodsSkuCode" label="规格编码" align="center" />
<el-table-column prop="title" label="规格型号" align="center" />
<el-table-column prop="typeName" label="商品分类" align="center" />
<el-table-column prop="brandName" label="品牌" align="center" />
<el-table-column prop="count" label="数量" align="center" />
<el-table-column prop="cost" label="单价" align="center" />
<el-table-column prop="amount" label="金额" align="center" />
</el-table>
</div>
<!--End 主页面主要部分-->
@ -69,6 +92,13 @@
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import req from '@/api/statistics/goodsPurchase'
import req2 from '@/api/goods/brand.js'
import req3 from '@/api/goods/category.js'
import req4 from '@/api/goods/goods.js'
import {
choiceSupplierInfo,
getWarehouses,
} from '@/api/Common/dictcommons'
export default {
name: 'SalesOrder',
@ -81,6 +111,12 @@
return {
btndisabled: false,
btnList: [{
type: 'success',
size: 'small',
icon: 'export',
btnKey: 'build',
btnLabel: '导出'
}, {
type: 'info',
size: 'small',
icon: 'cross',
@ -102,22 +138,103 @@
params: {
startDate: '',
endDate: '',
cusmoterCode: '',
customerName: '',
useOrgSid: '',
createOrgSid: '',
brandSid: '',
goodsSid: '',
supplierSid: '',
typeSid: '',
warehouseSid: '',
}
}
},
pickerOptions: {
shortcuts: [{
text: '昨天',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 1);
picker.$emit('pick', [start, end]);
}
}, {
text: '近7天',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', [start, end]);
}
}, {
text: '近30天',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit('pick', [start, end]);
}
}, ]
},
value1: '',
value2: '',
brandList: [],
cateList: [],
warehouseList: [],
supplierList: [],
goodsList: [],
}
},
watch: {
'listQuery.params.value2'(newVal) {
console.log("value2 ", newVal);
this.listQuery.params.startDate = newVal[0]
this.listQuery.params.endDate = newVal[1]
}
},
created() {
//
this.getList()
this.init()
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
methods: {
init() {
choiceSupplierInfo({
createOrgSid: window.sessionStorage.getItem('orgSid')
}).then((resp) => {
if (resp.success) {
this.supplierList = resp.data
console.log("aaaaaa", this.supplierNameList);
}
})
getWarehouses({
orgPath: window.sessionStorage.getItem('orgSidPath'),
}).then((res) => {
if (res.success) {
this.warehouseList = res.data
console.log("aaaaaa", this.warehouseList);
}
})
var parpams = {
orgPath: window.sessionStorage.getItem('orgSid'),
}
req2.getAllBrand(parpams).then(resp => {
this.brandList = resp.data
})
req3.getAllType(parpams).then(resp => {
this.cateList = resp.data
})
req4.getGoodsListAllByOrg(parpams).then(resp => {
this.goodsList = resp.data
})
},
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
@ -139,6 +256,9 @@
case 'doClose':
this.doClose()
break
case 'build':
this.build()
break
default:
break
}
@ -160,8 +280,9 @@
//
getList() {
this.listLoading = true
this.listQuery.params.useOrgSid = window.sessionStorage.getItem('orgSid')
this.listQuery.params.createOrgSid = window.sessionStorage.getItem('orgSid')
this.listQuery.params.userSid = window.sessionStorage.getItem('userSid')
this.listQuery.params.orgPath = window.sessionStorage.getItem('orgSidPath')
this.listQuery.params.menuUrl = this.$route.path
req.listPage(this.listQuery).then(response => {
this.listLoading = false
if (response.success) {
@ -187,11 +308,11 @@
params: {
startDate: '',
endDate: '',
customerCode: '',
customerName: '',
warehouseName: '',
useOrgSid: '',
createOrgSid: '',
brandSid: '',
goodsSid: '',
supplierSid: '',
typeSid: '',
warehouseSid: '',
}
}
this.getList()
@ -252,6 +373,34 @@
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
},
//
build() {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.expExcelOfCustomer(this.listQuery.params).then((resp) => {
loading.close()
const blob = new Blob([resp], {
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
})
const fileName = '商品采购统计_' + this.listQuery.params.startDate + '.xlsx'
const elink = document.createElement('a')
elink.download = fileName
elink.style.display = 'nonde'
elink.href = URL.createObjectURL(blob)
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href)
document.body.removeChild(elink)
}).catch(() => {
loading.close()
})
}
}
}

236
src/views/statistics/goodsSale/goodsSale.vue

@ -8,19 +8,48 @@
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="100px" class="tab-header">
<el-form-item label="下单日期">
<el-date-picker v-model="listQuery.params.startDate" value-format="yyyy-MM-dd" format="yyyy-MM-dd"
type="date" placeholder="选择日期"></el-date-picker>
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.endDate" value-format="yyyy-MM-dd" format="yyyy-MM-dd"
type="date" placeholder="选择日期"></el-date-picker>
<el-form ref="listQueryform" :inline="true" :model="listQuery" class="tab-header">
<el-form-item label="供应商">
<el-select v-model="listQuery.params.supplierSid" clearable placeholder="请选择供应商" style="width: 220px;">
<el-option v-for="item in supplierList" :key="item.sid" :label="item.supplierName" :value="item.sid">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="仓库">
<el-select v-model="listQuery.params.warehouseSid" placeholder="请选择仓库" style="width: 220px;">
<el-option v-for="item in warehouseList" :key="item.sid" :label="item.warehouseName"
:value="item.sid" />
</el-select>
</el-form-item>
<el-form-item label="采购入库日期">
<el-date-picker v-model="listQuery.params.value2" type="daterange" align="right" unlink-panels
range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" format="yyyy-MM-dd"
value-format="yyyy-MM-dd" :picker-options="pickerOptions">
</el-date-picker>
</el-form-item>
<el-form-item label="商品名称">
<el-select v-model="listQuery.params.goodsSid" placeholder="请选择商品" style="width: 220px;">
<el-option v-for="item in goodsList" :key="item.goodsSpuSid" :label="item.goodsName"
:value="item.goodsSpuSid" />
</el-select>
</el-form-item>
<el-form-item label="商品品牌">
<el-select v-model="listQuery.params.brandSid" placeholder="请选择品牌">
<el-option v-for="item in brandList" :key="item.sid" :label="item.brandName" :value="item.sid" />
</el-select>
</el-form-item>
<el-form-item label="客户编码">
<el-input v-model="listQuery.params.warehouseName" placeholder="" clearable />
<el-form-item label="商品类别">
<el-select v-model="listQuery.params.typeSid" placeholder="请选择类别">
<el-option v-for="item in cateList" :key="item.sid" :label="item.goodsTypeName" :value="item.sid" />
</el-select>
</el-form-item>
<el-form-item label="客户名称">
<el-input v-model="listQuery.params.customerName" placeholder="" clearable />
<el-form-item label="商品数量">
<el-input v-model="listQuery.params.count" placeholder="销售/退货大于" clearable />
</el-form-item>
<el-form-item label="停用商品">
<el-radio v-model="listQuery.params.state" :label="1">显示</el-radio>
<el-radio v-model="listQuery.params.state" :label="0">不显示</el-radio>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
@ -39,20 +68,20 @@
@selection-change="handleSelectionChange">
<el-table-column type="selection" align="center" width="50" />
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center" />
<el-table-column prop="billNo" label="商品编码" align="center" />
<el-table-column prop="state" label="商品名称" align="center" />
<el-table-column prop="createTime" label="规格编码" align="center" />
<el-table-column prop="billTypeValue" label="规格型号" align="center" />
<el-table-column prop="shopName" label="条码" align="center" />
<el-table-column prop="shopName" label="商品分类" align="center" />
<el-table-column prop="shopName" label="品牌" align="center" />
<el-table-column prop="shopName" label="数量" align="center" />
<el-table-column prop="shopName" label="平均单价" align="center" />
<el-table-column prop="shopName" label="金额" align="center" />
<el-table-column prop="shopName" label="成本单价" align="center" />
<el-table-column prop="shopName" label="成本" align="center" />
<el-table-column prop="shopName" label="毛利率" align="center" />
<el-table-column prop="shopName" label="毛利" align="center" />
<el-table-column prop="goodsCode" label="商品编码" align="center" />
<el-table-column prop="goodsName" label="商品名称" align="center" />
<el-table-column prop="goodsCode" label="规格编码" align="center" />
<el-table-column prop="goodsSkuCode" label="规格型号" align="center" />
<el-table-column prop="barCode" label="条码" align="center" />
<el-table-column prop="typeName" label="商品分类" align="center" />
<el-table-column prop="brandName" label="品牌" align="center" />
<el-table-column prop="count" label="数量" align="center" />
<el-table-column prop="averageCost" label="平均销售单价" align="center" />
<el-table-column prop="amount" label="销售金额" align="center" />
<el-table-column prop="cbdPrice" label="平均成本单价" align="center" />
<el-table-column prop="cbPrice" label="成本合计" align="center" />
<el-table-column prop="mll" label="毛利率" align="center" />
<el-table-column prop="ml" label="毛利" align="center" />
</el-table>
</div>
<!--End 主页面主要部分-->
@ -72,7 +101,15 @@
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import req from '@/api/statistics/cusmoterSale'
import req from '@/api/statistics/goodsSale'
import req2 from '@/api/goods/brand.js'
import req3 from '@/api/goods/category.js'
import req4 from '@/api/goods/goods.js'
import {
choiceSupplierInfo,
getWarehouses,
} from '@/api/Common/dictcommons'
export default {
name: 'SalesOrder',
@ -85,6 +122,12 @@
return {
btndisabled: false,
btnList: [{
type: 'success',
size: 'small',
icon: 'export',
btnKey: 'build',
btnLabel: '导出'
}, {
type: 'info',
size: 'small',
icon: 'cross',
@ -106,22 +149,105 @@
params: {
startDate: '',
endDate: '',
cusmoterCode: '',
customerName: '',
useOrgSid: '',
createOrgSid: '',
supplierSid: '',
warehouseSid: '',
goodsSid: '',
brandSid: '',
typeSid: '',
count: '',
state: 1,
}
}
},
pickerOptions: {
shortcuts: [{
text: '昨天',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 1);
picker.$emit('pick', [start, end]);
}
}, {
text: '近7天',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', [start, end]);
}
}, {
text: '近30天',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit('pick', [start, end]);
}
}, ]
},
value1: '',
value2: '',
brandList: [],
cateList: [],
warehouseList: [],
supplierList: [],
goodsList: [],
}
},
watch: {
'listQuery.params.value2'(newVal) {
console.log("value2 ", newVal);
this.listQuery.params.startDate = newVal[0]
this.listQuery.params.endDate = newVal[1]
}
},
created() {
//
this.getList()
this.init()
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
methods: {
init() {
choiceSupplierInfo({
createOrgSid: window.sessionStorage.getItem('orgSid')
}).then((resp) => {
if (resp.success) {
this.supplierList = resp.data
console.log("aaaaaa", this.supplierNameList);
}
})
getWarehouses({
orgPath: window.sessionStorage.getItem('orgSidPath'),
}).then((res) => {
if (res.success) {
this.warehouseList = res.data
console.log("aaaaaa", this.warehouseList);
}
})
var parpams = {
orgPath: window.sessionStorage.getItem('orgSid'),
}
req2.getAllBrand(parpams).then(resp => {
this.brandList = resp.data
})
req3.getAllType(parpams).then(resp => {
this.cateList = resp.data
})
req4.getGoodsListAllByOrg(parpams).then(resp => {
this.goodsList = resp.data
})
},
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
@ -143,6 +269,9 @@
case 'doClose':
this.doClose()
break
case 'build':
this.build()
break
default:
break
}
@ -164,8 +293,9 @@
//
getList() {
this.listLoading = true
this.listQuery.params.useOrgSid = window.sessionStorage.getItem('orgSid')
this.listQuery.params.createOrgSid = window.sessionStorage.getItem('orgSid')
this.listQuery.params.userSid = window.sessionStorage.getItem('userSid')
this.listQuery.params.orgPath = window.sessionStorage.getItem('orgSidPath')
this.listQuery.params.menuUrl = this.$route.path
req.listPage(this.listQuery).then(response => {
this.listLoading = false
if (response.success) {
@ -191,11 +321,13 @@
params: {
startDate: '',
endDate: '',
customerCode: '',
customerName: '',
warehouseName: '',
useOrgSid: '',
createOrgSid: '',
supplierSid: '',
warehouseSid: '',
goodsSid: '',
brandSid: '',
typeSid: '',
count: '',
state: 1,
}
}
this.getList()
@ -256,6 +388,34 @@
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
},
//
build() {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.expExcelOfCustomer(this.listQuery.params).then((resp) => {
loading.close()
const blob = new Blob([resp], {
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
})
const fileName = '商品销售统计_' + this.listQuery.params.startDate + '.xlsx'
const elink = document.createElement('a')
elink.download = fileName
elink.style.display = 'nonde'
elink.href = URL.createObjectURL(blob)
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href)
document.body.removeChild(elink)
}).catch(() => {
loading.close()
})
}
}
}

Loading…
Cancel
Save