68 lines
3.0 KiB
JavaScript
68 lines
3.0 KiB
JavaScript
/**
|
|
* PDP 深度洞察:主导动物型 → 心智模式 / 决策倾向 / 能量来源 / 压力反应
|
|
*/
|
|
|
|
// 8 维:心智 / 决策 / 能量 / 压力 / 沟通 / 领导 / 恋爱 / 团队角色
|
|
const PDP_INSIGHTS = {
|
|
Tiger: { mind: '老虎型 · 支配主导', decision: '速断·结果', energy: '挑战·夺冠', stress: '强硬控场', comm: '命令直接', lead: '果敢铁腕', love: '保护占有', team: '业务指挥' },
|
|
Peacock: { mind: '孔雀型 · 表达主导', decision: '氛围·直觉', energy: '舞台·社交', stress: '情绪放大', comm: '热情感染', lead: '激励型', love: '浪漫热烈', team: '气氛担当' },
|
|
Koala: { mind: '无尾熊型 · 支持主导', decision: '共识·稳妥', energy: '关系·节奏', stress: '回避冲突', comm: '温和聆听', lead: '幕后协调', love: '默默陪伴', team: '人和黏合' },
|
|
Owl: { mind: '猫头鹰型 · 分析主导', decision: '数据·规则', energy: '独立·深研', stress: '过度完美', comm: '精准严谨', lead: '标准驱动', love: '精选理性', team: '专家深研' },
|
|
Chameleon: { mind: '变色龙型 · 整合主导', decision: '平衡·权变', energy: '多场景切换', stress: '定位模糊', comm: '灵活变化', lead: '多面手', love: '契合环境', team: '跨界整合' }
|
|
}
|
|
|
|
const PDP_TAGS = {
|
|
Tiger: ['目标感', '高执行', '控制'],
|
|
Peacock: ['影响力', '乐观', '表达'],
|
|
Koala: ['可靠', '耐心', '协作'],
|
|
Owl: ['严谨', '分析', '系统'],
|
|
Chameleon: ['灵活', '适应', '整合']
|
|
}
|
|
|
|
const PDP_META = {
|
|
Tiger: { emoji: '🐅', label: '老虎 · 支配', desc: '行动果断、目标导向' },
|
|
Peacock: { emoji: '🦚', label: '孔雀 · 表达', desc: '富有感染力、善于社交' },
|
|
Koala: { emoji: '🐨', label: '无尾熊 · 支持', desc: '稳定可靠、照顾团队' },
|
|
Owl: { emoji: '🦉', label: '猫头鹰 · 分析', desc: '注重逻辑、追求精准' },
|
|
Chameleon: { emoji: '🦎', label: '变色龙 · 整合', desc: '灵活平衡、多面手' }
|
|
}
|
|
|
|
function toKey(code) {
|
|
const s = (code || '').trim()
|
|
if (!s) return ''
|
|
const up = s.charAt(0).toUpperCase() + s.slice(1).toLowerCase()
|
|
return PDP_INSIGHTS[up] ? up : ''
|
|
}
|
|
|
|
function getPdpInsight(code) {
|
|
const k = toKey(code)
|
|
return PDP_INSIGHTS[k] || null
|
|
}
|
|
|
|
function getPdpTags(code) {
|
|
const k = toKey(code)
|
|
return PDP_TAGS[k] || []
|
|
}
|
|
|
|
function buildPdpDimensions(result) {
|
|
const pi = (result && result.percentagesInt) || {}
|
|
const p = (result && result.percentages) || {}
|
|
return ['Tiger', 'Peacock', 'Koala', 'Owl', 'Chameleon'].map((k) => {
|
|
const meta = PDP_META[k]
|
|
return {
|
|
key: k,
|
|
label: meta.label,
|
|
emoji: meta.emoji,
|
|
desc: meta.desc,
|
|
dashClass: 'dash-fill--pdp-' + k.toLowerCase(),
|
|
percentage: pi[k] != null ? pi[k] : (p[k] != null ? Math.round(Number(p[k]) || 0) : 0)
|
|
}
|
|
})
|
|
}
|
|
|
|
module.exports = {
|
|
getPdpInsight,
|
|
getPdpTags,
|
|
buildPdpDimensions
|
|
}
|