|
@@ -338,35 +338,13 @@ const actions = {
|
|
state.topics
|
|
state.topics
|
|
);
|
|
);
|
|
const elementGroupPosInfos = groupByParams(positionInfos, "serialNumber");
|
|
const elementGroupPosInfos = groupByParams(positionInfos, "serialNumber");
|
|
- const orgElementCount = elementGroupPosInfos.length;
|
|
|
|
- if (orgElementCount > element.questionsCount) {
|
|
|
|
- // 原小题数多于新小题数,要删除原多于的小题;
|
|
|
|
- let needDeleteInfos = elementGroupPosInfos.splice(
|
|
|
|
- element.questionsCount,
|
|
|
|
- orgElementCount - element.questionsCount
|
|
|
|
- );
|
|
|
|
- needDeleteInfos.reverse().forEach((item) => {
|
|
|
|
- item.reverse().forEach((pos) => {
|
|
|
|
- state.topics.splice(pos._elementNo, 1);
|
|
|
|
- });
|
|
|
|
|
|
+ for (let i = 0; i < elementGroupPosInfos.length; i++) {
|
|
|
|
+ elementGroupPosInfos[i].forEach((pos) => {
|
|
|
|
+ let child = state.topics[pos._elementNo];
|
|
|
|
+ child.parent = { ...element };
|
|
|
|
+ child.topicName = element.topicName;
|
|
});
|
|
});
|
|
}
|
|
}
|
|
-
|
|
|
|
- const newElements = getExplainElements(element);
|
|
|
|
- const lastPos = elementGroupPosInfos.slice(-1)[0].slice(-1)[0];
|
|
|
|
- let lastNewElementPos = lastPos._elementNo;
|
|
|
|
- for (let i = 0; i < element.questionsCount; i++) {
|
|
|
|
- if (elementGroupPosInfos[i]) {
|
|
|
|
- elementGroupPosInfos[i].forEach((pos) => {
|
|
|
|
- let child = state.topics[pos._elementNo];
|
|
|
|
- child.serialNumber = i + element.startNumber;
|
|
|
|
- child.parent = { ...element };
|
|
|
|
- child.topicNo = element.topicNo;
|
|
|
|
- });
|
|
|
|
- } else {
|
|
|
|
- state.topics.splice(++lastNewElementPos, 0, newElements[i]);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
},
|
|
},
|
|
modifySplitTopic({ state }, element) {
|
|
modifySplitTopic({ state }, element) {
|
|
// 非作文题都是拆分题,即同一个题拆分成多个小题展示
|
|
// 非作文题都是拆分题,即同一个题拆分成多个小题展示
|