阅片标准优化
continuous-integration/drone/push Build is passing Details

uat_us
caiyiling 2024-10-21 14:55:26 +08:00
parent 3694c51288
commit bbc2d43335
6 changed files with 149 additions and 80 deletions

View File

@ -49,6 +49,10 @@
v-if="form.Type !== 'group'"
label="问题名称"
prop="QuestionName"
:rules="[
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
{ max: form.Type === 'summary' ? 500 : 100, message: `${this.$t('common:ruleMessage:maxLength')} ${form.Type === 'summary' ? 500 : 100}` }
]"
>
<el-input v-model="form.QuestionName" />
</el-form-item>
@ -57,6 +61,9 @@
v-if="form.Type !== 'group'"
label="问题名称EN"
prop="QuestionEnName"
:rules="[
{ max: form.Type === 'summary' ? 500 : 100, message: `${this.$t('common:ruleMessage:maxLength')} ${form.Type === 'summary' ? 500 : 100}` }
]"
>
<el-input v-model="form.QuestionEnName" />
</el-form-item>
@ -749,10 +756,10 @@ export default {
rules: {
Type: [{ required: true, message: '请选择', trigger: 'blur' }],
LesionType: [{ required: true, message: '请选择', trigger: 'blur' }],
QuestionName: [
{ required: true, message: '请注明', trigger: 'blur' },
{ max: 300, message: '最大长度为 300' },
],
// QuestionName: [
// { required: true, message: '', trigger: 'blur' },
// { max: 300, message: ' 300' },
// ],
QuestionGenre: [{ required: true, message: '请选择', trigger: 'blur' }],
TypeValue: [
{ required: true, message: '请注明', trigger: 'blur' },

View File

@ -28,6 +28,10 @@
v-if="form.Type !== 'group'"
label="问题名称"
prop="QuestionName"
:rules="[
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
{ max: form.Type === 'summary' ? 500 : 100, message: `${this.$t('common:ruleMessage:maxLength')} ${form.Type === 'summary' ? 500 : 100}` }
]"
>
<el-input
v-model="form.QuestionName"
@ -37,6 +41,9 @@
v-if="form.Type !== 'group'"
label="问题名称EN"
prop="QuestionEnName"
:rules="[
{ max: form.Type === 'summary' ? 500 : 100, message: `${this.$t('common:ruleMessage:maxLength')} ${form.Type === 'summary' ? 500 : 100}` }
]"
>
<el-input
v-model="form.QuestionEnName"
@ -532,8 +539,8 @@ export default {
Type: [
{ required: true, message: '请选择', trigger: 'blur' }
],
QuestionName: [{ required: true, message: '请注明', trigger: 'blur' },
{ max: 300, message: '最大长度为 300' }],
// QuestionName: [{ required: true, message: '', trigger: 'blur' },
// { max: 300, message: ' 300' }],
TypeValue: [{ required: true, message: '请注明', trigger: 'blur' },
{ validator: validateTypeVal, trigger: 'blur' },

View File

@ -215,8 +215,21 @@
/>
<!-- 数值 -->
<!-- :precision="2" :step="0.1" :max="10" -->
<el-select
v-if="question.Type === 'number' && question.TypeValue"
v-model="questionForm[question.Id]"
clearable
@change="((val)=>{formItemChange(val, question)})"
>
<el-option
v-for="val in question.TypeValue.split('|')"
:key="val"
:label="val"
:value="val"
/>
</el-select>
<el-input
v-if="question.Type === 'number' && question.DataSource !== 1"
v-else-if="question.Type === 'number' && question.DataSource !== 1"
v-model="questionForm[question.Id]"
type="number"
@change="
@ -226,7 +239,7 @@
"
/>
<el-input
v-if="question.Type === 'number' && question.DataSource === 1"
v-else-if="question.Type === 'number' && question.DataSource === 1"
v-model="questionForm[question.Id]"
type="number"
:disabled="question.DataSource === 1"

View File

@ -115,8 +115,21 @@
/>
<!-- 数值 -->
<!-- :precision="2" :step="0.1" :max="10" -->
<el-select
v-if="question.Type === 'number' && question.TypeValue"
v-model="questionForm[question.Id]"
clearable
@change="((val)=>{formItemChange(val, question)})"
>
<el-option
v-for="val in question.TypeValue.split('|')"
:key="val"
:label="val"
:value="val"
/>
</el-select>
<el-input
v-if="question.Type === 'number' && question.DataSource !== 1"
v-else-if="question.Type === 'number' && question.DataSource !== 1"
v-model="questionForm[question.Id]"
type="number"
@change="((val)=>{formItemNumberChange(val, question)})"
@ -125,7 +138,7 @@
<template v-else-if="question.ValueType === 2" slot="append">%</template>
</el-input>
<el-input
v-if="question.Type === 'number' && question.DataSource === 1"
v-else-if="question.Type === 'number' && question.DataSource === 1"
v-model="questionForm[question.Id]"
type="number"
:disabled="question.DataSource === 1"

View File

@ -61,6 +61,10 @@
v-if="(form.Type !== 'group' && $i18n.locale !== 'en' )"
:label="$t('trials:readingUnit:qsList:title:qsName')"
prop="QuestionName"
:rules="[
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
{ max: form.Type === 'summary' ? 500 : 100, message: `${this.$t('common:ruleMessage:maxLength')} ${form.Type === 'summary' ? 500 : 100}` }
]"
>
<el-input
v-model="form.QuestionName"
@ -71,6 +75,10 @@
v-if="(form.Type !== 'group' && $i18n.locale !== 'zh')"
:label="$t('trials:readingUnit:qsList:title:qsNameEn')"
prop="QuestionEnName"
:rules="[
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
{ max: form.Type === 'summary' ? 500 : 100, message: `${this.$t('common:ruleMessage:maxLength')} ${form.Type === 'summary' ? 500 : 100}` }
]"
>
<el-input
v-model="form.QuestionEnName"
@ -296,6 +304,28 @@
</el-form-item>
<!-- 私有属性 -->
<el-divider content-position="left">{{$t('trials:readingUnit:title:privateProperties')}}</el-divider>
<!-- 数值类型 -->
<el-form-item
v-if="form.Type === 'number'"
:label="$t('trials:readingUnit:qsList:title:valueType')"
prop="ValueType"
:rules="[
{ required: true, message: this.$t('common:ruleMessage:specify')}
]"
>
<el-radio-group
v-model="form.ValueType"
>
<el-radio
v-for="item of $d.ValueType"
v-show="item.value !== 3"
:key="item.id"
:label="item.value"
>
{{ item.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<!-- 选项类型 -->
<el-form-item
v-if="(form.Type === 'select' || form.Type === 'radio' || form.Type === 'calculation') && isFromSystem"
@ -325,9 +355,13 @@
</el-radio-group>
</el-form-item>
<el-form-item
v-if="(!isFromSystem || (isFromSystem && form.QuestionGenre !== 3)) && (form.Type === 'select' || form.Type === 'radio' || form.Type === 'calculation' || form.Type === 'class')"
v-if="(!isFromSystem || (isFromSystem && form.QuestionGenre !== 3)) && (form.Type === 'select' || form.Type === 'radio' || form.Type === 'calculation' || form.Type === 'class' || form.Type === 'number')"
:label="$t('trials:qcCfg:table:typeValue')"
prop="TypeValue"
:rules="[
{required: form.Type !== 'number', trigger: ['blur', 'change']},
{validator: validateTypeVal, trigger: ['blur', 'change']},
{max: 200, message: `${this.$t('common:ruleMessage:maxLength')} 200`}]"
>
<el-input
v-model="form.TypeValue"
@ -363,7 +397,7 @@
</el-select>
</el-form-item>
<el-form-item
v-if="(form.Type === 'select' || form.Type === 'radio') && form.TypeValue"
v-if="(form.Type === 'select' || form.Type === 'radio' || form.Type === 'number') && form.TypeValue"
:label="$t('trials:readingUnit:qsList:title:defaultValue')"
>
<el-select v-model="form.DefaultValue" clearable>
@ -375,7 +409,7 @@
/>
</el-select>
</el-form-item>
<el-form-item
<!-- <el-form-item
v-if="(form.Type === 'number') && !isFromSystem"
:label="$t('trials:readingUnit:qsList:title:defaultValue')"
>
@ -383,7 +417,7 @@
:disabled="form.DataSource === 1"
v-model="form.DefaultValue"
/>
</el-form-item>
</el-form-item> -->
<!-- 高亮标记值 -->
<el-form-item v-if="(form.Type === 'select' || form.Type === 'radio')" :label="$t('trials:readingUnit:qsList:title:highlightAnswers')" prop="HighlightAnswerList">
<el-select v-model="form.HighlightAnswerList" clearable multiple>
@ -444,28 +478,7 @@
</el-radio>
</el-radio-group>
</el-form-item>
<!-- 数值类型 -->
<el-form-item
v-if="form.Type === 'number'"
:label="$t('trials:readingUnit:qsList:title:valueType')"
prop="ValueType"
:rules="[
{ required: true, message: this.$t('common:ruleMessage:specify')}
]"
>
<el-radio-group
v-model="form.ValueType"
>
<el-radio
v-for="item of $d.ValueType"
v-show="item.value !== 3"
:key="item.id"
:label="item.value"
>
{{ item.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<!-- 修约小数位 -->
<el-form-item
v-if="form.Type === 'number' && form.ValueType === 1"
@ -792,19 +805,6 @@ export default {
},
data() {
var validateTypeVal = (rule, value, callback) => {
if (value === '') {
callback(new Error(this.$t('common:ruleMessage:specify')))
} else {
var arr = value.split('|')
if (new Set(arr).size !== arr.length) {
// ''
callback(new Error(this.$t('trials:readingUnit:qsList:message:msg0')))
} else {
callback()
}
}
}
return {
ClassifyAlgorithmsList: [],
form: {
@ -858,13 +858,10 @@ export default {
Type: [
{required: true, message: this.$t('common:ruleMessage:select'), trigger: ['blur', 'change']}
],
QuestionName: [{required: true, message: this.$t('common:ruleMessage:specify'), trigger: ['blur', 'change']},
{max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50`}],
QuestionEnName:[{required: true, message: this.$t('common:ruleMessage:specify'), trigger: ['blur', 'change']},
{max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50`}],
TypeValue: [{required: true, message: this.$t('common:ruleMessage:specify'), trigger: ['blur', 'change']},
{validator: validateTypeVal, trigger: ['blur', 'change']},
{max: 200, message: `${this.$t('common:ruleMessage:maxLength')} 200`}],
// QuestionName: [{required: true, message: this.$t('common:ruleMessage:specify'), trigger: ['blur', 'change']},
// {max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50`}],
// QuestionEnName:[{required: true, message: this.$t('common:ruleMessage:specify'), trigger: ['blur', 'change']},
// {max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50`}],
ShowQuestion: [{required: true, message: this.$t('common:ruleMessage:select'), trigger: ['blur', 'change']}],
IsRequired: [{required: true, message: this.$t('common:ruleMessage:select'), trigger: ['blur', 'change']}],
ParentId: [{required: true, message: this.$t('common:ruleMessage:select'), trigger: ['blur', 'change']}],
@ -896,7 +893,8 @@ export default {
lesionTypes: [],
Questions: [],
tableQuestions: [],
isShow: true
isShow: true,
validateTypeVal:null
}
},
watch: {
@ -905,6 +903,21 @@ export default {
}
},
mounted() {
this.validateTypeVal = (rule, value, callback) => {
if (value === '') {
callback(new Error(this.$t('common:ruleMessage:specify')))
} else {
var arr = value.split('|')
if (new Set(arr).size !== arr.length) {
// ''
callback(new Error(this.$t('trials:readingUnit:qsList:message:msg0')))
} else if (this.form.Type === 'number' && arr.findIndex(i=>isNaN(parseFloat(i)) && i!== 'NE') > -1) {
callback(new Error(this.$t('trials:readingUnit:qsList:message:msg5')))
} else {
callback()
}
}
}
this.initForm()
this.getBasicConfigSelect()
this.getCalculateQuestions('number')

View File

@ -31,6 +31,10 @@
v-if="form.Type !== 'group'&& $i18n.locale !== 'en'"
:label="$t('trials:readingUnit:qsList:title:qsName')"
prop="QuestionName"
:rules="[
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
{ max: form.Type === 'summary' ? 500 : 100, message: `${this.$t('common:ruleMessage:maxLength')} ${form.Type === 'summary' ? 500 : 100}` }
]"
>
<el-input
v-model="form.QuestionName"
@ -41,6 +45,10 @@
v-if="form.Type !== 'group'&& $i18n.locale !== 'zh'"
:label="$t('trials:readingUnit:qsList:title:qsNameEn')"
prop="QuestionEnName"
:rules="[
{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
{ max: form.Type === 'summary' ? 500 : 100, message: `${this.$t('common:ruleMessage:maxLength')} ${form.Type === 'summary' ? 500 : 100}` }
]"
>
<el-input
v-model="form.QuestionEnName"
@ -377,9 +385,13 @@
</el-radio-group>
</el-form-item>
<el-form-item
v-if="(!isFromSystem || form.TableQuestionType === 3) && (form.Type === 'select' || form.Type === 'radio' || form.Type === 'calculation' || form.Type === 'class')"
v-if="(!isFromSystem || form.TableQuestionType === 3) && (form.Type === 'select' || form.Type === 'radio' || form.Type === 'calculation' || form.Type === 'class' || form.Type === 'number')"
:label="$t('trials:readingUnit:qsList:title:typeValue')"
prop="TypeValue"
:rules="[
{required: form.Type !== 'number', trigger: ['blur', 'change']},
{validator: validateTypeVal, trigger: ['blur', 'change']},
{max: 200, message: `${this.$t('common:ruleMessage:maxLength')} 200`}]"
>
<el-input
v-model="form.TypeValue"
@ -388,7 +400,7 @@
/>
</el-form-item>
<el-form-item
v-if="(form.Type === 'select' || form.Type === 'radio') && form.TypeValue"
v-if="(form.Type === 'select' || form.Type === 'radio' || form.Type === 'number') && form.TypeValue"
:label="$t('trials:readingUnit:qsList:title:defaultValue')"
>
<el-select v-model="form.DefaultValue" clearable>
@ -401,7 +413,7 @@
</el-select>
</el-form-item>
<el-form-item
v-if="(form.Type === 'number') && !isFromSystem"
v-if="(form.Type === 'number') && !isFromSystem && !form.TypeValue"
:label="$t('trials:readingUnit:qsList:title:defaultValue')"
>
<el-input
@ -622,18 +634,6 @@ export default {
},
data() {
var validateTypeVal = (rule, value, callback) => {
if (value === '') {
callback(new Error(this.$t('common:ruleMessage:specify')))
} else {
var arr = value.split('|')
if (new Set(arr).size !== arr.length) {
callback(new Error(this.$t('trials:medicalFeedbackCfg:message:msg2')))
} else {
callback()
}
}
}
return {
ClassifyAlgorithmsList: [],
form: {
@ -679,13 +679,13 @@ export default {
Type: [
{ required: true, message: this.$t('common:ruleMessage:select'), trigger: 'blur' }
],
QuestionName: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
{ max: 200, message: `${this.$t('common:ruleMessage:maxLength')} 200` }],
QuestionEnName:[{required: true, message: this.$t('common:ruleMessage:specify'), trigger: ['blur', 'change']},
{max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50`}],
TypeValue: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
{ validator: validateTypeVal, trigger: 'blur' },
{ max: 200, message: `${this.$t('common:ruleMessage:maxLength')} 200` }],
// QuestionName: [{ required: true, message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
// { max: 200, message: `${this.$t('common:ruleMessage:maxLength')} 200` }],
// QuestionEnName:[{required: true, message: this.$t('common:ruleMessage:specify'), trigger: ['blur', 'change']},
// {max: 50, message: `${this.$t('common:ruleMessage:maxLength')} 50`}],
// TypeValue: [{ required: form.Type !== 'number', message: this.$t('common:ruleMessage:specify'), trigger: 'blur' },
// { validator: validateTypeVal, trigger: 'blur' },
// { max: 200, message: `${this.$t('common:ruleMessage:maxLength')} 200` }],
ShowQuestion: [{ required: true, message: this.$t('common:ruleMessage:select'), trigger: 'blur' }],
IsRequired: [{ required: true, message: this.$t('common:ruleMessage:select'), trigger: 'blur' }],
ParentId: [{ required: true, message: this.$t('common:ruleMessage:select'), trigger: 'blur' }],
@ -708,7 +708,8 @@ export default {
Questions: [],
tableQuestions: [],
LimitEdit: 0,
highlightAnswers: []
highlightAnswers: [],
validateTypeVal: null
}
},
watch: {
@ -733,6 +734,21 @@ export default {
}
},
mounted() {
this.validateTypeVal = (rule, value, callback) => {
if (value === '') {
callback(new Error(this.$t('common:ruleMessage:specify')))
} else {
var arr = value.split('|')
if (new Set(arr).size !== arr.length) {
// ''
callback(new Error(this.$t('trials:readingUnit:qsList:message:msg0')))
} else if (this.form.Type === 'number' && arr.findIndex(i=>isNaN(parseFloat(i)) && i!== 'NE') > -1) {
callback(new Error(this.$t('trials:readingUnit:qsList:message:msg5')))
} else {
callback()
}
}
}
this.initForm()
this.getCalculateTableQuestions('number')
this.getCalculateTableQuestions('table')