refactor: 样式调整
parent
d5225475a1
commit
e8eec5c38f
|
|
@ -19,14 +19,14 @@
|
|||
</view>
|
||||
<view class="mt-[56rpx] flex items-center justify-between">
|
||||
<button
|
||||
class="w-[240rpx]! h-[88rpx]! border-[#1580FF]! text-[#1580FF]! text-[28rpx]! font-normal! mr-[32rpx] flex! items-center! justify-center! rounded-[8rpx]!"
|
||||
class="w-[240rpx]! h-[88rpx]! border-[#1580FF]! text-[#1580FF]! text-[30rpx]! font-normal! mr-[32rpx] flex! items-center! justify-center! rounded-[8rpx]!"
|
||||
plain
|
||||
@click="navigatorTo"
|
||||
>
|
||||
一键填报
|
||||
</button>
|
||||
<button
|
||||
class="w-[350rpx]! h-[88rpx]! text-[#fff]! text-[28rpx]! bg-[#1580FF]! font-normal flex! items-center! justify-center! rounded-[8rpx]!"
|
||||
class="w-[350rpx]! h-[88rpx]! text-[#fff]! text-[30rpx]! bg-[#1580FF]! font-normal flex! items-center! justify-center! rounded-[8rpx]!"
|
||||
@click="navigatorToAi"
|
||||
>
|
||||
智能填报
|
||||
|
|
@ -47,14 +47,22 @@ const handleChange = () => {
|
|||
}
|
||||
|
||||
const navigatorTo = () => {
|
||||
uni.navigateTo({
|
||||
url: '/pages-sub/home/autoFill/index',
|
||||
})
|
||||
if (userStore.userInfo.estimatedAchievement.expectedScore === '') {
|
||||
handleChange()
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: '/pages-sub/home/autoFill/index',
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
const navigatorToAi = () => {
|
||||
uni.navigateTo({
|
||||
url: '/pages-evaluation-sub/aiAutoFill/index',
|
||||
})
|
||||
if (userStore.userInfo.estimatedAchievement.expectedScore === '') {
|
||||
handleChange()
|
||||
} else {
|
||||
uni.navigateTo({
|
||||
url: '/pages-evaluation-sub/aiAutoFill/index',
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<view class="mx-[36rpx] mt-[44rpx]">
|
||||
<view class="mx-[36rpx] mt-[48rpx]">
|
||||
<view
|
||||
class="flex items-center justify-between mb-[30rpx]"
|
||||
class="flex items-center justify-between"
|
||||
hover-class="none"
|
||||
:hover-stop-propagation="false"
|
||||
>
|
||||
|
|
@ -13,19 +13,19 @@
|
|||
></image>
|
||||
</view>
|
||||
|
||||
<view class="my-[30rpx]" hover-class="none" :hover-stop-propagation="false">
|
||||
<view
|
||||
class="truncate flex flex-col py-[32rpx]"
|
||||
style="border-bottom: 2rpx solid #eee"
|
||||
v-for="item in newsList"
|
||||
:key="item.id"
|
||||
@click="handleClick(item)"
|
||||
>
|
||||
<text class="truncate text-[28rpx] text-[#333333] font-normal mb-[16rpx] max-w-[80%]">
|
||||
{{ item.title }}
|
||||
</text>
|
||||
<text class="text-[24rpx] color-[#999999] font-normal">{{ item.createTime }}</text>
|
||||
</view>
|
||||
<view
|
||||
class="truncate flex flex-col py-[32rpx]"
|
||||
style="border-bottom: 2rpx solid #eee"
|
||||
hover-class="none"
|
||||
:hover-stop-propagation="false"
|
||||
v-for="item in newsList"
|
||||
:key="item.id"
|
||||
@click="handleClick(item)"
|
||||
>
|
||||
<text class="truncate text-[28rpx] text-[#333333] font-normal mb-[16rpx] max-w-full">
|
||||
{{ item.title }}
|
||||
</text>
|
||||
<text class="text-[24rpx] color-[#999999] font-normal">{{ item.createTime }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<view class="mx-[36rpx] mt-[44rpx]" hover-class="none" :hover-stop-propagation="false">
|
||||
<view class="mt-[44rpx]" hover-class="none" :hover-stop-propagation="false">
|
||||
<view
|
||||
class="flex items-center justify-between mb-[30rpx]"
|
||||
class="flex items-center justify-between mb-[30rpx] mx-[36rpx]"
|
||||
hover-class="none"
|
||||
:hover-stop-propagation="false"
|
||||
>
|
||||
|
|
@ -14,25 +14,25 @@
|
|||
</view>
|
||||
|
||||
<view
|
||||
class="flex items-center w-full overflow-auto gap-[16rpx] hot-rank-outer"
|
||||
class="flex items-center overflow-x-auto hot-rank-outer gap-[16rpx] h-[462rpx] px-[32rpx]"
|
||||
hover-class="none"
|
||||
:hover-stop-propagation="false"
|
||||
>
|
||||
<view
|
||||
class="hot-rank-item flex-none pt-[32rpx] pb-[38rpx] px-[32rpx]"
|
||||
:class="`hot-rank-item flex-none`"
|
||||
hover-class="none"
|
||||
:hover-stop-propagation="false"
|
||||
v-for="typeWrap in universityTypeRankList"
|
||||
v-for="(typeWrap, index) in universityTypeRankList"
|
||||
:key="typeWrap.type"
|
||||
@click="toSchool(typeWrap.type)"
|
||||
v-show="typeWrap.rows.length > 0"
|
||||
>
|
||||
<text class="font-semibold text-[#303030] text-[32rpx] inline-block">
|
||||
<text class="font-semibold text-[#303030] text-[32rpx] inline-block mx-[32rpx] mt-[32rpx]">
|
||||
{{ typeWrap.name }}
|
||||
</text>
|
||||
|
||||
<view
|
||||
class="flex items-center justify-left mt-[30rpx]"
|
||||
class="flex items-center justify-left mt-[30rpx] mx-[32rpx]"
|
||||
v-for="(item, index) in typeWrap.rows"
|
||||
:key="index"
|
||||
>
|
||||
|
|
@ -96,72 +96,64 @@ watch(
|
|||
|
||||
<style lang="scss" scoped>
|
||||
.hot-rank-item {
|
||||
width: 292rpx;
|
||||
border: 2rpx solid;
|
||||
width: 356rpx;
|
||||
height: 452rpx;
|
||||
position: relative;
|
||||
background: #fff;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.hot-rank-item::before {
|
||||
content: '';
|
||||
width: 360rpx;
|
||||
height: 456rpx;
|
||||
position: absolute;
|
||||
border-radius: 8px;
|
||||
top: -2rpx;
|
||||
left: -2rpx;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
.hot-rank-outer .hot-rank-item:nth-child(1) {
|
||||
background: linear-gradient(180deg, #caddff 0%, #eaf1ff 23%, #fff 100%);
|
||||
}
|
||||
.hot-rank-outer .hot-rank-item:nth-child(1)::before {
|
||||
background: linear-gradient(
|
||||
180deg,
|
||||
#dee7f8 0%,
|
||||
rgba(239, 244, 251, 0) 46%,
|
||||
rgba(239, 244, 251, 0) 100%
|
||||
rgba(201.8750050663948, 221.00000202655792, 255, 1),
|
||||
rgba(233.7500050663948, 241.39999777078629, 255, 1)
|
||||
);
|
||||
|
||||
border-image: linear-gradient(
|
||||
180deg,
|
||||
rgba(201.8750050663948, 221.00000202655792, 255, 1),
|
||||
rgba(233.7500050663948, 241.39999777078629, 255, 1)
|
||||
)
|
||||
2 2;
|
||||
}
|
||||
|
||||
.hot-rank-outer .hot-rank-item:nth-child(2) {
|
||||
background: linear-gradient(180deg, #cef5e1 0%, #ddf7ea 23%, #fff 100%);
|
||||
}
|
||||
.hot-rank-outer .hot-rank-item:nth-child(2)::before {
|
||||
background: linear-gradient(
|
||||
180deg,
|
||||
#ddf7ea 0%,
|
||||
rgba(234, 250, 241, 0) 46%,
|
||||
rgba(234, 250, 241, 0) 100%
|
||||
rgba(205.5883178114891, 245.07227271795273, 225.3302800655365, 1),
|
||||
rgba(221.00000202655792, 247.00000047683716, 234.00000125169754, 1)
|
||||
);
|
||||
|
||||
border-image: linear-gradient(
|
||||
180deg,
|
||||
rgba(205.5883178114891, 245.07227271795273, 225.3302800655365, 1),
|
||||
rgba(221.00000202655792, 247.00000047683716, 234.00000125169754, 1)
|
||||
)
|
||||
2 2;
|
||||
}
|
||||
|
||||
.hot-rank-outer .hot-rank-item:nth-child(3)::before {
|
||||
background: linear-gradient(180deg, rgba(245, 237, 255, 1), rgba(245, 237, 255, 1));
|
||||
}
|
||||
.hot-rank-outer .hot-rank-item:nth-child(3) {
|
||||
background: linear-gradient(
|
||||
180deg,
|
||||
#f7e7ff 0%,
|
||||
rgba(245, 237, 255, 0) 46%,
|
||||
rgba(245, 237, 255, 0) 100%
|
||||
);
|
||||
|
||||
border-image: linear-gradient(180deg, rgba(245, 237, 255, 1), rgba(245, 237, 255, 1)) 2 2;
|
||||
background: linear-gradient(180deg, #f7e7ff 0%, rgba(245, 237, 255, 0) 23%, #fff 100%);
|
||||
}
|
||||
|
||||
.hot-rank-outer .hot-rank-item:nth-child(4)::before {
|
||||
background: linear-gradient(180deg, rgba(255, 228, 196, 1), rgba(255, 228, 196, 1));
|
||||
}
|
||||
.hot-rank-outer .hot-rank-item:nth-child(4) {
|
||||
background: linear-gradient(
|
||||
180deg,
|
||||
#ffe4c4 0%,
|
||||
rgba(255, 228, 196, 0) 46%,
|
||||
rgba(255, 228, 196, 0) 100%
|
||||
);
|
||||
|
||||
border-image: linear-gradient(180deg, rgba(255, 228, 196, 1), rgba(255, 228, 196, 1)) 2 2;
|
||||
background: linear-gradient(180deg, #ffe4c4 0%, rgba(255, 228, 196, 0) 23%, #fff 100%);
|
||||
}
|
||||
|
||||
.hot-rank-outer .hot-rank-item:nth-child(5)::before {
|
||||
background: linear-gradient(180deg, rgba(213, 255, 196, 0), rgba(213, 255, 196, 0));
|
||||
}
|
||||
.hot-rank-outer .hot-rank-item:nth-child(5) {
|
||||
background: linear-gradient(
|
||||
180deg,
|
||||
#e5ffc4 0%,
|
||||
rgba(213, 255, 196, 0) 46%,
|
||||
rgba(213, 255, 196, 0) 100%
|
||||
);
|
||||
|
||||
border-image: linear-gradient(180deg, rgba(213, 255, 196, 0), rgba(213, 255, 196, 0)) 2 2;
|
||||
background: linear-gradient(180deg, #e5ffc4 0%, rgba(213, 255, 196, 0) 23%, #fff 100%);
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
<!-- 左侧区域 -->
|
||||
<view class="navbar-left" @click="handleClickLeft">
|
||||
<view v-if="leftArrow" class="back-icon">
|
||||
<view class="i-carbon-chevron-left text-[48rpx] text-[#333] font-semibold" />
|
||||
<view class="i-carbon-chevron-left text-[40rpx] text-[#333] font-semibold" />
|
||||
</view>
|
||||
<slot name="left"></slot>
|
||||
</view>
|
||||
|
|
@ -144,7 +144,7 @@ const handleClickLeft = () => {
|
|||
position: fixed;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 99;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
.navbar-border {
|
||||
|
|
@ -176,7 +176,7 @@ const handleClickLeft = () => {
|
|||
}
|
||||
|
||||
.title-text {
|
||||
font-size: 36rpx;
|
||||
font-size: 34rpx;
|
||||
color: #333;
|
||||
font-weight: 500;
|
||||
overflow: hidden;
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
<!-- 左侧区域 -->
|
||||
<view class="navbar-left" @click="handleClickLeft">
|
||||
<view v-if="leftArrow" class="back-icon">
|
||||
<view class="i-carbon-chevron-left text-[48rpx] text-[#333] font-semibold" />
|
||||
<view class="i-carbon-chevron-left text-[40rpx] text-[#333] font-semibold" />
|
||||
</view>
|
||||
<slot name="left"></slot>
|
||||
</view>
|
||||
|
|
@ -53,7 +53,7 @@
|
|||
<script lang="ts" setup>
|
||||
import { computed } from 'vue'
|
||||
|
||||
const props = defineProps({
|
||||
defineProps({
|
||||
title: {
|
||||
type: String,
|
||||
default: '',
|
||||
|
|
@ -93,6 +93,7 @@ const emit = defineEmits(['clickLeft'])
|
|||
// 获取系统信息
|
||||
const systemInfo = uni.getWindowInfo()
|
||||
const deviceInfo = uni.getDeviceInfo()
|
||||
|
||||
const statusBarHeight = systemInfo.statusBarHeight || 0
|
||||
|
||||
// 动态计算导航栏高度
|
||||
|
|
@ -143,7 +144,7 @@ const handleClickLeft = () => {
|
|||
position: fixed;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 99;
|
||||
z-index: 999;
|
||||
}
|
||||
|
||||
.navbar-border {
|
||||
|
|
@ -154,6 +155,7 @@ const handleClickLeft = () => {
|
|||
display: flex;
|
||||
align-items: center;
|
||||
height: 100%;
|
||||
min-width: 100rpx;
|
||||
}
|
||||
|
||||
.back-icon {
|
||||
|
|
@ -174,7 +176,7 @@ const handleClickLeft = () => {
|
|||
}
|
||||
|
||||
.title-text {
|
||||
font-size: 36rpx;
|
||||
font-size: 34rpx;
|
||||
color: #333;
|
||||
font-weight: 500;
|
||||
overflow: hidden;
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ export const renderEchart = ({ echart, echarts, pieChartData }) => {
|
|||
},
|
||||
legend: {
|
||||
orient: 'horizontal',
|
||||
bottom: 0,
|
||||
bottom: 8,
|
||||
left: 'center',
|
||||
icon: 'circle',
|
||||
itemWidth: 10,
|
||||
|
|
@ -71,6 +71,7 @@ export const renderEchart = ({ echart, echarts, pieChartData }) => {
|
|||
fill: '#1F2329',
|
||||
textAlign: 'center',
|
||||
textVerticalAlign: 'middle',
|
||||
fontWeight: 'bold',
|
||||
},
|
||||
},
|
||||
],
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
<template>
|
||||
<view class="bg-[#FAFAFA] h-screen flex flex-col">
|
||||
<view class="text-[#000] text-[24rpx] p-[32rpx]">
|
||||
{{ userInfo.estimatedAchievement.expectedScore }}分{{
|
||||
{{ userInfo.estimatedAchievement.expectedScore }}分 {{
|
||||
userInfo.estimatedAchievement.subjectGroup.split(',').join('/')
|
||||
}}
|
||||
</view>
|
||||
|
|
@ -32,11 +32,13 @@
|
|||
</view>
|
||||
</view>
|
||||
<view class="mt-[32rpx] mx-[32rpx] bg-[#FEF0F0] rounded-[16rpx] p-[32rpx]">
|
||||
<view class="text-[#F56C6C] text-[28rpx] flex items-center gap-[8rpx]">
|
||||
<view
|
||||
class="text-[#F56C6C] text-[28rpx] flex items-center gap-[8rpx] mb-[32rpx] font-semibold"
|
||||
>
|
||||
<view class="i-carbon-volume-down text-[32rpx]"></view>
|
||||
说明
|
||||
</view>
|
||||
<view class="text-[20rpx] text-[#F56C6C] flex flex-col">
|
||||
<view class="text-[22rpx] text-[#F56C6C] flex flex-col leading-[1.5]">
|
||||
<text>
|
||||
1.
|
||||
本平台基于历史分数及等效位次进行志愿推荐和风险评估,由于志愿填报本身存在不确定性,请谨慎参考。
|
||||
|
|
@ -47,9 +49,7 @@
|
|||
</view>
|
||||
</view>
|
||||
|
||||
<view
|
||||
class="mt-auto bg-[#fff] rounded-[16rpx] p-[32rpx] box-shadow px-[32rpx] pt-[32rpx] pb-safe"
|
||||
>
|
||||
<view class="mt-auto bg-[#fff] p-[32rpx] box-shadow px-[32rpx] pt-[32rpx] pb-safe">
|
||||
<view
|
||||
class="text-[#fff] text-[32rpx] rounded-[8rpx] bg-[#1580FF] text-center py-[26rpx]"
|
||||
@click="navigatorTo"
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
<!-- 左侧区域 -->
|
||||
<view class="navbar-left" @click="handleClickLeft">
|
||||
<view v-if="leftArrow" class="back-icon">
|
||||
<view class="i-carbon-chevron-left text-[48rpx] text-[#333] font-semibold icon-class" />
|
||||
<view class="i-carbon-chevron-left text-[40rpx] text-[#333] font-semibold icon-class" />
|
||||
</view>
|
||||
<slot name="left"></slot>
|
||||
</view>
|
||||
|
|
@ -174,7 +174,7 @@ const handleClickLeft = () => {
|
|||
}
|
||||
|
||||
.title-text {
|
||||
font-size: 36rpx;
|
||||
font-size: 34rpx;
|
||||
color: #333;
|
||||
font-weight: 500;
|
||||
overflow: hidden;
|
||||
|
|
|
|||
|
|
@ -10,6 +10,11 @@
|
|||
<template v-if="!lazyRender || show">
|
||||
<view class="action-sheet-header" v-if="title">
|
||||
<text class="action-sheet-title">{{ title }}</text>
|
||||
<view
|
||||
class="i-carbon-close absolute right-[32rpx]"
|
||||
v-if="showClose"
|
||||
@click.stop="handleClose"
|
||||
></view>
|
||||
</view>
|
||||
<slot name="title"></slot>
|
||||
<scroll-view class="action-sheet-content" :scroll-y="true">
|
||||
|
|
@ -24,10 +29,11 @@
|
|||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
const props = defineProps<{
|
||||
defineProps<{
|
||||
show: boolean
|
||||
title?: string
|
||||
lazyRender?: boolean
|
||||
showClose?: boolean
|
||||
}>()
|
||||
|
||||
const emit = defineEmits<{
|
||||
|
|
@ -77,7 +83,10 @@ const handleClose = () => {
|
|||
padding: 24rpx 32rpx;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
border-bottom: 2rpx solid #f5f5f5;
|
||||
border-bottom: 1rpx solid #f5f5f5;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
&-title {
|
||||
|
|
|
|||
|
|
@ -24,8 +24,6 @@
|
|||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { computed, ref, watch, onMounted } from 'vue'
|
||||
|
||||
const props = defineProps({
|
||||
modelValue: {
|
||||
type: [String, Number, Object],
|
||||
|
|
|
|||
|
|
@ -1,91 +0,0 @@
|
|||
<template>
|
||||
<view>
|
||||
<page-head :title="title"></page-head>
|
||||
<view class="uni-padding-wrap">
|
||||
<view class="uni-title">{{ value }}</view>
|
||||
</view>
|
||||
<picker-view
|
||||
v-if="visible"
|
||||
:indicator-style="indicatorStyle"
|
||||
:mask-style="maskStyle"
|
||||
:value="value"
|
||||
@change="bindChange"
|
||||
>
|
||||
<picker-view-column>
|
||||
<view class="item" v-for="(item, index) in months" :key="index">{{ item }}月</view>
|
||||
</picker-view-column>
|
||||
<picker-view-column>
|
||||
<view class="item" v-for="(item, index) in days" :key="index">{{ item }}日</view>
|
||||
</picker-view-column>
|
||||
</picker-view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
const date = new Date()
|
||||
const years = []
|
||||
const year = date.getFullYear()
|
||||
const months = []
|
||||
const month = date.getMonth() + 1
|
||||
const days = []
|
||||
const day = date.getDate()
|
||||
|
||||
for (let i = 1990; i <= date.getFullYear(); i++) {
|
||||
years.push(i)
|
||||
}
|
||||
|
||||
for (let i = 1; i <= 12; i++) {
|
||||
months.push(i)
|
||||
}
|
||||
|
||||
for (let i = 1; i <= 31; i++) {
|
||||
days.push(i)
|
||||
}
|
||||
return {
|
||||
title: 'picker-view',
|
||||
years,
|
||||
year,
|
||||
months,
|
||||
month,
|
||||
days,
|
||||
day,
|
||||
value: [month, day - 1],
|
||||
/**
|
||||
* 解决动态设置indicator-style不生效的问题
|
||||
*/
|
||||
visible: true,
|
||||
// indicatorStyle: `height: ${Math.round(uni.getSystemInfoSync().screenWidth/(750/100))}px;`
|
||||
indicatorStyle: `height: 50px;`,
|
||||
// #ifdef MP-KUAISHOU
|
||||
maskStyle: 'padding:10px 0',
|
||||
// #endif
|
||||
// #ifndef MP-KUAISHOU
|
||||
maskStyle: '',
|
||||
// #endif
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
bindChange(e) {
|
||||
const val = e.detail.value
|
||||
this.year = this.years[val[0]]
|
||||
this.month = this.months[val[1]]
|
||||
this.day = this.days[val[2]]
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
picker-view {
|
||||
width: 100%;
|
||||
height: 600rpx;
|
||||
margin-top: 20rpx;
|
||||
}
|
||||
|
||||
.item {
|
||||
line-height: 100rpx;
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -88,6 +88,7 @@ const checkboxStyle = computed(() => {
|
|||
--checkbox-height: 60rpx;
|
||||
--checkbox-bg: #f7f8fa;
|
||||
--checkbox-radius: 8rpx;
|
||||
color: #333;
|
||||
|
||||
.checkbox {
|
||||
width: var(--checkbox-width);
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@
|
|||
<!-- 左侧区域 -->
|
||||
<view class="navbar-left" @click="handleClickLeft">
|
||||
<view v-if="leftArrow" class="back-icon">
|
||||
<view class="i-carbon-chevron-left text-[48rpx] text-[#333] font-semibold icon-class" />
|
||||
<view class="i-carbon-chevron-left text-[40rpx] text-[#333] font-semibold icon-class" />
|
||||
</view>
|
||||
<slot name="left"></slot>
|
||||
</view>
|
||||
|
|
@ -154,6 +154,7 @@ const handleClickLeft = () => {
|
|||
display: flex;
|
||||
align-items: center;
|
||||
height: 100%;
|
||||
min-width: 100rpx;
|
||||
}
|
||||
|
||||
.back-icon {
|
||||
|
|
@ -174,7 +175,7 @@ const handleClickLeft = () => {
|
|||
}
|
||||
|
||||
.title-text {
|
||||
font-size: 36rpx;
|
||||
font-size: 34rpx;
|
||||
color: #333;
|
||||
font-weight: 500;
|
||||
overflow: hidden;
|
||||
|
|
|
|||
|
|
@ -1,21 +1,13 @@
|
|||
<route lang="json5" type="page">
|
||||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
navigationBarTitleText: '一键填报',
|
||||
},
|
||||
needLogin: true,
|
||||
}
|
||||
</route>
|
||||
<template>
|
||||
<view class="flex flex-col h-screen">
|
||||
<Navbar
|
||||
title="一键填报"
|
||||
left-arrow
|
||||
@click-left="navigatorBack"
|
||||
safeAreaInsetTop
|
||||
:bordered="false"
|
||||
class="bg-transparent"
|
||||
></Navbar>
|
||||
<view class="flex-1 bg-[#f8f8f8] pb-safe flex flex-col items-center pt-[48rpx]">
|
||||
<Badge :value="badgeValue">
|
||||
<button
|
||||
|
|
@ -29,7 +21,7 @@
|
|||
</Badge>
|
||||
|
||||
<image
|
||||
class="w-[286rpx] h-[286rpx] mt-[134rpx] mix-blend-multiply"
|
||||
class="w-[286rpx] h-[286rpx] mt-[134rpx] mix-blend-multiply bg-[#f8f8f8]"
|
||||
src="https://api.static.ycymedu.com/sub/images/autoFill/auto-fill.jpg"
|
||||
mode="widthFix"
|
||||
@click="show = true"
|
||||
|
|
@ -39,6 +31,7 @@
|
|||
v-model:show="show"
|
||||
title="筛选"
|
||||
@close="close"
|
||||
:show-close="true"
|
||||
custom-header-class="text-[36rpx]! text-[#303030]! font-medium!"
|
||||
>
|
||||
<FilterMenu ref="filterMenuRef" />
|
||||
|
|
@ -65,7 +58,6 @@
|
|||
|
||||
<script lang="ts" setup>
|
||||
import FilterMenu from '@/pages-sub/home/components/FilterMenu.vue'
|
||||
import Navbar from '@/pages-sub/components/navbar/Navbar.vue'
|
||||
import Badge from '@/pages-sub/components/badge/Badge.vue'
|
||||
import ActionSheet from '@/pages-sub/components/ActionSheet.vue'
|
||||
import { ref } from 'vue'
|
||||
|
|
|
|||
|
|
@ -101,4 +101,8 @@ onLoad(() => {
|
|||
.province-item:not(:last-child) {
|
||||
border-bottom: 1rpx solid #e5e5e5;
|
||||
}
|
||||
|
||||
.wd-index-bar {
|
||||
background-color: #f8f8f8;
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
<view class="flex">
|
||||
<view class="w-[176rpx] h-initial bg-[#F7F8FA] flex flex-col items-center">
|
||||
<view
|
||||
:class="`flex items-center justify-center h-[104rpx] w-full ${item.id === currentMenu ? 'active' : ''}`"
|
||||
:class="`text-[#666] flex items-center justify-center h-[104rpx] w-full ${item.id === currentMenu ? 'active' : ''}`"
|
||||
v-for="item in splitMenus"
|
||||
:key="item.id"
|
||||
@click="changeMenu(item)"
|
||||
|
|
@ -166,6 +166,7 @@ defineExpose({
|
|||
|
||||
.active {
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.sheet-body-border {
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
</RadioGroup>
|
||||
|
||||
<view
|
||||
class="px-[24rpx] py-[12rpx] rounded-[8rpx] bg-[rgba(255,96,68,0.1)] flex flex-col gap-[8rpx] text-[#FF6044] text-[22rpx] w-max mx-auto mt-[82rpx]"
|
||||
class="px-[24rpx] py-[12rpx] rounded-[8rpx] bg-[rgba(255,96,68,0.1)] flex flex-col gap-[8rpx] text-[#FF6044] text-[24rpx] w-max mt-[82rpx]"
|
||||
>
|
||||
<text class="" v-for="item in phaseList" :key="item.batch">
|
||||
{{ item.batch }}:批次线{{ item.score }}分,线高{{ item.pressureScore }}分
|
||||
|
|
@ -94,6 +94,7 @@ const handleChange = (val: string) => {
|
|||
align-items: center;
|
||||
justify-content: center;
|
||||
border: 2rpx solid #f7f8fa;
|
||||
color: #333;
|
||||
|
||||
.radio__icon {
|
||||
display: none;
|
||||
|
|
|
|||
|
|
@ -8,9 +8,15 @@
|
|||
</route>
|
||||
<template>
|
||||
<view class="h-screen overflow-hidden flex flex-col bg-[#F8F8F8]" :bordered="false">
|
||||
<Navbar title="成绩填写" left-arrow @click-left="navigatorBack" safeAreaInsetTop />
|
||||
<Navbar
|
||||
title="成绩填写"
|
||||
left-arrow
|
||||
@click-left="navigatorBack"
|
||||
safeAreaInsetTop
|
||||
:bordered="false"
|
||||
/>
|
||||
<view class="px-[32rpx] pt-[47rpx] flex flex-col" hover-class="none">
|
||||
<text class="text-[22rpx] text-[#636363] text-normal" :selectable="false" :decode="false">
|
||||
<text class="text-[24rpx] text-[#636363] text-normal" :selectable="false" :decode="false">
|
||||
为了使推荐更准确,请您认真填写
|
||||
</text>
|
||||
<text
|
||||
|
|
@ -93,7 +99,7 @@
|
|||
>
|
||||
保存
|
||||
</button>
|
||||
<view class="bg-white pb-safe" hover-class="none"></view>
|
||||
<view class="pb-safe" hover-class="none"></view>
|
||||
|
||||
<ActionSheet v-model:show="show" title="">
|
||||
<view class="px-[32rpx]">
|
||||
|
|
@ -103,7 +109,6 @@
|
|||
value-key="code"
|
||||
label-key="name"
|
||||
/>
|
||||
<!-- <PickerView /> -->
|
||||
</view>
|
||||
<view class="flex items-center justify-between px-[32rpx]">
|
||||
<view class="cancel-btn" @click="show = false">取消</view>
|
||||
|
|
@ -122,7 +127,6 @@ import RadioGroup from '@/pages-sub/components/radio-group/RadioGroup.vue'
|
|||
import Radio from '@/pages-sub/components/radio-group/Radio.vue'
|
||||
import CustomPickerView from '@/pages-sub/components/CustomPickerView.vue'
|
||||
import ActionSheet from '@/pages-sub/components/ActionSheet.vue'
|
||||
import PickerView from '@/pages-sub/components/TestPickerView.vue'
|
||||
|
||||
import {
|
||||
useRules,
|
||||
|
|
@ -141,7 +145,7 @@ const handleConfirm = () => {
|
|||
}
|
||||
|
||||
// 学期
|
||||
const term = ref(userStore.userInfo.estimatedAchievement.year)
|
||||
const term = ref(userStore.userInfo.estimatedAchievement.year || new Date().getFullYear())
|
||||
const termList = ref<{ name: string; code: number }[]>(userStore.userInfo.city.lizations)
|
||||
|
||||
const navigatorBack = () => {
|
||||
|
|
@ -175,7 +179,7 @@ const btnFlag = computed(() => {
|
|||
|
||||
onShow(() => {
|
||||
userStore.$subscribe(() => {
|
||||
requireSubject.value = userStore.userInfo.estimatedAchievement.requireSubject.code || ''
|
||||
requireSubject.value = userStore.userInfo.estimatedAchievement.requireSubject[0].code ?? ''
|
||||
optionalSubject.value = userStore.userInfo.estimatedAchievement.optionalSubject.map(
|
||||
(item) => item.code,
|
||||
)
|
||||
|
|
@ -196,23 +200,29 @@ const saveScore = () => {
|
|||
optionalSubject: optionalSubjectList.value.filter((item) =>
|
||||
optionalSubject.value.includes(item.code),
|
||||
), // 任意选择科目
|
||||
requireSubject: requireSubject.value, // 必选科目
|
||||
requireSubject: requireSubjectList.value.filter((item) => requireSubject.value === item.code), // 必选科目
|
||||
cityCode: userStore.userInfo.city.code, // 城市code
|
||||
}
|
||||
|
||||
const subjects = data.optionalSubject
|
||||
.map((item) => item.simplename)
|
||||
.concat(data.requireSubject ? data.requireSubject : [])
|
||||
.concat(data.requireSubject ? data.requireSubject[0].simplename : [])
|
||||
.join(',')
|
||||
|
||||
userStore.setEstimatedAchievement({ ...data, subjectGroup: subjects })
|
||||
console.log(subjects, data.requireSubject)
|
||||
userStore.setEstimatedAchievement({
|
||||
...data,
|
||||
subjectGroup: subjects,
|
||||
provinceName: userStore.userInfo.city.provincename,
|
||||
provinceCode: userStore.userInfo.city.code,
|
||||
})
|
||||
|
||||
savePerfectInfo({
|
||||
year: term.value,
|
||||
score: Number(score.value),
|
||||
subjectGroup: subjects,
|
||||
provinceCode: userStore.userInfo.estimatedAchievement.provinceCode,
|
||||
provinceName: userStore.userInfo.estimatedAchievement.provinceName,
|
||||
provinceCode: userStore.userInfo.city.code,
|
||||
provinceName: userStore.userInfo.city.provincename,
|
||||
}).then((res) => {
|
||||
if (res.code === 200) {
|
||||
uni.showToast({
|
||||
|
|
|
|||
|
|
@ -131,7 +131,7 @@
|
|||
"path": "home/autoFill/index",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationBarTitleText": "一键填报"
|
||||
},
|
||||
"needLogin": true
|
||||
},
|
||||
|
|
|
|||
|
|
@ -1,38 +1,48 @@
|
|||
<template>
|
||||
<scroll-view class="flex flex-col" :scroll-y="true">
|
||||
<view class="relative">
|
||||
<Navbar safeAreaInsetTop :fixed="true" bg-color="transparent" placeholder :bordered="false">
|
||||
<view class="flex flex-col relative">
|
||||
<view class="sticky top-0 z-99">
|
||||
<Navbar
|
||||
safeAreaInsetTop
|
||||
:bg-color="`rgba(255, 255, 255, ${opacity})`"
|
||||
placeholder
|
||||
:bordered="false"
|
||||
>
|
||||
<template #left>
|
||||
<navigator open-type="navigate" class="left-icon" url="/pages-sub/home/city/index">
|
||||
<text
|
||||
class="color-[#303030] font-[28rpx] font-medium"
|
||||
:selectable="false"
|
||||
:decode="false"
|
||||
>
|
||||
{{ userStore.userInfo.city.provincename ?? '城市' }}
|
||||
</text>
|
||||
<view>
|
||||
<text
|
||||
class="color-[#303030] font-[28rpx] font-medium"
|
||||
:selectable="false"
|
||||
:decode="false"
|
||||
>
|
||||
{{ userStore.userInfo.city.provincename ?? '城市' }}
|
||||
</text>
|
||||
<view class="i-carbon-chevron-down"></view>
|
||||
</view>
|
||||
</navigator>
|
||||
</template>
|
||||
<template #title>
|
||||
<view class="title">
|
||||
<image
|
||||
class="w-[198rpx] h-[28rpx]"
|
||||
class="w-[198rpx] h-[32rpx]"
|
||||
src="https://api.static.ycymedu.com/src/images/home/app-logo.svg"
|
||||
></image>
|
||||
</view>
|
||||
</template>
|
||||
</Navbar>
|
||||
<view class="h-[700rpx] w-full custom-background absolute top-0 left-0 z-[-1]"></view>
|
||||
</view>
|
||||
<view class="h-full mt-[38rpx]">
|
||||
<Banner />
|
||||
<HomeSubMenu />
|
||||
<HotRank />
|
||||
<Consultation />
|
||||
<FabButton :initial-x="0" :initial-y="100" />
|
||||
</view>
|
||||
</scroll-view>
|
||||
<TabBar :current-page="0"></TabBar>
|
||||
<view class="h-[700rpx] w-full custom-background absolute top-0 left-0 z-[-1]"></view>
|
||||
<scroll-view class="flex-1" :scroll-y="true">
|
||||
<view class="h-full mt-[38rpx]">
|
||||
<Banner />
|
||||
<HomeSubMenu />
|
||||
<HotRank />
|
||||
<Consultation />
|
||||
<FabButton :initial-x="0" :initial-y="100" />
|
||||
</view>
|
||||
</scroll-view>
|
||||
<TabBar :current-page="0"></TabBar>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
|
|
@ -40,6 +50,7 @@ import TabBar from '@/components/bar/TabBar.vue'
|
|||
import Navbar from '@/components/navbar/Navbar.vue'
|
||||
import { useCityInfo } from '@/hooks/useCityInfoHook'
|
||||
import { useUserStore } from '@/store'
|
||||
import { ref } from 'vue'
|
||||
|
||||
import Banner from '@/components/home/Banner.vue'
|
||||
import HomeSubMenu from '@/components/home/SubMenu.vue'
|
||||
|
|
@ -53,16 +64,26 @@ const userStore = useUserStore()
|
|||
|
||||
useCityInfo()
|
||||
|
||||
const opacity = ref(0)
|
||||
|
||||
onPageScroll((e) => {
|
||||
const scrollTop = e.scrollTop
|
||||
// 在0-100px的滚动范围内,透明度从0渐变到1
|
||||
opacity.value = Math.min(scrollTop / 100, 1)
|
||||
})
|
||||
|
||||
onShow(() => {
|
||||
getWxUserInfo().then((resp) => {
|
||||
const infoData = resp.result as unknown as {
|
||||
userExtend: { provinceCode: string }
|
||||
}
|
||||
if (userStore.userInfo.city.code === infoData.userExtend.provinceCode) {
|
||||
userStore.setEstimatedAchievement(infoData.userExtend)
|
||||
return
|
||||
}
|
||||
})
|
||||
if (userStore.userInfo.token) {
|
||||
getWxUserInfo().then((resp) => {
|
||||
const infoData = resp.result as unknown as {
|
||||
userExtend: { provinceCode: string }
|
||||
}
|
||||
if (userStore.userInfo.city.code === infoData.userExtend.provinceCode) {
|
||||
userStore.setEstimatedAchievement(infoData.userExtend)
|
||||
return
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
|
|
@ -70,9 +91,6 @@ onShow(() => {
|
|||
.left-icon {
|
||||
position: absolute;
|
||||
left: 32rpx;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: max-content;
|
||||
height: 40rpx;
|
||||
color: #000;
|
||||
|
|
|
|||
Loading…
Reference in New Issue