添加页面必填信息校验

This commit is contained in:
2026-09-18 19:00:08 +08:00
parent 04551fce73
commit 5a3d202599
7 changed files with 97 additions and 34 deletions
@@ -48,9 +48,41 @@ public class KCBMBServiceImpl implements KCBMBService {
tpl.setMBKY(true);
}
tpl.setMBCZ(tpl.getMB() != null && !tpl.getMB().isEmpty());
applyLayoutDefaults(tpl);
kcbmbbMapper.insert(tpl);
}
/**
* 布局位置列为 NOT NULL 但当前版本不参与渲染计算,
* 未填写时给占位值,上传者取当前登录账号。
*/
private void applyLayoutDefaults(KCBMBB tpl) {
if (tpl.getBTWZ() == null || tpl.getBTWZ().isEmpty()) tpl.setBTWZ("0");
if (tpl.getZYXXWZ() == null || tpl.getZYXXWZ().isEmpty()) tpl.setZYXXWZ("0");
if (tpl.getKBSJHH() == null || tpl.getKBSJHH().isEmpty()) tpl.setKBSJHH("0");
if (tpl.getMWLWZ() == null || tpl.getMWLWZ().isEmpty()) tpl.setMWLWZ("0");
if (tpl.getKCHWZ() == null || tpl.getKCHWZ().isEmpty()) tpl.setKCHWZ("0");
if (tpl.getKCXHLWZ() == null || tpl.getKCXHLWZ().isEmpty()) tpl.setKCXHLWZ("0");
if (tpl.getKCMCLWZ() == null || tpl.getKCMCLWZ().isEmpty()) tpl.setKCMCLWZ("0");
if (tpl.getKCJCLWZ() == null || tpl.getKCJCLWZ().isEmpty()) tpl.setKCJCLWZ("0");
if (tpl.getKCXSLWZ() == null || tpl.getKCXSLWZ().isEmpty()) tpl.setKCXSLWZ("0");
if (tpl.getKCLXLWZ() == null || tpl.getKCLXLWZ().isEmpty()) tpl.setKCLXLWZ("0");
if (tpl.getKCZRJYSLWZ() == null || tpl.getKCZRJYSLWZ().isEmpty()) tpl.setKCZRJYSLWZ("0");
if (tpl.getKCZRJYLWZ() == null || tpl.getKCZRJYLWZ().isEmpty()) tpl.setKCZRJYLWZ("0");
if (tpl.getKCSKJYLWZ() == null || tpl.getKCSKJYLWZ().isEmpty()) tpl.setKCSKJYLWZ("0");
if (tpl.getKCRSLWZ() == null || tpl.getKCRSLWZ().isEmpty()) tpl.setKCRSLWZ("0");
if (tpl.getKCCDLWZ() == null || tpl.getKCCDLWZ().isEmpty()) tpl.setKCCDLWZ("0");
if (tpl.getQJBZWZ() == null || tpl.getQJBZWZ().isEmpty()) tpl.setQJBZWZ("0");
if (tpl.getSCZ() == null || tpl.getSCZ().isEmpty()) {
try {
tpl.setSCZ(com.roomroot.common.utils.SecurityUtils.getUsername());
} catch (Exception e) {
tpl.setSCZ("system");
}
}
if (tpl.getXSYJ() == null) tpl.setXSYJ(false);
}
@Override
public void update(KCBMBB tpl) {
if (tpl.getBH() == null || tpl.getBH().isEmpty()) {
@@ -29,6 +29,9 @@ public class TeachingStockDetailServiceImpl implements TeachingStockDetailServic
jckcmxx.setDelFlag(0);
// 生成编号(四位补零)
jckcmxx.setBh(getNextNumber());
if (jckcmxx.getJsonzd() == null || jckcmxx.getJsonzd().isEmpty()) {
jckcmxx.setJsonzd("{}");
}
teachingStockDetailMapper.insert(jckcmxx);
}
@@ -32,6 +32,9 @@ public class TeachingStockServiceImpl implements TeachingStockService {
jckcd.setXgsj(LocalDateTime.now());
// 生成编号(四位补零)
jckcd.setBh(getNextNumber());
if (jckcd.getJsonzd() == null || jckcd.getJsonzd().isEmpty()) {
jckcd.setJsonzd("{}");
}
teachingStockMapper.insert(jckcd);
}
@@ -108,6 +108,11 @@
<el-form ref="formRef" :model="form" :rules="formRules" label-width="130px" class="form-dialog-form">
<el-divider content-position="left">基本信息</el-divider>
<el-row :gutter="16">
<el-col :span="12" v-if="isAdd">
<el-form-item label="编号" prop="bh">
<el-input v-model="form.bh" placeholder="请输入编号" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="名称" prop="mc">
<el-input v-model="form.mc" placeholder="请输入名称" />
@@ -302,6 +307,7 @@ export default {
formSaving: false,
form: this.createEmptyForm(),
formRules: {
bh: [{ required: true, message: "编号不能为空", trigger: "blur" }],
mc: [{ required: true, message: "名称不能为空", trigger: "blur" }],
ty: [{ required: true, message: "停用不能为空", trigger: "change" }],
bb: [{ required: true, message: "版本不能为空", trigger: "blur" }]
@@ -193,7 +193,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="规范名称">
<el-form-item label="规范名称" prop="gfmc">
<el-input v-model="form.gfmc" placeholder="请输入规范名称" />
</el-form-item>
</el-col>
@@ -512,7 +512,8 @@ export default {
zdyfl: [{ required: true, message: "自定义分类不能为空", trigger: "blur" }],
zgzy: [{ required: true, message: "主干专业不能为空", trigger: "change" }],
jclb: [{ required: true, message: "请选择节次类别", trigger: "change" }],
xtms: [{ required: true, message: "请选择系统模式", trigger: "change" }]
xtms: [{ required: true, message: "请选择系统模式", trigger: "change" }],
gfmc: [{ required: true, message: "规范名称不能为空", trigger: "blur" }]
},
// ==================== 详情 ====================
@@ -113,7 +113,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="教学楼代号">
<el-form-item label="教学楼代号" prop="jxldh">
<el-select v-model="dialog.form.jxldh" :loading="buildOptionsLoading" placeholder="请选择教学楼"
clearable filterable class="w-full">
<el-option
@@ -139,7 +139,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="容纳人数">
<el-form-item label="容纳人数" prop="rnrs">
<el-input-number v-model="dialog.form.rnrs" :min="0" controls-position="right" class="w-full" />
</el-form-item>
</el-col>
@@ -299,7 +299,9 @@ export default {
scheduleQuery: { rq: '', jc: undefined },
scheduleList: [],
rules: {
jsmc: [{ required: true, message: '请输入教室名称', trigger: 'blur' }]
jsmc: [{ required: true, message: '请输入教室名称', trigger: 'blur' }],
jxldh: [{ required: true, message: '请选择教学楼', trigger: 'change' }],
rnrs: [{ required: true, message: '请输入容纳人数', trigger: 'blur' }]
}
}
},
+45 -29
View File
@@ -293,7 +293,7 @@
</el-row>
<el-row :gutter="16">
<el-col :span="12">
<el-form-item label="作者"><el-input v-model="addForm.zz" placeholder="请输入" /></el-form-item>
<el-form-item label="作者" prop="zz"><el-input v-model="addForm.zz" placeholder="请输入" /></el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="出版社"><el-input v-model="addForm.cbs" placeholder="请输入" /></el-form-item>
@@ -304,21 +304,21 @@
<el-form-item label="ISBN"><el-input v-model="addForm.isbn" placeholder="请输入" /></el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="出版日期">
<el-form-item label="出版日期" prop="cbrq">
<el-date-picker v-model="addForm.cbrq" type="date" value-format="yyyy-MM-dd" placeholder="选择" style="width:100%" />
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="16">
<el-col :span="12">
<el-form-item label="教材分类">
<el-form-item label="教材分类" prop="jcfl">
<el-select v-model="addForm.jcfl" placeholder="请选择" clearable style="width:100%">
<el-option v-for="item in jcflOptions" :key="item" :label="item" :value="item" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="教材类型">
<el-form-item label="教材类型" prop="jclx">
<el-select v-model="addForm.jclx" placeholder="请选择" clearable style="width:100%">
<el-option v-for="item in jclxOptions" :key="item" :label="item" :value="item" />
</el-select>
@@ -327,14 +327,14 @@
</el-row>
<el-row :gutter="16">
<el-col :span="12">
<el-form-item label="重点类型">
<el-form-item label="重点类型" prop="jczdlx">
<el-select v-model="addForm.jczdlx" placeholder="请选择" clearable style="width:100%">
<el-option v-for="item in jczdlxOptions" :key="item" :label="item" :value="item" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="教材来源">
<el-form-item label="教材来源" prop="jcly">
<el-select v-model="addForm.jcly" placeholder="请选择" clearable style="width:100%">
<el-option v-for="item in jclyOptions" :key="item" :label="item" :value="item" />
</el-select>
@@ -343,14 +343,14 @@
</el-row>
<el-row :gutter="16">
<el-col :span="12">
<el-form-item label="教材层次">
<el-form-item label="教材层次" prop="jccc">
<el-select v-model="addForm.jccc" placeholder="请选择" clearable style="width:100%">
<el-option v-for="item in jcccOptions" :key="item" :label="item" :value="item" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="出版方式">
<el-form-item label="出版方式" prop="cbfs">
<el-select v-model="addForm.cbfs" placeholder="请选择" clearable style="width:100%">
<el-option v-for="item in cbfsOptions" :key="item" :label="item" :value="item" />
</el-select>
@@ -362,15 +362,15 @@
<el-form-item label="版次"><el-input v-model="addForm.bc" placeholder="请输入" /></el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="开本"><el-input v-model="addForm.kb" placeholder="请输入" /></el-form-item>
<el-form-item label="开本" prop="kb"><el-input v-model="addForm.kb" placeholder="请输入" /></el-form-item>
</el-col>
</el-row>
<el-row :gutter="16">
<el-col :span="12">
<el-form-item label="单价"><el-input-number v-model="addForm.dj" :min="0" :precision="2" style="width:100%" /></el-form-item>
<el-form-item label="单价" prop="dj"><el-input-number v-model="addForm.dj" :min="0" :precision="2" style="width:100%" /></el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="计量单位">
<el-form-item label="计量单位" prop="jldw">
<el-select v-model="addForm.jldw" placeholder="请选择" clearable style="width:100%">
<el-option v-for="item in jldwOptions" :key="item" :label="item" :value="item" />
</el-select>
@@ -442,7 +442,7 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="作者"><el-input v-model="editForm.zz" placeholder="请输入" /></el-form-item>
<el-form-item label="作者" prop="zz"><el-input v-model="editForm.zz" placeholder="请输入" /></el-form-item>
</el-col>
</el-row>
<el-row :gutter="16">
@@ -455,12 +455,12 @@
</el-row>
<el-row :gutter="16">
<el-col :span="12">
<el-form-item label="出版日期">
<el-form-item label="出版日期" prop="cbrq">
<el-date-picker v-model="editForm.cbrq" type="date" value-format="yyyy-MM-dd" placeholder="选择" style="width:100%" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="教材分类">
<el-form-item label="教材分类" prop="jcfl">
<el-select v-model="editForm.jcfl" placeholder="请选择" clearable style="width:100%">
<el-option v-for="item in jcflOptions" :key="item" :label="item" :value="item" />
</el-select>
@@ -469,14 +469,14 @@
</el-row>
<el-row :gutter="16">
<el-col :span="12">
<el-form-item label="教材类型">
<el-form-item label="教材类型" prop="jclx">
<el-select v-model="editForm.jclx" placeholder="请选择" clearable style="width:100%">
<el-option v-for="item in jclxOptions" :key="item" :label="item" :value="item" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="重点类型">
<el-form-item label="重点类型" prop="jczdlx">
<el-select v-model="editForm.jczdlx" placeholder="请选择" clearable style="width:100%">
<el-option v-for="item in jczdlxOptions" :key="item" :label="item" :value="item" />
</el-select>
@@ -485,14 +485,14 @@
</el-row>
<el-row :gutter="16">
<el-col :span="12">
<el-form-item label="教材来源">
<el-form-item label="教材来源" prop="jcly">
<el-select v-model="editForm.jcly" placeholder="请选择" clearable style="width:100%">
<el-option v-for="item in jclyOptions" :key="item" :label="item" :value="item" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="教材层次">
<el-form-item label="教材层次" prop="jccc">
<el-select v-model="editForm.jccc" placeholder="请选择" clearable style="width:100%">
<el-option v-for="item in jcccOptions" :key="item" :label="item" :value="item" />
</el-select>
@@ -501,7 +501,7 @@
</el-row>
<el-row :gutter="16">
<el-col :span="12">
<el-form-item label="出版方式">
<el-form-item label="出版方式" prop="cbfs">
<el-select v-model="editForm.cbfs" placeholder="请选择" clearable style="width:100%">
<el-option v-for="item in cbfsOptions" :key="item" :label="item" :value="item" />
</el-select>
@@ -513,15 +513,15 @@
</el-row>
<el-row :gutter="16">
<el-col :span="12">
<el-form-item label="开本"><el-input v-model="editForm.kb" placeholder="请输入" /></el-form-item>
<el-form-item label="开本" prop="kb"><el-input v-model="editForm.kb" placeholder="请输入" /></el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="单价"><el-input-number v-model="editForm.dj" :min="0" :precision="2" style="width:100%" /></el-form-item>
<el-form-item label="单价" prop="dj"><el-input-number v-model="editForm.dj" :min="0" :precision="2" style="width:100%" /></el-form-item>
</el-col>
</el-row>
<el-row :gutter="16">
<el-col :span="12">
<el-form-item label="计量单位">
<el-form-item label="计量单位" prop="jldw">
<el-select v-model="editForm.jldw" placeholder="请选择" clearable style="width:100%">
<el-option v-for="item in jldwOptions" :key="item" :label="item" :value="item" />
</el-select>
@@ -587,15 +587,15 @@
</el-row>
<el-row :gutter="16">
<el-col :span="12">
<el-form-item label="类别"><el-input v-model="stockForm.lb" placeholder="请输入" /></el-form-item>
<el-form-item label="类别" prop="lb"><el-input v-model="stockForm.lb" placeholder="请输入" /></el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="字别"><el-input v-model="stockForm.zb" placeholder="请输入" /></el-form-item>
<el-form-item label="字别" prop="zb"><el-input v-model="stockForm.zb" placeholder="请输入" /></el-form-item>
</el-col>
</el-row>
<el-row :gutter="16">
<el-col :span="12">
<el-form-item label="承办部门编号"><el-input v-model="stockForm.cbbmbh" placeholder="请输入" /></el-form-item>
<el-form-item label="承办部门编号" prop="cbbmbh"><el-input v-model="stockForm.cbbmbh" placeholder="请输入" /></el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="承办人编号"><el-input v-model="stockForm.cbrbh" placeholder="请输入" /></el-form-item>
@@ -611,10 +611,10 @@
</el-row>
<el-row :gutter="16">
<el-col :span="12">
<el-form-item label="状态"><el-input v-model="stockForm.zt" placeholder="请输入" /></el-form-item>
<el-form-item label="状态" prop="zt"><el-input v-model="stockForm.zt" placeholder="请输入" /></el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="情况说明"><el-input v-model="stockForm.qksm" placeholder="请输入" /></el-form-item>
<el-form-item label="情况说明" prop="qksm"><el-input v-model="stockForm.qksm" placeholder="请输入" /></el-form-item>
</el-col>
</el-row>
<el-row :gutter="16">
@@ -821,7 +821,18 @@ export default {
// ==================== 表单校验 ====================
formRules: {
mc: [{ required: true, message: '请输入教材名称', trigger: 'blur' }],
jcbxlx: [{ required: true, message: '请选择编写类型', trigger: 'change' }]
jcbxlx: [{ required: true, message: '请选择编写类型', trigger: 'change' }],
zz: [{ required: true, message: '请输入作者', trigger: 'blur' }],
cbrq: [{ required: true, message: '请选择出版日期', trigger: 'change' }],
jcfl: [{ required: true, message: '请选择教材分类', trigger: 'change' }],
jclx: [{ required: true, message: '请选择教材类型', trigger: 'change' }],
jczdlx: [{ required: true, message: '请选择重点类型', trigger: 'change' }],
jcly: [{ required: true, message: '请选择教材来源', trigger: 'change' }],
jccc: [{ required: true, message: '请选择教材层次', trigger: 'change' }],
cbfs: [{ required: true, message: '请选择出版方式', trigger: 'change' }],
kb: [{ required: true, message: '请输入开本', trigger: 'blur' }],
dj: [{ required: true, message: '请输入单价', trigger: 'blur' }],
jldw: [{ required: true, message: '请选择计量单位', trigger: 'change' }]
},
// ==================== 导入 ====================
@@ -840,7 +851,12 @@ export default {
isStockAdd: true,
stockForm: this.createEmptyStockForm(),
stockFormRules: {
mc: [{ required: true, message: '请输入名称', trigger: 'blur' }]
mc: [{ required: true, message: '请输入名称', trigger: 'blur' }],
qksm: [{ required: true, message: '请输入情况说明', trigger: 'blur' }],
lb: [{ required: true, message: '请输入类别', trigger: 'blur' }],
zb: [{ required: true, message: '请输入字别', trigger: 'blur' }],
cbbmbh: [{ required: true, message: '请输入承办部门编号', trigger: 'blur' }],
zt: [{ required: true, message: '请输入状态', trigger: 'blur' }]
},
stockDetailDialogVisible: false,
stockDetailData: {},