|
56 | 56 | <wrapper-content :showHeader="false"> |
57 | 57 | <draggable v-model="taskStages" |
58 | 58 | :options="{group:'stages',filter:'.undraggables',handle:'.ui-sortable-handle',ghostClass:'stage-ghost',animation: 200,forceFallback:false}" |
59 | | - id="board-scrum-stages" class="board-scrum-stages" :move="stageMove" @update="stageSort"> |
| 59 | + id="board-scrum-stages" class="board-scrum-stages" @end="stageSort"> |
60 | 60 | <div class="scrum-stage" v-for="(stage,index) in taskStages" :key="index" :id="stage.code" |
61 | 61 | :class="{ 'fixed-creator': stage.fixedCreator == true}"> |
62 | 62 | <!--<a-spin wrapperClassName="tasks-loading" :spinning="stage.tasksLoading">--> |
|
628 | 628 | preCode: '', |
629 | 629 | nextCode: '', |
630 | 630 |
|
| 631 | + preTaskCode: '', |
| 632 | + nextTaskCode: '', |
| 633 | +
|
631 | 634 | taskSearchParams: {}, |
632 | 635 |
|
633 | 636 | stageKeys: [], |
|
1151 | 1154 | taskDetail(code, stageIndex) { |
1152 | 1155 | this.$router.push(`${this.$route.path}/detail/${code}?from=${stageIndex}`); |
1153 | 1156 | }, |
1154 | | - stageMove(evt) { |
1155 | | - this.preCode = evt.draggedContext.element.code; |
1156 | | - this.nextCode = evt.relatedContext.element.code; |
1157 | | -
|
| 1157 | + stageSort(event) { |
| 1158 | + const list = this.getPreAndNextCode(event); |
| 1159 | + sort(list[0], list[1], this.code); |
1158 | 1160 | }, |
1159 | | - stageSort() { |
1160 | | - sort(this.preCode, this.nextCode, this.code); |
| 1161 | + getPreAndNextCode(event) { |
| 1162 | + const preCode = event.clone.getAttribute('id'); |
| 1163 | + let toList = []; |
| 1164 | + let nextCode = ''; |
| 1165 | + for (let i = 0, len = event.to.children.length; i < len; i++) { |
| 1166 | + toList.push(event.to.children[i].getAttribute('id')); |
| 1167 | + } |
| 1168 | + const preCodeIndex = toList.findIndex(item => item === preCode) |
| 1169 | + if (preCodeIndex < toList.length) { |
| 1170 | + nextCode = toList[preCodeIndex + 1]; |
| 1171 | + } |
| 1172 | + return [preCode, nextCode]; |
1161 | 1173 | }, |
1162 | 1174 | taskSort(event) { |
1163 | | - console.log(event); |
| 1175 | + const list = this.getPreAndNextCode(event); |
| 1176 | + console.log(list); |
1164 | 1177 | const toStageCode = event.to.parentNode.parentNode.parentNode.getAttribute('id'); |
1165 | | - let codes = ''; |
1166 | | - for (let i = 0, len = event.to.children.length; i < len; i++) { |
1167 | | - codes += ',' + event.to.children[i].getAttribute('id'); |
1168 | | - } |
1169 | | - sortTask({stageCode: toStageCode, codes: codes.substr(1)}).then(res => { |
1170 | | - this.getTaskStages(false); |
1171 | | - }); |
| 1178 | + sortTask({preTaskCode: list[0], nextTaskCode: list[1], toStageCode: toStageCode}); |
1172 | 1179 | }, |
1173 | 1180 | handleResize(vertical, stageIndex) { |
1174 | 1181 | if (vertical.barSize) { |
|
0 commit comments