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

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-option v-for="item in subjectVisitOptions" :key="item.Id" :label="item.VisitName" :value="item.Id" />
</el-select> </el-select>
</el-form-item> </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-input v-model="form.Reason" type="textarea" autosize />
</el-form-item> </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-input v-model="form.SuspendReason" type="textarea" autosize />
</el-form-item> </el-form-item>
</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;">
<el-form-item style="text-align:right;"> <el-form-item style="text-align:right;">
@ -63,13 +92,13 @@ export default {
Reason: '', Reason: '',
VisitOverTime: '', VisitOverTime: '',
FinalSubjectVisitId: '', FinalSubjectVisitId: '',
SuspendReason: '' SuspendReason: '',
BackReason: ''
}, },
rules: { rules: {
OutEnrollmentTime: [{ required: true, message: this.$t('common:ruleMessage:select'), trigger: ['blur'] }], OutEnrollmentTime: [{ required: true, message: this.$t('common:ruleMessage:select'), trigger: ['blur'] }],
FinalSubjectVisitId: [{ 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'] }] VisitOverTime: [{ required: true, message: this.$t('common:ruleMessage:select'), trigger: ['blur'] }]
}, },
pickerOption: { pickerOption: {
@ -91,6 +120,8 @@ export default {
methods: { methods: {
handleChange() { handleChange() {
if (this.form.Status !== 3) this.form.SuspendReason = '' 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() { async initForm() {
this.loading = true this.loading = true