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_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_DISABLED = new ErrorCode(1_014_003, "该物料大类没有维护物料大类编码,请维护!");
|
||||||
ErrorCode MAT_CAT_CODE_ERROR = new ErrorCode(1_014_004, "该物料大类编码不正确,请检查!");
|
ErrorCode MAT_CAT_CODE_ERROR = new ErrorCode(1_014_004, "该物料大类编码不正确,请检查!");
|
||||||
|
|
||||||
|
|||||||
@ -9,7 +9,7 @@
|
|||||||
v-loading="formLoading"
|
v-loading="formLoading"
|
||||||
>
|
>
|
||||||
<el-form-item label="物料大类" prop="matTypeCode">
|
<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
|
<el-option
|
||||||
v-for="dict in getStrDictOptions(DICT_TYPE.HELI_MATERIAL_CODE)"
|
v-for="dict in getStrDictOptions(DICT_TYPE.HELI_MATERIAL_CODE)"
|
||||||
:key="dict.value"
|
:key="dict.value"
|
||||||
@ -20,10 +20,10 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="物料分类编码" prop="matTypeCode" >
|
<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>
|
||||||
<el-form-item label="最大流水号" prop="curMaxSeq" >
|
<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>
|
||||||
<el-form-item label="状态" prop="status">
|
<el-form-item label="状态" prop="status">
|
||||||
<el-radio-group v-model="formData.status">
|
<el-radio-group v-model="formData.status">
|
||||||
@ -80,8 +80,9 @@ const formRules = reactive({
|
|||||||
// 验证:最大流水号长度 + 物料分类编码长度 = 8
|
// 验证:最大流水号长度 + 物料分类编码长度 = 8
|
||||||
const matTypeCode = formData.value.matTypeCode || ''
|
const matTypeCode = formData.value.matTypeCode || ''
|
||||||
const curMaxSeqStr = String(value)
|
const curMaxSeqStr = String(value)
|
||||||
if (matTypeCode.length + curMaxSeqStr.length !== 8) {
|
const expectedLength = 8 - matTypeCode.length
|
||||||
callback(new Error('最大流水号格式不正确!'))
|
if (curMaxSeqStr.length !== expectedLength) {
|
||||||
|
callback(new Error(`最大流水号必须是${expectedLength}位数字`))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
callback()
|
callback()
|
||||||
@ -122,14 +123,15 @@ const submitForm = async () => {
|
|||||||
const data = formData.value as unknown as MatCodeApi.MatCodeVO
|
const data = formData.value as unknown as MatCodeApi.MatCodeVO
|
||||||
if (formType.value === 'create') {
|
if (formType.value === 'create') {
|
||||||
await MatCodeApi.createMatCode(data)
|
await MatCodeApi.createMatCode(data)
|
||||||
message.success(t('common.createSuccess'))
|
|
||||||
} else {
|
} else {
|
||||||
await MatCodeApi.updateMatCode(data)
|
await MatCodeApi.updateMatCode(data)
|
||||||
message.success(t('common.updateSuccess'))
|
|
||||||
}
|
}
|
||||||
|
message.success(t('common.operationSuccess'))
|
||||||
dialogVisible.value = false
|
dialogVisible.value = false
|
||||||
// 发送操作成功的事件
|
// 发送操作成功的事件
|
||||||
emit('success')
|
emit('success')
|
||||||
|
} catch (e) {
|
||||||
|
// 错误已在全局处理,这里不需要重复提示
|
||||||
} finally {
|
} finally {
|
||||||
formLoading.value = false
|
formLoading.value = false
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user