async openDialog () { console.log(this.objFormData, '编辑信息') // 获取所有案由的违规条款选项和依据数据 const optionsMap = new Map() const basisMap = new Map() await Promise.all(this.objFormData.accordList.map(async accord => { // console.log(accord, '打印') const { data: optionData } = await getLawRules(accord.violationAccord) optionsMap.set(accord.violationAccord, lawTreeFilter(optionData)) basisMap.set(accord.violationAccord, accord.accordBasis) })) // 处理条例数据 const gistList = [] for (const accord of this.objFormData.accordList) { accord.accordDetail.forEach(item => { let labels = item.violationClause.split("-").map(str => str.trim()).filter(Boolean) // console.log(labels, 'labels') const illegalOptions = accord.illegalOptions || optionsMap.get(accord.violationAccord) const ruleIdList = [] let options = illegalOptions for (const label of labels) { const option = options.find(opt => opt.label === label) if (option) { ruleIdList.push(option.value) options = option.children } } // console.log(ruleIdList,'ruleIdList') // console.log(options,'options') // 添加选择的数据到数组中 // const selectedData = { // violationAccord: accord.violationAccord, // violationAccordText: accord.violationAccordText, // illegalValue: ruleIdList // } // gistList.push(selectedData) // 添加数据到回显数据中 const elRuleList = [{ illegalValue: ruleIdList }]; console.log(elRuleList,'hhhhhh') const echoData = { gistValue: accord.violationAccordText, ruleList: elRuleList, illegalOptions: illegalOptions, basis: basisMap.get(accord.violationAccord) } this.gistList.push(echoData) }) } },这个方法中,这个 accord.violationAccordText值相等的把他们对应的elRuleList这个值放到一个ruleList里面
时间: 2024-02-09 16:10:40 浏览: 31
好的,你可以使用 Map 数据结构来处理相同 violationAccordText 值的情况,将 echoData 存储在 Map 中,以 violationAccordText 作为键名。如果已经存在相同键名的数据,则将其 elRuleList 值合并到已存在数据的 ruleList 中。可以参考下面的代码:
```
async openDialog() {
console.log(this.objFormData, "编辑信息");
const optionsMap = new Map();
const basisMap = new Map();
await Promise.all(
this.objFormData.accordList.map(async (accord) => {
const { data: optionData } = await getLawRules(accord.violationAccord);
optionsMap.set(accord.violationAccord, lawTreeFilter(optionData));
basisMap.set(accord.violationAccord, accord.accordBasis);
})
);
const echoDataMap = new Map();
for (const accord of this.objFormData.accordList) {
accord.accordDetail.forEach((item) => {
const labels = item.violationClause
.split("-")
.map((str) => str.trim())
.filter(Boolean);
const illegalOptions =
accord.illegalOptions || optionsMap.get(accord.violationAccord);
const ruleIdList = [];
let options = illegalOptions;
for (const label of labels) {
const option = options.find((opt) => opt.label === label);
if (option) {
ruleIdList.push(option.value);
options = option.children;
}
}
const elRuleList = [{ illegalValue: ruleIdList }];
const echoData = {
gistValue: accord.violationAccordText,
ruleList: elRuleList,
illegalOptions: illegalOptions,
basis: basisMap.get(accord.violationAccord),
};
if (echoDataMap.has(accord.violationAccordText)) {
// 如果已经存在相同键名的数据,则将其 elRuleList 值合并到已存在数据的 ruleList 中
const existingEchoData = echoDataMap.get(accord.violationAccordText);
existingEchoData.ruleList.push(...elRuleList);
} else {
echoDataMap.set(accord.violationAccordText, echoData);
}
});
}
// 将 Map 中的数据转为数组
this.gistList = Array.from(echoDataMap.values());
},
```
希望这个修改能够帮到你。
相关推荐
![html](https://img-home.csdnimg.cn/images/20210720083451.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)