可以通过计算属性与rules结合。
<el-form-item label="编号" prop="licenseNumber" :rules="computedlicenseNumberRules">
<el-input
v-model="floatPanelData.licenseNumber"
clearable
:placeholder="showView ? '' : '请输入'"
></el-input>
</el-form-item>
data() {
return {
rules: {
// 验证规则
licenseNumber: [
{
pattern: /^(开始编号〔\d{4}〕\d{3}号|开始编码〔\d{4}〕\d{3}号)$/,
message: '“例如:开始编号〔2024〕001号,或开始编码〔2024〕001号”',
trigger: 'blur',
},
],
},
};
},
computed: {
computedlicenseNumberRules() {
if (this.floatPanelData.fillingStatus === '是') {
return [
{ required: true, message: '编号为必填项', trigger: 'blur' },
{
pattern: /^(开始编号〔\d{4}〕\d{3}号|开始编码〔\d{4}〕\d{3}号)$/,
message: '“例如:开始编号〔2024〕001号,或开始编码〔2024〕001号”',
trigger: 'blur',
},
];
} else {
return this.licenseNumber;
}
},
},