排行榜上线

This commit is contained in:
DESKTOP-RQ919RC\Pc 2025-03-06 17:41:21 +08:00
parent e177d0db15
commit 808efb9bb4
26 changed files with 183 additions and 331 deletions

1
app.js
View File

@ -1,4 +1,5 @@
//app.js
// common.wxml(1) admission-box.wxml(2) projectDetails.wxml(2) indexSidebar.js(2) projectLibrary.js(2)
var miucms = require('./utils/miucms.js');
// var script = require('./utils/script');
// console.log(script());

View File

@ -39,13 +39,7 @@ Component({
majMajorList: [], // 专业的 专业列表
majYearList: [], // 专业的 年份列表
rankingKey: {
"Shanghai Ranking": "软科",
"Times Higher Education": "泰晤士",
"times": "泰晤士",
"USNEWS": "U.S. News",
"US News": "U.S. News",
},
rankingKey: common.rankingKey,
},
/**
@ -56,8 +50,9 @@ Component({
initCom() {
const option = this.data.comOption || {}
let comJgList = Object.keys(option) || []
const jg = comJgList[0]
let comYearList = Object.keys(option[jg]).sort((a, b) => b - a)
const com = this.data.com
const jg = com.jg || comJgList[0]
const comYearList = Object.keys(option[jg]).sort((a, b) => b - a)
this.setData({
comJgList,
comYearList,

View File

@ -118,6 +118,7 @@
border: 1rpx solid rgba(204, 208, 3, 1);
font-weight: 650;
color: #9A9D02;
background-color: #FFFFFF;
}
}
}

View File

@ -104,6 +104,7 @@
border: 1rpx solid #ccd003;
font-weight: 650;
color: #9A9D02;
background-color: #FFFFFF;
}
.screen-mask .screen-box .footer {
margin-top: 45rpx;

View File

@ -62,19 +62,15 @@ Page({
letterFixed: false,
isFirstPattern: true, // 是否是首屏模式
rankingKey: {
"Shanghai Ranking": "软科",
"Times Higher Education": "泰晤士",
"times": "泰晤士",
"USNEWS": "U.S. News",
"US News": "U.S. News",
},
rankingKey: common.rankingKey,
},
/**
* 生命周期函数--监听页面加载
*/
windowHeight: 0,
totalTopHeight: 0,
onLoad(options) {
miucms.pageStart(app).then(() => {
const screen_data = app.globalData.screen_data
@ -86,6 +82,7 @@ Page({
})
this.windowHeight = screen_data.windowHeight
this.totalTopHeight = screen_data.totalTopHeight
common.xgBasicData(this, app).then(data => {
this.setData({
@ -143,12 +140,20 @@ Page({
initialCount[initial]['sum'] += Object.keys(item.systemObj).length || 0
});
const result = {};
list.forEach(item => {
const firstLetter = item.subject[0].toUpperCase();
if (!result[firstLetter]) {
result[firstLetter] = [];
}
result[firstLetter].push(item);
});
this.setData({
majSum: data.count,
majData: list,
majData: result,
letterList: initialCount,
}, () => {
this.calculateSectionTops()
})
})
},
@ -279,6 +284,12 @@ Page({
this.setData({
classify,
}, () => {
if (classify == "subject" && JSON.stringify(this.sideHeight) == "{}") {
setTimeout(() => {
this.calculateSectionTops()
}, 500)
}
})
},
@ -346,6 +357,7 @@ Page({
let headHeight = screen_data.totalTopHeight || 0
query.select(`.header`).boundingClientRect()
query.select(`.item-header-screen`).boundingClientRect()
query.select(`.item-header-all`).boundingClientRect()
query.select(`.screen`).boundingClientRect()
query.exec(res => {
@ -354,26 +366,27 @@ Page({
res.forEach(element => {
headHeight += element.height
})
headHeight += util.rpxTopx(165)
headHeight += util.rpxTopx(405)
let sideHeight = {}
const letterList = this.data.letterList
let h = util.pxToRpx(headHeight)
for (const key in letterList) {
const element = letterList[key]
let height = 108 * element.initial + 106 * element.sum
sideHeight[key] = util.rpxTopx(h)
h += height
}
const query2 = wx.createSelectorQuery()
query2.selectAll(`.node-item`).boundingClientRect(rect => {
if (!rect) return
let h = headHeight
rect.forEach(element => {
sideHeight[element.id] = h
h += element.height
})
this.sideHeight = sideHeight
}).exec();
})
},
// 点击字母跳转
jumpToIndex(e) {
const key = e.currentTarget.dataset.key
const sideHeight = this.sideHeight
wx.pageScrollTo({
scrollTop: sideHeight[key],
offsetTop: -this.totalTopHeight,
selector: `.major .list .item${ key }`,
})
},
@ -387,7 +400,7 @@ Page({
// 对键数组进行倒序排列
let closestValue = keys.reduce((acc, key) => {
const diff = sideHeight[key] - scrollTop;
if (diff <= 5) return key
if (diff <= this.totalTopHeight + 20) return key
return acc;
}, null);
@ -413,44 +426,32 @@ Page({
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
onReady() {},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
onShow() {},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
onHide() {},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
onUnload() {},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
onPullDownRefresh() {},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
onReachBottom() {},
/**
* 用户点击右上角分享

View File

@ -121,7 +121,6 @@ view {
border-radius: 0 0 15rpx 15rpx;
.classify {
padding-top: 21rpx;
font-size: 30rpx;
color: #555555;
height: 109.5rpx;
@ -135,10 +134,19 @@ view {
.classify-item {
justify-content: center;
position: relative;
padding-top: 21rpx;
.extension {
position: absolute;
top: -25rpx;
left: 0;
width: 100%;
height: 100%;
}
.pitch {
position: absolute;
top: -28rpx;
top: -7rpx;
left: 0;
width: 375rpx;
height: 90rpx;
@ -299,6 +307,10 @@ view {
z-index: 1;
}
.node-item {
padding-bottom: 76rpx;
}
.item {
&:not(:last-of-type) {
margin-bottom: 76rpx;
@ -459,131 +471,5 @@ view {
}
}
}
}
.screen-mask {
width: 100vw;
height: 100vh;
background-color: rgba(0, 0, 0, 0.705882352941177);
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
display: flex;
align-items: flex-end;
z-index: 100;
.screen-box {
width: 100vw;
background-color: #FFFFFF;
padding-top: 43.5rpx;
border-radius: 45rpx 45rpx 0 0;
.head {
font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
font-weight: 650;
font-size: 30rpx;
color: #000000;
margin-bottom: 45rpx;
text-align: center;
}
.box {
margin: 0 22.5rpx 30rpx;
background-color: rgba(251, 251, 251, 1);
border: 1rpx solid rgba(242, 242, 242, 1);
border-radius: 15rpx;
padding: 16.5rpx 18rpx 30rpx 18rpx;
.title {
font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
font-weight: 650;
font-size: 27rpx;
color: #000000;
margin-bottom: 45rpx;
}
.major-box {
height: 72rpx;
line-height: 72rpx;
background-color: rgba(255, 255, 255, 1);
border: 1rpx solid rgba(204, 208, 3, 1);
border-radius: 112.5rpx;
padding-left: 30rpx;
padding-right: 22.5rpx;
.text {
font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
font-weight: 650;
font-size: 24rpx;
color: #9A9D02;
&.text-no {
color: #AAAAAA;
font-weight: 400;
}
}
.icon {
width: 10.5rpx;
height: 18rpx;
}
}
.list {
flex-wrap: wrap;
.item {
min-width: 150rpx;
height: 72rpx;
line-height: 72rpx;
background-color: rgba(246, 246, 246, 1);
border-radius: 112.5rpx;
font-size: 24rpx;
color: #555555;
margin-right: 15rpx;
padding: 0 15rpx;
margin-bottom: 10rpx;
&.pitch {
border: 1rpx solid rgba(204, 208, 3, 1);
font-weight: 650;
color: #9A9D02;
}
}
}
}
.footer {
margin-top: 45rpx;
height: 201rpx;
border-top: 1rpx solid #ebebeb;
justify-content: space-between;
font-size: 30rpx;
padding: 45rpx 30rpx 0 30rpx;
.cancel {
width: 225rpx;
height: 96rpx;
background-color: rgba(207, 247, 255, 0);
border: 1rpx solid rgba(215, 215, 215, 1);
border-radius: 112.5rpx;
color: #555555;
}
.confirm {
width: 435rpx;
height: 96rpx;
font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
font-weight: 650;
color: #026277;
background-color: rgba(207, 247, 255, 1);
border: 1rpx solid rgba(186, 222, 230, 1);
border-radius: 112.5rpx;
}
}
}
}
}

View File

@ -31,7 +31,7 @@
</view>
</view>
<view class="item-header flexacenter">
<view class="item-header item-header-all flexacenter">
<view class="greenDot"></view>
全部榜单
</view>
@ -48,7 +48,10 @@
综合排名
</view>
</view>
<block wx:else>综合排名</block>
<block wx:else>
<view class="extension"></view>
综合排名
</block>
</view>
<view class="classify-item flexflex flex1" bind:tap="cutClassify" data-type="subject">
<view class="pitch right" wx:if="{{ classify == 'subject' }}">
@ -60,7 +63,10 @@
专业排名
</view>
</view>
<block wx:else>专业排名</block>
<block wx:else>
<view class="extension"></view>
专业排名
</block>
</view>
</view>
@ -82,16 +88,17 @@
<view wx:else class="major">
<view class="total">共{{ majSum }}个专业排名榜单</view>
<view class="letter">
<view class="item {{ letterKey == index ? 'pitch' : '' }}" wx:for="{{ letterList }}" bind:tap="jumpToIndex" wx:key="index" data-key="{{ index }}">{{ index }}</view>
<view class="item {{ letterKey == index ? 'pitch' : '' }}" wx:for="{{ letterList }}" wx:key="index" bind:tap="jumpToIndex" data-key="{{ index }}">{{ index }}</view>
</view>
<view class="list">
<view wx:if="{{ majPitch.major }}" class="mask" bind:tap="closeYear"></view>
<view class="item {{ item.initial ? 'item-initial' : '' }}" wx:for="{{ majData }}" wx:key="index" data-letter="{{ item.initial }}">
<view class="node-item" id="{{ indexx }}" wx:for="{{ majData }}" wx:for-index="indexx" wx:for-item="itemm">
<view class="item {{ item.initial ? 'item' + item.initial : '' }}" wx:for="{{ itemm }}" wx:key="index" data-letter="{{ item.initial }}">
<view class="title">{{ item.subject }}</view>
<view class="organ">
<view class="organ-item flexacenter" wx:for="{{ item.systemObj }}" wx:for-item="ite" wx:for-index="ii" wx:key="ii">
<view class="spot"></view>
<view class="name">{{ rankingskeyVlaue[ii].name || '' }}</view>
<view class="name">{{ rankingKey[ii] || ii || '' }}</view>
<view class="select-box {{ ( majPitch.major == item.subject && majPitch.organ == ii ) ? 'show' : ''}}">
<view catch:tap="openYear" data-major="{{ item.subject }}" data-organ="{{ ii }}" data-value="{{ ite.show }}" class="select flexacenter">
<view class="text">请选择年份</view>
@ -105,6 +112,7 @@
</view>
</view>
</view>
</view>
<view class="end">- End -</view>
</view>
</view>

View File

@ -101,7 +101,6 @@ view {
border-radius: 0 0 15rpx 15rpx;
}
.container .all .classify {
padding-top: 21rpx;
font-size: 30rpx;
color: #555555;
height: 109.5rpx;
@ -115,10 +114,18 @@ view {
.container .all .classify .classify-item {
justify-content: center;
position: relative;
padding-top: 21rpx;
}
.container .all .classify .classify-item .extension {
position: absolute;
top: -25rpx;
left: 0;
width: 100%;
height: 100%;
}
.container .all .classify .classify-item .pitch {
position: absolute;
top: -28rpx;
top: -7rpx;
left: 0;
width: 375rpx;
height: 90rpx;
@ -240,6 +247,9 @@ view {
left: 0;
z-index: 1;
}
.container .all .major .list .node-item {
padding-bottom: 76rpx;
}
.container .all .major .list .item:not(:last-of-type) {
margin-bottom: 76rpx;
}
@ -370,111 +380,3 @@ view {
line-height: 39rpx;
font-family: 'PingFangSC-Regular', 'PingFang SC', sans-serif;
}
.container .screen-mask {
background-color: rgba(0, 0, 0, 0.70588235);
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
display: flex;
align-items: flex-end;
z-index: 100;
}
.container .screen-mask .screen-box {
width: 100vw;
background-color: #FFFFFF;
padding-top: 43.5rpx;
border-radius: 45rpx 45rpx 0 0;
}
.container .screen-mask .screen-box .head {
font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
font-weight: 650;
font-size: 30rpx;
color: #000000;
margin-bottom: 45rpx;
text-align: center;
}
.container .screen-mask .screen-box .box {
margin: 0 22.5rpx 30rpx;
background-color: #fbfbfb;
border: 1rpx solid #f2f2f2;
border-radius: 15rpx;
padding: 16.5rpx 18rpx 30rpx 18rpx;
}
.container .screen-mask .screen-box .box .title {
font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
font-weight: 650;
font-size: 27rpx;
color: #000000;
margin-bottom: 45rpx;
}
.container .screen-mask .screen-box .box .major-box {
height: 72rpx;
line-height: 72rpx;
background-color: #ffffff;
border: 1rpx solid #ccd003;
border-radius: 112.5rpx;
padding-left: 30rpx;
padding-right: 22.5rpx;
}
.container .screen-mask .screen-box .box .major-box .text {
font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
font-weight: 650;
font-size: 24rpx;
color: #9A9D02;
}
.container .screen-mask .screen-box .box .major-box .text.text-no {
color: #AAAAAA;
font-weight: 400;
}
.container .screen-mask .screen-box .box .major-box .icon {
width: 10.5rpx;
height: 18rpx;
}
.container .screen-mask .screen-box .box .list {
flex-wrap: wrap;
}
.container .screen-mask .screen-box .box .list .item {
min-width: 150rpx;
height: 72rpx;
line-height: 72rpx;
background-color: #f6f6f6;
border-radius: 112.5rpx;
font-size: 24rpx;
color: #555555;
margin-right: 15rpx;
padding: 0 15rpx;
margin-bottom: 10rpx;
}
.container .screen-mask .screen-box .box .list .item.pitch {
border: 1rpx solid #ccd003;
font-weight: 650;
color: #9A9D02;
}
.container .screen-mask .screen-box .footer {
margin-top: 45rpx;
height: 201rpx;
border-top: 1rpx solid #ebebeb;
justify-content: space-between;
font-size: 30rpx;
padding: 45rpx 30rpx 0 30rpx;
}
.container .screen-mask .screen-box .footer .cancel {
width: 225rpx;
height: 96rpx;
background-color: rgba(207, 247, 255, 0);
border: 1rpx solid #d7d7d7;
border-radius: 112.5rpx;
color: #555555;
}
.container .screen-mask .screen-box .footer .confirm {
width: 435rpx;
height: 96rpx;
font-family: 'PingFangSC-Semibold', 'PingFang SC Semibold', 'PingFang SC', sans-serif;
font-weight: 650;
color: #026277;
background-color: #cff7ff;
border: 1rpx solid #badee6;
border-radius: 112.5rpx;
}

View File

@ -48,6 +48,7 @@ Page({
projectList: [],
projectPitch: {},
projectValue: {},
rankingKey: common.rankingKey,
},
/**

View File

@ -34,7 +34,7 @@
<view class="lump">
<view class="title">专业排名</view>
<view class="ranking-title flexcenter" bind:tap="openSelectRank" data-type="rank">
{{ projectPitch.system }}世界专业排名({{ projectPitch.year }})
{{ rankingKey[projectPitch.system] || projectPitch.system }}世界专业排名({{ projectPitch.year }})
<image class="icon" src="https://app.gter.net/image/miniApp/offer/triangle-red.svg" mode="widthFix"></image>
</view>
<view class="block flexflex">
@ -47,7 +47,7 @@
<view class="lump">
<view class="title">学校排名</view>
<view class="ranking-title flexcenter" bind:tap="openSelectRank" data-type="schoolrank">
{{ schoolPitch.system }}世界综合排名({{ schoolPitch .year }})
{{ rankingKey[schoolPitch.system] || schoolPitch.system }}世界综合排名({{ schoolPitch .year }})
<image class="icon" src="https://app.gter.net/image/miniApp/offer/triangle-red.svg" mode="widthFix"></image>
</view>
<view class="block flexflex">
@ -324,7 +324,7 @@
<view class="item flexacenter {{ (selectType == 'rank' && item.system == projectPitch.system && item.year == projectPitch.year) || (selectType == 'schoolrank' && item.system == schoolPitch.system && item.year == schoolPitch.year) ? 'pitch' : '' }}" wx:for="{{ selectType == 'rank' ? projectList : schoolList }}" catch:tap="handleSelectType" data-index="{{ index }}">
<view class="dot"></view>
<view class="content flex1 flexacenter">
<view class="text flex1">{{ item.system }}世界专业排名({{ item.year }}年)</view>
<view class="text flex1">{{ rankingKey[item.system] || item.system }}世界{{ selectType == 'rank' ? '专业' : '综合' }}排名({{ item.year }}年)</view>
<image class="img" src="https://app.gter.net/image/miniApp/offer/tick-red.svg" mode="widthFix"></image>
</view>
</view>

View File

@ -103,6 +103,7 @@ Page({
answerquestions: [],
quickAnswerState: false,
rankingKey: common.rankingKey,
},

View File

@ -104,7 +104,8 @@
<view class="item flex1" wx:for="{{ info.rankings }}" wx:key="index" bind:tap="goProjectList" data-index="{{ index }}">
<view class="quantity">{{ item.rank }}</view>
<view class="ranking-name">
{{ rankingsObj[item.system].name }}
<!-- {{ rankingsObj[item.system].name }} -->
{{ rankingKey[item.system] || item.system }}
<image wx:if="{{ item.system == 'QS' }}" class="ranking-icon" src="https://app.gter.net/image/miniApp/offer/triangle-QS.svg" mode="widthFix"></image>
<image wx:if="{{ item.system == 'Times Higher Education' }}" class="ranking-icon" src="https://app.gter.net/image/miniApp/offer/triangle-TIMES.svg" mode="widthFix"></image>
<image wx:if="{{ item.system == 'U.S. News' }}" class="ranking-icon" src="https://app.gter.net/image/miniApp/offer/triangle-US-News.svg" mode="widthFix"></image>
@ -166,7 +167,7 @@
<image wx:if="{{ item.system == 'Times Higher Education' }}" class="triangle" src="https://app.gter.net/image/miniApp/offer/triangle-ti.svg" mode="widthFix"></image>
<image wx:if="{{ item.system == 'U.S. News' }}" class="triangle" src="https://app.gter.net/image/miniApp/offer/triangle-us.svg" mode="widthFix"></image>
</view>
<view class="name">{{ rankingsObj[item.system].name }}</view>
<view class="name"> {{ rankingKey[item.system] || item.system }}</view>
</view>
<view class="box flex1">
<view class="itemm flexacenter">

View File

@ -36,6 +36,7 @@ Page({
swiperHeightList: {}, // 轮播图高度
swiperCurrent: 0, // 轮播图下标
rankingList: [],
rankingKey: common.rankingKey,
},
@ -805,7 +806,6 @@ Page({
element['mechanism'] = this.rankingsObj[element.mechanism]?.name || element.mechanism
})
let arr = [data.slice(0, 5), data.slice(5, 10), data.slice(10, 15)]
console.log("arr", arr);
this.setData({
rankingList: arr
})

View File

@ -126,6 +126,14 @@ view {
justify-content: center;
position: relative;
.extension {
position: absolute;
top: -25rpx;
left: 0;
width: 100%;
height: 100%;
}
.pitch {
position: absolute;
top: -28rpx;

View File

@ -44,14 +44,20 @@
<image class="icon" src="https://app.gter.net/image/miniApp/offer/classify-left-icon.svg"></image>
<view class="text">按学校查看</view>
</view>
<block wx:else>按学校查看</block>
<block wx:else>
<view class="extension"></view>
按学校查看
</block>
</view>
<view class="classify-item flexflex flex1" bind:tap="cutClassify" data-type="subject">
<view class="pitch right" wx:if="{{ classify == 'subject' }}">
<image class="icon" src="https://app.gter.net/image/miniApp/offer/classify-right-icon.svg"></image>
<view class="text">按学科查看</view>
</view>
<block wx:else>按学科查看</block>
<block wx:else>
<view class="extension"></view>
按学科查看
</block>
</view>
</view>
<view class="school-list list" wx:if="{{ classify == 'school' }}">
@ -171,12 +177,12 @@
<view class="item flexacenter" wx:for="{{ item }}" wx:for-index="i" wx:key="i" bind:tap="handRanking" data-index="{{ index }}" data-i="{{ i }}">
<view class="spot"></view>
<view wx:if="{{ item.type == 'major' }}" class="content1 flexacenter flex1">
<view class="name">{{ item.mechanism }}</view>
<view class="name">{{ rankingKey[item.mechanism] || item.mechanism }}</view>
<image class="icon" src="https://app.gter.net/image/miniApp/offer/arrows-circle-green.svg" mode="widthFix"></image>
<view class="text one-line-display">{{ item.subject }}</view>
<view class="year">({{ item.year }}年)</view>
</view>
<view wx:else class="content2 one-line-display flexacenter">{{ item.mechanism }}世界综合排名({{ item.year }}年)</view>
<view wx:else class="content2 one-line-display flexacenter">{{ rankingKey[item.mechanism] || item.mechanism }}世界综合排名({{ item.year }}年)</view>
</view>
</view>
</swiper-item>

View File

@ -110,6 +110,13 @@ view {
justify-content: center;
position: relative;
}
.select .classify .classify-item .extension {
position: absolute;
top: -25rpx;
left: 0;
width: 100%;
height: 100%;
}
.select .classify .classify-item .pitch {
position: absolute;
top: -28rpx;

View File

@ -38,13 +38,8 @@ Page({
majTotal: 0,
majDefault: {},
rankingKey: {
"Shanghai Ranking": "软科",
"Times Higher Education": "泰晤士",
"times": "泰晤士",
"USNEWS": "U.S. News",
"US News": "U.S. News",
},
rankingKey: common.rankingKey,
},
/**
@ -75,7 +70,7 @@ Page({
}
if (['subject', 'school'].includes(options.type)) {
const isSubject = options.type === 'subject';
const targetKey = isSubject ? 'majDefault' : 'comDefault';
const targetKey = isSubject ? 'maj' : 'com';
const source = this.data[targetKey] || (isSubject ? {} : this.data.com);
let updates = {
jg: this.decodeKey(isSubject ? options.system : options.mechanism) || '',

View File

@ -110,7 +110,7 @@ view {
color: #000000;
.major-pitch-text {
max-width: 80vw;
max-width: 75vw;
}
&::after {

View File

@ -96,7 +96,7 @@ view {
color: #000000;
}
.chunk .pitch-on.major-pitch .major-pitch-text {
max-width: 80vw;
max-width: 75vw;
}
.chunk .pitch-on.major-pitch::after {
content: "";

View File

@ -44,6 +44,14 @@ view {
justify-content: center;
position: relative;
.extension {
position: absolute;
top: -25rpx;
left: 0;
width: 100%;
height: 100%;
}
.pitch {
position: absolute;
top: -26rpx;

View File

@ -17,7 +17,10 @@
项目对比
</view>
</view>
<block wx:else>项目对比</block>
<block wx:else>
<view class="extension"></view>
项目对比
</block>
</view>
<view class="classify-item flexflex flex1" bind:tap="cutClassify" data-type="manage">
<view class="pitch right" wx:if="{{ classify == 'manage' }}">
@ -27,7 +30,10 @@
项目管理
</view>
</view>
<block wx:else>项目管理</block>
<block wx:else>
<view class="extension"></view>
项目管理
</block>
</view>
</view>

View File

@ -38,6 +38,13 @@ view {
justify-content: center;
position: relative;
}
.classify .classify-item .extension {
position: absolute;
top: -25rpx;
left: 0;
width: 100%;
height: 100%;
}
.classify .classify-item .pitch {
position: absolute;
top: -26rpx;

View File

@ -57,6 +57,7 @@ Page({
isInitFinish: false,
user: {},
rankingKey: common.rankingKey,
},
/**

View File

@ -19,7 +19,7 @@
<view class="item" wx:for="{{ info.ranks }}" wx:key="index" bind:tap="goProjectList" data-index="{{ index }}">
<view class="quantity">{{ item.ranktext }}</view>
<view class="ranking-name">
{{ item.mechanism }}
{{ rankingKey[item.mechanism] || item.mechanism }}
<image wx:if="{{ item.mechanism == 'QS' }}" class="ranking-icon" mode="widthFix" src="https://app.gter.net/image/miniApp/offer/triangle-QS.svg"></image>
<image wx:if="{{ item.mechanism == '泰晤士' }}" class="ranking-icon" mode="widthFix" src="https://app.gter.net/image/miniApp/offer/triangle-TIMES.svg"></image>
<image wx:if="{{ item.mechanism == 'USNEWS' }}" class="ranking-icon" mode="widthFix" src="https://app.gter.net/image/miniApp/offer/triangle-US-News.svg"></image>

View File

@ -2,12 +2,19 @@
"description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
"projectname": "%E5%B0%8F%E7%A8%8B%E5%BA%8F%20-%20%E9%A1%B9%E7%9B%AE%E5%BA%93",
"setting": {
"compileHotReLoad": true,
"compileHotReLoad": false,
"urlCheck": true
},
"condition": {
"miniprogram": {
"list": [
{
"name": "pages/projectDetails/projectDetails",
"pathName": "pages/projectDetails/projectDetails",
"query": "uniqid=XCu0SzLXGK1O",
"launchMode": "default",
"scene": null
},
{
"name": "pages/projectList/projectList",
"pathName": "pages/projectList/projectList",

View File

@ -127,6 +127,14 @@ const scoresList = scores => {
.filter(item => item !== null)
}
const rankingKey = {
"Shanghai Ranking": "软科",
"Times Higher Education": "泰晤士",
"times": "泰晤士",
"USNEWS": "U.S. News",
"US News": "U.S. News",
}
module.exports = {
getOfferAdDetails,
goPage,
@ -135,4 +143,5 @@ module.exports = {
formatNumberWithSpaces,
decodeKey,
scoresList,
rankingKey,
}