使用Map代替原来的数组, 原来会出现错乱问题
This commit is contained in:
parent
cb29ab302a
commit
e5e33e11bd
@ -9,14 +9,14 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
properties: [],
|
properties: new Map(),
|
||||||
showData: [],
|
showData: [],
|
||||||
params: {
|
params: {
|
||||||
company_id: '',
|
company_id: '',
|
||||||
package_id: ''
|
package_id: ''
|
||||||
},
|
},
|
||||||
only: ['company_id', 'package_id', 'product', 'vehicle', 'commercial_vehicle', 'company', 'platform', 'customer', 'province', 'agent'],
|
only: ['company_id', 'package_id', 'product', 'vehicle', 'commercial_vehicle', 'company', 'platform', 'customer', 'province', 'agent'],
|
||||||
updates: [],
|
updates: new Map(),
|
||||||
settingsShow: false,
|
settingsShow: false,
|
||||||
settingsData: {},
|
settingsData: {},
|
||||||
agentsData: {},
|
agentsData: {},
|
||||||
@ -270,10 +270,12 @@ export default {
|
|||||||
},
|
},
|
||||||
on: {
|
on: {
|
||||||
input: (value) => {
|
input: (value) => {
|
||||||
let index = (this.page.page - 1) * this.page.limit + context.index;
|
let index = this.getIndex(context.row);
|
||||||
this.properties[index][key] = value;
|
let property = this.properties.get(index);
|
||||||
|
property[key] = value;
|
||||||
|
this.properties.set(index, property);
|
||||||
this.changePage(this.page.page);
|
this.changePage(this.page.page);
|
||||||
this.updates[index] = this.properties[index];
|
this.updates.set(index, this.properties.get(index));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, options);
|
}, options);
|
||||||
@ -284,11 +286,17 @@ export default {
|
|||||||
* @return {[type]} [description]
|
* @return {[type]} [description]
|
||||||
*/
|
*/
|
||||||
index(page = 1) {
|
index(page = 1) {
|
||||||
if (!this.properties.length) {
|
if (!this.properties.size) {
|
||||||
this.isShowLoading(true);
|
this.isShowLoading(true);
|
||||||
API.index().then(res => {
|
API.index().then(res => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
this.properties = res.data;
|
let properties = new Map();
|
||||||
|
|
||||||
|
res.data.forEach(element => {
|
||||||
|
properties.set(this.getIndex(element), element);
|
||||||
|
});
|
||||||
|
|
||||||
|
this.properties = properties;
|
||||||
this.changePage(page);
|
this.changePage(page);
|
||||||
this.complete();
|
this.complete();
|
||||||
}
|
}
|
||||||
@ -301,7 +309,9 @@ export default {
|
|||||||
complete() {
|
complete() {
|
||||||
let companies = {};
|
let companies = {};
|
||||||
|
|
||||||
this.properties.map(function (item) {
|
let properties = Array.from(this.properties.values());
|
||||||
|
|
||||||
|
properties.forEach((item) => {
|
||||||
companies[item.company_id] = item.company_name;
|
companies[item.company_id] = item.company_name;
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -315,7 +325,7 @@ export default {
|
|||||||
|
|
||||||
let packages = {};
|
let packages = {};
|
||||||
|
|
||||||
this.properties.map(function (item) {
|
properties.forEach((item) => {
|
||||||
packages[item.package_id] = item.package_name;
|
packages[item.package_id] = item.package_name;
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -348,7 +358,7 @@ export default {
|
|||||||
changePage(page) {
|
changePage(page) {
|
||||||
this.page.page = page;
|
this.page.page = page;
|
||||||
|
|
||||||
let properties = JSON.parse(JSON.stringify(this.properties));
|
let properties = Array.from(this.properties.values());
|
||||||
|
|
||||||
if (this.params.company_id !== '' && this.params.company_id !== undefined) {
|
if (this.params.company_id !== '' && this.params.company_id !== undefined) {
|
||||||
properties = properties.filter(el => { return el.company_id == this.params.company_id; });
|
properties = properties.filter(el => { return el.company_id == this.params.company_id; });
|
||||||
@ -392,7 +402,7 @@ export default {
|
|||||||
this.settingsData = values;
|
this.settingsData = values;
|
||||||
},
|
},
|
||||||
ok() {
|
ok() {
|
||||||
if (!this.updates.length) {
|
if (!this.updates.size) {
|
||||||
this.$Message.warning('数据未修改');
|
this.$Message.warning('数据未修改');
|
||||||
this.editModel = false;
|
this.editModel = false;
|
||||||
return;
|
return;
|
||||||
@ -402,8 +412,7 @@ export default {
|
|||||||
|
|
||||||
let updates = [];
|
let updates = [];
|
||||||
|
|
||||||
for (let index = 0; index < this.updates.length; index++) {
|
this.updates.forEach((element) => {
|
||||||
const element = this.updates[index];
|
|
||||||
let obj = {};
|
let obj = {};
|
||||||
for (const key in element) {
|
for (const key in element) {
|
||||||
if (this.only.indexOf(key) !== -1) {
|
if (this.only.indexOf(key) !== -1) {
|
||||||
@ -411,7 +420,9 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
updates.push(obj);
|
updates.push(obj);
|
||||||
}
|
});
|
||||||
|
|
||||||
|
console.log("updates", updates);
|
||||||
|
|
||||||
API.store({ data: updates }).then(res => {
|
API.store({ data: updates }).then(res => {
|
||||||
if (res.code === 0) {
|
if (res.code === 0) {
|
||||||
@ -422,16 +433,16 @@ export default {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
handleProvinceSuccess(data) {
|
handleProvinceSuccess(data) {
|
||||||
let index = (this.page.page - 1) * this.page.limit + data._index;
|
let index = this.getIndex(data);
|
||||||
this.properties[index] = data;
|
this.properties.set(index, data);
|
||||||
this.changePage(this.page.page);
|
this.changePage(this.page.page);
|
||||||
this.updates[index] = this.properties[index];
|
this.updates.set(index, this.properties.get(index));
|
||||||
},
|
},
|
||||||
handleAgentSuccess(data) {
|
handleAgentSuccess(data) {
|
||||||
let index = (this.page.page - 1) * this.page.limit + data._index;
|
let index = this.getIndex(data);
|
||||||
this.properties[index] = data;
|
this.properties.set(index, data);
|
||||||
this.changePage(this.page.page);
|
this.changePage(this.page.page);
|
||||||
this.updates[index] = this.properties[index];
|
this.updates.set(index, this.properties.get(index));
|
||||||
},
|
},
|
||||||
exportExcel() {
|
exportExcel() {
|
||||||
let params = {};
|
let params = {};
|
||||||
@ -474,6 +485,9 @@ export default {
|
|||||||
});
|
});
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
},
|
||||||
|
getIndex(row) {
|
||||||
|
return row.company_id + '_' + row.package_id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user