3 changed files with 372 additions and 408 deletions
@ -1,320 +1,308 @@ |
|||
<template> |
|||
<div> |
|||
<div class="tab-header webtop"> |
|||
<!-- 标题 --> |
|||
<div style="margin: 0 auto;">{{title}}</div> |
|||
<!-- start 添加修改按钮 --> |
|||
<div style="margin: 0 auto;">{{ title }}</div> |
|||
<div> |
|||
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button> |
|||
</div> |
|||
<!-- end 详情按钮 --> |
|||
</div> |
|||
|
|||
<div style="margin-top: 10px; height: 100%;"> |
|||
|
|||
<el-table :key="tableKey" v-loading="listLoading" height="650px" :data="list" border |
|||
style="width: 100%;margin-bottom: 50px;" :span-method="objectSpanMethods"> |
|||
<el-table-column fixed label="序号" type="index" width="80" :index="index+1" align="center" /> |
|||
<el-table-column prop="品牌" label="品牌" align="center" width="150" /> |
|||
<el-table-column prop="服务站名称" label="服务站名称" align="center" width="150" /> |
|||
<el-table-column prop="软件系统" label="软件系统" align="center" width="150" /> |
|||
|
|||
<el-table-column prop="品名" label="品名" align="center" width="150" /> |
|||
<el-table-column prop="项目" label="项目" align="center" width="150" /> |
|||
<el-table-column prop="在修车辆" label="在修车辆" align="center" width="150" /> |
|||
|
|||
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%" :span-method="arraySpanMethod" :cell-style="cellStyleMethod"> |
|||
<el-table-column fixed prop="brandName" label="品牌" align="center" width="150" /> |
|||
<el-table-column fixed prop="zoneName" label="品名" align="center" width="150" /> |
|||
<el-table-column fixed prop="houseName" label="项目" align="center" width="150" /> |
|||
<el-table-column prop="repairVehAmount" label="在修车辆" align="center" width="150" /> |
|||
<el-table-column label="库存总计" align="center"> |
|||
<el-table-column prop="库存总计品种" label="品种(个)" align="center" width="120" /> |
|||
<el-table-column prop="库存总计金额" label="金额(元)" align="center" width="120" /> |
|||
<el-table-column prop="fittingsVarietyTotal" label="品种(个)" align="center" width="120" /> |
|||
<el-table-column prop="fittingsAmountTotal" label="金额(元)" align="center" width="120" /> |
|||
</el-table-column> |
|||
|
|||
<el-table-column label="正常库存" align="center"> |
|||
|
|||
<el-table-column label="库龄1-60天" align="center"> |
|||
<el-table-column label="1-2个月内配件" align="center"> |
|||
<el-table-column prop="1月金额" label="品种(个)" align="center" width="120" /> |
|||
<el-table-column prop="1月金额" label="金额(元)" align="center" width="120" /> |
|||
<el-table-column prop="1月占比" label="占比" align="center" width="120" /> |
|||
<el-table-column prop="fittingsVarietyOne" label="品种(个)" align="center" width="120"/> |
|||
<el-table-column prop="fittingsAmountOne" label="金额(元)" align="center" width="120"/> |
|||
<el-table-column prop="fittingsPercentOne" label="占比" align="center" width="120"/> |
|||
</el-table-column> |
|||
</el-table-column> |
|||
|
|||
<!-- <el-table-column label="库龄61-90天" align="center"> |
|||
<el-table-column label="超2个月(3个月)配件" align="center"> |
|||
<el-table-column prop="deptName" label="品种(个)" align="center" width="120" /> |
|||
<el-table-column prop="deptName" label="金额(元)" align="center" width="120" /> |
|||
<el-table-column prop="deptName" label="占比" align="center" width="120" /> |
|||
<el-table-column label="库龄61-90天" align="center"> |
|||
<el-table-column label="超2个月(3个月)配件" align="center"> |
|||
<el-table-column prop="fittingsVarietyTwo" label="品种(个)" align="center" width="120"/> |
|||
<el-table-column prop="fittingsAmountTwo" label="金额(元)" align="center" width="120"/> |
|||
<el-table-column prop="fittingsPercentTwo" label="占比" align="center" width="120"/> |
|||
</el-table-column> |
|||
</el-table-column> |
|||
|
|||
</el-table-column> |
|||
|
|||
<el-table-column label="滞销件" align="center"> |
|||
|
|||
<el-table-column label="库龄91-180天" align="center"> |
|||
<el-table-column label="超3个月(4-6个月)" align="center"> |
|||
<el-table-column prop="deptName" label="品种(个)" align="center" width="120" /> |
|||
<el-table-column prop="deptName" label="金额(元)" align="center" width="120" /> |
|||
<el-table-column prop="deptName" label="占比" align="center" width="120" /> |
|||
<el-table-column label="超3个月(4-6个月)" align="center"> |
|||
<el-table-column prop="fittingsVarietyThree" label="品种(个)" align="center" width="120"/> |
|||
<el-table-column prop="fittingsAmountThree" label="金额(元)" align="center" width="120"/> |
|||
<el-table-column prop="fittingsPercentThree" label="占比" align="center" width="120"/> |
|||
</el-table-column> |
|||
</el-table-column> |
|||
|
|||
<el-table-column label="库龄150-180天" align="center"> |
|||
<el-table-column label="超5个月(6个月)" align="center"> |
|||
<el-table-column prop="deptName" label="品种(个)" align="center" width="120" /> |
|||
<el-table-column prop="deptName" label="金额(元)" align="center" width="120" /> |
|||
<el-table-column prop="deptName" label="占比" align="center" width="120" /> |
|||
<el-table-column label="超5个月(6个月)" align="center"> |
|||
<el-table-column prop="fittingsVarietyFour" label="品种(个)" align="center" width="120"/> |
|||
<el-table-column prop="fittingsAmountFour" label="金额(元)" align="center" width="120"/> |
|||
<el-table-column prop="fittingsPercentFour" label="占比" align="center" width="120"/> |
|||
</el-table-column> |
|||
</el-table-column> |
|||
|
|||
</el-table-column> |
|||
|
|||
<el-table-column label="积压件" align="center"> |
|||
|
|||
<el-table-column label="库龄181-270天" align="center"> |
|||
<el-table-column label="超6个月(7-9个月)" align="center"> |
|||
<el-table-column prop="deptName" label="品种(个)" align="center" width="120" /> |
|||
<el-table-column prop="deptName" label="金额(元)" align="center" width="120" /> |
|||
<el-table-column prop="deptName" label="占比" align="center" width="120" /> |
|||
<el-table-column label="超6个月(7-9个月)" align="center"> |
|||
<el-table-column prop="fittingsVarietyFive" label="品种(个)" align="center" width="120"/> |
|||
<el-table-column prop="fittingsAmountFive" label="金额(元)" align="center" width="120"/> |
|||
<el-table-column prop="fittingsPercentFive" label="占比" align="center" width="120"/> |
|||
</el-table-column> |
|||
</el-table-column> |
|||
|
|||
<el-table-column label="库龄240-270天" align="center"> |
|||
<el-table-column label="超8个月(9个月)" align="center"> |
|||
<el-table-column prop="deptName" label="品种(个)" align="center" width="120" /> |
|||
<el-table-column prop="deptName" label="金额(元)" align="center" width="120" /> |
|||
<el-table-column prop="deptName" label="占比" align="center" width="120" /> |
|||
<el-table-column label="超8个月(9个月)" align="center"> |
|||
<el-table-column prop="fittingsVarietySix" label="品种(个)" align="center" width="120"/> |
|||
<el-table-column prop="fittingsAmountSix" label="金额(元)" align="center" width="120"/> |
|||
<el-table-column prop="fittingsPercentSix" label="占比" align="center" width="120"/> |
|||
</el-table-column> |
|||
</el-table-column> |
|||
|
|||
<el-table-column label="库龄271-360天" align="center"> |
|||
<el-table-column label="超9个月(10-12个月)" align="center"> |
|||
<el-table-column prop="deptName" label="品种(个)" align="center" width="120" /> |
|||
<el-table-column prop="deptName" label="金额(元)" align="center" width="120" /> |
|||
<el-table-column prop="deptName" label="占比" align="center" width="120" /> |
|||
<el-table-column label="超9个月(10-12个月)" align="center"> |
|||
<el-table-column prop="fittingsVarietySeven" label="品种(个)" align="center" width="120"/> |
|||
<el-table-column prop="fittingsAmountSeven" label="金额(元)" align="center" width="120"/> |
|||
<el-table-column prop="fittingsPercentSeven" label="占比" align="center" width="120"/> |
|||
</el-table-column> |
|||
</el-table-column> |
|||
|
|||
<el-table-column label="库龄330-360天" align="center"> |
|||
<el-table-column label="超11个月(12个月)" align="center"> |
|||
<el-table-column prop="deptName" label="品种(个)" align="center" width="120" /> |
|||
<el-table-column prop="deptName" label="金额(元)" align="center" width="120" /> |
|||
<el-table-column prop="deptName" label="占比" align="center" width="120" /> |
|||
<el-table-column label="超11个月(12个月)" align="center"> |
|||
<el-table-column prop="fittingsVarietyEight" label="品种(个)" align="center" width="120"/> |
|||
<el-table-column prop="fittingsAmountEight" label="金额(元)" align="center" width="120"/> |
|||
<el-table-column prop="fittingsPercentEight" label="占比" align="center" width="120"/> |
|||
</el-table-column> |
|||
</el-table-column> |
|||
|
|||
<el-table-column label="库龄361-720天" align="center"> |
|||
<el-table-column label="超12个月(13-24个月)" align="center"> |
|||
<el-table-column prop="deptName" label="品种(个)" align="center" width="120" /> |
|||
<el-table-column prop="deptName" label="金额(元)" align="center" width="120" /> |
|||
<el-table-column prop="deptName" label="占比" align="center" width="120" /> |
|||
<el-table-column label="超12个月(13-24个月)" align="center"> |
|||
<el-table-column prop="fittingsVarietyNine" label="品种(个)" align="center" width="120"/> |
|||
<el-table-column prop="fittingsAmountNine" label="金额(元)" align="center" width="120"/> |
|||
<el-table-column prop="fittingsPercentNine" label="占比" align="center" width="120"/> |
|||
</el-table-column> |
|||
</el-table-column> |
|||
|
|||
<el-table-column label="超24个月(25个月以上)" align="center"> |
|||
<el-table-column label="超11个月(12个月)" align="center"> |
|||
<el-table-column prop="deptName" label="品种(个)" align="center" width="120" /> |
|||
<el-table-column prop="deptName" label="金额(元)" align="center" width="120" /> |
|||
<el-table-column prop="deptName" label="占比" align="center" width="120" /> |
|||
<el-table-column label="超24个月(25个月以上)" align="center"> |
|||
<el-table-column label="超11个月(12个月)" align="center"> |
|||
<el-table-column prop="fittingsVarietyTen" label="品种(个)" align="center" width="120"/> |
|||
<el-table-column prop="fittingsAmountTen" label="金额(元)" align="center" width="120"/> |
|||
<el-table-column prop="fittingsPercentTen" label="占比" align="center" width="120"/> |
|||
</el-table-column> |
|||
</el-table-column> --> |
|||
|
|||
</el-table-column> |
|||
</el-table-column> |
|||
|
|||
<el-table-column label="库存当量" align="center"> |
|||
|
|||
<el-table-column label="当月出库配件成本" align="center"> |
|||
<el-table-column prop="库存当量出库金额" label="金额(元)" align="center" width="120" /> |
|||
<el-table-column prop="库存当量出库占比" label="占比" align="center" width="120" /> |
|||
<el-table-column prop="fittingsOutAmount" label="金额(元)" align="center" width="120" /> |
|||
<el-table-column prop="fittingsOutPercent" label="占比" align="center" width="120" /> |
|||
</el-table-column> |
|||
|
|||
<el-table-column label="当月入库配件成本" align="center"> |
|||
<el-table-column prop="库存当量入库金额" label="金额(元)" align="center" width="120" /> |
|||
<el-table-column prop="库存当量入库占比" label="占比" align="center" width="120" /> |
|||
<el-table-column prop="fittingslnAmount" label="金额(元)" align="center" width="120" /> |
|||
<el-table-column prop="fittingslnPercent" label="占比" align="center" width="120" /> |
|||
</el-table-column> |
|||
|
|||
</el-table-column> |
|||
|
|||
|
|||
|
|||
|
|||
</el-table> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import req from '@/api/statement/monthlyReport/inventoryManagement' |
|||
export default { |
|||
data() { |
|||
return { |
|||
index: 0, |
|||
tableKey: 0, |
|||
listLoading: false, |
|||
list: [], |
|||
title: "", |
|||
mergeObj: {}, // 用来记录需要合并行的下标 |
|||
mergeArr: ['品牌', '服务站名称', '软件系统', '品名', '库存当量出库金额', '库存当量出库占比', '库存当量入库金额', '库存当量入库占比'], // 表格中的列名 |
|||
// mergeArr: ['品牌', '服务站名称', '软件系统', '品名'], // 表格中的列名 |
|||
} |
|||
}, |
|||
|
|||
methods: { |
|||
|
|||
objectSpanMethods({ |
|||
row, //当前行、 |
|||
column, //当前列、 |
|||
rowIndex, //当前行索引 |
|||
columnIndex //当前列索引 |
|||
}) { |
|||
|
|||
if (row.项目 == '总计') { |
|||
if (columnIndex === 4) { |
|||
//定位到6行4列的ID,告诉该单元格合并1行2列 |
|||
return [1, 2] |
|||
} |
|||
if (columnIndex === 5) { |
|||
//定位到6行4列的ID,告诉该单元格合并1行2列 |
|||
return [0, 0] |
|||
} |
|||
import req from '@/api/statement/monthlyReport/inventoryManagement' |
|||
|
|||
export default { |
|||
data() { |
|||
return { |
|||
index: 0, |
|||
tableKey: 0, |
|||
listLoading: false, |
|||
title: '', |
|||
list: [], |
|||
brandNameArr: [], |
|||
brandNamePos: '', |
|||
zoneNameArr: [], |
|||
zoneNamePos: '' |
|||
} |
|||
}, |
|||
created() { |
|||
this.formatData() |
|||
}, |
|||
methods: { |
|||
showAdd(row) { |
|||
this.title = '安瑞集团' + row.createDate + row.useOrgName + '服务站配件库存管理指标完成情况报表' |
|||
req.getDetail({ createDate: row.createDate, useOrgSid: row.useOrgSid }).then(resp => { |
|||
if (resp.success) { |
|||
this.list = resp.data |
|||
this.$nextTick(() => { |
|||
this.formatData() |
|||
}) |
|||
} |
|||
|
|||
// 判断列的属性 |
|||
if (this.mergeArr.indexOf(column.property) !== -1) { |
|||
// 判断其值是不是为0 |
|||
if (this.mergeObj[column.property][rowIndex]) { |
|||
return [this.mergeObj[column.property][rowIndex], 1] |
|||
}) |
|||
}, |
|||
formatData() { |
|||
let data = JSON.parse(JSON.stringify(this.list)) |
|||
let pos = 0 |
|||
let temp = {} |
|||
// 循环后端返回的数据 |
|||
for (let i = 0; i < data.length; i++) { |
|||
// 构造一个临时数据对象,用于存储每个循环的数据 |
|||
temp[data[i].zoneName] ? temp[data[i].zoneName] : (temp[data[i].zoneName] = {}) |
|||
// 因为表格的字段是动态生成的,所以要循环每个字段来添加数据,如果是确定某个字段需要汇总,那简单很多 |
|||
for (const key in data[i]) { |
|||
// 判断是数字,但不是手机号,可以累加起来 |
|||
if (this.isNumberOrDecimalButNotPhone(data[i][key])) { |
|||
// 判断不是数字的,重置为0 |
|||
if (temp[data[i].zoneName][key] === undefined || isNaN(temp[data[i].zoneName][key])) { |
|||
temp[data[i].zoneName][key] = 0 |
|||
} |
|||
temp[data[i].zoneName][key] = Math.round((parseFloat(temp[data[i].zoneName][key]) + parseFloat(data[i][key])) * 100) / 100 |
|||
} else { |
|||
// 如果为0则为需要合并的行 |
|||
return [0, 0]; |
|||
temp[data[i].zoneName][key] = '--' |
|||
} |
|||
} |
|||
|
|||
// var columnIndex1 = 1 |
|||
// var columnIndex2 = 1 |
|||
// var columnIndex3 = 1 |
|||
|
|||
// for (var i = 0; i < this.list.length; i++) { |
|||
// for (var j = 0; j < this.list.length; j++) { |
|||
|
|||
// if (this.list[i].品牌 == this.list[j].品牌) { |
|||
// columnIndex1 += 1 |
|||
// } |
|||
// if (this.list[i].服务站名称 == this.list[j].服务站名称) { |
|||
// columnIndex2 += 1 |
|||
// } |
|||
// if (this.list[i].软件系统 == this.list[j].软件系统) { |
|||
// columnIndex3 += 1 |
|||
// } |
|||
// } |
|||
// } |
|||
|
|||
// console.log('>>>>>>>>>1', columnIndex1) |
|||
// console.log('>>>>>>>>>2', columnIndex2) |
|||
// console.log('>>>>>>>>>3', columnIndex3) |
|||
|
|||
// if (columnIndex === 1) { |
|||
// //定位到6行4列的ID,告诉该单元格合并1行2列 |
|||
// return [columnIndex1, 1] |
|||
// } |
|||
|
|||
// if (columnIndex === 2) { |
|||
// //定位到6行4列的ID,告诉该单元格合并1行2列 |
|||
// return [columnIndex2, 1] |
|||
// } |
|||
// if (columnIndex === 3) { |
|||
// //定位到6行4列的ID,告诉该单元格合并1行2列 |
|||
// return [columnIndex3, 1] |
|||
// } |
|||
|
|||
|
|||
|
|||
}, |
|||
showAdd(row) { |
|||
this.title = "安瑞集团" + row.createTime + row.deptName + "服务站配件库存管理指标完成情况报表" |
|||
|
|||
req.getDetail(row.sid) |
|||
.then(resp => { |
|||
if (resp.success) { |
|||
this.list = resp.data |
|||
this.getSpanArr(this.list) |
|||
} |
|||
// 利用 zoneName 品名区分,如果新一行的数据跟上一行不同,是需要下一个合并了,此处插入一个合计 |
|||
if (i > 0 && data[i].zoneName !== data[i - 1].zoneName) { |
|||
this.list.splice(i + pos, 0, { |
|||
...temp[data[i - 1].zoneName], |
|||
brandName: data[i - 1].brandName, |
|||
zoneName: data[i - 1].zoneName, |
|||
houseName: '合计' |
|||
}) |
|||
.catch(e => { |
|||
this.$emit('doback') |
|||
}) |
|||
|
|||
}, |
|||
// getSpanArr方法 |
|||
getSpanArr(data) { |
|||
this.mergeArr.forEach((key, index1) => { |
|||
let count = 0; // 用来记录需要合并行的起始位置 |
|||
this.mergeObj[key] = []; // 记录每一列的合并信息 |
|||
data.forEach((item, index) => { |
|||
// index == 0表示数据为第一行,直接 push 一个 1 |
|||
if (index === 0) { |
|||
this.mergeObj[key].push(1); |
|||
pos++ |
|||
// 出现合计后,将临时对象temp中对应的品名对象进行重置数字归0 |
|||
for (const key in data[i]) { |
|||
// 判断是数字,但不是手机号,可以累加起来 |
|||
if (this.isNumberOrDecimalButNotPhone(data[i - 1][key])) { |
|||
temp[data[i - 1].zoneName][key] = 0 |
|||
} else { |
|||
// console.log('>>>>>>>>>commodityCurrentChange', item) |
|||
// console.log('>>>>>>>>>commodityCurrentChange', key) |
|||
// console.log('>>>>>>>>>commodityCurrentChange', item[key]) |
|||
// console.log('>>>>>>>>>commodityCurrentChange', data[index - 1][key]) |
|||
// 判断当前行是否与上一行其值相等 如果相等 在 count 记录的位置其值 +1 表示当前行需要合并 并push 一个 0 作为占位 |
|||
if (item.品牌 == data[index - 1].品牌) { |
|||
|
|||
if (item.服务站名称 == data[index - 1].服务站名称) { |
|||
|
|||
if (item.软件系统 == data[index - 1].软件系统) { |
|||
if (item.品名 == data[index - 1].品名) { |
|||
if (item[key] === data[index - 1][key]) { |
|||
this.mergeObj[key][count] += 1; |
|||
this.mergeObj[key].push(0); |
|||
} else { |
|||
// 如果当前行和上一行其值不相等 |
|||
count = index; // 记录当前位置 |
|||
this.mergeObj[key].push(1); // 重新push 一个 1 |
|||
} |
|||
} else { |
|||
// 如果当前行和上一行其值不相等 |
|||
count = index; // 记录当前位置 |
|||
this.mergeObj[key].push(1); // 重新push 一个 1 |
|||
} |
|||
} else { |
|||
// 如果当前行和上一行其值不相等 |
|||
count = index; // 记录当前位置 |
|||
this.mergeObj[key].push(1); // 重新push 一个 1 |
|||
} |
|||
|
|||
} else { |
|||
// 如果当前行和上一行其值不相等 |
|||
count = index; // 记录当前位置 |
|||
this.mergeObj[key].push(1); // 重新push 一个 1 |
|||
} |
|||
|
|||
} else { |
|||
// 如果当前行和上一行其值不相等 |
|||
count = index; // 记录当前位置 |
|||
this.mergeObj[key].push(1); // 重新push 一个 1 |
|||
temp[data[i - 1].zoneName][key] = '--' |
|||
} |
|||
} |
|||
} else if (i === data.length - 1) { |
|||
// 最后一行加个合计 |
|||
this.list.push({ |
|||
...temp[data[i - 1].zoneName], |
|||
brandName: data[i - 1].brandName, |
|||
zoneName: data[i - 1].zoneName, |
|||
houseName: '合计' |
|||
}) |
|||
pos++ |
|||
} |
|||
} |
|||
let datas = JSON.parse(JSON.stringify(this.list)) |
|||
let zjs = 0 |
|||
let aggregate = {} |
|||
for (let k = 0; k < datas.length; k++) { |
|||
// 构造一个临时数据对象,用于存储每个循环的数据 |
|||
aggregate[datas[k].brandName] ? aggregate[datas[k].brandName] : (aggregate[datas[k].brandName] = {}) |
|||
for (const key in datas[k]) { |
|||
if (datas[k].houseName === '合计') { |
|||
if (this.isNumberOrDecimalButNotPhone(datas[k][key])) { |
|||
// 判断不是数字的,重置为0 |
|||
if (aggregate[datas[k].brandName][key] === undefined || isNaN(aggregate[datas[k].brandName][key])) { |
|||
aggregate[datas[k].brandName][key] = 0 |
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
aggregate[datas[k].brandName][key] += parseFloat(datas[k][key]) |
|||
} else { |
|||
aggregate[datas[k].brandName][key] = '--' |
|||
} |
|||
} |
|||
} |
|||
// 利用 brandName 品牌区分,如果新一行的数据跟上一行不同,是需要下一个合并了,此处插入一个总计 |
|||
if (k > 0 && datas[k].brandName !== datas[k - 1].brandName) { |
|||
this.list.splice(k + zjs, 0, { |
|||
...aggregate[datas[k - 1].brandName], |
|||
brandName: datas[k - 1].brandName, |
|||
zoneName: '总计', |
|||
houseName: '总计' |
|||
}) |
|||
}) |
|||
}, |
|||
|
|||
handleReturn(isreload) { |
|||
if (isreload === 'true') this.$emit('reloadlist') |
|||
this.formobj = { |
|||
|
|||
zjs++ |
|||
} else if (k === datas.length - 1) { |
|||
// 最后一行加个总计 |
|||
this.list.push({ |
|||
...aggregate[datas[k - 1].brandName], |
|||
brandName: datas[k - 1].brandName, |
|||
zoneName: '总计', |
|||
houseName: '总计' |
|||
}) |
|||
zjs++ |
|||
} |
|||
} |
|||
this.getSpanArr(this.list, this.brandNameArr, this.brandNamePos, 'brandName') |
|||
this.getSpanArr(this.list, this.zoneNameArr, this.zoneNamePos, 'zoneName') |
|||
console.log(2222222, this.list) |
|||
}, |
|||
cellStyleMethod({ row, column, rowIndex, columnIndex }) { |
|||
if (row.houseName === '合计') { |
|||
if (columnIndex === 2) { |
|||
return { 'text-align': 'center' } |
|||
} |
|||
this.$emit('doback') |
|||
} |
|||
}, |
|||
arraySpanMethod({ row, column, rowIndex, columnIndex }) { |
|||
if (row.houseName === '合计') { |
|||
if (columnIndex === 0 || columnIndex === 1) { |
|||
return [0, 0] |
|||
} else if (columnIndex === 2) { |
|||
return [1, 1] |
|||
} |
|||
} else if (row.zoneName === '总计') { |
|||
if (columnIndex === 0 || columnIndex === 2) { |
|||
return [0, 0] |
|||
} else if (columnIndex === 1) { |
|||
return [1, 2] |
|||
} |
|||
} else { |
|||
if (columnIndex == 0) { |
|||
const _row = this.brandNameArr[rowIndex] |
|||
const _col = _row > 0 ? 1 : 0 |
|||
return { |
|||
// [0,0] 表示这一行不显示, [2,1]表示行的合并数 |
|||
rowspan: _row, |
|||
colspan: _col |
|||
} |
|||
} |
|||
if (columnIndex == 1) { |
|||
const _row = this.zoneNameArr[rowIndex] |
|||
const _col = _row > 0 ? 1 : 0 |
|||
return { |
|||
// [0,0] 表示这一行不显示, [2,1]表示行的合并数 |
|||
rowspan: _row, |
|||
colspan: _col |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
getSpanArr(data, temp, pos, label) { |
|||
// data就是我们从后台拿到的数据 |
|||
for (let i = 0; i < data.length; i++) { |
|||
if (i === 0) { |
|||
temp.push(1) |
|||
pos = 0 |
|||
} else { |
|||
// 判断当前元素与上一个元素是否相同 |
|||
if (data[i][label] === data[i - 1][label]) { |
|||
temp[pos] += 1 |
|||
temp.push(0) |
|||
} else { |
|||
temp.push(1) |
|||
pos = i |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
// 只包含数字或小数点,但不是手机号 |
|||
isNumberOrDecimalButNotPhone(str) { |
|||
return /^1[0-9]{10}$/.test(str) === false && /^[\d.]+$/.test(str) |
|||
}, |
|||
handleReturn(isreload) { |
|||
if (isreload === 'true') this.$emit('reloadlist') |
|||
this.formobj = {} |
|||
this.$emit('doback') |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped> |
|||
|
|||
</style> |
|||
|
Loading…
Reference in new issue