Compare commits
4 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
94d7d1a7ae | |
|
|
ee5042a830 | |
|
|
7c4cedaeff | |
|
|
4bcb347d4a |
|
|
@ -2,7 +2,7 @@
|
|||
// 默认格式化工具选择prettier
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
||||
// 保存的时候自动格式化
|
||||
"editor.formatOnSave": true,
|
||||
"editor.formatOnSave": false,
|
||||
//开启自动修复
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll": "explicit",
|
||||
|
|
@ -10,8 +10,8 @@
|
|||
"source.fixAll.stylelint": "explicit"
|
||||
},
|
||||
// 配置stylelint检查的文件类型范围
|
||||
"stylelint.validate": ["css", "scss", "vue", "html"], // 与package.json的scripts对应
|
||||
"stylelint.enable": true,
|
||||
"stylelint.validate": ["css", "vue", "html"], // 与package.json的scripts对应
|
||||
"stylelint.enable": false,
|
||||
"css.validate": false,
|
||||
"less.validate": false,
|
||||
"scss.validate": false,
|
||||
|
|
@ -22,7 +22,7 @@
|
|||
"editor.defaultFormatter": "foxundermoon.shell-format"
|
||||
},
|
||||
"[vue]": {
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
"editor.defaultFormatter": "Vue.volar"
|
||||
},
|
||||
"[typescript]": {
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
|
|
@ -59,8 +59,4 @@
|
|||
"package.json": "pnpm-lock.yaml,pnpm-workspace.yaml,LICENSE,.gitattributes,.gitignore,.gitpod.yml,CNAME,.npmrc,.browserslistrc",
|
||||
".eslintrc.cjs": ".eslintignore,.prettierignore,.stylelintignore,.commitlintrc.*,.prettierrc.*,.stylelintrc.*,.eslintrc-auto-import.json,.editorconfig,.commitlint.cjs"
|
||||
},
|
||||
"vetur.validation.template": false,
|
||||
"vetur.validation.script": false,
|
||||
"vetur.validation.style": false,
|
||||
"vetur.experimental.templateInterpolationService": true
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
VITE_APP_TITLE = '六纬志愿'
|
||||
VITE_APP_TITLE = '六纬升学'
|
||||
VITE_APP_PORT = 9000
|
||||
|
||||
VITE_UNI_APPID = 'H57F2ACE4'
|
||||
|
|
|
|||
55
package.json
55
package.json
|
|
@ -2,22 +2,7 @@
|
|||
"name": "volunteer-4",
|
||||
"type": "commonjs",
|
||||
"version": "2.5.5",
|
||||
"description": "unibest - 最好的 uniapp 开发模板",
|
||||
"author": {
|
||||
"name": "feige996",
|
||||
"zhName": "菲鸽",
|
||||
"email": "1020103647@qq.com",
|
||||
"github": "https://github.com/feige996",
|
||||
"gitee": "https://gitee.com/feige996"
|
||||
},
|
||||
"license": "MIT",
|
||||
"repository": "https://github.com/feige996/unibest",
|
||||
"repository-gitee": "https://gitee.com/feige996/unibest",
|
||||
"repository-deprecated": "https://github.com/codercup/unibest",
|
||||
"bugs": {
|
||||
"url": "https://github.com/feige996/unibest/issues"
|
||||
},
|
||||
"homepage": "https://feige996.github.io/unibest/",
|
||||
"engines": {
|
||||
"node": ">=18",
|
||||
"pnpm": ">=7.30"
|
||||
|
|
@ -87,29 +72,42 @@
|
|||
"bin-wrapper": "npm:bin-wrapper-china"
|
||||
},
|
||||
"dependencies": {
|
||||
"@dcloudio/uni-app": "3.0.0-4020920240930001",
|
||||
"@dcloudio/uni-app-plus": "3.0.0-4020920240930001",
|
||||
"@dcloudio/uni-components": "3.0.0-4020920240930001",
|
||||
"@dcloudio/uni-h5": "3.0.0-4020920240930001",
|
||||
"@dcloudio/uni-mp-weixin": "3.0.0-4020920240930001",
|
||||
"@dcloudio/uni-app": "3.0.0-4070520250711001",
|
||||
"@dcloudio/uni-app-harmony": "3.0.0-4070520250711001",
|
||||
"@dcloudio/uni-app-plus": "3.0.0-4070520250711001",
|
||||
"@dcloudio/uni-components": "3.0.0-4070520250711001",
|
||||
"@dcloudio/uni-h5": "3.0.0-4070520250711001",
|
||||
"@dcloudio/uni-mp-alipay": "3.0.0-4070520250711001",
|
||||
"@dcloudio/uni-mp-baidu": "3.0.0-4070520250711001",
|
||||
"@dcloudio/uni-mp-harmony": "3.0.0-4070520250711001",
|
||||
"@dcloudio/uni-mp-jd": "3.0.0-4070520250711001",
|
||||
"@dcloudio/uni-mp-kuaishou": "3.0.0-4070520250711001",
|
||||
"@dcloudio/uni-mp-lark": "3.0.0-4070520250711001",
|
||||
"@dcloudio/uni-mp-qq": "3.0.0-4070520250711001",
|
||||
"@dcloudio/uni-mp-toutiao": "3.0.0-4070520250711001",
|
||||
"@dcloudio/uni-mp-weixin": "3.0.0-4070520250711001",
|
||||
"@dcloudio/uni-mp-xhs": "3.0.0-4070520250711001",
|
||||
"@dcloudio/uni-quickapp-webview": "3.0.0-4070520250711001",
|
||||
"@tanstack/vue-query": "^5.62.16",
|
||||
"abortcontroller-polyfill": "^1.7.8",
|
||||
"dayjs": "1.11.10",
|
||||
"htmlparser2": "^10.0.0",
|
||||
"pinia": "2.0.36",
|
||||
"pinia-plugin-persistedstate": "3.2.1",
|
||||
"pinyin-pro": "^3.26.0",
|
||||
"qs": "6.5.3",
|
||||
"vue": "3.4.21",
|
||||
"vue": "^3.4.21",
|
||||
"vue-i18n": "^9.14.5",
|
||||
"wot-design-uni": "^1.4.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@commitlint/cli": "^18.6.1",
|
||||
"@commitlint/config-conventional": "^18.6.3",
|
||||
"@dcloudio/types": "^3.4.14",
|
||||
"@dcloudio/uni-automator": "3.0.0-4020920240930001",
|
||||
"@dcloudio/uni-cli-shared": "3.0.0-4020920240930001",
|
||||
"@dcloudio/uni-stacktracey": "3.0.0-4020920240930001",
|
||||
"@dcloudio/vite-plugin-uni": "3.0.0-4020920240930001",
|
||||
"@dcloudio/types": "^3.4.8",
|
||||
"@dcloudio/uni-automator": "3.0.0-4070520250711001",
|
||||
"@dcloudio/uni-cli-shared": "3.0.0-4070520250711001",
|
||||
"@dcloudio/uni-stacktracey": "3.0.0-4070520250711001",
|
||||
"@dcloudio/vite-plugin-uni": "3.0.0-4070520250711001",
|
||||
"@esbuild/darwin-arm64": "0.20.2",
|
||||
"@esbuild/darwin-x64": "0.20.2",
|
||||
"@iconify-json/carbon": "^1.2.4",
|
||||
|
|
@ -124,7 +122,7 @@
|
|||
"@uni-helper/vite-plugin-uni-pages": "0.2.20",
|
||||
"@uni-helper/vite-plugin-uni-platform": "^0.0.4",
|
||||
"@unocss/preset-legacy-compat": "^0.59.4",
|
||||
"@vue/runtime-core": "^3.5.13",
|
||||
"@vue/runtime-core": "^3.4.21",
|
||||
"@vue/tsconfig": "^0.1.3",
|
||||
"autoprefixer": "^10.4.20",
|
||||
"commitlint": "^18.6.1",
|
||||
|
|
@ -163,5 +161,8 @@
|
|||
},
|
||||
"minimize": {
|
||||
"dev:mp-weixin": "cross-env NODE_ENV=development UNI_PLATFORM=mp-weixin vue-cli-service uni-build --watch --minimize"
|
||||
},
|
||||
"volta": {
|
||||
"node": "23.8.0"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ import { defineUniPages } from '@uni-helper/vite-plugin-uni-pages'
|
|||
export default defineUniPages({
|
||||
globalStyle: {
|
||||
navigationBarTextStyle: 'black',
|
||||
navigationBarTitleText: '六纬志愿',
|
||||
navigationBarTitleText: '六纬升学',
|
||||
navigationBarBackgroundColor: '#fff',
|
||||
backgroundColor: '#F8F8F8',
|
||||
},
|
||||
|
|
|
|||
856
pnpm-lock.yaml
856
pnpm-lock.yaml
File diff suppressed because it is too large
Load Diff
|
|
@ -40,16 +40,6 @@ onLoad((options) => {
|
|||
url.value += `&fileId=${options.fileId}`
|
||||
}
|
||||
})
|
||||
// if (options.locationCode) {
|
||||
// url.value += `&locationCode=${options.locationCode}`
|
||||
// }
|
||||
// const recorderManager = uni.getRecorderManager()
|
||||
// recorderManager.onError((res) => {
|
||||
// console.log('录音错误', res)
|
||||
// })
|
||||
// recorderManager.onStop((res) => {
|
||||
// console.log('录音停止', res)
|
||||
// })
|
||||
})
|
||||
</script>
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<!-- TabBar占位块 - 与TabBar高度一致 -->
|
||||
<view
|
||||
v-if="showPlaceholder"
|
||||
class="tabbar-placeholder"
|
||||
class="tabbar-placeholder mb-safe"
|
||||
:style="{ height: `${tabbarTotalHeight}px` }"
|
||||
></view>
|
||||
|
||||
|
|
@ -71,7 +71,6 @@ const changeItem = (item: TabesItem) => {
|
|||
|
||||
onMounted(() => {
|
||||
uni.hideTabBar()
|
||||
|
||||
// 获取系统信息以计算安全区域
|
||||
uni.getSystemInfo({
|
||||
success: (res) => {
|
||||
|
|
@ -162,4 +161,9 @@ defineExpose({
|
|||
padding-bottom: constant(safe-area-inset-bottom);
|
||||
padding-bottom: env(safe-area-inset-bottom);
|
||||
}
|
||||
|
||||
.mb-safe {
|
||||
margin-bottom: constant(safe-area-inset-bottom);
|
||||
margin-bottom: env(safe-area-inset-bottom);
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { getWindowInfo } from '@/utils/tools'
|
||||
import { ref } from 'vue'
|
||||
|
||||
const props = defineProps({
|
||||
|
|
@ -27,7 +28,7 @@ const props = defineProps({
|
|||
},
|
||||
})
|
||||
|
||||
const systemInfo = uni.getWindowInfo()
|
||||
const systemInfo = getWindowInfo()
|
||||
|
||||
const position = ref({ x: props.initialX, y: props.initialY })
|
||||
const startPosition = ref({ x: 0, y: 0 })
|
||||
|
|
@ -110,11 +111,11 @@ const handleClick = () => {
|
|||
<style scoped>
|
||||
.fab-button {
|
||||
position: fixed;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 128rpx;
|
||||
height: 128rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -15,10 +15,12 @@
|
|||
: '输入模考/高考成绩'
|
||||
}}
|
||||
</text>
|
||||
<image
|
||||
class="w-[42rpx] h-[39rpx]"
|
||||
src="https://api.static.ycymedu.com/src/images/home/pen.svg"
|
||||
></image>
|
||||
<view class="w-[42rpx] h-[39rpx]">
|
||||
<image
|
||||
class="w-[42rpx] h-[39rpx]"
|
||||
src="https://api.static.ycymedu.com/src/images/home/pen.svg"
|
||||
></image>
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex items-center justify-center" v-else>
|
||||
<image
|
||||
|
|
|
|||
|
|
@ -5,12 +5,13 @@
|
|||
hover-class="none"
|
||||
:hover-stop-propagation="false"
|
||||
>
|
||||
<text class="text-[32rpx] text-[#333333] font-semibold">高考资讯</text>
|
||||
<image
|
||||
class="w-[40rpx] h-[40rpx]"
|
||||
src="https://api.static.ycymedu.com/src/images/home/right.svg"
|
||||
@click="toNewsPage"
|
||||
></image>
|
||||
<text class="text-[32rpx] text-[#333333] font-semibold w-max">高考资讯</text>
|
||||
<view class="w-[40rpx] h-[40rpx]">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/src/images/home/right.svg"
|
||||
@click="toNewsPage"
|
||||
></image>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view
|
||||
|
|
@ -34,9 +35,7 @@
|
|||
import { useCityNewTop, newsList } from '@/hooks/useCityInfoHook'
|
||||
import { News } from '@/types/app-type'
|
||||
|
||||
onShow(() => {
|
||||
useCityNewTop()
|
||||
})
|
||||
useCityNewTop()
|
||||
|
||||
const handleClick = (item: News) => {
|
||||
uni.navigateTo({
|
||||
|
|
|
|||
|
|
@ -5,12 +5,14 @@
|
|||
hover-class="none"
|
||||
:hover-stop-propagation="false"
|
||||
>
|
||||
<text class="text-[32rpx] text-[#333333] font-semibold">热门排行榜</text>
|
||||
<image
|
||||
class="w-[40rpx] h-[40rpx]"
|
||||
src="https://api.static.ycymedu.com/src/images/home/right.svg"
|
||||
@click="toSchool('0')"
|
||||
></image>
|
||||
<text class="text-[32rpx] text-[#333333] font-semibold w-max">热门排行榜</text>
|
||||
|
||||
<view class="w-[40rpx] h-[40rpx]">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/src/images/home/right.svg"
|
||||
@click="toSchool('0')"
|
||||
></image>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view
|
||||
|
|
@ -19,63 +21,75 @@
|
|||
:hover-stop-propagation="false"
|
||||
>
|
||||
<!-- 骨架屏 -->
|
||||
<view
|
||||
v-if="isLoading"
|
||||
v-for="(_skeleton, index) in skeletonItems"
|
||||
:key="'skeleton-' + index"
|
||||
:class="`hot-rank-item flex-none skeleton-item`"
|
||||
hover-class="none"
|
||||
:hover-stop-propagation="false"
|
||||
>
|
||||
<view class="skeleton-text mx-[32rpx] mt-[32rpx] h-[40rpx] w-[120rpx] rounded"></view>
|
||||
<template v-if="isLoading">
|
||||
<view
|
||||
v-for="(_skeleton, index) in skeletonItems"
|
||||
:key="'skeleton-' + index"
|
||||
:class="`hot-rank-item flex-none skeleton-item`"
|
||||
hover-class="none"
|
||||
:hover-stop-propagation="false"
|
||||
>
|
||||
<view class="skeleton-text mx-[32rpx] mt-[32rpx] h-[40rpx] w-[120rpx] rounded"></view>
|
||||
|
||||
<view class="flex items-center justify-left mt-[30rpx] mx-[32rpx]" v-for="i in 3" :key="i">
|
||||
<view class="skeleton-text w-[20rpx] h-[28rpx] mr-[10rpx] rounded"></view>
|
||||
<view class="skeleton-image w-[80rpx] h-[80rpx] rounded-full flex-none mr-[16rpx]"></view>
|
||||
<view class="flex flex-col w-full">
|
||||
<view class="skeleton-text h-[28rpx] w-[120rpx] rounded"></view>
|
||||
<view class="skeleton-text h-[22rpx] w-[100rpx] mt-[10rpx] rounded"></view>
|
||||
<view
|
||||
class="flex items-center justify-left mt-[30rpx] mx-[32rpx]"
|
||||
v-for="i in 3"
|
||||
:key="i"
|
||||
>
|
||||
<view class="skeleton-text w-[20rpx] h-[28rpx] mr-[10rpx] rounded"></view>
|
||||
<view
|
||||
class="skeleton-image w-[80rpx] h-[80rpx] rounded-full flex-none mr-[16rpx]"
|
||||
></view>
|
||||
<view class="flex flex-col w-full">
|
||||
<view class="skeleton-text h-[28rpx] w-[120rpx] rounded"></view>
|
||||
<view class="skeleton-text h-[22rpx] w-[100rpx] mt-[10rpx] rounded"></view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<!-- 真实数据 -->
|
||||
<view
|
||||
v-else
|
||||
:class="`hot-rank-item flex-none`"
|
||||
hover-class="none"
|
||||
:hover-stop-propagation="false"
|
||||
v-for="typeWrap 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 mx-[32rpx] mt-[32rpx]">
|
||||
{{ typeWrap.name }}
|
||||
</text>
|
||||
|
||||
<template v-else>
|
||||
<view
|
||||
class="flex items-center justify-left mt-[30rpx] mx-[32rpx]"
|
||||
v-for="(item, index) in typeWrap.rows"
|
||||
:key="index"
|
||||
:class="`hot-rank-item flex-none`"
|
||||
hover-class="none"
|
||||
:hover-stop-propagation="false"
|
||||
v-for="typeWrap in universityTypeRankList"
|
||||
:key="typeWrap.type"
|
||||
@click="toSchool(typeWrap.type)"
|
||||
v-show="typeWrap.rows.length > 0"
|
||||
>
|
||||
<text class="font-[28rpx] text-[#999999] font-normal mr-[10rpx]">
|
||||
{{ item.rank }}
|
||||
<text
|
||||
class="font-semibold text-[#303030] text-[32rpx] inline-block mx-[32rpx] mt-[32rpx]"
|
||||
>
|
||||
{{ typeWrap.name }}
|
||||
</text>
|
||||
<image
|
||||
class="w-[80rpx] h-[80rpx] rounded-full flex-none mr-[16rpx]"
|
||||
:src="item.logo"
|
||||
></image>
|
||||
<view class="truncate flex flex-col" hover-class="none">
|
||||
<text class="font-normal text-[#333333] text-[28rpx] truncate">
|
||||
{{ item.universityName }}
|
||||
</text>
|
||||
<text class="text-[22rpx] text-[#999999] font-normal mt-[10rpx]">
|
||||
{{ item.cityName }}.{{ item.uType }}
|
||||
|
||||
<view
|
||||
class="flex items-center justify-left mt-[30rpx] mx-[32rpx]"
|
||||
v-for="(item, index) in typeWrap.rows"
|
||||
:key="index"
|
||||
>
|
||||
<text class="font-[28rpx] text-[#999999] font-normal mr-[10rpx]">
|
||||
{{ item.rank }}
|
||||
</text>
|
||||
<view class="w-[80rpx] h-[80rpx] rounded-full">
|
||||
<image
|
||||
class="flex-none mr-[16rpx] w-full h-full rounded-full"
|
||||
:src="item.logo"
|
||||
></image>
|
||||
</view>
|
||||
<view class="truncate flex flex-col" hover-class="none">
|
||||
<text class="font-normal text-[#333333] text-[28rpx] truncate">
|
||||
{{ item.universityName }}
|
||||
</text>
|
||||
<text class="text-[22rpx] text-[#999999] font-normal mt-[10rpx]">
|
||||
{{ item.cityName }}.{{ item.uType }}
|
||||
</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
|
@ -91,7 +105,7 @@ const toSchool = (id: string) => {
|
|||
}
|
||||
|
||||
const { unSortTypeList } = useUnSortType()
|
||||
let universityTypeRankList = ref([])
|
||||
const universityTypeRankList = ref([])
|
||||
const isLoading = ref(true)
|
||||
|
||||
// 创建默认的骨架屏数据
|
||||
|
|
@ -138,22 +152,22 @@ watch(
|
|||
|
||||
<style lang="scss" scoped>
|
||||
.hot-rank-item {
|
||||
position: relative;
|
||||
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;
|
||||
width: 360rpx;
|
||||
height: 456rpx;
|
||||
content: '';
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.hot-rank-outer .hot-rank-item:nth-child(1) {
|
||||
|
|
@ -198,7 +212,6 @@ watch(
|
|||
.hot-rank-outer .hot-rank-item:nth-child(5) {
|
||||
background: linear-gradient(180deg, #e5ffc4 0%, rgba(213, 255, 196, 0) 23%, #fff 100%);
|
||||
}
|
||||
|
||||
/* 骨架屏样式 */
|
||||
.skeleton-text,
|
||||
.skeleton-image {
|
||||
|
|
|
|||
|
|
@ -1,22 +1,16 @@
|
|||
<template>
|
||||
<view class="navbar">
|
||||
<!-- 状态栏占位 -->
|
||||
<view
|
||||
v-if="safeAreaInsetTop"
|
||||
class="status-bar"
|
||||
:style="{ height: statusBarHeight + 'px', backgroundColor: bgColor }"
|
||||
></view>
|
||||
<view v-if="safeAreaInsetTop" class="status-bar"
|
||||
:style="{ height: statusBarHeight + 'px', backgroundColor: bgColor }"></view>
|
||||
|
||||
<!-- 导航栏主体 -->
|
||||
<view
|
||||
class="navbar-content"
|
||||
:class="[contentClass, fixed ? 'navbar-fixed' : '', bordered ? 'navbar-border' : '']"
|
||||
<view class="navbar-content" :class="[contentClass, fixed ? 'navbar-fixed' : '', bordered ? 'navbar-border' : '']"
|
||||
:style="{
|
||||
backgroundColor: bgColor,
|
||||
height: navHeight + 'px',
|
||||
top: fixed ? (safeAreaInsetTop ? statusBarHeight : 0) + 'px' : '0',
|
||||
}"
|
||||
>
|
||||
}">
|
||||
<!-- 左侧区域 -->
|
||||
<view class="navbar-left" @click="handleClickLeft">
|
||||
<view v-if="leftArrow" class="back-icon">
|
||||
|
|
@ -39,18 +33,16 @@
|
|||
</view>
|
||||
|
||||
<!-- 占位元素 -->
|
||||
<view
|
||||
v-if="placeholder && fixed"
|
||||
:style="{
|
||||
height: `${navHeight}px`,
|
||||
backgroundColor: bgColor,
|
||||
}"
|
||||
></view>
|
||||
<view v-if="placeholder && fixed" :style="{
|
||||
height: `${navHeight}px`,
|
||||
backgroundColor: bgColor,
|
||||
}"></view>
|
||||
<slot name="background"></slot>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { getDeviceInfo, getWindowInfo } from '@/utils/tools'
|
||||
import { computed } from 'vue'
|
||||
|
||||
defineProps({
|
||||
|
|
@ -91,8 +83,8 @@ defineProps({
|
|||
const emit = defineEmits(['clickLeft'])
|
||||
|
||||
// 获取系统信息
|
||||
const systemInfo = uni.getWindowInfo()
|
||||
const deviceInfo = uni.getDeviceInfo()
|
||||
const systemInfo = getWindowInfo()
|
||||
const deviceInfo = getDeviceInfo()
|
||||
|
||||
const statusBarHeight = systemInfo.statusBarHeight || 0
|
||||
|
||||
|
|
@ -131,20 +123,20 @@ const handleClickLeft = () => {
|
|||
}
|
||||
|
||||
.navbar-content {
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
/* justify-content: space-between; */
|
||||
padding: 0 16rpx;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.navbar-fixed {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 999;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.navbar-border {
|
||||
|
|
@ -154,8 +146,8 @@ const handleClickLeft = () => {
|
|||
.navbar-left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 100%;
|
||||
min-width: 100rpx;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.back-icon {
|
||||
|
|
@ -166,20 +158,20 @@ const handleClickLeft = () => {
|
|||
}
|
||||
|
||||
.navbar-title {
|
||||
/* flex: 1; */
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
/* flex: 1; */
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.title-text {
|
||||
font-size: 34rpx;
|
||||
color: #333;
|
||||
font-weight: 500;
|
||||
overflow: hidden;
|
||||
font-size: 34rpx;
|
||||
font-weight: 500;
|
||||
color: #333;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
|
@ -187,15 +179,14 @@ const handleClickLeft = () => {
|
|||
.navbar-right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
min-width: 52rpx;
|
||||
justify-content: flex-end;
|
||||
min-width: 52rpx;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'iconfont';
|
||||
src: url('data:font/woff2;charset=utf-8;base64,d09GMgABAAAAAAKYAAsAAAAABlAAAAJMAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGYACCcApcdgE2AiQDCAsGAAQgBYRnBzYbmQXIHpIkBQQKkYCABBEPz2/t/XN3twEbowBkQTxQEQ1RKaKSxEOi0agkJKF5Qvj/f037IFKwlZ2dWU2tJu0EhPwHkBwgOVAclKcvAQpI/v/fz/08XECy+YBymmPQiwIcSmhAY4uSFcgJ+IaxC1zCYwLtRjWSnZ2rGgQWBowLxCPrVBBYllQqNTQ0VISaBXEHtTRNUwW4jb4f/xYEC0kqMzDx6CGrQuKXxKc6Zf7POYQgQHs5kIwjYwEoxK3G/DpRwbi0dlNwKKjAL4lf6vw/R2zVWvTPIwuiCnp2wCRUZ3yJX5pJFVDfByyAFR2AblMAX/OR3t7+zOJi8GyyfzC1uQXLZvtnk/0zyfTy+PvH0/Xp5OzR98/H797/+/fDu3d/3739+/fd+/+nmxvLc5vrS+sry2vz84tLs9Mzc4vzs9NTM/Ozc1OzM3MzU/Mz0wvTU4vTk0tTE8uTEyuT4yv/G0E3XUxv7wwNbu/s9G8fbO9v7+3sb+3ubW4dbO4dbO3vbu4dbO3JzqPFtRE4gEGAX0NBkL+hpCZALkEp5FKUQqE0NHlXJIGrDNAOcEQBCHU+kXT5QNblC7kEv1EK9Y9SB/8o7YYu2m0YXrJLouNIjQJhH+QbVkVZrUQ+YuqzUJdzxPMHhdIj0+hg4o0D8ogj5r5bSoQUxjADz+A8hBDQFEYwh3mommXTul7Vm5ZtqAqJHIdoKCDYDyQ3mCqUG1YKn5+C0s0yiJ/qKVAQedKAhg6Y3mEHJBQaWKnvLVMiiEIxGAY8Aw6HIAhAJmEIzIIOUjLTTAB1taL1QvNq+fYN7QDjcc2okeioaOmy5LFXt3QAAAAA')
|
||||
format('woff2');
|
||||
src: url('data:font/woff2;charset=utf-8;base64,d09GMgABAAAAAAKYAAsAAAAABlAAAAJMAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGYACCcApcdgE2AiQDCAsGAAQgBYRnBzYbmQXIHpIkBQQKkYCABBEPz2/t/XN3twEbowBkQTxQEQ1RKaKSxEOi0agkJKF5Qvj/f037IFKwlZ2dWU2tJu0EhPwHkBwgOVAclKcvAQpI/v/fz/08XECy+YBymmPQiwIcSmhAY4uSFcgJ+IaxC1zCYwLtRjWSnZ2rGgQWBowLxCPrVBBYllQqNTQ0VISaBXEHtTRNUwW4jb4f/xYEC0kqMzDx6CGrQuKXxKc6Zf7POYQgQHs5kIwjYwEoxK3G/DpRwbi0dlNwKKjAL4lf6vw/R2zVWvTPIwuiCnp2wCRUZ3yJX5pJFVDfByyAFR2AblMAX/OR3t7+zOJi8GyyfzC1uQXLZvtnk/0zyfTy+PvH0/Xp5OzR98/H797/+/fDu3d/3739+/fd+/+nmxvLc5vrS+sry2vz84tLs9Mzc4vzs9NTM/Ozc1OzM3MzU/Mz0wvTU4vTk0tTE8uTEyuT4yv/G0E3XUxv7wwNbu/s9G8fbO9v7+3sb+3ubW4dbO4dbO3vbu4dbO3JzqPFtRE4gEGAX0NBkL+hpCZALkEp5FKUQqE0NHlXJIGrDNAOcEQBCHU+kXT5QNblC7kEv1EK9Y9SB/8o7YYu2m0YXrJLouNIjQJhH+QbVkVZrUQ+YuqzUJdzxPMHhdIj0+hg4o0D8ogj5r5bSoQUxjADz+A8hBDQFEYwh3mommXTul7Vm5ZtqAqJHIdoKCDYDyQ3mCqUG1YKn5+C0s0yiJ/qKVAQedKAhg6Y3mEHJBQaWKnvLVMiiEIxGAY8Aw6HIAhAJmEIzIIOUjLTTAB1taL1QvNq+fYN7QDjcc2okeioaOmy5LFXt3QAAAAA') format('woff2');
|
||||
}
|
||||
|
||||
.back-text {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import { onReady } from '@dcloudio/uni-app'
|
||||
import { getIsTabbar, getLastItem } from '@/utils/index'
|
||||
import { getWindowInfo } from '@/utils/tools'
|
||||
|
||||
export default () => {
|
||||
// 获取页面栈
|
||||
|
|
@ -9,7 +10,7 @@ export default () => {
|
|||
// 页面滚动到底部时的操作,通常用于加载更多数据
|
||||
const onScrollToLower = () => {}
|
||||
// 获取屏幕边界到安全区域距离
|
||||
const { safeAreaInsets } = uni.getWindowInfo()
|
||||
const { safeAreaInsets } = getWindowInfo()
|
||||
|
||||
// #ifdef MP-WEIXIN
|
||||
// 基于小程序的 Page 类型扩展 uni-app 的 Page
|
||||
|
|
|
|||
|
|
@ -4,11 +4,13 @@
|
|||
class="fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 flex flex-col items-center bg-white p-[40rpx] rounded-[32rpx]"
|
||||
@click.stop
|
||||
>
|
||||
<image
|
||||
class="w-[200rpx] h-[200rpx]"
|
||||
src="https://api.static.ycymedu.com/images/logo.png"
|
||||
mode="aspectFit"
|
||||
></image>
|
||||
<view class="w-[200rpx] h-[200rpx]">
|
||||
<image
|
||||
class="w-[200rpx] h-[200rpx]"
|
||||
src="https://api.static.ycymedu.com/images/logo.png"
|
||||
mode="aspectFit"
|
||||
></image>
|
||||
</view>
|
||||
<view class="flex flex-col items-center">
|
||||
<text class="text-[26rpx] mt-[20rpx] mb-[40rpx]" :selectable="false">
|
||||
{{ phone ? '申请使用您的手机号' : '申请获取您的个人信息' }}
|
||||
|
|
@ -101,7 +103,7 @@ const handleClickPrivacyPolicy = () => {
|
|||
const getPhoneNumber = async (e: any) => {
|
||||
if (e.detail.errMsg == 'getPhoneNumber:ok') {
|
||||
const detail = e.detail
|
||||
let _getPhoneInfo = {
|
||||
const _getPhoneInfo = {
|
||||
iv: detail.iv,
|
||||
encryptedData: detail.encryptedData,
|
||||
code: detail.code,
|
||||
|
|
@ -127,12 +129,11 @@ const handleClick = () => {
|
|||
title: '您需先同意《服务条款》和《隐私条款》',
|
||||
icon: 'none',
|
||||
})
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
const getUserInfo = async (_code: string) => {
|
||||
let userInfo = (await useLogin()) as { code: string; errMsg: string }
|
||||
const userInfo = (await useLogin()) as { code: string; errMsg: string }
|
||||
|
||||
if (userInfo.errMsg == 'login:ok') {
|
||||
const resp = await getSessionKey({ JsCode: userInfo.code })
|
||||
|
|
@ -163,8 +164,8 @@ const getUserInfo = async (_code: string) => {
|
|||
if (resp.code === 200) {
|
||||
// 根据用户信息中的城市设置对应城市的分数等信息
|
||||
getVolunteerInitialization().then((res) => {
|
||||
let list = res.result as any[]
|
||||
let code = infoData.userExtend ? infoData.userExtend.provinceCode : ''
|
||||
const list = res.result as any[]
|
||||
const code = infoData.userExtend ? infoData.userExtend.provinceCode : ''
|
||||
let addressItem: City
|
||||
if (code !== '') {
|
||||
for (let i = 0; i < list.length; i++) {
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@
|
|||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { getDeviceInfo, getWindowInfo } from '@/utils/tools'
|
||||
import { computed } from 'vue'
|
||||
|
||||
defineProps({
|
||||
|
|
@ -91,8 +92,8 @@ defineProps({
|
|||
const emit = defineEmits(['clickLeft'])
|
||||
|
||||
// 获取系统信息
|
||||
const systemInfo = uni.getWindowInfo()
|
||||
const deviceInfo = uni.getDeviceInfo()
|
||||
const systemInfo = getWindowInfo()
|
||||
const deviceInfo = getDeviceInfo()
|
||||
|
||||
const statusBarHeight = systemInfo.statusBarHeight || 0
|
||||
|
||||
|
|
@ -131,20 +132,20 @@ const handleClickLeft = () => {
|
|||
}
|
||||
|
||||
.navbar-content {
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
/* justify-content: space-between; */
|
||||
padding: 0 16rpx;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.navbar-fixed {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 999;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.navbar-border {
|
||||
|
|
@ -154,8 +155,8 @@ const handleClickLeft = () => {
|
|||
.navbar-left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 100%;
|
||||
min-width: 100rpx;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.back-icon {
|
||||
|
|
@ -166,20 +167,20 @@ const handleClickLeft = () => {
|
|||
}
|
||||
|
||||
.navbar-title {
|
||||
/* flex: 1; */
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
/* flex: 1; */
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.title-text {
|
||||
font-size: 34rpx;
|
||||
color: #333;
|
||||
font-weight: 500;
|
||||
overflow: hidden;
|
||||
font-size: 34rpx;
|
||||
font-weight: 500;
|
||||
color: #333;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
|
@ -187,8 +188,8 @@ const handleClickLeft = () => {
|
|||
.navbar-right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
min-width: 52rpx;
|
||||
justify-content: flex-end;
|
||||
min-width: 52rpx;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,32 +1,22 @@
|
|||
<route lang="json5" type="page">
|
||||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
navigationBarTitleText: '新高考选科',
|
||||
},
|
||||
}
|
||||
</route>
|
||||
|
||||
<template>
|
||||
<view class="h-screen flex flex-col">
|
||||
<Navbar
|
||||
safeAreaInsetTop
|
||||
:bordered="false"
|
||||
:fixed="true"
|
||||
:placeholder="true"
|
||||
left-arrow
|
||||
bgColor="transparent"
|
||||
@click-left="handleClickLeft"
|
||||
>
|
||||
<template #title>
|
||||
<text class="text-[#1F2329] text-[36rpx] font-medium">新高考选科</text>
|
||||
</template>
|
||||
</Navbar>
|
||||
<view class="h-screen flex flex-col bg-white">
|
||||
<view class="flex flex-col justify-center items-center flex-1 pb-safe mt-[-100px]">
|
||||
<image
|
||||
class="w-[424rpx] h-[424rpx]"
|
||||
src="https://api.static.ycymedu.com/images/logo.png"
|
||||
mode="aspectFit"
|
||||
></image>
|
||||
<view class="w-[424rpx] h-[424rpx]">
|
||||
<image
|
||||
class="w-[424rpx] h-[424rpx]"
|
||||
src="https://api.static.ycymedu.com/images/logo.png"
|
||||
mode="aspectFit"
|
||||
></image>
|
||||
</view>
|
||||
<!-- #ifdef MP-WEIXIN -->
|
||||
<button
|
||||
class="w-[493rpx]! mb-[40rpx] h-[88rpx]! rounded-[44rpx] text-[32rpx] text-white flex items-center justify-center"
|
||||
:class="checked.length > 0 ? 'bg-[#1580FF]' : 'bg-[#BFBFBF]'"
|
||||
|
|
@ -37,6 +27,17 @@
|
|||
>
|
||||
一键登录
|
||||
</button>
|
||||
<!-- #endif -->
|
||||
|
||||
<!-- #ifdef MP-ALIPAY -->
|
||||
<button
|
||||
class="w-[493rpx]! mb-[40rpx] h-[88rpx]! rounded-[44rpx] text-[32rpx] text-white flex items-center justify-center"
|
||||
:class="checked.length > 0 ? 'bg-[#1580FF]' : 'bg-[#BFBFBF]'"
|
||||
@click.stop="handleClick"
|
||||
>
|
||||
一键登录
|
||||
</button>
|
||||
<!-- #endif -->
|
||||
|
||||
<view class="flex items-center flex-nowrap">
|
||||
<CheckboxGroup v-model="checked" class="check-class mr-[10rpx]">
|
||||
|
|
@ -84,7 +85,7 @@ const getPhoneInfo = ref(null)
|
|||
const getPhoneNumber = async (e: any) => {
|
||||
if (e.detail.errMsg == 'getPhoneNumber:ok') {
|
||||
const detail = e.detail
|
||||
let _getPhoneInfo = {
|
||||
const _getPhoneInfo = {
|
||||
iv: detail.iv,
|
||||
encryptedData: detail.encryptedData,
|
||||
code: detail.code,
|
||||
|
|
@ -110,8 +111,18 @@ const handleClick = () => {
|
|||
title: '您需先同意《服务条款》和《隐私条款》',
|
||||
icon: 'none',
|
||||
})
|
||||
return
|
||||
}
|
||||
// #ifdef MP-ALIPAY
|
||||
dd.getAuthCode({
|
||||
corpId: '3912995586',
|
||||
success: (res) => {
|
||||
const { authCode } = res
|
||||
console.log(res)
|
||||
},
|
||||
fail: () => {},
|
||||
complete: () => {},
|
||||
})
|
||||
// #endif
|
||||
}
|
||||
|
||||
// 授权完成之后返回到上一个目录去
|
||||
|
|
@ -138,7 +149,7 @@ const handleClickPrivacyPolicy = () => {
|
|||
const userStore = useUserStore()
|
||||
|
||||
const getUserInfo = async (_code: string) => {
|
||||
let userInfo = (await useLogin()) as { code: string; errMsg: string }
|
||||
const userInfo = (await useLogin()) as { code: string; errMsg: string }
|
||||
|
||||
if (userInfo.errMsg == 'login:ok') {
|
||||
const resp = await getSessionKey({ JsCode: userInfo.code })
|
||||
|
|
@ -173,8 +184,8 @@ const getUserInfo = async (_code: string) => {
|
|||
// 根据用户信息中的城市设置对应城市的分数等信息
|
||||
getVolunteerInitialization()
|
||||
.then((res) => {
|
||||
let list = res.result as any[]
|
||||
let code = infoData.userExtend ? infoData.userExtend.provinceCode : ''
|
||||
const list = res.result as any[]
|
||||
const code = infoData.userExtend ? infoData.userExtend.provinceCode : ''
|
||||
let addressItem: City
|
||||
if (code !== '') {
|
||||
for (let i = 0; i < list.length; i++) {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "六纬志愿",
|
||||
"name": "六纬升学",
|
||||
"appid": "H57F2ACE4",
|
||||
"description": "",
|
||||
"versionName": "1.0.0",
|
||||
|
|
|
|||
|
|
@ -13,18 +13,21 @@
|
|||
:class="[contentClass, fixed ? 'navbar-fixed' : '', bordered ? 'navbar-border' : '']"
|
||||
:style="{
|
||||
backgroundColor: bgColor,
|
||||
height: navHeight + 'px',
|
||||
height: `${navHeight}px`,
|
||||
top: fixed ? (safeAreaInsetTop ? statusBarHeight : 0) + 'px' : '0',
|
||||
}"
|
||||
>
|
||||
<!-- 左侧区域 -->
|
||||
<view class="navbar-left" @click="handleClickLeft">
|
||||
<view
|
||||
:class="`navbar-left ${leftWidthMin ? 'min-w-[48rpx]' : ''} min-w-[48rpx]`"
|
||||
@click="handleClickLeft"
|
||||
>
|
||||
<!-- #ifndef MP-ALIPAY -->
|
||||
<view v-if="leftArrow" class="back-icon">
|
||||
<view class="i-carbon-chevron-left text-[40rpx] text-[#333] font-semibold icon-class" />
|
||||
</view>
|
||||
<!-- #endif -->
|
||||
<slot name="left"></slot>
|
||||
</view>
|
||||
|
||||
<!-- 中间标题区域 -->
|
||||
<view class="navbar-title">
|
||||
<slot name="title">
|
||||
|
|
@ -51,9 +54,9 @@
|
|||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { computed } from 'vue'
|
||||
import { getDeviceInfo, getWindowInfo } from '@/utils/tools'
|
||||
|
||||
const props = defineProps({
|
||||
defineProps({
|
||||
title: {
|
||||
type: String,
|
||||
default: '',
|
||||
|
|
@ -86,13 +89,18 @@ const props = defineProps({
|
|||
type: String,
|
||||
default: 'justify-between',
|
||||
},
|
||||
leftWidthMin: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
})
|
||||
|
||||
const emit = defineEmits(['clickLeft'])
|
||||
|
||||
// 获取系统信息
|
||||
const systemInfo = uni.getWindowInfo()
|
||||
const deviceInfo = uni.getDeviceInfo()
|
||||
const deviceInfo = getDeviceInfo()
|
||||
const systemInfo = getWindowInfo()
|
||||
|
||||
const statusBarHeight = systemInfo.statusBarHeight || 0
|
||||
|
||||
// 动态计算导航栏高度
|
||||
|
|
@ -130,20 +138,20 @@ const handleClickLeft = () => {
|
|||
}
|
||||
|
||||
.navbar-content {
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
/* justify-content: space-between; */
|
||||
padding: 0 16rpx;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.navbar-fixed {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 99;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.navbar-border {
|
||||
|
|
@ -164,20 +172,20 @@ const handleClickLeft = () => {
|
|||
}
|
||||
|
||||
.navbar-title {
|
||||
/* flex: 1; */
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
/* flex: 1; */
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.title-text {
|
||||
font-size: 34rpx;
|
||||
color: #333;
|
||||
font-weight: 500;
|
||||
overflow: hidden;
|
||||
font-size: 34rpx;
|
||||
font-weight: 500;
|
||||
color: #333;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
|
@ -185,8 +193,8 @@ const handleClickLeft = () => {
|
|||
.navbar-right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
min-width: 52rpx;
|
||||
justify-content: flex-end;
|
||||
min-width: 52rpx;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { computed, ref, watch } from 'vue'
|
||||
import { computed } from 'vue'
|
||||
|
||||
const props = defineProps({
|
||||
modelValue: {
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
transparentTitle: 'always',
|
||||
navigationBarTitleText: '',
|
||||
},
|
||||
}
|
||||
</route>
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
transparentTitle: 'always',
|
||||
navigationBarTitleText: '',
|
||||
},
|
||||
}
|
||||
</route>
|
||||
|
|
@ -24,10 +26,12 @@
|
|||
<view class="overflow-auto relative mt-[40rpx] flex-1 pb-[20rpx]">
|
||||
<!-- 顶部卡片 -->
|
||||
<view class="flex flex-col pt-[32rpx] px-[84rpx] h-[244rpx] mb-[-116rpx] font-700">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/src/images/evaluate/bg.png"
|
||||
class="header-bg"
|
||||
/>
|
||||
<view class="header-bg">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/src/images/evaluate/bg.png"
|
||||
class="w-full h-full"
|
||||
/>
|
||||
</view>
|
||||
<text class="text-[#333] text-[28rpx] mb-[14rpx] z-2">您的性格类型为</text>
|
||||
<text class="text-[#117CFC] text-[36rpx] z-2">{{ studyRecord.title }}</text>
|
||||
</view>
|
||||
|
|
|
|||
|
|
@ -1,33 +1,23 @@
|
|||
<route lang="json5" type="page">
|
||||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
navigationBarTitleText: '兴趣测评报告',
|
||||
},
|
||||
}
|
||||
</route>
|
||||
|
||||
<template>
|
||||
<view class="flex flex-col h-screen relative custom-bg">
|
||||
<Navbar
|
||||
safeAreaInsetTop
|
||||
:bordered="false"
|
||||
leftArrow
|
||||
@clickLeft="handleBack"
|
||||
bg-color="transparent"
|
||||
>
|
||||
<template #title>
|
||||
<text class="text-[#1F2329] text-[36rpx] font-medium text-[#fff]">兴趣测评报告</text>
|
||||
</template>
|
||||
</Navbar>
|
||||
|
||||
<view class="flex-1 overflow-auto relative mt-[40rpx]">
|
||||
<view class="overflow-auto relative mt-[40rpx] flex-1 pb-[20rpx]">
|
||||
<!-- 顶部卡片 -->
|
||||
<view class="flex flex-col pt-[32rpx] px-[84rpx] h-[244rpx] mb-[-116rpx] font-700">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/src/images/evaluate/bg.png"
|
||||
class="header-bg"
|
||||
/>
|
||||
<view class="header-bg">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/src/images/evaluate/bg.png"
|
||||
class="w-full h-full"
|
||||
/>
|
||||
</view>
|
||||
<text class="text-[#333] text-[28rpx] mb-[14rpx] z-2">您的兴趣类型为</text>
|
||||
<text class="text-[#117CFC] text-[36rpx] z-2">{{ studyRecord.title }}</text>
|
||||
</view>
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
transparentTitle: 'always',
|
||||
navigationBarTitleText: '',
|
||||
},
|
||||
}
|
||||
</route>
|
||||
|
|
@ -24,10 +26,12 @@
|
|||
<view class="overflow-auto relative mt-[40rpx] flex-1 pb-[20rpx]">
|
||||
<!-- 顶部卡片 -->
|
||||
<view class="flex flex-col pt-[32rpx] px-[84rpx] h-[244rpx] mb-[-116rpx] font-700">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/src/images/evaluate/bg.png"
|
||||
class="header-bg"
|
||||
/>
|
||||
<view class="header-bg">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/src/images/evaluate/bg.png"
|
||||
class="w-full h-full"
|
||||
/>
|
||||
</view>
|
||||
<text class="text-[#333] text-[28rpx] mb-[14rpx] z-2">您的职业价值观</text>
|
||||
<text class="text-[#117CFC] text-[40rpx] z-2">{{ studyRecord.tag }}</text>
|
||||
</view>
|
||||
|
|
|
|||
|
|
@ -8,10 +8,12 @@
|
|||
<view
|
||||
class="rounded-[8rpx] border-[#1580FF] border-[2rpx] border-solid w-full py-[14rpx] flex items-center justify-center"
|
||||
>
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/images/btn-bottom.png"
|
||||
class="w-[52rpx] h-[52rpx] mr-[10rpx]"
|
||||
></image>
|
||||
<view class="w-[52rpx] h-[52rpx] mr-[10rpx]">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/images/btn-bottom.png"
|
||||
class="w-[52rpx] h-[52rpx]"
|
||||
></image>
|
||||
</view>
|
||||
<text class="text-[#1580FF] text-[32rpx] font-700">智能AI顾问</text>
|
||||
</view>
|
||||
</view>
|
||||
|
|
|
|||
|
|
@ -17,11 +17,13 @@
|
|||
v-for="(person, index) in personList"
|
||||
:key="index"
|
||||
>
|
||||
<image
|
||||
:src="person.avatarUrl"
|
||||
class="w-[120rpx] h-[120rpx] rounded-full"
|
||||
mode="aspectFill"
|
||||
></image>
|
||||
<view class="w-[120rpx] h-[120rpx]">
|
||||
<image
|
||||
:src="person.avatarUrl"
|
||||
class="w-[120rpx] h-[120rpx] rounded-full"
|
||||
mode="aspectFill"
|
||||
></image>
|
||||
</view>
|
||||
<text class="mt-[10rpx] text-[26rpx] text-[28rpx] font-normal text-center">
|
||||
{{ person.nickName }}
|
||||
</text>
|
||||
|
|
|
|||
|
|
@ -13,11 +13,13 @@
|
|||
</view>
|
||||
|
||||
<view class="relative mt-[68rpx] bg-[#F5FAFF]">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/src/images/home/test-icon.png"
|
||||
mode="scaleToFill"
|
||||
class="w-[180rpx] h-[52rpx] absolute top-[-9rpx] left-[20rpx]"
|
||||
/>
|
||||
<view class="absolute top-[-9rpx] left-[20rpx] w-[180rpx] h-[52rpx]">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/src/images/home/test-icon.png"
|
||||
mode="scaleToFill"
|
||||
class="w-[180rpx] h-[52rpx]"
|
||||
/>
|
||||
</view>
|
||||
<view class="px-[20rpx] pb-[20rpx] pt-[58rpx] text-[#333] text-[26rpx]">
|
||||
{{ description }}
|
||||
</view>
|
||||
|
|
|
|||
|
|
@ -2,11 +2,13 @@
|
|||
<view class="flex flex-col bg-white rounded-[24rpx] p-[30rpx] gap-[40rpx]">
|
||||
<view class="flex flex-col gap-[12rpx]">
|
||||
<view class="flex items-center gap-[10rpx]">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/src/images/home/life-icon.png"
|
||||
mode="scaleToFill"
|
||||
class="w-[38rpx] h-[38rpx]"
|
||||
/>
|
||||
<view class="w-[38rpx] h-[38rpx]">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/src/images/home/life-icon.png"
|
||||
mode="scaleToFill"
|
||||
class="w-[38rpx] h-[38rpx]"
|
||||
/>
|
||||
</view>
|
||||
<text class="text-[32rpx] text-[#000] font-700">生活建议</text>
|
||||
</view>
|
||||
<view class="text-[26rpx] text-[#666] font-400">
|
||||
|
|
@ -16,11 +18,13 @@
|
|||
</view>
|
||||
<view class="flex flex-col gap-[12rpx]">
|
||||
<view class="flex items-center gap-[10rpx]">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/src/images/home/diet-icon.png"
|
||||
mode="scaleToFill"
|
||||
class="w-[38rpx] h-[38rpx]"
|
||||
/>
|
||||
<view class="w-[38rpx] h-[38rpx]">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/src/images/home/diet-icon.png"
|
||||
mode="scaleToFill"
|
||||
class="w-[38rpx] h-[38rpx]"
|
||||
/>
|
||||
</view>
|
||||
<text class="text-[32rpx] text-[#000] font-700">饮食建议</text>
|
||||
</view>
|
||||
<view class="text-[26rpx] text-[#666] font-400">
|
||||
|
|
@ -30,11 +34,13 @@
|
|||
</view>
|
||||
<view class="flex flex-col gap-[12rpx]">
|
||||
<view class="flex items-center gap-[10rpx]">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/src/images/home/learn-icon.png"
|
||||
mode="scaleToFill"
|
||||
class="w-[38rpx] h-[38rpx]"
|
||||
/>
|
||||
<view class="w-[38rpx] h-[38rpx]">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/src/images/home/learn-icon.png"
|
||||
mode="scaleToFill"
|
||||
class="w-[38rpx] h-[38rpx]"
|
||||
/>
|
||||
</view>
|
||||
<text class="text-[32rpx] text-[#000] font-700">学习建议</text>
|
||||
</view>
|
||||
<view class="text-[26rpx] text-[#666] font-400">
|
||||
|
|
|
|||
|
|
@ -4,11 +4,13 @@
|
|||
<LEchart ref="echart" :customStyle="`z-index:1;`"></LEchart>
|
||||
</view>
|
||||
<view class="relative mt-[68rpx] bg-[#F5FAFF] mx-[20rpx] px-[24rpx] pt-[58rpx] pb-[20rpx]">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/src/images/home/test-icon.png"
|
||||
mode="scaleToFill"
|
||||
class="w-[180rpx] h-[52rpx] absolute top-[-9rpx] left-[20rpx]"
|
||||
/>
|
||||
<view class="w-[180rpx] h-[52rpx] absolute top-[-9rpx] left-[20rpx]">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/src/images/home/test-icon.png"
|
||||
mode="scaleToFill"
|
||||
class="w-[180rpx] h-[52rpx]"
|
||||
/>
|
||||
</view>
|
||||
<view v-for="(item, index) in innerParsing" class="text-[26rpx] mb-[20rpx]" :key="index">
|
||||
<text class="text-[#000] font-700">{{ item.title }}: </text>
|
||||
<text class="text-[#3d3d3d] font-400">{{ item.desc }}</text>
|
||||
|
|
@ -57,7 +59,6 @@ watch(
|
|||
_val.tags.forEach((item) => {
|
||||
if (item.title === '策略偏好') {
|
||||
policy.value = item
|
||||
return
|
||||
} else {
|
||||
innerParsing.value.push(...item.items)
|
||||
}
|
||||
|
|
@ -89,7 +90,7 @@ watch(
|
|||
// 处理文字换行
|
||||
const maxLength = 4
|
||||
const result = []
|
||||
let _val = value.split(',')
|
||||
const _val = value.split(',')
|
||||
for (let i = 0; i < _val[0].length; i += maxLength) {
|
||||
result.push(value.slice(i, i + maxLength))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,19 +2,15 @@
|
|||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
transparentTitle: 'always',
|
||||
navigationBarTitleText: '',
|
||||
},
|
||||
}
|
||||
</route>
|
||||
|
||||
<template>
|
||||
<view :scroll-y="true" class="flex flex-col h-screen relative custom-bg">
|
||||
<Navbar
|
||||
safeAreaInsetTop
|
||||
:bordered="false"
|
||||
leftArrow
|
||||
@clickLeft="handleBack"
|
||||
bg-color="transparent"
|
||||
>
|
||||
<Navbar safeAreaInsetTop :bordered="false" leftArrow @clickLeft="handleBack" bg-color="transparent">
|
||||
<template #title>
|
||||
<text class="text-[#1F2329] text-[36rpx] font-medium text-[#fff]">MHT心理健康自评</text>
|
||||
</template>
|
||||
|
|
@ -68,6 +64,7 @@ onLoad((options) => {
|
|||
.custom-bg {
|
||||
background: linear-gradient(184deg, #0d79fc 0%, #2186fc 100%);
|
||||
}
|
||||
|
||||
:deep(.icon-class) {
|
||||
color: #fff !important;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
transparentTitle: 'always',
|
||||
navigationBarTitleText: '',
|
||||
},
|
||||
}
|
||||
</route>
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
transparentTitle: 'always',
|
||||
navigationBarTitleText: '',
|
||||
},
|
||||
}
|
||||
</route>
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
transparentTitle: 'always',
|
||||
navigationBarTitleText: '',
|
||||
},
|
||||
}
|
||||
</route>
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
transparentTitle: 'always',
|
||||
navigationBarTitleText: '',
|
||||
},
|
||||
}
|
||||
</route>
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
transparentTitle: 'always',
|
||||
navigationBarTitleText: '',
|
||||
},
|
||||
}
|
||||
</route>
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,28 +1,35 @@
|
|||
<template>
|
||||
<CheckboxGroup
|
||||
v-model="defValue"
|
||||
checked-color="#1580FF"
|
||||
@change="handleChange"
|
||||
v-bind="$attrs"
|
||||
:style="{ '--default-cols': defaultCols }"
|
||||
>
|
||||
<Checkbox
|
||||
v-for="item in list"
|
||||
:key="item[valueKey]"
|
||||
:name="item[valueKey]"
|
||||
cell
|
||||
shape="button"
|
||||
class="custom-checkbox"
|
||||
:style="checkboxStyle"
|
||||
>
|
||||
{{ item[labelKey] }}
|
||||
</Checkbox>
|
||||
</CheckboxGroup>
|
||||
<view class="custom-checkbox">
|
||||
|
||||
<CheckboxGroup v-model="defValue" checked-color="#1580FF" @change="handleChange" v-bind="$attrs" :default-cols="4">
|
||||
|
||||
<Checkbox v-for="item in list" :key="item[valueKey]" :name="item[valueKey]" cell shape="button" :default-style="`
|
||||
${checkboxStyle}
|
||||
--checkbox-bg: #f7f8fa;
|
||||
--checkbox-radius: 8rpx;
|
||||
--checkbox-active-border: 2rpx solid #1580ff;
|
||||
--checkbox-active-color: #1580ff;
|
||||
|
||||
height: var(--checkbox-height);
|
||||
|
||||
background-color: var(--checkbox-bg);
|
||||
border-radius: var(--checkbox-radius);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
`">
|
||||
{{ item[labelKey] }}
|
||||
</Checkbox>
|
||||
|
||||
</CheckboxGroup>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import Checkbox from './Checkbox.vue'
|
||||
import CheckboxGroup from './CheckboxGroup.vue'
|
||||
|
||||
|
||||
const props = defineProps({
|
||||
list: {
|
||||
type: Array,
|
||||
|
|
@ -84,15 +91,13 @@ watch(
|
|||
const checkboxStyle = computed(() => {
|
||||
const width = typeof props.width === 'number' ? `${props.width}rpx` : props.width
|
||||
const height = typeof props.height === 'number' ? `${props.height}rpx` : props.height
|
||||
return {
|
||||
'--checkbox-width': width,
|
||||
'--checkbox-height': height,
|
||||
}
|
||||
return `--checkbox-width: ${width};--checkbox-height: ${height};`
|
||||
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
:deep(.custom-checkbox) {
|
||||
.custom-checkbox {
|
||||
// 定义默认变量
|
||||
--checkbox-width: 216rpx;
|
||||
--checkbox-height: 60rpx;
|
||||
|
|
@ -100,30 +105,29 @@ const checkboxStyle = computed(() => {
|
|||
--checkbox-radius: 8rpx;
|
||||
color: #333;
|
||||
|
||||
.checkbox {
|
||||
width: var(--checkbox-width);
|
||||
height: var(--checkbox-height);
|
||||
min-width: var(--checkbox-width);
|
||||
background-color: var(--checkbox-bg);
|
||||
border-radius: var(--checkbox-radius);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border: 2rpx solid var(--checkbox-bg);
|
||||
}
|
||||
.checkbox__icon {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.checkbox-group) {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(var(--default-cols), 1fr);
|
||||
gap: 16rpx;
|
||||
:deep(.ycym-checkbox) {
|
||||
width: var(--checkbox-width);
|
||||
height: var(--checkbox-height);
|
||||
min-width: var(--checkbox-width);
|
||||
background-color: var(--checkbox-bg);
|
||||
border-radius: var(--checkbox-radius);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border: 2rpx solid var(--checkbox-bg);
|
||||
}
|
||||
|
||||
:deep(.checkbox__icon) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
:deep(.checkbox-active) {
|
||||
border-color: #1580ff !important;
|
||||
|
||||
.checkbox__label {
|
||||
color: #1580ff !important;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<view
|
||||
class="checkbox"
|
||||
:style="`${defaultStyle}`"
|
||||
:class="{
|
||||
'checkbox--disabled': isDisabled,
|
||||
'checkbox-active': isChecked,
|
||||
|
|
@ -8,7 +8,7 @@
|
|||
}"
|
||||
@click="handleClick"
|
||||
>
|
||||
<view class="checkbox__icon" :class="{ 'checkbox__icon--checked': isChecked }">
|
||||
<view class="checkbox__icon" :class="{ 'checkbox__icon--checked': isChecked }" v-if="showIcon">
|
||||
<text v-if="isChecked" class="i-carbon-checkmark checkbox__icon-check"></text>
|
||||
</view>
|
||||
<view class="checkbox__label">
|
||||
|
|
@ -33,6 +33,16 @@ const props = defineProps({
|
|||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
showIcon:{
|
||||
default:false
|
||||
},
|
||||
defaultStyle:{
|
||||
type:String,
|
||||
default: 'display: inline-flex;align-items: center;cursor: pointer;font-size: 28rpx;'
|
||||
},
|
||||
checkboxActive:{
|
||||
default:'background-color: #0083ff;border-color: #0083ff;'
|
||||
}
|
||||
})
|
||||
|
||||
const emit = defineEmits(['change'])
|
||||
|
|
@ -83,12 +93,6 @@ const handleClick = () => {
|
|||
</script>
|
||||
|
||||
<style scoped>
|
||||
.checkbox {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
|
||||
.checkbox--disabled {
|
||||
cursor: not-allowed;
|
||||
|
|
@ -108,7 +112,6 @@ const handleClick = () => {
|
|||
}
|
||||
|
||||
.checkbox__icon--checked {
|
||||
background-color: #0083ff;
|
||||
border-color: #0083ff;
|
||||
}
|
||||
|
||||
|
|
@ -122,8 +125,8 @@ const handleClick = () => {
|
|||
}
|
||||
|
||||
.checkbox-active {
|
||||
background-color: #0083ff;
|
||||
border-color: #0083ff;
|
||||
border:var(--checkbox-active-border);
|
||||
color: var(--checkbox-active-color)
|
||||
}
|
||||
|
||||
.checkbox-disabled {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<view class="checkbox-group">
|
||||
<view class="checkbox-group" :style="`${checkgroupStyle}`">
|
||||
<slot></slot>
|
||||
</view>
|
||||
</template>
|
||||
|
|
@ -20,6 +20,10 @@ const props = defineProps({
|
|||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
checkgroupStyle:{
|
||||
type:String,
|
||||
default:'grid-template-columns: repeat(3, 1fr);'
|
||||
}
|
||||
})
|
||||
|
||||
const emit = defineEmits(['update:modelValue', 'change'])
|
||||
|
|
@ -64,9 +68,9 @@ provide('checkboxGroup', {
|
|||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.checkbox-group {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 20rpx;
|
||||
|
||||
.checkbox-group{
|
||||
display: grid;
|
||||
gap: 16rpx;
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -12,7 +12,9 @@
|
|||
<view class="uni-collapse-item__title-wrap">
|
||||
<slot name="title" :expanded="isOpen">
|
||||
<view class="uni-collapse-item__title-box" :class="{ 'is-disabled': disabled }">
|
||||
<image v-if="thumb" :src="thumb" class="uni-collapse-item__title-img" />
|
||||
<view class="uni-collapse-item__title-img">
|
||||
<image v-if="thumb" :src="thumb" class="uni-collapse-item__title-img" />
|
||||
</view>
|
||||
<text class="uni-collapse-item__title-text">{{ title }}</text>
|
||||
</view>
|
||||
</slot>
|
||||
|
|
|
|||
|
|
@ -1,12 +1,12 @@
|
|||
<template>
|
||||
<view class="flex items-center rounded-[48rpx] bg-[#F7F7F7]! px-[24rpx] py-[12rpx] ml-[32rpx]">
|
||||
<view class="flex items-center rounded-[48rpx] bg-[#F7F7F7] px-[24rpx] py-[12rpx] ml-[12rpx]">
|
||||
<view class="i-carbon-search text-[#999]"></view>
|
||||
<input
|
||||
v-model="searchValue"
|
||||
:placeholder="placeholder"
|
||||
confirm-type="search"
|
||||
placeholder-style="color:#999"
|
||||
class="text-start ml-20rpx"
|
||||
class="text-start ml-20rpx bg-transparent"
|
||||
@confirm="handleConfirm"
|
||||
@input="handleInput"
|
||||
/>
|
||||
|
|
|
|||
|
|
@ -11,11 +11,13 @@
|
|||
/>
|
||||
分
|
||||
</view>
|
||||
<image
|
||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/qujian.png"
|
||||
mode="scaleToFill"
|
||||
class="mx-[20rpx] flex-1 h-[20rpx]"
|
||||
/>
|
||||
<view class="mx-[20rpx] flex-1 h-[20rpx]">
|
||||
<image
|
||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/qujian.png"
|
||||
mode="scaleToFill"
|
||||
class="h-[20rpx]"
|
||||
/>
|
||||
</view>
|
||||
<view
|
||||
class="w-[84rpx] h-[36rpx] rounded-full border-[#187CFF] border-solid border-[2rpx] flex items-center px-[18rpx] py-[10rpx] text-[#1580FF] text-[26rpx] bg-[rgba(21,128,255,0.1)]"
|
||||
>
|
||||
|
|
@ -92,7 +94,7 @@ const handleNumberChange = () => {
|
|||
}
|
||||
|
||||
const handleRightThumbTouchEnd = () => {
|
||||
let changeValue = [currentLeftValue.value, currentRightValue.value]
|
||||
const changeValue = [currentLeftValue.value, currentRightValue.value]
|
||||
emits('change', changeValue)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -13,18 +13,21 @@
|
|||
:class="[contentClass, fixed ? 'navbar-fixed' : '', bordered ? 'navbar-border' : '']"
|
||||
:style="{
|
||||
backgroundColor: bgColor,
|
||||
height: navHeight + 'px',
|
||||
height: `${navHeight}px`,
|
||||
top: fixed ? (safeAreaInsetTop ? statusBarHeight : 0) + 'px' : '0',
|
||||
}"
|
||||
>
|
||||
<!-- 左侧区域 -->
|
||||
<view :class="`navbar-left ${leftWidthMin ? 'w-m-[100rpx]' : ''}`" @click="handleClickLeft">
|
||||
<view
|
||||
:class="`navbar-left ${leftWidthMin ? 'min-w-[48rpx]' : ''} min-w-[48rpx]`"
|
||||
@click="handleClickLeft"
|
||||
>
|
||||
<!-- #ifndef MP-ALIPAY -->
|
||||
<view v-if="leftArrow" class="back-icon">
|
||||
<view class="i-carbon-chevron-left text-[40rpx] text-[#333] font-semibold icon-class" />
|
||||
</view>
|
||||
<!-- #endif -->
|
||||
<slot name="left"></slot>
|
||||
</view>
|
||||
|
||||
<!-- 中间标题区域 -->
|
||||
<view class="navbar-title">
|
||||
<slot name="title">
|
||||
|
|
@ -51,7 +54,7 @@
|
|||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { computed } from 'vue'
|
||||
import { getDeviceInfo, getWindowInfo } from '@/utils/tools'
|
||||
|
||||
defineProps({
|
||||
title: {
|
||||
|
|
@ -95,8 +98,9 @@ defineProps({
|
|||
const emit = defineEmits(['clickLeft'])
|
||||
|
||||
// 获取系统信息
|
||||
const systemInfo = uni.getWindowInfo()
|
||||
const deviceInfo = uni.getDeviceInfo()
|
||||
const deviceInfo = getDeviceInfo()
|
||||
const systemInfo = getWindowInfo()
|
||||
|
||||
const statusBarHeight = systemInfo.statusBarHeight || 0
|
||||
|
||||
// 动态计算导航栏高度
|
||||
|
|
@ -134,20 +138,20 @@ const handleClickLeft = () => {
|
|||
}
|
||||
|
||||
.navbar-content {
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
/* justify-content: space-between; */
|
||||
padding: 0 16rpx;
|
||||
box-sizing: border-box;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.navbar-fixed {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
z-index: 99;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.navbar-border {
|
||||
|
|
@ -168,20 +172,20 @@ const handleClickLeft = () => {
|
|||
}
|
||||
|
||||
.navbar-title {
|
||||
/* flex: 1; */
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
/* flex: 1; */
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.title-text {
|
||||
font-size: 34rpx;
|
||||
color: #333;
|
||||
font-weight: 500;
|
||||
overflow: hidden;
|
||||
font-size: 34rpx;
|
||||
font-weight: 500;
|
||||
color: #333;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
|
@ -189,8 +193,8 @@ const handleClickLeft = () => {
|
|||
.navbar-right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
min-width: 52rpx;
|
||||
justify-content: flex-end;
|
||||
min-width: 52rpx;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<view v-if="slot.default">
|
||||
<view>
|
||||
<slot></slot>
|
||||
</view>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -16,13 +16,12 @@ type TableContext = {
|
|||
|
||||
const key = Symbol('table')
|
||||
|
||||
export function useTable() {
|
||||
export function useTable() {
|
||||
const columns = ref<Column[]>([])
|
||||
|
||||
const addColumn = (column: Column) => {
|
||||
columns.value.push(column)
|
||||
}
|
||||
|
||||
provide(key, {
|
||||
columns,
|
||||
addColumn,
|
||||
|
|
|
|||
|
|
@ -1,26 +1,22 @@
|
|||
<route lang="json5" type="page">
|
||||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
navigationBarTitleText: '在线客服',
|
||||
},
|
||||
}
|
||||
</route>
|
||||
|
||||
<template>
|
||||
<view class="bg-[#fff] h-[100vh] flex flex-col">
|
||||
<Navbar safeAreaInsetTop :bordered="false" title="在线客服" leftArrow @clickLeft="handleBack">
|
||||
<template #title>
|
||||
<text class="text-[#1F2329] text-[36rpx] font-medium">在线客服</text>
|
||||
</template>
|
||||
</Navbar>
|
||||
|
||||
<view class="flex-1 bg-[#F8F8F8] px-[32rpx] pb-safe">
|
||||
<view class="mt-[84rpx] h-[754rpx] rounded-[16rpx] bg-[#fff]">
|
||||
<view class="py-[48rpx] mx-[48rpx] avatar-border flex justify-center items-center">
|
||||
<image
|
||||
class="min-w-[144rpx] min-h-[144rpx] w-[144rpx] h-[144rpx] rounded-full"
|
||||
src="https://api.static.ycymedu.com/sub/images/customerService/avatar.jpg"
|
||||
></image>
|
||||
<view class="min-w-[144rpx] min-h-[144rpx] w-[144rpx] h-[144rpx]">
|
||||
<image
|
||||
class="rounded-full"
|
||||
src="https://api.static.ycymedu.com/sub/images/customerService/avatar.jpg"
|
||||
></image>
|
||||
</view>
|
||||
<view class="flex flex-col text-[#000] ml-[32rpx]">
|
||||
<text class="mb-[12rpx] font-normal text-[28rpx]">专属客服为您服务</text>
|
||||
<view class="flex items-center">
|
||||
|
|
@ -36,11 +32,13 @@
|
|||
</view>
|
||||
|
||||
<view class="px-[168rpx] pt-[48rpx]">
|
||||
<image
|
||||
class="w-[352rpx] h-[352rpx]"
|
||||
:src="qrCodeUrl"
|
||||
:show-menu-by-longpress="true"
|
||||
></image>
|
||||
<view class="w-[352rpx] h-[352rpx]">
|
||||
<image
|
||||
class="w-[352rpx] h-[352rpx]"
|
||||
:src="qrCodeUrl"
|
||||
:show-menu-by-longpress="true"
|
||||
></image>
|
||||
</view>
|
||||
|
||||
<view class="flex items-center justify-center mt-[34rpx]">
|
||||
<view class="i-carbon-fingerprint-recognition text-[#E75859] text-[28rpx]"></view>
|
||||
|
|
@ -55,7 +53,6 @@
|
|||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import Navbar from '@/pages-sub/components/navbar/Navbar.vue'
|
||||
import { useUserStore } from '@/store'
|
||||
|
||||
const userStore = useUserStore()
|
||||
|
|
@ -84,10 +81,6 @@ const makePhoneCall = () => {
|
|||
})
|
||||
}
|
||||
|
||||
const handleBack = () => {
|
||||
uni.navigateBack()
|
||||
}
|
||||
|
||||
onBeforeMount(() => {
|
||||
phoneNumber.value = contact[userStore.userInfo.city.code]?.phone || phoneNumber.value
|
||||
qrCodeUrl.value = contact[userStore.userInfo.city.code]?.qrCode || qrCodeUrl.value
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
transparentTitle: 'always',
|
||||
navigationBarTitleText: '',
|
||||
},
|
||||
}
|
||||
</route>
|
||||
|
|
@ -45,6 +47,7 @@
|
|||
cell
|
||||
shape="button"
|
||||
class="custom-checkbox"
|
||||
default-style="width: 100%;height: 80rpx;background-color: #f6f7f8;border-radius: 8rpx;display: flex;align-items: center;justify-content: center;font-size: 28rpx;font-weight: 400;color: #303030;border: 2rpx solid #f6f7f8;"
|
||||
>
|
||||
{{ item.name }}
|
||||
</Checkbox>
|
||||
|
|
|
|||
|
|
@ -122,12 +122,12 @@
|
|||
<view class="text-[24rpx] text-[#1580FF] mr-[8rpx]">
|
||||
{{ isExpand ? '展开' : '收起' }}
|
||||
</view>
|
||||
<image
|
||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/shouqi.png"
|
||||
mode="scaleToFill"
|
||||
class="w-[16rpx] h-[12rpx]"
|
||||
:style="isExpand ? 'transform:rotate(180deg)' : ''"
|
||||
/>
|
||||
<view class="w-[16rpx] h-[12rpx]" :style="isExpand ? 'transform:rotate(180deg)' : ''">
|
||||
<image
|
||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/shouqi.png"
|
||||
class="w-[16rpx] h-[12rpx]"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -42,11 +42,12 @@
|
|||
</view>
|
||||
|
||||
<view class="top-[50%] left-[50%] absolute translate-x-[-50%] translate-y-[-50%]">
|
||||
<image
|
||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/zhongjian.png"
|
||||
mode="scaleToFill"
|
||||
class="w-[184rpx] h-[184rpx]"
|
||||
/>
|
||||
<view class="w-[184rpx] h-[184rpx]">
|
||||
<image
|
||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/zhongjian.png"
|
||||
mode="scaleToFill"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -1,43 +1,53 @@
|
|||
<template>
|
||||
<view class="w-full flex flex-col">
|
||||
<view class="flex flex-col items-center">
|
||||
<image
|
||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/toubu.png "
|
||||
mode="scaleToFill"
|
||||
class="w-full h-[538rpx]"
|
||||
/>
|
||||
<image
|
||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/mingzi.png"
|
||||
mode="scaleToFill"
|
||||
class="h-[44rpx] w-[420rpx] bg-transparent mt-[-78rpx]"
|
||||
/>
|
||||
<view class="w-full h-[538rpx]">
|
||||
<image
|
||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/toubu.png "
|
||||
mode="scaleToFill"
|
||||
class="w-full h-[538rpx]"
|
||||
/>
|
||||
</view>
|
||||
<view class="h-[44rpx] w-[420rpx] mt-[-78rpx]">
|
||||
<image
|
||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/mingzi.png"
|
||||
mode="scaleToFill"
|
||||
class="h-[44rpx] w-[420rpx] bg-transparent"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view
|
||||
class="rounded-[0rpx_0rpx_20rpx_20rpx] h-[474rpx] ml-[36rpx] mr-[38rpx] bg-white px-[24rpx] pt-[28rpx] pb-[18rpx]"
|
||||
>
|
||||
<view class="flex items-center">
|
||||
<image
|
||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/xuexiao.png"
|
||||
mode="scaleToFill"
|
||||
class="w-[214rpx] h-[180rpx] min-w-[214rpx]"
|
||||
@click="
|
||||
previewImg(
|
||||
['https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/xuexiao.png'],
|
||||
0,
|
||||
)
|
||||
"
|
||||
/>
|
||||
<view class="w-[214rpx] h-[180rpx] min-w-[214rpx]">
|
||||
<image
|
||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/xuexiao.png"
|
||||
mode="scaleToFill"
|
||||
class="w-[214rpx] h-[180rpx] min-w-[214rpx]"
|
||||
@click="
|
||||
previewImg(
|
||||
[
|
||||
'https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/xuexiao.png',
|
||||
],
|
||||
0,
|
||||
)
|
||||
"
|
||||
/>
|
||||
</view>
|
||||
|
||||
<view class="text-[26rpx] text-[#3d3d3d] ml-[16rpx] text-wrap">
|
||||
经济南市教育局批准成立的十二年一贯制学校,由山东锦泽实业集团投资创办,坐落于济南市平阴县深泉路1号,占地12万平方米,环境清幽,设施一流。
|
||||
</view>
|
||||
</view>
|
||||
<image
|
||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/tifen.png"
|
||||
mode="scaleToFill"
|
||||
class="h-[234rpx]"
|
||||
/>
|
||||
<view class="h-[234rpx]">
|
||||
<image
|
||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/tifen.png"
|
||||
mode="scaleToFill"
|
||||
class="h-[234rpx]"
|
||||
/>
|
||||
</view>
|
||||
<view class="grid grid-cols-[1fr_2fr_1fr] text-[#333] text-[26rpx] gap-[10prx] mt-[6rpx]">
|
||||
<view class="justify-self-center">轻松可提</view>
|
||||
<view class="justify-self-center">复读生平均提分</view>
|
||||
|
|
|
|||
|
|
@ -11,14 +11,16 @@
|
|||
</view>
|
||||
|
||||
<view class="grid grid-cols-2 gap-x-[16rpx] gap-y-[10rpx]">
|
||||
<image
|
||||
:src="item"
|
||||
mode="scaleToFill"
|
||||
v-for="(item, index) in imageList"
|
||||
:key="index"
|
||||
class="w-full h-[170rpx]"
|
||||
@click="previewImg(imageList, index)"
|
||||
/>
|
||||
<view class="w-full h-[170rpx]">
|
||||
<image
|
||||
:src="item"
|
||||
mode="scaleToFill"
|
||||
v-for="(item, index) in imageList"
|
||||
:key="index"
|
||||
class="w-full h-[170rpx]"
|
||||
@click="previewImg(imageList, index)"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -1,11 +1,13 @@
|
|||
<template>
|
||||
<view class="flex mx-[20rpx] flex-col">
|
||||
<view class="w-full relative z-2">
|
||||
<image
|
||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/biaoti.png"
|
||||
mode="widthFix"
|
||||
class="w-full h-[100rpx]"
|
||||
/>
|
||||
<view class="w-full h-[100rpx]">
|
||||
<image
|
||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/biaoti.png"
|
||||
mode="widthFix"
|
||||
class="w-full h-[100rpx]"
|
||||
/>
|
||||
</view>
|
||||
<view
|
||||
class="text-[40rpx] font-700 absolute top-[12rpx] left-[50rpx] tracking-[10rpx] text-white italic"
|
||||
>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,9 @@
|
|||
class="rounded-[40rpx] bg-white px-[36rpx] pt-[38rpx] pb-[20rpx] grid grid-cols-4 gap-x-[0rpx] gap-y-[28rpx]"
|
||||
>
|
||||
<view class="flex flex-col items-center" v-for="(item, index) in schools" :key="index">
|
||||
<image :src="item.badge" mode="scaleToFill" class="w-[120rpx] h-[120rpx]" />
|
||||
<view class="w-[120rpx] h-[120rpx]">
|
||||
<image :src="item.badge" mode="scaleToFill" class="w-[120rpx] h-[120rpx]" />
|
||||
</view>
|
||||
<span class="text-[26rpx] text-[#333]">{{ item.name }}</span>
|
||||
</view>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,26 +1,33 @@
|
|||
<template>
|
||||
<view class="bg-white px-[30rpx] pb-safe pt-[14rpx] grid grid-cols-2 gap-[24rpx]">
|
||||
<image
|
||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/dh.png"
|
||||
mode="scaleToFill"
|
||||
class="h-[88rpx]"
|
||||
@click="handlePhone"
|
||||
/>
|
||||
<image
|
||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/wx.png"
|
||||
mode="scaleToFill"
|
||||
class="h-[88rpx]"
|
||||
@click="handleFriend"
|
||||
/>
|
||||
<view class="h-[88rpx]">
|
||||
<image
|
||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/dh.png"
|
||||
mode="scaleToFill"
|
||||
class="h-[88rpx]"
|
||||
@click="handlePhone"
|
||||
/>
|
||||
</view>
|
||||
|
||||
<view class="h-[88rpx]">
|
||||
<image
|
||||
src="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/wx.png"
|
||||
mode="scaleToFill"
|
||||
class="h-[88rpx]"
|
||||
@click="handleFriend"
|
||||
/>
|
||||
</view>
|
||||
|
||||
<MessageBox v-model:show="show" title="好友添加">
|
||||
<template>
|
||||
<image
|
||||
:src="friendImage"
|
||||
mode="scaleToFill"
|
||||
class="w-full h-[80vh] py-[20rpx]"
|
||||
:show-menu-by-longpress="true"
|
||||
/>
|
||||
<view class="w-full h-[80vh] py-[20rpx]">
|
||||
<image
|
||||
:src="friendImage"
|
||||
mode="scaleToFill"
|
||||
class="w-full h-[80vh]"
|
||||
:show-menu-by-longpress="true"
|
||||
/>
|
||||
</view>
|
||||
</template>
|
||||
</MessageBox>
|
||||
</view>
|
||||
|
|
|
|||
|
|
@ -9,11 +9,13 @@
|
|||
<template>
|
||||
<view class="flex flex-col h-screen">
|
||||
<Tabs v-model:modelValue="currentIndex" :tabs="tabs"></Tabs>
|
||||
<swiper :current="currentIndex" class="flex-1" @change="handleSwiperChange">
|
||||
<swiper-item v-for="(item, index) in tabs" :key="index">
|
||||
<image :src="item.image" mode="scaleToFill" class="w-full h-full" />
|
||||
</swiper-item>
|
||||
</swiper>
|
||||
<view class="flex-1">
|
||||
<swiper :current="currentIndex" @change="handleSwiperChange">
|
||||
<swiper-item v-for="(item, index) in tabs" :key="index">
|
||||
<image :src="item.image" mode="scaleToFill" class="w-full h-full" />
|
||||
</swiper-item>
|
||||
</swiper>
|
||||
</view>
|
||||
<ShareButtonGroup
|
||||
phone-number="18516500555"
|
||||
friend-image="https://api-static-zhiy.oss-cn-shanghai.aliyuncs.com/images/ad-banner/tianjiawx-liuxue.jpg"
|
||||
|
|
|
|||
|
|
@ -20,12 +20,14 @@
|
|||
</button>
|
||||
</Badge>
|
||||
|
||||
<image
|
||||
class="w-[286rpx] h-[286rpx] mt-[134rpx] mix-blend-darken"
|
||||
src="https://api.static.ycymedu.com/sub/images/autoFill/auto-fill.jpg"
|
||||
mode="widthFix"
|
||||
@click="show = true"
|
||||
></image>
|
||||
<view class="w-[286rpx] h-[286rpx] mt-[134rpx]">
|
||||
<image
|
||||
class="w-[286rpx] h-[286rpx] mix-blend-darken"
|
||||
src="https://api.static.ycymedu.com/sub/images/autoFill/auto-fill.jpg"
|
||||
mode="widthFix"
|
||||
@click="show = true"
|
||||
></image>
|
||||
</view>
|
||||
</view>
|
||||
<ActionSheet
|
||||
v-model:show="show"
|
||||
|
|
@ -76,9 +78,9 @@ const handleChange = (params) => {
|
|||
}
|
||||
|
||||
const handleResult = () => {
|
||||
let _params = filterMenuRef.value.handleConfirm()
|
||||
const _params = filterMenuRef.value.handleConfirm()
|
||||
|
||||
let params = {
|
||||
const params = {
|
||||
p: userStore.userInfo.estimatedAchievement.sp,
|
||||
location: userStore.userInfo.estimatedAchievement.provinceCode,
|
||||
subjects: userStore.userInfo.estimatedAchievement.subjectGroup.split(','),
|
||||
|
|
@ -91,9 +93,9 @@ const handleResult = () => {
|
|||
|
||||
getUniversityListByFilter(params).then((res) => {
|
||||
if (res.code === 200) {
|
||||
let collegeList = (res.result as { rows: any[] }).rows
|
||||
let wishList = collegeList.map((item) => {
|
||||
let _major = {
|
||||
const collegeList = (res.result as { rows: any[] }).rows
|
||||
const wishList = collegeList.map((item) => {
|
||||
const _major = {
|
||||
...item,
|
||||
name: item.universityName,
|
||||
vItems: item.majorItems.map((majorItem) => ({
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
transparentTitle: 'always',
|
||||
navigationBarTitleText: '',
|
||||
},
|
||||
}
|
||||
</route>
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
transparentTitle: 'always',
|
||||
navigationBarTitleText: '',
|
||||
},
|
||||
needLogin: true,
|
||||
}
|
||||
|
|
@ -25,11 +27,13 @@
|
|||
<text class="text-[36rpx] text-[#000] font-bold mt-[24rpx] mb-[22rpx]">
|
||||
{{ professionInfo.career }}
|
||||
</text>
|
||||
<image
|
||||
class="w-full h-[264rpx] rounded-[8rpx]"
|
||||
:src="professionInfo.img_url"
|
||||
mode="aspectFill"
|
||||
/>
|
||||
<view class="w-full h-[264rpx]">
|
||||
<image
|
||||
class="w-full h-[264rpx] rounded-[8rpx]"
|
||||
:src="professionInfo.img_url"
|
||||
mode="aspectFill"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
<view class="h-[18rpx] bg-[#F8F8F8] mt-[24rpx] mb-[16rpx]"></view>
|
||||
<view class="">
|
||||
|
|
|
|||
|
|
@ -1,13 +1,12 @@
|
|||
<route lang="json5" type="page">
|
||||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
navigationBarTitleText: '城市列表'
|
||||
},
|
||||
}
|
||||
</route>
|
||||
<template>
|
||||
<view class="wraper overflow-hidden flex flex-col" :bordered="false">
|
||||
<Navbar title="城市列表" left-arrow @click-left="navigatorBack" safeAreaInsetTop />
|
||||
<wd-index-bar sticky class="overflow-y h-0 flex-auto">
|
||||
<view v-for="item in cities" :key="item.letter">
|
||||
<wd-index-anchor :index="item.letter" />
|
||||
|
|
@ -28,7 +27,6 @@
|
|||
import { useCityStore } from '@/store/city'
|
||||
import { useUserStore } from '@/store/user'
|
||||
import { City } from '@/types/app-type'
|
||||
import Navbar from '@/pages-sub/components/navbar/Navbar.vue'
|
||||
import { getUserCity } from '@/service/index/api'
|
||||
|
||||
const cityStore = useCityStore()
|
||||
|
|
|
|||
|
|
@ -1,11 +1,13 @@
|
|||
<template>
|
||||
<view class="flex flex-col px-[32rpx] pt-[32rpx] bg-[#fff] mt-16rpx">
|
||||
<view class="flex items-center gap-[10rpx]">
|
||||
<image
|
||||
class="w-[48rpx] h-[48rpx]"
|
||||
src="https://api.static.ycymedu.com/zdx/faculty.png"
|
||||
mode="scaleToFill"
|
||||
/>
|
||||
<view class="w-[48rpx] h-[48rpx]">
|
||||
<image
|
||||
class="w-[48rpx] h-[48rpx]"
|
||||
src="https://api.static.ycymedu.com/zdx/faculty.png"
|
||||
mode="scaleToFill"
|
||||
/>
|
||||
</view>
|
||||
<text class="text-[32rpx] font-semibold text-[#333]">院系设置</text>
|
||||
</view>
|
||||
|
||||
|
|
@ -51,9 +53,9 @@ watch(
|
|||
(newVal) => {
|
||||
getUniversityListByProvince({ id: newVal }).then((resp) => {
|
||||
if (resp.code === 200) {
|
||||
let _res = (originTableData = resp.result as { name: string; item: { name: string }[] }[])
|
||||
const _res = (originTableData = resp.result as { name: string; item: { name: string }[] }[])
|
||||
_res.forEach((college) => {
|
||||
let _college = { name: college.name, major: '' }
|
||||
const _college = { name: college.name, major: '' }
|
||||
_college.major = college.item.map((item) => item.name).join(',')
|
||||
tableData.value.push(_college)
|
||||
})
|
||||
|
|
|
|||
|
|
@ -37,11 +37,13 @@
|
|||
v-show="assessmentSubjectList.length > 0"
|
||||
>
|
||||
<view class="flex items-center gap-[10rpx]">
|
||||
<image
|
||||
class="w-[48rpx] h-[48rpx]"
|
||||
src="https://api.static.ycymedu.com/zdx/subject.png"
|
||||
mode="scaleToFill"
|
||||
/>
|
||||
<view class="w-[48rpx] h-[48rpx]">
|
||||
<image
|
||||
class="w-[48rpx] h-[48rpx]"
|
||||
src="https://api.static.ycymedu.com/zdx/subject.png"
|
||||
mode="scaleToFill"
|
||||
/>
|
||||
</view>
|
||||
<text class="text-[30rpx] font-600 text-[#000]">
|
||||
学科评估·{{ assessmentSubjectList.length }}
|
||||
</text>
|
||||
|
|
@ -72,11 +74,13 @@
|
|||
</view>
|
||||
<view class="flex flex-col p-[32rpx] bg-[#fff] mt-[16rpx]" v-show="featureSubjectList.length > 0">
|
||||
<view class="flex items-center gap-[10rpx]">
|
||||
<image
|
||||
class="w-[48rpx] h-[48rpx]"
|
||||
src="https://api.static.ycymedu.com/zdx/profession.png"
|
||||
mode="scaleToFill"
|
||||
/>
|
||||
<view class="w-[48rpx] h-[48rpx]">
|
||||
<image
|
||||
class="w-[48rpx] h-[48rpx]"
|
||||
src="https://api.static.ycymedu.com/zdx/profession.png"
|
||||
mode="scaleToFill"
|
||||
/>
|
||||
</view>
|
||||
<text class="text-[30rpx] font-600 text-[#000]">
|
||||
特色专业·{{ featureSubjectList.length }}
|
||||
</text>
|
||||
|
|
@ -207,7 +211,7 @@ const parsedNames = (name: string) => {
|
|||
}
|
||||
}
|
||||
return {
|
||||
name: name,
|
||||
name,
|
||||
grade: '',
|
||||
}
|
||||
}
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -2,6 +2,8 @@
|
|||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
transparentTitle: 'always',
|
||||
navigationBarTitleText: '',
|
||||
},
|
||||
}
|
||||
</route>
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
transparentTitle: 'always',
|
||||
navigationBarTitleText: '',
|
||||
},
|
||||
}
|
||||
</route>
|
||||
|
|
@ -49,21 +51,21 @@
|
|||
v-if="currentMenu === 1"
|
||||
@changeName="handleRegionChange"
|
||||
@change="handleRegionIdChange"
|
||||
class="custom-check-group"
|
||||
checkgroupStyle="display: grid;grid-template-columns: repeat(4, 1fr);gap: 16rpx;padding: 24rpx 24rpx 36rpx;"
|
||||
/>
|
||||
<Nature
|
||||
v-if="currentMenu === 2"
|
||||
:defaultValue="natureKeyInfo"
|
||||
@changeName="handleNatureChange"
|
||||
@change="handleNatureIdChange"
|
||||
class="custom-check-group"
|
||||
checkgroupStyle="display: grid;grid-template-columns: repeat(4, 1fr);gap: 16rpx;padding: 24rpx 24rpx 36rpx;"
|
||||
/>
|
||||
<UniType
|
||||
v-if="currentMenu === 3"
|
||||
:defaultValue="uniTypeKeyInfo"
|
||||
@changeName="handleUniTypeChange"
|
||||
@change="handleUniTypeIdChange"
|
||||
class="custom-check-group"
|
||||
checkgroupStyle="display: grid;grid-template-columns: repeat(4, 1fr);gap: 16rpx;padding: 24rpx 24rpx 36rpx;"
|
||||
/>
|
||||
<view class="flex items-center justify-between px-[32rpx] pb-[32rpx] gap-[20rpx]">
|
||||
<view class="cancel-btn" @click="handleClear(index)">清空</view>
|
||||
|
|
@ -80,8 +82,12 @@
|
|||
v-for="item in schoolList"
|
||||
@click="itemClick(item, item.zp_index)"
|
||||
>
|
||||
<view class="flex items-center p-[32rpx] w-full">
|
||||
<image class="w-[80rpx] h-[80rpx] ml-[18rpx] mr-[24rpx]" :src="item.logo"></image>
|
||||
<view class="flex items-center p-[32rpx]">
|
||||
<view class="w-[80rpx] h-[80rpx] ml-[18rpx] mr-[24rpx]">
|
||||
<view class="w-[80rpx] h-[80rpx]">
|
||||
<image class="w-[80rpx] h-[80rpx] rounded-full" :src="item.logo"></image>
|
||||
</view>
|
||||
</view>
|
||||
<view class="flex justify-between items-center flex-1 overflow-y-hidden">
|
||||
<view class="flex flex-col w-full" hover-class="none">
|
||||
<text class="text-[28rpx] text-[#333] font-semibold mb-[6rpx]">
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
transparentTitle: 'always',
|
||||
navigationBarTitleText: '',
|
||||
},
|
||||
needLogin: true,
|
||||
}
|
||||
|
|
@ -24,11 +26,13 @@
|
|||
|
||||
<view class="flex-1 flex flex-col pb-safe overflow-y-auto">
|
||||
<view class="flex items-center p-[32rpx]" hover-class="none">
|
||||
<image
|
||||
class="w-[104rpx] h-[104rpx]"
|
||||
:src="universityBaseInfo?.universityResult.logo"
|
||||
:lazy-load="true"
|
||||
></image>
|
||||
<view class="w-[104rpx] h-[104rpx]">
|
||||
<image
|
||||
class="w-[104rpx] h-[104rpx]"
|
||||
:src="universityBaseInfo?.universityResult.logo"
|
||||
:lazy-load="true"
|
||||
></image>
|
||||
</view>
|
||||
<view class="flex flex-col ml-[24rpx]">
|
||||
<text class="text-[32rpx] font-semibold text-[#303030]">
|
||||
{{ universityBaseInfo?.universityResult.name }}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
@change="handleChange"
|
||||
label-key="simplename"
|
||||
v-bind="$attrs"
|
||||
:defaultCols="4"
|
||||
width="100%"
|
||||
/>
|
||||
</template>
|
||||
|
|
@ -12,6 +13,10 @@
|
|||
import { getRegionInfo } from '@/service/index/api'
|
||||
import CheckGroup from '@/pages-sub/components/check-group/CheckGroup.vue'
|
||||
|
||||
defineOptions({
|
||||
inheritAttrs:true
|
||||
})
|
||||
|
||||
interface Region {
|
||||
code: string
|
||||
name: string
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,7 +1,7 @@
|
|||
<route lang="json5" type="page">
|
||||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
navigationBarTitleText: '查扩缩招',
|
||||
},
|
||||
}
|
||||
</route>
|
||||
|
|
@ -16,19 +16,9 @@
|
|||
@query="queryList"
|
||||
:auto-show-system-loading="true"
|
||||
:safe-area-inset-bottom="true"
|
||||
:pagingStyle="{ backgroundColor: 'white' }"
|
||||
>
|
||||
<template #top>
|
||||
<view class="relative">
|
||||
<Navbar
|
||||
safeAreaInsetTop
|
||||
bg-color="transparent"
|
||||
:bordered="false"
|
||||
left-arrow
|
||||
title="查扩缩招"
|
||||
@click-left="navigatorBack"
|
||||
/>
|
||||
<view class="custom-background h-[200rpx] w-full absolute top-0 left-0 z-[-1]"></view>
|
||||
</view>
|
||||
<drop-menu ref="dropMenuRef">
|
||||
<drop-menu-item
|
||||
:key="item.id"
|
||||
|
|
@ -41,21 +31,21 @@
|
|||
:defaultValue="regionKeyInfo"
|
||||
@changeName="handleRegionChange"
|
||||
@change="handleRegionChangeCode"
|
||||
class="custom-check-group"
|
||||
checkgroupStyle="display: grid;grid-template-columns: repeat(4, 1fr);gap: 16rpx;padding: 24rpx 24rpx 36rpx;"
|
||||
v-if="item.id === 1"
|
||||
/>
|
||||
<Nature
|
||||
:defaultValue="natureKeyInfo"
|
||||
@changeName="handleNatureChange"
|
||||
@change="handleNatureChangeCode"
|
||||
class="custom-check-group"
|
||||
checkgroupStyle="display: grid;grid-template-columns: repeat(4, 1fr);gap: 16rpx;padding: 24rpx 24rpx 36rpx;"
|
||||
v-if="item.id === 2"
|
||||
/>
|
||||
<UniType
|
||||
:defaultValue="uniTypeKeyInfo"
|
||||
@change-name="handleUniTypeChange"
|
||||
@change="handleUniTypeChangeCode"
|
||||
class="custom-check-group"
|
||||
checkgroupStyle="display: grid;grid-template-columns: repeat(4, 1fr);gap: 16rpx;padding: 24rpx 24rpx 36rpx;"
|
||||
v-if="item.id === 3"
|
||||
/>
|
||||
<view class="flex items-center justify-between px-[32rpx] pb-[32rpx] gap-[20rpx]">
|
||||
|
|
@ -64,7 +54,6 @@
|
|||
</view>
|
||||
</drop-menu-item>
|
||||
</drop-menu>
|
||||
|
||||
<view class="px-32rpx">
|
||||
<view class="flex items-center justify-between input-wrapper-class">
|
||||
<input
|
||||
|
|
@ -79,7 +68,7 @@
|
|||
</view>
|
||||
<view class="bg-[#F8F8F8] h-[16rpx] mt-[40rpx]"></view>
|
||||
</template>
|
||||
<view class="px-[32rpx] pt-[32rpx]">
|
||||
<view class="px-[32rpx] pt-[32rpx] bg-white">
|
||||
<view
|
||||
class="bg-[#F7F7F7] flex items-center justify-between text-[20rpx] text-[#333] px-[28rpx] py-[16rpx] sticky top-0"
|
||||
>
|
||||
|
|
@ -97,11 +86,13 @@
|
|||
class="item-wrapper"
|
||||
:id="`zp-id-${item.zp_index}`"
|
||||
:key="item.zp_index"
|
||||
v-for="(item, index) in lineList"
|
||||
v-for="item in lineList"
|
||||
>
|
||||
<view class="flex items-center justify-between text-[20rpx] text-[#333] py-[16rpx]">
|
||||
<view class="flex-1 flex items-center">
|
||||
<image :src="item.logo" mode="scaleToFill" class="w-[72rpx] h-[72rpx] mr-[6rpx]" />
|
||||
<view class="w-[72rpx] h-[72rpx] mr-[6rpx]">
|
||||
<image :src="item.logo" mode="scaleToFill" class="w-full h-full" />
|
||||
</view>
|
||||
<view class="ml-[6rpx]">
|
||||
<view class="text-[32rpx] font-semibold text-wrap max-w-[200rpx]">
|
||||
{{ item.name }}
|
||||
|
|
@ -118,18 +109,20 @@
|
|||
<text v-if="item.newPlan - item.oldPlan === 0">相同</text>
|
||||
<view v-else class="flex items-center justify-center gap-[10rpx]">
|
||||
<text>{{ item.newPlan - item.oldPlan }}</text>
|
||||
<image
|
||||
v-if="item.newPlan - item.oldPlan < 0"
|
||||
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAATCAYAAACORR0GAAAAAXNSR0IArs4c6QAAARRJREFUSEu91EFOhDAYhuH370TXHGGOwMaEuNJM4jnKCYwnEE4yeAoTE0LcsZwb6BE8wFC1OBBGO6UmZboikPTJ9/Uvkj3rtbqkMUqK9nb7xEJLrmv9Bqzt/kaJXgqTrNZawXYIshQmFjgH1kPnwEboP9jVi05XkLZ3VRU6O0dQCGaRixUNkBgo2k1VhmB/IB82RcbhCcSckBMzlEpxb5MckI/hOSTZSciFTVLkXcduqLC/gzPJvJAzGeTt5mcIflfpw2ah6YYGHgZkSBeKBUFzU+XDslo/YniNAp2q0b5XUNCRR4Nc2NiEoYwKebAqOmTPpK/reMU7o8NVcCH203vURDeNTvZ7UhGS7pMUIUFI5ftv8gVvqo+bwdfwaAAAAABJRU5ErkJggg=="
|
||||
mode="scaleToFill"
|
||||
class="w-[16rpx] h-[16rpx]"
|
||||
/>
|
||||
<image
|
||||
v-if="item.newPlan - item.oldPlan > 0"
|
||||
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAATCAYAAACORR0GAAAAAXNSR0IArs4c6QAAATlJREFUSEu11eFNwzAQBeB3gQEyAIV2g67QDewJgBGYgHYCRmhH8AbABHSDRhSJvxmA5sEFtTKuk7jIza9EivP57l0SQcZjY8z0ApgSGAtwI0ApInpdSkYH78bcicjy6JnkOiukQAwj8Jod+rD29qd1K78qkqusUAxRsCEX2aAQIXmviGam58mQTtTEuXVseGLItXNt+zSzAkgbhq0xjxCZg5yPnFv4WB/i3zdY0QHZr/KwAKlB2pFzL7Gqe6EjxMNEpPKmqxZydtXR2jarrhc2QGoNtBB50rc+WDOIdEIhst/tpzHjncizhyUhUagL2VfhYeVQuzqHYQj5gwFlXyZhJIeMUpH/foRb6NxIm5GPEKgK0p7SktQKZWvtG35/VtWOnE2cq1IXn3KfbIwpL4ti+dU0D+dCdEPf+I3M1u2H9e8AAAAASUVORK5CYII="
|
||||
mode="scaleToFill"
|
||||
class="w-[16rpx] h-[16rpx]"
|
||||
/>
|
||||
<view class="w-[16rpx] h-[16rpx]">
|
||||
<image
|
||||
v-if="item.newPlan - item.oldPlan < 0"
|
||||
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAATCAYAAACORR0GAAAAAXNSR0IArs4c6QAAARRJREFUSEu91EFOhDAYhuH370TXHGGOwMaEuNJM4jnKCYwnEE4yeAoTE0LcsZwb6BE8wFC1OBBGO6UmZboikPTJ9/Uvkj3rtbqkMUqK9nb7xEJLrmv9Bqzt/kaJXgqTrNZawXYIshQmFjgH1kPnwEboP9jVi05XkLZ3VRU6O0dQCGaRixUNkBgo2k1VhmB/IB82RcbhCcSckBMzlEpxb5MckI/hOSTZSciFTVLkXcduqLC/gzPJvJAzGeTt5mcIflfpw2ah6YYGHgZkSBeKBUFzU+XDslo/YniNAp2q0b5XUNCRR4Nc2NiEoYwKebAqOmTPpK/reMU7o8NVcCH203vURDeNTvZ7UhGS7pMUIUFI5ftv8gVvqo+bwdfwaAAAAABJRU5ErkJggg=="
|
||||
mode="scaleToFill"
|
||||
class="w-[16rpx] h-[16rpx]"
|
||||
/>
|
||||
<image
|
||||
v-if="item.newPlan - item.oldPlan > 0"
|
||||
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAATCAYAAACORR0GAAAAAXNSR0IArs4c6QAAATlJREFUSEu11eFNwzAQBeB3gQEyAIV2g67QDewJgBGYgHYCRmhH8AbABHSDRhSJvxmA5sEFtTKuk7jIza9EivP57l0SQcZjY8z0ApgSGAtwI0ApInpdSkYH78bcicjy6JnkOiukQAwj8Jod+rD29qd1K78qkqusUAxRsCEX2aAQIXmviGam58mQTtTEuXVseGLItXNt+zSzAkgbhq0xjxCZg5yPnFv4WB/i3zdY0QHZr/KwAKlB2pFzL7Gqe6EjxMNEpPKmqxZydtXR2jarrhc2QGoNtBB50rc+WDOIdEIhst/tpzHjncizhyUhUagL2VfhYeVQuzqHYQj5gwFlXyZhJIeMUpH/foRb6NxIm5GPEKgK0p7SktQKZWvtG35/VtWOnE2cq1IXn3KfbIwpL4ti+dU0D+dCdEPf+I3M1u2H9e8AAAAASUVORK5CYII="
|
||||
mode="scaleToFill"
|
||||
class="w-[16rpx] h-[16rpx]"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
|
@ -139,7 +132,6 @@
|
|||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import Navbar from '@/pages-sub/components/navbar/Navbar.vue'
|
||||
import { useUserStore } from '@/store'
|
||||
import DropMenu from '@/pages-sub/components/drop-menu/DropMenu.vue'
|
||||
import DropMenuItem from '@/pages-sub/components/drop-menu/DropMenuItem.vue'
|
||||
|
|
@ -162,10 +154,6 @@ const handleConfirm = () => {
|
|||
paging.value.reload()
|
||||
}
|
||||
|
||||
const navigatorBack = () => {
|
||||
uni.navigateBack()
|
||||
}
|
||||
|
||||
const handleNatureChangeCode = (val) => {
|
||||
natureKeyInfo.value = val
|
||||
}
|
||||
|
|
@ -199,7 +187,7 @@ const queryList = (page: number, pageSize: number) => {
|
|||
getAdmissionTrends({
|
||||
pageIndex: page,
|
||||
pageSize,
|
||||
locationCode: userStore.userInfo.estimatedAchievement.provinceCode,
|
||||
locationCode: userStore.userInfo.estimatedAchievement.provinceCode || '370000',
|
||||
provinceName: searchParams.value.locationName,
|
||||
utype: searchParams.value.type,
|
||||
nature: searchParams.value.searchNature,
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
transparentTitle: 'always',
|
||||
navigationBarTitleText: '',
|
||||
},
|
||||
needLogin: true,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,13 +2,15 @@
|
|||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
transparentTitle: 'always',
|
||||
navigationBarTitleText: '',
|
||||
},
|
||||
}
|
||||
</route>
|
||||
|
||||
<template>
|
||||
<view class="flex flex-col h-screen">
|
||||
<view class="relative">
|
||||
<view class="relative z-11">
|
||||
<Navbar
|
||||
safeAreaInsetTop
|
||||
bg-color="transparent"
|
||||
|
|
@ -28,7 +30,7 @@
|
|||
<Region
|
||||
:defaultValue="searchParams.locationCode ? [searchParams.locationCode] : []"
|
||||
:max="1"
|
||||
class="custom-check-group"
|
||||
checkgroupStyle="display: grid;grid-template-columns: repeat(4, 1fr);gap: 16rpx;padding: 24rpx 24rpx 36rpx;"
|
||||
@changeName="handleRegionChange"
|
||||
@change="handleRegionChangeCode"
|
||||
/>
|
||||
|
|
@ -46,18 +48,20 @@
|
|||
labelKey="year"
|
||||
valueKey="year"
|
||||
:max="1"
|
||||
class="custom-check-group"
|
||||
checkgroupStyle="display: grid;grid-template-columns: repeat(4, 1fr);gap: 16rpx;padding: 24rpx 24rpx 36rpx;"
|
||||
width="100%"
|
||||
/>
|
||||
</drop-menu-item>
|
||||
</drop-menu>
|
||||
<WXXTable :data="lineList" class="px-[32rpx] mt-[16rpx] pb-safe flex-1">
|
||||
<WXXTableCol prop="province_name" label="地区" width="14%"></WXXTableCol>
|
||||
<WXXTableCol prop="year" label="年份" width="23%"></WXXTableCol>
|
||||
<WXXTableCol prop="subject_name" label="类别" width="23%"></WXXTableCol>
|
||||
<WXXTableCol prop="batch_name" label="批次" width="23%"></WXXTableCol>
|
||||
<WXXTableCol prop="score" label="分数线" width="17%"></WXXTableCol>
|
||||
</WXXTable>
|
||||
<view class="px-[32rpx] mt-[16rpx] pb-safe flex-1">
|
||||
<WXXTable :data="lineList">
|
||||
<WXXTableCol prop="province_name" label="地区" width="14%"></WXXTableCol>
|
||||
<WXXTableCol prop="year" label="年份" width="23%"></WXXTableCol>
|
||||
<WXXTableCol prop="subject_name" label="类别" width="23%"></WXXTableCol>
|
||||
<WXXTableCol prop="batch_name" label="批次" width="23%"></WXXTableCol>
|
||||
<WXXTableCol prop="score" label="分数线" width="17%"></WXXTableCol>
|
||||
</WXXTable>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
transparentTitle: 'always',
|
||||
navigationBarTitleText: '',
|
||||
},
|
||||
}
|
||||
</route>
|
||||
|
|
@ -9,7 +11,7 @@
|
|||
<view class="flex flex-col h-screen">
|
||||
<Navbar
|
||||
safeAreaInsetTop
|
||||
bg-color="transparent"
|
||||
bg-color="#fff"
|
||||
:bordered="false"
|
||||
left-arrow
|
||||
@click-left="navigatorBack"
|
||||
|
|
@ -36,19 +38,19 @@
|
|||
class="h-full"
|
||||
:type="1050"
|
||||
:keyword="searchValue"
|
||||
v-show="currentTab === 0"
|
||||
v-if="currentTab === 0"
|
||||
></MajorList>
|
||||
<MajorList
|
||||
class="h-full"
|
||||
:type="1070"
|
||||
:keyword="searchValue"
|
||||
v-show="currentTab === 1"
|
||||
v-if="currentTab === 1"
|
||||
></MajorList>
|
||||
<MajorList
|
||||
class="h-full"
|
||||
:type="1060"
|
||||
:keyword="searchValue"
|
||||
v-show="currentTab === 2"
|
||||
v-if="currentTab === 2"
|
||||
></MajorList>
|
||||
</view>
|
||||
</view>
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
transparentTitle: 'always',
|
||||
navigationBarTitleText: '',
|
||||
},
|
||||
}
|
||||
</route>
|
||||
|
|
|
|||
|
|
@ -1,21 +1,13 @@
|
|||
<route lang="json5" type="page">
|
||||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
navigationBarTitleText: '详细信息',
|
||||
},
|
||||
}
|
||||
</route>
|
||||
|
||||
<template>
|
||||
<view class="flex flex-col h-screen">
|
||||
<Navbar
|
||||
title="详细信息"
|
||||
left-arrow
|
||||
@click-left="navigatorBack"
|
||||
safeAreaInsetTop
|
||||
:bordered="false"
|
||||
custom-class="bg-transparent! z-[99]"
|
||||
/>
|
||||
<view class="flex flex-col h-screen bg-white">
|
||||
<view class="flex-1 overflow-auto pb-safe">
|
||||
<view class="flex flex-col px-[32rpx]">
|
||||
<text class="font-semibold text-[28rpx] text-[#1F2329]">
|
||||
|
|
@ -29,22 +21,58 @@
|
|||
</view>
|
||||
</view>
|
||||
<view class="w-full h-[1px] bg-[#E5E5E5] my-[16rpx]"></view>
|
||||
<view class="px-[32rpx]" v-html="newsDetail.detail"></view>
|
||||
<view class="px-[32rpx]">
|
||||
<rich-text :nodes="nodes"></rich-text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { useCityNewDetail, newsDetail } from '@/hooks/useCityInfoHook'
|
||||
|
||||
import Navbar from '@/pages-sub/components/navbar/Navbar.vue'
|
||||
|
||||
const navigatorBack = () => {
|
||||
uni.navigateBack()
|
||||
}
|
||||
import * as htmlparser from 'htmlparser2'
|
||||
|
||||
onLoad((option) => {
|
||||
let newsId = option.newsId
|
||||
const newsId = option.newsId
|
||||
useCityNewDetail(newsId)
|
||||
})
|
||||
|
||||
const nodes = ref<any[]>([])
|
||||
|
||||
const parseHTMLToObject = (htmlString) => {
|
||||
const handler = new htmlparser.DomHandler((error, dom) => {
|
||||
if (error) {
|
||||
console.error('Error parsing HTML:', error)
|
||||
} else {
|
||||
console.log('Parsed DOM:', dom)
|
||||
}
|
||||
})
|
||||
|
||||
const parser = new htmlparser.Parser(handler)
|
||||
parser.write(htmlString)
|
||||
parser.end()
|
||||
return handler.dom
|
||||
}
|
||||
|
||||
function traverseNodes(nodes) {
|
||||
return nodes.map((node) => {
|
||||
if (node.type === 'text') {
|
||||
return { type: 'text', text: node.data }
|
||||
} else if (node.type === 'tag') {
|
||||
return {
|
||||
name: node.name,
|
||||
attrs: node.attribs,
|
||||
children: traverseNodes(node.children || []),
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
watch(
|
||||
() => newsDetail.value.detail,
|
||||
(newV: string) => {
|
||||
const _nodes = parseHTMLToObject(newV)
|
||||
nodes.value = traverseNodes(_nodes)
|
||||
},
|
||||
)
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<route lang="json5" type="page">
|
||||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
navigationBarTitleText: '高考头条'
|
||||
},
|
||||
}
|
||||
</route>
|
||||
|
|
@ -16,19 +16,6 @@
|
|||
@virtualListChange="virtualListChange"
|
||||
@query="queryList"
|
||||
>
|
||||
<!-- 需要固定在顶部不滚动的view放在slot="top"的view中,如果需要跟着滚动,则不要设置slot="top" -->
|
||||
<template #top>
|
||||
<view class="relative h-max" hover-class="none" :hover-stop-propagation="false">
|
||||
<Navbar
|
||||
title="高考头条"
|
||||
left-arrow
|
||||
@click-left="navigatorBack"
|
||||
safeAreaInsetTop
|
||||
:bordered="false"
|
||||
custom-class="bg-transparent! z-[99]"
|
||||
/>
|
||||
</view>
|
||||
</template>
|
||||
<view
|
||||
class="item-wrapper"
|
||||
:id="`zp-id-${item.zp_index}`"
|
||||
|
|
@ -58,11 +45,6 @@
|
|||
<script lang="ts" setup>
|
||||
import { getNewsList } from '@/service/index/api'
|
||||
import { useUserStore } from '@/store/user'
|
||||
import Navbar from '@/pages-sub/components/navbar/Navbar.vue'
|
||||
|
||||
const navigatorBack = () => {
|
||||
uni.navigateBack()
|
||||
}
|
||||
|
||||
const userStore = useUserStore()
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<route lang="json5" type="page">
|
||||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
navigationBarTitleText: '院校排行榜',
|
||||
},
|
||||
}
|
||||
</route>
|
||||
|
|
@ -18,28 +18,25 @@
|
|||
<!-- 需要固定在顶部不滚动的view放在slot="top"的view中,如果需要跟着滚动,则不要设置slot="top" -->
|
||||
<template #top>
|
||||
<view class="relative h-[400rpx]" hover-class="none" :hover-stop-propagation="false">
|
||||
<Navbar
|
||||
title="院校排行榜"
|
||||
left-arrow
|
||||
@click-left="navigatorBack"
|
||||
safeAreaInsetTop
|
||||
:bordered="false"
|
||||
bgColor="transparent"
|
||||
/>
|
||||
<image
|
||||
class="absolute top-0 z-[-1]"
|
||||
src="https://api.static.ycymedu.com/sub/images/schoolRank/background.svg"
|
||||
/>
|
||||
<image
|
||||
class="h-[78rpx] w-[270rpx] absolute top-[249rpx] left-[102rpx] z-[-1]"
|
||||
src="https://api.static.ycymedu.com/sub/images/schoolRank/title.svg"
|
||||
/>
|
||||
<image
|
||||
<view class="absolute top-0 z-[-1] w-full h-full">
|
||||
<image
|
||||
class=""
|
||||
src="https://api.static.ycymedu.com/sub/images/schoolRank/background.svg"
|
||||
/>
|
||||
</view>
|
||||
<view class="h-[78rpx] w-[270rpx] absolute top-[249rpx] left-[102rpx] z-[-1]">
|
||||
<image class="" src="https://api.static.ycymedu.com/sub/images/schoolRank/title.svg" />
|
||||
</view>
|
||||
<view
|
||||
class="h-[190rpx] w-[190rpx] absolute top-[194rpx] left-[460rpx] mix-blend-multiply z-[-1]"
|
||||
src="https://api.static.ycymedu.com/sub/images/schoolRank/trophy.png"
|
||||
/>
|
||||
>
|
||||
<image
|
||||
class="w-full h-full"
|
||||
src="https://api.static.ycymedu.com/sub/images/schoolRank/trophy.png"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
<view class="my-[24rpx]">
|
||||
<view class="my-[24rpx] mx-[8rpx]">
|
||||
<z-tabs
|
||||
:current="tabIndex"
|
||||
:list="unSortTypeList"
|
||||
|
|
@ -55,7 +52,7 @@
|
|||
top: '0',
|
||||
zIndex: '99',
|
||||
height: '52rpx',
|
||||
gap: '16rpx',
|
||||
background: 'transparent',
|
||||
}"
|
||||
:active-style="{
|
||||
background: 'linear-gradient( 270deg, #F2CE95 0%, #F8DEBA 100%)',
|
||||
|
|
@ -74,7 +71,9 @@
|
|||
>
|
||||
<view class="flex items-center py-[32rpx] w-full">
|
||||
<text class="text-[28rpx] text-[#999] font-normal">{{ item.rank }}</text>
|
||||
<image class="w-[80rpx] h-[80rpx] ml-[18rpx] mr-[24rpx]" :src="item.logo"></image>
|
||||
<view class="w-[80rpx] h-[80rpx] ml-[18rpx] mr-[24rpx]">
|
||||
<image class="rounded-full" :src="item.logo"></image>
|
||||
</view>
|
||||
<view class="flex justify-between items-center flex-1">
|
||||
<view class="flex flex-col" hover-class="none">
|
||||
<text class="text-[28rpx] text-[#333] font-medium mb-[10rpx]">
|
||||
|
|
@ -99,19 +98,14 @@
|
|||
<script lang="ts" setup>
|
||||
import { getUniversityRank, getUnSortType } from '@/service/index/api'
|
||||
import zTabs from '@/pages-sub/uni_modules/z-tabs/components/z-tabs/z-tabs.vue'
|
||||
import Navbar from '@/pages-sub/components/navbar/Navbar.vue'
|
||||
|
||||
type UnSortType = { type: number; name: string }[]
|
||||
|
||||
let unSortTypeList = ref([])
|
||||
const unSortTypeList = ref([])
|
||||
getUnSortType().then((res) => {
|
||||
unSortTypeList.value = res.result as UnSortType
|
||||
})
|
||||
|
||||
const navigatorBack = () => {
|
||||
uni.navigateBack()
|
||||
}
|
||||
|
||||
const tabIndex = ref<number>(0)
|
||||
const tabsRef = ref(null)
|
||||
|
||||
|
|
@ -188,22 +182,28 @@ const handleTabChange = (index: number) => {
|
|||
|
||||
:deep(.z-tabs-item) {
|
||||
width: 160rpx;
|
||||
|
||||
font-size: 28rpx;
|
||||
|
||||
font-weight: 500;
|
||||
color: #a28c6c;
|
||||
background-color: #f5efe1;
|
||||
border-radius: 8rpx;
|
||||
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
:deep(.z-tabs-item):not(:last-child) {
|
||||
margin-right: 16rpx;
|
||||
}
|
||||
|
||||
:deep(.z-tabs-list.tabs--z-tabs-list) {
|
||||
margin-top: 0 !important;
|
||||
display: flex;
|
||||
gap: 16rpx;
|
||||
}
|
||||
|
||||
:deep(.z-tabs-list) {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
|
||||
:deep(.z-tabs-item-title-container) {
|
||||
height: 100%;
|
||||
flex: 1 1 auto;
|
||||
|
|
|
|||
|
|
@ -38,18 +38,20 @@
|
|||
</view>
|
||||
<view class="flex items-center gap-[8rpx]" v-else-if="col.key === 'rankDiff'">
|
||||
{{ item['rankDiff'] }}
|
||||
<image
|
||||
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAATCAYAAACORR0GAAAAAXNSR0IArs4c6QAAATlJREFUSEu11eFNwzAQBeB3gQEyAIV2g67QDewJgBGYgHYCRmhH8AbABHSDRhSJvxmA5sEFtTKuk7jIza9EivP57l0SQcZjY8z0ApgSGAtwI0ApInpdSkYH78bcicjy6JnkOiukQAwj8Jod+rD29qd1K78qkqusUAxRsCEX2aAQIXmviGam58mQTtTEuXVseGLItXNt+zSzAkgbhq0xjxCZg5yPnFv4WB/i3zdY0QHZr/KwAKlB2pFzL7Gqe6EjxMNEpPKmqxZydtXR2jarrhc2QGoNtBB50rc+WDOIdEIhst/tpzHjncizhyUhUagL2VfhYeVQuzqHYQj5gwFlXyZhJIeMUpH/foRb6NxIm5GPEKgK0p7SktQKZWvtG35/VtWOnE2cq1IXn3KfbIwpL4ti+dU0D+dCdEPf+I3M1u2H9e8AAAAASUVORK5CYII="
|
||||
mode="scaleToFill"
|
||||
class="w-[16rpx] h-[16rpx]"
|
||||
v-if="item['rankDiff'] > 0"
|
||||
/>
|
||||
<image
|
||||
v-else
|
||||
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAATCAYAAACORR0GAAAAAXNSR0IArs4c6QAAARRJREFUSEu91EFOhDAYhuH370TXHGGOwMaEuNJM4jnKCYwnEE4yeAoTE0LcsZwb6BE8wFC1OBBGO6UmZboikPTJ9/Uvkj3rtbqkMUqK9nb7xEJLrmv9Bqzt/kaJXgqTrNZawXYIshQmFjgH1kPnwEboP9jVi05XkLZ3VRU6O0dQCGaRixUNkBgo2k1VhmB/IB82RcbhCcSckBMzlEpxb5MckI/hOSTZSciFTVLkXcduqLC/gzPJvJAzGeTt5mcIflfpw2ah6YYGHgZkSBeKBUFzU+XDslo/YniNAp2q0b5XUNCRR4Nc2NiEoYwKebAqOmTPpK/reMU7o8NVcCH203vURDeNTvZ7UhGS7pMUIUFI5ftv8gVvqo+bwdfwaAAAAABJRU5ErkJggg=="
|
||||
mode="scaleToFill"
|
||||
class="w-[16rpx] h-[16rpx]"
|
||||
/>
|
||||
<view class="w-[16rpx] h-[16rpx]">
|
||||
<image
|
||||
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAATCAYAAACORR0GAAAAAXNSR0IArs4c6QAAATlJREFUSEu11eFNwzAQBeB3gQEyAIV2g67QDewJgBGYgHYCRmhH8AbABHSDRhSJvxmA5sEFtTKuk7jIza9EivP57l0SQcZjY8z0ApgSGAtwI0ApInpdSkYH78bcicjy6JnkOiukQAwj8Jod+rD29qd1K78qkqusUAxRsCEX2aAQIXmviGam58mQTtTEuXVseGLItXNt+zSzAkgbhq0xjxCZg5yPnFv4WB/i3zdY0QHZr/KwAKlB2pFzL7Gqe6EjxMNEpPKmqxZydtXR2jarrhc2QGoNtBB50rc+WDOIdEIhst/tpzHjncizhyUhUagL2VfhYeVQuzqHYQj5gwFlXyZhJIeMUpH/foRb6NxIm5GPEKgK0p7SktQKZWvtG35/VtWOnE2cq1IXn3KfbIwpL4ti+dU0D+dCdEPf+I3M1u2H9e8AAAAASUVORK5CYII="
|
||||
mode="scaleToFill"
|
||||
class="w-[16rpx] h-[16rpx]"
|
||||
v-if="item['rankDiff'] > 0"
|
||||
/>
|
||||
<image
|
||||
v-else
|
||||
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAATCAYAAACORR0GAAAAAXNSR0IArs4c6QAAARRJREFUSEu91EFOhDAYhuH370TXHGGOwMaEuNJM4jnKCYwnEE4yeAoTE0LcsZwb6BE8wFC1OBBGO6UmZboikPTJ9/Uvkj3rtbqkMUqK9nb7xEJLrmv9Bqzt/kaJXgqTrNZawXYIshQmFjgH1kPnwEboP9jVi05XkLZ3VRU6O0dQCGaRixUNkBgo2k1VhmB/IB82RcbhCcSckBMzlEpxb5MckI/hOSTZSciFTVLkXcduqLC/gzPJvJAzGeTt5mcIflfpw2ah6YYGHgZkSBeKBUFzU+XDslo/YniNAp2q0b5XUNCRR4Nc2NiEoYwKebAqOmTPpK/reMU7o8NVcCH203vURDeNTvZ7UhGS7pMUIUFI5ftv8gVvqo+bwdfwaAAAAABJRU5ErkJggg=="
|
||||
mode="scaleToFill"
|
||||
class="w-[16rpx] h-[16rpx]"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
<view v-else>
|
||||
{{ item[col.key] }}
|
||||
|
|
@ -135,20 +137,20 @@ const columns = ref([
|
|||
|
||||
const rankDiff = (index: number, item) => {
|
||||
return index === props.data.length - 1
|
||||
? item['rankLine']
|
||||
: item['rankLine'] - props.data[index + 1]['rankLine']
|
||||
? item.rankLine
|
||||
: item.rankLine - props.data[index + 1].rankLine
|
||||
}
|
||||
|
||||
const recompileData = computed(() => {
|
||||
if (!props.data) return []
|
||||
let _data = props.data.map((item, index) => {
|
||||
item['rankDiff'] =
|
||||
const _data = props.data.map((item, index) => {
|
||||
item.rankDiff =
|
||||
props.lowscoreRank !== -1
|
||||
? props.lowscoreRank === 0
|
||||
? '--'
|
||||
: item['rankLine'] - props.lowscoreRank
|
||||
: item.rankLine - props.lowscoreRank
|
||||
: rankDiff(index, item)
|
||||
item['lineDiff'] = item['score'] - props.score
|
||||
item.lineDiff = item.score - props.score
|
||||
return item
|
||||
})
|
||||
return _data
|
||||
|
|
|
|||
|
|
@ -2,7 +2,9 @@
|
|||
<view class="h-[16rpx] bg-[#F5F5F5]"></view>
|
||||
<view class="flex items-start p-[32rpx]">
|
||||
<view class="flex flex-col items-center gap-[16rpx]">
|
||||
<image :src="college.logo" mode="scaleToFill" class="w-[112rpx] h-[112rpx]" />
|
||||
<view class="w-[112rpx] h-[112rpx]">
|
||||
<image :src="college.logo" mode="scaleToFill" class="w-[112rpx] h-[112rpx]" />
|
||||
</view>
|
||||
<view
|
||||
class="w-[52rpx] h-[52rpx] rounded-[8rpx] font-semibold text-[28rpx] flex items-center justify-center"
|
||||
:style="calcTypeName(college.type).style"
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
transparentTitle: 'always',
|
||||
navigationBarTitleText: '',
|
||||
},
|
||||
}
|
||||
</route>
|
||||
|
|
@ -117,7 +119,7 @@
|
|||
v-show="actionType === 2"
|
||||
width="210rpx"
|
||||
height="60rpx"
|
||||
class="custom-check-group"
|
||||
checkgroupStyle="display: grid;grid-template-columns: repeat(4, 1fr);gap: 16rpx;padding: 24rpx 24rpx 36rpx;"
|
||||
@change-name="handleRegionName"
|
||||
/>
|
||||
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -40,11 +40,9 @@
|
|||
v-if="currentTab === 0"
|
||||
@click.stop="navigatorTo(item)"
|
||||
>
|
||||
<image
|
||||
class="min-w-[112rpx] min-h-[112rpx] w-[112rpx] h-[112rpx]"
|
||||
:src="item.logo"
|
||||
mode="scaleToFill"
|
||||
/>
|
||||
<view class="min-w-[112rpx] min-h-[112rpx] w-[112rpx] h-[112rpx]">
|
||||
<image class="" :src="item.logo" mode="scaleToFill" />
|
||||
</view>
|
||||
<view class="flex flex-col flex-1">
|
||||
<text class="text-[28rpx] text-[#333] font-semibold mb-[6rpx]">
|
||||
{{ item.name }}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
<!-- 表头 -->
|
||||
<view class="vip-table-header">
|
||||
<view class="feature-column">功能</view>
|
||||
<view class="vip-column vip-header">
|
||||
<view class="vip-column vip-header w-[66rpx] h-[46rpx]">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/sub/images/ucenter/vip-crown.png"
|
||||
class="vip-icon"
|
||||
|
|
|
|||
|
|
@ -9,11 +9,13 @@
|
|||
<template>
|
||||
<view class="h-screen flex flex-col bg-[#f8f8f8]">
|
||||
<view class="px-[32rpx]">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/sub/images/ucenter/vip-back.png"
|
||||
class="mt-[32rpx] h-[400rpx]"
|
||||
mode="aspectFit"
|
||||
/>
|
||||
<view class="mt-[32rpx] h-[400rpx]">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/sub/images/ucenter/vip-back.png"
|
||||
class="w-full h-full"
|
||||
mode="aspectFit"
|
||||
/>
|
||||
</view>
|
||||
<view
|
||||
class="flex flex-col rounded-[16rpx] bg-[#fff] mt-[30rpx] pt-[24rpx] pl-[18rpx] pr-[20rpx] pb-[32rpx]"
|
||||
>
|
||||
|
|
@ -108,10 +110,10 @@ const requestPay = (res) => {
|
|||
provider: 'wxpay',
|
||||
timeStamp: res.timeStamp,
|
||||
orderInfo: '',
|
||||
nonceStr: res.nonceStr, //随机字符串,长度为32个字符以下。
|
||||
package: res.package, //prepay_id 参数值,提交格式如:prepay_id=xx
|
||||
signType: res.signType, //MD5类型
|
||||
paySign: res.paySign, //签名
|
||||
nonceStr: res.nonceStr, // 随机字符串,长度为32个字符以下。
|
||||
package: res.package, // prepay_id 参数值,提交格式如:prepay_id=xx
|
||||
signType: res.signType, // MD5类型
|
||||
paySign: res.paySign, // 签名
|
||||
success: (result) => {
|
||||
uni.showToast({
|
||||
title: '支付成功!',
|
||||
|
|
|
|||
146
src/pages.json
146
src/pages.json
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"globalStyle": {
|
||||
"navigationBarTextStyle": "black",
|
||||
"navigationBarTitleText": "六纬志愿",
|
||||
"navigationBarTitleText": "六纬升学",
|
||||
"navigationBarBackgroundColor": "#fff",
|
||||
"backgroundColor": "#F8F8F8"
|
||||
},
|
||||
|
|
@ -55,7 +55,9 @@
|
|||
"style": {
|
||||
"navigationStyle": "custom",
|
||||
"enableShareAppMessage": true,
|
||||
"enableShareTimeline": true
|
||||
"enableShareTimeline": true,
|
||||
"transparentTitle": "always",
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -84,7 +86,9 @@
|
|||
"path": "pages/ucenter/index/index",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationStyle": "custom",
|
||||
"transparentTitle": "always",
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
}
|
||||
],
|
||||
|
|
@ -123,14 +127,16 @@
|
|||
"path": "evaluation/assessmentPage",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationStyle": "custom",
|
||||
"transparentTitle": "always",
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "customerService/index/index",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationBarTitleText": "在线客服"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -163,14 +169,18 @@
|
|||
"path": "home/career/index",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationStyle": "custom",
|
||||
"transparentTitle": "always",
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "home/career/info",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationStyle": "custom",
|
||||
"transparentTitle": "always",
|
||||
"navigationBarTitleText": ""
|
||||
},
|
||||
"needLogin": true
|
||||
},
|
||||
|
|
@ -178,28 +188,34 @@
|
|||
"path": "home/city/index",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationBarTitleText": "城市列表"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "home/college/enrollmentIntroDetail",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationStyle": "custom",
|
||||
"transparentTitle": "always",
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "home/college/index",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationStyle": "custom",
|
||||
"transparentTitle": "always",
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "home/college/info",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationStyle": "custom",
|
||||
"transparentTitle": "always",
|
||||
"navigationBarTitleText": ""
|
||||
},
|
||||
"needLogin": true
|
||||
},
|
||||
|
|
@ -207,21 +223,23 @@
|
|||
"path": "home/distinguish/index",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationBarTitleText": "大学甄别"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "home/expand/index",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationBarTitleText": "查扩缩招"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "home/inputScore/index",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationStyle": "custom",
|
||||
"transparentTitle": "always",
|
||||
"navigationBarTitleText": ""
|
||||
},
|
||||
"needLogin": true
|
||||
},
|
||||
|
|
@ -229,49 +247,57 @@
|
|||
"path": "home/line/index",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationStyle": "custom",
|
||||
"transparentTitle": "always",
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "home/major/index",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationStyle": "custom",
|
||||
"transparentTitle": "always",
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "home/major/info",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationStyle": "custom",
|
||||
"transparentTitle": "always",
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "home/news/index",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationBarTitleText": "详细信息"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "home/news/newsList",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationBarTitleText": "高考头条"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "home/schoolRank/index",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationBarTitleText": "院校排行榜"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "home/wishesList/index",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationStyle": "custom",
|
||||
"transparentTitle": "always",
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -285,7 +311,9 @@
|
|||
"path": "ucenter/active/activePage",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationStyle": "custom",
|
||||
"transparentTitle": "always",
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -350,7 +378,7 @@
|
|||
"path": "index",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationBarTitleText": "新高考选科"
|
||||
}
|
||||
},
|
||||
{
|
||||
|
|
@ -385,77 +413,97 @@
|
|||
"path": "rank/index",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationStyle": "custom",
|
||||
"transparentTitle": "always",
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "evaluate/academicReport/capabilityReport",
|
||||
"path": "evaluate/academicReport/CapabilityReport",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationStyle": "custom",
|
||||
"transparentTitle": "always",
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "evaluate/academicReport/characterReport",
|
||||
"path": "evaluate/academicReport/CharacterReport",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationStyle": "custom",
|
||||
"transparentTitle": "always",
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "evaluate/academicReport/interestReport",
|
||||
"path": "evaluate/academicReport/InterestReport",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationBarTitleText": "兴趣测评报告"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "evaluate/academicReport/opinionAboutReport",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationStyle": "custom",
|
||||
"transparentTitle": "always",
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "evaluate/psychologicalReport/mhtReport",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationStyle": "custom",
|
||||
"transparentTitle": "always",
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "evaluate/psychologicalReport/sasReport",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationStyle": "custom",
|
||||
"transparentTitle": "always",
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "evaluate/psychologicalReport/sdsReport",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationStyle": "custom",
|
||||
"transparentTitle": "always",
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "evaluate/studyReport/LearnSkillReport",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom",
|
||||
"transparentTitle": "always",
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "evaluate/studyReport/LearnStudyReport",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom",
|
||||
"transparentTitle": "always",
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "evaluate/studyReport/anxietyReport",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "evaluate/studyReport/learnSkillReport",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "evaluate/studyReport/learnStudyReport",
|
||||
"type": "page",
|
||||
"style": {
|
||||
"navigationStyle": "custom"
|
||||
"navigationStyle": "custom",
|
||||
"transparentTitle": "always",
|
||||
"navigationBarTitleText": ""
|
||||
}
|
||||
}
|
||||
]
|
||||
|
|
|
|||
|
|
@ -14,7 +14,9 @@
|
|||
:key="item.id"
|
||||
>
|
||||
<view class="flex flex-col gap-[24rpx]">
|
||||
<image :src="item.pic" mode="aspectFit" class="w-[112rpx] h-[112rpx] rounded-full" />
|
||||
<view class="w-[112rpx] h-[112rpx] rounded-full">
|
||||
<image :src="item.pic" mode="aspectFit" class="w-[112rpx] h-[112rpx] rounded-full" />
|
||||
</view>
|
||||
<button
|
||||
:class="`appointment-btn ${item.isAppointment ? 'bg-[#1580ff]!' : ''}`"
|
||||
@click="handleAppointment(item, index)"
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
class="w-full h-[184rpx] my-[32rpx]"
|
||||
circular
|
||||
:indicator-dots="true"
|
||||
:autoplay="true"
|
||||
:autoplay="false"
|
||||
:interval="3000"
|
||||
:duration="200"
|
||||
>
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
<image
|
||||
:src="item.img"
|
||||
mode="scaleToFill"
|
||||
class="w-full rounded-[20rpx]"
|
||||
class="h-[184rpx] rounded-[20rpx] w-full"
|
||||
@click.stop="handleRouter(item)"
|
||||
/>
|
||||
</view>
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@
|
|||
navigationStyle: 'custom',
|
||||
enableShareAppMessage: true,
|
||||
enableShareTimeline: true,
|
||||
transparentTitle: 'always',
|
||||
navigationBarTitleText: '',
|
||||
},
|
||||
}
|
||||
</route>
|
||||
|
|
@ -32,7 +34,7 @@
|
|||
</navigator>
|
||||
</template>
|
||||
<template #title>
|
||||
<view class="title">
|
||||
<view class="flex items-center justify-center w-[198rpx] h-[88rpx] text-[32rpx]">
|
||||
<image
|
||||
class="w-[198rpx] h-[32rpx]"
|
||||
src="https://api.static.ycymedu.com/src/images/home/app-logo.svg"
|
||||
|
|
@ -107,14 +109,14 @@ onShow(() => {
|
|||
})
|
||||
onShareAppMessage(() => {
|
||||
return {
|
||||
title: '六纬志愿',
|
||||
title: '六纬升学',
|
||||
path: '/pages/home/index/index',
|
||||
imageUrl: 'https://api.static.ycymedu.com/images/share.png',
|
||||
}
|
||||
})
|
||||
onShareTimeline(() => {
|
||||
return {
|
||||
title: '六纬志愿',
|
||||
title: '六纬升学',
|
||||
}
|
||||
})
|
||||
|
||||
|
|
@ -162,14 +164,6 @@ onLoad(() => {
|
|||
color: #000;
|
||||
}
|
||||
|
||||
.title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
height: 44px;
|
||||
font-size: 32rpx;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.custom-background {
|
||||
background-image: linear-gradient(
|
||||
|
|
|
|||
|
|
@ -9,11 +9,13 @@
|
|||
|
||||
<template>
|
||||
<view class="flex flex-col items-center">
|
||||
<image
|
||||
class="w-[440rpx] h-[440rpx] mt-[136rpx]"
|
||||
src="https://api.static.ycymedu.com/images/logo.png"
|
||||
mode="aspectFit"
|
||||
></image>
|
||||
<view class="w-[440rpx] h-[440rpx] mt-[136rpx]">
|
||||
<image
|
||||
class="w-[440rpx] h-[440rpx]"
|
||||
src="https://api.static.ycymedu.com/images/logo.png"
|
||||
mode="aspectFit"
|
||||
></image>
|
||||
</view>
|
||||
|
||||
<button
|
||||
class="w-[493rpx]! mb-[40rpx] h-[88rpx]! rounded-[44rpx] text-[32rpx] text-white flex items-center justify-center bg-[#1580FF]"
|
||||
|
|
|
|||
|
|
@ -2,6 +2,8 @@
|
|||
{
|
||||
style: {
|
||||
navigationStyle: 'custom',
|
||||
transparentTitle: 'always',
|
||||
navigationBarTitleText: '',
|
||||
},
|
||||
}
|
||||
</route>
|
||||
|
|
@ -10,14 +12,16 @@
|
|||
<view class="background-wrapper">
|
||||
<Navbar safeAreaInsetTop bg-color="transparent" placeholder :bordered="false"></Navbar>
|
||||
<view class="flex px-[32rpx] gap-[24rpx] custom-user-info" @click.stop="goLogin">
|
||||
<image
|
||||
:src="
|
||||
userStore.userInfo.avatar ||
|
||||
'https://private-zhiyuan.oss-cn-beijing.aliyuncs.com/avatar.png'
|
||||
"
|
||||
class="w-[112rpx] h-[112rpx] rounded-full z-[1]"
|
||||
mode="scaleToFill"
|
||||
/>
|
||||
<view class="w-[112rpx] h-[112rpx] rounded-full">
|
||||
<image
|
||||
:src="
|
||||
userStore.userInfo.avatar ||
|
||||
'https://private-zhiyuan.oss-cn-beijing.aliyuncs.com/avatar.png'
|
||||
"
|
||||
class="w-[112rpx] h-[112rpx] rounded-full z-[1]"
|
||||
mode="scaleToFill"
|
||||
/>
|
||||
</view>
|
||||
<view class="flex flex-col gap-[6rpx] py-[8rpx] z-[1] text-white">
|
||||
<view class="text-[32rpx] font-semibold flex items-center">
|
||||
<view>
|
||||
|
|
@ -65,27 +69,33 @@
|
|||
class="mx-[32rpx] flex items-center justify-center text-[#303030] text-[24rpx] bg-[#fff] pt-[24rpx] pb-[18rpx] gap-[144rpx] rounded-[8rpx]"
|
||||
>
|
||||
<view class="flex flex-col items-center gap-[16rpx]" @click="goWishList">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/src/images/ucenter/wish-list.png"
|
||||
class="w-[51rpx] h-[51rpx]"
|
||||
mode="scaleToFill"
|
||||
/>
|
||||
<view class="w-[51rpx] h-[51rpx]">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/src/images/ucenter/wish-list.png"
|
||||
class="w-[51rpx] h-[51rpx]"
|
||||
mode="scaleToFill"
|
||||
/>
|
||||
</view>
|
||||
<text>志愿表</text>
|
||||
</view>
|
||||
<view class="flex flex-col items-center gap-[16rpx]" @click="goEvaluate">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/src/images/ucenter/evaluation-list.png"
|
||||
class="w-[51rpx] h-[51rpx]"
|
||||
mode="scaleToFill"
|
||||
/>
|
||||
<view class="w-[51rpx] h-[51rpx]">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/src/images/ucenter/evaluation-list.png"
|
||||
class="w-[51rpx] h-[51rpx]"
|
||||
mode="scaleToFill"
|
||||
/>
|
||||
</view>
|
||||
<text>测评结果</text>
|
||||
</view>
|
||||
<view class="flex flex-col items-center gap-[16rpx]" @click="goStar">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/src/images/ucenter/star.png"
|
||||
class="w-[51rpx] h-[51rpx]"
|
||||
mode="scaleToFill"
|
||||
/>
|
||||
<view class="w-[51rpx] h-[51rpx]">
|
||||
<image
|
||||
src="https://api.static.ycymedu.com/src/images/ucenter/star.png"
|
||||
class="w-[51rpx] h-[51rpx]"
|
||||
mode="scaleToFill"
|
||||
/>
|
||||
</view>
|
||||
<text>收藏</text>
|
||||
</view>
|
||||
</view>
|
||||
|
|
|
|||
|
|
@ -137,7 +137,7 @@ export const getUnCollectionList = (params: {
|
|||
Page?: number
|
||||
PageSize?: number
|
||||
}) => {
|
||||
//获取用户院校收藏表列表
|
||||
// 获取用户院校收藏表列表
|
||||
return http.get('/api/unCollection/list', params)
|
||||
}
|
||||
|
||||
|
|
@ -499,7 +499,7 @@ export const authQrCode = ({
|
|||
return http.post(
|
||||
'https://api.sso.ycymedu.com/api/syswxopen/hookscuess',
|
||||
{
|
||||
userCode: userCode,
|
||||
userCode,
|
||||
messageType,
|
||||
weChat,
|
||||
tpkey: '9k1cbc3f546eda35168c3aa3cb91780fbe703f0996c6d123ea96dc85c70bbc0a',
|
||||
|
|
|
|||
|
|
@ -47,16 +47,16 @@ interface NavigateToOptions {
|
|||
"/login-sub/userAgreement" |
|
||||
"/pages-evaluation-sub/aiAutoFill/index" |
|
||||
"/pages-evaluation-sub/rank/index" |
|
||||
"/pages-evaluation-sub/evaluate/academicReport/capabilityReport" |
|
||||
"/pages-evaluation-sub/evaluate/academicReport/characterReport" |
|
||||
"/pages-evaluation-sub/evaluate/academicReport/interestReport" |
|
||||
"/pages-evaluation-sub/evaluate/academicReport/CapabilityReport" |
|
||||
"/pages-evaluation-sub/evaluate/academicReport/CharacterReport" |
|
||||
"/pages-evaluation-sub/evaluate/academicReport/InterestReport" |
|
||||
"/pages-evaluation-sub/evaluate/academicReport/opinionAboutReport" |
|
||||
"/pages-evaluation-sub/evaluate/psychologicalReport/mhtReport" |
|
||||
"/pages-evaluation-sub/evaluate/psychologicalReport/sasReport" |
|
||||
"/pages-evaluation-sub/evaluate/psychologicalReport/sdsReport" |
|
||||
"/pages-evaluation-sub/evaluate/studyReport/LearnSkillReport" |
|
||||
"/pages-evaluation-sub/evaluate/studyReport/LearnStudyReport" |
|
||||
"/pages-evaluation-sub/evaluate/studyReport/anxietyReport" |
|
||||
"/pages-evaluation-sub/evaluate/studyReport/learnSkillReport" |
|
||||
"/pages-evaluation-sub/evaluate/studyReport/learnStudyReport" |
|
||||
"/aiService-sub/index/index";
|
||||
}
|
||||
interface RedirectToOptions extends NavigateToOptions {}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import { CustomRequestOptions } from '@/interceptors/request'
|
||||
import { staticBaseUrl, baseUrl } from '@/utils/index'
|
||||
import { getDeviceInfo } from './tools'
|
||||
|
||||
export const http = <T>(options: CustomRequestOptions) => {
|
||||
// 1. 返回 Promise 对象
|
||||
|
|
@ -7,16 +8,16 @@ export const http = <T>(options: CustomRequestOptions) => {
|
|||
if (options.query?.staticType === 'static') {
|
||||
options.url = `${staticBaseUrl}${options.url}`
|
||||
} else if (options.query?.hasPrefix) {
|
||||
console.log('hasPrefix', options.url)
|
||||
} else {
|
||||
options.url = `${baseUrl}${options.url}`
|
||||
}
|
||||
// options.url = `${options.query?.staticType === 'static' ? staticBaseUrl : baseUrl}${options.url}`
|
||||
// // #ifndef MP-WEIXIN
|
||||
options.responseType = 'json'
|
||||
// // #endif
|
||||
uni.request({
|
||||
...options,
|
||||
dataType: 'json',
|
||||
// #ifndef MP-WEIXIN
|
||||
responseType: 'json',
|
||||
// #endif
|
||||
// 响应成功
|
||||
success(res) {
|
||||
// 状态码 2xx,参考 axios 的设计
|
||||
|
|
|
|||
|
|
@ -7,13 +7,13 @@ import { CustomRequestOptions } from '@/interceptors/request'
|
|||
*/
|
||||
const http = <T>(options: CustomRequestOptions) => {
|
||||
// 1. 返回 Promise 对象
|
||||
// #ifndef MP-WEIXIN
|
||||
options.responseType = 'json'
|
||||
// #endif
|
||||
return new Promise<T>((resolve, reject) => {
|
||||
uni.request({
|
||||
...options,
|
||||
dataType: 'json',
|
||||
// #ifndef MP-WEIXIN
|
||||
responseType: 'json',
|
||||
// #endif
|
||||
// 响应成功
|
||||
success(res) {
|
||||
// 状态码 2xx,参考 axios 的设计
|
||||
|
|
|
|||
|
|
@ -0,0 +1,25 @@
|
|||
/**
|
||||
* 获取设备基础信息
|
||||
*
|
||||
* @see [uni.getDeviceInfo](https://uniapp.dcloud.net.cn/api/system/getDeviceInfo.html)
|
||||
*/
|
||||
export function getDeviceInfo() {
|
||||
if (uni.getSystemInfoSync || uni.canIUse('getSystemInfoSync')) {
|
||||
return uni.getSystemInfoSync()
|
||||
} else {
|
||||
return uni.getDeviceInfo()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取窗口信息
|
||||
*
|
||||
* @see [uni.getWindowInfo](https://uniapp.dcloud.net.cn/api/system/getWindowInfo.html)
|
||||
*/
|
||||
export function getWindowInfo() {
|
||||
if (uni.getWindowInfo || uni.canIUse('getWindowInfo')) {
|
||||
return uni.getWindowInfo()
|
||||
} else {
|
||||
return uni.getSystemInfoSync()
|
||||
}
|
||||
}
|
||||
|
|
@ -131,6 +131,9 @@ export default ({ command, mode }) => {
|
|||
alias: {
|
||||
'@': path.join(process.cwd(), './src'),
|
||||
'@img': path.join(process.cwd(), './src/static/images'),
|
||||
// 修复部分三方库引用 entities/decode / entities/encode 的子路径导入在 exports 下无法解析的问题
|
||||
'entities/decode': 'entities/lib/decode.js',
|
||||
'entities/encode': 'entities/lib/encode.js',
|
||||
},
|
||||
},
|
||||
server: {
|
||||
|
|
|
|||
Loading…
Reference in New Issue