详情和对比详情加密

This commit is contained in:
DESKTOP-RQ919RC\Pc 2025-04-03 19:05:48 +08:00
parent e0e290d2cf
commit e09b6bea1d
4 changed files with 161 additions and 183 deletions

View File

@ -120,12 +120,11 @@ Page({
let allArr = []
list.forEach(element => allArr.push(common.decodeKey(element)))
const obj = this.data.disciplineObj
// console.log("obj", obj);
Promise.allSettled(allArr).then(res => {
let list = []
res.forEach(element => list.push(element.status === "fulfilled" ? element.value : {}));
list.forEach(element => {
console.log("element", element);
element['result_date'] = element['admissions']?.[0]?.result_time
if (element.accreditations) {
@ -143,44 +142,46 @@ Page({
}
element["english_proficiency_text"] = ""
element.admission_requirements[0].language_requirements.forEach(ele => {
if (ele.language = "ENGLISH") {
ele.proof_methods.forEach(el => {
if (el.type == "test") {
el.tests.forEach((e) => {
let text = "";
if (["GMAT", "GMAT Focus Edition"].includes(e.test_name)) text = `Verbal Reasoning ${e.min_score} 分以上`;
else if (e.grade && e.grade == "Pass") text = `等级 ${e.grade}`;
else if (e.grade) text = `等级 ${e.grade} 以上`;
else if (e.sub_scores.length > 0) {
let allEqual = true;
e.sub_scores.forEach((ee) => {
if (ee.score != e.sub_scores[0].score) allEqual = false;
});
const fields = {
Total: "总分",
Reading: "阅读",
Speaking: "口语",
Writing: "写作",
Listening: "听力",
};
if (allEqual) text = `总分 ${e.min_score} 分以上,各项分数不低于 ${e.sub_scores[0].score}`;
else {
if (element.admission_requirements[0]) {
(element.admission_requirements?.[0]?.language_requirements || []).forEach(ele => {
if (ele.language = "ENGLISH") {
ele.proof_methods.forEach(el => {
if (el.type == "test") {
el.tests.forEach((e) => {
let text = "";
if (["GMAT", "GMAT Focus Edition"].includes(e.test_name)) text = `Verbal Reasoning ${e.min_score} 分以上`;
else if (e.grade && e.grade == "Pass") text = `等级 ${e.grade}`;
else if (e.grade) text = `等级 ${e.grade} 以上`;
else if (e.sub_scores.length > 0) {
let allEqual = true;
e.sub_scores.forEach((ee) => {
if (fields[ee.subject] && ee.score) text += `${fields[ee.subject]} ${ee.score} 分以上、`;
if (ee.score != e.sub_scores[0].score) allEqual = false;
});
if (text.endsWith("、")) text = text.slice(0, -1);
}
} else if (e.min_score) text = `总分 ${e.min_score} 分以上`;
element["english_proficiency_text"] += `${e.test_name}${text} \n`;
});
}
})
}
})
const fields = {
Total: "总分",
Reading: "阅读",
Speaking: "口语",
Writing: "写作",
Listening: "听力",
};
if (allEqual) text = `总分 ${e.min_score} 分以上,各项分数不低于 ${e.sub_scores[0].score}`;
else {
e.sub_scores.forEach((ee) => {
if (fields[ee.subject] && ee.score) text += `${fields[ee.subject]} ${ee.score} 分以上、`;
});
if (text.endsWith("、")) text = text.slice(0, -1);
}
} else if (e.min_score) text = `总分 ${e.min_score} 分以上`;
element["english_proficiency_text"] += `${e.test_name}${text} \n`;
});
}
})
}
})
}
const documentsData = [];
const documentsMap = new Map();
@ -203,13 +204,13 @@ Page({
});
element["documents_required"] = documents_required;
element['entrance_requirements'] = element.admission_requirements[0]['basic_requirements']
element['entrance_requirements'] = element.admission_requirements?.[0]?.['basic_requirements']
element['tuition_fee_text'] = common.formatNumberWithSpaces(element.admissions[0].tuition_fee || '')
element['tuition_fee_text'] = common.formatNumberWithSpaces(element.admissions?.[0]?.tuition_fee || '')
element['admission_deposit_text'] = common.formatNumberWithSpaces(element.admissions[0].admission_deposit || '')
element['admission_deposit_text'] = common.formatNumberWithSpaces(element.admissions?.[0]?.admission_deposit || '')
if (element.details.language_of_instruction) {
if (element.details?.language_of_instruction) {
let strOutput = element.details.language_of_instruction.join(',');
element['language_of_instruction_text'] = strOutput
}
@ -221,16 +222,6 @@ Page({
element['language_of_instruction_text'] = strOutput
}
// let scores = element.language_proficiency_scores || []
// const scoresList = common.scoresList(scores)
// element["english_proficiency_text"] = ""
// scoresList.forEach(ele => {
// element["english_proficiency_text"] += `・ ${ele.name}${ele.text} \n`
// })
// if (element.scholarship) element['scholarshipText'] = this.JudgmentScholarshipText(element.scholarship)
element['disciplinename'] = obj[element.disciplineid] || ''
})
@ -238,9 +229,7 @@ Page({
isquick: data.isquick,
list,
}, () => wx.nextTick(() => this.getAllItemHeight()))
}).catch(err => {
common.toast("出错了,请联系管理员。")
})
}).catch(err => common.toast("出错了,请联系管理员。"))
const ranking = data.ranking
const project = ranking.project || []
@ -345,16 +334,6 @@ Page({
return uniqueArray
},
// 判断奖学金文案
JudgmentScholarshipText(obj) {
let text = ""
if (obj.local && obj.nonlocal) text = '均有'
else if (!obj.local && !obj.nonlocal) text = '均无'
else if (obj.local && !obj.nonlocal) text = '非本地学生无'
else if (!obj.local && obj.nonlocal) text = '非本地学生有'
return text
},
getAllItemHeight() {
this.createSelectorQuery().selectAll(".lump .block").boundingClientRect(data => {
let showObj = {}

View File

@ -170,122 +170,124 @@ Page({
},
}).then(res => {
const data = res.data
let admissionofficerin = data.admissionofficerin || []
if (admissionofficerin.length > 0) {
admissionofficerin.forEach(element => {
const date = new Date(element.date);
if (!isNaN(date.getTime())) {
if (Date.now() < date.getTime()) {
this.startCountdown(date.getTime() - Date.now() || 0)
this.setData({
answerType: 2,
})
}
}
})
}
let answerquestions = data.answerquestions || []
common.decodeKey(data.info).then(res => {
data.info = res
const info = data.info || {}
let contras = Array.isArray(data.contras) ? {} : data.contras;
let side = this.data.side
const isadmission = info.admissionsproject || 0
if (isadmission == 1) this.getAdmissionList()
// const date = new Date()
// const month = date.getMonth() + 1
// const year = date.getFullYear()
// const semester = info.semester || {}
// if ((year < semester.year) || (year === semester.year && month < semester.month)) info['semesterState'] = true
this.setData({
info,
contras,
side,
isadmission,
sideKey: "basic", // basic
isInitFinish: true,
admissionofficerin,
answerintroduction: data.answerintroduction,
}, () => {
setTimeout(() => {
this.getHeadHeight()
this.getIndexHeight()
}, 500)
})
this.getOfferData()
}).catch(err => common.toast("出错了,请联系管理员。"))
common.decodeKey(data.detailsInfo).then(data => {
const direction = ['career_fields', 'typical_employers', 'career_positions'];
direction.forEach(field => {
let text = ""
if (data[field]) {
data[field].forEach(element => {
text += element + '\n'
})
data[field] = text
}
const encodefields = data.encodefields || []
const decodePromises = encodefields.map(element => {
return common.decodeKey(data[element]).then(res => {
data[element] = res;
});
});
data.language_of_instruction && (data.language_of_instruction_text = data.language_of_instruction.join(","));
let course = {
required: [],
requiredCount: 0,
elective: [],
electiveCount: 0,
Promise.all(decodePromises).then(() => {
let admissionofficerin = data.admissionofficerin || []
if (admissionofficerin.length > 0) {
admissionofficerin.forEach(element => {
const date = new Date(element.date);
if (!isNaN(date.getTime())) {
if (Date.now() < date.getTime()) {
this.startCountdown(date.getTime() - Date.now() || 0)
this.setData({
answerType: 2,
})
}
}
})
}
const curriculum = data.curriculum || []
curriculum.forEach(element => {
if (element.course_credits == 'N/A') element.course_credits = 0
element.type === 'Compulsory' ? (course.required.push(element), course.requiredCount += element.course_credits) : (course.elective.push(element), course.electiveCount += element.course_credits);
})
let side = this.data.side
// 判断是否常见问题 ,没有则删除左侧
if (!data.faq || data.faq.length == 0) delete side.issue
let answerquestions = data.answerquestions || []
if (data.info) {
const info = data.info || {}
let contras = Array.isArray(data.contras) ? {} : data.contras;
if (answerquestions.length == 0) delete side.answers
let side = this.data.side
const isadmission = info.admissionsproject || 0
if (isadmission == 1) this.getAdmissionList()
// const date = new Date()
// const month = date.getMonth() + 1
// const year = date.getFullYear()
// const semester = info.semester || {}
// if ((year < semester.year) || (year === semester.year && month < semester.month)) info['semesterState'] = true
this.setData({
info,
contras,
side,
isadmission,
sideKey: "basic", // basic
isInitFinish: true,
admissionofficerin,
answerintroduction: data.answerintroduction,
}, () => {
setTimeout(() => {
this.getHeadHeight()
this.getIndexHeight()
}, 500)
})
this.getOfferData()
}
if (data.detailsInfo) {
const res = data.detailsInfo || {}
const direction = ['career_fields', 'typical_employers', 'career_positions'];
direction.forEach(field => {
let text = ""
if (res[field]) {
res[field].forEach(element => {
text += element + '\n'
})
res[field] = text
}
});
res.language_of_instruction && (res.language_of_instruction_text = res.language_of_instruction.join(","));
let course = {
required: [],
requiredCount: 0,
elective: [],
electiveCount: 0,
}
const curriculum = res.curriculum || []
curriculum.forEach(element => {
if (element.course_credits == 'N/A') element.course_credits = 0
element.type === 'Compulsory' ? (course.required.push(element), course.requiredCount += element.course_credits) : (course.elective.push(element), course.electiveCount += element.course_credits);
})
let side = this.data.side
// 判断是否常见问题 ,没有则删除左侧
if (!res.faq || res.faq.length == 0) delete side.issue
if (answerquestions.length == 0) delete side.answers
this.setData({
course,
answerquestions,
detailsInfo: res,
side,
})
}
this.handleAccreditationData(data.accreditations || [])
this.handleDocumentsData(data.documents || [])
const admissions = data.admissions
this.setData({
course,
answerquestions,
detailsInfo: data,
side,
admissions,
scholarships: data.scholarships || [],
discipline: data.discipline,
admission_requirements: data.admission_requirements || [],
newest: data.newest || '',
})
const admissionsId = admissions[0].id
this.handleAmissionsData(admissionsId)
this.handleRequirementData(admissionsId)
this.getRecommendData()
})
this.handleAccreditationData(data.accreditations || [])
this.handleDocumentsData(data.documents || [])
const admissions = data.admissions
this.setData({
admissions,
scholarships: data.scholarships || [],
discipline: data.discipline,
admission_requirements: data.admission_requirements || [],
newest: data.newest || '',
})
const admissionsId = admissions[0].id
this.handleAmissionsData(admissionsId)
this.handleRequirementData(admissionsId)
this.getRecommendData()
}).finally(() => {
wx.hideLoading()
})
}).finally(() => wx.hideLoading())
},
// 处理 能力要求信息

View File

@ -412,7 +412,7 @@
</view>
</block>
<template wx:if="{{ course.required.length != 0 || course.required.length != 0 }}" is="item-header" data="{{ text: '课程设置' }}"></template>
<template wx:if="{{ course.required.length != 0 || course.elective.length != 0 }}" is="item-header" data="{{ text: '课程设置' }}"></template>
<template wx:if="{{ course.required.length != 0 }}" is="table" data="{{ data: course.required, title: '必修科目', count: course.requiredCount }}"></template>
@ -507,21 +507,11 @@
</view>
<view class="info-item flexflex" wx:if="{{item.professional}}">
<view class="info-major">专业</view>
<view class="info-value flex1" wx:if="{{item.professionalzhong}}">
<text>{{ item.professionaltou }}</text>
<text style="color: #509CE3;">{{ item.professionalzhong }}</text>
<text>{{ item.professionalend }}</text>
</view>
<view class="info-value flex1 " wx:else>{{ item.professional }}</view>
<view class="info-value flex1 ">{{ item.professional }}</view>
</view>
<view class="info-item flexflex" wx:if="{{item.project}}">
<view class="info-major">项目</view>
<view class="info-value flex1" wx:if="{{item.projecttzhong}}">
<text>{{ item.projecttou }}</text>
<text style="color: #509CE3;">{{ item.projecttzhong }}</text>
<text>{{ item.projecttend }}</text>
</view>
<view class="info-value flex1" wx:else>{{ item.project }}</view>
<view class="info-value flex1">{{ item.project }}</view>
</view>
<view class="info-item flexacenter" style="align-items: center;font-size: 27rpx;">
{{ item.semester }}

View File

@ -8,6 +8,13 @@
"condition": {
"miniprogram": {
"list": [
{
"name": "pages/projectComparison/projectComparison",
"pathName": "pages/projectComparison/projectComparison",
"query": "ids=1%2C5",
"launchMode": "default",
"scene": null
},
{
"name": "pages/projectDetails/projectDetails",
"pathName": "pages/projectDetails/projectDetails",