|
@@ -74,7 +74,10 @@
|
|
|
</el-select>
|
|
|
<el-button class="successBorder" @click="form_search('second')">查询</el-button>
|
|
|
<el-button class="export" style="float: right;margin-right: 5px;margin-top:10px;" icon="el-icon-upload2" @click="handleExport('tab2')">导出</el-button>
|
|
|
- </div>
|
|
|
+ <el-button class="export" style="float: right;margin-right: 5px;margin-top:10px;" icon="el-icon-upload2" @click="handlesWitch()">切换展示</el-button>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div v-if="isTable1">
|
|
|
<div v-if="tab2.table.tableConfig.length > 8">
|
|
|
<u-table v-if="isDispayTable2" ref="plTable2" v-loading="tab2.table.listLoading" :row-style="rowStyle" :cell-style="cellStyle" :max-height="myHeight2" use-virtual :row-height="rowHeight" border class="elTable table-fixed plTable2">
|
|
|
<!-- 第一个表头 -->
|
|
@@ -117,6 +120,13 @@
|
|
|
</div>
|
|
|
|
|
|
<span v-if="tab2.table.listLoading == false && tab2.table.list.length>0" style="margin-right: 30px;margin-top: 10px;font-size: 14px;">共{{ tab2.table.total }}条</span>
|
|
|
+ </div>
|
|
|
+ <div v-else>
|
|
|
+ <el-table :data="tableData" :span-method="objectSpanMethod" v-loading="tab2.table.listLoading" :row-style="rowStyle" :cell-style="cellStyle" :max-height="myHeight2" use-virtual :row-height="rowHeight" border>
|
|
|
+ <el-table-column v-for="(column, index) in tableColumns" :key="index" :prop="column.prop" :label="column.label" align="center">
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
</el-tab-pane>
|
|
|
<el-tab-pane label="价格分析" name="third">
|
|
|
<div class="search">
|
|
@@ -307,6 +317,9 @@ export default {
|
|
|
statisticalTypeList2: [{ id: '1', name: '牲畜类别' }, { id: '2', name: '栏舍名称' }, { id: '3', name: '日期' }, { id: '4', name: 'TMR设备编号' }, { id: '5', name: 'TMR班次' }, { id: '6', name: '车次' }],
|
|
|
statisticalTypeList3: [{ id: '1', name: '牲畜类别' }, { id: '2', name: '栏舍名称' }, { id: '3', name: '日期' }, { id: '4', name: 'TMR设备编号' }],
|
|
|
frequencyList: [], // 班次
|
|
|
+ isTable1:true,
|
|
|
+ spanObj: {},
|
|
|
+ mergekeys: ['A', 'B'],
|
|
|
}
|
|
|
},
|
|
|
created() {
|
|
@@ -810,6 +823,73 @@ export default {
|
|
|
},
|
|
|
changeChecked(item) {
|
|
|
this.form_search('second')
|
|
|
+ },
|
|
|
+ handlesWitch(item){
|
|
|
+ console.log(item)
|
|
|
+ this.isTable1 = !this.isTable1
|
|
|
+ if(!this.isTable1){
|
|
|
+ let data = {
|
|
|
+ "columns": [
|
|
|
+ { prop: 'A', label: '饲料编码' },
|
|
|
+ { prop: 'B', label: '饲料名称' },
|
|
|
+ { prop: "C", label: "牲畜类别" },
|
|
|
+ { prop: "D", label: "3-4月龄" }
|
|
|
+ ],
|
|
|
+ "data": [
|
|
|
+ { A: "111", B: "饲料1", C: "理论", D: "6666" },
|
|
|
+ { A: "111", B: "饲料1", C: "实际",D: "6666" },
|
|
|
+ { A: "222", B: "饲料2", C: "理论", D: "6666" },
|
|
|
+ { A: "222", B: "饲料2", C: "理论", D: "6666" }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+ this.tableColumns = data.columns;
|
|
|
+ this.tableData = data.data;
|
|
|
+ this.handleSpan()
|
|
|
+ }else{
|
|
|
+ this.getTab2List()
|
|
|
+ }
|
|
|
+ },
|
|
|
+ handleSpan() {
|
|
|
+ this.mergekeys.forEach(key => {
|
|
|
+ this.spanObj[key] = []
|
|
|
+ let position = 0
|
|
|
+ this.tableData.forEach((item, index) => {
|
|
|
+ if (index === 0) {
|
|
|
+ this.spanObj[key].push(1)
|
|
|
+ position = 0
|
|
|
+ } else {
|
|
|
+ if (key == 'B') {
|
|
|
+ if (this.tableData[index][key] === this.tableData[index - 1][key] && this.tableData[index]['A'] === this.tableData[index - 1]['A']) {
|
|
|
+ this.spanObj[key][position] += 1
|
|
|
+ this.spanObj[key].push(0)
|
|
|
+ } else {
|
|
|
+ this.spanObj[key].push(1)
|
|
|
+ position = index
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (this.tableData[index][key] === this.tableData[index - 1][key]) {
|
|
|
+ this.spanObj[key][position] += 1
|
|
|
+ this.spanObj[key].push(0)
|
|
|
+ } else {
|
|
|
+ this.spanObj[key].push(1)
|
|
|
+ position = index
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ objectSpanMethod({ row, column, rowIndex, columnIndex }) {
|
|
|
+ for (let i = 0; i < this.mergekeys.length; i++) {
|
|
|
+ if (column.property === this.mergekeys[i]) {
|
|
|
+ const _row = this.spanObj[this.mergekeys[i]][rowIndex]
|
|
|
+ const _col = _row > 0 ? 1 : 0
|
|
|
+ return {
|
|
|
+ rowspan: _row,
|
|
|
+ colspan: _col
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
},
|
|
|
handleExport(item) {
|
|
|
if (item == 'tab1') {
|
|
@@ -835,100 +915,121 @@ export default {
|
|
|
excel.export_json_to_excel({ multiHeader, multiHeader2, data, filename: '库存统计', merges })
|
|
|
})
|
|
|
})
|
|
|
- } else if (item == 'tab2') {
|
|
|
- console.log('用料分析导出数据', this.tab2.table.list)
|
|
|
- console.log('用料分析导出表头', this.tab2.table.tableConfig)
|
|
|
- console.log(this.tab2.table.getdataListParm.checked, 'checked')
|
|
|
- console.log(this.tab2.table.getdataListParm)
|
|
|
- var startTime = this.tab2.table.getdataListParm.parammaps.startTime
|
|
|
- var stopTime = this.tab2.table.getdataListParm.parammaps.stopTime
|
|
|
+ } else if (item == 'tab2') {
|
|
|
+ if(this.isTable1){
|
|
|
+ console.log('用料分析导出数据', this.tab2.table.list)
|
|
|
+ console.log('用料分析导出表头', this.tab2.table.tableConfig)
|
|
|
+ console.log(this.tab2.table.getdataListParm.checked, 'checked')
|
|
|
+ console.log(this.tab2.table.getdataListParm)
|
|
|
+ var startTime = this.tab2.table.getdataListParm.parammaps.startTime
|
|
|
+ var stopTime = this.tab2.table.getdataListParm.parammaps.stopTime
|
|
|
|
|
|
- var exportData = []
|
|
|
- var exportTitle1 = [] // 一级标题
|
|
|
- var exportTitle2 = [] // 二级标题
|
|
|
- var exportTitle3 = [] // 一级标题
|
|
|
- var filterValArr = []
|
|
|
- for (let i = 0; i < this.tab2.table.tableConfig.length; i++) {
|
|
|
- exportTitle1.push(this.tab2.table.tableConfig[i].label)
|
|
|
- for (let j = 0; j < this.tab2.table.tableConfig[i].children.length; j++) {
|
|
|
- exportTitle2.push(this.tab2.table.tableConfig[i].children[j].label)
|
|
|
- for(let a = 0;a<this.tab2.table.tableConfig[i].children[j].children.length;a++){
|
|
|
- exportTitle3.push(this.tab2.table.tableConfig[i].children[j].children[a].label)
|
|
|
- filterValArr.push(this.tab2.table.tableConfig[i].children[j].children[a].prop)
|
|
|
- }
|
|
|
- // filterValArr.push(this.tab2.table.tableConfig[i].children[j].prop)
|
|
|
- }
|
|
|
- }
|
|
|
- console.log('一级标题exportTitle1', exportTitle1)
|
|
|
- console.log('二级标题exportTitle2', exportTitle2)
|
|
|
- console.log('三级标题exportTitle3', exportTitle3)
|
|
|
- console.log('对应字段filterValArr', filterValArr)
|
|
|
- var headerArr = []// 处理一级标题
|
|
|
- var headerArr2 = []// 处理一级标题
|
|
|
- if (this.tab2.table.getdataListParm.checked == 1) {
|
|
|
- for (let i = 0; i < exportTitle1.length; i++) {
|
|
|
- if (i > 0) {
|
|
|
- headerArr.push(exportTitle1[i], '', '', '')
|
|
|
- } else {
|
|
|
- headerArr.push(exportTitle1[i])
|
|
|
- }
|
|
|
- if (i > 0) {
|
|
|
- headerArr2.push(exportTitle2[i], '', '', '')
|
|
|
- } else {
|
|
|
- headerArr2.push(exportTitle2[i])
|
|
|
+ var exportData = []
|
|
|
+ var exportTitle1 = [] // 一级标题
|
|
|
+ var exportTitle2 = [] // 二级标题
|
|
|
+ var exportTitle3 = [] // 一级标题
|
|
|
+ var filterValArr = []
|
|
|
+ for (let i = 0; i < this.tab2.table.tableConfig.length; i++) {
|
|
|
+ exportTitle1.push(this.tab2.table.tableConfig[i].label)
|
|
|
+ for (let j = 0; j < this.tab2.table.tableConfig[i].children.length; j++) {
|
|
|
+ exportTitle2.push(this.tab2.table.tableConfig[i].children[j].label)
|
|
|
+ for(let a = 0;a<this.tab2.table.tableConfig[i].children[j].children.length;a++){
|
|
|
+ exportTitle3.push(this.tab2.table.tableConfig[i].children[j].children[a].label)
|
|
|
+ filterValArr.push(this.tab2.table.tableConfig[i].children[j].children[a].prop)
|
|
|
+ }
|
|
|
+ // filterValArr.push(this.tab2.table.tableConfig[i].children[j].prop)
|
|
|
}
|
|
|
}
|
|
|
- } else {
|
|
|
- if(this.tab2.table.getdataListParm.parammaps.typea == ''){
|
|
|
+ console.log('一级标题exportTitle1', exportTitle1)
|
|
|
+ console.log('二级标题exportTitle2', exportTitle2)
|
|
|
+ console.log('三级标题exportTitle3', exportTitle3)
|
|
|
+ console.log('对应字段filterValArr', filterValArr)
|
|
|
+ var headerArr = []// 处理一级标题
|
|
|
+ var headerArr2 = []// 处理一级标题
|
|
|
+ if (this.tab2.table.getdataListParm.checked == 1) {
|
|
|
for (let i = 0; i < exportTitle1.length; i++) {
|
|
|
if (i > 0) {
|
|
|
- headerArr.push(exportTitle1[i], '')
|
|
|
+ headerArr.push(exportTitle1[i], '', '', '')
|
|
|
} else {
|
|
|
headerArr.push(exportTitle1[i])
|
|
|
}
|
|
|
if (i > 0) {
|
|
|
- headerArr2.push(exportTitle2[i], '')
|
|
|
+ headerArr2.push(exportTitle2[i], '', '', '')
|
|
|
} else {
|
|
|
headerArr2.push(exportTitle2[i])
|
|
|
}
|
|
|
}
|
|
|
- }else{
|
|
|
- headerArr = exportTitle1
|
|
|
- headerArr2 = exportTitle2
|
|
|
+ } else {
|
|
|
+ if(this.tab2.table.getdataListParm.parammaps.typea == ''){
|
|
|
+ for (let i = 0; i < exportTitle1.length; i++) {
|
|
|
+ if (i > 0) {
|
|
|
+ headerArr.push(exportTitle1[i], '')
|
|
|
+ } else {
|
|
|
+ headerArr.push(exportTitle1[i])
|
|
|
+ }
|
|
|
+ if (i > 0) {
|
|
|
+ headerArr2.push(exportTitle2[i], '')
|
|
|
+ } else {
|
|
|
+ headerArr2.push(exportTitle2[i])
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ headerArr = exportTitle1
|
|
|
+ headerArr2 = exportTitle2
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- console.log('headerArr', headerArr)
|
|
|
- console.log('exportTitle2', exportTitle2)
|
|
|
- console.log('filterValArr', filterValArr)
|
|
|
- if (headerArr.length > 0) {
|
|
|
- import('@/vendor/Export3Excel').then((excel) => {
|
|
|
- const multiHeader = [
|
|
|
- headerArr
|
|
|
- ]
|
|
|
- const multiHeader2 = [
|
|
|
- headerArr2
|
|
|
- ]
|
|
|
- const tHeader = exportTitle3
|
|
|
- const filterVal = filterValArr
|
|
|
- const data = this.tab2.table.list.map(v => filterVal.map(j => v[j]))
|
|
|
- // const data = []
|
|
|
- const merges = ['A1:A1']
|
|
|
- excel.export_json_to_excel({ multiHeader, multiHeader2, header: tHeader, data, filename: '用料分析-'+startTime+'-' +stopTime , merges })
|
|
|
- })
|
|
|
- }else{
|
|
|
- import('@/vendor/Export3Excel').then((excel) => {
|
|
|
- const multiHeader = [
|
|
|
- headerArr
|
|
|
- ]
|
|
|
- const multiHeader2 = []
|
|
|
- const tHeader = exportTitle2
|
|
|
- const filterVal = filterValArr
|
|
|
- const data = this.tab2.table.list.map(v => filterVal.map(j => v[j]))
|
|
|
- // const data = []
|
|
|
- // const merges = ['A1:A1']
|
|
|
- const merges = []
|
|
|
- excel.export_json_to_excel({ multiHeader, multiHeader2, header: tHeader, data, filename: '用料分析', merges })
|
|
|
- })
|
|
|
+ console.log('headerArr', headerArr)
|
|
|
+ console.log('exportTitle2', exportTitle2)
|
|
|
+ console.log('filterValArr', filterValArr)
|
|
|
+ if (headerArr.length > 0) {
|
|
|
+ import('@/vendor/Export3Excel').then((excel) => {
|
|
|
+ const multiHeader = [
|
|
|
+ headerArr
|
|
|
+ ]
|
|
|
+ const multiHeader2 = [
|
|
|
+ headerArr2
|
|
|
+ ]
|
|
|
+ const tHeader = exportTitle3
|
|
|
+ const filterVal = filterValArr
|
|
|
+ const data = this.tab2.table.list.map(v => filterVal.map(j => v[j]))
|
|
|
+ // const data = []
|
|
|
+ const merges = ['A1:A1']
|
|
|
+ excel.export_json_to_excel({ multiHeader, multiHeader2, header: tHeader, data, filename: '用料分析-'+startTime+'-' +stopTime , merges })
|
|
|
+ })
|
|
|
+ }else{
|
|
|
+ import('@/vendor/Export3Excel').then((excel) => {
|
|
|
+ const multiHeader = [
|
|
|
+ headerArr
|
|
|
+ ]
|
|
|
+ const multiHeader2 = []
|
|
|
+ const tHeader = exportTitle2
|
|
|
+ const filterVal = filterValArr
|
|
|
+ const data = this.tab2.table.list.map(v => filterVal.map(j => v[j]))
|
|
|
+ // const data = []
|
|
|
+ // const merges = ['A1:A1']
|
|
|
+ const merges = []
|
|
|
+ excel.export_json_to_excel({ multiHeader, multiHeader2, header: tHeader, data, filename: '用料分析', merges })
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ var startTime = this.tab2.table.getdataListParm.parammaps.startTime
|
|
|
+ var stopTime = this.tab2.table.getdataListParm.parammaps.stopTime
|
|
|
+ var title = '用料分析-'+startTime+'-' +stopTime
|
|
|
+ var tHeader = []
|
|
|
+ var filterVal = []
|
|
|
+ for (let i = 0; i < this.tableColumns.length; i++) {
|
|
|
+ tHeader.push(this.tableColumns[i].label)
|
|
|
+ filterVal.push(this.tableColumns[i].prop)
|
|
|
+ }
|
|
|
+ var excelDatas = [
|
|
|
+ {
|
|
|
+ tHeader: tHeader,
|
|
|
+ filterVal: filterVal,
|
|
|
+ tableDatas: this.tableData,
|
|
|
+ sheetName: 'Sheet'
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ json2excel(excelDatas, title, true, 'xlsx')
|
|
|
}
|
|
|
} else if (item == 'tab3') {
|
|
|
console.log('价格分析导出')
|