yxk-20260610-把把脉

需要所办领导审批时,增加必填校验
This commit is contained in:
ye1023
2026-06-10 20:04:34 +08:00
parent f6600e85ec
commit e19cd8a629
@@ -134,7 +134,7 @@
<j-switch v-model:value="formData.isNeedAppro" ></j-switch>
</a-form-item>
</a-col>
<a-col :span="12">
<a-col v-if="showSupDeptLeader" :span="12">
<a-form-item label="所办领导" v-bind="validateInfos.supDeptleaderid" id="BgTakepulseForm-supDeptleaderid" name="supDeptleaderid">
<j-select-user v-model:value="formData.supDeptleaderid" allow-clear />
</a-form-item>
@@ -151,7 +151,7 @@
</template>
<script lang="ts">
import { defineComponent, ref, reactive, computed, toRaw, onMounted } from 'vue';
import { defineComponent, ref, reactive, computed, toRaw, onMounted, watch } from 'vue';
import { defHttp } from '/@/utils/http/axios';
import { queryDataById, saveOrUpdate } from '../BgTakepulse.api';
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
@@ -215,10 +215,22 @@
delFlag: '',
});
const showSupDeptLeader = computed(() => formData.isNeedAppro === '1');
//表单验证
const validatorRules = reactive({
supDeptleaderid: [
{
validator: async (_rule, value) => {
if (showSupDeptLeader.value && !value) {
return Promise.reject('请选择所办领导');
}
return Promise.resolve();
},
},
],
});
const {resetFields, validate, validateInfos} = useForm(formData, validatorRules, {immediate: false});
const {resetFields, validate, validateInfos, clearValidate} = useForm(formData, validatorRules, {immediate: false});
const dbData = {};
const formItemLayout = {
labelCol: {xs: {span: 24}, sm: {span: 5}},
@@ -237,6 +249,16 @@
return props.formDisabled;
});
// 不需要所办领导审批时,隐藏字段不能保留历史选择或校验错误。
function clearSupDeptLeaderIfNotNeeded() {
if (!showSupDeptLeader.value) {
formData.supDeptleaderid = '';
clearValidate(['supDeptleaderid']);
}
}
watch(() => formData.isNeedAppro, clearSupDeptLeaderIfNotNeeded);
onMounted(()=>{
initFormData();
});
@@ -250,6 +272,7 @@
Object.keys(row).map(k => {
formData[k] = row[k];
});
clearSupDeptLeaderIfNotNeeded();
}
}
// 是否显示提交按钮
@@ -282,6 +305,7 @@
})
//赋值
Object.assign(formData,tmpData);
clearSupDeptLeaderIfNotNeeded();
}
async function getFormData() {
@@ -302,6 +326,9 @@
function normalizeMainFormData(data) {
if (data) {
if (data.isNeedAppro !== '1') {
data.supDeptleaderid = '';
}
Object.keys(data).forEach((key) => {
if (Array.isArray(data[key])) {
data[key] = data[key].join(',');
@@ -326,6 +353,7 @@
Object.keys(values).map(k=>{
formData[k] = values[k];
});
clearSupDeptLeaderIfNotNeeded();
}
}
@@ -348,6 +376,7 @@
handleFormChange,
formItemLayout,
disabled,
showSupDeptLeader,
showFlowSubmitButton,
getFormData,
submitForm,