|
@@ -327,6 +327,7 @@ const fetchApplicationDetail = async () => {
|
|
|
|
|
|
if (result.code === 2000) {
|
|
|
apiData.value = result.data
|
|
|
+ console.log(result.data)
|
|
|
updateCandidateInfo(result.data)
|
|
|
} else {
|
|
|
error.value = result.msg || '获取数据失败'
|
|
@@ -385,27 +386,27 @@ const updateCandidateInfo = (data: any) => {
|
|
|
|
|
|
// 如果成功解析出最小值和最大值,则根据分数计算建议薪资
|
|
|
if (!isNaN(min) && !isNaN(max) && min > 0 && max > 0 && max > min) {
|
|
|
- // 改进的薪资计算逻辑
|
|
|
- // 使用更合理的评分映射:
|
|
|
- // 60分以下 -> 最低薪资
|
|
|
- // 60-80分 -> 线性增长从最低薪资到中间值
|
|
|
- // 80-100分 -> 线性增长从中间值到最高薪资
|
|
|
- let scoreRatio;
|
|
|
- const score = candidateInfo.value.score;
|
|
|
+ // 薪资计算逻辑
|
|
|
+ // 1. 分数低于60分:给予最低薪资
|
|
|
+ // 2. 分数在60-80分之间:给予中等薪资(最低薪资 + 薪资范围的1/3)
|
|
|
+ // 3. 分数在80分以上:给予最高薪资
|
|
|
+ console.log("score",application.comprehensive_score)
|
|
|
+ const score = application.comprehensive_score;
|
|
|
+ console.log(score)
|
|
|
+ let suggested = min; // 默认给最低薪资
|
|
|
|
|
|
- if (score < 60) {
|
|
|
- // 低于60分,给予最低薪资
|
|
|
- scoreRatio = 0;
|
|
|
- } else if (score <= 80) {
|
|
|
- // 60-80分,线性增长到中间点
|
|
|
- scoreRatio = (score - 60) / 40 * 0.5; // 0到0.5之间
|
|
|
- } else {
|
|
|
- // 80-100分,线性增长到最高点
|
|
|
- scoreRatio = 0.5 + (score - 80) / 20 * 0.5; // 0.5到1之间
|
|
|
+ if (score >= 80) {
|
|
|
+ // 80分以上给最高薪资
|
|
|
+ console.log(max)
|
|
|
+ suggested = max;
|
|
|
+ } else if (score >= 60) {
|
|
|
+ // 60-80分给中等薪资(最低薪资 + 薪资范围的1/3)
|
|
|
+ suggested = min + Math.floor((max - min) / 3);
|
|
|
+ }else{
|
|
|
+ // 低于60分保持最低薪资
|
|
|
+ suggested = 0;
|
|
|
}
|
|
|
|
|
|
- const suggested = Math.floor(min + (max - min) * scoreRatio);
|
|
|
-
|
|
|
// 格式化薪资显示
|
|
|
if (suggested >= 10000) {
|
|
|
// 如果大于等于10000,显示为"x.x万"
|