受试者任务状态变更原因更改

main
caiyiling 2026-07-06 17:20:59 +08:00
parent 414af5db9e
commit 39dadbbf47
1 changed files with 36 additions and 5 deletions

View File

@ -21,14 +21,43 @@
<el-option v-for="item in subjectVisitOptions" :key="item.Id" :label="item.VisitName" :value="item.Id" />
</el-select>
</el-form-item>
<!-- 访视中原因-->
<el-form-item
v-if="(form.Status < data.Status && form.Status === 1) || (form.BackReason)"
:label="$t('trials:subject:table:outVisitReason')"
prop="BackReason"
:rules="[
{ required: this.form.Status < this.data.Status, message: this.$t('common:ruleMessage:specify'), trigger: ['blur'] },
{ max: 500, message: `${this.$t('common:ruleMessage:maxLength')} 500`, trigger: ['blur'] }
]"
>
<el-input v-model="form.BackReason" type="textarea" autosize />
</el-form-item>
<!-- 结束访视的原因 -->
<el-form-item v-if="form.Status === 2" :label="$t('trials:subject:table:outVisitReason')" prop="Reason">
<el-form-item
v-if="form.Status === 2"
:label="$t('trials:subject:table:outVisitReason')"
prop="Reason"
:rules="[
{ required: this.form.Status < this.data.Status, message: this.$t('common:ruleMessage:specify'), trigger: ['blur'] },
{ max: 500, message: `${this.$t('common:ruleMessage:maxLength')} 500`, trigger: ['blur'] }
]"
>
<el-input v-model="form.Reason" type="textarea" autosize />
</el-form-item>
<!-- 访视中止的原因 -->
<el-form-item v-if="form.Status === 3" :label="$t('trials:subject:table:outVisitReason')" prop="SuspendReason">
<el-form-item
v-if="form.Status === 3"
:label="$t('trials:subject:table:outVisitReason')"
prop="SuspendReason"
:rules="[
{ required: this.form.Status < this.data.Status, message: this.$t('common:ruleMessage:specify'), trigger: ['blur'] },
{ max: 500, message: `${this.$t('common:ruleMessage:maxLength')} 500`, trigger: ['blur'] }
]"
>
<el-input v-model="form.SuspendReason" type="textarea" autosize />
</el-form-item>
</div>
<div class="base-dialog-footer" style="text-align:right;margin-top:10px;">
<el-form-item style="text-align:right;">
@ -63,13 +92,13 @@ export default {
Reason: '',
VisitOverTime: '',
FinalSubjectVisitId: '',
SuspendReason: ''
SuspendReason: '',
BackReason: ''
},
rules: {
OutEnrollmentTime: [{ required: true, message: this.$t('common:ruleMessage:select'), trigger: ['blur'] }],
FinalSubjectVisitId: [{ required: true, message: this.$t('common:ruleMessage:select'), trigger: ['blur'] }],
Reason: [{ max: 500, message: `${this.$t('common:ruleMessage:maxLength')} 500` }],
SuspendReason: [{ max: 500, message: `${this.$t('common:ruleMessage:maxLength')} 500` }],
// SuspendReason: [{ max: 500, message: `${this.$t('common:ruleMessage:maxLength')} 500` }],
VisitOverTime: [{ required: true, message: this.$t('common:ruleMessage:select'), trigger: ['blur'] }]
},
pickerOption: {
@ -91,6 +120,8 @@ export default {
methods: {
handleChange() {
if (this.form.Status !== 3) this.form.SuspendReason = ''
if (this.form.Status !== 2) this.form.Reason = ''
if (this.form.Status !== 1) this.form.BackReason = ''
},
async initForm() {
this.loading = true