分类问题补充属性

uat_us
caiyiling 2024-10-30 10:43:10 +08:00
parent 7ebfcd0827
commit 94e924a753
6 changed files with 235 additions and 72 deletions

View File

@ -156,12 +156,27 @@
</el-checkbox-group> </el-checkbox-group>
<!-- 自动分类 --> <!-- 自动分类 -->
<el-input <el-input
v-if="question.Type === 'class' && !question.TypeValue" v-if="question.Type === 'class' && question.ClassifyShowType === 1"
v-model="questionForm[question.Id]" v-model="questionForm[question.Id]"
/> />
<el-radio-group <el-select
v-if="question.Type === 'class' && question.TypeValue" v-if="question.Type === 'class' && question.ClassifyShowType === 2"
v-model="questionForm[question.Id]" v-model="questionForm[question.Id]"
:disabled="!question.ClassifyEditType"
@change="(val) => { formItemChange(val, question) }"
>
<el-option
v-for="val in question.TypeValue.split('|')"
:key="val"
:label="val.trim()"
:value="val.trim()"
/>
</el-select>
<el-radio-group
v-if="question.Type === 'class' && question.ClassifyShowType === 3"
v-model="questionForm[question.Id]"
:disabled="!question.ClassifyEditType"
@change="(val) => { formItemChange(val, question) }"
> >
<el-radio <el-radio
v-for="item of question.TypeValue.split('|')" v-for="item of question.TypeValue.split('|')"

View File

@ -97,12 +97,27 @@
</el-checkbox-group> </el-checkbox-group>
<!-- 自动分类 --> <!-- 自动分类 -->
<el-input <el-input
v-if="question.Type === 'class' && !question.TypeValue" v-if="question.Type === 'class' && question.ClassifyShowType === 1"
v-model="questionForm[question.Id]" v-model="questionForm[question.Id]"
/> />
<el-radio-group <el-select
v-if="question.Type === 'class' && question.TypeValue" v-if="question.Type === 'class' && question.ClassifyShowType === 2"
v-model="questionForm[question.Id]" v-model="questionForm[question.Id]"
:disabled="!question.ClassifyEditType"
@change="(val) => { formItemChange(val, question) }"
>
<el-option
v-for="val in question.TypeValue.split('|')"
:key="val"
:label="val.trim()"
:value="val.trim()"
/>
</el-select>
<el-radio-group
v-if="question.Type === 'class' && question.ClassifyShowType === 3"
v-model="questionForm[question.Id]"
:disabled="!question.ClassifyEditType"
@change="(val) => { formItemChange(val, question) }"
> >
<el-radio <el-radio
v-for="item of question.TypeValue.split('|')" v-for="item of question.TypeValue.split('|')"

View File

@ -198,12 +198,28 @@
/> />
<!-- 自动分类 --> <!-- 自动分类 -->
<el-input <el-input
v-if="question.Type === 'class' && !question.TypeValue" v-if="question.Type === 'class' && question.ClassifyShowType === 1"
v-model="questionForm[question.Id]" v-model="questionForm[question.Id]"
:disabled="!question.ClassifyEditType"
/> />
<el-radio-group <el-select
v-if="question.Type === 'class' && question.TypeValue" v-if="question.Type === 'class' && question.ClassifyShowType === 2"
v-model="questionForm[question.Id]" v-model="questionForm[question.Id]"
:disabled="!question.ClassifyEditType"
@change="(val) => { formItemChange(val, question) }"
>
<el-option
v-for="val in question.TypeValue.split('|')"
:key="val"
:label="val.trim()"
:value="val.trim()"
/>
</el-select>
<el-radio-group
v-if="question.Type === 'class' && question.ClassifyShowType === 3"
v-model="questionForm[question.Id]"
:disabled="!question.ClassifyEditType"
@change="(val) => { formItemChange(val, question) }"
> >
<el-radio <el-radio
v-for="item of question.TypeValue.split('|')" v-for="item of question.TypeValue.split('|')"

View File

@ -103,12 +103,28 @@
/> />
<!-- 自动计算 --> <!-- 自动计算 -->
<el-input <el-input
v-if="question.Type === 'class' && !question.TypeValue" v-if="question.Type === 'class' && question.ClassifyShowType === 1"
v-model="questionForm[question.Id]" v-model="questionForm[question.Id]"
:disabled="!question.ClassifyEditType"
/> />
<el-radio-group <el-select
v-if="question.Type === 'class' && question.TypeValue" v-if="question.Type === 'class' && question.ClassifyShowType === 2"
v-model="questionForm[question.Id]" v-model="questionForm[question.Id]"
:disabled="!question.ClassifyEditType"
@change="(val) => { formItemChange(val, question) }"
>
<el-option
v-for="val in question.TypeValue.split('|')"
:key="val"
:label="val.trim()"
:value="val.trim()"
/>
</el-select>
<el-radio-group
v-if="question.Type === 'class' && question.ClassifyShowType === 3"
v-model="questionForm[question.Id]"
:disabled="!question.ClassifyEditType"
@change="(val) => { formItemChange(val, question) }"
> >
<el-radio <el-radio
v-for="item of question.TypeValue.split('|')" v-for="item of question.TypeValue.split('|')"
@ -118,6 +134,7 @@
{{ item.trim() }} {{ item.trim() }}
</el-radio> </el-radio>
</el-radio-group> </el-radio-group>
<!-- 自增 --> <!-- 自增 -->
<el-input <el-input
v-if="question.Type==='increment'" v-if="question.Type==='increment'"

View File

@ -910,6 +910,48 @@
</el-table> </el-table>
</div> </div>
</el-form-item> </el-form-item>
<!-- 分类是否可编辑 -->
<el-form-item
v-if="form.Type === 'class'"
:label="$t('trials:readingUnit:qsList:title:ClassifyEditType')"
prop="ClassifyEditType"
:rules="[
{ required: true, message: this.$t('common:ruleMessage:select'), trigger: 'blur' }
]"
>
<el-radio-group
v-model="form.ClassifyEditType"
>
<el-radio
v-for="item of $d.ClassifyEditType"
:key="item.id"
:label="item.value"
>
{{ item.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<!-- 分类显示类型 -->
<el-form-item
v-if="form.Type === 'class'"
:label="$t('trials:readingUnit:qsList:title:ClassifyShowType')"
prop="ClassifyShowType"
:rules="[
{ required: true, message: this.$t('common:ruleMessage:select'), trigger: 'blur' }
]"
>
<el-radio-group
v-model="form.ClassifyShowType"
>
<el-radio
v-for="item of $d.ClassifyShowType"
:key="item.id"
:label="item.value"
>
{{ item.label }}
</el-radio>
</el-radio-group>
</el-form-item>
</div> </div>
</div> </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;">
@ -1026,6 +1068,8 @@ export default {
ExportIdentification: 0, ExportIdentification: 0,
ExportResult: [], ExportResult: [],
ClassifyType: null, ClassifyType: null,
ClassifyEditType: null,
ClassifyShowType: null
// IsEnable: true // IsEnable: true
}, },
rules: { rules: {
@ -1479,6 +1523,11 @@ export default {
} else { } else {
form.MaxAnswerLength = null form.MaxAnswerLength = null
} }
if (val === 'class') {
form.ClassifyEditType = 1
} else {
form.ClassifyEditType = null
}
form.IsRequired = 2 form.IsRequired = 2
form.LesionType = null form.LesionType = null
form.ImageCount = 0 form.ImageCount = 0
@ -1499,6 +1548,7 @@ export default {
form.ExportIdentification = 0 form.ExportIdentification = 0
form.ExportResult = [] form.ExportResult = []
form.ClassifyType = null form.ClassifyType = null
form.ClassifyShowType = null
}, },
getLesionType() { getLesionType() {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {

View File

@ -607,26 +607,26 @@
<!-- 分类 --> <!-- 分类 -->
<el-form-item <el-form-item
v-if="form.Type === 'class'" v-if="form.Type === 'class'"
:label="$t('trials:readingUnit:qsList:title:ClassifyType')" :label="$t('trials:readingUnit:qsList:title:ClassifyType')"
prop="ClassifyType" prop="ClassifyType"
:rules="[ :rules="[
{ required: true, message: this.$t('common:ruleMessage:select'), trigger: 'blur' } { required: true, message: this.$t('common:ruleMessage:select'), trigger: 'blur' }
]" ]"
>
<el-radio-group
v-model="form.ClassifyType"
@change="classifyTypeChange"
> >
<el-radio <el-radio-group
v-for="item of $d.ClassifyType" v-model="form.ClassifyType"
:key="item.id" @change="classifyTypeChange"
:label="item.value"
> >
{{ item.label }} <el-radio
</el-radio> v-for="item of $d.ClassifyType"
</el-radio-group> :key="item.id"
</el-form-item> :label="item.value"
>
{{ item.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item <el-form-item
v-if="form.Type === 'class' && form.ClassifyType === 0" v-if="form.Type === 'class' && form.ClassifyType === 0"
:label="$t('trials:readingUnit:label:ClassifyQuestion')" :label="$t('trials:readingUnit:label:ClassifyQuestion')"
@ -706,50 +706,92 @@
</div> </div>
</el-form-item> </el-form-item>
<el-form-item <el-form-item
v-if="form.Type === 'class' && form.ClassifyType === 1" v-if="form.Type === 'class' && form.ClassifyType === 1"
:label="$t('trials:readingUnit:label:ClassifyAlgorithms')" :label="$t('trials:readingUnit:label:ClassifyAlgorithms')"
prop="ClassifyAlgorithms" prop="ClassifyAlgorithms"
:rules="[ :rules="[
{ required: true, message: this.$t('common:ruleMessage:select'), trigger: 'blur' } { required: true, message: this.$t('common:ruleMessage:select'), trigger: 'blur' }
]" ]"
> >
<div> <div>
<el-table <el-table
ref="CalculateTable" ref="CalculateTable"
:data="ClassifyAlgorithmsList" :data="ClassifyAlgorithmsList"
style="margin: 10px;width: calc(100% - 20px)" style="margin: 10px;width: calc(100% - 20px)"
size="small" size="small"
>
<!-- 运算类型 -->
<el-table-column
:label="$t('trials:readingUnit:label:label')"
show-overflow-tooltip
min-width="70"
>
<template slot-scope="scope">
{{ scope.row.label }}
</template>
</el-table-column>
<!-- 选项 -->
<el-table-column
:label="$t('trials:readingUnit:label:options')"
show-overflow-tooltip
min-width="128"
>
<template slot-scope="scope">
<el-select v-model="scope.row.val" multiple>
<el-option
v-for="item in classifyQuestionOptions"
:key="item"
:label="item"
:value="item">
</el-option>
</el-select>
</template>
</el-table-column>
</el-table>
</div>
</el-form-item>
<!-- 分类是否可编辑 -->
<el-form-item
v-if="form.Type === 'class'"
:label="$t('trials:readingUnit:qsList:title:ClassifyEditType')"
prop="ClassifyEditType"
:rules="[
{ required: true, message: this.$t('common:ruleMessage:select'), trigger: 'blur' }
]"
>
<el-radio-group
v-model="form.ClassifyEditType"
> >
<!-- 运算类型 --> <el-radio
<el-table-column v-for="item of $d.ClassifyEditType"
:label="$t('trials:readingUnit:label:label')" :key="item.id"
show-overflow-tooltip :label="item.value"
min-width="70"
> >
<template slot-scope="scope"> {{ item.label }}
{{ scope.row.label }} </el-radio>
</template> </el-radio-group>
</el-table-column> </el-form-item>
<!-- 选项 --> <!-- 分类显示类型 -->
<el-table-column <el-form-item
:label="$t('trials:readingUnit:label:options')" v-if="form.Type === 'class'"
show-overflow-tooltip :label="$t('trials:readingUnit:qsList:title:ClassifyShowType')"
min-width="128" prop="ClassifyShowType"
:rules="[
{ required: true, message: this.$t('common:ruleMessage:select'), trigger: 'blur' }
]"
>
<el-radio-group
v-model="form.ClassifyShowType"
>
<el-radio
v-for="item of $d.ClassifyShowType"
:key="item.id"
:label="item.value"
> >
<template slot-scope="scope"> {{ item.label }}
<el-select v-model="scope.row.val" multiple> </el-radio>
<el-option </el-radio-group>
v-for="item in classifyQuestionOptions" </el-form-item>
:key="item"
:label="item"
:value="item">
</el-option>
</el-select>
</template>
</el-table-column>
</el-table>
</div>
</el-form-item>
</div> </div>
</div> </div>
@ -848,7 +890,9 @@ export default {
ExportIdentification: 0, ExportIdentification: 0,
ExportResult: [], ExportResult: [],
ImageCount: 0, ImageCount: 0,
ClassifyType: null ClassifyType: null,
ClassifyEditType: null,
ClassifyShowType: null,
// IsEnable: true // IsEnable: true
}, },
rules: { rules: {
@ -1238,6 +1282,11 @@ export default {
} else { } else {
form.MaxAnswerLength = null form.MaxAnswerLength = null
} }
if (val === 'class') {
form.ClassifyEditType = 1
} else {
form.ClassifyEditType = null
}
form.IsRequired = 2 form.IsRequired = 2
form.TypeValue = '' form.TypeValue = ''
form.TableQuestionType = null form.TableQuestionType = null
@ -1260,6 +1309,7 @@ export default {
form.ExportResult = [] form.ExportResult = []
form.ImageCount = 0 form.ImageCount = 0
form.ClassifyType = null form.ClassifyType = null
form.ClassifyShowType = null
}, },
close() { close() {
this.$emit('close') this.$emit('close')