diff --git a/common/http.api.js b/common/http.api.js index a0b7388..ab43b08 100644 --- a/common/http.api.js +++ b/common/http.api.js @@ -1,6 +1,9 @@ //api集合 let apiApp = { - + schoolList: '/api/mobile/school/index', + schoolDetail: '/api/mobile/school/detail', + area: '/api/mobile/school/area', + score: '/api/mobile/school/score', } const apiUser = { appletLogin: '/api/mobile/user/applet-login', @@ -25,6 +28,10 @@ const install = (Vue, vm) => { const sendSms = (params = {}) => vm.$u.get(apiUser.sendSms, params) // + const schoolList = (params = {}) => vm.$u.get(apiApp.schoolList, params) + 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) // 将各个定义的接口名称,统一放进对象挂载到vm.$u.api(因为vm就是this,也即this.$u.api)下 vm.$u.api = { // 用户相关 @@ -36,6 +43,10 @@ const install = (Vue, vm) => { bindMobile, sendSms, // + schoolList, + schoolDetail, + area, + score }; } diff --git a/package_sub/pages/HistoryScore/HistoryScore.vue b/package_sub/pages/HistoryScore/HistoryScore.vue index ba0499d..d92f957 100644 --- a/package_sub/pages/HistoryScore/HistoryScore.vue +++ b/package_sub/pages/HistoryScore/HistoryScore.vue @@ -3,10 +3,11 @@ @@ -32,6 +33,7 @@ @confirm="({ year }) => { select.year = year closeDropdown() + getList(true) }" > @@ -39,7 +41,8 @@ @@ -51,15 +54,19 @@ - {{ item.star }} - {{ item.school }} - {{ item.score }} + {{ item.school ? item.school.star : '' }} + {{ item.school ? item.school.name : '' }} + {{ item.total_score }} + @@ -73,41 +80,76 @@ export default { keyword: "", year: new Date().getFullYear().toString(), area_id: "", + school_name: "" }, scrollTop: 0, - tableData: [ - { star: "四星", school: "苏州中学园区", score: "680>" }, - { star: "四星", school: "苏州中学园区", score: "142" }, - { star: "四星", school: "苏州中学园区", score: "959" }, - // ... 其他数据 - ], - options1: [ - { - label: "默认排序", - value: 1, - }, - { - label: "距离优先", - value: 2, - }, - { - label: "价格优先", - value: 3, - }, - ], + areaList: [], + + list: [], + total: 0, + loadStatus: 'loadmore' }; }, methods: { + 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) + } + }, closeDropdown() { this.$refs.uDropdown.close(); + }, + async getList(isRefresh) { + 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.score(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() + } } }, + created() { + this.getArea() + this.getList(true) + }, onReady() { this.defaultTime = this.$moment().format('YYYY-MM-DD HH:mm:ss') }, onPageScroll(e) { this.scrollTop = e.scrollTop; }, + onReachBottom() { + this.getList() + }, }; diff --git a/package_sub/pages/SchoolDetail/SchoolDetail.vue b/package_sub/pages/SchoolDetail/SchoolDetail.vue index 2705605..e58aa6a 100644 --- a/package_sub/pages/SchoolDetail/SchoolDetail.vue +++ b/package_sub/pages/SchoolDetail/SchoolDetail.vue @@ -1,72 +1,92 @@ diff --git a/package_sub/pages/SchoolList/SchoolList.vue b/package_sub/pages/SchoolList/SchoolList.vue index 54fe26c..d93814c 100644 --- a/package_sub/pages/SchoolList/SchoolList.vue +++ b/package_sub/pages/SchoolList/SchoolList.vue @@ -3,65 +3,73 @@ + :options="typeList" + @change="getList(true)"> - + - 苏州中学 + {{ i.name }} - 姑苏区 + {{ i.area ? i.area.name : '' }} - - 初中 + + {{ tag }} - 办学性质:公办 + 办学性质:{{ i.nature === 1 ? '公办' : (i.nature === 2 ? '民办' : '-') }} + @@ -73,35 +81,99 @@ export default { return { defaultTime: '', select: { - keyword: "", - year: new Date().getFullYear().toString(), + name: "", + type: "", + nature: "", + area_id: "", + page: 1, + page_size: 10 }, scrollTop: 0, tableData: [ ], - options1: [ + typeList: ['全部', '初中', '中专', '3+3', '五年制大专', '中本贯通5+2', '中本贯通3+4', '综合高中', '高中'].map(i => ({ label: i, value: i === '全部' ? '' : i })), + natureList: [ { - label: "默认排序", - value: 1, + label: "全部", + value: '', }, { - label: "距离优先", - value: 2, + label: "公办", + value: 1, }, { - label: "价格优先", - value: 3, - }, + label: "民办", + value: 2, + } ], + areaList: [], + + total: 0, + list: [], + loadStatus: 'loadmore', }; }, methods: { + 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.schoolList(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() + } + } + }, + computed: { + }, + onPullDownRefresh() { + this.getList(true) }, onPageScroll(e) { this.scrollTop = e.scrollTop; }, + created() { + this.getArea() + this.getList(true) + }, + onReachBottom() { + this.getList() + }, }; @@ -171,6 +243,7 @@ export default { .list-item__tags { display: flex; align-items: center; + flex-wrap: wrap; padding-top: 20rpx; &--area { diff --git a/pages/me/me.vue b/pages/me/me.vue index d27b5c9..bc3ae1c 100644 --- a/pages/me/me.vue +++ b/pages/me/me.vue @@ -6,27 +6,27 @@ - {{ vuex_user.nickname || '微信用户' }} + {{ vuex_user.nickname || '微信用户' }} 去登录 - + 我的模拟填报 - + 自主招生 - + 个人资料 @@ -40,7 +40,7 @@ - + 退出登录