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