仲裁规则配置项添加判断条件
continuous-integration/drone/push Build is running Details

uat_us
wangxiaoshuang 2024-05-16 10:19:08 +08:00
parent 71073d749b
commit 6fd5caf8cb
1 changed files with 560 additions and 229 deletions

View File

@ -4,36 +4,94 @@
<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-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">
<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-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')">
<el-radio-group v-model="QuestionList[index].JudgeType" @input="(val)=>JudgeTypeChange(val,index)">
<el-radio v-for="item of $d.JudgeTypeEnum" :key="item.id" :disabled="OtherInfo.IsSign || !hasPermi(['trials:trials-panel:setting:reading-unit:edit'])" :label="item.value">{{ item.label }}</el-radio>
<el-form-item
:label-width="'280px'"
:label="$t('trials:adRules:title:judgeTypeEnum')"
>
<el-radio-group
v-model="QuestionList[index].JudgeType"
@input="(val) => JudgeTypeChange(val, index)"
>
<template v-for="item of $d.JudgeTypeEnum">
<el-radio
: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 !== 5)
"
>{{ 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;">
<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>
<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"
@ -59,7 +117,13 @@
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() }}
{{
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 -->
@ -69,7 +133,13 @@
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() }}
{{
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
@ -100,39 +170,151 @@
</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">
<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>
<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
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;">
<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: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') }}
{{ $t("trials:adRules:title:addGroup") }}
</el-button>
</div>
</div>
<div v-if="QuestionList[index].QuestionGenre !== 3" style="margin-top: 20px;">分组: <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;">
<div
v-if="QuestionList[index].QuestionGenre !== 3"
style="margin-top: 20px"
>
分组:
<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('|') }}
{{ $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:JudgeDifferenceValue${QuestionList[index].JudgeType}`)" prop="JudgeDifferenceValue">
<el-input v-model="QuestionList[index].JudgeDifferenceValue" clearable :disabled="OtherInfo.IsSign"></el-input>
<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:JudgeDifferenceValue${QuestionList[index].JudgeType}`
)
"
prop="JudgeDifferenceValue"
>
<el-input
v-model="QuestionList[index].JudgeDifferenceValue"
clearable
:disabled="OtherInfo.IsSign"
></el-input>
</el-form-item>
</el-form>
</div>
@ -152,38 +334,105 @@
>
<div class="base-dialog-body">
<!-- 阅片人A -->
<el-form-item label-width="110px" :label="$t('trials:adRules:title:answerGroupA')">
<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
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
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-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
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
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;">
<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', [])"
@click="
QuestionVisible = false;
$set(QuestionList[selectIndex], 'groupingA', []);
$set(QuestionList[selectIndex], 'groupingB', []);
"
>
{{ $t('common:button:cancel') }}
{{ $t("common:button:cancel") }}
</el-button>
<el-button
v-hasPermi="['trials:trials-panel:setting:reading-unit:edit']"
@ -192,21 +441,25 @@
type="primary"
@click="save"
>
{{ $t('common:button: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'
import {
getTrialConfirmCriterionList,
getTrialCriterionJudgeQuestionList,
setTrialCriterionJudgeQuestionAnswerGroup,
} from "@/api/trials/reading";
import { setTrialJudgyInfo, getTrialJudgyInfo } from "@/api/trials/setting";
export default {
props: {
trialReadingCriterionId: {
type: String,
default: ''
}
default: "",
},
},
data() {
return {
@ -221,7 +474,7 @@ export default {
indexA: null,
type: null,
OtherInfo: {
IsSign: true
IsSign: true,
},
JudgyInfo: {},
JudgeDifferenceValueQRules: {
@ -235,283 +488,361 @@ export default {
},
{
pattern: /^[0-9]+(.[0-9]{2})?$/,
message: this.$t(
"trials:trials-list:setitng:JudgeDifferenceValue"
),
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")));
callback(
new Error(
this.$t(
"trials:trials-list:setitng:JudgeDifferenceValueMin"
)
)
);
} else {
callback();
}
},
trigger: "blur",
},
]
],
},
}
};
},
watch: {
TrialReadingCriterionId(v) {
if (v === null) return
this.loading = true
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))
TrialReadingCriterionId: this.trialReadingCriterionId,
})
}).catch(() => {
this.btnLoading = false
this.loading = false
.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()
this.getList();
this.getTrialJudgyInfo();
},
methods: {
//
changeArbitrationRule(value) {
if (value !== 1) {
this.QuestionList.forEach((item) => {
item.JudgeDifferenceValue = 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();
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 = []
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)
})
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((resolve, reject) => {
console.log(this.QuestionList[index].JudgeType)
console.log(this.QuestionList[index].JudgeType);
if (this.QuestionList[index].JudgeType === 0) {
reject(false)
return
reject(false);
return;
}
if (this.QuestionList[index].JudgeType === 2 && this.QuestionList[index].AnswerGroup2List.length === 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 === 3 &&
this.QuestionList[index].AnswerGroupList.length === 0
) {
reject(false);
return;
}
this.btnLoading = true
this.loading = true
this.btnLoading = true;
this.loading = true;
setTrialCriterionJudgeQuestionAnswerGroup({
ReadingQuestionTrialId: ReadingQuestionTrialId,
AnswerGroup: this.QuestionList[index].AnswerGroup2List,
AnswerCombination: this.QuestionList[index].AnswerGroupList,
JudgeType: this.QuestionList[index].JudgeType
}).then(res => {
resolve()
this.btnLoading = false
this.loading = false
}).catch(() => {
reject(false)
this.btnLoading = false
this.loading = false
JudgeType: this.QuestionList[index].JudgeType,
})
.then((res) => {
resolve();
this.btnLoading = false;
this.loading = false;
})
.catch(() => {
reject(false);
this.btnLoading = false;
this.loading = false;
});
});
},
setTrialJudgyInfo() {
this.loading = true
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
TrialReadingCriterionId: this.trialReadingCriterionId,
})
.then((res) => {
this.loading = false;
this.$message.success(this.$t("common:message:savedSuccessfully")); // ''
})
.catch(() => {
this.loading = false;
});
},
getTrialJudgyInfo() {
this.loading = true
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
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)
})
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)
})
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
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
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
this.$alert(this.$t("trials:adRules:message:msg3")); // 'B'
return;
}
if (this.type === 'add') {
if (this.type === "add") {
this.QuestionList[index].AnswerGroupList.push({
AnswerGroupA: this.QuestionList[index].groupingA,
AnswerGroupB: this.QuestionList[index].groupingB
})
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].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
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
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', [])
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'
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.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
this.QuestionVisible = true;
},
reset(ReadingQuestionTrialId, index) {
// ''
this.$confirm(this.$t('trials:adRules:message:msg6')).then(() => {
this.btnLoading = true
this.loading = true
this.$confirm(this.$t("trials:adRules:message:msg6")).then(() => {
this.btnLoading = true;
this.loading = true;
setTrialCriterionJudgeQuestionAnswerGroup({
ReadingQuestionTrialId: ReadingQuestionTrialId,
AnswerGroup: [],
AnswerCombination: [],
JudgeType: 0,
JudgeDifferenceValue: 0,
}).then(res => {
this.$set(this.QuestionList[index], 'AnswerGroup2List', [])
this.$set(this.QuestionList[index], 'AnswerGroupList', [])
this.$set(this.QuestionList[index], 'JudgeType', 0)
this.$message.success(this.$t('trials:adRules:message:msg7'))// ''
this.btnLoading = false
this.loading = false
}).catch(() => {
this.btnLoading = false
this.loading = false
})
.then((res) => {
this.$set(this.QuestionList[index], "AnswerGroup2List", []);
this.$set(this.QuestionList[index], "AnswerGroupList", []);
this.$set(this.QuestionList[index], "JudgeType", 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
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 === 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 === 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) {
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();
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
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),
}).then(res => {
this.$message.success(this.$t('trials:adRules:message:msg9'))// ''
this.btnLoading = false
this.loading = false
}).catch(() => {
this.btnLoading = false
this.loading = false
JudgeDifferenceValue: Number(
this.QuestionList[index].JudgeDifferenceValue
),
})
.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
this.ReadingQuestionCriterionTrialId =
this.CriterionList[this.index].ReadingQuestionCriterionTrialId;
},
getList() {
this.loading = true
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))
TrialReadingCriterionId: this.trialReadingCriterionId,
})
}).catch(() => {
this.btnLoading = false
this.loading = false
.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>