add swap function on table header

This commit is contained in:
郑茂强 2018-08-21 14:16:25 +08:00
parent ada54f7b7b
commit 3f9920ee2a
3 changed files with 36 additions and 18 deletions

View File

@ -17,7 +17,7 @@ export default {
data: function() { data: function() {
return { return {
data: { data: {
header: [ cate_header: [
"客户编号", "客户编号",
"公司名称", "公司名称",
"联系人", "联系人",
@ -28,6 +28,7 @@ export default {
"电话", "电话",
"传真" "传真"
], ],
header: ["中国"],
info: [ info: [
{ {
客户编号: "HUNGC", 客户编号: "HUNGC",

View File

@ -1,7 +1,18 @@
<template> <template>
<div> <div>
<ul> <ul>
<TableTree :data="formateddata"></TableTree> <li>
<table>
<tr>
<th v-for="(header,index) in usersdata.cate_header" @mousedown="onmousedown($event)" @mouseup="onmouseup($event)" :key="index">{{header}}</th>
</tr>
</table>
</li>
<li>
<ul>
<TableTree :data="formateddata"></TableTree>
</ul>
</li>
</ul> </ul>
</div> </div>
@ -17,13 +28,14 @@ export default {
data: function() { data: function() {
return { return {
selectedvaluedown: [], selectedvaluedown: [],
selectedindexdown: 0, selectedindexdown: 0,
formateddata: {} formateddata: {}
}; };
}, },
created: function() { created: function() {
this.formatusersdata(); this.formatusersdata();
console.log(this.formateddata);
}, },
methods: { methods: {
//fromate the data from single array structure to tree structure //fromate the data from single array structure to tree structure
@ -33,6 +45,7 @@ export default {
var cities = []; var cities = [];
var companies = []; var companies = [];
formateddata.name = this.usersdata.header; formateddata.name = this.usersdata.header;
formateddata.header = this.usersdata.cate_header;
formateddata.children = []; formateddata.children = [];
for (var item of this.usersdata.info) { for (var item of this.usersdata.info) {
if (areas.indexOf(item.state) === -1) { if (areas.indexOf(item.state) === -1) {
@ -54,13 +67,12 @@ export default {
} }
} }
for (var company of citychild.children) { for (var company of citychild.children) {
for (var item of this.usersdata.info) { for (var item of this.usersdata.info) {
if ( if (
item.city === company.name[0] && item.city === company.name[0] &&
item.state === citychild.name[0] item.state === citychild.name[0]
) { ) {
var arr = []; var arr = [];
for (var x in item) { for (var x in item) {
if (x != "state" && x != "city") arr.push(item[x]); if (x != "state" && x != "city") arr.push(item[x]);
} }
@ -70,35 +82,40 @@ export default {
} }
} }
this.formateddata = formateddata; this.formateddata = formateddata;
console.log(formateddata)
}, },
//// function below is for swap table header uses. //// function below is for swap table header uses.
getindexvalue: function(index) { getindexvalue: function(index) {
var array = [this.formateddata.title[index]]; var array = [this.formateddata.header[index]];
for (var area of this.formateddata.area) { for (var area of this.formateddata.children) {
for (var item of area.companies) { for (var city of area.children) {
array.push(item.info[index]); for (var company of city.children) {
array.push(company.name[index]);
}
} }
} }
return array; return array;
}, },
addindexvalue: function(index, selectedvalue) { addindexvalue: function(index, selectedvalue) {
var counter = 0; var counter = 0;
this.formateddata.title.splice(index, 1, selectedvalue[0]); this.formateddata.header.splice(index, 1, selectedvalue[0]);
for (var area of this.formateddata.area) {
for (var item in area.companies) { for (var area of this.formateddata.children) {
counter += 1; for (var city of area.children) {
area.companies[item].info.splice(index, 1, selectedvalue[counter]); for (var company of city.children) {
counter += 1;
company.name.splice(index, 1, selectedvalue[counter]);
}
} }
} }
}, },
onmousedown: function(e) { onmousedown: function(e) {
var index = this.usersdata.header.indexOf(e.target.innerHTML); var index = this.formateddata.header.indexOf(e.target.innerHTML);
console.log(index);
this.selectedvaluedown = this.getindexvalue(index); this.selectedvaluedown = this.getindexvalue(index);
this.selectedindexdown = index; this.selectedindexdown = index;
}, },
onmouseup: function(e) { onmouseup: function(e) {
var index = this.usersdata.header.indexOf(e.target.innerHTML); var index = this.formateddata.header.indexOf(e.target.innerHTML);
var selectedvalueup = this.getindexvalue(index); var selectedvalueup = this.getindexvalue(index);
this.addindexvalue(index, this.selectedvaluedown); this.addindexvalue(index, this.selectedvaluedown);
this.addindexvalue(this.selectedindexdown, selectedvalueup); this.addindexvalue(this.selectedindexdown, selectedvalueup);

View File

@ -16,7 +16,7 @@ export default {
props: { data: Object }, props: { data: Object },
data: function() { data: function() {
return { return {
open: true open: false
}; };
}, },
methods: { methods: {