|
|
|
|
@ -20,7 +20,7 @@
|
|
|
|
|
出差申请{{ routeParams.type === 'view' ? ' - 查看' : form.tripId ? ' - 修改' : ' - 新增' }}
|
|
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
<el-form ref="businessTripApplyFormRef" :model="form" :loading="buttonLoading" :rules="rules" label-width="120px">
|
|
|
|
|
<el-form ref="businessTripApplyFormRef" :model="form" :loading="buttonLoading" :rules="computedRules" label-width="120px">
|
|
|
|
|
<!-- 通用字段区域 -->
|
|
|
|
|
<el-row :gutter="20">
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
@ -132,7 +132,7 @@
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="12" v-if="!isFormDisabled">
|
|
|
|
|
<el-col :span="12" v-if="routeParams.type === 'approval' && !isFormDisabled">
|
|
|
|
|
<el-form-item label="抄送人员" prop="copyUserIds">
|
|
|
|
|
<el-select v-model="form.copyUserIds" placeholder="请选择抄送人员" filterable clearable multiple style="width: 100%">
|
|
|
|
|
<el-option v-for="user in userList" :key="user.userId" :label="user.nickName" :value="String(user.userId)" />
|
|
|
|
|
@ -489,6 +489,25 @@ const isFormDisabled = computed(() => {
|
|
|
|
|
// 计算动态校验规则
|
|
|
|
|
const computedRules = computed(() => {
|
|
|
|
|
const baseRules = { ...rules.value };
|
|
|
|
|
|
|
|
|
|
// 申请人确认节点添加强校验(开始日期和结束日期不为空,且结束要在开始之后)
|
|
|
|
|
if (routeParams.value.type === 'approval' && String(useUserStore().userId) === String(form.value.applicantId)) {
|
|
|
|
|
baseRules.startTime = [{ required: true, message: '开始日期不能为空', trigger: 'change' }];
|
|
|
|
|
baseRules.endTime = [
|
|
|
|
|
{ required: true, message: '结束日期不能为空', trigger: 'change' },
|
|
|
|
|
{
|
|
|
|
|
validator: (rule: any, value: any, callback: any) => {
|
|
|
|
|
if (value && form.value.startTime && dayjs(value).isBefore(dayjs(form.value.startTime))) {
|
|
|
|
|
callback(new Error('结束日期不能早于开始日期'));
|
|
|
|
|
} else {
|
|
|
|
|
callback();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger: 'change'
|
|
|
|
|
}
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return baseRules;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|