|
@@ -62,6 +62,7 @@ export default {
|
|
|
move_list: [], // 移动后的数组
|
|
|
drag: false,
|
|
|
click_index_list: [], // 点击选中的索引
|
|
|
+ disrupted: false, // 是否打乱
|
|
|
};
|
|
|
},
|
|
|
watch: {
|
|
@@ -74,6 +75,18 @@ export default {
|
|
|
},
|
|
|
deep: true,
|
|
|
},
|
|
|
+ 'data.option_list': {
|
|
|
+ handler(val) {
|
|
|
+ if (!val) return;
|
|
|
+ this.move_list = this.shuffle(val.slice()).map((item, i) => ({
|
|
|
+ ...item,
|
|
|
+ correct: item.mark === this.data.option_list[i].mark,
|
|
|
+ }));
|
|
|
+ this.disrupted = true;
|
|
|
+ },
|
|
|
+ deep: true,
|
|
|
+ immediate: true,
|
|
|
+ },
|
|
|
click_index_list: {
|
|
|
handler(val) {
|
|
|
if (val.length === 2) {
|
|
@@ -82,21 +95,10 @@ export default {
|
|
|
},
|
|
|
},
|
|
|
},
|
|
|
- created() {
|
|
|
- this.handleData();
|
|
|
- },
|
|
|
- mounted() {},
|
|
|
methods: {
|
|
|
- // 初始化数据
|
|
|
- handleData() {
|
|
|
- let sort_list = this.shuffle(JSON.parse(JSON.stringify(this.data.option_list)));
|
|
|
- sort_list.forEach((item, index) => {
|
|
|
- item.correct = item.mark === this.data.option_list[index].mark;
|
|
|
- });
|
|
|
- this.move_list = sort_list;
|
|
|
- },
|
|
|
// 随机打乱数组顺序
|
|
|
shuffle(arr) {
|
|
|
+ if (this.disrupted) return arr;
|
|
|
for (let i = arr.length - 1; i > 0; i--) {
|
|
|
const j = Math.floor(Math.random() * (i + 1));
|
|
|
[arr[i], arr[j]] = [arr[j], arr[i]];
|