irc_web/src/views/trials/trials-panel/setting/reading-unit/components/ArbitrationRules.vue

920 lines
30 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!-- eslint-disable vue/no-unused-vars -->
<!-- eslint-disable vue/no-template-shadow -->
/* eslint-disable */
<template>
<el-form v-loading="loading">
<!-- -->
<el-form-item
:label="$t('trials:adRules:title:arbitrationRule')"
:label-width="'180px'"
>
<el-radio-group
v-model="JudgyInfo.ArbitrationRule"
:disabled="OtherInfo.IsSign"
>
<el-radio
v-for="item of $d.ArbitrationRule"
:key="item.id"
:disabled="!JudgyInfo.IsReadingTaskViewInOrder || true"
:label="item.value"
@change="changeArbitrationRule"
>
{{ item.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-collapse v-model="activeNames">
<el-collapse-item
v-for="(item, index) of QuestionList"
:key="item.ReadingQuestionTrialId"
style="position: relative"
:name="item.ReadingQuestionTrialId"
>
<div slot="title">
{{ item.PageName }}Q{{ index + 1 }}{{ item.QuestionName }}
</div>
<div style="position: relative">
<el-button
v-hasPermi="['trials:trials-panel:setting:reading-unit:edit']"
style="position: absolute; right: 0; top: 0; z-index: 10"
size="mini"
type="primary"
:disabled="OtherInfo.IsSign"
@click="apply(item.ReadingQuestionTrialId, index)"
>{{ $t('common:button:save') }}</el-button
>
<el-button
v-hasPermi="['trials:trials-panel:setting:reading-unit:edit']"
style="position: absolute; right: 60px; top: 0; z-index: 10"
size="mini"
type="primary"
:disabled="OtherInfo.IsSign"
@click="reset(item.ReadingQuestionTrialId, index)"
>{{ $t('common:button:reset') }}</el-button
>
<!-- 产生裁判阅片的条件 -->
<el-form-item
:label-width="'280px'"
:label="$t('trials:adRules:title:judgeTypeEnum')"
style="width: 95%"
>
<el-radio-group
v-model="QuestionList[index].JudgeType"
@input="(val) => JudgeTypeChange(val, index)"
>
<template v-for="item of $d.JudgeTypeEnum">
<el-radio
style="margin-bottom: 5px"
:key="item.id"
:disabled="
OtherInfo.IsSign ||
!hasPermi(['trials:trials-panel:setting:reading-unit:edit'])
"
:label="item.value"
v-if="
(JudgyInfo.ArbitrationRule === 1 &&
(item.value < 4 ||
(item.value > 3 &&
(QuestionList[index].Type === 'number' ||
QuestionList[index].Type === 'calculation')))) ||
(JudgyInfo.ArbitrationRule === 2 && item.value < 4)
"
>
{{ item.label }}
</el-radio>
</template>
</el-radio-group>
</el-form-item>
</div>
<div
v-if="QuestionList[index].JudgeType === 3"
style="text-align: right; margin: 10px 0"
>
<!-- 添加规则 -->
<el-button
v-hasPermi="['trials:trials-panel:setting:reading-unit:edit']"
size="mini"
type="primary"
:disabled="OtherInfo.IsSign"
@click="addGroup(index, null)"
>{{ $t('trials:adRules:button:addRule') }}</el-button
>
</div>
<el-table
v-if="QuestionList[index].JudgeType === 3"
v-loading="loading"
:data="QuestionList[index].AnswerGroupList"
border
stripe
>
<!-- 序号 -->
<el-table-column
prop="AnswerGroupA"
:label="$t('trials:adRules:title:order')"
width="160"
>
<template slot-scope="scope">
{{ scope.$index + 1 }}
</template>
</el-table-column>
<!-- 阅片人A -->
<el-table-column
prop="AnswerGroupA"
:label="$t('trials:adRules:title:answerGroupA')"
min-width="100"
>
<template slot-scope="scope">
{{
QuestionList[index].QuestionGenre === 3
? scope.row.AnswerGroupA.map((v) =>
$fd(QuestionList[index].DictionaryCode, parseInt(v))
).toString()
: scope.row.AnswerGroupA.toString()
}}
</template>
</el-table-column>
<!-- 阅片人B -->
<el-table-column
prop="AnswerGroupB"
:label="$t('trials:adRules:title:answerGroupB')"
min-width="100"
>
<template slot-scope="scope">
{{
QuestionList[index].QuestionGenre === 3
? scope.row.AnswerGroupB.map((v) =>
$fd(QuestionList[index].DictionaryCode, parseInt(v))
).toString()
: scope.row.AnswerGroupB.toString()
}}
</template>
</el-table-column>
<el-table-column
prop="AnswerGroupB"
:label="$t('common:action:action')"
min-width="80"
>
<template slot-scope="scope">
<!-- 编辑 -->
<el-button
icon="el-icon-edit"
circle
:title="$t('common:button:edit')"
size="mini"
:disabled="OtherInfo.IsSign"
@click="addGroup(index, scope.$index)"
/>
<!-- 删除 -->
<el-button
icon="el-icon-delete"
circle
:title="$t('common:button:delete')"
size="mini"
:disabled="OtherInfo.IsSign"
@click="tagClose(index, scope.$index)"
/>
</template>
</el-table-column>
</el-table>
<div v-if="QuestionList[index].JudgeType === 2">
<div
style="
background: #f6f6f6;
border-radius: 20px;
padding: 15px 20px;
margin-top: 10px;
"
>
<el-checkbox-group
v-if="QuestionList[index].QuestionGenre === 3"
v-model="QuestionList[index].grouping"
>
<template v-for="item of $d[QuestionList[index].DictionaryCode]">
<el-checkbox
v-if="item.value !== -1"
:key="item.id"
:disabled="OtherInfo.IsSign"
:label="item.value"
>{{ item.label }}</el-checkbox
>
</template>
</el-checkbox-group>
<el-checkbox-group v-else v-model="QuestionList[index].grouping">
<el-checkbox
v-for="item of item.TypeValue.split('|')"
:key="item"
:disabled="OtherInfo.IsSign"
:label="item"
>{{ item }}</el-checkbox
>
</el-checkbox-group>
<div style="margin-top: 20px">
<!-- 当前选择答案分组: -->
{{ $t('trials:adRules:title:selectAnswerGroup') }}
<el-tag
v-if="
QuestionList[index].grouping.length > 0 &&
QuestionList[index].QuestionGenre !== 3
"
>{{
QuestionList[index].grouping.toString().replaceAll(',', '|')
}}</el-tag
>
<el-tag
v-if="
QuestionList[index].grouping.length > 0 &&
QuestionList[index].QuestionGenre === 3
"
>{{
QuestionList[index].grouping
.map(
(v) =>
$d[QuestionList[index].DictionaryCode].find(
(v1) => v1.value === v
).label
)
.toString()
.replaceAll(',', '|')
}}</el-tag
>
<el-button
size="mini"
type="primary"
:disabled="OtherInfo.IsSign"
@click="addGroup2(index)"
>
<!-- 添加分组 -->
{{ $t('trials:adRules:title:addGroup') }}
</el-button>
</div>
</div>
<div
v-if="QuestionList[index].QuestionGenre !== 3"
style="margin-top: 20px"
>
{{ $t('trials:adRules:title:group') }}
<el-tag
v-for="itemA of QuestionList[index].AnswerGroup2List"
:key="itemA"
closable
style="margin-right: 10px"
@close="
() => {
return tagClose2(index, indexA)
}
"
>{{ itemA }}</el-tag
>
</div>
<div
v-if="QuestionList[index].QuestionGenre === 3"
style="margin-top: 20px"
>
<!-- 分组: -->
{{ $t('trials:adRules:title:group') }}
<el-tag
v-for="itemA of QuestionList[index].AnswerGroup2List"
:key="itemA"
closable
style="margin-right: 10px"
@close="
() => {
return tagClose2(index, indexA)
}
"
>
{{
itemA
.split('|')
.map((v) =>
$fd(QuestionList[index].DictionaryCode, parseInt(v))
)
.join('|')
}}
</el-tag>
</div>
</div>
<div
v-if="
QuestionList[index].JudgeType === 4 ||
QuestionList[index].JudgeType === 5
"
>
<el-form
:inline="true"
:model="QuestionList[index]"
class="demo-form-inline"
:ref="
'JudgeDifferenceValue' + QuestionList[index].JudgeType + index
"
:rules="JudgeDifferenceValueQRules"
>
<el-form-item
:label="
$t(
`trials:trials-panel:setting:reading-unit:JudgeDifferenceType`
)
"
prop="JudgeDifferenceType"
>
<el-select
v-model="QuestionList[index].JudgeDifferenceType"
placeholder="请选择"
:disabled="OtherInfo.IsSign"
>
<el-option
v-for="item of $d.JudgeDifferenceType"
:key="item.id"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
:label="
$t(
`trials:trials-panel:setting:reading-unit:JudgeDifferenceValue${QuestionList[index].JudgeType}`
)
"
prop="JudgeDifferenceValue"
>
<div style="display: flex">
<el-input
v-model="QuestionList[index].JudgeDifferenceValue"
clearable
:disabled="OtherInfo.IsSign"
></el-input>
<span style="margin-left: 10px">{{
$fd('ValueUnit', QuestionList[index].Unit)
}}</span>
</div>
</el-form-item>
</el-form>
</div>
</el-collapse-item>
</el-collapse>
<!-- </el-tab-pane>-->
<!-- </el-tabs>-->
<!-- 选择答案 -->
<el-dialog
v-if="QuestionVisible"
:title="$t('trials:adRules:title:selectAnswer')"
:visible.sync="QuestionVisible"
width="800px"
:close-on-click-modal="false"
custom-class="base-dialog-wrapper"
append-to-body
>
<div class="base-dialog-body">
<!-- 阅片人A -->
<el-form-item
label-width="110px"
:label="$t('trials:adRules:title:answerGroupA')"
>
<el-checkbox-group v-model="QuestionList[selectIndex].groupingA">
<template
v-for="item of QuestionList[selectIndex].TypeValue.split('|')"
>
<el-checkbox
v-if="QuestionList[selectIndex].QuestionGenre !== 3"
:key="item"
:label="item"
:disabled="
QuestionList[selectIndex].groupingB.length
? ~QuestionList[selectIndex].groupingB.indexOf(item)
: false
"
>{{ item }}</el-checkbox
>
</template>
<template
v-for="item of $d[QuestionList[selectIndex].DictionaryCode]"
>
<el-checkbox
v-if="
QuestionList[selectIndex].QuestionGenre === 3 &&
item.value !== -1
"
:key="item.id"
:label="item.value"
:disabled="
QuestionList[selectIndex].groupingB.length
? ~QuestionList[selectIndex].groupingB.indexOf(item.value)
: false
"
>{{ item.label }}</el-checkbox
>
</template>
</el-checkbox-group>
</el-form-item>
<!-- 阅片人B -->
<el-form-item
label-width="110px"
:label="$t('trials:adRules:title:answerGroupB')"
>
<el-checkbox-group v-model="QuestionList[selectIndex].groupingB">
<template
v-for="item of QuestionList[selectIndex].TypeValue.split('|')"
>
<el-checkbox
v-if="QuestionList[selectIndex].QuestionGenre !== 3"
:key="item"
:label="item"
:disabled="
QuestionList[selectIndex].groupingA.length
? ~QuestionList[selectIndex].groupingA.indexOf(item)
: false
"
>{{ item }}</el-checkbox
>
</template>
<template
v-for="item of $d[QuestionList[selectIndex].DictionaryCode]"
>
<el-checkbox
v-if="
QuestionList[selectIndex].QuestionGenre === 3 &&
item.value !== -1
"
:key="item.id"
:label="item.value"
:disabled="
QuestionList[selectIndex].groupingA.length
? ~QuestionList[selectIndex].groupingA.indexOf(item.value)
: false
"
>{{ item.label }}</el-checkbox
>
</template>
</el-checkbox-group>
</el-form-item>
</div>
<div
class="base-dialog-footer"
style="text-align: right; margin-top: 10px"
>
<!-- 取消 -->
<el-button
v-hasPermi="['trials:trials-panel:setting:reading-unit:edit']"
:disabled="btnLoading"
size="small"
type="primary"
@click="
QuestionVisible = false
$set(QuestionList[selectIndex], 'groupingA', [])
$set(QuestionList[selectIndex], 'groupingB', [])
"
>
{{ $t('common:button:cancel') }}
</el-button>
<el-button
v-hasPermi="['trials:trials-panel:setting:reading-unit:edit']"
:disabled="btnLoading"
size="small"
type="primary"
@click="save"
>
{{ $t('common:button:save') }}
</el-button>
</div>
</el-dialog>
</el-form>
</template>
<script>
import {
getTrialConfirmCriterionList,
getTrialCriterionJudgeQuestionList,
setTrialCriterionJudgeQuestionAnswerGroup,
} from '@/api/trials/reading'
import { setTrialJudgyInfo, getTrialJudgyInfo } from '@/api/trials/setting'
export default {
props: {
trialReadingCriterionId: {
type: String,
default: '',
},
},
data() {
return {
CriterionList: [],
QuestionList: [],
ReadingQuestionCriterionTrialId: null,
btnLoading: false,
loading: false,
index: 0,
QuestionVisible: false,
activeNames: null,
indexA: null,
type: null,
OtherInfo: {
IsSign: true,
},
JudgyInfo: {},
JudgeDifferenceValueQRules: {
JudgeDifferenceType: [
{
required: true,
message: this.$t(
'trials:trials-list:setitng:JudgeDifferenceTypeRequired'
),
trigger: 'blur',
},
],
JudgeDifferenceValue: [
{
required: true,
message: this.$t(
'trials:trials-list:setitng:JudgeDifferenceValueRequired'
),
trigger: 'blur',
},
{
pattern: /^[0-9]+(.[0-9]{2})?$/,
message: this.$t('trials:trials-list:setitng:JudgeDifferenceValue'),
trigger: 'blur',
},
{
validator: (rule, value, callback) => {
if (value <= 0) {
callback(
new Error(
this.$t(
'trials:trials-list:setitng:JudgeDifferenceValueMin'
)
)
)
} else {
callback()
}
},
trigger: 'blur',
},
],
},
}
},
watch: {
TrialReadingCriterionId(v) {
if (v === null) return
this.loading = true
getTrialCriterionJudgeQuestionList({
TrialId: this.$route.query.trialId,
// ReadingQuestionCriterionTrialId: v,
TrialReadingCriterionId: this.trialReadingCriterionId,
})
.then((res) => {
this.loading = false
this.QuestionList = res.Result
this.OtherInfo = res.OtherInfo
this.activeNames = this.QuestionList.map(
(v) => v.ReadingQuestionTrialId
)
this.QuestionList.forEach((v) => {
this.$set(v, 'grouping', [])
this.$set(v, 'groupingA', [])
this.$set(v, 'groupingB', [])
this.$set(
v,
'AnswerGroupList',
Object.assign([], v.AnswerCombination)
)
this.$set(v, 'AnswerGroup2List', Object.assign([], v.AnswerGroup))
})
})
.catch(() => {
this.btnLoading = false
this.loading = false
})
},
},
mounted() {
this.getList()
this.getTrialJudgyInfo()
},
methods: {
// 修改仲裁规则
changeArbitrationRule(value) {
if (value !== 1) {
this.QuestionList.forEach((item) => {
item.JudgeDifferenceValue = 0
item.JudgeDifferenceType = 0
})
}
},
JudgeTypeChange(value, index) {
this.$nextTick(() => {
if (value === 4 || value === 5) {
if (this.$refs['JudgeDifferenceValue' + value + index][0]) {
this.$refs['JudgeDifferenceValue' + value + index][0].resetFields()
// this.QuestionList[index].JudgeDifferenceValue = 0;
}
}
})
},
saveAllSync() {
return new Promise((resolve, reject) => {
var arr = []
this.QuestionList.forEach((v, i) => {
arr.push(this.applySync(v.ReadingQuestionTrialId, i))
})
Promise.all(arr)
.then((res) => {
console.log(res)
resolve(true)
})
.catch((res) => {
console.log('进入catch')
resolve(false)
})
})
},
applySync(ReadingQuestionTrialId, index) {
return new Promise(async (resolve, reject) => {
console.log(this.QuestionList[index].JudgeType)
if (this.QuestionList[index].JudgeType === 0) {
reject(false)
return
}
if (
this.QuestionList[index].JudgeType === 2 &&
this.QuestionList[index].AnswerGroup2List.length === 0
) {
reject(false)
return
}
if (
this.QuestionList[index].JudgeType === 3 &&
this.QuestionList[index].AnswerGroupList.length === 0
) {
reject(false)
return
}
if (
this.QuestionList[index].JudgeType === 4 ||
this.QuestionList[index].JudgeType === 5
) {
try {
let validate = await this.$refs[
'JudgeDifferenceValue' +
this.QuestionList[index].JudgeType +
index
][0].validate()
if (!validate) return reject(false)
} catch (err) {
return reject(false)
}
}
this.btnLoading = true
this.loading = true
setTrialCriterionJudgeQuestionAnswerGroup({
ReadingQuestionTrialId: ReadingQuestionTrialId,
AnswerGroup: this.QuestionList[index].AnswerGroup2List,
AnswerCombination: this.QuestionList[index].AnswerGroupList,
JudgeType: this.QuestionList[index].JudgeType,
JudgeDifferenceValue: Number(
this.QuestionList[index].JudgeDifferenceValue
),
JudgeDifferenceType: Number(
this.QuestionList[index].JudgeDifferenceType
),
})
.then((res) => {
resolve()
this.btnLoading = false
this.loading = false
})
.catch(() => {
reject(false)
this.btnLoading = false
this.loading = false
})
})
},
setTrialJudgyInfo() {
this.loading = true
setTrialJudgyInfo({
TrialId: this.$route.query.trialId,
ArbitrationRule: this.JudgyInfo.ArbitrationRule,
TrialReadingCriterionId: this.trialReadingCriterionId,
})
.then((res) => {
this.loading = false
this.$message.success(this.$t('common:message:savedSuccessfully')) // '保存成功'
})
.catch(() => {
this.loading = false
})
},
getTrialJudgyInfo() {
this.loading = true
getTrialJudgyInfo({
TrialId: this.$route.query.trialId,
TrialReadingCriterionId: this.trialReadingCriterionId,
})
.then((res) => {
this.JudgyInfo = res.Result
this.loading = false
})
.catch((v) => {
this.loading = false
})
},
tagClose2(index, indexA) {
// '删除该规则组?'
this.$confirm(this.$t('trials:adRules:message:msg1')).then(() => {
this.QuestionList[index].AnswerGroup2List.splice(indexA, 1)
})
},
tagClose(index, indexA) {
// '删除该规则组?'
this.$confirm(this.$t('trials:adRules:message:msg1')).then(() => {
this.QuestionList[index].AnswerGroupList.splice(indexA, 1)
})
},
save() {
var index = this.selectIndex
var indexA = this.indexA
if (this.QuestionList[index].groupingA.length === 0) {
this.$alert(this.$t('trials:adRules:message:msg2')) // '请先选择答案A'
return
}
if (this.QuestionList[index].groupingB.length === 0) {
this.$alert(this.$t('trials:adRules:message:msg3')) // '请先选择答案B'
return
}
if (this.type === 'add') {
this.QuestionList[index].AnswerGroupList.push({
AnswerGroupA: this.QuestionList[index].groupingA,
AnswerGroupB: this.QuestionList[index].groupingB,
})
} else {
this.$set(
this.QuestionList[index].AnswerGroupList[indexA],
'AnswerGroupA',
this.QuestionList[index].groupingA
)
this.$set(
this.QuestionList[index].AnswerGroupList[indexA],
'AnswerGroupB',
this.QuestionList[index].groupingB
)
}
this.$set(this.QuestionList[index], 'groupingA', [])
this.$set(this.QuestionList[index], 'groupingB', [])
this.$message.success(this.$t('trials:adRules:message:msg4')) // '成功新增答案规则'
this.QuestionVisible = false
},
addGroup2(index) {
if (this.QuestionList[index].grouping.length === 0) {
this.$alert(this.$t('trials:adRules:message:msg5')) // '请先选择答案,再添加分组'
return
}
var grouping = this.QuestionList[index].grouping
.toString()
.replaceAll(',', '|')
this.QuestionList[index].AnswerGroup2List.push(`|${grouping}|`)
this.$set(this.QuestionList[index], 'grouping', [])
},
addGroup(index, indexA) {
this.selectIndex = index
this.type = 'add'
if (indexA !== null) {
this.indexA = indexA
this.type = 'edit'
this.$set(
this.QuestionList[index],
'groupingA',
this.QuestionList[index].AnswerGroupList[indexA].AnswerGroupA
)
this.$set(
this.QuestionList[index],
'groupingB',
this.QuestionList[index].AnswerGroupList[indexA].AnswerGroupB
)
}
this.QuestionVisible = true
},
reset(ReadingQuestionTrialId, index) {
// '确定重置当前设置的裁判任务生成规则吗?'
this.$confirm(this.$t('trials:adRules:message:msg6')).then(() => {
this.btnLoading = true
this.loading = true
setTrialCriterionJudgeQuestionAnswerGroup({
ReadingQuestionTrialId: ReadingQuestionTrialId,
AnswerGroup: [],
AnswerCombination: [],
JudgeType: 0,
JudgeDifferenceValue: 0,
JudgeDifferenceType: 0,
})
.then((res) => {
this.$set(this.QuestionList[index], 'AnswerGroup2List', [])
this.$set(this.QuestionList[index], 'AnswerGroupList', [])
this.$set(this.QuestionList[index], 'JudgeType', 0)
this.$set(this.QuestionList[index], 'JudgeDifferenceValue', 0)
this.$set(this.QuestionList[index], 'JudgeDifferenceType', 0)
this.$message.success(this.$t('trials:adRules:message:msg7')) // '重置成功'
this.btnLoading = false
this.loading = false
})
.catch(() => {
this.btnLoading = false
this.loading = false
})
})
},
async apply(ReadingQuestionTrialId, index) {
if (this.QuestionList[index].JudgeType === 0) {
this.$alert(this.$t('trials:adRules:message:msg8')) // '请先配置规则才能应用'
return
}
if (
this.QuestionList[index].JudgeType === 2 &&
this.QuestionList[index].AnswerGroup2List.length === 0
) {
this.$alert(this.$t('trials:adRules:message:msg8')) // '请先配置规则才能应用'
return
}
if (
this.QuestionList[index].JudgeType === 3 &&
this.QuestionList[index].AnswerGroupList.length === 0
) {
this.$alert(this.$t('trials:adRules:message:msg8'))
return
}
if (
this.QuestionList[index].JudgeType === 4 ||
this.QuestionList[index].JudgeType === 5
) {
try {
let validate = await this.$refs[
'JudgeDifferenceValue' + this.QuestionList[index].JudgeType + index
][0].validate()
if (!validate) return
} catch (err) {
return
}
}
this.btnLoading = true
this.loading = true
setTrialCriterionJudgeQuestionAnswerGroup({
ReadingQuestionTrialId: ReadingQuestionTrialId,
AnswerGroup: this.QuestionList[index].AnswerGroup2List,
AnswerCombination: this.QuestionList[index].AnswerGroupList,
JudgeType: this.QuestionList[index].JudgeType,
JudgeDifferenceValue: Number(
this.QuestionList[index].JudgeDifferenceValue
),
JudgeDifferenceType: Number(
this.QuestionList[index].JudgeDifferenceType
),
})
.then((res) => {
this.$message.success(this.$t('trials:adRules:message:msg9')) // '应用成功'
this.btnLoading = false
this.loading = false
})
.catch(() => {
this.btnLoading = false
this.loading = false
})
},
tabClick(v) {
this.ReadingQuestionCriterionTrialId =
this.CriterionList[this.index].ReadingQuestionCriterionTrialId
},
getList() {
this.loading = true
getTrialCriterionJudgeQuestionList({
TrialId: this.$route.query.trialId,
TrialReadingCriterionId: this.trialReadingCriterionId,
})
.then((res) => {
this.loading = false
this.QuestionList = res.Result
this.OtherInfo = res.OtherInfo
this.activeNames = this.QuestionList.map(
(v) => v.ReadingQuestionTrialId
)
this.QuestionList.forEach((v) => {
this.$set(v, 'grouping', [])
this.$set(v, 'groupingA', [])
this.$set(v, 'groupingB', [])
this.$set(
v,
'AnswerGroupList',
Object.assign([], v.AnswerCombination)
)
this.$set(v, 'AnswerGroup2List', Object.assign([], v.AnswerGroup))
})
})
.catch(() => {
this.btnLoading = false
this.loading = false
})
},
},
}
</script>