Compare commits
5 Commits
76c7e3d3dc
...
f6c1dedd22
| Author | SHA1 | Date | |
|---|---|---|---|
| f6c1dedd22 | |||
| 097fbb319f | |||
| 1f43de4ccc | |||
| 9bcd02c742 | |||
| a8fb0cfc94 |
@ -214,10 +214,12 @@ def update_buy(id):
|
||||
# 复制一份,避免遍历时修改字典
|
||||
for field in list(data.keys()):
|
||||
perm_code = field_to_perm.get(field)
|
||||
if not perm_code:
|
||||
continue # 不在映射中的字段跳过(不参与权限过滤)
|
||||
# 提取不带前缀的基础权限码(如 'serial_number')
|
||||
base_perm_code = perm_code.split(':')[-1] if ':' in perm_code else perm_code
|
||||
# 如果用户的权限列表中,既没有长格式,也没有短格式,才移除该字段
|
||||
if perm_code and perm_code not in user_permissions and base_perm_code not in user_permissions:
|
||||
if perm_code not in user_permissions and base_perm_code not in user_permissions:
|
||||
data.pop(field, None)
|
||||
|
||||
BuyInboundService.update_inbound(id, data)
|
||||
|
||||
@ -239,7 +239,7 @@ const handleLogout = () => {
|
||||
<footer v-if="!isLoginPage" class="app-footer">
|
||||
<span class="version-tag">
|
||||
<el-icon style="vertical-align: middle; margin-right: 4px"><InfoFilled /></el-icon>
|
||||
当前版本:V3.61
|
||||
当前版本:V3.62
|
||||
</span>
|
||||
</footer>
|
||||
|
||||
|
||||
@ -1293,8 +1293,17 @@ const updateInspectionRules = () => {
|
||||
// ------------------------------------
|
||||
const validateUnique = (rule: any, value: string, callback: any) => {
|
||||
if (!value) return callback()
|
||||
const currentId = form.id != null ? Number(form.id) : null
|
||||
// 编辑模式:如果值未改变,跳过重复校验(用户可能在编辑其他字段)
|
||||
if (dialogStatus.value === 'update' && currentId != null) {
|
||||
const self = tableData.value.find((r: any) => Number(r.id) === currentId)
|
||||
if (self && String(self[rule.field]) === value) {
|
||||
return callback() // 值未变,无需校验重复
|
||||
}
|
||||
}
|
||||
const isDuplicate = tableData.value.some((row: any) => {
|
||||
if (dialogStatus.value === 'update' && row.id === form.id) return false
|
||||
const rowId = Number(row.id)
|
||||
if (dialogStatus.value === 'update' && currentId != null && rowId === currentId) return false
|
||||
if (rule.field === 'serial_number' && row.serial_number === value) return true
|
||||
if (rule.field === 'batch_number' && row.batch_number === value && row.base_id === form.base_id) return true
|
||||
return false
|
||||
|
||||
@ -1028,8 +1028,16 @@ const hasFormFieldPermission = (fieldName: string) => {
|
||||
// ------------------------------------
|
||||
const validateUnique = (rule: any, value: string, callback: any) => {
|
||||
if (!value) return callback()
|
||||
const currentId = form.id != null ? Number(form.id) : null
|
||||
// 编辑模式:如果值未改变,跳过重复校验(用户可能在编辑其他字段)
|
||||
if (dialogStatus.value === 'update' && currentId != null) {
|
||||
const self = tableData.value.find((r: any) => Number(r.id) === currentId)
|
||||
if (self && String(self[rule.field]) === value) {
|
||||
return callback() // 值未变,无需校验重复
|
||||
}
|
||||
}
|
||||
const isDuplicate = tableData.value.some((row: any) => {
|
||||
if (dialogStatus.value === 'update' && row.id === form.id) return false
|
||||
if (dialogStatus.value === 'update' && currentId != null && Number(row.id) === currentId) return false
|
||||
if (rule.field === 'serial_number' && row.serial_number === value) return true
|
||||
return false
|
||||
})
|
||||
|
||||
@ -1111,8 +1111,16 @@ const onMaterialSelected = async (item: any) => {
|
||||
// ------------------------------------
|
||||
const validateUnique = (rule: any, value: string, callback: any) => {
|
||||
if (!value) return callback()
|
||||
const currentId = form.id != null ? Number(form.id) : null
|
||||
// 编辑模式:如果值未改变,跳过重复校验(用户可能在编辑其他字段)
|
||||
if (dialogStatus.value === 'update' && currentId != null) {
|
||||
const self = tableData.value.find((r: any) => Number(r.id) === currentId)
|
||||
if (self && String(self[rule.field]) === value) {
|
||||
return callback() // 值未变,无需校验重复
|
||||
}
|
||||
}
|
||||
const isDuplicate = tableData.value.some((row: any) => {
|
||||
if (dialogStatus.value === 'update' && row.id === form.id) return false
|
||||
if (dialogStatus.value === 'update' && currentId != null && Number(row.id) === currentId) return false
|
||||
if (rule.field === 'serial_number' && row.serial_number === value) return true
|
||||
if (rule.field === 'batch_number' && row.batch_number === value && row.base_id === form.base_id) return true
|
||||
return false
|
||||
|
||||
Reference in New Issue
Block a user