|
|
@ -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() |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|