|
|
@@ -219,14 +219,36 @@ const previewGradeDot = computed(() => {
|
|
|
return 'status-dot--danger'
|
|
|
})
|
|
|
|
|
|
-// Parse self-assessment from commentsJson
|
|
|
+// Parse self-assessment from structured selfItems (preferred) or commentsJson (fallback)
|
|
|
const selfData = computed(() => {
|
|
|
if (!data.value.selfScore?.commentsJson) return null
|
|
|
try { return JSON.parse(data.value.selfScore.commentsJson) } catch { return null }
|
|
|
})
|
|
|
|
|
|
-const selfKrScores = computed(() => selfData.value?.krScores || [])
|
|
|
-const selfDimensions = computed(() => selfData.value?.dimensions || [])
|
|
|
+const selfKrScores = computed(() => {
|
|
|
+ const items = data.value.selfItems
|
|
|
+ if (items && items.length) {
|
|
|
+ return items.filter(i => i.itemType === 'KR').map(i => ({
|
|
|
+ krId: i.referenceId,
|
|
|
+ title: i.name,
|
|
|
+ score: i.score
|
|
|
+ }))
|
|
|
+ }
|
|
|
+ return selfData.value?.krScores || []
|
|
|
+})
|
|
|
+const selfDimensions = computed(() => {
|
|
|
+ const items = data.value.selfItems
|
|
|
+ if (items && items.length) {
|
|
|
+ return items.filter(i => i.itemType === 'DIMENSION').map(i => ({
|
|
|
+ id: i.referenceId,
|
|
|
+ dimensionId: i.referenceId,
|
|
|
+ name: i.name,
|
|
|
+ maxScore: i.maxScore,
|
|
|
+ score: i.score
|
|
|
+ }))
|
|
|
+ }
|
|
|
+ return selfData.value?.dimensions || []
|
|
|
+})
|
|
|
const selfRemark = computed(() => selfData.value?.remark || '')
|
|
|
|
|
|
const selfOkrTotal = computed(() => {
|