From af64c9a997114472185d6baf0fc6a5314ca100e4 Mon Sep 17 00:00:00 2001 From: let5sne Date: Wed, 5 Aug 2026 09:25:04 +0800 Subject: [PATCH] feat(frontend): preset OPERATING_MANUAL authority with filename suggestion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - add 操作手册/培训手册 option and label mapping in knowledge processing - suggest OPERATING_MANUAL on review form when filename contains 手册/指南/教材 and authority is unset/EMPLOYEE_SUBMISSION (prefill only) --- frontend/src/views/knowledge/processing.vue | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/frontend/src/views/knowledge/processing.vue b/frontend/src/views/knowledge/processing.vue index bfbb490e..5aa3a663 100644 --- a/frontend/src/views/knowledge/processing.vue +++ b/frontend/src/views/knowledge/processing.vue @@ -1083,9 +1083,11 @@ + +

已按文件名建议:操作手册/培训手册

@@ -1549,6 +1551,10 @@ const qualityReviewForm = ref({ acceptedReasonCodes: [], supersedesAssetId: undefined }); +const authoritySuggestedByName = ref(false); +const authoritySuggested = computed( + () => authoritySuggestedByName.value && qualityReviewForm.value.sourceAuthority === 'OPERATING_MANUAL' +); const overview = ref(null); const overviewFailed = ref(false); const categoryKeyword = ref(''); @@ -2803,6 +2809,13 @@ async function openQualityReview(asset: QualityAsset) { acceptedReasonCodes: [], supersedesAssetId: undefined }; + // 文件名含「手册/指南/教材」且来源权威级别未填写或仍为默认「员工经验投稿」时,按文件名建议预填,不强制、可改。 + const currentAuthority = (asset.sourceAuthority || '').trim(); + const manualNameMatched = /手册|指南|教材/.test(asset.sourceName || ''); + authoritySuggestedByName.value = manualNameMatched && (!currentAuthority || currentAuthority === 'EMPLOYEE_SUBMISSION'); + if (authoritySuggestedByName.value) { + qualityReviewForm.value.sourceAuthority = 'OPERATING_MANUAL'; + } qualityScopeModes.value = { applicableRole: asset.applicableRole?.trim() ? 'SPECIFIED' : 'ALL', applicableRegion: asset.applicableRegion?.trim() ? 'SPECIFIED' : 'ALL', @@ -3051,6 +3064,7 @@ function sourceAuthorityLabel(value: string) { FORMAL_POLICY: '正式制度', COMPANY_POLICY: '公司正式制度', APPROVED_SOP: '已批准 SOP', + OPERATING_MANUAL: '操作手册/培训手册', REGULATION: '法规', EMPLOYEE_SUBMISSION: '员工经验投稿', UNKNOWN: '来源待确认' @@ -4279,6 +4293,13 @@ async function requestAssetPurge(asset: QualityAsset) { margin-top: 18px; } +.authority-suggestion-tip { + margin: 4px 0 0; + color: #667085; + font-size: 12px; + line-height: 1.5; +} + .quality-form-grid { display: grid; grid-template-columns: 1fr 1fr;