Ver Fonte

完善院校筛选

shmily1213 há 7 horas atrás
pai
commit
5d001632bd

+ 4 - 0
src/App.vue

@@ -29,4 +29,8 @@ export default {
 image {
   will-change: transform, width, height;
 }
+
+.uni-toast {
+  z-index: 9999;
+}
 </style>

+ 433 - 433
src/api/modules/university.ts

@@ -1,442 +1,442 @@
-import {ApiResponse, ApiResponseList} from "@/types";
+import { ApiResponse, ApiResponseList } from "@/types";
 import flyio from "../flyio";
-import {University, UniversityDetail, UniversityTier} from "@/types/university";
+import { University, UniversityDetail, UniversityFilter, UniversityTier } from "@/types/university";
 // import {sleep} from "@/uni_modules/uv-ui-tools/libs/function";
 
 // 院校库 01 院校列表
 export function universityList(params: Record<string, any>) {
-    return flyio.get('/front/university/list', params) as Promise<ApiResponseList<University>>
+  return flyio.get('/front/university/list', params) as Promise<ApiResponseList<University>>
 }
 
 // 院校库 - 院校梯队
 export function universityListByTier() {
-    // return new Promise(async (resolve, reject) => {
-    //     await sleep(300)
-    //     const mock = [{
-    //         typeName: '第一梯队',
-    //         typeValue: '1',
-    //         desc: '文化分280分以上',
-    //         list: [
-    //             {
-    //                 "id": 10827,
-    //                 "code": "10827",
-    //                 "name": "长沙民政职业技术学院",
-    //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/e6027a8c35f7426592f161c47f336fe7.jpg",
-    //                 "location": "湖南",
-    //                 "type": "理工类",
-    //                 "comScore": "85.63",
-    //                 "cityName": "长沙市",
-    //                 "star": "5★",
-    //                 "bxLevel": "双高,公办,国家级示范,现代学徒制试点学院,理工类",
-    //                 "features": "国家级示范,现代学徒制试点学院",
-    //                 "address": "湖南省长沙市雨花区香樟路22号",
-    //                 "hits": 4161780,
-    //                 "natureTypeCN": "公办",
-    //                 "webSite": "http://zs.csmzxy.edu.cn/ddzs.htm",
-    //                 "area": 1024,
-    //                 "collect": 7915,
-    //                 "enrollLocation": "湖南"
-    //             },
-    //             {
-    //                 "id": 10830,
-    //                 "code": "10830",
-    //                 "name": "湖南工业职业技术学院",
-    //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/83386e105f03474b91d7c1824e81fa0c.jpg",
-    //                 "location": "湖南",
-    //                 "type": "理工类",
-    //                 "comScore": "81.09",
-    //                 "cityName": "长沙市",
-    //                 "star": "5★-",
-    //                 "bxLevel": "双高,公办,国家级示范,理工类",
-    //                 "features": "国家级示范",
-    //                 "address": "湖南省长沙市岳麓区含浦科教园含浦大道139号",
-    //                 "hits": 2126,
-    //                 "natureTypeCN": "公办",
-    //                 "webSite": "http://www.hunangy.com/zsjyc/",
-    //                 "area": 1031,
-    //                 "collect": 3169,
-    //                 "enrollLocation": "湖南"
-    //             },
-    //             {
-    //                 "id": 10836,
-    //                 "code": "10836",
-    //                 "name": "株洲师范高等专科学校",
-    //                 "logo": "https://www.hnzzsz.com/template/blue/static/images/logo1.png",
-    //                 "location": "湖南",
-    //                 "managerType": "湖南省教育厅",
-    //                 "type": "师范类",
-    //                 "cityName": "株洲市",
-    //                 "bxLevel": "公办,师范类",
-    //                 "address": "湖南省株洲市云龙示范区智慧路89号",
-    //                 "hits": 9,
-    //                 "natureTypeCN": "公办",
-    //                 "area": 348,
-    //                 "enrollLocation": "湖南"
-    //             },
-    //             {
-    //                 "id": 10865,
-    //                 "code": "10865",
-    //                 "name": "湖南信息职业技术学院",
-    //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/ed33a51d6ffa43ff89d93337f4a4369e.jpg",
-    //                 "location": "湖南",
-    //                 "type": "理工类",
-    //                 "comScore": "69.58",
-    //                 "cityName": "长沙市",
-    //                 "star": "3★",
-    //                 "bxLevel": "公办,理工类",
-    //                 "features": "",
-    //                 "address": "望城校区:湖南省长沙市望城区旺旺中路8号,芙蓉校区:湖南省长沙市芙蓉区职院街169号",
-    //                 "hits": 3268,
-    //                 "natureTypeCN": "公办",
-    //                 "webSite": "http://zs.hniu.cn/recruit/index/index",
-    //                 "area": 345,
-    //                 "collect": 1594,
-    //                 "enrollLocation": "湖南"
-    //             },
-    //             {
-    //                 "id": 12055,
-    //                 "code": "12055",
-    //                 "name": "长沙航空职业技术学院",
-    //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/f8ec6944910f42e8a2a430db9b37f622.jpg",
-    //                 "location": "湖南",
-    //                 "type": "理工类",
-    //                 "comScore": "80.01",
-    //                 "cityName": "长沙市",
-    //                 "star": "5★-",
-    //                 "bxLevel": "双高,公办,现代学徒制试点学院,理工类",
-    //                 "features": "现代学徒制试点学院",
-    //                 "address": "湖南省长沙市雨花区跳马镇(跳马校区),湖南省长沙市雨花区体院路348号(圭塘校区)",
-    //                 "hits": 1133,
-    //                 "natureTypeCN": "公办",
-    //                 "webSite": "http://dzw.cavtc.cn/",
-    //                 "area": 1000,
-    //                 "collect": 484,
-    //                 "enrollLocation": "湖南"
-    //             },
-    //
-    //
-    //         ]
-    //     }, {
-    //         typeName: '第二梯队',
-    //         typeValue: '2',
-    //         desc: '文化分270分以上',
-    //         list: [{
-    //             "id": 12300,
-    //             "code": "12300",
-    //             "name": "湖南大众传媒职业技术学院",
-    //             "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/2613786a1409452899cbbe1b2c413058.jpg",
-    //             "location": "湖南",
-    //             "type": "综合类",
-    //             "comScore": "71.73",
-    //             "cityName": "长沙市",
-    //             "star": "3★",
-    //             "bxLevel": "公办,国家级骨干,综合类",
-    //             "features": "国家级骨干",
-    //             "address": "湖南省长沙市星沙经济开发区特立路5号",
-    //             "hits": 6805,
-    //             "natureTypeCN": "公办",
-    //             "webSite": "http://www.hnmmc.cn:85/",
-    //             "area": 594,
-    //             "collect": 3048,
-    //             "enrollLocation": "湖南"
-    //         },
-    //             {
-    //                 "id": 12301,
-    //                 "code": "12301",
-    //                 "name": "永州职业技术学院",
-    //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/81a43cae8bb54211aa9be0849f47a708.jpg",
-    //                 "location": "湖南",
-    //                 "type": "综合类",
-    //                 "comScore": "73.17",
-    //                 "cityName": "永州市",
-    //                 "star": "4★",
-    //                 "bxLevel": "公办,国家级示范,现代学徒制试点学院,综合类",
-    //                 "features": "国家级示范,现代学徒制试点学院",
-    //                 "address": "湖南省永州市零陵区永州大道289号",
-    //                 "hits": 6508,
-    //                 "natureTypeCN": "公办",
-    //                 "webSite": "http://hnyzzy.com/zsc/",
-    //                 "area": 3362,
-    //                 "collect": 2766,
-    //                 "enrollLocation": "湖南"
-    //             },
-    //             {
-    //                 "id": 12302,
-    //                 "code": "12302",
-    //                 "name": "湖南铁道职业技术学院",
-    //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/23b6da550a584ea6b60886c6ae97b610.jpg",
-    //                 "location": "湖南",
-    //                 "type": "综合类",
-    //                 "comScore": "82.96",
-    //                 "cityName": "株洲市",
-    //                 "star": "5★",
-    //                 "bxLevel": "双高,公办,国家级示范,现代学徒制试点学院,综合类",
-    //                 "features": "国家级示范,现代学徒制试点学院",
-    //                 "address": "湖南省株洲市石峰区田心大道18号",
-    //                 "hits": 3804,
-    //                 "natureTypeCN": "公办",
-    //                 "webSite": "http://zs.hnrpc.com/zsxt-web/zzzs/hntd/index.do",
-    //                 "area": 377,
-    //                 "collect": 1277,
-    //                 "enrollLocation": "湖南"
-    //             },
-    //             {
-    //                 "id": 12304,
-    //                 "code": "12304",
-    //                 "name": "湖南科技职业学院",
-    //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/55654765a95d470f9ce32d6a2799cbdf.jpg",
-    //                 "location": "湖南",
-    //                 "type": "综合类",
-    //                 "comScore": "71.66",
-    //                 "cityName": "长沙市",
-    //                 "star": "3★",
-    //                 "bxLevel": "公办,国家级骨干,综合类",
-    //                 "features": "国家级骨干",
-    //                 "address": "雨花校区:湖南省长沙市井湾路784号,暮云校区:湖南省长沙市中意三路花园",
-    //                 "hits": 4326,
-    //                 "natureTypeCN": "公办",
-    //                 "webSite": "http://zsb.hnkjxy.net.cn/",
-    //                 "area": 1000,
-    //                 "collect": 1683,
-    //                 "enrollLocation": "湖南"
-    //             },
-    //             {
-    //                 "id": 12343,
-    //                 "code": "12343",
-    //                 "name": "湖南生物机电职业技术学院",
-    //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/7a6ac5559c424458a16fead8e6c522f9.jpg",
-    //                 "location": "湖南",
-    //                 "type": "农林类",
-    //                 "comScore": "73.31",
-    //                 "cityName": "长沙市",
-    //                 "star": "4★",
-    //                 "bxLevel": "双高,公办,现代学徒制试点学院,农林类",
-    //                 "features": "现代学徒制试点学院",
-    //                 "address": "湖南省长沙市芙蓉区隆平高科技园",
-    //                 "hits": 4992,
-    //                 "natureTypeCN": "公办",
-    //                 "webSite": "https://zsjy.hnbemc.cn/",
-    //                 "area": 2470,
-    //                 "collect": 3353,
-    //                 "enrollLocation": "湖南"
-    //             }]
-    //     }, {
-    //         typeName: '第三梯队',
-    //         typeValue: '3',
-    //         desc: '文化分260分以上',
-    //         list: [{
-    //             "id": 12397,
-    //             "code": "12397",
-    //             "name": "湖南交通职业技术学院",
-    //             "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/4446a9570f03422a92472c0bc9980825.jpg",
-    //             "location": "湖南",
-    //             "type": "理工类",
-    //             "comScore": "78.85",
-    //             "cityName": "长沙市",
-    //             "star": "5★-",
-    //             "bxLevel": "双高,公办,国家级示范,理工类",
-    //             "features": "国家级示范",
-    //             "address": "湖南省长沙市黄兴镇湖南交通职业技术学院",
-    //             "hits": 5584,
-    //             "natureTypeCN": "公办",
-    //             "webSite": "http://zsw.hnjtzy.com.cn/",
-    //             "area": 728,
-    //             "collect": 2047,
-    //             "enrollLocation": "湖南"
-    //         },
-    //             {
-    //                 "id": 12401,
-    //                 "code": "12401",
-    //                 "name": "湖南商务职业技术学院",
-    //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/a0995669452c4f2e9ad4b9faa6903883.jpg",
-    //                 "location": "湖南",
-    //                 "type": "财经类",
-    //                 "comScore": "66.37",
-    //                 "cityName": "长沙市",
-    //                 "star": "3★",
-    //                 "bxLevel": "公办,财经类",
-    //                 "features": "",
-    //                 "address": "湖南省长沙市岳麓区雷锋大道335号",
-    //                 "hits": 3381,
-    //                 "natureTypeCN": "公办",
-    //                 "webSite": "http://www.hnswxy.com/danzhao/",
-    //                 "area": 428,
-    //                 "collect": 1751,
-    //                 "enrollLocation": "湖南"
-    //             },
-    //             {
-    //                 "id": 12423,
-    //                 "code": "12423",
-    //                 "name": "湖南体育职业学院",
-    //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/ffa48630d0da4dd89f7f9855dadb8565.jpg",
-    //                 "location": "湖南",
-    //                 "type": "体育类",
-    //                 "comScore": "64.69",
-    //                 "cityName": "长沙市",
-    //                 "star": "",
-    //                 "bxLevel": "公办,体育类",
-    //                 "features": "",
-    //                 "address": "湖南省长沙市雨花区体院北路71号",
-    //                 "hits": 1143,
-    //                 "natureTypeCN": "公办",
-    //                 "webSite": "http://www.hntyxy.net/zsw.jhtml",
-    //                 "area": 689,
-    //                 "collect": 199,
-    //                 "enrollLocation": "湖南"
-    //             },
-    //             {
-    //                 "id": 12425,
-    //                 "code": "12425",
-    //                 "name": "湖南工程职业技术学院",
-    //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/475316e2a3ef4674806730bac4499c55.jpg",
-    //                 "location": "湖南",
-    //                 "type": "理工类",
-    //                 "comScore": "69.67",
-    //                 "cityName": "长沙市",
-    //                 "star": "3★",
-    //                 "bxLevel": "公办,理工类",
-    //                 "features": "",
-    //                 "address": "湖南省长沙市万家丽北路水渡河100号",
-    //                 "hits": 753,
-    //                 "natureTypeCN": "公办",
-    //                 "webSite": "http://hngczyzs.bibibi.net/recruit/index/index",
-    //                 "area": 600,
-    //                 "collect": 1790,
-    //                 "enrollLocation": "湖南"
-    //             },
-    //             {
-    //                 "id": 12596,
-    //                 "code": "12596",
-    //                 "name": "保险职业学院",
-    //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/9e259e8a208f4865ab37397d649ee051.jpg",
-    //                 "location": "湖南",
-    //                 "type": "财经类",
-    //                 "comScore": "64.26",
-    //                 "cityName": "长沙市",
-    //                 "star": "",
-    //                 "bxLevel": "公办,财经类",
-    //                 "features": "",
-    //                 "address": "湖南省长沙市天心区中豹塘路196号",
-    //                 "hits": 3985,
-    //                 "natureTypeCN": "公办",
-    //                 "webSite": "https://www.bxxy.com/html/folder/20070139-1.htm",
-    //                 "area": 157,
-    //                 "collect": 307,
-    //                 "enrollLocation": "湖南"
-    //             }]
-    //     }, {
-    //         typeName: '第四梯队',
-    //         typeValue: '4',
-    //         desc: '文化分250分以上',
-    //         list: [{
-    //             "id": 12597,
-    //             "code": "12597",
-    //             "name": "湖南外贸职业学院",
-    //             "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/4e039fa413b1435e8aaadff57306519c.jpg",
-    //             "location": "湖南",
-    //             "type": "财经类",
-    //             "comScore": "66.92",
-    //             "cityName": "长沙市",
-    //             "star": "3★",
-    //             "bxLevel": "公办,财经类",
-    //             "features": "",
-    //             "address": "湖南省长沙市芙蓉北路望城区丁字镇翻身垸",
-    //             "hits": 3086,
-    //             "natureTypeCN": "公办",
-    //             "webSite": "http://www.hnwmxy.com/hezuobangongshi/",
-    //             "area": 706,
-    //             "collect": 1945,
-    //             "enrollLocation": "湖南"
-    //         },
-    //             {
-    //                 "id": 12598,
-    //                 "code": "12598",
-    //                 "name": "湖南网络工程职业学院",
-    //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/6ed81c4da4ff4f44a356a1701459d2a5.jpg",
-    //                 "location": "湖南",
-    //                 "type": "综合类",
-    //                 "comScore": "67.38",
-    //                 "cityName": "长沙市",
-    //                 "star": "3★",
-    //                 "bxLevel": "公办,综合类",
-    //                 "features": "",
-    //                 "address": "湖南省长沙市青园路168号",
-    //                 "hits": 2689,
-    //                 "natureTypeCN": "公办",
-    //                 "webSite": "http://www2.hnevc.com/zs/",
-    //                 "area": 264,
-    //                 "collect": 739,
-    //                 "enrollLocation": "湖南"
-    //             },
-    //             {
-    //                 "id": 12600,
-    //                 "code": "12600",
-    //                 "name": "邵阳职业技术学院",
-    //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/d3ea79ff7cfe4951bc4e39d118fa5adf.jpg",
-    //                 "location": "湖南",
-    //                 "type": "综合类",
-    //                 "comScore": "64.27",
-    //                 "cityName": "邵阳市",
-    //                 "star": "",
-    //                 "bxLevel": "公办,其他,综合类",
-    //                 "features": "其他",
-    //                 "address": "湖南省邵阳市大祥区城南乡学院路",
-    //                 "hits": 1801,
-    //                 "natureTypeCN": "公办",
-    //                 "webSite": "http://www.syzyedu.com/bm/default.aspx?depid=25",
-    //                 "area": 640,
-    //                 "collect": 497,
-    //                 "enrollLocation": "湖南"
-    //             },
-    //             {
-    //                 "id": 12601,
-    //                 "code": "12601",
-    //                 "name": "湖南司法警官职业学院",
-    //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/b99a0e8c360e494ba3ddbf60cec9d21b.jpg",
-    //                 "location": "湖南",
-    //                 "type": "政法类",
-    //                 "comScore": "64.04",
-    //                 "cityName": "长沙市",
-    //                 "star": "",
-    //                 "bxLevel": "公办,政法类",
-    //                 "features": "",
-    //                 "address": "湖南省长沙市芙蓉区远大二路1069号",
-    //                 "hits": 3178,
-    //                 "natureTypeCN": "公办",
-    //                 "webSite": "http://zs.hnsfjy.cn",
-    //                 "area": 0,
-    //                 "collect": 807,
-    //                 "enrollLocation": "湖南"
-    //             },
-    //             {
-    //                 "id": 12603,
-    //                 "code": "12603",
-    //                 "name": "长沙商贸旅游职业技术学院",
-    //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/ef1bcd5af239468299787456d9307da1.jpg",
-    //                 "location": "湖南",
-    //                 "type": "财经类",
-    //                 "comScore": "75.46",
-    //                 "cityName": "长沙市",
-    //                 "star": "4★",
-    //                 "bxLevel": "双高,公办,现代学徒制试点学院,财经类",
-    //                 "features": "现代学徒制试点学院",
-    //                 "address": "湖南省长沙市雨花区圭白路16号",
-    //                 "hits": 2215,
-    //                 "natureTypeCN": "公办",
-    //                 "webSite": "http://jyzs.hncpu.com:8080/",
-    //                 "area": 712,
-    //                 "collect": 5127,
-    //                 "enrollLocation": "湖南"
-    //             }]
-    //     }]
-    //     resolve({code: 200, data: mock})
-    // })
-    // 返回全量,不需要分页
-    return flyio.get('/front/university/listByTier') as Promise<ApiResponse<UniversityTier[]>>
+  // return new Promise(async (resolve, reject) => {
+  //     await sleep(300)
+  //     const mock = [{
+  //         typeName: '第一梯队',
+  //         typeValue: '1',
+  //         desc: '文化分280分以上',
+  //         list: [
+  //             {
+  //                 "id": 10827,
+  //                 "code": "10827",
+  //                 "name": "长沙民政职业技术学院",
+  //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/e6027a8c35f7426592f161c47f336fe7.jpg",
+  //                 "location": "湖南",
+  //                 "type": "理工类",
+  //                 "comScore": "85.63",
+  //                 "cityName": "长沙市",
+  //                 "star": "5★",
+  //                 "bxLevel": "双高,公办,国家级示范,现代学徒制试点学院,理工类",
+  //                 "features": "国家级示范,现代学徒制试点学院",
+  //                 "address": "湖南省长沙市雨花区香樟路22号",
+  //                 "hits": 4161780,
+  //                 "natureTypeCN": "公办",
+  //                 "webSite": "http://zs.csmzxy.edu.cn/ddzs.htm",
+  //                 "area": 1024,
+  //                 "collect": 7915,
+  //                 "enrollLocation": "湖南"
+  //             },
+  //             {
+  //                 "id": 10830,
+  //                 "code": "10830",
+  //                 "name": "湖南工业职业技术学院",
+  //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/83386e105f03474b91d7c1824e81fa0c.jpg",
+  //                 "location": "湖南",
+  //                 "type": "理工类",
+  //                 "comScore": "81.09",
+  //                 "cityName": "长沙市",
+  //                 "star": "5★-",
+  //                 "bxLevel": "双高,公办,国家级示范,理工类",
+  //                 "features": "国家级示范",
+  //                 "address": "湖南省长沙市岳麓区含浦科教园含浦大道139号",
+  //                 "hits": 2126,
+  //                 "natureTypeCN": "公办",
+  //                 "webSite": "http://www.hunangy.com/zsjyc/",
+  //                 "area": 1031,
+  //                 "collect": 3169,
+  //                 "enrollLocation": "湖南"
+  //             },
+  //             {
+  //                 "id": 10836,
+  //                 "code": "10836",
+  //                 "name": "株洲师范高等专科学校",
+  //                 "logo": "https://www.hnzzsz.com/template/blue/static/images/logo1.png",
+  //                 "location": "湖南",
+  //                 "managerType": "湖南省教育厅",
+  //                 "type": "师范类",
+  //                 "cityName": "株洲市",
+  //                 "bxLevel": "公办,师范类",
+  //                 "address": "湖南省株洲市云龙示范区智慧路89号",
+  //                 "hits": 9,
+  //                 "natureTypeCN": "公办",
+  //                 "area": 348,
+  //                 "enrollLocation": "湖南"
+  //             },
+  //             {
+  //                 "id": 10865,
+  //                 "code": "10865",
+  //                 "name": "湖南信息职业技术学院",
+  //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/ed33a51d6ffa43ff89d93337f4a4369e.jpg",
+  //                 "location": "湖南",
+  //                 "type": "理工类",
+  //                 "comScore": "69.58",
+  //                 "cityName": "长沙市",
+  //                 "star": "3★",
+  //                 "bxLevel": "公办,理工类",
+  //                 "features": "",
+  //                 "address": "望城校区:湖南省长沙市望城区旺旺中路8号,芙蓉校区:湖南省长沙市芙蓉区职院街169号",
+  //                 "hits": 3268,
+  //                 "natureTypeCN": "公办",
+  //                 "webSite": "http://zs.hniu.cn/recruit/index/index",
+  //                 "area": 345,
+  //                 "collect": 1594,
+  //                 "enrollLocation": "湖南"
+  //             },
+  //             {
+  //                 "id": 12055,
+  //                 "code": "12055",
+  //                 "name": "长沙航空职业技术学院",
+  //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/f8ec6944910f42e8a2a430db9b37f622.jpg",
+  //                 "location": "湖南",
+  //                 "type": "理工类",
+  //                 "comScore": "80.01",
+  //                 "cityName": "长沙市",
+  //                 "star": "5★-",
+  //                 "bxLevel": "双高,公办,现代学徒制试点学院,理工类",
+  //                 "features": "现代学徒制试点学院",
+  //                 "address": "湖南省长沙市雨花区跳马镇(跳马校区),湖南省长沙市雨花区体院路348号(圭塘校区)",
+  //                 "hits": 1133,
+  //                 "natureTypeCN": "公办",
+  //                 "webSite": "http://dzw.cavtc.cn/",
+  //                 "area": 1000,
+  //                 "collect": 484,
+  //                 "enrollLocation": "湖南"
+  //             },
+  //
+  //
+  //         ]
+  //     }, {
+  //         typeName: '第二梯队',
+  //         typeValue: '2',
+  //         desc: '文化分270分以上',
+  //         list: [{
+  //             "id": 12300,
+  //             "code": "12300",
+  //             "name": "湖南大众传媒职业技术学院",
+  //             "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/2613786a1409452899cbbe1b2c413058.jpg",
+  //             "location": "湖南",
+  //             "type": "综合类",
+  //             "comScore": "71.73",
+  //             "cityName": "长沙市",
+  //             "star": "3★",
+  //             "bxLevel": "公办,国家级骨干,综合类",
+  //             "features": "国家级骨干",
+  //             "address": "湖南省长沙市星沙经济开发区特立路5号",
+  //             "hits": 6805,
+  //             "natureTypeCN": "公办",
+  //             "webSite": "http://www.hnmmc.cn:85/",
+  //             "area": 594,
+  //             "collect": 3048,
+  //             "enrollLocation": "湖南"
+  //         },
+  //             {
+  //                 "id": 12301,
+  //                 "code": "12301",
+  //                 "name": "永州职业技术学院",
+  //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/81a43cae8bb54211aa9be0849f47a708.jpg",
+  //                 "location": "湖南",
+  //                 "type": "综合类",
+  //                 "comScore": "73.17",
+  //                 "cityName": "永州市",
+  //                 "star": "4★",
+  //                 "bxLevel": "公办,国家级示范,现代学徒制试点学院,综合类",
+  //                 "features": "国家级示范,现代学徒制试点学院",
+  //                 "address": "湖南省永州市零陵区永州大道289号",
+  //                 "hits": 6508,
+  //                 "natureTypeCN": "公办",
+  //                 "webSite": "http://hnyzzy.com/zsc/",
+  //                 "area": 3362,
+  //                 "collect": 2766,
+  //                 "enrollLocation": "湖南"
+  //             },
+  //             {
+  //                 "id": 12302,
+  //                 "code": "12302",
+  //                 "name": "湖南铁道职业技术学院",
+  //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/23b6da550a584ea6b60886c6ae97b610.jpg",
+  //                 "location": "湖南",
+  //                 "type": "综合类",
+  //                 "comScore": "82.96",
+  //                 "cityName": "株洲市",
+  //                 "star": "5★",
+  //                 "bxLevel": "双高,公办,国家级示范,现代学徒制试点学院,综合类",
+  //                 "features": "国家级示范,现代学徒制试点学院",
+  //                 "address": "湖南省株洲市石峰区田心大道18号",
+  //                 "hits": 3804,
+  //                 "natureTypeCN": "公办",
+  //                 "webSite": "http://zs.hnrpc.com/zsxt-web/zzzs/hntd/index.do",
+  //                 "area": 377,
+  //                 "collect": 1277,
+  //                 "enrollLocation": "湖南"
+  //             },
+  //             {
+  //                 "id": 12304,
+  //                 "code": "12304",
+  //                 "name": "湖南科技职业学院",
+  //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/55654765a95d470f9ce32d6a2799cbdf.jpg",
+  //                 "location": "湖南",
+  //                 "type": "综合类",
+  //                 "comScore": "71.66",
+  //                 "cityName": "长沙市",
+  //                 "star": "3★",
+  //                 "bxLevel": "公办,国家级骨干,综合类",
+  //                 "features": "国家级骨干",
+  //                 "address": "雨花校区:湖南省长沙市井湾路784号,暮云校区:湖南省长沙市中意三路花园",
+  //                 "hits": 4326,
+  //                 "natureTypeCN": "公办",
+  //                 "webSite": "http://zsb.hnkjxy.net.cn/",
+  //                 "area": 1000,
+  //                 "collect": 1683,
+  //                 "enrollLocation": "湖南"
+  //             },
+  //             {
+  //                 "id": 12343,
+  //                 "code": "12343",
+  //                 "name": "湖南生物机电职业技术学院",
+  //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/7a6ac5559c424458a16fead8e6c522f9.jpg",
+  //                 "location": "湖南",
+  //                 "type": "农林类",
+  //                 "comScore": "73.31",
+  //                 "cityName": "长沙市",
+  //                 "star": "4★",
+  //                 "bxLevel": "双高,公办,现代学徒制试点学院,农林类",
+  //                 "features": "现代学徒制试点学院",
+  //                 "address": "湖南省长沙市芙蓉区隆平高科技园",
+  //                 "hits": 4992,
+  //                 "natureTypeCN": "公办",
+  //                 "webSite": "https://zsjy.hnbemc.cn/",
+  //                 "area": 2470,
+  //                 "collect": 3353,
+  //                 "enrollLocation": "湖南"
+  //             }]
+  //     }, {
+  //         typeName: '第三梯队',
+  //         typeValue: '3',
+  //         desc: '文化分260分以上',
+  //         list: [{
+  //             "id": 12397,
+  //             "code": "12397",
+  //             "name": "湖南交通职业技术学院",
+  //             "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/4446a9570f03422a92472c0bc9980825.jpg",
+  //             "location": "湖南",
+  //             "type": "理工类",
+  //             "comScore": "78.85",
+  //             "cityName": "长沙市",
+  //             "star": "5★-",
+  //             "bxLevel": "双高,公办,国家级示范,理工类",
+  //             "features": "国家级示范",
+  //             "address": "湖南省长沙市黄兴镇湖南交通职业技术学院",
+  //             "hits": 5584,
+  //             "natureTypeCN": "公办",
+  //             "webSite": "http://zsw.hnjtzy.com.cn/",
+  //             "area": 728,
+  //             "collect": 2047,
+  //             "enrollLocation": "湖南"
+  //         },
+  //             {
+  //                 "id": 12401,
+  //                 "code": "12401",
+  //                 "name": "湖南商务职业技术学院",
+  //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/a0995669452c4f2e9ad4b9faa6903883.jpg",
+  //                 "location": "湖南",
+  //                 "type": "财经类",
+  //                 "comScore": "66.37",
+  //                 "cityName": "长沙市",
+  //                 "star": "3★",
+  //                 "bxLevel": "公办,财经类",
+  //                 "features": "",
+  //                 "address": "湖南省长沙市岳麓区雷锋大道335号",
+  //                 "hits": 3381,
+  //                 "natureTypeCN": "公办",
+  //                 "webSite": "http://www.hnswxy.com/danzhao/",
+  //                 "area": 428,
+  //                 "collect": 1751,
+  //                 "enrollLocation": "湖南"
+  //             },
+  //             {
+  //                 "id": 12423,
+  //                 "code": "12423",
+  //                 "name": "湖南体育职业学院",
+  //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/ffa48630d0da4dd89f7f9855dadb8565.jpg",
+  //                 "location": "湖南",
+  //                 "type": "体育类",
+  //                 "comScore": "64.69",
+  //                 "cityName": "长沙市",
+  //                 "star": "",
+  //                 "bxLevel": "公办,体育类",
+  //                 "features": "",
+  //                 "address": "湖南省长沙市雨花区体院北路71号",
+  //                 "hits": 1143,
+  //                 "natureTypeCN": "公办",
+  //                 "webSite": "http://www.hntyxy.net/zsw.jhtml",
+  //                 "area": 689,
+  //                 "collect": 199,
+  //                 "enrollLocation": "湖南"
+  //             },
+  //             {
+  //                 "id": 12425,
+  //                 "code": "12425",
+  //                 "name": "湖南工程职业技术学院",
+  //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/475316e2a3ef4674806730bac4499c55.jpg",
+  //                 "location": "湖南",
+  //                 "type": "理工类",
+  //                 "comScore": "69.67",
+  //                 "cityName": "长沙市",
+  //                 "star": "3★",
+  //                 "bxLevel": "公办,理工类",
+  //                 "features": "",
+  //                 "address": "湖南省长沙市万家丽北路水渡河100号",
+  //                 "hits": 753,
+  //                 "natureTypeCN": "公办",
+  //                 "webSite": "http://hngczyzs.bibibi.net/recruit/index/index",
+  //                 "area": 600,
+  //                 "collect": 1790,
+  //                 "enrollLocation": "湖南"
+  //             },
+  //             {
+  //                 "id": 12596,
+  //                 "code": "12596",
+  //                 "name": "保险职业学院",
+  //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/9e259e8a208f4865ab37397d649ee051.jpg",
+  //                 "location": "湖南",
+  //                 "type": "财经类",
+  //                 "comScore": "64.26",
+  //                 "cityName": "长沙市",
+  //                 "star": "",
+  //                 "bxLevel": "公办,财经类",
+  //                 "features": "",
+  //                 "address": "湖南省长沙市天心区中豹塘路196号",
+  //                 "hits": 3985,
+  //                 "natureTypeCN": "公办",
+  //                 "webSite": "https://www.bxxy.com/html/folder/20070139-1.htm",
+  //                 "area": 157,
+  //                 "collect": 307,
+  //                 "enrollLocation": "湖南"
+  //             }]
+  //     }, {
+  //         typeName: '第四梯队',
+  //         typeValue: '4',
+  //         desc: '文化分250分以上',
+  //         list: [{
+  //             "id": 12597,
+  //             "code": "12597",
+  //             "name": "湖南外贸职业学院",
+  //             "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/4e039fa413b1435e8aaadff57306519c.jpg",
+  //             "location": "湖南",
+  //             "type": "财经类",
+  //             "comScore": "66.92",
+  //             "cityName": "长沙市",
+  //             "star": "3★",
+  //             "bxLevel": "公办,财经类",
+  //             "features": "",
+  //             "address": "湖南省长沙市芙蓉北路望城区丁字镇翻身垸",
+  //             "hits": 3086,
+  //             "natureTypeCN": "公办",
+  //             "webSite": "http://www.hnwmxy.com/hezuobangongshi/",
+  //             "area": 706,
+  //             "collect": 1945,
+  //             "enrollLocation": "湖南"
+  //         },
+  //             {
+  //                 "id": 12598,
+  //                 "code": "12598",
+  //                 "name": "湖南网络工程职业学院",
+  //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/6ed81c4da4ff4f44a356a1701459d2a5.jpg",
+  //                 "location": "湖南",
+  //                 "type": "综合类",
+  //                 "comScore": "67.38",
+  //                 "cityName": "长沙市",
+  //                 "star": "3★",
+  //                 "bxLevel": "公办,综合类",
+  //                 "features": "",
+  //                 "address": "湖南省长沙市青园路168号",
+  //                 "hits": 2689,
+  //                 "natureTypeCN": "公办",
+  //                 "webSite": "http://www2.hnevc.com/zs/",
+  //                 "area": 264,
+  //                 "collect": 739,
+  //                 "enrollLocation": "湖南"
+  //             },
+  //             {
+  //                 "id": 12600,
+  //                 "code": "12600",
+  //                 "name": "邵阳职业技术学院",
+  //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/d3ea79ff7cfe4951bc4e39d118fa5adf.jpg",
+  //                 "location": "湖南",
+  //                 "type": "综合类",
+  //                 "comScore": "64.27",
+  //                 "cityName": "邵阳市",
+  //                 "star": "",
+  //                 "bxLevel": "公办,其他,综合类",
+  //                 "features": "其他",
+  //                 "address": "湖南省邵阳市大祥区城南乡学院路",
+  //                 "hits": 1801,
+  //                 "natureTypeCN": "公办",
+  //                 "webSite": "http://www.syzyedu.com/bm/default.aspx?depid=25",
+  //                 "area": 640,
+  //                 "collect": 497,
+  //                 "enrollLocation": "湖南"
+  //             },
+  //             {
+  //                 "id": 12601,
+  //                 "code": "12601",
+  //                 "name": "湖南司法警官职业学院",
+  //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/b99a0e8c360e494ba3ddbf60cec9d21b.jpg",
+  //                 "location": "湖南",
+  //                 "type": "政法类",
+  //                 "comScore": "64.04",
+  //                 "cityName": "长沙市",
+  //                 "star": "",
+  //                 "bxLevel": "公办,政法类",
+  //                 "features": "",
+  //                 "address": "湖南省长沙市芙蓉区远大二路1069号",
+  //                 "hits": 3178,
+  //                 "natureTypeCN": "公办",
+  //                 "webSite": "http://zs.hnsfjy.cn",
+  //                 "area": 0,
+  //                 "collect": 807,
+  //                 "enrollLocation": "湖南"
+  //             },
+  //             {
+  //                 "id": 12603,
+  //                 "code": "12603",
+  //                 "name": "长沙商贸旅游职业技术学院",
+  //                 "logo": "https://mingxuejingbang.oss-cn-beijing.aliyuncs.com/ie/universityLog/ef1bcd5af239468299787456d9307da1.jpg",
+  //                 "location": "湖南",
+  //                 "type": "财经类",
+  //                 "comScore": "75.46",
+  //                 "cityName": "长沙市",
+  //                 "star": "4★",
+  //                 "bxLevel": "双高,公办,现代学徒制试点学院,财经类",
+  //                 "features": "现代学徒制试点学院",
+  //                 "address": "湖南省长沙市雨花区圭白路16号",
+  //                 "hits": 2215,
+  //                 "natureTypeCN": "公办",
+  //                 "webSite": "http://jyzs.hncpu.com:8080/",
+  //                 "area": 712,
+  //                 "collect": 5127,
+  //                 "enrollLocation": "湖南"
+  //             }]
+  //     }]
+  //     resolve({code: 200, data: mock})
+  // })
+  // 返回全量,不需要分页
+  return flyio.get('/front/university/listByTier') as Promise<ApiResponse<UniversityTier[]>>
 }
 
 export function universityDetail(params: any) {
-    return flyio.get('/front/university/detail', params) as Promise<ApiResponse<UniversityDetail>>
+  return flyio.get('/front/university/detail', params) as Promise<ApiResponse<UniversityDetail>>
 }
 
 /**
@@ -445,7 +445,7 @@ export function universityDetail(params: any) {
  * @returns
  */
 export function getUniversityList() {
-    return flyio.get('/front/student/university') as Promise<ApiResponse<any>>;
+  return flyio.get('/front/student/university') as Promise<ApiResponse<any>>;
 }
 
 /**
@@ -454,28 +454,28 @@ export function getUniversityList() {
  * @returns
  */
 export function getUniversityMajorList(params: { universityId: string }) {
-    return flyio.get('/front/student/university/major', params) as Promise<ApiResponse<any>>;
+  return flyio.get('/front/student/university/major', params) as Promise<ApiResponse<any>>;
 }
 
 /*院校筛选条件*/
 export function getUniversityFilters() {
-    return flyio.get('/front/university/filters') as Promise<ApiResponse<Record<string, string[]>>>
+  return flyio.get('/front/university/filters') as Promise<ApiResponse<UniversityFilter>>
 }
 
 // GET
 // /prod-api/front/customer/university/add
 // 03 关注院校
 export function concernUniversity(params: any) {
-    return flyio.get('/front/customer/university/add', params)
+  return flyio.get('/front/customer/university/add', params)
 }
 
 // GET
 // /prod-api/front/customer/university/remove
 // 02 移除关注院校
 export function removeConcernedUniversity(params: any) {
-    return flyio.get('/front/customer/university/remove', params)
+  return flyio.get('/front/customer/university/remove', params)
 }
 
 export function getUniversitiesEnrollBrochureDetail(params: any) {
-    return flyio.get('/front/university/getUniversitiesEnrollBrochureDetail', params)
+  return flyio.get('/front/university/getUniversitiesEnrollBrochureDetail', params)
 }

+ 264 - 264
src/common/enum.ts

@@ -2,170 +2,170 @@
  * 应用配置项的 key
  */
 export enum EnumAppConfigKey {
-    /**
-     * 短信验证码是否开启图形验证
-     */
-    SMS_CAPTCHA_ENABLE = 'sys.sms.captchaEnabled'
+  /**
+   * 短信验证码是否开启图形验证
+   */
+  SMS_CAPTCHA_ENABLE = 'sys.sms.captchaEnabled'
 }
 
 /**
  * 短信发送类型
  */
 export enum EnumSmsApiType {
-    /**
-     * 无需校验 无需token 发送短信-适用于登录
-     */
-    NO_VALIDATION_NO_TOKEN = 'NoValidationNoToken',
-    /**
-     * 需校验 需要 token 发送短信-适用于注册
-     */
-    NO_TOKEN = 'NoToken',
-    /**
-     * 普通发送短信
-     */
-    NORMAL = 'normal'
+  /**
+   * 无需校验 无需token 发送短信-适用于登录
+   */
+  NO_VALIDATION_NO_TOKEN = 'NoValidationNoToken',
+  /**
+   * 需校验 需要 token 发送短信-适用于注册
+   */
+  NO_TOKEN = 'NoToken',
+  /**
+   * 普通发送短信
+   */
+  NORMAL = 'normal'
 }
 
 /**
  * 短信类型
  */
 export enum EnumSmsType {
-    /**
-     * code
-     */
-    CODE = 'CODE',
-    /**
-     * ecard
-     */
-    ECARD = 'ECARD',
-    /**
-     * password
-     */
-    PASSWORD = 'PASSWORD'
+  /**
+   * code
+   */
+  CODE = 'CODE',
+  /**
+   * ecard
+   */
+  ECARD = 'ECARD',
+  /**
+   * password
+   */
+  PASSWORD = 'PASSWORD'
 }
 
 export enum EnumDictName {
-    /**
-     * 考生类别
-     */
-    EXAM_TYPE = 'exam_type'
+  /**
+   * 考生类别
+   */
+  EXAM_TYPE = 'exam_type'
 }
 
 export enum STATIC_PAGE_PATH {
-    /**
-     * 登录
-     */
-    LOGIN = '/pagesSystem/pages/login/login',
-    /**
-     * 注册
-     */
-    REGISTER = '/pagesSystem/pages/register/register',
-    /**
-     * 找回密码
-     */
-    FIND_PASSWORD = '/pagesSystem/pages/find-password/find-password',
-    /**
-     * 修改密码
-     */
-    CHANGE_PASSWORD = '/pagesSystem/pages/change-password/change-password',
-    /**
-     * 绑定手机号
-     */
-    BIND_PHONE = '/pagesSystem/pages/bind-phone/bind-phone'
+  /**
+   * 登录
+   */
+  LOGIN = '/pagesSystem/pages/login/login',
+  /**
+   * 注册
+   */
+  REGISTER = '/pagesSystem/pages/register/register',
+  /**
+   * 找回密码
+   */
+  FIND_PASSWORD = '/pagesSystem/pages/find-password/find-password',
+  /**
+   * 修改密码
+   */
+  CHANGE_PASSWORD = '/pagesSystem/pages/change-password/change-password',
+  /**
+   * 绑定手机号
+   */
+  BIND_PHONE = '/pagesSystem/pages/bind-phone/bind-phone'
 }
 
 export enum EnumExamMode {
-    /**
-     * 练习
-     */
-    PRACTICE = 1,
-    /**
-     * 考试
-     */
-    EXAM = 2
+  /**
+   * 练习
+   */
+  PRACTICE = 1,
+  /**
+   * 考试
+   */
+  EXAM = 2
 }
 
 /**
  * 题目类型
  */
 export enum EnumQuestionType {
-    /**
-     * 单选
-     */
-    SINGLE_CHOICE = 1,
-    /**
-     * 多选
-     */
-    MULTIPLE_CHOICE = 2,
-    /**
-     * 判断
-     */
-    JUDGMENT = 3,
-    /**
-     * 填空
-     */
-    FILL_IN_THE_BLANK = 4,
-    /**
-     * 主观题
-     */
-    SUBJECTIVE = 5,
-    /**
-     * 简答
-     */
-    SHORT_ANSWER = 6,
-    /**
-     * 问答题
-     */
-    ESSAY = 7,
-    /**
-     * 分析题
-     */
-    ANALYSIS = 8,
+  /**
+   * 单选
+   */
+  SINGLE_CHOICE = 1,
+  /**
+   * 多选
+   */
+  MULTIPLE_CHOICE = 2,
+  /**
+   * 判断
+   */
+  JUDGMENT = 3,
+  /**
+   * 填空
+   */
+  FILL_IN_THE_BLANK = 4,
+  /**
+   * 主观题
+   */
+  SUBJECTIVE = 5,
+  /**
+   * 简答
+   */
+  SHORT_ANSWER = 6,
+  /**
+   * 问答题
+   */
+  ESSAY = 7,
+  /**
+   * 分析题
+   */
+  ANALYSIS = 8,
 
-    /**
-     * 阅读题
-     */
-    OTHER = 99
+  /**
+   * 阅读题
+   */
+  OTHER = 99
 }
 
 /**
  * 用户类型
  */
 export enum EnumUserType {
-    /**
-     * 系统用户
-     */
-    SYSTEM = '00',
-    /**
-     * 学生
-     */
-    STUDENT = '01',
-    /**
-     * 教师
-     */
-    TEACHER = '11',
-    /**
-     * 代理商
-     */
-    AGENT = '10',
-    /**
-     * 机构
-     */
-    AGENCY = '12'
+  /**
+   * 系统用户
+   */
+  SYSTEM = '00',
+  /**
+   * 学生
+   */
+  STUDENT = '01',
+  /**
+   * 教师
+   */
+  TEACHER = '11',
+  /**
+   * 代理商
+   */
+  AGENT = '10',
+  /**
+   * 机构
+   */
+  AGENCY = '12'
 }
 
 /**
  * 考试类型
  */
 export enum EnumExamRecordType {
-    /**
-     * 模拟考试
-     */
-    SIMULATED = 'simulated',
-    /**
-     * 组卷作业
-     */
-    HOMEWORK = 'homework'
+  /**
+   * 模拟考试
+   */
+  SIMULATED = 'simulated',
+  /**
+   * 组卷作业
+   */
+  HOMEWORK = 'homework'
 }
 
 
@@ -173,177 +173,177 @@ export enum EnumExamRecordType {
  * 绑定场景
  */
 export enum EnumBindScene {
-    /**
-     * 注册
-     */
-    REGISTER = 'register',
-    /**
-     * 注册绑定
-     */
-    REGISTER_BIND = 'register_bind',
-    /**
-     * 登录绑定
-     */
-    LOGIN_BIND = 'login_bind',
-    /**
-     * 老师或者代理商完善信息
-     */
-    IMPROVE = 'improve'
+  /**
+   * 注册
+   */
+  REGISTER = 'register',
+  /**
+   * 注册绑定
+   */
+  REGISTER_BIND = 'register_bind',
+  /**
+   * 登录绑定
+   */
+  LOGIN_BIND = 'login_bind',
+  /**
+   * 老师或者代理商完善信息
+   */
+  IMPROVE = 'improve'
 }
 
 export enum EnumExamType {
-    /**
-     * 职高对口升学
-     */
-    VHS = 'VHS',
-    /**
-     * 单招(应届普高)
-     */
-    OHS = 'OHS',
-    /**
-     * 单招(中职)
-     */
-    SVS = 'SVS'
+  /**
+   * 职高对口升学
+   */
+  VHS = 'VHS',
+  /**
+   * 单招(应届普高)
+   */
+  OHS = 'OHS',
+  /**
+   * 单招(中职)
+   */
+  SVS = 'SVS'
 }
 
 export enum EnumSimulatedRecordStatus {
-    /**
-     * 空卷
-     */
-    INIT = 1,
-    /**
-     * 签到
-     */
-    SIGN = 2,
-    /**
-     * 考试
-     */
-    EXAM = 3,
-    /**
-     * 交卷
-     */
-    SUBMIT = 4,
-    /**
-     * 阅卷
-     */
-    REVIEW = 5,
-    /**
-     * 发布
-     */
-    PUBLISH = 6,
-    /**
-     * 关闭
-     */
-    CLOSE = 7,
+  /**
+   * 空卷
+   */
+  INIT = 1,
+  /**
+   * 签到
+   */
+  SIGN = 2,
+  /**
+   * 考试
+   */
+  EXAM = 3,
+  /**
+   * 交卷
+   */
+  SUBMIT = 4,
+  /**
+   * 阅卷
+   */
+  REVIEW = 5,
+  /**
+   * 发布
+   */
+  PUBLISH = 6,
+  /**
+   * 关闭
+   */
+  CLOSE = 7,
 }
 
 export enum EnumPaperType {
-    /**
-     * 练习
-     */
-    PRACTICE = 'Practice',
-    /**
-     * 考试
-     */
-    SIMULATED = 'Simulated',
-    /**
-     * 教材同步练习
-     */
-    COURSE = 'Course',
-    /**
-     * 测试卷
-     */
-    TEST = 'Test'
+  /**
+   * 练习
+   */
+  PRACTICE = 'Practice',
+  /**
+   * 考试
+   */
+  SIMULATED = 'Simulated',
+  /**
+   * 教材同步练习
+   */
+  COURSE = 'Course',
+  /**
+   * 测试卷
+   */
+  TEST = 'Test'
 }
 
 export enum EnumReviewMode {
-    /**
-     * 交卷后评卷
-     */
-    AFTER_SUBMIT = 1,
-    /**
-     * 答完一题就评卷
-     */
-    DURING_ANSWER = 2
+  /**
+   * 交卷后评卷
+   */
+  AFTER_SUBMIT = 1,
+  /**
+   * 答完一题就评卷
+   */
+  DURING_ANSWER = 2
 }
 
 export enum EnumUserRole {
-    /**
-     * 普通用户
-     */
-    NORMAL = 'normal',
-    /**
-     * 游客
-     */
-    GUEST = 'guest',
-    /**
-     * 会员
-     */
-    VIP = 'vip',
-    /**
-     * 代理商
-     */
-    AGENT = 'agent',
-    /**
-     * 教师
-     */
-    TEACHER = 'teacher'
+  /**
+   * 普通用户
+   */
+  NORMAL = 'normal',
+  /**
+   * 游客
+   */
+  GUEST = 'guest',
+  /**
+   * 会员
+   */
+  VIP = 'vip',
+  /**
+   * 代理商
+   */
+  AGENT = 'agent',
+  /**
+   * 教师
+   */
+  TEACHER = 'teacher'
 }
 
 export enum EnumEvent {
-    /**
-     * 打开VIP弹窗
-     */
-    OPEN_VIP_POPUP = 'OPEN_VIP_POPUP'
+  /**
+   * 打开VIP弹窗
+   */
+  OPEN_VIP_POPUP = 'OPEN_VIP_POPUP'
 }
 
 /**
  * 卡类型
  */
 export enum CardType {
-    VIP = 1,
-    DEPT = 2,
-    PLATFORM = 6,
-    /**
-     * 体验卡
-     */
-    EXPERIENCE = 9
+  VIP = 1,
+  DEPT = 2,
+  PLATFORM = 6,
+  /**
+   * 体验卡
+   */
+  EXPERIENCE = 9
 }
 
 export enum EnumPaperWorkState {
-    /**
-     * 未完成
-     */
-    NOT_COMPLETED = 2,
-    /**
-     * 已完成
-     */
-    COMPLETED = 4
+  /**
+   * 未完成
+   */
+  NOT_COMPLETED = 2,
+  /**
+   * 已完成
+   */
+  COMPLETED = 4
 }
 
 export enum EnumPaperBuildType {
-    /**
-     * 定向智能
-     */
-    EXACT_INTELLIGENT = 'ExactIntelligent',
-    /**
-     * 全量智能
-     */
-    FULL_INTELLIGENT = 'FullIntelligent',
-    /**
-     * 定向手动
-     */
-    EXACT_HAND = 'ExactHand',
-    /**
-     * 全量手动
-     */
-    FULL_HAND = 'FullHand'
+  /**
+   * 定向智能
+   */
+  EXACT_INTELLIGENT = 'ExactIntelligent',
+  /**
+   * 全量智能
+   */
+  FULL_INTELLIGENT = 'FullIntelligent',
+  /**
+   * 定向手动
+   */
+  EXACT_HAND = 'ExactHand',
+  /**
+   * 全量手动
+   */
+  FULL_HAND = 'FullHand'
 }
 
 export enum EnumBrochureType {
-    INTRODUCTION = 1, // 学校概况
-    ENROLL_RULE = 2, // 招生简章
-    EXAM_TIME = 3, // 考试大纲
-    WORK = 4, // 就业
-    OTHER_RULE = 5 // 其它
+  INTRODUCTION = 1, // 学校概况
+  ENROLL_RULE = 2, // 招生简章
+  EXAM_TIME = 3, // 考试大纲
+  WORK = 4, // 就业
+  OTHER_RULE = 5 // 其它
 }

+ 3 - 1
src/components/ie-auto-resizer/ie-auto-resizer.vue

@@ -1,7 +1,9 @@
 <template>
 <view class="flex-1 min-h-1 relative">
   <view class="absolute inset-0">
-    <slot></slot>
+    <view class="h-full">
+      <slot></slot>
+    </view>
   </view>
 </view>
 </template>

+ 82 - 4
src/components/ie-dropdown/ie-dropdown-hooks.ts

@@ -3,6 +3,76 @@ import type { InjectionKey } from "vue";
 
 export const DROPDOWN_SYMBOL = Symbol('DROPDOWN_SYMBOL') as InjectionKey<ReturnType<typeof useDropdown>>;
 
+/**
+ * 深拷贝一个值
+ * @param value 要拷贝的值
+ * @returns 深拷贝后的值
+ */
+const deepClone = (value: any): any => {
+  // 如果是基本类型或 null/undefined,直接返回
+  if (value == null || typeof value !== 'object') {
+    return value;
+  }
+
+  // 如果是数组,递归拷贝每个元素
+  if (Array.isArray(value)) {
+    return value.map(item => deepClone(item));
+  }
+
+  // 如果是对象,递归拷贝所有属性
+  const cloned: Record<string, any> = {};
+  for (const key in value) {
+    if (Object.prototype.hasOwnProperty.call(value, key)) {
+      cloned[key] = deepClone(value[key]);
+    }
+  }
+  return cloned;
+};
+
+/**
+ * 深度比较两个值是否严格相等
+ * @param a 第一个值
+ * @param b 第二个值
+ * @returns 是否相等
+ */
+const deepEqual = (a: any, b: any): boolean => {
+  // 如果引用相同,直接返回 true
+  if (a === b) return true;
+
+  // 如果其中一个为 null 或 undefined
+  if (a == null || b == null) return a === b;
+
+  // 如果类型不同,返回 false
+  if (typeof a !== typeof b) return false;
+
+  // 如果是基本类型(非对象),直接比较
+  if (typeof a !== 'object') return a === b;
+
+  // 如果是数组
+  if (Array.isArray(a) && Array.isArray(b)) {
+    if (a.length !== b.length) return false;
+    return a.every((item, index) => deepEqual(item, b[index]));
+  }
+
+  // 如果一个是数组,另一个不是,返回 false
+  if (Array.isArray(a) || Array.isArray(b)) return false;
+
+  // 如果是对象,比较所有键值对
+  const keysA = Object.keys(a);
+  const keysB = Object.keys(b);
+
+  // 键的数量不同,返回 false
+  if (keysA.length !== keysB.length) return false;
+
+  // 检查所有键是否都存在且值相等
+  for (const key of keysA) {
+    if (!keysB.includes(key)) return false;
+    if (!deepEqual(a[key], b[key])) return false;
+  }
+
+  return true;
+};
+
 export const useDropdown = (configs: Dropdown.DropdownItem[]) => {
   const list = computed(() => configs);
   const form = ref<Record<string, any>>({});
@@ -15,13 +85,19 @@ export const useDropdown = (configs: Dropdown.DropdownItem[]) => {
     openIndex.value = -1;
   }
   const submit = (index: number, value: any) => {
-    form.value[list.value[index].prop] = value;
+    form.value = {
+      ...form.value,
+      [list.value[index].prop]: value
+    };
   }
   const reset = (index: number) => {
-    form.value[list.value[index].prop] = list.value[index].value;
+    form.value = {
+      ...form.value,
+      [list.value[index].prop]: list.value[index].value
+    };
   }
   const init = (initValue: Record<string, any>) => {
-    form.value = initValue;
+    form.value = { ...initValue };
     list.value.forEach(item => {
       item.value = initValue[item.prop] || item.value;
     });
@@ -34,6 +110,8 @@ export const useDropdown = (configs: Dropdown.DropdownItem[]) => {
     open,
     close,
     submit,
-    reset
+    reset,
+    deepEqual,
+    deepClone
   }
 }

+ 8 - 8
src/components/ie-dropdown/ie-dropdown-item.vue

@@ -12,21 +12,21 @@
         <uv-icon name="arrow-down" :color="show ? 'primary' : 'info'" size="14" />
       </view>
     </view>
-    <view v-show="isOpen" class="fixed left-0 right-0" :style="containerStyle">
+    <view v-show="isOpen" class="fixed left-0 right-0 z-[9999]" :style="containerStyle">
       <view class="fixed z-0 overflow-hidden" :id="`dropdown-content-${config.prop}`" :style="maskStyle"
         @click="handleMaskClick">
       </view>
       <view class="relative z-1 overflow-hidden ">
-        <view
-          class="left-0 right-0 z-1 w-full bg-white max-h-300 overflow-auto p-24 box-border transition-transform duration-300 ease-out"
+        <view class="left-0 right-0 z-1 w-full bg-white box-border transition-transform duration-300 ease-out"
           :style="contentStyle" @click="">
-          <view>
+          <scroll-view class="relative max-h-[300px]" scroll-y>
             <uv-checkbox-group v-model="checkboxValue" placement="column" iconPlacement="right" borderBottom>
-              <uv-checkbox :customStyle="{ marginBottom: '8px' }" v-for="(item, index) in config.options" :key="index"
-                :label="item.label" :name="item.value"></uv-checkbox>
+              <uv-checkbox :customStyle="{ marginBottom: '0', paddingBottom: '0', height: '36px', padding: '0 10px' }"
+                v-for="(item, index) in config.options" :key="index" :label="item.label"
+                :name="item.value"></uv-checkbox>
             </uv-checkbox-group>
-          </view>
-          <view class="mt-10 flex items-center justify-between gap-24">
+          </scroll-view>
+          <view class="flex items-center justify-between gap-24 p-[12px]">
             <view class="flex-1">
               <uv-button type="primary" plain shape="circle" @click="handleReset">重置</uv-button>
             </view>

+ 10 - 2
src/components/ie-dropdown/ie-dropdown.vue

@@ -7,7 +7,7 @@
 </template>
 <script lang="ts" setup>
 import IeDropdownItem from './ie-dropdown-item.vue';
-import { type Dropdown } from '@/types';
+import type { Dropdown } from '@/types';
 import { useDropdown, DROPDOWN_SYMBOL } from './ie-dropdown-hooks';
 
 const emit = defineEmits<{
@@ -19,15 +19,23 @@ const props = defineProps<{
 }>();
 const dropdown = useDropdown(props.configs);
 
+const prevFormValue = ref<Record<string, any>>({});
+
 watch(() => dropdown.form.value, (newVal) => {
+  const oldVal = prevFormValue.value;
   modelValue.value = newVal;
-  emit('change', newVal);
+  if (!dropdown.deepEqual(newVal, oldVal)) {
+    emit('change', newVal);
+  }
+  prevFormValue.value = dropdown.deepClone(newVal);
 }, {
   deep: true
 });
+
 provide(DROPDOWN_SYMBOL, dropdown);
 onMounted(() => {
   dropdown.init(modelValue.value || {});
+  prevFormValue.value = dropdown.deepClone(dropdown.form.value);
 });
 </script>
 <style lang="scss" scoped></style>

+ 9 - 9
src/components/ie-popup/ie-popup.vue

@@ -24,15 +24,15 @@
 </template>
 <script lang="ts" setup>
 type Props = {
-  title: string;
-  cancelText: string;
-  confirmText: string;
-  mode: 'bottom' | 'center' | 'top';
-  round: number;
-  closeOnClickOverlay: boolean;
-  showToolbar: boolean;
-  showCancel: boolean;
-  showConfirm: boolean;
+  title?: string;
+  cancelText?: string;
+  confirmText?: string;
+  mode?: 'bottom' | 'center' | 'top';
+  round?: number;
+  closeOnClickOverlay?: boolean;
+  showToolbar?: boolean;
+  showCancel?: boolean;
+  showConfirm?: boolean;
 }
 const props = withDefaults(defineProps<Props>(), {
   title: '',

+ 44 - 0
src/global.d.ts

@@ -8,6 +8,50 @@ declare global {
     $uv: any;
     $zp: any;
   }
+  
+  /**
+   * 微信小程序 API 接口
+   */
+  interface Wx {
+    /**
+     * 打开浏览器
+     * @param options - 配置选项
+     * @param options.url - 要打开的网址
+     * @param options.success - 成功回调
+     * @param options.fail - 失败回调
+     */
+    openBrowser?: (options: {
+      url: string;
+      success?: () => void;
+      fail?: (err: any) => void;
+    }) => void;
+  }
+  
+  /**
+   * 支付宝小程序 API 接口
+   */
+  interface My {
+    /**
+     * 打开浏览器
+     * @param options - 配置选项
+     * @param options.url - 要打开的网址
+     */
+    openBrowser?: (options: { url: string }) => void;
+  }
+  
+  /**
+   * 微信小程序全局对象
+   * 仅在微信小程序环境中可用
+   * 使用条件编译指令 #ifdef MP-WEIXIN 确保只在微信小程序环境中使用
+   */
+  var wx: Wx;
+  
+  /**
+   * 支付宝小程序全局对象
+   * 仅在支付宝小程序环境中可用
+   * 使用条件编译指令 #ifdef MP-ALIPAY 确保只在支付宝小程序环境中使用
+   */
+  var my: My;
 }
 
 declare module 'pinia' {

+ 16 - 16
src/pagesOther/pages/university/index/components/college-list.vue

@@ -3,7 +3,7 @@
     <z-paging ref="paging" v-model="list" @query="handleQuery">
       <template #top>
         <slot name="top" />
-        <college-conditions-picker :options="filterOptions" />
+        <college-conditions-picker v-if="filterOptions" :options="filterOptions" @change="handleSearch" />
         <ie-search v-model="queryParams.name" placeholder="输入院校名称" @search="handleSearch" @clear="handleSearch" />
       </template>
       <view class="p-20 flex flex-col gap-20">
@@ -16,7 +16,7 @@
 <script setup lang="ts">
 import { useTransferPage } from "@/hooks/useTransferPage";
 import { getUniversityFilters, universityList } from "@/api/modules/university";
-import { University, UniversityQueryDto } from "@/types/university";
+import type { University, UniversityQueryDto, UniversityFilter } from "@/types/university";
 import { UNIVERSITY_FILTER } from "@/types/injectionSymbols";
 import CollegeConditionsPicker from "@/pagesOther/pages/university/index/components/plus/college-conditions-picker.vue";
 import CollegeItem from "@/pagesOther/pages/university/index/components/plus/college-item.vue";
@@ -34,7 +34,7 @@ const emits = defineEmits(['item-click'])
 const { prevData, transferTo } = useTransferPage()
 const paging = ref<ZPagingInstance>()
 const list = ref<University[]>([])
-const filterOptions = ref<Record<string, any>>({})
+const filterOptions = ref<UniversityFilter | null>(null)
 const queryParams = ref<UniversityQueryDto>({
   name: '',
   features: [],
@@ -50,35 +50,35 @@ const handleSearch = async () => {
 }
 
 const handleQuery = (pageNum: number, pageSize: number) => {
-  const query = { pageNum, pageSize, ...props.extraFilter, ...queryParams.value }
+  const filterParams: Record<string, string> = {};
+  Object.keys(queryParams.value).forEach(item => {
+    const value = queryParams.value[item as keyof UniversityQueryDto]
+    filterParams[item] = Array.isArray(value) ? value.join(',') : value
+  });
+  const query = { pageNum, pageSize, ...props.extraFilter, ...filterParams }
   universityList(query)
     .then(res => paging.value?.completeByTotal(res.rows, res.total))
     .catch(e => paging.value?.complete(false))
 }
 
 const handleDetail = (u: University) => {
-  if (props.customItemClick) return emits('item-click', u)
+  if (props.customItemClick) {
+    return emits('item-click', u)
+  }
   const { id, code, name } = u
   transferTo(routes.universityDetail, { data: { id, code, name } })
 }
 
 provide(UNIVERSITY_FILTER, queryParams)
 
-watch([
-  () => queryParams.value.features,
-  () => queryParams.value.type,
-  () => queryParams.value.natureTypeCN,
-  () => queryParams.value.location,
-  () => queryParams.value.level,
-  () => queryParams.value.tier
-], () => handleSearch())
-
 onMounted(async () => {
   const { data } = await getUniversityFilters()
   filterOptions.value = data
   // accept default query parameters
-  if (prevData.value.tier) queryParams.value.tier = [prevData.value.tier]
-})
+  if (prevData.value.tier) {
+    queryParams.value.tier = [prevData.value.tier]
+  }
+});
 
 </script>
 

+ 90 - 14
src/pagesOther/pages/university/index/components/plus/college-conditions-picker.vue

@@ -1,26 +1,102 @@
 <template>
+  <view>
+    <ie-dropdown :configs="configs" v-model="form" @change="handleChange" />
+  </view>
 </template>
 
 <script setup lang="ts">
 
-import {UNIVERSITY_FILTER} from "@/types/injectionSymbols";
-import {UniversityQueryDto} from "@/types/university";
+import type { Dropdown } from "@/types";
+import { UNIVERSITY_FILTER } from "@/types/injectionSymbols";
+import type { UniversityQueryDto, UniversityFilter } from "@/types/university";
 
 const props = defineProps<{
-    options: Record<string, any>; // any: string[] | {id: name}
+  options: UniversityFilter;
 }>()
 const filter = inject(UNIVERSITY_FILTER) || ref({} as UniversityQueryDto)
 
-const config = [
-    // 用optionKey在props.options中取出选项,选择后的赋值给filter[prop]
-    {label: '院校层次', optionKey: 'features', prop: 'features'},
-    {label: '院校类型', optionKey: 'types', prop: 'type'},
-    {label: '办学类型', optionKey: 'natureTypes', prop: 'natureType'},
-    {label: '院校省份', optionKey: 'locations', prop: 'location'},
-    {label: '院校梯队', optionKey: 'tiers', prop: 'tier'},
-]
+const emit = defineEmits<{
+  (e: 'change', value: UniversityQueryDto): void;
+}>();
+const options = [
+  {
+    label: '院校层次',
+    prop: 'features',
+    optionKey: 'features',
+    keyName: 'label',
+    keyValue: 'value',
+  },
+  {
+    label: '院校类型',
+    prop: 'type',
+    optionKey: 'types',
+    keyName: 'label',
+    keyValue: 'value',
+  },
+  {
+    label: '办学类型',
+    prop: 'natureTypeCN',
+    optionKey: 'natureTypes',
+    keyName: 'label',
+    keyValue: 'value',
+  },
+  {
+    label: '院校省份',
+    prop: 'location',
+    optionKey: 'locations',
+    keyName: 'label',
+    keyValue: 'value',
+  },
+  {
+    label: '院校梯队',
+    prop: 'tier',
+    optionKey: 'tiers',
+    keyName: 'label',
+    keyValue: 'value',
+  },
+];
+const form = ref<Record<string, any>>({});
+const configs = computed<Dropdown.DropdownItem[]>(() => {
+  return options.map(item => {
+    const list = props.options[item.optionKey as keyof UniversityFilter] || [];
+    if (Array.isArray(list)) {
+      return {
+        label: item.label,
+        prop: item.prop,
+        keyName: item.keyName,
+        keyValue: item.keyValue,
+        options: list.map(item => {
+          return {
+            label: item,
+            value: item,
+          }
+        }),
+        value: []
+      }
+    } else {
+      return {
+        label: item.label,
+        prop: item.prop,
+        keyName: item.keyName,
+        keyValue: item.keyValue,
+        options: Object.entries(list).map(([key, value]) => {
+          return {
+            label: value,
+            value: key,
+          }
+        }),
+        value: []
+      }
+    }
+  });
+});
+const handleChange = (value: any) => {
+  filter.value = {
+    ...filter.value,
+    ...value,
+  }
+  emit('change', filter.value);
+}
 </script>
 
-<style scoped>
-
-</style>
+<style scoped></style>

+ 3 - 2
src/pagesStudy/components/paper-work-item.vue

@@ -49,7 +49,8 @@ import { EnumPaperType, EnumPaperWorkState } from '@/common/enum';
 import { useTransferPage } from '@/hooks/useTransferPage';
 import { getPaperWorkDetail, getOpenExaminee } from '@/api/modules/study';
 import { Study, Transfer } from '@/types';
-import { formatSeconds } from '@/utils/common';
+import { formatSeconds, formatTime } from '@/utils/format';
+
 const { transferTo } = useTransferPage();
 const props = defineProps<{
   data: Study.PaperWork;
@@ -66,7 +67,7 @@ const batchName = computed(() => {
   return `${subjectName}(${batchName || ''})`;
 });
 const publishTime = computed(() => {
-  return uni.$ie.formatTime(props.data.publishTime, 'yyyy年mm月dd日 hh:MM:ss');
+  return formatTime(props.data.publishTime, 'yyyy年mm月dd日 hh:MM:ss');
 });
 
 const handleDetail = () => {

+ 1 - 1
src/types/dropdown.ts

@@ -1,7 +1,7 @@
 export interface DropdownItem {
   placeholder?: string;
   label: string;
-  value: string | number;
+  value: string | number | string[] | number[];
   prop: string;
   keyName?: string;
   keyValue?: string;

+ 1 - 0
src/types/index.ts

@@ -9,6 +9,7 @@ import * as Tree from "./tree";
 import * as Voluntary from "./voluntary";
 import * as University from "./university";
 import * as Dropdown from "./dropdown";
+import * as University from "./university";
 import { VipCardInfo } from "./user";
 import { EnumExamMode, EnumExamType, EnumReviewMode } from "@/common/enum";
 

+ 93 - 83
src/types/university.ts

@@ -1,103 +1,113 @@
-import {EnumBrochureType} from "@/common/enum";
+import { EnumBrochureType } from "@/common/enum";
 
 export interface University {
-    bannerUrl: string;
-    address: string;
-    area: string | number;
-    bxLevel: string;
-    bxType: string; // 现在似乎没有值
-    cityName: string;
-    code: string;
-    collect: string | number;
-    collected: boolean;
-    comScore: string | number;
-    enrollLocation: string;
-    features: string;
-    hits: number;
-    id: number;
-    location: string;
-    logo: string;
-    name: string;
-    natureTypeCN: string;
-    star: string;
-    type: string;
-    webSite: string;
-    tier: string;
-    tierName: string;
-    introduction: string;
-    tel: string;
+  bannerUrl: string;
+  address: string;
+  area: string | number;
+  bxLevel: string;
+  bxType: string; // 现在似乎没有值
+  cityName: string;
+  code: string;
+  collect: string | number;
+  collected: boolean;
+  comScore: string | number;
+  enrollLocation: string;
+  features: string;
+  hits: number;
+  id: number;
+  location: string;
+  logo: string;
+  name: string;
+  natureTypeCN: string;
+  star: string;
+  type: string;
+  webSite: string;
+  tier: string;
+  tierName: string;
+  introduction: string;
+  tel: string;
 }
 
 export interface UniversityProfession {
-    "remark": string;
-    "id": string | number;
-    "collegeCode": string;
-    "type": string;
-    "code": string;
-    "name": string;
-    "ranking": number | null;
-    "count": number | null;
-    "hot": number | null;
-    "examType": string;
-    "enrollCode": string;
-    "majorDirection": string;
+  "remark": string;
+  "id": string | number;
+  "collegeCode": string;
+  "type": string;
+  "code": string;
+  "name": string;
+  "ranking": number | null;
+  "count": number | null;
+  "hot": number | null;
+  "examType": string;
+  "enrollCode": string;
+  "majorDirection": string;
 }
 
 export interface UniversityBrochure {
-    "createBy": string;
-    "createTime": string;
-    "updateBy": string;
-    "updateTime": string;
-    "remark": string;
-    "id": number;
-    "year": string;
-    "collegeCode": string;
-    "collegeName": string;
-    "editor": string;
-    "url": string;
-    "summary": string;
-    "title": string;
-    "isArt": boolean|null;
-    "type": EnumBrochureType;
-    "metaDescription": string;
-    "content": string;
-    "tags": string;
-    "isShow": number;
-    "hits": number;
-    "createTime2": string;
-    "typeName": string;
+  "createBy": string;
+  "createTime": string;
+  "updateBy": string;
+  "updateTime": string;
+  "remark": string;
+  "id": number;
+  "year": string;
+  "collegeCode": string;
+  "collegeName": string;
+  "editor": string;
+  "url": string;
+  "summary": string;
+  "title": string;
+  "isArt": boolean | null;
+  "type": EnumBrochureType;
+  "metaDescription": string;
+  "content": string;
+  "tags": string;
+  "isShow": number;
+  "hits": number;
+  "createTime2": string;
+  "typeName": string;
 
-    "logo"?: string;
+  "logo"?: string;
 }
 
 export interface UniversityDetail {
-    baseInfo: University;
-    enrollBrochures: UniversityBrochure[];
-    enrollHistories: [];
-    planHistories: [];
-    professions: UniversityProfession[];
+  baseInfo: University;
+  enrollBrochures: UniversityBrochure[];
+  enrollHistories: [];
+  planHistories: [];
+  professions: UniversityProfession[];
 }
 
 export interface UniversityQueryDto {
-    name: string | null;
-    features: string[] | null;
-    type: string[] | null;
-    natureTypeCN: string[] | null;
-    location: string[] | null;
-    level: string[] | null;
-    tier: string[] | null;
+  name: string;
+  features: string[];
+  type: string[];
+  natureTypeCN: string[];
+  location: string[];
+  level: string[];
+  tier: string[];
 }
 
 export interface UniversityTier {
-    typeName: string;
-    typeValue: string | number;
-    desc: string;
-    list: University[];
+  typeName: string;
+  typeValue: string | number;
+  desc: string;
+  list: University[];
 
-    /*UI props begin 后台不用管*/
-    colorFrom?: string;
-    colorTo?: string;
-    colorText?: string;
-    icon?: string;
-    /*UI props end*/
+  /*UI props begin 后台不用管*/
+  colorFrom?: string;
+  colorTo?: string;
+  colorText?: string;
+  icon?: string;
+  /*UI props end*/
+}
+
+export interface UniversityFilter {
+  features: string[];
+  types: string[];
+  natureTypes: string[];
+  bxTypes: string[];
+  locations: string[];
+  tiers: Record<number, string>;
+  stars: Record<number, string>;
 }

+ 68 - 68
src/types/voluntary.ts

@@ -1,35 +1,35 @@
-import {DictItem, Study} from "@/types/index";
-import {University} from "@/types/university";
+import { DictItem, Study } from "@/types/index";
+import { University } from "@/types/university";
 
 export type EnumInputType = 'Score' | 'Number' | 'Text' | 'Radio' | 'Picker' | 'Checkbox' | 'Eyesight';
 export type EnumRuleCategory = 'Enroll' | 'Special';
 export type EnumPickType = 'Danger' | 'Normal' | 'Safety';
 
 export interface EnrollRuleItem {
-    defaultValue?: string | number;
-    description?: string;
-    dictOptions?: DictItem[];
-    dotDisable?: boolean
-    enumInputType: EnumInputType;
-    enumRuleCategory: EnumRuleCategory;
-    fieldName: string;
-    keyboardMode?: string
-    label: string;
-    max?: number
-    min?: number
-    mutexOption?: string[] | number[];
-    options?: string[] | number[];
-    placeholder?: string;
-    regex?: string;
-    required?: boolean;
-    tips?: string;
-    readonly?: boolean;
+  defaultValue?: string | number;
+  description?: string;
+  dictOptions?: DictItem[];
+  dotDisable?: boolean
+  enumInputType: EnumInputType;
+  enumRuleCategory: EnumRuleCategory;
+  fieldName: string;
+  keyboardMode?: string
+  label: string;
+  max?: number
+  min?: number
+  mutexOption?: string[] | number[];
+  options?: string[] | number[];
+  placeholder?: string;
+  regex?: string;
+  required?: boolean;
+  tips?: string;
+  readonly?: boolean;
 }
 
 export interface EnrollRule {
-    category: string;
-    content: string;
-    details: EnrollRuleItem[]
+  category: string;
+  content: string;
+  details: EnrollRuleItem[]
 }
 
 export interface VoluntaryModel extends Record<string, string | number | null> {
@@ -37,70 +37,70 @@ export interface VoluntaryModel extends Record<string, string | number | null> {
 }
 
 export interface VoluntaryResultHistory {
-    "year": string | number;
-    "score": string | number | null; // 最低分
-    "plan"?: number | null; // 计划人数
-    "enroll"?: number | null; // 录取人数
-    "diff"?: number | null; // 负表示低于录取分;正数表示高于录取分
-    "ruleContent"?: string; // 招录规则
-    "application"?: number | null; // 报名人数比值
-    "admission"?: number | null; // 计划人数比值
+  "year": string | number;
+  "score": string | number | null; // 最低分
+  "plan"?: number | null; // 计划人数
+  "enroll"?: number | null; // 录取人数
+  "diff"?: number | null; // 负表示低于录取分;正数表示高于录取分
+  "ruleContent"?: string; // 招录规则
+  "application"?: number | null; // 报名人数比值
+  "admission"?: number | null; // 计划人数比值
 }
 
 export interface VoluntaryResultSkill {
-    year: string | number;
-    cultureScore: number;
-    cultureRule: string;
-    enrollScore: number;
-    skillScore: number; // 反向测技能分
-    diff: number; // 负数表示低于skillScore,正数高于
+  year: string | number;
+  cultureScore: number;
+  cultureRule: string;
+  enrollScore: number;
+  skillScore: number; // 反向测技能分
+  diff: number; // 负数表示低于skillScore,正数高于
 }
 
 export interface VoluntaryResult {
-    "universityCode": string;
-    "majorCode": string;
-    "majorEnrollCode": string;
-    "majorGroup": string;
-    "majorName": string;
-    "majorDirection": string;
-    "enumPickType": EnumPickType;
-    "enrollRate": number | null;
-    "enrollRateText": string;
-    "tips": string | null;
-    "histories"?: VoluntaryResultHistory[],
-    "skill": VoluntaryResultSkill
+  "universityCode": string;
+  "majorCode": string;
+  "majorEnrollCode": string;
+  "majorGroup": string;
+  "majorName": string;
+  "majorDirection": string;
+  "enumPickType": EnumPickType;
+  "enrollRate": number | null;
+  "enrollRateText": string;
+  "tips": string | null;
+  "histories"?: VoluntaryResultHistory[],
+  "skill": VoluntaryResultSkill
 }
 
 export interface SelectedUniversityMajor extends Study.SelectedUniversityMajor {
-    info?: University;
+  info?: University;
 }
 
 export interface VoluntaryDto {
-    target: SelectedUniversityMajor;
-    rules: EnrollRule[];
-    model: VoluntaryModel;
-    result: VoluntaryResult;
+  target: SelectedUniversityMajor;
+  rules: EnrollRule[];
+  model: VoluntaryModel;
+  result: VoluntaryResult;
 }
 
 export interface VoluntaryScoreItem {
-    label: string;
-    score: number;
-    total: number;
-    labelWidth?: string;
-    scoreWidth?: string;
+  label: string;
+  score: number;
+  total: number;
+  labelWidth?: string;
+  scoreWidth?: string;
 }
 
 export interface VoluntaryMajorItem {
-    majorId: string;
-    majorName: string;
-    majorAncestors: string;
-    majorGroup: string;
+  majorId: string;
+  majorName: string;
+  majorAncestors: string;
+  majorGroup: string;
 }
 
 export interface VoluntaryRecord {
-    id: number;
-    universityLogo: string;
-    universityId: string;
-    universityName: string;
-    majors: VoluntaryMajorItem[]
+  id: number;
+  universityLogo: string;
+  universityId: string;
+  universityName: string;
+  majors: VoluntaryMajorItem[]
 }

+ 0 - 11
src/utils/common.ts

@@ -1,11 +0,0 @@
-/**
- * 将秒转化为时分秒
- * @param seconds 秒
- * @returns 时分秒
- */
-export const formatSeconds = (seconds: number, gap: string = ':') => {
-  const hours = Math.floor(seconds / 3600);
-  const minutes = Math.floor((seconds % 3600) / 60);
-  const secs = seconds % 60;
-  return `${hours.toString().padStart(2, '0')}${gap}${minutes.toString().padStart(2, '0')}${gap}${secs.toString().padStart(2, '0')}`;
-};

+ 22 - 0
src/utils/format.ts

@@ -0,0 +1,22 @@
+/**
+ * 将秒转化为时分秒
+ * @param seconds 秒
+ * @returns 时分秒
+ */
+export const formatSeconds = (seconds: number, gap: string = ':') => {
+  const hours = Math.floor(seconds / 3600);
+  const minutes = Math.floor((seconds % 3600) / 60);
+  const secs = seconds % 60;
+  return `${hours.toString().padStart(2, '0')}${gap}${minutes.toString().padStart(2, '0')}${gap}${secs.toString().padStart(2, '0')}`;
+};
+
+export const formatPrice = (price: number) => {
+  return price / 100;
+}
+
+export const formatTime = (time: number | string, format: string = 'yyyy-mm-dd hh:MM:ss') => {
+  if (!time) {
+    return '';
+  }
+  return uni.$uv.timeFormat(time, format)
+}

+ 0 - 24
src/utils/uni-tool.ts

@@ -81,20 +81,6 @@ export interface IeTool {
    */
   copy(content: string): void;
 
-  /**
-   * 格式化价格
-   * @param price - 价格
-   * @returns 格式化后的价格
-   */
-  formatPrice(price: number): number;
-
-  /**
-   * 格式化时间
-   * @param time - 时间
-   * @returns 格式化后的时间
-   */
-  formatTime(time: number | string, format: string): string;
-
   /* 打开网址 */
   openBrowser(url: string): void;
 }
@@ -200,16 +186,6 @@ const tool: IeTool = {
       success: () => { }
     });
   },
-  formatPrice(price: number) {
-    return price / 100;
-  },
-  formatTime(time: number | string, format: string = 'yyyy-mm-dd hh:MM:ss') {
-    if (!time) {
-      return '';
-    }
-    // @ts-ignore
-    return uni.$uv.timeFormat(time, format)
-  },
   openBrowser(url: string) {
     // 判断平台
     // #ifdef H5