You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
193 lines
6.2 KiB
193 lines
6.2 KiB
<template>
|
|
<div class="app-container">
|
|
<!--列表页面-->
|
|
<div v-show="viewState == 1">
|
|
<button-bar view-title="厂家返利汇总统计报表" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
|
|
<div class="main-content">
|
|
<div class="listtop">
|
|
<div class="tit">厂家返利汇总统计报表</div>
|
|
</div>
|
|
<div class="">
|
|
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;" :span-method="objectSpanMethod">
|
|
<el-table-column prop="customerName" label="分公司" align="center" width="120" />
|
|
<el-table-column prop="customerName" label="年份" align="center" width="120" />
|
|
<el-table-column prop="vehMark" label="预提" align="center" min-width="180" />
|
|
<el-table-column prop="vinNo" label="上传" align="center" width="150" />
|
|
<el-table-column prop="count" label="调整" align="center" width="120" />
|
|
<el-table-column prop="amount" label="实销日期" align="center" width="120" />
|
|
<el-table-column label="未上传" align="center">
|
|
<el-table-column prop="count" label="合计" align="center" width="120" />
|
|
<el-table-column label="其中费用" align="center">
|
|
<el-table-column prop="count" label="支出" align="center" width="120" />
|
|
<el-table-column prop="count" label="待支付" align="center" width="120" />
|
|
<el-table-column prop="count" label="抵顶" align="center" width="120" />
|
|
</el-table-column>
|
|
<el-table-column prop="count" label="其中返利" align="center" width="120" />
|
|
</el-table-column>
|
|
</el-table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import ButtonBar from '@/components/ButtonBar'
|
|
import req from '@/api/statement/salesstatement'
|
|
|
|
export default {
|
|
name: 'BikeRebateStatistics',
|
|
components: {
|
|
ButtonBar
|
|
},
|
|
data() {
|
|
return {
|
|
btndisabled: false,
|
|
btnList: [
|
|
{
|
|
type: 'info',
|
|
size: 'small',
|
|
icon: 'cross',
|
|
btnKey: 'doClose',
|
|
btnLabel: '关闭'
|
|
}
|
|
],
|
|
isSearchShow: false,
|
|
searchxianshitit: '显示查询条件',
|
|
viewState: 1, // 1、列表 2、新增 3、编辑 4、查看
|
|
tableKey: 0,
|
|
list: [],
|
|
FormLoading: false,
|
|
listLoading: false,
|
|
// 翻页
|
|
listQuery: {
|
|
current: 1,
|
|
size: 10,
|
|
total: 0,
|
|
params: {
|
|
goodsSpuName: '',
|
|
useOrgSid: '',
|
|
startDate: '',
|
|
endDate: '',
|
|
userSid: '',
|
|
orgPath: '',
|
|
menuUrl: ''
|
|
}
|
|
}
|
|
}
|
|
},
|
|
created() {
|
|
// 初始化变量
|
|
this.getList()
|
|
},
|
|
mounted() {
|
|
this.$refs['btnbar'].setButtonList(this.btnList)
|
|
},
|
|
methods: {
|
|
btnHandle(btnKey) {
|
|
console.log('XXXXXXXXXXXXXXX ' + btnKey)
|
|
switch (btnKey) {
|
|
case 'doClose':
|
|
this.doClose()
|
|
break
|
|
default:
|
|
break
|
|
}
|
|
},
|
|
// 查询列表信息
|
|
getList() {
|
|
this.listLoading = true
|
|
req.goodsTrendReport(this.listQuery).then(response => {
|
|
this.listLoading = false
|
|
if (response.success) {
|
|
this.list = response.data.records
|
|
this.listQuery.total = response.data.total
|
|
} else {
|
|
this.list = []
|
|
this.listQuery.total = 0
|
|
}
|
|
})
|
|
},
|
|
// 这个方法是 element-ui提供的单元格合并方法
|
|
// objectSpanMethod 传入了 { row, column, rowIndex, columnIndex }
|
|
// row: 当前行
|
|
// column: 当前列
|
|
// rowIndex:当前行号
|
|
// columnIndex: 当前列号
|
|
// 1代表: 独占一行
|
|
// 更大的自然数: 代表合并了若干行
|
|
// 0: 代表“消失”的哪那一个单元格,后面的单元格向前推一格
|
|
mergeCol(id, rowIndex) {
|
|
// debugger
|
|
// 合并单元格
|
|
// id: 属性名
|
|
// rowIndex: 行索引值
|
|
var idName = this.list[rowIndex][id] // 获取当前单元格的值
|
|
if (rowIndex > 0) {
|
|
// 判断是不是第一行
|
|
// eslint-disable-next-line eqeqeq
|
|
if (this.list[rowIndex][id] !== this.list[rowIndex - 1][id]) {
|
|
// 先判断当前单元格的值是不是和上一行的值相等
|
|
var i = rowIndex
|
|
var num = 0 // 定义一个变量i,用于记录行索引值并进行循环,num用于计数
|
|
while (i < this.list.length) {
|
|
// 当索引值小于table的数组长度时,循环执行
|
|
if (this.list[i][id] === idName) {
|
|
// 判断循环的单元格的值是不是和当前行的值相等
|
|
i++ // 如果相等,则索引值加1
|
|
num++ // 合并的num计数加1
|
|
} else {
|
|
i = this.list.length // 如果不相等,将索引值设置为table的数组长度,跳出循环
|
|
}
|
|
}
|
|
return {
|
|
rowspan: num, // 最终将合并的行数返回
|
|
colspan: 1
|
|
}
|
|
} else {
|
|
return {
|
|
rowspan: 0, // 如果相等,则将rowspan设置为0
|
|
colspan: 1
|
|
}
|
|
}
|
|
} else {
|
|
// 如果是第一行,则直接返回
|
|
let i = rowIndex
|
|
let num = 0
|
|
while (i < this.list.length) {
|
|
// 当索引值小于table的数组长度时,循环执行
|
|
if (this.list[i][id] === idName) {
|
|
i++
|
|
num++
|
|
} else {
|
|
i = this.list.length
|
|
}
|
|
}
|
|
return {
|
|
rowspan: num,
|
|
colspan: 1
|
|
}
|
|
}
|
|
},
|
|
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
|
|
// 合并单元格
|
|
switch (
|
|
columnIndex // 将列索引作为判断值
|
|
) {
|
|
// 通过传递不同的列索引和需要合并的属性名,可以实现不同列的合并(索引0,1 指的是页面上的0,1)
|
|
// gzTroubles,gzID 这两个字段是我要合并的字段名
|
|
case 0:
|
|
return this.mergeCol('useOrgName', rowIndex)
|
|
case 1:
|
|
return this.mergeCol('brandName', rowIndex)
|
|
}
|
|
},
|
|
doClose() {
|
|
this.$store.dispatch('tagsView/delView', this.$route)
|
|
this.$router.go(-1)
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
<style scoped>
|
|
</style>
|
|
|