diff --git a/frontend/delivery_admin/src/views/shared/CrudListPage.vue b/frontend/delivery_admin/src/views/shared/CrudListPage.vue index 129b08c..49aa9a4 100644 --- a/frontend/delivery_admin/src/views/shared/CrudListPage.vue +++ b/frontend/delivery_admin/src/views/shared/CrudListPage.vue @@ -841,6 +841,14 @@ async function submitDetailAction() { Message.warning('请填写必填字段'); return; } + // 审核状态未变化时不重复请求,避免产生无意义的状态更新和审计记录。 + if ( + action.resource.endsWith('/:identity/status') && + Number(actionForm.status) === Number(detail.value.status) + ) { + Message.warning('审核状态未发生变化'); + return; + } await executeDetailAction(action); } @@ -909,9 +917,9 @@ async function save() { } } -function openStatus(row: Row) { +async function openStatus(row: Row) { detail.value = row; - openDetailAction({ + await openDetailAction({ name: '审核状态', resource: `${props.definition.resource}/:identity/status`, method: 'PATCH', @@ -928,6 +936,9 @@ function openStatus(row: Row) { }, ], }); + // 仅回显下拉框支持的审核状态;待审核等状态仍由审核人主动选择。 + const currentStatus = Number(row.status); + actionForm.status = [1, 2].includes(currentStatus) ? currentStatus : undefined; } function confirmArchive(row: Row) { diff --git a/frontend/gas_admin/src/views/shared/CrudListPage.vue b/frontend/gas_admin/src/views/shared/CrudListPage.vue index 129b08c..49aa9a4 100644 --- a/frontend/gas_admin/src/views/shared/CrudListPage.vue +++ b/frontend/gas_admin/src/views/shared/CrudListPage.vue @@ -841,6 +841,14 @@ async function submitDetailAction() { Message.warning('请填写必填字段'); return; } + // 审核状态未变化时不重复请求,避免产生无意义的状态更新和审计记录。 + if ( + action.resource.endsWith('/:identity/status') && + Number(actionForm.status) === Number(detail.value.status) + ) { + Message.warning('审核状态未发生变化'); + return; + } await executeDetailAction(action); } @@ -909,9 +917,9 @@ async function save() { } } -function openStatus(row: Row) { +async function openStatus(row: Row) { detail.value = row; - openDetailAction({ + await openDetailAction({ name: '审核状态', resource: `${props.definition.resource}/:identity/status`, method: 'PATCH', @@ -928,6 +936,9 @@ function openStatus(row: Row) { }, ], }); + // 仅回显下拉框支持的审核状态;待审核等状态仍由审核人主动选择。 + const currentStatus = Number(row.status); + actionForm.status = [1, 2].includes(currentStatus) ? currentStatus : undefined; } function confirmArchive(row: Row) { diff --git a/frontend/platform_admin/src/views/shared/CrudListPage.vue b/frontend/platform_admin/src/views/shared/CrudListPage.vue index 7ae4389..9fd9a38 100644 --- a/frontend/platform_admin/src/views/shared/CrudListPage.vue +++ b/frontend/platform_admin/src/views/shared/CrudListPage.vue @@ -898,6 +898,14 @@ async function submitDetailAction() { Message.warning('请填写必填字段'); return; } + // 审核状态未变化时不重复请求,避免产生无意义的状态更新和审计记录。 + if ( + action.resource.endsWith('/:identity/status') && + Number(actionForm.status) === Number(detail.value.status) + ) { + Message.warning('审核状态未发生变化'); + return; + } if (hasInvalidPassword(action.fields ?? [], actionForm)) { Message.warning(ACCOUNT_PASSWORD_LENGTH_MESSAGE); return; @@ -974,9 +982,9 @@ async function save() { } } -function openStatus(row: Row) { +async function openStatus(row: Row) { detail.value = row; - openDetailAction({ + await openDetailAction({ name: '审核状态', resource: `${props.definition.resource}/:identity/status`, method: 'PATCH', @@ -993,6 +1001,9 @@ function openStatus(row: Row) { }, ], }); + // 仅回显下拉框支持的审核状态;待审核等状态仍由审核人主动选择。 + const currentStatus = Number(row.status); + actionForm.status = [1, 2].includes(currentStatus) ? currentStatus : undefined; } function confirmArchive(row: Row) {