|
|
@@ -8,7 +8,7 @@
|
|
|
<view class="top-progress-box">
|
|
|
<view class="top-progress-box-current" :style="{'width':(answerNum/list.length*100)+'%'}"></view>
|
|
|
</view>
|
|
|
- <view class="top-progress-num"><span>{{answerNum}}</span>/{{list.length}}</view>
|
|
|
+ <view class="top-progress-num"><span>{{answerCount}}</span>/{{list.length}}</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
<view class="memo adfac" v-if="turnType==='questionnaire'" @click="noticeShow=true">
|
|
|
@@ -88,6 +88,7 @@
|
|
|
teamInfo:{},
|
|
|
teamScaleData:[],
|
|
|
teamLevelData:[],
|
|
|
+ answerCount:0,
|
|
|
}
|
|
|
},
|
|
|
onLoad(options) {
|
|
|
@@ -96,26 +97,35 @@
|
|
|
this.teamQuestionnaireId = options.teamQuestionnaireId;
|
|
|
this.teamId = options.teamId;
|
|
|
this.getList();
|
|
|
- },
|
|
|
- computed: {
|
|
|
- answerNum() {
|
|
|
- return this.list.filter(l => l?.answer.filter(a => a?.value).length == this.userAnswerTemp.length).length || 0;
|
|
|
- }
|
|
|
},
|
|
|
methods:{
|
|
|
handleAnswerChange(e) {
|
|
|
- const item = this.list[e.index];
|
|
|
+ const item = this.list[e.index];
|
|
|
if (item) {
|
|
|
+ // 检查这道题在更新前是否已经回答完整
|
|
|
+ const wasAnswered = item.answer.filter(a => a?.value).length === this.userAnswerTemp.length;
|
|
|
+
|
|
|
let answer = JSON.parse(JSON.stringify(item.answer));
|
|
|
- answer.forEach(a=>{
|
|
|
- a.value = a.assessmentMethod==e.assessmentMethod?e.value:a.value
|
|
|
- })
|
|
|
- this.$set(item, 'answer', answer);
|
|
|
- if (item.warn) {
|
|
|
- this.$set(item, 'warn', false);
|
|
|
- }
|
|
|
+ answer.forEach(a => {
|
|
|
+ a.value = a.assessmentMethod == e.assessmentMethod ? e.value : a.value
|
|
|
+ });
|
|
|
+ this.$set(item, 'answer', answer);
|
|
|
+
|
|
|
+ // 检查这道题在更新后是否回答完整
|
|
|
+ const isAnsweredNow = item.answer.filter(a => a?.value).length === this.userAnswerTemp.length;
|
|
|
+
|
|
|
+ // 只有当题目从“未答完”变为“已答完”时,才增加计数
|
|
|
+ if (!wasAnswered && isAnsweredNow) {
|
|
|
+ this.answerCount++;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (item.warn) {
|
|
|
+ this.$set(item, 'warn', false);
|
|
|
+ }
|
|
|
}
|
|
|
- this.setQuestionnaireCache();
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.setQuestionnaireCache();
|
|
|
+ });
|
|
|
},
|
|
|
getList() {
|
|
|
let questionnaire = null;
|
|
|
@@ -166,6 +176,9 @@
|
|
|
u.answer = _a?(_a.find(a=>a.assessmentMethod==u.assessmentMethod)?.value||''):''
|
|
|
})
|
|
|
})
|
|
|
+
|
|
|
+ this.answerCount = this.list.filter(l => l?.answer.filter(a => a?.value).length == this.userAnswerTemp.length).length;
|
|
|
+ this.isLoading = false;
|
|
|
})
|
|
|
.catch(() => {
|
|
|
this.isLoading = false;
|