fix(heli): 解决物料大类编码维护中的表单验证和交互问题
- 修改错误消息文本,明确物料大类已存在时不允许新增 - 在更新模式下禁用物料大类选择框,防止意外修改 - 在更新模式下禁用物料分类编码输入框,保持数据一致性 - 在更新模式下禁用最大流水号输入框,防止序列号混乱 - 改进最大流水号验证逻辑,显示准确的位数要求 - 统一操作成功消息提示,避免重复的成功反馈 - 添加异常处理,避免错误重复提示
This commit is contained in:
parent
7f269c516f
commit
d9adff9c69
@ -178,7 +178,7 @@ public interface ErrorCodeConstants {
|
||||
|
||||
// ========== 物料大类编码维护 ==========
|
||||
ErrorCode MAT_CODE_NOT_EXISTS = new ErrorCode(1_014_001, "该物料大类不存在");
|
||||
ErrorCode MAT_CAT_CODE_REPEAT = new ErrorCode(1_014_002, "该物料大类已存在");
|
||||
ErrorCode MAT_CAT_CODE_REPEAT = new ErrorCode(1_014_002, "该物料大类已存在,不允许新增!");
|
||||
ErrorCode MAT_CAT_CODE_DISABLED = new ErrorCode(1_014_003, "该物料大类没有维护物料大类编码,请维护!");
|
||||
ErrorCode MAT_CAT_CODE_ERROR = new ErrorCode(1_014_004, "该物料大类编码不正确,请检查!");
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
v-loading="formLoading"
|
||||
>
|
||||
<el-form-item label="物料大类" prop="matTypeCode">
|
||||
<el-select v-model="formData.matTypeCode" clearable placeholder="请选择物料大类" @change="handleMatCatChange" >
|
||||
<el-select v-model="formData.matTypeCode" clearable placeholder="请选择物料大类" @change="handleMatCatChange" :disabled="formType === 'update'">
|
||||
<el-option
|
||||
v-for="dict in getStrDictOptions(DICT_TYPE.HELI_MATERIAL_CODE)"
|
||||
:key="dict.value"
|
||||
@ -20,10 +20,10 @@
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="物料分类编码" prop="matTypeCode" >
|
||||
<el-input v-model="formData.matTypeCode" placeholder="请输入物料分类编码" show-word-limit disabled/>
|
||||
<el-input v-model="formData.matTypeCode" placeholder="请输入物料分类编码" show-word-limit :disabled="formType === 'update'"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="最大流水号" prop="curMaxSeq" >
|
||||
<el-input v-model="formData.curMaxSeq" placeholder="请输入当前最大流水号" maxlength="6" show-word-limit/>
|
||||
<el-input v-model="formData.curMaxSeq" placeholder="请输入当前最大流水号" :disabled="formType === 'update'" show-word-limit/>
|
||||
</el-form-item>
|
||||
<el-form-item label="状态" prop="status">
|
||||
<el-radio-group v-model="formData.status">
|
||||
@ -80,8 +80,9 @@ const formRules = reactive({
|
||||
// 验证:最大流水号长度 + 物料分类编码长度 = 8
|
||||
const matTypeCode = formData.value.matTypeCode || ''
|
||||
const curMaxSeqStr = String(value)
|
||||
if (matTypeCode.length + curMaxSeqStr.length !== 8) {
|
||||
callback(new Error('最大流水号格式不正确!'))
|
||||
const expectedLength = 8 - matTypeCode.length
|
||||
if (curMaxSeqStr.length !== expectedLength) {
|
||||
callback(new Error(`最大流水号必须是${expectedLength}位数字`))
|
||||
return
|
||||
}
|
||||
callback()
|
||||
@ -122,14 +123,15 @@ const submitForm = async () => {
|
||||
const data = formData.value as unknown as MatCodeApi.MatCodeVO
|
||||
if (formType.value === 'create') {
|
||||
await MatCodeApi.createMatCode(data)
|
||||
message.success(t('common.createSuccess'))
|
||||
} else {
|
||||
await MatCodeApi.updateMatCode(data)
|
||||
message.success(t('common.updateSuccess'))
|
||||
}
|
||||
message.success(t('common.operationSuccess'))
|
||||
dialogVisible.value = false
|
||||
// 发送操作成功的事件
|
||||
emit('success')
|
||||
} catch (e) {
|
||||
// 错误已在全局处理,这里不需要重复提示
|
||||
} finally {
|
||||
formLoading.value = false
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user