master
xy 1 year ago
parent c35189484a
commit 8c1c847838

@ -4,6 +4,9 @@ let apiApp = {
schoolDetail: '/api/mobile/school/detail',
area: '/api/mobile/school/area',
score: '/api/mobile/school/score',
middleSchoolIndicatorList: '/api/mobile/school/middle-school-indicator',
middleSchoolIndicatorDetail: '/api/mobile/school/middle-school-indicator-detail',
}
const apiUser = {
appletLogin: '/api/mobile/user/applet-login',
@ -32,6 +35,8 @@ const install = (Vue, vm) => {
const schoolDetail = (params = {}) => vm.$u.get(apiApp.schoolDetail, params)
const area = (params = {}) => vm.$u.get(apiApp.area, params)
const score = (params = {}) => vm.$u.get(apiApp.score, params)
const middleSchoolIndicatorList = (params = {}) => vm.$u.get(apiApp.middleSchoolIndicatorList, params)
const middleSchoolIndicatorDetail = (params = {}) => vm.$u.get(apiApp.middleSchoolIndicatorDetail, params)
// 将各个定义的接口名称统一放进对象挂载到vm.$u.api(因为vm就是this也即this.$u.api)下
vm.$u.api = {
// 用户相关
@ -46,7 +51,9 @@ const install = (Vue, vm) => {
schoolList,
schoolDetail,
area,
score
score,
middleSchoolIndicatorList,
middleSchoolIndicatorDetail,
};
}

@ -0,0 +1,17 @@
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {};
}
}
</script>
<style lang="scss">
</style>

@ -32,6 +32,7 @@
@confirm="({ year }) => {
select.year = year
closeDropdown()
changeYear()
}"
></u-picker>
</view>
@ -45,15 +46,14 @@
</view>
<view
class="table__row"
v-for="(item, index) in tableData"
:key="index"
v-for="(item, index) in details"
:key="item.id"
>
<text class="table__row-item">{{ item.school }}</text>
<text class="table__row-item">{{ item.count }}</text>
<text class="table__row-item">{{ item.name }}</text>
<text class="table__row-item">{{ item.total }}</text>
</view>
</view>
</view>
<u-back-top :scroll-top="scrollTop"></u-back-top>
</view>
</template>
@ -63,34 +63,37 @@ export default {
return {
defaultTime: '',
select: {
keyword: "",
year: new Date().getFullYear().toString(),
area_id: "",
school_id: "",
},
scrollTop: 0,
tableData: [
{ school: "苏州中学园区", count: "680" },
{ school: "苏州中学园区", count: "142" },
{ school: "苏州中学园区", count: "959" },
// ...
],
options1: [
{
label: "默认排序",
value: 1,
},
{
label: "距离优先",
value: 2,
},
{
label: "价格优先",
value: 3,
},
],
detail: {},
details: []
};
},
methods: {
async changeYear() {
try {
const { list } = await this.$u.api.middleSchoolIndicatorList(this.select)
this.details = list.data.map(i => i.details || [])?.flat()
} catch (err) {
console.error(err)
}
},
async getDetail(id) {
try {
const { list } = await this.$u.api.middleSchoolIndicatorDetail({
id
})
const { school_id, year } = list
this.select.year = year
this.select.school_id = school_id
this.detail = list
this.details = this.detail.details
} catch (err) {
console.error(err)
}
},
closeDropdown() {
this.$refs.uDropdown.close();
}
@ -98,8 +101,10 @@ export default {
onReady() {
this.defaultTime = this.$moment().format('YYYY-MM-DD HH:mm:ss')
},
onPageScroll(e) {
this.scrollTop = e.scrollTop;
onLoad(options) {
if (options.id) {
this.getDetail(options.id)
}
},
};
</script>
@ -164,7 +169,7 @@ export default {
&__header-item,
&__row-item {
flex-basis: calc(100% / 3);
flex-basis: calc(100% / 2);
text-align: center;
}

@ -3,10 +3,11 @@
<view class="search-bar">
<view class="search-bar__input">
<u-input
v-model="select.keyword"
v-model="select.school_name"
:height="26"
placeholder="请输入学校名称"
style="flex: 1; margin-right: 40rpx"
@input="$u.debounce(() => getList(true), 1000)"
></u-input>
<u-icon name="search" color="#333" :size="30"></u-icon>
</view>
@ -32,6 +33,7 @@
@confirm="({ year }) => {
select.year = year
closeDropdown()
getList(true)
}"
></u-picker>
</view>
@ -39,7 +41,8 @@
<u-dropdown-item
v-model="select.area_id"
title="区域"
:options="options1"
:options="areaList"
@change="getList(true)"
></u-dropdown-item>
</u-dropdown>
<view class="wrap">
@ -51,21 +54,25 @@
</view>
<view
class="table__row"
v-for="(item, index) in tableData"
v-for="(item, index) in list"
:key="index"
@click="$u.route({
url: '/package_sub/pages/SchoolCount/SchoolCount',
params: {
id: item.id
}
})"
>
<text class="table__row-item">{{ item.school }}</text>
<text class="table__row-item">{{ item.count }}</text>
<text class="table__row-item">{{ item.school ? item.school.name : '' }}</text>
<text class="table__row-item">{{ item.total || '-' }}</text>
<u-icon class="table__row-arrow" name="arrow-right" color="#333" :size="30"></u-icon>
</view>
</view>
</view>
<u-loadmore
:status="loadStatus"
:margin-top="20"
></u-loadmore>
<u-back-top :scroll-top="scrollTop"></u-back-top>
</view>
</template>
@ -76,44 +83,81 @@ export default {
return {
defaultTime: '',
select: {
keyword: "",
page: 1,
page_size: 10,
school_name: "",
year: new Date().getFullYear().toString(),
area_id: "",
},
scrollTop: 0,
tableData: [
{ school: "苏州中学园区", count: "680" },
{ school: "苏州中学园区", count: "142" },
{ school: "苏州中学园区", count: "959" },
// ...
],
options1: [
{
label: "默认排序",
value: 1,
},
{
label: "距离优先",
value: 2,
},
{
label: "价格优先",
value: 3,
},
],
list: [],
areaList: [],
loadStatus: 'loadmore',
};
},
methods: {
closeDropdown() {
this.$refs.uDropdown.close();
},
async getArea() {
try {
const res = await this.$u.api.area()
this.areaList = [{
label: '全部',
value: ''
},...res.list.map(i => ({
label: i.name,
value: i.id
}))]
} catch (err) {
console.error(err)
}
},
async getList(isRefresh=false) {
if (isRefresh) {
this.select.page = 1;
this.loadStatus = 'loadmore'
}
if (this.loadStatus === 'nomore') return
try {
this.loadStatus = 'loading'
const { list: res } = await this.$u.api.middleSchoolIndicatorList(this.select);
console.log(res);
this.total = res.total;
if (isRefresh) {
this.list.length = 0;
}
this.list.push(...res.data)
if (this.list.length >= res.total) {
this.loadStatus = 'nomore'
} else {
this.select.page++;
this.loadStatus = 'loadmore'
}
} catch (err) {
console.error(err);
this.loadStatus = 'loadmore'
} finally {
uni.stopPullDownRefresh()
}
}
},
onReady() {
this.defaultTime = this.$moment().format('YYYY-MM-DD HH:mm:ss')
},
onPullDownRefresh() {
this.getList(true)
},
onPageScroll(e) {
this.scrollTop = e.scrollTop;
},
created() {
this.getArea()
this.getList(true)
},
onReachBottom() {
this.getList()
},
};
</script>

@ -81,6 +81,13 @@
"navigationBarTitleText": "我的模拟填报",
"enablePullDownRefresh": true
}
},
{
"path": "pages/IndependentRecruitment/IndependentRecruitment",
"style": {
"navigationBarTitleText": "自主招生志愿填报",
"enablePullDownRefresh": true
}
}
]
}

@ -1,32 +1,33 @@
<template>
<view class="container">
<view class="wrap">
<view class="list">
<view class="list-item">
<view class="list-item__title">
<view class="list-item__title--time">
填报时间2025-02-06 18:00
<template v-if="vuex_user.mobile">
<view class="wrap">
<view class="list">
<view class="list-item">
<view class="list-item__title">
<view class="list-item__title--time">
填报时间2025-02-06 18:00
</view>
<view class="list-item__title--tag">
规划师已查看
</view>
</view>
<view class="list-item__title--tag">
规划师已查看
</view>
</view>
<view class="list-item__body">
<view class="list-item__body--row">
所属区域吴中区
<view class="list-item__body">
<view class="list-item__body--row">
所属区域吴中区
</view>
<view class="list-item__body--row">
填报年份2025
</view>
</view>
<view class="list-item__body--row">
填报年份2025
</view>
</view>
<view class="list-item__footer">
<u-button
shape="circle"
ripple
:hair-line="false"
:custom-style="{
<view class="list-item__footer">
<u-button
shape="circle"
ripple
:hair-line="false"
:custom-style="{
'background': '#1989f9',
'color': '#f6f8f7',
'width': '120rpx',
@ -34,18 +35,22 @@
'line-height': '44rpx',
'font-size': '24rpx'
}"
@click="$u.route({
@click="$u.route({
url: '/package_sub/pages/ReportDetail/ReportDetail',
params: {
id: ''
}
})">查看</u-button>
</view>
</view>
</view>
</view>
<u-loadmore :status="status" :margin-top="40" />
</view>
<u-loadmore :status="status" :margin-top="40" />
</view>
</template>
<template v-else>
<view>请先登录</view>
</template>
</view>
</template>

@ -19,7 +19,7 @@
<u-icon name="arrow-right" :size="38" color="#a7a7a7"></u-icon>
</view>
</view>
<view class="row" v-if="vuex_user.mobile">
<view class="row" v-if="vuex_user.mobile" @click="$u.route({ url: '/package_sub/pages/IndependentRecruitment/IndependentRecruitment' })">
<image class="row__icon" src="~@/static/me/ico2.png" mode="aspectFit"></image>
<view class="row__text">自主招生</view>
<view class="row__arrow">

Loading…
Cancel
Save