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;