修改招生官样式和今日缘分样式

This commit is contained in:
A1300399510 2025-01-21 19:05:54 +08:00
parent 758429fb9d
commit 7fd77636f0
13 changed files with 667 additions and 300 deletions

View File

@ -1,6 +1,6 @@
// template/admission-box/admission-box.js
var miucms = require('../../utils/miucms.js');
var common = require('../../utils/commonMethod.js');
var miucms = require("../../utils/miucms.js")
var common = require("../../utils/commonMethod.js")
const util = require("../../utils/util")
const app = getApp()
Component({
@ -12,8 +12,8 @@ Component({
type: Boolean,
value: false,
observer(res) {
if (res) this.getAdmissionsOfficer()
}
this.getAdmissionsOfficer()
},
},
isShow: {
type: Boolean,
@ -26,17 +26,19 @@ Component({
*/
data: {
urls: [],
mold: 3,
countdownInterval: null,
countDown: {
days: 0,
hours: '00',
minutes: '00',
seconds: '00',
hours: "00",
minutes: "00",
seconds: "00",
},
admissionCurrent: 0,
countDownState: false,
},
/**
@ -44,54 +46,64 @@ Component({
*/
methods: {
getAdmissionsOfficer() {
util.wxget('/api/project.other/admissionOfficerIn').then(res => {
util.wxget("/api/project.other/admissionOfficerIn").then(res => {
if (res.code != 200) return
const data = res.data || []
const today = new Date()
today.setHours(0, 0, 0, 0)
let list = []
for (var i in data) {
const item = data[i];
const item = data[i]
for (var ii in item) {
const ite = item[ii];
const ite = item[ii]
list.push(...ite)
}
}
let urls = []
console.log("list", list);
list.forEach(element => {
element.urls.forEach(ele => {
urls.push({
...ele,
logo: element.schoollogo
logo: element.schoollogo,
})
})
})
urls.sort((a, b) => b.rank - a.rank);
// console.log("urls", urls);
// urls[0]['date'] = "2025-01-20 15:35"
urls.sort((a, b) => b.rank - a.rank)
urls.forEach(element => {
let mold = null
let timestamp = ""
if (!element.date || (typeof element.date == 'string' && element.date.indexOf("答疑") >= 0)) mold = 3;
if (!element.date || (typeof element.date == "string" && element.date.indexOf("答疑") >= 0)) mold = 3
else {
const date = new Date(element.date);
const date = new Date(element.date)
if (!isNaN(date.getTime())) {
if (date >= today) mold = 1
else mold = 2
// if (Date.now() < date.getTime()) timestamp = date.getTime() - Date.now()
if (Date.now() < date.getTime()) timestamp = true
} else mold = 3
}
element['mold'] = mold
element['timestamp'] = timestamp
element["mold"] = mold
element["timestamp"] = timestamp
})
urls = urls.filter(item => item.timestamp);
console.log("urls", urls);
urls.push({
mold: 4,
timestamp: "",
})
this.setData({
urls,
})
this.calculateIndicator()
if (urls.length != 0) this.setCountDown(0)
@ -131,18 +143,23 @@ Component({
bindanimationfinish(e) {
const current = e.detail.current || 0
const urls = this.data.urls
this.setData({
admissionCurrent: current
admissionCurrent: current,
mold: urls[current]['mold'],
})
// console.log("current", urls[current]);
this.setCountDown(current)
this.calculateIndicator(current)
},
setCountDown(index) {
const urls = this.data.urls
clearTimeout(this.data.countdownInterval);
if (urls[index]['timestamp']) this.startCountdown(urls[index]['date'])
clearTimeout(this.data.countdownInterval)
if (urls[index]["timestamp"]) this.startCountdown(urls[index]["date"])
else {
this.setData({
countDownState: false,
@ -151,7 +168,7 @@ Component({
},
startCountdown(date) {
clearTimeout(this.data.countdownInterval);
clearTimeout(this.data.countdownInterval)
if (!this.data.isShow) return
const newTime = new Date().getTime()
const dateTime = new Date(date).getTime()
@ -162,26 +179,34 @@ Component({
})
return
}
const days = Math.floor(timer / (24 * 60 * 60 * 1000));
const hours = Math.floor((timer % (24 * 60 * 60 * 1000)) / (60 * 60 * 1000));
const minutes = Math.floor((timer % (60 * 60 * 1000)) / (60 * 1000));
const seconds = Math.floor(timer % (60 * 1000) / 1000);
const days = Math.floor(timer / (24 * 60 * 60 * 1000))
const hours = Math.floor((timer % (24 * 60 * 60 * 1000)) / (60 * 60 * 1000))
const minutes = Math.floor((timer % (60 * 60 * 1000)) / (60 * 1000))
const seconds = Math.floor((timer % (60 * 1000)) / 1000)
this.setData({
countDown: {
days,
hours: hours.toString().padStart(2, '0'),
minutes: minutes.toString().padStart(2, '0'),
seconds: seconds.toString().padStart(2, '0'),
hours: hours.toString().padStart(2, "0"),
minutes: minutes.toString().padStart(2, "0"),
seconds: seconds.toString().padStart(2, "0"),
},
countDownState: true,
});
})
timer = timer - 1000
if (timer > 0) this.data.countdownInterval = setTimeout(() => this.startCountdown(date), 1000)
},
goPage(e) {
clearTimeout(this.data.countdownInterval)
const url = e.currentTarget.dataset.url
common.goPage(url)
},
}
cutQuickAnswer() {
this.setData({
quickAnswerState: !this.data.quickAnswerState
})
},
},
})

View File

@ -30,14 +30,22 @@
.admission-box {
box-sizing: border-box;
background: linear-gradient(-78.6688125977936deg, rgba(207, 247, 255, 1) -12%, rgba(239, 240, 209, 1) 45%, rgba(207, 247, 255, 1) 155%);
// background: linear-gradient(-78.6688125977936deg, rgba(207, 247, 255, 1) -12%, rgba(239, 240, 209, 1) 45%, rgba(207, 247, 255, 1) 155%);
background: linear-gradient(-73.0773379882089deg, rgba(193, 241, 254, 1) 0%, rgba(218, 247, 251, 1) 48%, rgba(174, 228, 251, 1) 100%);
border: none;
border-radius: 24rpx;
padding: 12rpx 15rpx 0;
// padding: 12rpx 15rpx 0;
margin: 0 22.5rpx 30rpx;
height: 234.5rpx;
position: relative;
.head {
margin-bottom: 9rpx;
position: absolute;
top: 12rpx;
left: 0;
width: 100%;
padding: 0 15rpx;
.icon {
width: 230rpx;
@ -98,8 +106,7 @@
width: 38rpx;
height: 38rpx;
margin: 0 5rpx;
background-color: rgba(2, 98, 119, 1);
background-color: rgba(249, 93, 93, 1);
background-color: rgba(245, 154, 35, 1);
border-radius: 19.5rpx;
font-size: 21rpx;
color: #FFFFFF;
@ -109,13 +116,30 @@
}
.content {
background-color: rgba(255, 255, 255, 1);
border-radius: 18rpx;
height: 120rpx;
// background-color: rgba(255, 255, 255, 1);
// border-radius: 18rpx;
// height: 120rpx;
height: 100%;
position: relative;
z-index: 1;
.more {
width: 100rpx;
height: 100rpx;
position: absolute;
top: 12rpx;
right: 15rpx;
height: 39rpx;
}
.item {
position: relative;
padding-left: 16.5rpx;
background-color: rgba(255, 255, 255, 1);
width: 100%;
height: 120rpx;
margin: 0 15rpx;
border-radius: 18rpx;
.schoolimg-box {
width: 60rpx;
@ -146,9 +170,13 @@
.indicator-box {
height: 55rpx;
padding: 20rpx 0;
position: relative;
position: absolute;
display: flex;
justify-content: center;
bottom: -8rpx;
left: 50%;
transform: translateX(-50%);
z-index: 1;
}
.indicator {
@ -194,4 +222,53 @@
vertical-align: middle;
margin-right: 16.5rpx;
margin-bottom: 5rpx;
}
.quick-answer {
height: 214.5rpx;
height: 234.5rpx;
border-radius: 24rpx;
}
.quick-answer-pop {
display: flex;
flex-direction: column;
background-color: rgba(0, 0, 0, 0.705882352941177);
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
z-index: 101;
animation: slideUp 0.3s forwards;
@keyframes slideUp {
0% {
top: 100%;
}
100% {
top: 0;
}
}
.quick-answer-box {
.quick-answer-img {
width: 100vw;
height: 1096.5rpx;
position: absolute;
bottom: 0;
left: 0;
border-radius: 35rpx;
}
.quick-answer-icon {
width: 270rpx;
height: 270rpx;
position: absolute;
left: 50%;
transform: translateX(-50%);
bottom: 260rpx;
}
}
}

View File

@ -1,9 +1,9 @@
<!--template/admission-box/admission-box.wxml-->
<view class="admission-box" wx:if="{{ urls.length != 0 }}">
<view class="head flexacenter">
<image class="icon" src="https://app.gter.net/image/miniApp/offer/talk-live-index-icon.png" mode="widthFix"></image>
<view class="head flexacenter" wx:if="{{ urls.length > 1 }}">
<image class="icon" src="https://app.gter.net/image/miniApp/offer/talk-live-index-icon-black.png" mode="widthFix"></image>
<view class="text flexcenter">
<image class="bj" src="https://app.gter.net/image/miniApp/offer/rhomboid-icon.svg" mode="heightFix"></image>
<image class="bj" src="https://app.gter.net/image/miniApp/offer/rhomboid-icon-blue-grey.svg" mode="heightFix"></image>
招生官为你答疑
</view>
<view class="operate flex1">
@ -13,7 +13,7 @@
<view class="item flexcenter">{{ countDown.minutes }}</view>:
<view class="item flexcenter">{{ countDown.seconds }}</view>
</view>
<navigator wx:else target="miniProgram" app-id="wxa9296b07391c2bc7" path="/pages/admissionList/admissionList" hover-class="none" class="more flexacenter">
<navigator wx:else target="miniProgram" app-id="wxa9296b07391c2bc7" url="/pages/admissionList/admissionList" hover-class="none" class="more flexacenter">
more
<image class="icon" src="https://app.gter.net/image/miniApp/offer/arrows-circle-dark-blue.svg"></image>
</navigator>
@ -22,23 +22,35 @@
<swiper class="content" autoplay="{{ true }}" bindanimationfinish="bindanimationfinish" circular="{{ true }}">
<swiper-item class="flexacenter" wx:for="{{ urls }}" wx:key="index">
<view class="item flexacenter" bind:tap="goPage" data-url="/pages/webview/webview?url={{ item.url }}">
<view class="schoolimg-box flexcenter">
<image class="schoolimg" src="{{ item.logo }}" mode="heightFix"></image>
<image wx:if="{{ item.mold == 4 }}" class="quick-answer" src="https://app.gter.net/image/miniApp/offer/quick-answer.png" mode="heightFix" bind:tap="cutQuickAnswer"></image>
<block wx:else>
<navigator class="more" wx:if="{{ !countDownState }}" target="miniProgram" app-id="wxa9296b07391c2bc7" url="/pages/admissionList/admissionList" hover-class="none"></navigator>
<view class="item flexacenter" bind:tap="goPage" data-url="/pages/webview/webview?url={{ item.url }}">
<view class="schoolimg-box flexcenter">
<image class="schoolimg" src="{{ item.logo }}" mode="heightFix"></image>
</view>
<view class="title flex1">
<image wx:if="{{ item.mold == 1 }}" class="admissionState" src="https://app.gter.net/image/miniApp/offer/about-start1.png" mode="widthFix"></image>
<image wx:elif="{{ item.mold == 2 }}" class="admissionState" src="https://app.gter.net/image/miniApp/offer/answer-collation.png" mode="widthFix"></image>
<image wx:else class="admissionState" src="https://app.gter.net/image/miniApp/offer/answer-questions.png" mode="widthFix"></image>
{{ item.title }}
</view>
</view>
<view class="title flex1">
<image wx:if="{{ item.mold == 1 }}" class="admissionState" src="https://app.gter.net/image/miniApp/offer/about-start.png" mode="widthFix"></image>
<image wx:elif="{{ item.mold == 2 }}" class="admissionState" src="https://app.gter.net/image/miniApp/offer/answer-collation.png" mode="widthFix"></image>
<image wx:else class="admissionState" src="https://app.gter.net/image/miniApp/offer/answer-questions.png" mode="widthFix"></image>
{{ item.title }}
</view>
</view>
</block>
</swiper-item>
</swiper>
<view class="indicator-box">
<view class="indicator-box" wx:if="{{ urls.length > 1 }}">
<view class="indicator flexcenter">
<view class="item {{ item.current == 2 ? 'pitch' : '' }} {{ item.current == 1 ? 'tiny1' : '' }} {{ item.current == 0 ? 'tiny' : '' }}" wx:for="{{ urls }}" wx:key="index"></view>
</view>
</view>
</view>
<view class="quick-answer-pop" wx:if="{{ quickAnswerState }}" catch:touchmove="return" bind:tap="cutQuickAnswer">
<view class="quick-answer-box" catch:tap="return">
<image class="quick-answer-img" src="https://app.gter.net/image/miniApp/offer/quick-answer-pop.png" mode="widthFix"></image>
<image class="quick-answer-icon" show-menu-by-longpress src="https://u.gter.net/assistantwxqrcode.png" mode="widthFix"></image>
</view>
</view>

View File

@ -24,14 +24,20 @@
}
.admission-box {
box-sizing: border-box;
background: linear-gradient(-78.6688126deg, #cff7ff -12%, #eff0d1 45%, #cff7ff 155%);
background: linear-gradient(-73.07733799deg, #c1f1fe 0%, #daf7fb 48%, #aee4fb 100%);
border: none;
border-radius: 24rpx;
padding: 12rpx 15rpx 0;
margin: 0 22.5rpx 30rpx;
height: 234.5rpx;
position: relative;
}
.admission-box .head {
margin-bottom: 9rpx;
position: absolute;
top: 12rpx;
left: 0;
width: 100%;
padding: 0 15rpx;
}
.admission-box .head .icon {
width: 230rpx;
@ -87,20 +93,32 @@
width: 38rpx;
height: 38rpx;
margin: 0 5rpx;
background-color: #026277;
background-color: #f95d5d;
background-color: #f59a23;
border-radius: 19.5rpx;
font-size: 21rpx;
color: #FFFFFF;
}
.admission-box .content {
background-color: #ffffff;
border-radius: 18rpx;
height: 120rpx;
height: 100%;
position: relative;
z-index: 1;
}
.admission-box .content .more {
width: 100rpx;
height: 100rpx;
position: absolute;
top: 12rpx;
right: 15rpx;
height: 39rpx;
}
.admission-box .content .item {
position: relative;
padding-left: 16.5rpx;
background-color: #ffffff;
width: 100%;
height: 120rpx;
margin: 0 15rpx;
border-radius: 18rpx;
}
.admission-box .content .item .schoolimg-box {
width: 60rpx;
@ -126,9 +144,13 @@
.admission-box .indicator-box {
height: 55rpx;
padding: 20rpx 0;
position: relative;
position: absolute;
display: flex;
justify-content: center;
bottom: -8rpx;
left: 50%;
transform: translateX(-50%);
z-index: 1;
}
.admission-box .indicator {
position: absolute;
@ -167,3 +189,44 @@
margin-right: 16.5rpx;
margin-bottom: 5rpx;
}
.quick-answer {
height: 214.5rpx;
height: 234.5rpx;
border-radius: 24rpx;
}
.quick-answer-pop {
display: flex;
flex-direction: column;
background-color: rgba(0, 0, 0, 0.70588235);
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
z-index: 101;
animation: slideUp 0.3s forwards;
}
@keyframes slideUp {
0% {
top: 100%;
}
100% {
top: 0;
}
}
.quick-answer-pop .quick-answer-box .quick-answer-img {
width: 100vw;
height: 1096.5rpx;
position: absolute;
bottom: 0;
left: 0;
border-radius: 35rpx;
}
.quick-answer-pop .quick-answer-box .quick-answer-icon {
width: 270rpx;
height: 270rpx;
position: absolute;
left: 50%;
transform: translateX(-50%);
bottom: 260rpx;
}

View File

@ -101,6 +101,8 @@ Page({
admissionofficerin: [],
answerquestions: [],
quickAnswerState: false,
},
/**
@ -145,19 +147,26 @@ Page({
}).then(res => {
const data = res.data
let admissionofficerin = data.admissionofficerin || []
// console.log("data", data);
// admissionofficerin[0]['date'] = "2025-01-21 19:00"
if (admissionofficerin.length > 0) {
admissionofficerin.forEach(element => {
const date = new Date(element.date);
let answerType = 1
// let answerType = 1
if (!isNaN(date.getTime())) {
if (Date.now() < date.getTime()) {
this.startCountdown(date.getTime() - Date.now() || 0)
answerType = 2
// answerType = 2
this.setData({
answerType: 2,
})
}
}
this.setData({
answerType,
})
// this.setData({
// answerType,
// })
})
}
@ -787,4 +796,10 @@ Page({
title: `${ this.data.info.schoolalias || this.data.info.schoolname || '' }】 - ${this.data.info.name_zh}`,
}
},
cutQuickAnswer() {
this.setData({
quickAnswerState: !this.data.quickAnswerState
})
},
})

View File

@ -1922,8 +1922,9 @@ navigator {
z-index: 1;
// width: 690rpx;
height: 120rpx;
padding: 0 12rpx;
// padding: 0 12rpx;
margin-top: 37.5rpx;
box-shadow: 0 0 4rpx rgba(0, 0, 0, 0.129411764705882);
.bj {
position: absolute;
@ -1936,18 +1937,39 @@ navigator {
}
.left {
width: 453rpx;
height: 93rpx;
background: inherit;
background-color: rgba(255, 255, 255, 0.898039215686275);
// width: 453rpx;
height: 120rpx;
// background: inherit;
// background-color: rgba(255, 255, 255, 0.898039215686275);
background-color: rgba(253, 250, 247, 1);
box-sizing: border-box;
border: 1.5rpx solid rgba(242, 242, 242, 1);
border-radius: 4.5rpx;
border-radius: 4.5rpx 0 0 4.5rpx;
font-size: 25.5rpx;
color: #000000;
line-height: 36rpx;
padding: 10.5rpx 15rpx;
.left-text {
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
-webkit-line-clamp: 2;
}
.icon {
width: 90rpx;
height: 36rpx;
text-align: center;
line-height: 36rpx;
background-color: rgba(250, 107, 17, 1);
border-radius: 172.5rpx;
display: inline-block;
font-size: 21rpx;
color: #FFFFFF;
}
.text {
display: -webkit-box;
@ -1961,6 +1983,12 @@ navigator {
.right {
flex-direction: column;
align-items: flex-end;
background: linear-gradient(to right, #fccc9e, #f69d5c);
width: 225rpx;
height: 100%;
justify-content: center;
padding-right: 22rpx;
border-radius: 0 4.5rpx 4.5rpx 0;
.text {
width: 145.5rpx;
@ -2008,4 +2036,59 @@ navigator {
}
}
}
}
.quick-answer {
width: 564rpx;
height: 190.5rpx;
margin-top: 30rpx;
margin-bottom: 30rpx;
margin-left: 36rpx;
border-radius: 20rpx;
border-bottom: 1rpx dotted rgb(235, 235, 235);
}
.quick-answer-pop {
display: flex;
flex-direction: column;
background-color: rgba(0, 0, 0, 0.705882352941177);
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
z-index: 1;
animation: slideUp 0.3s forwards;
@keyframes slideUp {
0% {
top: 100%;
}
100% {
top: 0;
}
}
.quick-answer-box {
.quick-answer-img {
width: 100vw;
height: 1096.5rpx;
position: absolute;
bottom: 0;
left: 0;
border-radius: 35rpx;
}
.quick-answer-icon {
width: 270rpx;
height: 270rpx;
position: absolute;
left: 50%;
transform: translateX(-50%);
bottom: 260rpx;
}
}
}

View File

@ -38,12 +38,15 @@
</view>
<view bind:tap="goPage" data-url="/pages/webview/webview?url={{ admissionofficerin[0]['url'] }}" class="about-start flexacenter" wx:if="{{ answerType == 2 }}">
<image class="bj" src="https://app.gter.net/image/miniApp/offer/about-start-bj.svg" mode="heightFix"></image>
<view class="left flexacenter">
<view class="text">{{ admissionofficerin[0]['title'] }}</view>
<!-- <image class="bj" src="https://app.gter.net/image/miniApp/offer/about-start-bj.svg" mode="heightFix"></image> -->
<view class="left flexacenter flex1">
<view class="left-text flexacenter">
<view class="icon">宣讲会</view>
{{ admissionofficerin[0]['title'] }}
</view>
</view>
<view class="right flexflex flex1">
<view class="right flexflex ">
<view class="text">
<image class="icon icon2" src="https://app.gter.net/image/miniApp/offer/about-start-text-w.png" mode="widthFix"></image>
<image class="icon" src="https://app.gter.net/image/miniApp/offer/about-start-text.png" mode="widthFix"></image>
@ -75,7 +78,10 @@
<view style="height: 100%" class="details-box flex1" scroll-y="{{ true }}" scroll-with-animation="{{ scrollAnimation }}">
<!-- 招生官 -->
<view class="side-item" data-type="pivotal">
<block wx:if="{{ urls.length != 0 && answerType == 0 }}">
<image wx:if="{{ urls.length != 0 && answerType == 0 }}" class="quick-answer" src="https://app.gter.net/image/miniApp/offer/quick-answer.png" mode="widthFix" bind:tap="cutQuickAnswer"></image>
<view class="borderTop"></view>
<!-- <block wx:if="{{ urls.length != 0 && answerType == 0 }}">
<view class="admission-box block" bind:tap="cutAdmission">
<view class="head flexcenter">
<image class="icon" src="https://app.gter.net/image/miniApp/offer/talk-live-icon.png" mode="widthFix"></image>
@ -96,7 +102,7 @@
</view>
</view>
<view class="borderTop"></view>
</block>
</block> -->
<view class="semester-box flexacenter ">
<view class="text gray {{ info.semesterState ? 'semester' : '' }}">{{ info.semester.text || '' }}</view>
@ -760,4 +766,11 @@
<perfect-information wx:if="{{ informationState }}" bindrevampInformationState="revampInformationState"></perfect-information>
<index-sidebar id="index-sidebar" class="index-sidebar" sidebarType="xg" isInitFinish="{{ isInitFinish }}" bind:openLogin="openLoginBtnState" islogin="{{ islogin }}"></index-sidebar>
<index-sidebar id="index-sidebar" class="index-sidebar" sidebarType="xg" isInitFinish="{{ isInitFinish }}" bind:openLogin="openLoginBtnState" islogin="{{ islogin }}"></index-sidebar>
<view class="quick-answer-pop" wx:if="{{ quickAnswerState }}" catch:touchmove="return" bind:tap="cutQuickAnswer">
<view class="quick-answer-box" catch:tap="return">
<image class="quick-answer-img" src="https://app.gter.net/image/miniApp/offer/quick-answer-pop.png" mode="widthFix"></image>
<image class="quick-answer-icon" show-menu-by-longpress src="https://u.gter.net/assistantwxqrcode.png" mode="widthFix"></image>
</view>
</view>

View File

@ -1587,8 +1587,8 @@ navigator {
position: relative;
z-index: 1;
height: 120rpx;
padding: 0 12rpx;
margin-top: 37.5rpx;
box-shadow: 0 0 4rpx rgba(0, 0, 0, 0.12941176);
}
.about-start .bj {
position: absolute;
@ -1600,18 +1600,34 @@ navigator {
z-index: -1;
}
.about-start .left {
width: 453rpx;
height: 93rpx;
background: inherit;
background-color: rgba(255, 255, 255, 0.89803922);
height: 120rpx;
background-color: #fdfaf7;
box-sizing: border-box;
border: 1.5rpx solid #f2f2f2;
border-radius: 4.5rpx;
border-radius: 4.5rpx 0 0 4.5rpx;
font-size: 25.5rpx;
color: #000000;
line-height: 36rpx;
padding: 10.5rpx 15rpx;
}
.about-start .left .left-text {
display: -webkit-box;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis;
-webkit-line-clamp: 2;
}
.about-start .left .icon {
width: 90rpx;
height: 36rpx;
text-align: center;
line-height: 36rpx;
background-color: #fa6b11;
border-radius: 172.5rpx;
display: inline-block;
font-size: 21rpx;
color: #FFFFFF;
}
.about-start .left .text {
display: -webkit-box;
-webkit-box-orient: vertical;
@ -1622,6 +1638,12 @@ navigator {
.about-start .right {
flex-direction: column;
align-items: flex-end;
background: linear-gradient(to right, #fccc9e, #f69d5c);
width: 225rpx;
height: 100%;
justify-content: center;
padding-right: 22rpx;
border-radius: 0 4.5rpx 4.5rpx 0;
}
.about-start .right .text {
width: 145.5rpx;
@ -1662,3 +1684,48 @@ navigator {
font-size: 19.5rpx;
color: #FFFFFF;
}
.quick-answer {
width: 564rpx;
height: 190.5rpx;
margin-top: 30rpx;
margin-bottom: 30rpx;
margin-left: 36rpx;
border-radius: 20rpx;
border-bottom: 1rpx dotted #ebebeb;
}
.quick-answer-pop {
display: flex;
flex-direction: column;
background-color: rgba(0, 0, 0, 0.70588235);
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
z-index: 1;
animation: slideUp 0.3s forwards;
}
@keyframes slideUp {
0% {
top: 100%;
}
100% {
top: 0;
}
}
.quick-answer-pop .quick-answer-box .quick-answer-img {
width: 100vw;
height: 1096.5rpx;
position: absolute;
bottom: 0;
left: 0;
border-radius: 35rpx;
}
.quick-answer-pop .quick-answer-box .quick-answer-icon {
width: 270rpx;
height: 270rpx;
position: absolute;
left: 50%;
transform: translateX(-50%);
bottom: 260rpx;
}

View File

@ -229,23 +229,20 @@ view {
.fate {
margin: 0 22.5rpx 30rpx;
background-color: rgba(255, 255, 255, 1);
border: 1rpx solid rgba(242, 242, 242, 1);
padding-bottom: 25rpx;
background: linear-gradient(180deg, rgba(237, 244, 246, 1) 0%, rgba(207, 223, 229, 1) 100%);
border: 1rpx solid rgba(217, 228, 232, 1);
border-radius: 18rpx;
box-shadow: 0 -7.5rpx rgba(249, 93, 93, 1);
padding-bottom: 42rpx;
.head {
height: 84rpx;
height: 89rpx;
justify-content: space-between;
padding-left: 30rpx;
border-bottom: 1rpx solid #ebebeb;
margin-bottom: 4rpx;
.text {
font-weight: 650;
font-size: 30rpx;
color: #000000;
width: 219rpx;
height: 51rpx;
}
.refresh {
@ -259,114 +256,121 @@ view {
}
}
.box {
.item {
padding-top: 31.5rpx;
padding-bottom: 31.5rpx;
margin-left: 60rpx;
margin-right: 30rpx;
&:not(:last-of-type) {
border-bottom: 1rpx dotted #ebebeb;
}
.left {
flex-direction: column;
position: relative;
&::after {
content: "";
position: absolute;
top: 10rpx;
left: -30rpx;
box-sizing: border-box;
width: 12rpx;
height: 12rpx;
background-color: rgba(246, 246, 189, 1);
border: 1rpx solid rgba(204, 208, 3, 1);
border-radius: 58.5rpx;
}
.title {
font-size: 27rpx;
color: #000000;
margin-bottom: 6rpx;
max-width: 450rpx;
}
.introduce {
color: #7F7F7F;
font-size: 21rpx;
.project {
max-width: 295.5rpx;
}
.line {
color: #D7D7D7;
margin: 0 20rpx;
}
}
}
}
}
.fate-box {
padding: 0 30rpx;
padding: 0 12rpx;
.content {
// width: calc(100vw - 60rpx);
// background-color: rgb(255, 0, 0);
// border: 1rpx solid rgb(255, 0, 0);
background-color: rgba(246, 246, 246, 1);
border: 1rpx solid rgba(242, 242, 242, 1);
border-radius: 18rpx;
padding: 34.5rpx 16rpx;
margin-top: 30rpx;
.fate-item {
justify-content: space-between;
position: relative;
z-index: 1;
.project-list {
.fate-content {
background-color: rgba(255, 255, 255, 1);
border: 1rpx solid rgba(215, 215, 215, 1);
border-radius: 34.5rpx 0 34.5rpx 0;
padding: 16rpx 16rpx 37.5rpx;
}
&::after {
content: "";
width: calc(100% - 10rpx);
height: 100%;
background-color: rgba(104, 132, 138, 1);
display: block;
position: absolute;
top: -8rpx;
left: 0;
z-index: -1;
border-radius: 34.5rpx 0 34.5rpx 0;
}
.project-item {
font-size: 24rpx;
color: #333333;
line-height: 33.75rpx;
&:not(:first-of-type) {
margin-top: 30rpx;
}
&:not(:last-of-type) {
margin-bottom: 19.5rpx;
}
.title {
font-weight: 650;
font-size: 27rpx;
color: #026277;
z-index: 1;
position: relative;
height: 54rpx;
padding: 0 15rpx;
margin: 0 auto 32rpx;
width: fit-content;
border: 1rpx solid rgb(205, 229, 229);
background: linear-gradient(to bottom, #e2f3fb, #edf8fa, #e9fffa);
.icon {
width: 24rpx;
height: 27rpx;
margin-right: 7.5rpx;
}
.angle {
position: absolute;
top: -1rpx;
right: -1rpx;
width: 15rpx;
height: 15rpx;
}
.arrows {
.icon-box {
position: relative;
margin-right: 6rpx;
.icon-red {
width: 18rpx;
height: 18rpx;
margin: 0 13.5rpx;
height: 30rpx;
display: block;
margin-right: -9rpx;
z-index: 1;
}
.text {
width: 313.5rpx;
.icon-thin {
display: block;
width: 18rpx;
height: 30rpx;
}
}
}
.btn {
width: 132rpx;
height: 60rpx;
background-color: rgba(207, 247, 255, 1);
border: 1rpx solid rgba(186, 222, 230, 1);
border-radius: 172.5rpx;
font-size: 24rpx;
color: #026277;
font-weight: 650;
.content {
.project-list {
.project-item {
font-size: 24rpx;
color: #333333;
line-height: 33.75rpx;
&:not(:last-of-type) {
margin-bottom: 19.5rpx;
}
.icon {
width: 24rpx;
height: 27rpx;
margin-right: 7.5rpx;
}
.arrows {
width: 18rpx;
height: 18rpx;
margin: 0 13.5rpx;
}
.text {
width: 313.5rpx;
}
}
}
.btn {
width: 132rpx;
height: 60rpx;
font-weight: 650;
background-color: #f95d5d;
border-radius: 172.5rpx;
font-size: 24rpx;
color: #FFFFFF;
}
}
}
}

View File

@ -64,48 +64,39 @@
<admission-box initFinish="{{ isInitFinish }}" isShow="{{ isShow }}"></admission-box>
<view wx:if="{{ fateProject.length != 0 }}" class="fate">
<view wx:if="{{ fateProjectShow.length != 0 }}" class="fate">
<view class="head flexacenter">
<view class="text">今日缘分项目</view>
<image class="text" src="https://app.gter.net/image/miniApp/offer/today-fate.png" mode="widthFix"></image>
<view class="refresh flexcenter" bind:tap="updateFate">
<image class="icon" src="https://app.gter.net/image/miniApp/offer/refresh-icon.png"></image>
</view>
</view>
<view class="box" wx:if="{{ false }}">
<view class="item flexacenter" wx:for="{{ fateProject }}" wx:key="index" bind:tap="goDetails" data-uniqid="{{ item.uniqid }}">
<view class="left flexflex flex1">
<view class="title one-line-display">{{ item.name_zh}}</view>
<view class="introduce flexacenter">
<view class="project one-line-display">{{ item.name_en }}</view>
<view class="line"> | </view>
{{ item.schoolname }}
<view class="fate-box">
<view class="fate-item" wx:for="{{ fateProjectShow }}" wx:key="index">
<view class="fate-content">
<view class="title flexcenter">
<image class="angle" src="https://app.gter.net/image/miniApp/offer/fate-title-angle.png" mode="widthFix"></image>
<view></view>
<view class="icon-box flexacenter">
<image class="icon-red" src="https://app.gter.net/image/miniApp/offer/triangle-red-r.svg" mode="widthFix"></image>
<image class="icon-thin" src="https://app.gter.net/image/miniApp/offer/triangle-red-thin.svg" mode="widthFix"></image>
</view>
{{ item.name }}
</view>
<view class="content flexacenter">
<view class="project-list flex1">
<view class="project-item flexacenter" wx:for="{{ item.data }}" wx:key="index">
<image class="icon" src="{{ item.schoollogo }}"></image>
{{ item.schoolalias }}
<image class="arrows" src="https://app.gter.net/image/miniApp/offer/arrows-circle-blue.svg" mode="widthFix"></image>
<view class="text one-line-display">{{ item.name_zh }}</view>
</view>
</view>
<view class="btn flexcenter" bind:tap="goContrast" data-ids="{{ item.projectid }}">项目对比</view>
</view>
</view>
<view wx:if="{{ item.state }}" class="cancel flexflex" catch:tap="return" style="width: 106.5rpx;">
<view class="cross flexcenter">
<image class="icon" src="https://app.gter.net/image/miniApp/offer/tick-grey.svg"></image>
</view>
已加入
</view>
<view wx:else class="join flexflex" catch:tap="handleClick" data-random="{{ item.random }}" data-index="{{ index }}" data-id="{{ item.id }}" data-type="fate" style="width: 106.5rpx;">
<view class="add flexcenter" id="add{{ item.random }}">
<image class="icon" src="https://app.gter.net/image/miniApp/offer/plus-icon.svg"></image>
</view>
加入对比单
</view>
</view>
</view>
<view class="fate-box" wx:else>
<view class="content flexacenter" wx:for="{{ fateProjectShow }}" wx:key="index">
<view class="project-list">
<view class="project-item flexacenter" wx:for="{{ item.data }}" wx:key="index">
<image class="icon" src="{{ item.schoollogo }}"></image>
{{ item.schoolalias }}
<image class="arrows" src="https://app.gter.net/image/miniApp/offer/arrows-circle-yellow-green.svg" mode="widthFix"></image>
<view class="text one-line-display">{{ item.name_zh }}</view>
</view>
</view>
<view class="btn flexcenter" bind:tap="goContrast" data-ids="{{ item.projectid }}">项目对比</view>
</view>
</view>
</view>

View File

@ -193,22 +193,20 @@ view {
}
.fate {
margin: 0 22.5rpx 30rpx;
background-color: #ffffff;
border: 1rpx solid #f2f2f2;
padding-bottom: 25rpx;
background: linear-gradient(180deg, #edf4f6 0%, #cfdfe5 100%);
border: 1rpx solid #d9e4e8;
border-radius: 18rpx;
box-shadow: 0 -7.5rpx #f95d5d;
padding-bottom: 42rpx;
}
.fate .head {
height: 84rpx;
height: 89rpx;
justify-content: space-between;
padding-left: 30rpx;
border-bottom: 1rpx solid #ebebeb;
margin-bottom: 4rpx;
}
.fate .head .text {
font-weight: 650;
font-size: 30rpx;
color: #000000;
width: 219rpx;
height: 51rpx;
}
.fate .head .refresh {
padding: 0 30rpx;
@ -218,89 +216,100 @@ view {
width: 30rpx;
height: 30rpx;
}
.fate .box .item {
padding-top: 31.5rpx;
padding-bottom: 31.5rpx;
margin-left: 60rpx;
margin-right: 30rpx;
}
.fate .box .item:not(:last-of-type) {
border-bottom: 1rpx dotted #ebebeb;
}
.fate .box .item .left {
flex-direction: column;
position: relative;
}
.fate .box .item .left::after {
content: "";
position: absolute;
top: 10rpx;
left: -30rpx;
box-sizing: border-box;
width: 12rpx;
height: 12rpx;
background-color: #f6f6bd;
border: 1rpx solid #ccd003;
border-radius: 58.5rpx;
}
.fate .box .item .left .title {
font-size: 27rpx;
color: #000000;
margin-bottom: 6rpx;
max-width: 450rpx;
}
.fate .box .item .left .introduce {
color: #7F7F7F;
font-size: 21rpx;
}
.fate .box .item .left .introduce .project {
max-width: 295.5rpx;
}
.fate .box .item .left .introduce .line {
color: #D7D7D7;
margin: 0 20rpx;
}
.fate .fate-box {
padding: 0 30rpx;
padding: 0 12rpx;
}
.fate .fate-box .content {
background-color: #f6f6f6;
border: 1rpx solid #f2f2f2;
border-radius: 18rpx;
padding: 34.5rpx 16rpx;
margin-top: 30rpx;
.fate .fate-box .fate-item {
justify-content: space-between;
position: relative;
z-index: 1;
}
.fate .fate-box .content .project-list .project-item {
.fate .fate-box .fate-item .fate-content {
background-color: #ffffff;
border: 1rpx solid #d7d7d7;
border-radius: 34.5rpx 0 34.5rpx 0;
padding: 16rpx 16rpx 37.5rpx;
}
.fate .fate-box .fate-item::after {
content: "";
width: calc(100% - 10rpx);
height: 100%;
background-color: #68848a;
display: block;
position: absolute;
top: -8rpx;
left: 0;
z-index: -1;
border-radius: 34.5rpx 0 34.5rpx 0;
}
.fate .fate-box .fate-item:not(:first-of-type) {
margin-top: 30rpx;
}
.fate .fate-box .fate-item .title {
font-weight: 650;
font-size: 27rpx;
color: #026277;
z-index: 1;
position: relative;
height: 54rpx;
padding: 0 15rpx;
margin: 0 auto 32rpx;
width: fit-content;
border: 1rpx solid #cde5e5;
background: linear-gradient(to bottom, #e2f3fb, #edf8fa, #e9fffa);
}
.fate .fate-box .fate-item .title .angle {
position: absolute;
top: -1rpx;
right: -1rpx;
width: 15rpx;
height: 15rpx;
}
.fate .fate-box .fate-item .title .icon-box {
position: relative;
margin-right: 6rpx;
}
.fate .fate-box .fate-item .title .icon-box .icon-red {
width: 18rpx;
height: 30rpx;
display: block;
margin-right: -9rpx;
z-index: 1;
}
.fate .fate-box .fate-item .title .icon-box .icon-thin {
display: block;
width: 18rpx;
height: 30rpx;
}
.fate .fate-box .fate-item .content .project-list .project-item {
font-size: 24rpx;
color: #333333;
line-height: 33.75rpx;
}
.fate .fate-box .content .project-list .project-item:not(:last-of-type) {
.fate .fate-box .fate-item .content .project-list .project-item:not(:last-of-type) {
margin-bottom: 19.5rpx;
}
.fate .fate-box .content .project-list .project-item .icon {
.fate .fate-box .fate-item .content .project-list .project-item .icon {
width: 24rpx;
height: 27rpx;
margin-right: 7.5rpx;
}
.fate .fate-box .content .project-list .project-item .arrows {
.fate .fate-box .fate-item .content .project-list .project-item .arrows {
width: 18rpx;
height: 18rpx;
margin: 0 13.5rpx;
}
.fate .fate-box .content .project-list .project-item .text {
.fate .fate-box .fate-item .content .project-list .project-item .text {
width: 313.5rpx;
}
.fate .fate-box .content .btn {
.fate .fate-box .fate-item .content .btn {
width: 132rpx;
height: 60rpx;
background-color: #cff7ff;
border: 1rpx solid #badee6;
font-weight: 650;
background-color: #f95d5d;
border-radius: 172.5rpx;
font-size: 24rpx;
color: #026277;
font-weight: 650;
color: #FFFFFF;
}
.admission {
margin: 0 22.5rpx 30rpx;

View File

@ -1,10 +1,6 @@
{
"compileType": "miniprogram",
"libVersion": "trial",
"packOptions": {
"ignore": [],
"include": []
},
"setting": {
"coverView": true,
"es6": true,
@ -17,12 +13,17 @@
"ignore": [],
"disablePlugins": [],
"outputPath": ""
}
},
"ignoreUploadUnusedFiles": true
},
"condition": {},
"editorSetting": {
"tabIndent": "auto",
"tabSize": 2
},
"packOptions": {
"ignore": [],
"include": []
},
"appid": "wxd7ebf76a0a87057d"
}

View File

@ -11,7 +11,14 @@
{
"name": "pages/projectDetails/projectDetails",
"pathName": "pages/projectDetails/projectDetails",
"query": "uniqid=GTvG5CqPjunL",
"query": "uniqid=8W4HvTynTyHv",
"launchMode": "default",
"scene": null
},
{
"name": "pages/projectDetails/projectDetails",
"pathName": "pages/projectDetails/projectDetails",
"query": "uniqid=rD0Sj0auDPzX",
"launchMode": "default",
"scene": null
}