From 10ebdd0ec7fb10223d646af9e86c944b4e38c9c5 Mon Sep 17 00:00:00 2001
From: "DESKTOP-RQ919RC\\Pc" <1300399510@qq.com>
Date: Wed, 26 Mar 2025 17:00:16 +0800
Subject: [PATCH] no message
---
component/document-box/document-box.js | 49 ++
component/document-box/document-box.json | 4 +
component/document-box/document-box.less | 117 ++++
component/document-box/document-box.wxml | 22 +
component/document-box/document-box.wxss | 93 +++
pages/projectDetails/projectDetails.js | 442 +++++++++++---
pages/projectDetails/projectDetails.json | 3 +-
pages/projectDetails/projectDetails.less | 744 +++++++++++++++++++++--
pages/projectDetails/projectDetails.wxml | 388 ++++++++----
pages/projectDetails/projectDetails.wxss | 596 +++++++++++++++++-
10 files changed, 2190 insertions(+), 268 deletions(-)
create mode 100644 component/document-box/document-box.js
create mode 100644 component/document-box/document-box.json
create mode 100644 component/document-box/document-box.less
create mode 100644 component/document-box/document-box.wxml
create mode 100644 component/document-box/document-box.wxss
diff --git a/component/document-box/document-box.js b/component/document-box/document-box.js
new file mode 100644
index 0000000..df3bd1d
--- /dev/null
+++ b/component/document-box/document-box.js
@@ -0,0 +1,49 @@
+// template/document-box/document-box.js
+Component({
+
+ /**
+ * 组件的属性列表
+ */
+ properties: {
+ className: String,
+ documents: {
+ type: Array,
+ observer(res) {
+ if (res && res.length > 0) this.init()
+ }
+ },
+ },
+
+ /**
+ * 组件的初始数据
+ */
+ data: {
+ swiperCurrent: 0, // 轮播图下标
+ },
+
+ /**
+ * 组件的方法列表
+ */
+ methods: {
+ init() {
+ const query = wx.createSelectorQuery();
+ query.selectAll(`.main >>> .file-list`).boundingClientRect(rect => {
+ if (!rect) return
+ let page = {}
+ rect.forEach(element => page[element.dataset.index] = element.height)
+ this.setData({
+ page
+ })
+ }).exec();
+ },
+
+ // 新 轮播图 自动滑动事件,修改下标
+ bindchangeSwiper(e) {
+ let current = e.detail.current
+
+ this.setData({
+ swiperCurrent: current
+ })
+ },
+ }
+})
\ No newline at end of file
diff --git a/component/document-box/document-box.json b/component/document-box/document-box.json
new file mode 100644
index 0000000..e8cfaaf
--- /dev/null
+++ b/component/document-box/document-box.json
@@ -0,0 +1,4 @@
+{
+ "component": true,
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/component/document-box/document-box.less b/component/document-box/document-box.less
new file mode 100644
index 0000000..cae2618
--- /dev/null
+++ b/component/document-box/document-box.less
@@ -0,0 +1,117 @@
+/* template/document-box/document-box.wxss */
+.flexflex {
+ display: flex;
+}
+
+.flexcenter {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.flexjcenter {
+ display: flex;
+ justify-content: center;
+}
+
+.flexacenter {
+ display: flex;
+ align-items: center;
+}
+
+.flex1 {
+ flex: 1;
+}
+
+.block {
+ background-color: rgba(255, 255, 255, 1);
+ border: 1rpx solid rgba(235, 235, 235, 1);
+ border-radius: 18rpx;
+ margin-bottom: 30rpx;
+ margin-left: 36rpx;
+}
+
+.file {
+ padding-bottom: 34.5rpx;
+
+ .file-swiper {
+ transition: all .3s;
+ }
+
+ .file-list {
+ padding: 36rpx 10rpx 25.5rpx 49.5rpx;
+ box-sizing: border-box;
+
+ .file-item {
+ &:not(:last-of-type) {
+ margin-bottom: 39rpx;
+ }
+
+ .name {
+ position: relative;
+ margin-bottom: 15rpx;
+
+ .icon {
+ position: absolute;
+ top: 50%;
+ left: -27rpx;
+ transform: translateY(-50%);
+ width: 12rpx;
+ height: 12rpx;
+ }
+
+ font-family: 'PingFangSC-Semibold',
+ 'PingFang SC Semibold',
+ 'PingFang SC',
+ sans-serif;
+ font-weight: 650;
+ font-size: 27rpx;
+ color: #000000;
+
+ .tag {
+ width: 69rpx;
+ height: 36rpx;
+ line-height: 36rpx;
+ background-color: rgba(111, 193, 109, 1);
+ border-radius: 30rpx;
+ font-size: 21rpx;
+ color: #FFFFFF;
+ margin-left: 15rpx;
+
+ &.selectable {
+ border: 1rpx solid rgba(215, 215, 215, 1);
+ background-color: #fff;
+ color: #000000;
+ }
+ }
+ }
+
+ .hint {
+ font-size: 24rpx;
+ color: #555555;
+ }
+ }
+ }
+
+ .pilot {
+ margin-top: 24rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+
+ .item {
+ width: 15rpx;
+ height: 6rpx;
+ background-color: rgba(215, 215, 215, 1);
+ border-radius: 30rpx;
+
+ &.pitch {
+ background-color: rgba(250, 107, 17, 1);
+ }
+
+ &:not(:last-of-type) {
+ margin-right: 6rpx;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/component/document-box/document-box.wxml b/component/document-box/document-box.wxml
new file mode 100644
index 0000000..f8ae64b
--- /dev/null
+++ b/component/document-box/document-box.wxml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+ {{ item.document_zh }}
+ 必须
+ 可选
+
+ {{ item.description_zh }}
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/component/document-box/document-box.wxss b/component/document-box/document-box.wxss
new file mode 100644
index 0000000..bdee768
--- /dev/null
+++ b/component/document-box/document-box.wxss
@@ -0,0 +1,93 @@
+/* template/document-box/document-box.wxss */
+.flexflex {
+ display: flex;
+}
+.flexcenter {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+.flexjcenter {
+ display: flex;
+ justify-content: center;
+}
+.flexacenter {
+ display: flex;
+ align-items: center;
+}
+.flex1 {
+ flex: 1;
+}
+.block {
+ background-color: #ffffff;
+ border: 1rpx solid #ebebeb;
+ border-radius: 18rpx;
+ margin-bottom: 30rpx;
+ margin-left: 36rpx;
+}
+.file {
+ padding-bottom: 34.5rpx;
+}
+.file .file-swiper {
+ transition: all 0.3s;
+}
+.file .file-list {
+ padding: 36rpx 10rpx 25.5rpx 49.5rpx;
+ box-sizing: border-box;
+}
+.file .file-list .file-item:not(:last-of-type) {
+ margin-bottom: 39rpx;
+}
+.file .file-list .file-item .name {
+ position: relative;
+ margin-bottom: 15rpx;
+ font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
+ font-weight: 650;
+ font-size: 27rpx;
+ color: #000000;
+}
+.file .file-list .file-item .name .icon {
+ position: absolute;
+ top: 50%;
+ left: -27rpx;
+ transform: translateY(-50%);
+ width: 12rpx;
+ height: 12rpx;
+}
+.file .file-list .file-item .name .tag {
+ width: 69rpx;
+ height: 36rpx;
+ line-height: 36rpx;
+ background-color: #6fc16d;
+ border-radius: 30rpx;
+ font-size: 21rpx;
+ color: #FFFFFF;
+ margin-left: 15rpx;
+}
+.file .file-list .file-item .name .tag.selectable {
+ border: 1rpx solid #d7d7d7;
+ background-color: #fff;
+ color: #000000;
+}
+.file .file-list .file-item .hint {
+ font-size: 24rpx;
+ color: #555555;
+}
+.file .pilot {
+ margin-top: 24rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+.file .pilot .item {
+ width: 15rpx;
+ height: 6rpx;
+ background-color: #d7d7d7;
+ border-radius: 30rpx;
+}
+.file .pilot .item.pitch {
+ background-color: #fa6b11;
+}
+.file .pilot .item:not(:last-of-type) {
+ margin-right: 6rpx;
+}
diff --git a/pages/projectDetails/projectDetails.js b/pages/projectDetails/projectDetails.js
index 78ac520..94e453d 100644
--- a/pages/projectDetails/projectDetails.js
+++ b/pages/projectDetails/projectDetails.js
@@ -47,7 +47,7 @@ Page({
info: {},
side: {
- pivotal: "关键信息",
+ // pivotal: "关键信息",
basic: "基本信息",
apply: "申请信息",
attend: "就读信息",
@@ -56,10 +56,11 @@ Page({
consult: "录取参考",
issue: "常见问题",
links: "相关链接",
+ recommend: "推荐项目",
},
- sideKey: "pivotal", // 侧边栏选中 key
+ sideKey: "basic", // 侧边栏选中 key
course: {}, // 课程
@@ -104,7 +105,30 @@ Page({
quickAnswerState: false,
rankingKey: common.rankingKey,
+ detailsInfo: {},
+ accreditation: {},
+ isAccreditation: false,
+ admissions: [],
+ admissionsObj: {},
+ admissionsIndex: 0,
+
+ demandState: 0, // 要求展示状态 0 显示全部 1 显示箭头和部分 2 显示箭头和全部
+
+ recommendPage: 1, // 推荐页数
+ recommendList: [],
+
+ scholarships: [], // 奖学金
+ documents: [], // 文件
+
+ discipline: {}, // 学科领域
+
+ admission_requirements: [], // 语言能力要求
+ admission_requirementsObj: {},
+
+ applyListState: false, // 申请信息选择列表状态
+
+ newest: "",
},
/**
@@ -141,7 +165,7 @@ Page({
wx.showLoading({
title: '加载中...',
})
- util.wxpost("/api/project.detail", {
+ util.wxpost("https://api.gter.net/v1/program/details", {
uniqid: this.data.uniqid,
query: {
...this.options
@@ -150,6 +174,13 @@ Page({
const data = res.data
let admissionofficerin = data.admissionofficerin || []
+ console.log("data", data);
+ // data.info.tags = {}
+ // data.info.rankings = []
+ // data.scholarships = []
+ // data.info.distinctive = ""
+ // data.detailsInfo.faq = []
+
if (admissionofficerin.length > 0) {
admissionofficerin.forEach(element => {
const date = new Date(element.date);
@@ -166,98 +197,51 @@ Page({
let answerquestions = data.answerquestions || []
common.decodeKey(data.info).then(res => {
- // console.log("res", res);
data.info = res
- let course = {
- required: [],
- requiredCount: 0,
- elective: [],
- electiveCount: 0,
- }
const info = data.info || {}
- const fields = ['tuition_fee'];
- fields.forEach(field => {
- const textKey = `${field}_text`;
- info[textKey] = common.formatNumberWithSpaces(info[field] || '');
- });
-
- const curriculum = info.curriculum || []
-
- if (info.language_of_instruction) {
- let strOutput = info.language_of_instruction.join(',');
- info['language_of_instruction_text'] = strOutput
- }
-
- curriculum.forEach(element => {
- if (element.credit == 'N/A') element.credit = 0
- element.type === '必修课' ? (course.required.push(element), course.requiredCount += element.credit) : (course.elective.push(element), course.electiveCount += element.credit);
- })
-
let contras = data.contras
if (Array.isArray(contras)) contras = {}
- const remark = contras.remarks || ''
+ // const remark = contras.remarks || ''
// 算出最后申请时间
- info['application_end'] = this.calculateApplicaDeadline(info.nonlocal_application_end || {})
- // 算出面试轮时间
- info['interviewRounds'] = this.calculateInterviewRound(info.nonlocal_application_end || {})
+ // info['application_end'] = this.calculateApplicaDeadline(info.nonlocal_application_end || {})
if (typeof info.mode_of_study == "string") info.mode_of_study = JSON.parse(info.mode_of_study)
let side = this.data.side
- // 判断是否常见问题 ,没有则删除左侧
- if (!info.faq || info.faq.length == 0) delete side.issue
-
- // 判断 毕业就业 没有则删除左侧
- if (!info.award_zh && !info.graduation_requirements && !info.domains && !info.employers && !info.positions) delete side.graduate
// 判断奖学金文案
- if (info.scholarship) info['scholarshipText'] = this.JudgmentScholarshipText(info.scholarship)
+ // if (info.scholarship) info['scholarshipText'] = this.JudgmentScholarshipText(info.scholarship)
- if (info.leaflet_url) {
- const leaflet_url = decodeURIComponent(info.leaflet_url)
- const urlWithoutParams = leaflet_url.split('?')[0];
- const urlParts = urlWithoutParams.split('/');
- const fileName = urlParts[urlParts.length - 1];
- info['leaflet_name'] = fileName
- }
+ // if (info.leaflet_url) {
+ // const leaflet_url = decodeURIComponent(info.leaflet_url)
+ // const urlWithoutParams = leaflet_url.split('?')[0];
+ // const urlParts = urlWithoutParams.split('/');
+ // const fileName = urlParts[urlParts.length - 1];
+ // info['leaflet_name'] = fileName
+ // }
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 (month > semester.month && year + 1 <= semester.year) info['semesterState'] = true
- if ((year < semester.year) || (year === semester.year && month < semester.month)) info['semesterState'] = true
-
- let scores = info.language_proficiency_scores || []
- info["scoresList"] = common.scoresList(scores)
-
- // info["scoresList"] = scoresList
-
- this.getOfferData(info.id)
-
- // 判断相关链接
- if (!info.leaflet_url && !info.program_url && !info.catalog_url) delete side.links
-
- if (info.rankings.length == 0 && !info.intro && !info.accreditation) delete side.basic
- if (answerquestions.length == 0) delete side.answers
+ // 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,
- course,
+ // course,
contras,
- remark,
+ // remark,
side,
isadmission,
- sideKey: "pivotal", // pivotal
+ sideKey: "basic", // basic
isInitFinish: true,
admissionofficerin,
- answerquestions,
answerintroduction: data.answerintroduction,
}, () => {
setTimeout(() => {
@@ -266,12 +250,218 @@ Page({
}, 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
+ }
+ });
+
+ if (data.language_of_instruction) {
+ let strOutput = data.language_of_instruction.join(',');
+ data['language_of_instruction_text'] = strOutput
+ }
+
+ let course = {
+ required: [],
+ requiredCount: 0,
+ elective: [],
+ electiveCount: 0,
+ }
+ 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
+
+
+ if (answerquestions.length == 0) delete side.answers
+
+ this.setData({
+ course,
+ answerquestions,
+ detailsInfo: data,
+ side,
+ })
+ })
+
+ 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()
})
},
+ // 处理 能力要求信息
+ handleRequirementData(id) {
+ const admission_requirements = this.data.admission_requirements || []
+
+ this.setData({
+ admission_requirements,
+ })
+
+ this.getRequirementsObj(id)
+ },
+
+ // 拿到 能力要求 选中信息
+ getRequirementsObj(id) {
+ const target = this.data.admission_requirements.find(item => item.admission_id === id) || {};
+
+ const obj = {
+ "ENGLISH": "英语能力要求",
+ "CHINESE": "汉语能力要求",
+ "test": "能力测试",
+ "native": "母语",
+ "education": "教育",
+ "qualification": "专业资格",
+ "recommended": "推荐",
+ "required": "必须",
+ "optional": "可选",
+ };
+
+ let language = target.language_requirements || []
+
+ language.forEach(element => {
+ element['name'] = obj[element['language']];
+ element.proof_methods.forEach(ele => {
+ ele['name'] = obj[ele['type']];
+ (ele.tests || []).forEach(e => {
+ let text = ""
+ if (e.min_score == 'Pass') text = `等级 ${e.min_score}`
+ else if (e.min_score && /^[A-Za-z]+$/.test(e.min_score)) text = `等级 ${e.min_score} 以上`
+ else if (e.min_score) text = `总分 ${e.min_score} 分以上`
+ e['text'] = text
+ })
+ })
+ })
+
+ const standardized = target.standardized_tests_requirements || []
+ let arr = []
+ standardized.forEach(element => {
+ element['level'] = obj[element.requirement_level]
+ arr.push(element)
+ })
+
+ if (arr.length != 0) {
+ language.push({
+ name: "其他标化考试要求",
+ iselse: true,
+ proof_methods: arr,
+ })
+ }
+
+ target.language_requirements = language
+ this.setData({
+ admission_requirementsObj: target,
+ }, () => {
+ const rpx800 = util.rpxTopx(800)
+ const query = wx.createSelectorQuery();
+ query.select('.side-item .demand.block').boundingClientRect(rect => {
+ if (!rect) return
+ this.setData({
+ demandState: rect.height >= rpx800 ? 1 : 0
+ })
+ }).exec()
+ })
+ },
+
+ // 处理 申请信息 季
+ handleAmissionsData(id) {
+ let admissions = this.data.admissions || []
+ const fields = ['tuition_fee', 'tuition_fee_per_credit', 'application_fee', 'admission_deposit'];
+ admissions.forEach(element => {
+ fields.forEach(field => {
+ const textKey = `${field}_text`;
+ element[textKey] = common.formatNumberWithSpaces(element[field] ? element[field] + '' : '');
+ });
+
+ element['season'] = this.getIntakeSeason(element.intake_month, element.intake_year)
+ element['interviewRounds'] = this.calculateInterviewRound(element.application_end || {})
+ console.log("element", element);
+
+ })
+ this.setData({
+ admissions,
+ })
+ this.getAdmissionsObj(id)
+ },
+
+ // 拿到 招生 选中信息
+ getAdmissionsObj(id) {
+ const admissionsObj = this.data.admissions.find(item => item.id === id);
+ // console.log("admissionsObj", admissionsObj);
+ this.setData({
+ admissionsObj,
+ })
+ },
+
+ // 处理 文件数据
+ handleDocumentsData(documents) {
+ const documentsArr = [];
+ for (let i = 0; i < documents.length; i += 4) {
+ documentsArr.push(documents.slice(i, i + 4));
+ }
+ this.setData({
+ documents: documentsArr,
+ })
+ },
+
+ // 处理认证数据
+ handleAccreditationData(accreditation) {
+ let accArr = {
+ AC: {
+ title: "认证机构",
+ list: []
+ },
+ RE: {
+ title: "验证机构",
+ list: []
+ },
+ VA: {
+ title: "认可机构",
+ list: []
+ },
+ }
+
+ accreditation.forEach(element => {
+ if (element.accreditation_type == "ACCREDITATION") accArr.AC.list.push(element)
+ if (element.accreditation_type == "RECOGNITION") accArr.RE.list.push(element)
+ if (element.accreditation_type == "VALIDATION") accArr.VA.list.push(element)
+ })
+
+ this.setData({
+ accreditation: accArr,
+ isAccreditation: accreditation.length != 0 ? true : false,
+ })
+ },
+
countdownInterval: null,
startCountdown(duration) {
clearTimeout(this.countdownInterval);
@@ -395,7 +585,7 @@ Page({
return acc;
}, null);
- const sideKey = closestValue || 'pivotal'
+ const sideKey = closestValue || 'basic'
if (sideKey != this.data.sideKey) {
this.setData({
sideKey,
@@ -488,7 +678,7 @@ Page({
const sideKey = e.currentTarget.dataset.key
const sideHeight = this.sideHeight
let value = sideHeight[sideKey] - this.data.totalTopHeight || 0
- if (this.data.offerPage && ["issue", "links"].includes(sideKey)) value = 10000000
+ // if (this.data.offerPage && ["issue", "links"].includes(sideKey)) value = 10000000
wx.pageScrollTo({
scrollTop: value,
})
@@ -507,7 +697,7 @@ Page({
const contras = this.data.contras
const info = this.data.info
- util.wxpost("/api/project.contrast/add", {
+ util.wxpost("https://api.gter.net/v1/program/addContrast", {
projectid: info.id,
}).then(res => {
if (res.code != 200) return
@@ -533,7 +723,6 @@ Page({
})
},
-
// 获取招生官
getAdmissionList() {
util.wxget('/miniprogramApi/offer/home').then(res => {
@@ -575,9 +764,9 @@ Page({
return now <= date
},
- getOfferData(projectid) {
+ getOfferData() {
if (this.data.offerPage == 0) return
- util.wxget(`/api/project.other/offerList?limit=2000&projectid=${ projectid || this.data.info.id }&page=${ this.data.offerPage }`).then(res => {
+ util.wxget(`https://api.gter.net/v1/program/offerList?limit=5&projectid=${ this.data.info.id }&page=${ this.data.offerPage }`).then(res => {
const data = res.data
const list = data.list || []
let side = this.data.side
@@ -602,42 +791,25 @@ Page({
})
},
- openPreview() {
- wx.previewMedia({
- sources: [{
- url: '//framework.x-php.com/project//img/9dfc-c89f50deb0f906dd751540895bf0e303.jpg'
- }],
- showmenu: true,
- })
- },
-
/**
* 生命周期函数--监听页面初次渲染完成
*/
- onReady() {
-
- },
+ onReady() {},
/**
* 生命周期函数--监听页面显示
*/
- onShow() {
-
- },
+ onShow() {},
/**
* 生命周期函数--监听页面隐藏
*/
- onHide() {
-
- },
+ onHide() {},
/**
* 生命周期函数--监听页面卸载
*/
- onUnload() {
-
- },
+ onUnload() {},
/**
* 页面相关事件处理函数--监听用户下拉动作
@@ -651,7 +823,7 @@ Page({
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
- if (this.data.offerPage != 0) this.getOfferData()
+ // if (this.data.offerPage != 0) this.getOfferData()
},
/**
* 页面相关事件处理函数--监听用户下拉动作
@@ -695,4 +867,82 @@ Page({
url: `/pages/projectList/projectList?type=subject&year=${ item.year }&system=${item.system}&subject=${item.subject}`,
})
},
+
+ // 切换要求展示
+ cutDemandState() {
+ this.setData({
+ demandState: this.data.demandState == 1 ? 2 : 1
+ })
+ },
+
+ // 获取 格式 2025Fall
+ getIntakeSeason(intake_month, intake_year) {
+ let season = "Fall";
+ if (intake_month >= 8 && intake_month <= 12) season = "Fall";
+ else if (intake_month >= 1 && intake_month <= 5) season = "Spring";
+ else if (intake_month >= 6 && intake_month <= 7) season = "Summer";
+ const shortYear = String(intake_year).slice(-2);
+ return `${shortYear}${season}`;
+ },
+
+ cutApplyIndex(e) {
+ const id = e.currentTarget.dataset.id
+ this.handleAmissionsData(id)
+ this.handleAmissionsData(id)
+ this.cutApplyState()
+ },
+
+ cutApplyState() {
+ this.setData({
+ applyListState: !this.data.applyListState,
+ })
+ },
+
+ // 获取推荐数据
+ getRecommendData() {
+ if (this.data.recommendPage == 0) return
+ util.wxpost("https://api.gter.net/v1/program/recommendProgram", {
+ uniqid: this.data.uniqid,
+ page: this.data.recommendPage,
+ limit: 10,
+ }).then(res => {
+ const data = res.data
+
+ const date = new Date()
+ const month = date.getMonth() + 1
+ const year = date.getFullYear()
+
+ let list = data.data || []
+ list = (list).map(element => ({
+ ...element,
+ semesterState: (year < element.semester.year) || (year === element.semester.year && month < element.semester.month),
+ tuition_fee_text: common.formatNumberWithSpaces(element.tuition_fee ? element.tuition_fee + '' : '')
+ }));
+
+ let side = this.data.side
+ if (list.length == 0) delete side.recommend
+
+ this.setData({
+ recommendList: this.data.recommendList.concat(list),
+ side,
+ recommendPage: this.data.recommendPage + 1
+ })
+ })
+ },
+
+ // 点击 推荐项目 的详情
+ goDetails(e) {
+ const index = e.currentTarget.dataset.index
+ const list = this.data.recommendList
+ const target = list[index]
+ common.goPage(`/pages/projectDetails/projectDetails?uniqid=${ target.uniqid }`)
+ },
+
+ goVs(e) {
+ const index = e.currentTarget.dataset.index
+ const info = this.data.info
+ const list = this.data.recommendList
+ const target = list[index]
+ common.goPage(`/pages/projectComparison/projectComparison?ids=${[info.id, target.id]}`)
+ }
})
\ No newline at end of file
diff --git a/pages/projectDetails/projectDetails.json b/pages/projectDetails/projectDetails.json
index e16ce23..3bca713 100644
--- a/pages/projectDetails/projectDetails.json
+++ b/pages/projectDetails/projectDetails.json
@@ -4,6 +4,7 @@
"project-show-text": "/component/projectShowText/projectShowText",
"go-login": "/component/goLogin/goLogin",
"perfect-information": "/component/perfectInformation/perfectInformation",
- "index-sidebar": "/component/indexSidebar/indexSidebar"
+ "index-sidebar": "/component/indexSidebar/indexSidebar",
+ "document-box": "/component/document-box/document-box"
}
}
\ No newline at end of file
diff --git a/pages/projectDetails/projectDetails.less b/pages/projectDetails/projectDetails.less
index 68a363f..26d4de9 100644
--- a/pages/projectDetails/projectDetails.less
+++ b/pages/projectDetails/projectDetails.less
@@ -44,9 +44,13 @@ navigator {
.school {
font-size: 24rpx;
- color: #333333;
+ color: #7F7F7F;
flex-wrap: wrap;
+ .black {
+ color: #000000;
+ }
+
.icon {
width: 36rpx;
height: 31.5rpx;
@@ -57,6 +61,12 @@ navigator {
color: #d7d7d7;
margin: 0 18rpx;
}
+
+ .arrows {
+ width: 18rpx;
+ height: 18rpx;
+ margin-left: 18rpx;
+ }
}
}
@@ -189,6 +199,25 @@ navigator {
.side-item {
padding-right: 15rpx;
padding-bottom: 40rpx;
+ padding-top: 70rpx;
+
+ .side-head {
+ height: 36rpx;
+ background-color: rgba(242, 242, 242, 1);
+ border-radius: 6rpx;
+ font-size: 21rpx;
+ color: #7F7F7F;
+ margin-left: 36rpx;
+ margin-bottom: 60rpx;
+
+ &.side-head-no-bottom {
+ margin-bottom: 0;
+ }
+ }
+
+ &:first-of-type {
+ padding-top: 37.5rpx;
+ }
&:not(:first-of-type) {
padding-top: 70rpx;
@@ -413,9 +442,10 @@ navigator {
.label {
flex-wrap: wrap;
- margin-bottom: 15rpx;
+ padding-bottom: 15rpx;
margin-left: 36rpx;
padding-top: 30rpx;
+ border-bottom: 1rpx dotted #d9d9d9;
.item {
height: 36rpx;
@@ -440,6 +470,96 @@ navigator {
}
}
+ .discipline {
+ // width: 564rpx;
+ // height: 210rpx;
+ background-color: rgba(255, 255, 255, 1);
+ border: 1px solid rgba(235, 235, 235, 1);
+ border-radius: 18rpx;
+ margin-left: 36rpx;
+ padding: 36rpx 21rpx;
+ margin-bottom: 30rpx;
+
+ .discipline-title {
+ font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
+ font-weight: 650;
+ font-size: 30rpx;
+ color: #000000;
+ text-align: center;
+ line-height: 51rpx;
+ margin-bottom: 24rpx;
+ }
+
+ .discipline-btn {
+ height: 54rpx;
+ line-height: 54rpx;
+ background-color: rgba(246, 246, 246, 1);
+ border-radius: 259.5rpx;
+ font-size: 21rpx;
+ color: #333333;
+ padding-left: 22.5rpx;
+ padding-right: 10rpx;
+
+ .icon {
+ width: 30rpx;
+ height: 30rpx;
+ }
+
+ .sum {
+ font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
+ font-weight: 650;
+ font-style: normal;
+ font-size: 21rpx;
+ color: #000000;
+ margin-right: 15rpx;
+ }
+ }
+ }
+
+ .accreditation {
+ padding: 36rpx 19.5rpx 0;
+
+ .accreditation-item {
+ margin-bottom: 36rpx;
+
+ .title {
+ font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
+ font-weight: 650;
+ font-size: 27rpx;
+ color: #000000;
+ margin-bottom: 18rpx;
+
+ .icon {
+ width: 16.5rpx;
+ height: 13.5rpx;
+ margin-right: 18rpx;
+ transform: rotate(-90deg);
+ }
+ }
+
+ .list {
+ background-color: rgba(246, 246, 246, 1);
+ border-radius: 9rpx;
+ padding: 24rpx 15rpx;
+
+ .item {
+ .dot {
+ width: 12rpx;
+ height: 12rpx;
+ margin-right: 15rpx;
+ }
+
+ font-size: 24rpx;
+ color: #333333;
+
+ &:not(:last-of-type) {
+ margin-bottom: 21rpx;
+ }
+ }
+ }
+ }
+ }
+
.key-ranking {
display: flex;
flex-direction: column;
@@ -503,6 +623,13 @@ navigator {
align-items: center;
position: relative;
min-height: 160rpx;
+ margin-bottom: 16rpx;
+ justify-content: space-between;
+
+ .left {
+ flex-direction: column;
+ padding-right: 15rpx;
+ }
.unit {
padding: 0 10.5rpx;
@@ -530,7 +657,245 @@ navigator {
.text {
font-size: 24rpx;
color: #555555;
- margin-right: 20rpx;
+ // margin-right: 20rpx;
+ }
+
+ .tuition-details {
+ width: 300rpx;
+ background-color: rgba(246, 246, 246, 1);
+ border-radius: 9rpx;
+ padding: 24rpx 15rpx;
+
+ .tuition-item {
+ justify-content: space-between;
+
+ &:not(:last-of-type) {
+ margin-bottom: 16.5rpx;
+ }
+
+ .key {
+ font-size: 24rpx;
+ color: #555555;
+ }
+
+ .value {
+ font-family: 'Arial-Black', 'Arial Black', sans-serif;
+ font-weight: 900;
+ font-style: normal;
+ font-size: 24rpx;
+ color: #000000;
+ }
+
+ }
+ }
+ }
+
+ .tuition-remark {
+ // height: 315rpx;
+ background-color: rgba(255, 255, 255, 1);
+ border: 1rpx solid rgba(235, 235, 235, 1);
+ border-radius: 18rpx;
+ margin-bottom: 30rpx;
+ margin-left: 36rpx;
+ font-size: 24rpx;
+ color: #555555;
+ line-height: 39rpx;
+ padding: 33rpx 31.5rpx;
+ word-break: break-all;
+
+ .head {
+ .icon {
+ width: 30rpx;
+ height: 30rpx;
+ margin-right: 10.5rpx;
+ }
+
+ font-family: 'Arial-Black',
+ 'Arial Black',
+ sans-serif;
+ font-weight: 900;
+ font-size: 27rpx;
+ color: #000000;
+ margin-bottom: 15rpx;
+ }
+ }
+
+ .scholarships {
+ font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
+ padding-top: 25.5rpx;
+ padding-bottom: 48rpx;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+
+ .name-en {
+ text-align: center;
+ font-weight: 650;
+ font-size: 30rpx;
+ color: #000000;
+ line-height: 51rpx;
+ position: relative;
+ width: fit-content;
+ margin: 0 40rpx 13.5rpx;
+
+ &::after {
+ left: -27rpx;
+ }
+
+ &::before {
+ right: -27rpx;
+ }
+
+ &::after,
+ &::before {
+ content: "";
+ position: absolute;
+ width: 9rpx;
+ height: 9rpx;
+ background-color: rgba(249, 93, 93, 1);
+ border-radius: 30rpx;
+ top: 50%;
+ transform: translateY(-50%);
+ }
+ }
+
+ .name-zh {
+ text-align: center;
+ font-size: 22.5rpx;
+ color: #AAAAAA;
+ margin-bottom: 28.5rpx;
+ }
+
+ .text {
+ font-size: 24rpx;
+ color: #555555;
+ line-height: 54rpx;
+ margin: 0 27rpx 39rpx;
+ align-self: self-start;
+ position: relative;
+ background-image: url(https://app.gter.net/image/miniApp/offer/dotted-line.png);
+ background-size: 100% 54rpx;
+ background-repeat: repeat-y;
+ background-position: 0 0;
+ white-space: pre-wrap;
+
+ &::after {
+ content: "";
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ display: block;
+ width: 100%;
+ height: 1rpx;
+ background-image: url(https://app.gter.net/image/miniApp/offer/dotted-line.png);
+ background-size: 100% 54rpx;
+ background-repeat: repeat-y;
+ }
+ }
+
+ .radius {
+ margin: 0 27rpx;
+ align-self: self-start;
+
+ .key {
+ font-size: 21rpx;
+ color: #FFFFFF;
+ height: 36rpx;
+ line-height: 36rpx;
+ background-color: rgba(4, 176, 213, 1);
+ border-radius: 12rpx;
+ padding: 0 10.5rpx;
+ width: fit-content;
+ margin-right: 18rpx;
+ }
+
+ .value {
+ font-size: 24rpx;
+ color: #000000;
+ }
+ }
+ }
+
+ .apply-btn {
+ position: relative;
+ z-index: 1;
+ width: fit-content;
+ margin: 20rpx auto 62rpx;
+
+ .btn {
+ width: 348rpx;
+ height: 45rpx;
+ font-size: 24rpx;
+ color: #FFFFFF;
+ margin: 0 auto;
+ z-index: 1;
+
+ .text {
+ text-align: center;
+ line-height: 45rpx;
+ background-color: rgba(249, 93, 93, 1);
+ border-radius: 10.5rpx 0 0 10.5rpx;
+
+ }
+
+ .btn-right {
+ background-color: rgba(51, 51, 51, 1);
+ border-radius: 0 10.5rpx 10.5rpx 0;
+ height: 100%;
+ width: 45rpx;
+
+ .arrows {
+ width: 15rpx;
+ height: 7.5rpx;
+ }
+ }
+ }
+
+ .apply-mask {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: -1;
+ }
+
+ .apply-list {
+ position: absolute;
+ left: -15rpx;
+ top: -15rpx;
+ width: 378rpx;
+ background-color: rgba(242, 242, 242, 1);
+ border-radius: 22.5rpx;
+ box-shadow: 0 0 7.5rpx rgba(0, 0, 0, 0.172549019607843);
+ z-index: -1;
+ padding: 80rpx 15rpx 15rpx;
+
+ .apply-item {
+ font-size: 24rpx;
+ color: #555555;
+ font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
+ // margin-bottom: 27rpx;
+ line-height: 60rpx;
+
+ .dot {
+ width: 9rpx;
+ height: 9rpx;
+ border-radius: 50%;
+ border: 1rpx solid #797979;
+ margin-right: 27rpx;
+ }
+
+ &.pitch {
+ font-weight: 650;
+ color: #000000;
+
+ .dot {
+ border-color: #333;
+ background-color: #333;
+ }
+ }
+ }
}
}
@@ -634,21 +999,38 @@ navigator {
}
.demand {
- padding: 25.5rpx 22.5rpx;
+ padding: 25.5rpx 22.5rpx 75rpx;
+
+ // height: 800rpx;
+ // overflow: hidden;
+
+ position: relative;
+ transition: all .3s;
+
+ &.arrowShow {
+ height: 800rpx;
+ overflow: hidden;
+ }
+
+ &.demandShow {
+ height: auto;
+ }
.text {
- font-size: 27rpx;
+ font-size: 24rpx;
color: #000000;
- line-height: 51rpx;
- margin-bottom: 30rpx;
+ line-height: 42rpx;
+ padding-bottom: 30rpx;
word-break: break-word;
white-space: pre-line;
}
.title {
+ border-top: 1rpx dotted #d7d7d7;
font-weight: 650;
font-size: 27rpx;
color: #000000;
+ padding-top: 34rpx;
margin-bottom: 15rpx;
}
@@ -658,51 +1040,150 @@ navigator {
margin-bottom: 30rpx;
}
- .list {
- .item {
- background-color: rgba(246, 246, 246, 1);
- border-radius: 9rpx;
- padding: 19.5rpx 15rpx 19.5rpx 42rpx;
- position: relative;
+ .ability-item {
+ background-color: rgba(246, 246, 246, 1);
+ border-radius: 9rpx;
+ padding: 30rpx 15rpx;
+ margin-bottom: 36rpx;
- .triangle {
- position: absolute;
- width: 16.5rpx;
- height: 9rpx;
- transform: rotate(-90deg);
- top: 33rpx;
- left: 15rpx;
+ .head {
+ margin-bottom: 22.5rpx;
+
+ .index {
+ width: 30rpx;
+ height: 30rpx;
+ background-color: rgba(249, 93, 93, 1);
+ border-radius: 30rpx;
+ font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
+ font-weight: 650;
+ font-style: normal;
+ font-size: 21rpx;
+ color: #FFFFFF;
+ margin-right: 16.5rpx;
}
- &:not(:last-of-type) {
- margin-bottom: 15rpx;
+ .ability-text {
+ font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
+ font-weight: 650;
+ font-size: 27rpx;
+ color: #000000;
+ margin-right: 15rpx;
}
- font-size: 24rpx;
-
- .name {
- color: #7F7F7F;
- margin-bottom: 12rpx;
- }
-
- .value {
+ .tag {
+ width: 69rpx;
+ height: 36rpx;
+ line-height: 36rpx;
+ text-align: center;
+ font-size: 21rpx;
color: #333333;
+ border: 1rpx solid rgba(215, 215, 215, 1);
+ border-radius: 30rpx;
+
+ &.recommended {
+ color: #fff;
+ background-color: rgba(4, 176, 213, 1);
+ border-color: rgba(4, 176, 213, 1);
+ }
+
+ &.required {
+ color: #fff;
+ background-color: rgba(111, 193, 109, 1);
+ border-color: rgba(111, 193, 109, 1);
+ }
}
}
+
+ .description {
+ background-color: rgba(251, 251, 251, 1);
+ border-radius: 9rpx;
+ font-size: 24rpx;
+ line-height: 39rpx;
+ color: #333333;
+ padding: 25.5rpx 18rpx;
+
+
+ }
+
+ .remarks {
+ margin-top: 30rpx;
+ padding-top: 30rpx;
+ border-top: 1rpx dotted #d7d7d7;
+ }
+
+ .list {
+ .item {
+ border-radius: 9rpx;
+ padding: 19.5rpx 15rpx 19.5rpx 42rpx;
+ position: relative;
+
+ // height: 86px;
+ background-color: rgba(251, 251, 251, 1);
+ border-radius: 9rpx;
+
+ .triangle {
+ position: absolute;
+ width: 12rpx;
+ height: 12rpx;
+ top: 30rpx;
+ left: 15rpx;
+ }
+
+ &:not(:last-of-type) {
+ margin-bottom: 15rpx;
+ }
+
+ font-size: 24rpx;
+
+ .name {
+ color: #7F7F7F;
+ margin-bottom: 12rpx;
+ }
+
+ .value {
+ color: #333333;
+ }
+ }
+ }
+ }
+
+ .demand-content {}
+
+ .demand-bottom {
+ height: 75rpx;
+ background-color: rgba(255, 255, 255, 0.980392156862745);
+ border-radius: 0 0 18rpx 18rpx;
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ width: 100%;
+
+ &.demandShow {
+ .bottom-icon {
+ transform: rotate(270deg);
+ }
+ }
+
+ .bottom-icon {
+ width: 33rpx;
+ height: 33rpx;
+ transform: rotate(90deg);
+ transition: all .3s;
+ }
}
}
+
+
.ranking {
margin-left: 36rpx;
- margin-bottom: 30rpx;
.item {
background-color: rgba(246, 246, 246, 1);
border-radius: 9rpx;
- &:not(:last-of-type) {
- margin-bottom: 15rpx;
- }
+ margin-bottom: 15rpx;
+
.rank {
width: 150rpx;
@@ -791,6 +1272,30 @@ navigator {
}
}
+ .ps {
+ margin-bottom: 30rpx;
+ margin-left: 36rpx;
+ background-color: rgba(255, 255, 255, 1);
+ border: 1rpx solid rgba(235, 235, 235, 1);
+ border-radius: 9rpx;
+ font-size: 21rpx;
+ padding: 13.5rpx;
+
+ .title {
+ font-family: 'Arial-Black', 'Arial Black', sans-serif;
+ font-weight: 900;
+ color: #000000;
+ display: inline-flex;
+ }
+
+ .text {
+ font-family: 'PingFangSC-Regular', 'PingFang SC', sans-serif;
+ color: #555555;
+ display: inline;
+ word-break: break-all;
+ }
+ }
+
.pattern {
padding: 30rpx 0;
@@ -812,7 +1317,7 @@ navigator {
border-radius: 33rpx;
&.pitch {
- background-color: rgba(4, 176, 213, 1);
+ background-color: rgba(111, 193, 109, 1);
color: #FFFFFF;
}
}
@@ -1015,6 +1520,7 @@ navigator {
color: #555555;
line-height: 51rpx;
padding: 22.5rpx 0;
+ word-break: break-word;
}
.index {
@@ -1146,7 +1652,7 @@ navigator {
}
.english {
- font-family: 'ArialMT', 'Arial', sans-serif;
+ // font-family: 'ArialMT', 'Arial', sans-serif;
color: #AAAAAA;
font-size: 21rpx;
padding: 0 12.75rpx;
@@ -1239,13 +1745,16 @@ navigator {
margin-left: 36rpx;
.consult-item {
- margin-bottom: 30rpx;
- width: 567rpx;
+ // width: 567rpx;
background-color: rgba(255, 255, 255, 1);
border: 1rpx solid rgba(235, 235, 235, 1);
border-radius: 18rpx;
padding: 33rpx 18rpx 30rpx 31.5rpx;
+ &:not(:last-of-type) {
+ margin-bottom: 30rpx;
+ }
+
.school {
.img {
width: 48rpx;
@@ -1293,6 +1802,7 @@ navigator {
}
.info-xiaobox {
+ width: 519rpx;
height: 69rpx;
background-color: rgba(251, 251, 251, 1);
border-radius: 15rpx;
@@ -1323,6 +1833,164 @@ navigator {
}
}
}
+
+ .consult-more {
+ font-size: 21rpx;
+ color: #555555;
+ line-height: 39rpx;
+ padding-top: 45rpx;
+ padding-bottom: 5rpx;
+
+ .icon {
+ width: 27rpx;
+ height: 27rpx;
+ margin-left: 6rpx;
+ }
+ }
+
+ .recommend-list {
+ margin-left: 36rpx;
+
+ .item {
+ background-color: rgba(255, 255, 255, 1);
+ border: 1rpx solid rgba(235, 235, 235, 1);
+ border-radius: 18rpx;
+ padding: 36rpx 18rpx 95rpx;
+ position: relative;
+
+ &:not(:last-of-type) {
+ margin-bottom: 30rpx;
+ }
+
+ .school {
+ .icon {
+ width: 30rpx;
+ height: 30rpx;
+ margin-right: 12rpx;
+ }
+
+ font-size: 24rpx;
+ color: #333333;
+ margin-bottom: 18rpx;
+ }
+
+ .name {
+ font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
+ font-weight: 650;
+ font-size: 33rpx;
+ color: #000000;
+ }
+
+ .english {
+ font-size: 21rpx;
+ color: #7F7F7F;
+ margin-top: 12rpx;
+ }
+
+ .introduce {
+ font-size: 25.5rpx;
+ color: #555555;
+ margin-top: 15rpx;
+ flex-wrap: wrap;
+
+ .line {
+ color: #D7D7D7;
+ margin: 0 12rpx;
+ }
+
+ .quantity {
+ font-family: 'Arial', 'Arial-Black', 'Arial Black', sans-serif;
+ font-weight: 900;
+ color: #000000;
+ margin-left: 12rpx;
+ }
+ }
+
+ .word {
+ font-size: 24rpx;
+ color: #7F7F7F;
+ padding: 10.5rpx 15rpx;
+ background-color: rgba(246, 246, 246, 1);
+ border-radius: 7.5rpx;
+ margin-top: 15rpx;
+ }
+
+ .tag {
+ flex-wrap: wrap;
+ margin-top: 25rpx;
+
+ .tag-item {
+ height: 36rpx;
+ line-height: 36rpx;
+ font-size: 22.5rpx;
+ color: #858585;
+ padding: 0 10.5rpx;
+ border: 1rpx solid #aaaaaa;
+ border-radius: 6px;
+ width: fit-content;
+ margin-right: 15rpx;
+ margin-bottom: 10rpx;
+
+ &.admissions {
+ background-color: rgba(115, 209, 229, 1);
+ border: none;
+ color: #fff;
+ }
+
+ &.gray {
+ border: none;
+ color: #fff;
+ background-color: rgba(51, 51, 51, 1);
+
+ &.semester {
+ background-color: #f95d5d;
+ }
+ }
+ }
+ }
+
+ .btn {
+ height: 75rpx;
+ background-color: rgba(237, 240, 244, 1);
+ border-top: 1rpx solid rgba(235, 235, 235, 1);
+ border-radius: 0 0 18rpx 18rpx;
+
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+
+ font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
+ font-weight: 650;
+ font-size: 24rpx;
+ color: #000000;
+
+ .btn-item {
+ font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
+ font-weight: 650;
+ font-size: 24rpx;
+ position: relative;
+
+ &:not(:last-of-type)::after {
+ content: "";
+ position: absolute;
+ top: 50%;
+ right: 1rpx;
+ width: 1rpx;
+ height: 31.5rpx;
+ transform: translateY(-50%);
+ background-color: #aaaaaa;
+ }
+
+ .icon {
+ width: 24rpx;
+ height: 24rpx;
+ margin-right: 9rpx;
+ }
+ }
+ }
+ }
+ }
}
.bottom-base {
diff --git a/pages/projectDetails/projectDetails.wxml b/pages/projectDetails/projectDetails.wxml
index 31604e3..872a853 100644
--- a/pages/projectDetails/projectDetails.wxml
+++ b/pages/projectDetails/projectDetails.wxml
@@ -7,20 +7,28 @@
- {{ info.name_zh }}
- {{ info.name_en }}
+ {{ info.program_zh }}
+ {{ info.program_en }}
-
+
{{ info.schoolname || '' }}
+
-
- |
- {{ info.au0 }}
+
+
+ |
+ {{ info.academic_unit[0]['academic_unit_zh'] }}
+
+
-
+
|
- {{ info.au1 }}
+ {{ info.academic_unit[1]['academic_unit_zh'] }}
+
+
+ |
+ {{ info.academic_unit[2]['academic_unit_zh'] }}
@@ -38,7 +46,6 @@
-
宣讲会
@@ -68,7 +75,7 @@
-
+
{{ item }}
{{ sideNum[index] }}
@@ -77,13 +84,11 @@
-
-
+
{{ rankingKey[item.system] || item.system }}
@@ -115,14 +119,11 @@
-
{{ info.tuition_currency || 'HK$' }}
总学费
{{ info.tuition_fee_text || '待确认' }}
-
-
{{ info.language_of_instruction_text || '-' }}
@@ -152,9 +153,34 @@
-
+ -->
+ 基本信息
+
+
+ {{ newest || '' }}
+ 本项目招生信息已更新为{{ newest || '' }}
+
+
+
+ {{ info.distinctive }}
+
+
+
+ {{ item }}
+
+
+
+
+
+ {{ discipline.name }}
+
+ 该学科领域的其他项目
+ {{ discipline.count }}
+
+
+
@@ -167,7 +193,7 @@
- {{ rankingKey[item.system] || item.system }}
+ {{ rankingKey[item.system] || item.system }}
@@ -181,34 +207,70 @@
-
-
-
-
-
-
+
+ P.S.
+ 某些学科属跨学科专业(如建筑师兼顾工学和艺术学),系统自动从排名分类里找到最接近的进行展示。
-
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+ {{ item.body_full_zh }}({{ item.body_abbr }})
+
+
+
+
+ 申请信息
+
+
+
+ - {{ admissionsObj.season }}申请信息 -
+
+
+
+
+
+
+
+
+
+
+ {{ item.season }}申请信息
+
+
+
+
+
-
-
+
+
{{ index + 1 }}
{{ item.text }}
- {{ info.application_start || '-' }}
+ {{ admissionsObj.application_start || '-' }}
开始申请日期
@@ -217,63 +279,97 @@
-
-
-
+
+
+
结果通知时间:
- {{ info.result_date }}
+ {{ admissionsObj.result_time }}
-
- {{ info.entrance_requirements || '-' }}
-
+
+ {{ admission_requirementsObj.basic_requirements }}
+
+
+
+
+
+
-
+
-
-
-
-
+
- {{ info.tuition_currency || 'HK$' }}
- 总学费
- {{ info.tuition_fee_text || '待确认' }}
+
+ {{ admissionsObj.tuition_currency || 'HK$' }}
+ 总学费
+ {{ admissionsObj.tuition_fee_text || '待确认' }}
+
+
+
+ 每学分学费
+ {{ admissionsObj.tuition_fee_per_credit_text }}
+
+
+ 申请费
+ {{ admissionsObj.application_fee_text }}
+
+
+ 入学保证金
+ {{ admissionsObj.admission_deposit_text }}
+
+
+
+
-
+
-
-
+
+ {{ item.scholarship_name }}
+ 奖学金名称
+ {{ item.description }}
+
+ 适用范围
+ {{ item.is_local_eligible ? '本地生适用' : '' }}{{ item.is_nonlocal_eligible ? '非本地生适用' : '' }}
+
-
+
+
-
+
+
+ 就读信息
+
@@ -283,52 +379,52 @@
- {{ info.language_of_instruction_text || '-' }}
+ {{ detailsInfo.language_of_instruction_text || '-' }}
教学语言
- {{ info.ft_normal_period || '-' }}
+ {{ detailsInfo.full_time_normal_year ? (detailsInfo.full_time_normal_year + '年') : '-' }}
正常学习时长
- {{ info.ft_maximum_period || '待确认' }}
+ {{ detailsInfo.full_time_maximum_year ? (detailsInfo.full_time_maximum_year + '年') : '待确认' }}
最长学习时长
- {{ info.language_of_instruction_text || '-' }}
+ {{ detailsInfo.language_of_instruction_text || '-' }}
教学语言
- {{ info.pt_normal_period || '-' }}
+ {{ detailsInfo.part_time_normal_year ? (detailsInfo.part_time_normal_year + '年') : '-' }}
正常学习时长
- {{ info.pt_maximum_period || '待确认' }}
+ {{ detailsInfo.part_time_maximum_year ? (detailsInfo.part_time_maximum_year + '年') : '待确认' }}
最长学习时长
-
+
-
+
-
+
-
+
-
+
申请页项目详情
- {{ info.catalog_url }}
-
+ {{ admissionsObj.catalog_url }}
+
复制链接
@@ -336,6 +432,8 @@
+ 毕业&就业
+
@@ -349,24 +447,24 @@
-
+
-
+
-
-
-
+
+
+
-
-
+
+
-
-
+
+
@@ -387,29 +485,26 @@
寄托网友
-
-
招生官
-
-
-
+
+ 录取参考
-
+
{{ item.schoolname }}
@@ -449,7 +544,7 @@
-
+
@@ -474,12 +569,18 @@
+
+ 加载更多
+
+
-
-
+
+ 常见问题
+
+
- {{ item.num }}
+ {{ index + 1 }}
{{ item.question }}
{{ item.answer }}
@@ -487,33 +588,88 @@
-
-
+
+ 相关链接
+
+
- 官方宣传册
- {{ info.leaflet_name || '-' }}
- 打开文件
+ 项目宣传册
+ {{ admissionsObj.leaflet_name || '-' }}
+ 打开文件
-
+
+ 研究生院申请页项目详情
+ {{ info.website_en }}
+
+
+ 复制链接
+
+
+
学院网站项目详情
- {{ info.program_url }}
-
+ {{ admissionsObj.application_url }}
+
复制链接
-
+
项目目录项目详情
- {{ info.catalog_url }}
-
+ {{ admissionsObj.catalog_url }}
+
复制链接
- - End -
+
+
+
+ 推荐项目
+
+
+
+
+
+ {{ item.schoolname }}
+
+ {{ item.name_zh }}
+ {{ item.name_en }}
+
+
+ 专业排名 {{ item.rank }}
+
+
+ | 学费HK$ {{ item.tuition_fee_text }}
+
+
+ {{ item.distinctive }}
+
+ 招生官项目
+ {{ item.semester.text }}
+ {{ item }}
+
+
+
+
+ 查看该项目
+
+
+
+ 与该项目对比
+
+
+
+
+
+ 加载更多
+
+
+
+
+ - End -
@@ -609,10 +765,10 @@
榜单
-
+
Offer榜
-
+
@@ -639,20 +795,32 @@
{{ item.course_name_zh }}
{{ item.course_name_en }}
- {{ item.credit || '-' }}
+ {{ item.course_credits || '-' }}
- 英语能力要求
- 满足以下其中一项即可
-
-
-
- {{ item.name }}
- {{ item.text }}
+ {{ item.name || '' }}
+ 满足以下其中一项即可
+
+
+ {{ index + 1 }}
+ {{ item.name || item.test_name }}
+ {{ item.level }}
+
+
+ {{ item.description_zh }}
+
+
+
+
+
+ {{ item.test_name }}
+ {{ item.text }}
+
+
diff --git a/pages/projectDetails/projectDetails.wxss b/pages/projectDetails/projectDetails.wxss
index b089e72..31cdd18 100644
--- a/pages/projectDetails/projectDetails.wxss
+++ b/pages/projectDetails/projectDetails.wxss
@@ -38,9 +38,12 @@ navigator {
}
.head-box .school {
font-size: 24rpx;
- color: #333333;
+ color: #7F7F7F;
flex-wrap: wrap;
}
+.head-box .school .black {
+ color: #000000;
+}
.head-box .school .icon {
width: 36rpx;
height: 31.5rpx;
@@ -50,6 +53,11 @@ navigator {
color: #d7d7d7;
margin: 0 18rpx;
}
+.head-box .school .arrows {
+ width: 18rpx;
+ height: 18rpx;
+ margin-left: 18rpx;
+}
.main {
background-color: #fbfbfb;
border-radius: 45rpx;
@@ -156,6 +164,22 @@ navigator {
.details-box .side-item {
padding-right: 15rpx;
padding-bottom: 40rpx;
+ padding-top: 70rpx;
+}
+.details-box .side-item .side-head {
+ height: 36rpx;
+ background-color: #f2f2f2;
+ border-radius: 6rpx;
+ font-size: 21rpx;
+ color: #7F7F7F;
+ margin-left: 36rpx;
+ margin-bottom: 60rpx;
+}
+.details-box .side-item .side-head.side-head-no-bottom {
+ margin-bottom: 0;
+}
+.details-box .side-item:first-of-type {
+ padding-top: 37.5rpx;
}
.details-box .side-item:not(:first-of-type) {
padding-top: 70rpx;
@@ -336,9 +360,10 @@ navigator {
}
.details-box .label {
flex-wrap: wrap;
- margin-bottom: 15rpx;
+ padding-bottom: 15rpx;
margin-left: 36rpx;
padding-top: 30rpx;
+ border-bottom: 1rpx dotted #d9d9d9;
}
.details-box .label .item {
height: 36rpx;
@@ -359,6 +384,81 @@ navigator {
.details-box .label .item.gray.semester {
background-color: #ccce04;
}
+.details-box .discipline {
+ background-color: #ffffff;
+ border: 1px solid #ebebeb;
+ border-radius: 18rpx;
+ margin-left: 36rpx;
+ padding: 36rpx 21rpx;
+ margin-bottom: 30rpx;
+}
+.details-box .discipline .discipline-title {
+ font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
+ font-weight: 650;
+ font-size: 30rpx;
+ color: #000000;
+ text-align: center;
+ line-height: 51rpx;
+ margin-bottom: 24rpx;
+}
+.details-box .discipline .discipline-btn {
+ height: 54rpx;
+ line-height: 54rpx;
+ background-color: #f6f6f6;
+ border-radius: 259.5rpx;
+ font-size: 21rpx;
+ color: #333333;
+ padding-left: 22.5rpx;
+ padding-right: 10rpx;
+}
+.details-box .discipline .discipline-btn .icon {
+ width: 30rpx;
+ height: 30rpx;
+}
+.details-box .discipline .discipline-btn .sum {
+ font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
+ font-weight: 650;
+ font-style: normal;
+ font-size: 21rpx;
+ color: #000000;
+ margin-right: 15rpx;
+}
+.details-box .accreditation {
+ padding: 36rpx 19.5rpx 0;
+}
+.details-box .accreditation .accreditation-item {
+ margin-bottom: 36rpx;
+}
+.details-box .accreditation .accreditation-item .title {
+ font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
+ font-weight: 650;
+ font-size: 27rpx;
+ color: #000000;
+ margin-bottom: 18rpx;
+}
+.details-box .accreditation .accreditation-item .title .icon {
+ width: 16.5rpx;
+ height: 13.5rpx;
+ margin-right: 18rpx;
+ transform: rotate(-90deg);
+}
+.details-box .accreditation .accreditation-item .list {
+ background-color: #f6f6f6;
+ border-radius: 9rpx;
+ padding: 24rpx 15rpx;
+}
+.details-box .accreditation .accreditation-item .list .item {
+ font-size: 24rpx;
+ color: #333333;
+}
+.details-box .accreditation .accreditation-item .list .item .dot {
+ width: 12rpx;
+ height: 12rpx;
+ margin-right: 15rpx;
+}
+.details-box .accreditation .accreditation-item .list .item:not(:last-of-type) {
+ margin-bottom: 21rpx;
+}
.details-box .key-ranking {
display: flex;
flex-direction: column;
@@ -414,6 +514,12 @@ navigator {
align-items: center;
position: relative;
min-height: 160rpx;
+ margin-bottom: 16rpx;
+ justify-content: space-between;
+}
+.details-box .tuition .left {
+ flex-direction: column;
+ padding-right: 15rpx;
}
.details-box .tuition .unit {
padding: 0 10.5rpx;
@@ -439,7 +545,208 @@ navigator {
.details-box .tuition .text {
font-size: 24rpx;
color: #555555;
- margin-right: 20rpx;
+}
+.details-box .tuition .tuition-details {
+ width: 300rpx;
+ background-color: #f6f6f6;
+ border-radius: 9rpx;
+ padding: 24rpx 15rpx;
+}
+.details-box .tuition .tuition-details .tuition-item {
+ justify-content: space-between;
+}
+.details-box .tuition .tuition-details .tuition-item:not(:last-of-type) {
+ margin-bottom: 16.5rpx;
+}
+.details-box .tuition .tuition-details .tuition-item .key {
+ font-size: 24rpx;
+ color: #555555;
+}
+.details-box .tuition .tuition-details .tuition-item .value {
+ font-family: 'Arial-Black', 'Arial Black', sans-serif;
+ font-weight: 900;
+ font-style: normal;
+ font-size: 24rpx;
+ color: #000000;
+}
+.details-box .tuition-remark {
+ background-color: #ffffff;
+ border: 1rpx solid #ebebeb;
+ border-radius: 18rpx;
+ margin-bottom: 30rpx;
+ margin-left: 36rpx;
+ font-size: 24rpx;
+ color: #555555;
+ line-height: 39rpx;
+ padding: 33rpx 31.5rpx;
+ word-break: break-all;
+}
+.details-box .tuition-remark .head {
+ font-family: 'Arial-Black', 'Arial Black', sans-serif;
+ font-weight: 900;
+ font-size: 27rpx;
+ color: #000000;
+ margin-bottom: 15rpx;
+}
+.details-box .tuition-remark .head .icon {
+ width: 30rpx;
+ height: 30rpx;
+ margin-right: 10.5rpx;
+}
+.details-box .scholarships {
+ font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
+ padding-top: 25.5rpx;
+ padding-bottom: 48rpx;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+}
+.details-box .scholarships .name-en {
+ text-align: center;
+ font-weight: 650;
+ font-size: 30rpx;
+ color: #000000;
+ line-height: 51rpx;
+ position: relative;
+ width: fit-content;
+ margin: 0 40rpx 13.5rpx;
+}
+.details-box .scholarships .name-en::after {
+ left: -27rpx;
+}
+.details-box .scholarships .name-en::before {
+ right: -27rpx;
+}
+.details-box .scholarships .name-en::after,
+.details-box .scholarships .name-en::before {
+ content: "";
+ position: absolute;
+ width: 9rpx;
+ height: 9rpx;
+ background-color: #f95d5d;
+ border-radius: 30rpx;
+ top: 50%;
+ transform: translateY(-50%);
+}
+.details-box .scholarships .name-zh {
+ text-align: center;
+ font-size: 22.5rpx;
+ color: #AAAAAA;
+ margin-bottom: 28.5rpx;
+}
+.details-box .scholarships .text {
+ font-size: 24rpx;
+ color: #555555;
+ line-height: 54rpx;
+ margin: 0 27rpx 39rpx;
+ align-self: self-start;
+ position: relative;
+ background-image: url(https://app.gter.net/image/miniApp/offer/dotted-line.png);
+ background-size: 100% 54rpx;
+ background-repeat: repeat-y;
+ background-position: 0 0;
+ white-space: pre-wrap;
+}
+.details-box .scholarships .text::after {
+ content: "";
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ display: block;
+ width: 100%;
+ height: 1rpx;
+ background-image: url(https://app.gter.net/image/miniApp/offer/dotted-line.png);
+ background-size: 100% 54rpx;
+ background-repeat: repeat-y;
+}
+.details-box .scholarships .radius {
+ margin: 0 27rpx;
+ align-self: self-start;
+}
+.details-box .scholarships .radius .key {
+ font-size: 21rpx;
+ color: #FFFFFF;
+ height: 36rpx;
+ line-height: 36rpx;
+ background-color: #04b0d5;
+ border-radius: 12rpx;
+ padding: 0 10.5rpx;
+ width: fit-content;
+ margin-right: 18rpx;
+}
+.details-box .scholarships .radius .value {
+ font-size: 24rpx;
+ color: #000000;
+}
+.details-box .apply-btn {
+ position: relative;
+ z-index: 1;
+ width: fit-content;
+ margin: 20rpx auto 62rpx;
+}
+.details-box .apply-btn .btn {
+ width: 348rpx;
+ height: 45rpx;
+ font-size: 24rpx;
+ color: #FFFFFF;
+ margin: 0 auto;
+ z-index: 1;
+}
+.details-box .apply-btn .btn .text {
+ text-align: center;
+ line-height: 45rpx;
+ background-color: #f95d5d;
+ border-radius: 10.5rpx 0 0 10.5rpx;
+}
+.details-box .apply-btn .btn .btn-right {
+ background-color: #333333;
+ border-radius: 0 10.5rpx 10.5rpx 0;
+ height: 100%;
+ width: 45rpx;
+}
+.details-box .apply-btn .btn .btn-right .arrows {
+ width: 15rpx;
+ height: 7.5rpx;
+}
+.details-box .apply-btn .apply-mask {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: -1;
+}
+.details-box .apply-btn .apply-list {
+ position: absolute;
+ left: -15rpx;
+ top: -15rpx;
+ width: 378rpx;
+ background-color: #f2f2f2;
+ border-radius: 22.5rpx;
+ box-shadow: 0 0 7.5rpx rgba(0, 0, 0, 0.17254902);
+ z-index: -1;
+ padding: 80rpx 15rpx 15rpx;
+}
+.details-box .apply-btn .apply-list .apply-item {
+ font-size: 24rpx;
+ color: #555555;
+ font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
+ line-height: 60rpx;
+}
+.details-box .apply-btn .apply-list .apply-item .dot {
+ width: 9rpx;
+ height: 9rpx;
+ border-radius: 50%;
+ border: 1rpx solid #797979;
+ margin-right: 27rpx;
+}
+.details-box .apply-btn .apply-list .apply-item.pitch {
+ font-weight: 650;
+ color: #000000;
+}
+.details-box .apply-btn .apply-list .apply-item.pitch .dot {
+ border-color: #333;
+ background-color: #333;
}
.details-box .language-bonuses {
justify-content: space-between;
@@ -520,20 +827,31 @@ navigator {
color: #333333;
}
.details-box .demand {
- padding: 25.5rpx 22.5rpx;
+ padding: 25.5rpx 22.5rpx 75rpx;
+ position: relative;
+ transition: all 0.3s;
+}
+.details-box .demand.arrowShow {
+ height: 800rpx;
+ overflow: hidden;
+}
+.details-box .demand.demandShow {
+ height: auto;
}
.details-box .demand .text {
- font-size: 27rpx;
+ font-size: 24rpx;
color: #000000;
- line-height: 51rpx;
- margin-bottom: 30rpx;
+ line-height: 42rpx;
+ padding-bottom: 30rpx;
word-break: break-word;
white-space: pre-line;
}
.details-box .demand .title {
+ border-top: 1rpx dotted #d7d7d7;
font-weight: 650;
font-size: 27rpx;
color: #000000;
+ padding-top: 34rpx;
margin-bottom: 15rpx;
}
.details-box .demand .hint {
@@ -541,40 +859,115 @@ navigator {
font-size: 24rpx;
margin-bottom: 30rpx;
}
-.details-box .demand .list .item {
+.details-box .demand .ability-item {
background-color: #f6f6f6;
border-radius: 9rpx;
+ padding: 30rpx 15rpx;
+ margin-bottom: 36rpx;
+}
+.details-box .demand .ability-item .head {
+ margin-bottom: 22.5rpx;
+}
+.details-box .demand .ability-item .head .index {
+ width: 30rpx;
+ height: 30rpx;
+ background-color: #f95d5d;
+ border-radius: 30rpx;
+ font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
+ font-weight: 650;
+ font-style: normal;
+ font-size: 21rpx;
+ color: #FFFFFF;
+ margin-right: 16.5rpx;
+}
+.details-box .demand .ability-item .head .ability-text {
+ font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
+ font-weight: 650;
+ font-size: 27rpx;
+ color: #000000;
+ margin-right: 15rpx;
+}
+.details-box .demand .ability-item .head .tag {
+ width: 69rpx;
+ height: 36rpx;
+ line-height: 36rpx;
+ text-align: center;
+ font-size: 21rpx;
+ color: #333333;
+ border: 1rpx solid #d7d7d7;
+ border-radius: 30rpx;
+}
+.details-box .demand .ability-item .head .tag.recommended {
+ color: #fff;
+ background-color: #04b0d5;
+ border-color: #04b0d5;
+}
+.details-box .demand .ability-item .head .tag.required {
+ color: #fff;
+ background-color: #6fc16d;
+ border-color: #6fc16d;
+}
+.details-box .demand .ability-item .description {
+ background-color: #fbfbfb;
+ border-radius: 9rpx;
+ font-size: 24rpx;
+ line-height: 39rpx;
+ color: #333333;
+ padding: 25.5rpx 18rpx;
+}
+.details-box .demand .ability-item .remarks {
+ margin-top: 30rpx;
+ padding-top: 30rpx;
+ border-top: 1rpx dotted #d7d7d7;
+}
+.details-box .demand .ability-item .list .item {
padding: 19.5rpx 15rpx 19.5rpx 42rpx;
position: relative;
+ background-color: #fbfbfb;
+ border-radius: 9rpx;
font-size: 24rpx;
}
-.details-box .demand .list .item .triangle {
+.details-box .demand .ability-item .list .item .triangle {
position: absolute;
- width: 16.5rpx;
- height: 9rpx;
- transform: rotate(-90deg);
- top: 33rpx;
+ width: 12rpx;
+ height: 12rpx;
+ top: 30rpx;
left: 15rpx;
}
-.details-box .demand .list .item:not(:last-of-type) {
+.details-box .demand .ability-item .list .item:not(:last-of-type) {
margin-bottom: 15rpx;
}
-.details-box .demand .list .item .name {
+.details-box .demand .ability-item .list .item .name {
color: #7F7F7F;
margin-bottom: 12rpx;
}
-.details-box .demand .list .item .value {
+.details-box .demand .ability-item .list .item .value {
color: #333333;
}
+.details-box .demand .demand-bottom {
+ height: 75rpx;
+ background-color: rgba(255, 255, 255, 0.98039216);
+ border-radius: 0 0 18rpx 18rpx;
+ position: absolute;
+ left: 0;
+ bottom: 0;
+ width: 100%;
+}
+.details-box .demand .demand-bottom.demandShow .bottom-icon {
+ transform: rotate(270deg);
+}
+.details-box .demand .demand-bottom .bottom-icon {
+ width: 33rpx;
+ height: 33rpx;
+ transform: rotate(90deg);
+ transition: all 0.3s;
+}
.details-box .ranking {
margin-left: 36rpx;
- margin-bottom: 30rpx;
}
.details-box .ranking .item {
background-color: #f6f6f6;
border-radius: 9rpx;
-}
-.details-box .ranking .item:not(:last-of-type) {
margin-bottom: 15rpx;
}
.details-box .ranking .item .rank {
@@ -648,6 +1041,27 @@ navigator {
.details-box .ranking .item .box .itemm .value {
color: #333333;
}
+.details-box .ps {
+ margin-bottom: 30rpx;
+ margin-left: 36rpx;
+ background-color: #ffffff;
+ border: 1rpx solid #ebebeb;
+ border-radius: 9rpx;
+ font-size: 21rpx;
+ padding: 13.5rpx;
+}
+.details-box .ps .title {
+ font-family: 'Arial-Black', 'Arial Black', sans-serif;
+ font-weight: 900;
+ color: #000000;
+ display: inline-flex;
+}
+.details-box .ps .text {
+ font-family: 'PingFangSC-Regular', 'PingFang SC', sans-serif;
+ color: #555555;
+ display: inline;
+ word-break: break-all;
+}
.details-box .pattern {
padding: 30rpx 0;
}
@@ -668,7 +1082,7 @@ navigator {
border-radius: 33rpx;
}
.details-box .pattern .tab .item.pitch {
- background-color: #04b0d5;
+ background-color: #6fc16d;
color: #FFFFFF;
}
.details-box .pattern .introduce {
@@ -840,6 +1254,7 @@ navigator {
color: #555555;
line-height: 51rpx;
padding: 22.5rpx 0;
+ word-break: break-word;
}
.details-box .issue-bj .issue .index {
width: 54rpx;
@@ -952,7 +1367,6 @@ navigator {
padding: 0 12.75rpx;
}
.details-box .course .table-body .list .item.name .english {
- font-family: 'ArialMT', 'Arial', sans-serif;
color: #AAAAAA;
font-size: 21rpx;
padding: 0 12.75rpx;
@@ -1027,13 +1441,14 @@ navigator {
margin-left: 36rpx;
}
.details-box .consult-list .consult-item {
- margin-bottom: 30rpx;
- width: 567rpx;
background-color: #ffffff;
border: 1rpx solid #ebebeb;
border-radius: 18rpx;
padding: 33rpx 18rpx 30rpx 31.5rpx;
}
+.details-box .consult-list .consult-item:not(:last-of-type) {
+ margin-bottom: 30rpx;
+}
.details-box .consult-list .consult-item .school {
font-weight: 650;
font-style: normal;
@@ -1072,6 +1487,7 @@ navigator {
font-family: 'ArialMT', 'Arial', sans-serif;
}
.details-box .consult-list .consult-item .info-xiaobox {
+ width: 519rpx;
height: 69rpx;
background-color: #fbfbfb;
border-radius: 15rpx;
@@ -1096,6 +1512,140 @@ navigator {
border-radius: 50%;
margin-right: 18rpx;
}
+.details-box .consult-more {
+ font-size: 21rpx;
+ color: #555555;
+ line-height: 39rpx;
+ padding-top: 45rpx;
+ padding-bottom: 5rpx;
+}
+.details-box .consult-more .icon {
+ width: 27rpx;
+ height: 27rpx;
+ margin-left: 6rpx;
+}
+.details-box .recommend-list {
+ margin-left: 36rpx;
+}
+.details-box .recommend-list .item {
+ background-color: #ffffff;
+ border: 1rpx solid #ebebeb;
+ border-radius: 18rpx;
+ padding: 36rpx 18rpx 95rpx;
+ position: relative;
+}
+.details-box .recommend-list .item:not(:last-of-type) {
+ margin-bottom: 30rpx;
+}
+.details-box .recommend-list .item .school {
+ font-size: 24rpx;
+ color: #333333;
+ margin-bottom: 18rpx;
+}
+.details-box .recommend-list .item .school .icon {
+ width: 30rpx;
+ height: 30rpx;
+ margin-right: 12rpx;
+}
+.details-box .recommend-list .item .name {
+ font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
+ font-weight: 650;
+ font-size: 33rpx;
+ color: #000000;
+}
+.details-box .recommend-list .item .english {
+ font-size: 21rpx;
+ color: #7F7F7F;
+ margin-top: 12rpx;
+}
+.details-box .recommend-list .item .introduce {
+ font-size: 25.5rpx;
+ color: #555555;
+ margin-top: 15rpx;
+ flex-wrap: wrap;
+}
+.details-box .recommend-list .item .introduce .line {
+ color: #D7D7D7;
+ margin: 0 12rpx;
+}
+.details-box .recommend-list .item .introduce .quantity {
+ font-family: 'Arial', 'Arial-Black', 'Arial Black', sans-serif;
+ font-weight: 900;
+ color: #000000;
+ margin-left: 12rpx;
+}
+.details-box .recommend-list .item .word {
+ font-size: 24rpx;
+ color: #7F7F7F;
+ padding: 10.5rpx 15rpx;
+ background-color: #f6f6f6;
+ border-radius: 7.5rpx;
+ margin-top: 15rpx;
+}
+.details-box .recommend-list .item .tag {
+ flex-wrap: wrap;
+ margin-top: 25rpx;
+}
+.details-box .recommend-list .item .tag .tag-item {
+ height: 36rpx;
+ line-height: 36rpx;
+ font-size: 22.5rpx;
+ color: #858585;
+ padding: 0 10.5rpx;
+ border: 1rpx solid #aaaaaa;
+ border-radius: 6px;
+ width: fit-content;
+ margin-right: 15rpx;
+ margin-bottom: 10rpx;
+}
+.details-box .recommend-list .item .tag .tag-item.admissions {
+ background-color: #73d1e5;
+ border: none;
+ color: #fff;
+}
+.details-box .recommend-list .item .tag .tag-item.gray {
+ border: none;
+ color: #fff;
+ background-color: #333333;
+}
+.details-box .recommend-list .item .tag .tag-item.gray.semester {
+ background-color: #f95d5d;
+}
+.details-box .recommend-list .item .btn {
+ height: 75rpx;
+ background-color: #edf0f4;
+ border-top: 1rpx solid #ebebeb;
+ border-radius: 0 0 18rpx 18rpx;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
+ font-weight: 650;
+ font-size: 24rpx;
+ color: #000000;
+}
+.details-box .recommend-list .item .btn .btn-item {
+ font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
+ font-weight: 650;
+ font-size: 24rpx;
+ position: relative;
+}
+.details-box .recommend-list .item .btn .btn-item:not(:last-of-type)::after {
+ content: "";
+ position: absolute;
+ top: 50%;
+ right: 1rpx;
+ width: 1rpx;
+ height: 31.5rpx;
+ transform: translateY(-50%);
+ background-color: #aaaaaa;
+}
+.details-box .recommend-list .item .btn .btn-item .icon {
+ width: 24rpx;
+ height: 24rpx;
+ margin-right: 9rpx;
+}
.bottom-base {
width: 100vw;
position: fixed;