feat: 钉钉适配
parent
26d29fa646
commit
4bcb347d4a
|
|
@ -2,7 +2,7 @@
|
||||||
// 默认格式化工具选择prettier
|
// 默认格式化工具选择prettier
|
||||||
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
||||||
// 保存的时候自动格式化
|
// 保存的时候自动格式化
|
||||||
"editor.formatOnSave": true,
|
"editor.formatOnSave": false,
|
||||||
//开启自动修复
|
//开启自动修复
|
||||||
"editor.codeActionsOnSave": {
|
"editor.codeActionsOnSave": {
|
||||||
"source.fixAll": "explicit",
|
"source.fixAll": "explicit",
|
||||||
|
|
@ -10,8 +10,8 @@
|
||||||
"source.fixAll.stylelint": "explicit"
|
"source.fixAll.stylelint": "explicit"
|
||||||
},
|
},
|
||||||
// 配置stylelint检查的文件类型范围
|
// 配置stylelint检查的文件类型范围
|
||||||
"stylelint.validate": ["css", "scss", "vue", "html"], // 与package.json的scripts对应
|
"stylelint.validate": ["css", "vue", "html"], // 与package.json的scripts对应
|
||||||
"stylelint.enable": true,
|
"stylelint.enable": false,
|
||||||
"css.validate": false,
|
"css.validate": false,
|
||||||
"less.validate": false,
|
"less.validate": false,
|
||||||
"scss.validate": false,
|
"scss.validate": false,
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
"editor.defaultFormatter": "foxundermoon.shell-format"
|
"editor.defaultFormatter": "foxundermoon.shell-format"
|
||||||
},
|
},
|
||||||
"[vue]": {
|
"[vue]": {
|
||||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
"editor.defaultFormatter": "Vue.volar"
|
||||||
},
|
},
|
||||||
"[typescript]": {
|
"[typescript]": {
|
||||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||||
|
|
|
||||||
39
package.json
39
package.json
|
|
@ -87,11 +87,22 @@
|
||||||
"bin-wrapper": "npm:bin-wrapper-china"
|
"bin-wrapper": "npm:bin-wrapper-china"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@dcloudio/uni-app": "3.0.0-4020920240930001",
|
"@dcloudio/uni-app": "3.0.0-4070520250711001",
|
||||||
"@dcloudio/uni-app-plus": "3.0.0-4020920240930001",
|
"@dcloudio/uni-app-harmony": "3.0.0-4070520250711001",
|
||||||
"@dcloudio/uni-components": "3.0.0-4020920240930001",
|
"@dcloudio/uni-app-plus": "3.0.0-4070520250711001",
|
||||||
"@dcloudio/uni-h5": "3.0.0-4020920240930001",
|
"@dcloudio/uni-components": "3.0.0-4070520250711001",
|
||||||
"@dcloudio/uni-mp-weixin": "3.0.0-4020920240930001",
|
"@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",
|
"@tanstack/vue-query": "^5.62.16",
|
||||||
"abortcontroller-polyfill": "^1.7.8",
|
"abortcontroller-polyfill": "^1.7.8",
|
||||||
"dayjs": "1.11.10",
|
"dayjs": "1.11.10",
|
||||||
|
|
@ -99,17 +110,18 @@
|
||||||
"pinia-plugin-persistedstate": "3.2.1",
|
"pinia-plugin-persistedstate": "3.2.1",
|
||||||
"pinyin-pro": "^3.26.0",
|
"pinyin-pro": "^3.26.0",
|
||||||
"qs": "6.5.3",
|
"qs": "6.5.3",
|
||||||
"vue": "3.4.21",
|
"vue": "^3.4.21",
|
||||||
|
"vue-i18n": "^9.14.5",
|
||||||
"wot-design-uni": "^1.4.0"
|
"wot-design-uni": "^1.4.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@commitlint/cli": "^18.6.1",
|
"@commitlint/cli": "^18.6.1",
|
||||||
"@commitlint/config-conventional": "^18.6.3",
|
"@commitlint/config-conventional": "^18.6.3",
|
||||||
"@dcloudio/types": "^3.4.14",
|
"@dcloudio/types": "^3.4.8",
|
||||||
"@dcloudio/uni-automator": "3.0.0-4020920240930001",
|
"@dcloudio/uni-automator": "3.0.0-4070520250711001",
|
||||||
"@dcloudio/uni-cli-shared": "3.0.0-4020920240930001",
|
"@dcloudio/uni-cli-shared": "3.0.0-4070520250711001",
|
||||||
"@dcloudio/uni-stacktracey": "3.0.0-4020920240930001",
|
"@dcloudio/uni-stacktracey": "3.0.0-4070520250711001",
|
||||||
"@dcloudio/vite-plugin-uni": "3.0.0-4020920240930001",
|
"@dcloudio/vite-plugin-uni": "3.0.0-4070520250711001",
|
||||||
"@esbuild/darwin-arm64": "0.20.2",
|
"@esbuild/darwin-arm64": "0.20.2",
|
||||||
"@esbuild/darwin-x64": "0.20.2",
|
"@esbuild/darwin-x64": "0.20.2",
|
||||||
"@iconify-json/carbon": "^1.2.4",
|
"@iconify-json/carbon": "^1.2.4",
|
||||||
|
|
@ -124,7 +136,7 @@
|
||||||
"@uni-helper/vite-plugin-uni-pages": "0.2.20",
|
"@uni-helper/vite-plugin-uni-pages": "0.2.20",
|
||||||
"@uni-helper/vite-plugin-uni-platform": "^0.0.4",
|
"@uni-helper/vite-plugin-uni-platform": "^0.0.4",
|
||||||
"@unocss/preset-legacy-compat": "^0.59.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",
|
"@vue/tsconfig": "^0.1.3",
|
||||||
"autoprefixer": "^10.4.20",
|
"autoprefixer": "^10.4.20",
|
||||||
"commitlint": "^18.6.1",
|
"commitlint": "^18.6.1",
|
||||||
|
|
@ -163,5 +175,8 @@
|
||||||
},
|
},
|
||||||
"minimize": {
|
"minimize": {
|
||||||
"dev:mp-weixin": "cross-env NODE_ENV=development UNI_PLATFORM=mp-weixin vue-cli-service uni-build --watch --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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
828
pnpm-lock.yaml
828
pnpm-lock.yaml
File diff suppressed because it is too large
Load Diff
|
|
@ -14,6 +14,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
|
import { getWindowInfo } from '@/utils/tools'
|
||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
|
|
||||||
const props = defineProps({
|
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 position = ref({ x: props.initialX, y: props.initialY })
|
||||||
const startPosition = ref({ x: 0, y: 0 })
|
const startPosition = ref({ x: 0, y: 0 })
|
||||||
|
|
@ -110,11 +111,11 @@ const handleClick = () => {
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.fab-button {
|
.fab-button {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
width: 128rpx;
|
width: 128rpx;
|
||||||
height: 128rpx;
|
height: 128rpx;
|
||||||
display: flex;
|
|
||||||
justify-content: center;
|
|
||||||
align-items: center;
|
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -15,10 +15,12 @@
|
||||||
: '输入模考/高考成绩'
|
: '输入模考/高考成绩'
|
||||||
}}
|
}}
|
||||||
</text>
|
</text>
|
||||||
<image
|
<view class="w-[42rpx] h-[39rpx]">
|
||||||
class="w-[42rpx] h-[39rpx]"
|
<image
|
||||||
src="https://api.static.ycymedu.com/src/images/home/pen.svg"
|
class="w-[42rpx] h-[39rpx]"
|
||||||
></image>
|
src="https://api.static.ycymedu.com/src/images/home/pen.svg"
|
||||||
|
></image>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="flex items-center justify-center" v-else>
|
<view class="flex items-center justify-center" v-else>
|
||||||
<image
|
<image
|
||||||
|
|
|
||||||
|
|
@ -5,12 +5,13 @@
|
||||||
hover-class="none"
|
hover-class="none"
|
||||||
:hover-stop-propagation="false"
|
:hover-stop-propagation="false"
|
||||||
>
|
>
|
||||||
<text class="text-[32rpx] text-[#333333] font-semibold">高考资讯</text>
|
<text class="text-[32rpx] text-[#333333] font-semibold w-max">高考资讯</text>
|
||||||
<image
|
<view class="w-[40rpx] h-[40rpx]">
|
||||||
class="w-[40rpx] h-[40rpx]"
|
<image
|
||||||
src="https://api.static.ycymedu.com/src/images/home/right.svg"
|
src="https://api.static.ycymedu.com/src/images/home/right.svg"
|
||||||
@click="toNewsPage"
|
@click="toNewsPage"
|
||||||
></image>
|
></image>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view
|
<view
|
||||||
|
|
|
||||||
|
|
@ -5,12 +5,14 @@
|
||||||
hover-class="none"
|
hover-class="none"
|
||||||
:hover-stop-propagation="false"
|
:hover-stop-propagation="false"
|
||||||
>
|
>
|
||||||
<text class="text-[32rpx] text-[#333333] font-semibold">热门排行榜</text>
|
<text class="text-[32rpx] text-[#333333] font-semibold w-max">热门排行榜</text>
|
||||||
<image
|
|
||||||
class="w-[40rpx] h-[40rpx]"
|
<view class="w-[40rpx] h-[40rpx]">
|
||||||
src="https://api.static.ycymedu.com/src/images/home/right.svg"
|
<image
|
||||||
@click="toSchool('0')"
|
src="https://api.static.ycymedu.com/src/images/home/right.svg"
|
||||||
></image>
|
@click="toSchool('0')"
|
||||||
|
></image>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view
|
<view
|
||||||
|
|
@ -19,63 +21,75 @@
|
||||||
:hover-stop-propagation="false"
|
:hover-stop-propagation="false"
|
||||||
>
|
>
|
||||||
<!-- 骨架屏 -->
|
<!-- 骨架屏 -->
|
||||||
<view
|
<template v-if="isLoading">
|
||||||
v-if="isLoading"
|
<view
|
||||||
v-for="(_skeleton, index) in skeletonItems"
|
v-for="(_skeleton, index) in skeletonItems"
|
||||||
:key="'skeleton-' + index"
|
:key="'skeleton-' + index"
|
||||||
:class="`hot-rank-item flex-none skeleton-item`"
|
:class="`hot-rank-item flex-none skeleton-item`"
|
||||||
hover-class="none"
|
hover-class="none"
|
||||||
:hover-stop-propagation="false"
|
:hover-stop-propagation="false"
|
||||||
>
|
>
|
||||||
<view class="skeleton-text mx-[32rpx] mt-[32rpx] h-[40rpx] w-[120rpx] rounded"></view>
|
<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
|
||||||
<view class="skeleton-text w-[20rpx] h-[28rpx] mr-[10rpx] rounded"></view>
|
class="flex items-center justify-left mt-[30rpx] mx-[32rpx]"
|
||||||
<view class="skeleton-image w-[80rpx] h-[80rpx] rounded-full flex-none mr-[16rpx]"></view>
|
v-for="i in 3"
|
||||||
<view class="flex flex-col w-full">
|
:key="i"
|
||||||
<view class="skeleton-text h-[28rpx] w-[120rpx] rounded"></view>
|
>
|
||||||
<view class="skeleton-text h-[22rpx] w-[100rpx] mt-[10rpx] rounded"></view>
|
<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>
|
</view>
|
||||||
</view>
|
</template>
|
||||||
|
|
||||||
<!-- 真实数据 -->
|
<!-- 真实数据 -->
|
||||||
<view
|
<template v-else>
|
||||||
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>
|
|
||||||
|
|
||||||
<view
|
<view
|
||||||
class="flex items-center justify-left mt-[30rpx] mx-[32rpx]"
|
:class="`hot-rank-item flex-none`"
|
||||||
v-for="(item, index) in typeWrap.rows"
|
hover-class="none"
|
||||||
:key="index"
|
: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]">
|
<text
|
||||||
{{ item.rank }}
|
class="font-semibold text-[#303030] text-[32rpx] inline-block mx-[32rpx] mt-[32rpx]"
|
||||||
|
>
|
||||||
|
{{ typeWrap.name }}
|
||||||
</text>
|
</text>
|
||||||
<image
|
|
||||||
class="w-[80rpx] h-[80rpx] rounded-full flex-none mr-[16rpx]"
|
<view
|
||||||
:src="item.logo"
|
class="flex items-center justify-left mt-[30rpx] mx-[32rpx]"
|
||||||
></image>
|
v-for="(item, index) in typeWrap.rows"
|
||||||
<view class="truncate flex flex-col" hover-class="none">
|
:key="index"
|
||||||
<text class="font-normal text-[#333333] text-[28rpx] truncate">
|
>
|
||||||
{{ item.universityName }}
|
<text class="font-[28rpx] text-[#999999] font-normal mr-[10rpx]">
|
||||||
</text>
|
{{ item.rank }}
|
||||||
<text class="text-[22rpx] text-[#999999] font-normal mt-[10rpx]">
|
|
||||||
{{ item.cityName }}.{{ item.uType }}
|
|
||||||
</text>
|
</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>
|
</view>
|
||||||
</view>
|
</template>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -91,7 +105,7 @@ const toSchool = (id: string) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const { unSortTypeList } = useUnSortType()
|
const { unSortTypeList } = useUnSortType()
|
||||||
let universityTypeRankList = ref([])
|
const universityTypeRankList = ref([])
|
||||||
const isLoading = ref(true)
|
const isLoading = ref(true)
|
||||||
|
|
||||||
// 创建默认的骨架屏数据
|
// 创建默认的骨架屏数据
|
||||||
|
|
@ -138,22 +152,22 @@ watch(
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.hot-rank-item {
|
.hot-rank-item {
|
||||||
|
position: relative;
|
||||||
width: 356rpx;
|
width: 356rpx;
|
||||||
height: 452rpx;
|
height: 452rpx;
|
||||||
position: relative;
|
|
||||||
background: #fff;
|
background: #fff;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hot-rank-item::before {
|
.hot-rank-item::before {
|
||||||
content: '';
|
|
||||||
width: 360rpx;
|
|
||||||
height: 456rpx;
|
|
||||||
position: absolute;
|
position: absolute;
|
||||||
border-radius: 8px;
|
|
||||||
top: -2rpx;
|
top: -2rpx;
|
||||||
left: -2rpx;
|
left: -2rpx;
|
||||||
z-index: -1;
|
z-index: -1;
|
||||||
|
width: 360rpx;
|
||||||
|
height: 456rpx;
|
||||||
|
content: '';
|
||||||
|
border-radius: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hot-rank-outer .hot-rank-item:nth-child(1) {
|
.hot-rank-outer .hot-rank-item:nth-child(1) {
|
||||||
|
|
@ -198,7 +212,6 @@ watch(
|
||||||
.hot-rank-outer .hot-rank-item:nth-child(5) {
|
.hot-rank-outer .hot-rank-item:nth-child(5) {
|
||||||
background: linear-gradient(180deg, #e5ffc4 0%, rgba(213, 255, 196, 0) 23%, #fff 100%);
|
background: linear-gradient(180deg, #e5ffc4 0%, rgba(213, 255, 196, 0) 23%, #fff 100%);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 骨架屏样式 */
|
/* 骨架屏样式 */
|
||||||
.skeleton-text,
|
.skeleton-text,
|
||||||
.skeleton-image {
|
.skeleton-image {
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
|
import { getDeviceInfo, getWindowInfo } from '@/utils/tools'
|
||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
|
|
@ -91,8 +92,9 @@ defineProps({
|
||||||
const emit = defineEmits(['clickLeft'])
|
const emit = defineEmits(['clickLeft'])
|
||||||
|
|
||||||
// 获取系统信息
|
// 获取系统信息
|
||||||
const systemInfo = uni.getWindowInfo()
|
const systemInfo = getWindowInfo()
|
||||||
const deviceInfo = uni.getDeviceInfo()
|
const deviceInfo = getDeviceInfo()
|
||||||
|
|
||||||
|
|
||||||
const statusBarHeight = systemInfo.statusBarHeight || 0
|
const statusBarHeight = systemInfo.statusBarHeight || 0
|
||||||
|
|
||||||
|
|
@ -131,20 +133,20 @@ const handleClickLeft = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-content {
|
.navbar-content {
|
||||||
width: 100%;
|
box-sizing: border-box;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
width: 100%;
|
||||||
/* justify-content: space-between; */
|
/* justify-content: space-between; */
|
||||||
padding: 0 16rpx;
|
padding: 0 16rpx;
|
||||||
box-sizing: border-box;
|
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-fixed {
|
.navbar-fixed {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
left: 0;
|
left: 0;
|
||||||
width: 100%;
|
|
||||||
z-index: 999;
|
z-index: 999;
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-border {
|
.navbar-border {
|
||||||
|
|
@ -154,8 +156,8 @@ const handleClickLeft = () => {
|
||||||
.navbar-left {
|
.navbar-left {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
height: 100%;
|
|
||||||
min-width: 100rpx;
|
min-width: 100rpx;
|
||||||
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.back-icon {
|
.back-icon {
|
||||||
|
|
@ -166,20 +168,20 @@ const handleClickLeft = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-title {
|
.navbar-title {
|
||||||
/* flex: 1; */
|
|
||||||
text-align: center;
|
|
||||||
overflow: hidden;
|
|
||||||
height: 100%;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
/* flex: 1; */
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.title-text {
|
.title-text {
|
||||||
font-size: 34rpx;
|
|
||||||
color: #333;
|
|
||||||
font-weight: 500;
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
font-size: 34rpx;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #333;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
@ -187,8 +189,8 @@ const handleClickLeft = () => {
|
||||||
.navbar-right {
|
.navbar-right {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
min-width: 52rpx;
|
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
|
min-width: 52rpx;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import { onReady } from '@dcloudio/uni-app'
|
import { onReady } from '@dcloudio/uni-app'
|
||||||
import { getIsTabbar, getLastItem } from '@/utils/index'
|
import { getIsTabbar, getLastItem } from '@/utils/index'
|
||||||
|
import { getWindowInfo } from '@/utils/tools'
|
||||||
|
|
||||||
export default () => {
|
export default () => {
|
||||||
// 获取页面栈
|
// 获取页面栈
|
||||||
|
|
@ -9,7 +10,7 @@ export default () => {
|
||||||
// 页面滚动到底部时的操作,通常用于加载更多数据
|
// 页面滚动到底部时的操作,通常用于加载更多数据
|
||||||
const onScrollToLower = () => {}
|
const onScrollToLower = () => {}
|
||||||
// 获取屏幕边界到安全区域距离
|
// 获取屏幕边界到安全区域距离
|
||||||
const { safeAreaInsets } = uni.getWindowInfo()
|
const { safeAreaInsets } = getWindowInfo()
|
||||||
|
|
||||||
// #ifdef MP-WEIXIN
|
// #ifdef MP-WEIXIN
|
||||||
// 基于小程序的 Page 类型扩展 uni-app 的 Page
|
// 基于小程序的 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]"
|
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
|
@click.stop
|
||||||
>
|
>
|
||||||
<image
|
<view class="w-[200rpx] h-[200rpx]">
|
||||||
class="w-[200rpx] h-[200rpx]"
|
<image
|
||||||
src="https://api.static.ycymedu.com/images/logo.png"
|
class="w-[200rpx] h-[200rpx]"
|
||||||
mode="aspectFit"
|
src="https://api.static.ycymedu.com/images/logo.png"
|
||||||
></image>
|
mode="aspectFit"
|
||||||
|
></image>
|
||||||
|
</view>
|
||||||
<view class="flex flex-col items-center">
|
<view class="flex flex-col items-center">
|
||||||
<text class="text-[26rpx] mt-[20rpx] mb-[40rpx]" :selectable="false">
|
<text class="text-[26rpx] mt-[20rpx] mb-[40rpx]" :selectable="false">
|
||||||
{{ phone ? '申请使用您的手机号' : '申请获取您的个人信息' }}
|
{{ phone ? '申请使用您的手机号' : '申请获取您的个人信息' }}
|
||||||
|
|
@ -99,6 +101,8 @@ const handleClickPrivacyPolicy = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const getPhoneNumber = async (e: any) => {
|
const getPhoneNumber = async (e: any) => {
|
||||||
|
console.log(e);
|
||||||
|
|
||||||
if (e.detail.errMsg == 'getPhoneNumber:ok') {
|
if (e.detail.errMsg == 'getPhoneNumber:ok') {
|
||||||
const detail = e.detail
|
const detail = e.detail
|
||||||
let _getPhoneInfo = {
|
let _getPhoneInfo = {
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
|
import { getDeviceInfo, getWindowInfo } from '@/utils/tools'
|
||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
|
|
@ -91,8 +92,8 @@ defineProps({
|
||||||
const emit = defineEmits(['clickLeft'])
|
const emit = defineEmits(['clickLeft'])
|
||||||
|
|
||||||
// 获取系统信息
|
// 获取系统信息
|
||||||
const systemInfo = uni.getWindowInfo()
|
const systemInfo = getWindowInfo()
|
||||||
const deviceInfo = uni.getDeviceInfo()
|
const deviceInfo = getDeviceInfo()
|
||||||
|
|
||||||
const statusBarHeight = systemInfo.statusBarHeight || 0
|
const statusBarHeight = systemInfo.statusBarHeight || 0
|
||||||
|
|
||||||
|
|
@ -131,20 +132,20 @@ const handleClickLeft = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-content {
|
.navbar-content {
|
||||||
width: 100%;
|
box-sizing: border-box;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
width: 100%;
|
||||||
/* justify-content: space-between; */
|
/* justify-content: space-between; */
|
||||||
padding: 0 16rpx;
|
padding: 0 16rpx;
|
||||||
box-sizing: border-box;
|
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-fixed {
|
.navbar-fixed {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
left: 0;
|
left: 0;
|
||||||
width: 100%;
|
|
||||||
z-index: 999;
|
z-index: 999;
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-border {
|
.navbar-border {
|
||||||
|
|
@ -154,8 +155,8 @@ const handleClickLeft = () => {
|
||||||
.navbar-left {
|
.navbar-left {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
height: 100%;
|
|
||||||
min-width: 100rpx;
|
min-width: 100rpx;
|
||||||
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.back-icon {
|
.back-icon {
|
||||||
|
|
@ -166,20 +167,20 @@ const handleClickLeft = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-title {
|
.navbar-title {
|
||||||
/* flex: 1; */
|
|
||||||
text-align: center;
|
|
||||||
overflow: hidden;
|
|
||||||
height: 100%;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
/* flex: 1; */
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.title-text {
|
.title-text {
|
||||||
font-size: 34rpx;
|
|
||||||
color: #333;
|
|
||||||
font-weight: 500;
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
font-size: 34rpx;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #333;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
@ -187,8 +188,8 @@ const handleClickLeft = () => {
|
||||||
.navbar-right {
|
.navbar-right {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
min-width: 52rpx;
|
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
|
min-width: 52rpx;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,32 +1,22 @@
|
||||||
<route lang="json5" type="page">
|
<route lang="json5" type="page">
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationBarTitleText: '新高考选科'
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<view class="h-screen flex flex-col">
|
<view class="h-screen flex flex-col bg-white">
|
||||||
<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="flex flex-col justify-center items-center flex-1 pb-safe mt-[-100px]">
|
<view class="flex flex-col justify-center items-center flex-1 pb-safe mt-[-100px]">
|
||||||
<image
|
<view class="w-[424rpx] h-[424rpx]">
|
||||||
class="w-[424rpx] h-[424rpx]"
|
<image
|
||||||
src="https://api.static.ycymedu.com/images/logo.png"
|
class="w-[424rpx] h-[424rpx]"
|
||||||
mode="aspectFit"
|
src="https://api.static.ycymedu.com/images/logo.png"
|
||||||
></image>
|
mode="aspectFit"
|
||||||
|
></image>
|
||||||
|
</view>
|
||||||
|
|
||||||
<button
|
<button
|
||||||
class="w-[493rpx]! mb-[40rpx] h-[88rpx]! rounded-[44rpx] text-[32rpx] text-white flex items-center justify-center"
|
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]'"
|
:class="checked.length > 0 ? 'bg-[#1580FF]' : 'bg-[#BFBFBF]'"
|
||||||
|
|
@ -82,6 +72,8 @@ const checked = ref([]) // 是否同意条款
|
||||||
const getPhoneInfo = ref(null)
|
const getPhoneInfo = ref(null)
|
||||||
|
|
||||||
const getPhoneNumber = async (e: any) => {
|
const getPhoneNumber = async (e: any) => {
|
||||||
|
console.log(e.detail);
|
||||||
|
|
||||||
if (e.detail.errMsg == 'getPhoneNumber:ok') {
|
if (e.detail.errMsg == 'getPhoneNumber:ok') {
|
||||||
const detail = e.detail
|
const detail = e.detail
|
||||||
let _getPhoneInfo = {
|
let _getPhoneInfo = {
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
|
import { getDeviceInfo, getWindowInfo } from '@/utils/tools'
|
||||||
import { computed } from 'vue'
|
import { computed } from 'vue'
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
|
|
@ -91,8 +92,8 @@ const props = defineProps({
|
||||||
const emit = defineEmits(['clickLeft'])
|
const emit = defineEmits(['clickLeft'])
|
||||||
|
|
||||||
// 获取系统信息
|
// 获取系统信息
|
||||||
const systemInfo = uni.getWindowInfo()
|
const systemInfo = getWindowInfo()
|
||||||
const deviceInfo = uni.getDeviceInfo()
|
const deviceInfo = getDeviceInfo()
|
||||||
const statusBarHeight = systemInfo.statusBarHeight || 0
|
const statusBarHeight = systemInfo.statusBarHeight || 0
|
||||||
|
|
||||||
// 动态计算导航栏高度
|
// 动态计算导航栏高度
|
||||||
|
|
@ -130,20 +131,20 @@ const handleClickLeft = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-content {
|
.navbar-content {
|
||||||
width: 100%;
|
box-sizing: border-box;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
width: 100%;
|
||||||
/* justify-content: space-between; */
|
/* justify-content: space-between; */
|
||||||
padding: 0 16rpx;
|
padding: 0 16rpx;
|
||||||
box-sizing: border-box;
|
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-fixed {
|
.navbar-fixed {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
left: 0;
|
left: 0;
|
||||||
width: 100%;
|
|
||||||
z-index: 99;
|
z-index: 99;
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-border {
|
.navbar-border {
|
||||||
|
|
@ -164,20 +165,20 @@ const handleClickLeft = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-title {
|
.navbar-title {
|
||||||
/* flex: 1; */
|
|
||||||
text-align: center;
|
|
||||||
overflow: hidden;
|
|
||||||
height: 100%;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
/* flex: 1; */
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.title-text {
|
.title-text {
|
||||||
font-size: 34rpx;
|
|
||||||
color: #333;
|
|
||||||
font-weight: 500;
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
font-size: 34rpx;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #333;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
@ -185,8 +186,8 @@ const handleClickLeft = () => {
|
||||||
.navbar-right {
|
.navbar-right {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
min-width: 52rpx;
|
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
|
min-width: 52rpx;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationStyle: 'custom',
|
||||||
|
transparentTitle: 'always',
|
||||||
|
navigationBarTitleText: '',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationStyle: 'custom',
|
||||||
|
transparentTitle: 'always',
|
||||||
|
navigationBarTitleText: '',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
|
||||||
|
|
@ -1,24 +1,13 @@
|
||||||
<route lang="json5" type="page">
|
<route lang="json5" type="page">
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationBarTitleText: '兴趣测评报告'
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<view class="flex flex-col h-screen relative custom-bg">
|
<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="flex-1 overflow-auto relative mt-[40rpx]">
|
||||||
<view class="overflow-auto relative mt-[40rpx] flex-1 pb-[20rpx]">
|
<view class="overflow-auto relative mt-[40rpx] flex-1 pb-[20rpx]">
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationStyle: 'custom',
|
||||||
|
transparentTitle: 'always',
|
||||||
|
navigationBarTitleText: '',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
|
||||||
|
|
@ -2,19 +2,15 @@
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationStyle: 'custom',
|
||||||
|
transparentTitle: 'always',
|
||||||
|
navigationBarTitleText: '',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<view :scroll-y="true" class="flex flex-col h-screen relative custom-bg">
|
<view :scroll-y="true" class="flex flex-col h-screen relative custom-bg">
|
||||||
<Navbar
|
<Navbar safeAreaInsetTop :bordered="false" leftArrow @clickLeft="handleBack" bg-color="transparent">
|
||||||
safeAreaInsetTop
|
|
||||||
:bordered="false"
|
|
||||||
leftArrow
|
|
||||||
@clickLeft="handleBack"
|
|
||||||
bg-color="transparent"
|
|
||||||
>
|
|
||||||
<template #title>
|
<template #title>
|
||||||
<text class="text-[#1F2329] text-[36rpx] font-medium text-[#fff]">MHT心理健康自评</text>
|
<text class="text-[#1F2329] text-[36rpx] font-medium text-[#fff]">MHT心理健康自评</text>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -68,6 +64,7 @@ onLoad((options) => {
|
||||||
.custom-bg {
|
.custom-bg {
|
||||||
background: linear-gradient(184deg, #0d79fc 0%, #2186fc 100%);
|
background: linear-gradient(184deg, #0d79fc 0%, #2186fc 100%);
|
||||||
}
|
}
|
||||||
|
|
||||||
:deep(.icon-class) {
|
:deep(.icon-class) {
|
||||||
color: #fff !important;
|
color: #fff !important;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationStyle: 'custom',
|
||||||
|
transparentTitle: 'always',
|
||||||
|
navigationBarTitleText: '',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationStyle: 'custom',
|
||||||
|
transparentTitle: 'always',
|
||||||
|
navigationBarTitleText: '',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationStyle: 'custom',
|
||||||
|
transparentTitle: 'always',
|
||||||
|
navigationBarTitleText: '',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationStyle: 'custom',
|
||||||
|
transparentTitle: 'always',
|
||||||
|
navigationBarTitleText: '',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationStyle: 'custom',
|
||||||
|
transparentTitle: 'always',
|
||||||
|
navigationBarTitleText: '',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationStyle: 'custom',
|
||||||
|
transparentTitle: 'always',
|
||||||
|
navigationBarTitleText: '',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
|
||||||
|
|
@ -1,28 +1,35 @@
|
||||||
<template>
|
<template>
|
||||||
<CheckboxGroup
|
<view class="custom-checkbox">
|
||||||
v-model="defValue"
|
|
||||||
checked-color="#1580FF"
|
<CheckboxGroup v-model="defValue" checked-color="#1580FF" @change="handleChange" v-bind="$attrs" :default-cols="4">
|
||||||
@change="handleChange"
|
|
||||||
v-bind="$attrs"
|
<Checkbox v-for="item in list" :key="item[valueKey]" :name="item[valueKey]" cell shape="button" :default-style="`
|
||||||
:style="{ '--default-cols': defaultCols }"
|
${checkboxStyle}
|
||||||
>
|
--checkbox-bg: #f7f8fa;
|
||||||
<Checkbox
|
--checkbox-radius: 8rpx;
|
||||||
v-for="item in list"
|
--checkbox-active-border: 2rpx solid #1580ff;
|
||||||
:key="item[valueKey]"
|
--checkbox-active-color: #1580ff;
|
||||||
:name="item[valueKey]"
|
|
||||||
cell
|
height: var(--checkbox-height);
|
||||||
shape="button"
|
|
||||||
class="custom-checkbox"
|
background-color: var(--checkbox-bg);
|
||||||
:style="checkboxStyle"
|
border-radius: var(--checkbox-radius);
|
||||||
>
|
display: flex;
|
||||||
{{ item[labelKey] }}
|
align-items: center;
|
||||||
</Checkbox>
|
justify-content: center;
|
||||||
</CheckboxGroup>
|
`">
|
||||||
|
{{ item[labelKey] }}
|
||||||
|
</Checkbox>
|
||||||
|
|
||||||
|
</CheckboxGroup>
|
||||||
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import Checkbox from './Checkbox.vue'
|
import Checkbox from './Checkbox.vue'
|
||||||
import CheckboxGroup from './CheckboxGroup.vue'
|
import CheckboxGroup from './CheckboxGroup.vue'
|
||||||
|
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
list: {
|
list: {
|
||||||
type: Array,
|
type: Array,
|
||||||
|
|
@ -84,15 +91,13 @@ watch(
|
||||||
const checkboxStyle = computed(() => {
|
const checkboxStyle = computed(() => {
|
||||||
const width = typeof props.width === 'number' ? `${props.width}rpx` : props.width
|
const width = typeof props.width === 'number' ? `${props.width}rpx` : props.width
|
||||||
const height = typeof props.height === 'number' ? `${props.height}rpx` : props.height
|
const height = typeof props.height === 'number' ? `${props.height}rpx` : props.height
|
||||||
return {
|
return `--checkbox-width: ${width};--checkbox-height: ${height};`
|
||||||
'--checkbox-width': width,
|
|
||||||
'--checkbox-height': height,
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
:deep(.custom-checkbox) {
|
.custom-checkbox {
|
||||||
// 定义默认变量
|
// 定义默认变量
|
||||||
--checkbox-width: 216rpx;
|
--checkbox-width: 216rpx;
|
||||||
--checkbox-height: 60rpx;
|
--checkbox-height: 60rpx;
|
||||||
|
|
@ -100,30 +105,29 @@ const checkboxStyle = computed(() => {
|
||||||
--checkbox-radius: 8rpx;
|
--checkbox-radius: 8rpx;
|
||||||
color: #333;
|
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) {
|
:deep(.ycym-checkbox) {
|
||||||
display: grid;
|
width: var(--checkbox-width);
|
||||||
grid-template-columns: repeat(var(--default-cols), 1fr);
|
height: var(--checkbox-height);
|
||||||
gap: 16rpx;
|
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) {
|
:deep(.checkbox-active) {
|
||||||
border-color: #1580ff !important;
|
border-color: #1580ff !important;
|
||||||
|
|
||||||
.checkbox__label {
|
.checkbox__label {
|
||||||
color: #1580ff !important;
|
color: #1580ff !important;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<view
|
<view
|
||||||
class="checkbox"
|
:style="`${defaultStyle}`"
|
||||||
:class="{
|
:class="{
|
||||||
'checkbox--disabled': isDisabled,
|
'checkbox--disabled': isDisabled,
|
||||||
'checkbox-active': isChecked,
|
'checkbox-active': isChecked,
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
}"
|
}"
|
||||||
@click="handleClick"
|
@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>
|
<text v-if="isChecked" class="i-carbon-checkmark checkbox__icon-check"></text>
|
||||||
</view>
|
</view>
|
||||||
<view class="checkbox__label">
|
<view class="checkbox__label">
|
||||||
|
|
@ -33,6 +33,16 @@ const props = defineProps({
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false,
|
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'])
|
const emit = defineEmits(['change'])
|
||||||
|
|
@ -83,12 +93,6 @@ const handleClick = () => {
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.checkbox {
|
|
||||||
display: inline-flex;
|
|
||||||
align-items: center;
|
|
||||||
cursor: pointer;
|
|
||||||
font-size: 28rpx;
|
|
||||||
}
|
|
||||||
|
|
||||||
.checkbox--disabled {
|
.checkbox--disabled {
|
||||||
cursor: not-allowed;
|
cursor: not-allowed;
|
||||||
|
|
@ -108,7 +112,6 @@ const handleClick = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
.checkbox__icon--checked {
|
.checkbox__icon--checked {
|
||||||
background-color: #0083ff;
|
|
||||||
border-color: #0083ff;
|
border-color: #0083ff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -122,8 +125,8 @@ const handleClick = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
.checkbox-active {
|
.checkbox-active {
|
||||||
background-color: #0083ff;
|
border:var(--checkbox-active-border);
|
||||||
border-color: #0083ff;
|
color: var(--checkbox-active-color)
|
||||||
}
|
}
|
||||||
|
|
||||||
.checkbox-disabled {
|
.checkbox-disabled {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<view class="checkbox-group">
|
<view class="checkbox-group" :style="`${checkgroupStyle}`">
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -20,6 +20,10 @@ const props = defineProps({
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
|
checkgroupStyle:{
|
||||||
|
type:String,
|
||||||
|
default:'grid-template-columns: repeat(3, 1fr);'
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
const emit = defineEmits(['update:modelValue', 'change'])
|
const emit = defineEmits(['update:modelValue', 'change'])
|
||||||
|
|
@ -64,9 +68,9 @@ provide('checkboxGroup', {
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.checkbox-group {
|
|
||||||
display: flex;
|
.checkbox-group{
|
||||||
flex-wrap: wrap;
|
display: grid;
|
||||||
gap: 20rpx;
|
gap: 16rpx;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
<template>
|
<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-[32rpx]">
|
||||||
<view class="i-carbon-search text-[#999]"></view>
|
<view class="i-carbon-search text-[#999]"></view>
|
||||||
<input
|
<input
|
||||||
v-model="searchValue"
|
v-model="searchValue"
|
||||||
:placeholder="placeholder"
|
:placeholder="placeholder"
|
||||||
confirm-type="search"
|
confirm-type="search"
|
||||||
placeholder-style="color:#999"
|
placeholder-style="color:#999"
|
||||||
class="text-start ml-20rpx"
|
class="text-start ml-20rpx bg-transparent"
|
||||||
@confirm="handleConfirm"
|
@confirm="handleConfirm"
|
||||||
@input="handleInput"
|
@input="handleInput"
|
||||||
/>
|
/>
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
:class="[contentClass, fixed ? 'navbar-fixed' : '', bordered ? 'navbar-border' : '']"
|
:class="[contentClass, fixed ? 'navbar-fixed' : '', bordered ? 'navbar-border' : '']"
|
||||||
:style="{
|
:style="{
|
||||||
backgroundColor: bgColor,
|
backgroundColor: bgColor,
|
||||||
height: navHeight + 'px',
|
height: `${navHeight}px`,
|
||||||
top: fixed ? (safeAreaInsetTop ? statusBarHeight : 0) + 'px' : '0',
|
top: fixed ? (safeAreaInsetTop ? statusBarHeight : 0) + 'px' : '0',
|
||||||
}"
|
}"
|
||||||
>
|
>
|
||||||
|
|
@ -51,7 +51,8 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { computed } from 'vue'
|
import { getDeviceInfo, getWindowInfo } from '@/utils/tools'
|
||||||
|
|
||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
title: {
|
title: {
|
||||||
|
|
@ -95,8 +96,9 @@ defineProps({
|
||||||
const emit = defineEmits(['clickLeft'])
|
const emit = defineEmits(['clickLeft'])
|
||||||
|
|
||||||
// 获取系统信息
|
// 获取系统信息
|
||||||
const systemInfo = uni.getWindowInfo()
|
const deviceInfo = getDeviceInfo()
|
||||||
const deviceInfo = uni.getDeviceInfo()
|
const systemInfo = getWindowInfo()
|
||||||
|
|
||||||
const statusBarHeight = systemInfo.statusBarHeight || 0
|
const statusBarHeight = systemInfo.statusBarHeight || 0
|
||||||
|
|
||||||
// 动态计算导航栏高度
|
// 动态计算导航栏高度
|
||||||
|
|
@ -134,20 +136,20 @@ const handleClickLeft = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-content {
|
.navbar-content {
|
||||||
width: 100%;
|
box-sizing: border-box;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
width: 100%;
|
||||||
/* justify-content: space-between; */
|
/* justify-content: space-between; */
|
||||||
padding: 0 16rpx;
|
padding: 0 16rpx;
|
||||||
box-sizing: border-box;
|
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-fixed {
|
.navbar-fixed {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
left: 0;
|
left: 0;
|
||||||
width: 100%;
|
|
||||||
z-index: 99;
|
z-index: 99;
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-border {
|
.navbar-border {
|
||||||
|
|
@ -168,20 +170,20 @@ const handleClickLeft = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
.navbar-title {
|
.navbar-title {
|
||||||
/* flex: 1; */
|
|
||||||
text-align: center;
|
|
||||||
overflow: hidden;
|
|
||||||
height: 100%;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
/* flex: 1; */
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.title-text {
|
.title-text {
|
||||||
font-size: 34rpx;
|
|
||||||
color: #333;
|
|
||||||
font-weight: 500;
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
font-size: 34rpx;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #333;
|
||||||
text-overflow: ellipsis;
|
text-overflow: ellipsis;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
@ -189,8 +191,8 @@ const handleClickLeft = () => {
|
||||||
.navbar-right {
|
.navbar-right {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
min-width: 52rpx;
|
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
|
min-width: 52rpx;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<view v-if="slot.default">
|
<view>
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,6 @@ export function useTable() {
|
||||||
const addColumn = (column: Column) => {
|
const addColumn = (column: Column) => {
|
||||||
columns.value.push(column)
|
columns.value.push(column)
|
||||||
}
|
}
|
||||||
|
|
||||||
provide(key, {
|
provide(key, {
|
||||||
columns,
|
columns,
|
||||||
addColumn,
|
addColumn,
|
||||||
|
|
|
||||||
|
|
@ -1,26 +1,23 @@
|
||||||
<route lang="json5" type="page">
|
<route lang="json5" type="page">
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationBarTitleText: '在线客服'
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<view class="bg-[#fff] h-[100vh] flex flex-col">
|
<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="flex-1 bg-[#F8F8F8] px-[32rpx] pb-safe">
|
||||||
<view class="mt-[84rpx] h-[754rpx] rounded-[16rpx] bg-[#fff]">
|
<view class="mt-[84rpx] h-[754rpx] rounded-[16rpx] bg-[#fff]">
|
||||||
<view class="py-[48rpx] mx-[48rpx] avatar-border flex justify-center items-center">
|
<view class="py-[48rpx] mx-[48rpx] avatar-border flex justify-center items-center">
|
||||||
<image
|
<view class="min-w-[144rpx] min-h-[144rpx] w-[144rpx] h-[144rpx]">
|
||||||
class="min-w-[144rpx] min-h-[144rpx] w-[144rpx] h-[144rpx] rounded-full"
|
<image
|
||||||
src="https://api.static.ycymedu.com/sub/images/customerService/avatar.jpg"
|
class=" rounded-full"
|
||||||
></image>
|
src="https://api.static.ycymedu.com/sub/images/customerService/avatar.jpg"
|
||||||
|
></image>
|
||||||
|
</view>
|
||||||
<view class="flex flex-col text-[#000] ml-[32rpx]">
|
<view class="flex flex-col text-[#000] ml-[32rpx]">
|
||||||
<text class="mb-[12rpx] font-normal text-[28rpx]">专属客服为您服务</text>
|
<text class="mb-[12rpx] font-normal text-[28rpx]">专属客服为您服务</text>
|
||||||
<view class="flex items-center">
|
<view class="flex items-center">
|
||||||
|
|
@ -55,7 +52,6 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import Navbar from '@/pages-sub/components/navbar/Navbar.vue'
|
|
||||||
import { useUserStore } from '@/store'
|
import { useUserStore } from '@/store'
|
||||||
|
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
|
|
@ -84,10 +80,6 @@ const makePhoneCall = () => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleBack = () => {
|
|
||||||
uni.navigateBack()
|
|
||||||
}
|
|
||||||
|
|
||||||
onBeforeMount(() => {
|
onBeforeMount(() => {
|
||||||
phoneNumber.value = contact[userStore.userInfo.city.code]?.phone || phoneNumber.value
|
phoneNumber.value = contact[userStore.userInfo.city.code]?.phone || phoneNumber.value
|
||||||
qrCodeUrl.value = contact[userStore.userInfo.city.code]?.qrCode || qrCodeUrl.value
|
qrCodeUrl.value = contact[userStore.userInfo.city.code]?.qrCode || qrCodeUrl.value
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationStyle: 'custom',
|
||||||
|
transparentTitle: 'always',
|
||||||
|
navigationBarTitleText: '',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationStyle: 'custom',
|
||||||
|
transparentTitle: 'always',
|
||||||
|
navigationBarTitleText: '',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationStyle: 'custom',
|
||||||
|
transparentTitle: 'always',
|
||||||
|
navigationBarTitleText: '',
|
||||||
},
|
},
|
||||||
needLogin: true,
|
needLogin: true,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,12 @@
|
||||||
<route lang="json5" type="page">
|
<route lang="json5" type="page">
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationBarTitleText: '城市列表'
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
<template>
|
<template>
|
||||||
<view class="wraper overflow-hidden flex flex-col" :bordered="false">
|
<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">
|
<wd-index-bar sticky class="overflow-y h-0 flex-auto">
|
||||||
<view v-for="item in cities" :key="item.letter">
|
<view v-for="item in cities" :key="item.letter">
|
||||||
<wd-index-anchor :index="item.letter" />
|
<wd-index-anchor :index="item.letter" />
|
||||||
|
|
@ -28,7 +27,6 @@
|
||||||
import { useCityStore } from '@/store/city'
|
import { useCityStore } from '@/store/city'
|
||||||
import { useUserStore } from '@/store/user'
|
import { useUserStore } from '@/store/user'
|
||||||
import { City } from '@/types/app-type'
|
import { City } from '@/types/app-type'
|
||||||
import Navbar from '@/pages-sub/components/navbar/Navbar.vue'
|
|
||||||
import { getUserCity } from '@/service/index/api'
|
import { getUserCity } from '@/service/index/api'
|
||||||
|
|
||||||
const cityStore = useCityStore()
|
const cityStore = useCityStore()
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,7 @@
|
||||||
@change-name="handleRegionChangeName"
|
@change-name="handleRegionChangeName"
|
||||||
:defaultValue="provinceCode"
|
:defaultValue="provinceCode"
|
||||||
:max="1"
|
:max="1"
|
||||||
class="custom-check-group w-full"
|
class="w-full"
|
||||||
:defaultCols="4"
|
:defaultCols="4"
|
||||||
/>
|
/>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationStyle: 'custom',
|
||||||
|
transparentTitle: 'always',
|
||||||
|
navigationBarTitleText: '',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationStyle: 'custom',
|
||||||
|
transparentTitle: 'always',
|
||||||
|
navigationBarTitleText: '',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
@ -49,21 +51,21 @@
|
||||||
v-if="currentMenu === 1"
|
v-if="currentMenu === 1"
|
||||||
@changeName="handleRegionChange"
|
@changeName="handleRegionChange"
|
||||||
@change="handleRegionIdChange"
|
@change="handleRegionIdChange"
|
||||||
class="custom-check-group"
|
checkgroupStyle="display: grid;grid-template-columns: repeat(4, 1fr);gap: 16rpx;padding: 24rpx 24rpx 36rpx;"
|
||||||
/>
|
/>
|
||||||
<Nature
|
<Nature
|
||||||
v-if="currentMenu === 2"
|
v-if="currentMenu === 2"
|
||||||
:defaultValue="natureKeyInfo"
|
:defaultValue="natureKeyInfo"
|
||||||
@changeName="handleNatureChange"
|
@changeName="handleNatureChange"
|
||||||
@change="handleNatureIdChange"
|
@change="handleNatureIdChange"
|
||||||
class="custom-check-group"
|
checkgroupStyle="display: grid;grid-template-columns: repeat(4, 1fr);gap: 16rpx;padding: 24rpx 24rpx 36rpx;"
|
||||||
/>
|
/>
|
||||||
<UniType
|
<UniType
|
||||||
v-if="currentMenu === 3"
|
v-if="currentMenu === 3"
|
||||||
:defaultValue="uniTypeKeyInfo"
|
:defaultValue="uniTypeKeyInfo"
|
||||||
@changeName="handleUniTypeChange"
|
@changeName="handleUniTypeChange"
|
||||||
@change="handleUniTypeIdChange"
|
@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="flex items-center justify-between px-[32rpx] pb-[32rpx] gap-[20rpx]">
|
||||||
<view class="cancel-btn" @click="handleClear(index)">清空</view>
|
<view class="cancel-btn" @click="handleClear(index)">清空</view>
|
||||||
|
|
@ -80,8 +82,10 @@
|
||||||
v-for="item in schoolList"
|
v-for="item in schoolList"
|
||||||
@click="itemClick(item, item.zp_index)"
|
@click="itemClick(item, item.zp_index)"
|
||||||
>
|
>
|
||||||
<view class="flex items-center p-[32rpx] w-full">
|
<view class="flex items-center p-[32rpx]">
|
||||||
<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="w-[80rpx] h-[80rpx]" :src="item.logo"></image>
|
||||||
|
</view>
|
||||||
<view class="flex justify-between items-center flex-1 overflow-y-hidden">
|
<view class="flex justify-between items-center flex-1 overflow-y-hidden">
|
||||||
<view class="flex flex-col w-full" hover-class="none">
|
<view class="flex flex-col w-full" hover-class="none">
|
||||||
<text class="text-[28rpx] text-[#333] font-semibold mb-[6rpx]">
|
<text class="text-[28rpx] text-[#333] font-semibold mb-[6rpx]">
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationStyle: 'custom',
|
||||||
|
transparentTitle: 'always',
|
||||||
|
navigationBarTitleText: '',
|
||||||
},
|
},
|
||||||
needLogin: true,
|
needLogin: true,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
@change="handleChange"
|
@change="handleChange"
|
||||||
label-key="simplename"
|
label-key="simplename"
|
||||||
v-bind="$attrs"
|
v-bind="$attrs"
|
||||||
|
:defaultCols="4"
|
||||||
width="100%"
|
width="100%"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
|
|
@ -12,6 +13,10 @@
|
||||||
import { getRegionInfo } from '@/service/index/api'
|
import { getRegionInfo } from '@/service/index/api'
|
||||||
import CheckGroup from '@/pages-sub/components/check-group/CheckGroup.vue'
|
import CheckGroup from '@/pages-sub/components/check-group/CheckGroup.vue'
|
||||||
|
|
||||||
|
defineOptions({
|
||||||
|
inheritAttrs:true
|
||||||
|
})
|
||||||
|
|
||||||
interface Region {
|
interface Region {
|
||||||
code: string
|
code: string
|
||||||
name: string
|
name: string
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1,7 +1,7 @@
|
||||||
<route lang="json5" type="page">
|
<route lang="json5" type="page">
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationBarTitleText:'查扩缩招'
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
@ -18,17 +18,6 @@
|
||||||
:safe-area-inset-bottom="true"
|
:safe-area-inset-bottom="true"
|
||||||
>
|
>
|
||||||
<template #top>
|
<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 ref="dropMenuRef">
|
||||||
<drop-menu-item
|
<drop-menu-item
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
|
|
@ -41,21 +30,21 @@
|
||||||
:defaultValue="regionKeyInfo"
|
:defaultValue="regionKeyInfo"
|
||||||
@changeName="handleRegionChange"
|
@changeName="handleRegionChange"
|
||||||
@change="handleRegionChangeCode"
|
@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"
|
v-if="item.id === 1"
|
||||||
/>
|
/>
|
||||||
<Nature
|
<Nature
|
||||||
:defaultValue="natureKeyInfo"
|
:defaultValue="natureKeyInfo"
|
||||||
@changeName="handleNatureChange"
|
@changeName="handleNatureChange"
|
||||||
@change="handleNatureChangeCode"
|
@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"
|
v-if="item.id === 2"
|
||||||
/>
|
/>
|
||||||
<UniType
|
<UniType
|
||||||
:defaultValue="uniTypeKeyInfo"
|
:defaultValue="uniTypeKeyInfo"
|
||||||
@change-name="handleUniTypeChange"
|
@change-name="handleUniTypeChange"
|
||||||
@change="handleUniTypeChangeCode"
|
@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"
|
v-if="item.id === 3"
|
||||||
/>
|
/>
|
||||||
<view class="flex items-center justify-between px-[32rpx] pb-[32rpx] gap-[20rpx]">
|
<view class="flex items-center justify-between px-[32rpx] pb-[32rpx] gap-[20rpx]">
|
||||||
|
|
@ -101,7 +90,9 @@
|
||||||
>
|
>
|
||||||
<view class="flex items-center justify-between text-[20rpx] text-[#333] py-[16rpx]">
|
<view class="flex items-center justify-between text-[20rpx] text-[#333] py-[16rpx]">
|
||||||
<view class="flex-1 flex items-center">
|
<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="ml-[6rpx]">
|
||||||
<view class="text-[32rpx] font-semibold text-wrap max-w-[200rpx]">
|
<view class="text-[32rpx] font-semibold text-wrap max-w-[200rpx]">
|
||||||
{{ item.name }}
|
{{ item.name }}
|
||||||
|
|
@ -139,7 +130,6 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import Navbar from '@/pages-sub/components/navbar/Navbar.vue'
|
|
||||||
import { useUserStore } from '@/store'
|
import { useUserStore } from '@/store'
|
||||||
import DropMenu from '@/pages-sub/components/drop-menu/DropMenu.vue'
|
import DropMenu from '@/pages-sub/components/drop-menu/DropMenu.vue'
|
||||||
import DropMenuItem from '@/pages-sub/components/drop-menu/DropMenuItem.vue'
|
import DropMenuItem from '@/pages-sub/components/drop-menu/DropMenuItem.vue'
|
||||||
|
|
@ -199,7 +189,7 @@ const queryList = (page: number, pageSize: number) => {
|
||||||
getAdmissionTrends({
|
getAdmissionTrends({
|
||||||
pageIndex: page,
|
pageIndex: page,
|
||||||
pageSize,
|
pageSize,
|
||||||
locationCode: userStore.userInfo.estimatedAchievement.provinceCode,
|
locationCode: userStore.userInfo.estimatedAchievement.provinceCode || '370000',
|
||||||
provinceName: searchParams.value.locationName,
|
provinceName: searchParams.value.locationName,
|
||||||
utype: searchParams.value.type,
|
utype: searchParams.value.type,
|
||||||
nature: searchParams.value.searchNature,
|
nature: searchParams.value.searchNature,
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationStyle: 'custom',
|
||||||
|
transparentTitle: 'always',
|
||||||
|
navigationBarTitleText: '',
|
||||||
},
|
},
|
||||||
needLogin: true,
|
needLogin: true,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationStyle: 'custom',
|
||||||
|
transparentTitle: 'always',
|
||||||
|
navigationBarTitleText: '',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
@ -28,7 +30,7 @@
|
||||||
<Region
|
<Region
|
||||||
:defaultValue="searchParams.locationCode ? [searchParams.locationCode] : []"
|
:defaultValue="searchParams.locationCode ? [searchParams.locationCode] : []"
|
||||||
:max="1"
|
:max="1"
|
||||||
class="custom-check-group"
|
checkgroupStyle="display: grid;grid-template-columns: repeat(4, 1fr);gap: 16rpx;padding: 24rpx 24rpx 36rpx;"
|
||||||
@changeName="handleRegionChange"
|
@changeName="handleRegionChange"
|
||||||
@change="handleRegionChangeCode"
|
@change="handleRegionChangeCode"
|
||||||
/>
|
/>
|
||||||
|
|
@ -46,18 +48,20 @@
|
||||||
labelKey="year"
|
labelKey="year"
|
||||||
valueKey="year"
|
valueKey="year"
|
||||||
:max="1"
|
:max="1"
|
||||||
class="custom-check-group"
|
checkgroupStyle="display: grid;grid-template-columns: repeat(4, 1fr);gap: 16rpx;padding: 24rpx 24rpx 36rpx;"
|
||||||
width="100%"
|
width="100%"
|
||||||
/>
|
/>
|
||||||
</drop-menu-item>
|
</drop-menu-item>
|
||||||
</drop-menu>
|
</drop-menu>
|
||||||
<WXXTable :data="lineList" class="px-[32rpx] mt-[16rpx] pb-safe flex-1">
|
<view class="px-[32rpx] mt-[16rpx] pb-safe flex-1">
|
||||||
<WXXTableCol prop="province_name" label="地区" width="14%"></WXXTableCol>
|
<WXXTable :data="lineList">
|
||||||
<WXXTableCol prop="year" label="年份" width="23%"></WXXTableCol>
|
<WXXTableCol prop="province_name" label="地区" width="14%"></WXXTableCol>
|
||||||
<WXXTableCol prop="subject_name" label="类别" width="23%"></WXXTableCol>
|
<WXXTableCol prop="year" label="年份" width="23%"></WXXTableCol>
|
||||||
<WXXTableCol prop="batch_name" label="批次" width="23%"></WXXTableCol>
|
<WXXTableCol prop="subject_name" label="类别" width="23%"></WXXTableCol>
|
||||||
<WXXTableCol prop="score" label="分数线" width="17%"></WXXTableCol>
|
<WXXTableCol prop="batch_name" label="批次" width="23%"></WXXTableCol>
|
||||||
</WXXTable>
|
<WXXTableCol prop="score" label="分数线" width="17%"></WXXTableCol>
|
||||||
|
</WXXTable>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationStyle: 'custom',
|
||||||
|
transparentTitle: 'always',
|
||||||
|
navigationBarTitleText: '',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
@ -9,7 +11,7 @@
|
||||||
<view class="flex flex-col h-screen">
|
<view class="flex flex-col h-screen">
|
||||||
<Navbar
|
<Navbar
|
||||||
safeAreaInsetTop
|
safeAreaInsetTop
|
||||||
bg-color="transparent"
|
bg-color="#fff"
|
||||||
:bordered="false"
|
:bordered="false"
|
||||||
left-arrow
|
left-arrow
|
||||||
@click-left="navigatorBack"
|
@click-left="navigatorBack"
|
||||||
|
|
@ -36,19 +38,19 @@
|
||||||
class="h-full"
|
class="h-full"
|
||||||
:type="1050"
|
:type="1050"
|
||||||
:keyword="searchValue"
|
:keyword="searchValue"
|
||||||
v-show="currentTab === 0"
|
v-if="currentTab === 0"
|
||||||
></MajorList>
|
></MajorList>
|
||||||
<MajorList
|
<MajorList
|
||||||
class="h-full"
|
class="h-full"
|
||||||
:type="1070"
|
:type="1070"
|
||||||
:keyword="searchValue"
|
:keyword="searchValue"
|
||||||
v-show="currentTab === 1"
|
v-if="currentTab === 1"
|
||||||
></MajorList>
|
></MajorList>
|
||||||
<MajorList
|
<MajorList
|
||||||
class="h-full"
|
class="h-full"
|
||||||
:type="1060"
|
:type="1060"
|
||||||
:keyword="searchValue"
|
:keyword="searchValue"
|
||||||
v-show="currentTab === 2"
|
v-if="currentTab === 2"
|
||||||
></MajorList>
|
></MajorList>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationStyle: 'custom',
|
||||||
|
transparentTitle: 'always',
|
||||||
|
navigationBarTitleText: '',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
|
||||||
|
|
@ -1,21 +1,13 @@
|
||||||
<route lang="json5" type="page">
|
<route lang="json5" type="page">
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationBarTitleText: '详细信息'
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<view class="flex flex-col h-screen">
|
<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-1 overflow-auto pb-safe">
|
<view class="flex-1 overflow-auto pb-safe">
|
||||||
<view class="flex flex-col px-[32rpx]">
|
<view class="flex flex-col px-[32rpx]">
|
||||||
<text class="font-semibold text-[28rpx] text-[#1F2329]">
|
<text class="font-semibold text-[28rpx] text-[#1F2329]">
|
||||||
|
|
@ -37,12 +29,6 @@
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { useCityNewDetail, newsDetail } from '@/hooks/useCityInfoHook'
|
import { useCityNewDetail, newsDetail } from '@/hooks/useCityInfoHook'
|
||||||
|
|
||||||
import Navbar from '@/pages-sub/components/navbar/Navbar.vue'
|
|
||||||
|
|
||||||
const navigatorBack = () => {
|
|
||||||
uni.navigateBack()
|
|
||||||
}
|
|
||||||
|
|
||||||
onLoad((option) => {
|
onLoad((option) => {
|
||||||
let newsId = option.newsId
|
let newsId = option.newsId
|
||||||
useCityNewDetail(newsId)
|
useCityNewDetail(newsId)
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<route lang="json5" type="page">
|
<route lang="json5" type="page">
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationBarTitleText: '高考头条'
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
@ -16,19 +16,6 @@
|
||||||
@virtualListChange="virtualListChange"
|
@virtualListChange="virtualListChange"
|
||||||
@query="queryList"
|
@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
|
<view
|
||||||
class="item-wrapper"
|
class="item-wrapper"
|
||||||
:id="`zp-id-${item.zp_index}`"
|
:id="`zp-id-${item.zp_index}`"
|
||||||
|
|
@ -58,11 +45,6 @@
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { getNewsList } from '@/service/index/api'
|
import { getNewsList } from '@/service/index/api'
|
||||||
import { useUserStore } from '@/store/user'
|
import { useUserStore } from '@/store/user'
|
||||||
import Navbar from '@/pages-sub/components/navbar/Navbar.vue'
|
|
||||||
|
|
||||||
const navigatorBack = () => {
|
|
||||||
uni.navigateBack()
|
|
||||||
}
|
|
||||||
|
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<route lang="json5" type="page">
|
<route lang="json5" type="page">
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationBarTitleText: '院校排行榜'
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
@ -18,26 +18,24 @@
|
||||||
<!-- 需要固定在顶部不滚动的view放在slot="top"的view中,如果需要跟着滚动,则不要设置slot="top" -->
|
<!-- 需要固定在顶部不滚动的view放在slot="top"的view中,如果需要跟着滚动,则不要设置slot="top" -->
|
||||||
<template #top>
|
<template #top>
|
||||||
<view class="relative h-[400rpx]" hover-class="none" :hover-stop-propagation="false">
|
<view class="relative h-[400rpx]" hover-class="none" :hover-stop-propagation="false">
|
||||||
<Navbar
|
<view class="absolute top-0 z-[-1]">
|
||||||
title="院校排行榜"
|
<image
|
||||||
left-arrow
|
class=""
|
||||||
@click-left="navigatorBack"
|
src="https://api.static.ycymedu.com/sub/images/schoolRank/background.svg"
|
||||||
safeAreaInsetTop
|
/>
|
||||||
:bordered="false"
|
</view>
|
||||||
bgColor="transparent"
|
<view class="h-[78rpx] w-[270rpx] absolute top-[249rpx] left-[102rpx] z-[-1]">
|
||||||
/>
|
<image
|
||||||
<image
|
class=""
|
||||||
class="absolute top-0 z-[-1]"
|
src="https://api.static.ycymedu.com/sub/images/schoolRank/title.svg"
|
||||||
src="https://api.static.ycymedu.com/sub/images/schoolRank/background.svg"
|
/>
|
||||||
/>
|
</view>
|
||||||
<image
|
<view class="h-[190rpx] w-[190rpx] absolute top-[194rpx] left-[460rpx] mix-blend-multiply z-[-1]">
|
||||||
class="h-[78rpx] w-[270rpx] absolute top-[249rpx] left-[102rpx] z-[-1]"
|
<image
|
||||||
src="https://api.static.ycymedu.com/sub/images/schoolRank/title.svg"
|
class=""
|
||||||
/>
|
src="https://api.static.ycymedu.com/sub/images/schoolRank/trophy.png"
|
||||||
<image
|
/>
|
||||||
class="h-[190rpx] w-[190rpx] absolute top-[194rpx] left-[460rpx] mix-blend-multiply z-[-1]"
|
</view>
|
||||||
src="https://api.static.ycymedu.com/sub/images/schoolRank/trophy.png"
|
|
||||||
/>
|
|
||||||
</view>
|
</view>
|
||||||
<view class="my-[24rpx]">
|
<view class="my-[24rpx]">
|
||||||
<z-tabs
|
<z-tabs
|
||||||
|
|
@ -55,7 +53,7 @@
|
||||||
top: '0',
|
top: '0',
|
||||||
zIndex: '99',
|
zIndex: '99',
|
||||||
height: '52rpx',
|
height: '52rpx',
|
||||||
gap: '16rpx',
|
background:'transparent'
|
||||||
}"
|
}"
|
||||||
:active-style="{
|
:active-style="{
|
||||||
background: 'linear-gradient( 270deg, #F2CE95 0%, #F8DEBA 100%)',
|
background: 'linear-gradient( 270deg, #F2CE95 0%, #F8DEBA 100%)',
|
||||||
|
|
@ -74,7 +72,9 @@
|
||||||
>
|
>
|
||||||
<view class="flex items-center py-[32rpx] w-full">
|
<view class="flex items-center py-[32rpx] w-full">
|
||||||
<text class="text-[28rpx] text-[#999] font-normal">{{ item.rank }}</text>
|
<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="" :src="item.logo"></image>
|
||||||
|
</view>
|
||||||
<view class="flex justify-between items-center flex-1">
|
<view class="flex justify-between items-center flex-1">
|
||||||
<view class="flex flex-col" hover-class="none">
|
<view class="flex flex-col" hover-class="none">
|
||||||
<text class="text-[28rpx] text-[#333] font-medium mb-[10rpx]">
|
<text class="text-[28rpx] text-[#333] font-medium mb-[10rpx]">
|
||||||
|
|
@ -99,7 +99,7 @@
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { getUniversityRank, getUnSortType } from '@/service/index/api'
|
import { getUniversityRank, getUnSortType } from '@/service/index/api'
|
||||||
import zTabs from '@/pages-sub/uni_modules/z-tabs/components/z-tabs/z-tabs.vue'
|
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 }[]
|
type UnSortType = { type: number; name: string }[]
|
||||||
|
|
||||||
|
|
@ -108,9 +108,7 @@ getUnSortType().then((res) => {
|
||||||
unSortTypeList.value = res.result as UnSortType
|
unSortTypeList.value = res.result as UnSortType
|
||||||
})
|
})
|
||||||
|
|
||||||
const navigatorBack = () => {
|
|
||||||
uni.navigateBack()
|
|
||||||
}
|
|
||||||
|
|
||||||
const tabIndex = ref<number>(0)
|
const tabIndex = ref<number>(0)
|
||||||
const tabsRef = ref(null)
|
const tabsRef = ref(null)
|
||||||
|
|
@ -188,22 +186,29 @@ const handleTabChange = (index: number) => {
|
||||||
|
|
||||||
:deep(.z-tabs-item) {
|
:deep(.z-tabs-item) {
|
||||||
width: 160rpx;
|
width: 160rpx;
|
||||||
|
|
||||||
font-size: 28rpx;
|
font-size: 28rpx;
|
||||||
|
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
color: #a28c6c;
|
color: #a28c6c;
|
||||||
background-color: #f5efe1;
|
background-color: #f5efe1;
|
||||||
border-radius: 8rpx;
|
border-radius: 8rpx;
|
||||||
|
|
||||||
padding: 0 !important;
|
padding: 0 !important;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.z-tabs-item):not(:last-child){
|
||||||
|
margin-right: 16rpx;
|
||||||
|
}
|
||||||
|
|
||||||
:deep(.z-tabs-list.tabs--z-tabs-list) {
|
:deep(.z-tabs-list.tabs--z-tabs-list) {
|
||||||
margin-top: 0 !important;
|
margin-top: 0 !important;
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: 16rpx;
|
gap: 16rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.z-tabs-list){
|
||||||
|
margin-top: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
:deep(.z-tabs-item-title-container) {
|
:deep(.z-tabs-item-title-container) {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
flex: 1 1 auto;
|
flex: 1 1 auto;
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationStyle: 'custom',
|
||||||
|
transparentTitle: 'always',
|
||||||
|
navigationBarTitleText: '',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
@ -117,7 +119,7 @@
|
||||||
v-show="actionType === 2"
|
v-show="actionType === 2"
|
||||||
width="210rpx"
|
width="210rpx"
|
||||||
height="60rpx"
|
height="60rpx"
|
||||||
class="custom-check-group"
|
checkgroupStyle="display: grid;grid-template-columns: repeat(4, 1fr);gap: 16rpx;padding: 24rpx 24rpx 36rpx;"
|
||||||
@change-name="handleRegionName"
|
@change-name="handleRegionName"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationStyle: 'custom',
|
||||||
|
transparentTitle: 'always',
|
||||||
|
navigationBarTitleText: '',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
@ -20,24 +22,29 @@
|
||||||
></Navbar>
|
></Navbar>
|
||||||
<view class="bg-[#fff] rounded-[8rpx] px-[46rpx] pt-[40rpx] pb-[30rpx] mx-[30rpx] mt-[40rpx]">
|
<view class="bg-[#fff] rounded-[8rpx] px-[46rpx] pt-[40rpx] pb-[30rpx] mx-[30rpx] mt-[40rpx]">
|
||||||
<view class="flex items-center gap-[12rpx]">
|
<view class="flex items-center gap-[12rpx]">
|
||||||
<image
|
<view class="w-[60rpx] h-[60rpx]">
|
||||||
:src="userStore.userInfo?.avatar"
|
<image
|
||||||
mode="scaleToFill"
|
:src="userStore.userInfo?.avatar"
|
||||||
class="w-[60rpx] h-[60rpx] rounded-full"
|
mode="scaleToFill"
|
||||||
/>
|
class="rounded-full"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
<text class="text-[#000] text-[36rpx] font-bold">{{ userStore.userInfo?.nickname }}</text>
|
<text class="text-[#000] text-[36rpx] font-bold">{{ userStore.userInfo?.nickname }}</text>
|
||||||
<image
|
<view class="w-[120rpx] h-[28rpx]" v-if="isVIP">
|
||||||
src="https://api.static.ycymedu.com/sub/images/ucenter/vip-flag.png"
|
<image
|
||||||
mode="scaleToFill"
|
src="https://api.static.ycymedu.com/sub/images/ucenter/vip-flag.png"
|
||||||
class="w-[120rpx] h-[28rpx]"
|
mode="scaleToFill"
|
||||||
v-if="isVIP"
|
class="w-full h-full"
|
||||||
/>
|
|
||||||
<image
|
/>
|
||||||
v-else
|
</view>
|
||||||
src="https://api.static.ycymedu.com/sub/images/ucenter/no-vip.png"
|
<view v-else class="w-[120rpx] h-[28rpx]">
|
||||||
mode="scaleToFill"
|
<image
|
||||||
class="w-[120rpx] h-[28rpx]"
|
src="https://api.static.ycymedu.com/sub/images/ucenter/no-vip.png"
|
||||||
/>
|
mode="scaleToFill"
|
||||||
|
class="w-full h-full"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<view class="mt-[40rpx]">
|
<view class="mt-[40rpx]">
|
||||||
|
|
@ -137,8 +144,6 @@ const isVIP = computed(() => {
|
||||||
})
|
})
|
||||||
|
|
||||||
const handleClickLeft = () => {
|
const handleClickLeft = () => {
|
||||||
console.log(123)
|
|
||||||
|
|
||||||
uni.navigateBack()
|
uni.navigateBack()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
144
src/pages.json
144
src/pages.json
|
|
@ -55,7 +55,9 @@
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom",
|
"navigationStyle": "custom",
|
||||||
"enableShareAppMessage": true,
|
"enableShareAppMessage": true,
|
||||||
"enableShareTimeline": true
|
"enableShareTimeline": true,
|
||||||
|
"transparentTitle": "always",
|
||||||
|
"navigationBarTitleText": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -84,7 +86,9 @@
|
||||||
"path": "pages/ucenter/index/index",
|
"path": "pages/ucenter/index/index",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom",
|
||||||
|
"transparentTitle": "always",
|
||||||
|
"navigationBarTitleText": ""
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
@ -123,14 +127,16 @@
|
||||||
"path": "evaluation/assessmentPage",
|
"path": "evaluation/assessmentPage",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom",
|
||||||
|
"transparentTitle": "always",
|
||||||
|
"navigationBarTitleText": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "customerService/index/index",
|
"path": "customerService/index/index",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationBarTitleText": "在线客服"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -163,14 +169,18 @@
|
||||||
"path": "home/career/index",
|
"path": "home/career/index",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom",
|
||||||
|
"transparentTitle": "always",
|
||||||
|
"navigationBarTitleText": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "home/career/info",
|
"path": "home/career/info",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom",
|
||||||
|
"transparentTitle": "always",
|
||||||
|
"navigationBarTitleText": ""
|
||||||
},
|
},
|
||||||
"needLogin": true
|
"needLogin": true
|
||||||
},
|
},
|
||||||
|
|
@ -178,28 +188,34 @@
|
||||||
"path": "home/city/index",
|
"path": "home/city/index",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationBarTitleText": "城市列表"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "home/college/enrollmentIntroDetail",
|
"path": "home/college/enrollmentIntroDetail",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom",
|
||||||
|
"transparentTitle": "always",
|
||||||
|
"navigationBarTitleText": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "home/college/index",
|
"path": "home/college/index",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom",
|
||||||
|
"transparentTitle": "always",
|
||||||
|
"navigationBarTitleText": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "home/college/info",
|
"path": "home/college/info",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom",
|
||||||
|
"transparentTitle": "always",
|
||||||
|
"navigationBarTitleText": ""
|
||||||
},
|
},
|
||||||
"needLogin": true
|
"needLogin": true
|
||||||
},
|
},
|
||||||
|
|
@ -207,21 +223,23 @@
|
||||||
"path": "home/distinguish/index",
|
"path": "home/distinguish/index",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationBarTitleText": "大学甄别"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "home/expand/index",
|
"path": "home/expand/index",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationBarTitleText": "查扩缩招"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "home/inputScore/index",
|
"path": "home/inputScore/index",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom",
|
||||||
|
"transparentTitle": "always",
|
||||||
|
"navigationBarTitleText": ""
|
||||||
},
|
},
|
||||||
"needLogin": true
|
"needLogin": true
|
||||||
},
|
},
|
||||||
|
|
@ -229,49 +247,57 @@
|
||||||
"path": "home/line/index",
|
"path": "home/line/index",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom",
|
||||||
|
"transparentTitle": "always",
|
||||||
|
"navigationBarTitleText": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "home/major/index",
|
"path": "home/major/index",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom",
|
||||||
|
"transparentTitle": "always",
|
||||||
|
"navigationBarTitleText": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "home/major/info",
|
"path": "home/major/info",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom",
|
||||||
|
"transparentTitle": "always",
|
||||||
|
"navigationBarTitleText": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "home/news/index",
|
"path": "home/news/index",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationBarTitleText": "详细信息"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "home/news/newsList",
|
"path": "home/news/newsList",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationBarTitleText": "高考头条"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "home/schoolRank/index",
|
"path": "home/schoolRank/index",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationBarTitleText": "院校排行榜"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "home/wishesList/index",
|
"path": "home/wishesList/index",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom",
|
||||||
|
"transparentTitle": "always",
|
||||||
|
"navigationBarTitleText": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -285,7 +311,9 @@
|
||||||
"path": "ucenter/active/activePage",
|
"path": "ucenter/active/activePage",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom",
|
||||||
|
"transparentTitle": "always",
|
||||||
|
"navigationBarTitleText": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -350,7 +378,7 @@
|
||||||
"path": "index",
|
"path": "index",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationBarTitleText": "新高考选科"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -385,77 +413,97 @@
|
||||||
"path": "rank/index",
|
"path": "rank/index",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom",
|
||||||
|
"transparentTitle": "always",
|
||||||
|
"navigationBarTitleText": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "evaluate/academicReport/capabilityReport",
|
"path": "evaluate/academicReport/CapabilityReport",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom",
|
||||||
|
"transparentTitle": "always",
|
||||||
|
"navigationBarTitleText": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "evaluate/academicReport/characterReport",
|
"path": "evaluate/academicReport/CharacterReport",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom",
|
||||||
|
"transparentTitle": "always",
|
||||||
|
"navigationBarTitleText": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "evaluate/academicReport/interestReport",
|
"path": "evaluate/academicReport/InterestReport",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationBarTitleText": "兴趣测评报告"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "evaluate/academicReport/opinionAboutReport",
|
"path": "evaluate/academicReport/opinionAboutReport",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom",
|
||||||
|
"transparentTitle": "always",
|
||||||
|
"navigationBarTitleText": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "evaluate/psychologicalReport/mhtReport",
|
"path": "evaluate/psychologicalReport/mhtReport",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom",
|
||||||
|
"transparentTitle": "always",
|
||||||
|
"navigationBarTitleText": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "evaluate/psychologicalReport/sasReport",
|
"path": "evaluate/psychologicalReport/sasReport",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom",
|
||||||
|
"transparentTitle": "always",
|
||||||
|
"navigationBarTitleText": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"path": "evaluate/psychologicalReport/sdsReport",
|
"path": "evaluate/psychologicalReport/sdsReport",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"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",
|
"path": "evaluate/studyReport/anxietyReport",
|
||||||
"type": "page",
|
"type": "page",
|
||||||
"style": {
|
"style": {
|
||||||
"navigationStyle": "custom"
|
"navigationStyle": "custom",
|
||||||
}
|
"transparentTitle": "always",
|
||||||
},
|
"navigationBarTitleText": ""
|
||||||
{
|
|
||||||
"path": "evaluate/studyReport/learnSkillReport",
|
|
||||||
"type": "page",
|
|
||||||
"style": {
|
|
||||||
"navigationStyle": "custom"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"path": "evaluate/studyReport/learnStudyReport",
|
|
||||||
"type": "page",
|
|
||||||
"style": {
|
|
||||||
"navigationStyle": "custom"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,9 @@
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
>
|
>
|
||||||
<view class="flex flex-col gap-[24rpx]">
|
<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
|
<button
|
||||||
:class="`appointment-btn ${item.isAppointment ? 'bg-[#1580ff]!' : ''}`"
|
:class="`appointment-btn ${item.isAppointment ? 'bg-[#1580ff]!' : ''}`"
|
||||||
@click="handleAppointment(item, index)"
|
@click="handleAppointment(item, index)"
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
class="w-full h-[184rpx] my-[32rpx]"
|
class="w-full h-[184rpx] my-[32rpx]"
|
||||||
circular
|
circular
|
||||||
:indicator-dots="true"
|
:indicator-dots="true"
|
||||||
:autoplay="true"
|
:autoplay="false"
|
||||||
:interval="3000"
|
:interval="3000"
|
||||||
:duration="200"
|
:duration="200"
|
||||||
>
|
>
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
<image
|
<image
|
||||||
:src="item.img"
|
:src="item.img"
|
||||||
mode="scaleToFill"
|
mode="scaleToFill"
|
||||||
class="w-full rounded-[20rpx]"
|
class="h-[184rpx] rounded-[20rpx] w-full"
|
||||||
@click.stop="handleRouter(item)"
|
@click.stop="handleRouter(item)"
|
||||||
/>
|
/>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,8 @@
|
||||||
navigationStyle: 'custom',
|
navigationStyle: 'custom',
|
||||||
enableShareAppMessage: true,
|
enableShareAppMessage: true,
|
||||||
enableShareTimeline: true,
|
enableShareTimeline: true,
|
||||||
|
transparentTitle: 'always',
|
||||||
|
navigationBarTitleText: '',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
@ -32,7 +34,7 @@
|
||||||
</navigator>
|
</navigator>
|
||||||
</template>
|
</template>
|
||||||
<template #title>
|
<template #title>
|
||||||
<view class="title">
|
<view class="flex items-center justify-center w-[198rpx] h-[88rpx] text-[32rpx]">
|
||||||
<image
|
<image
|
||||||
class="w-[198rpx] h-[32rpx]"
|
class="w-[198rpx] h-[32rpx]"
|
||||||
src="https://api.static.ycymedu.com/src/images/home/app-logo.svg"
|
src="https://api.static.ycymedu.com/src/images/home/app-logo.svg"
|
||||||
|
|
@ -162,14 +164,6 @@ onLoad(() => {
|
||||||
color: #000;
|
color: #000;
|
||||||
}
|
}
|
||||||
|
|
||||||
.title {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
height: 44px;
|
|
||||||
font-size: 32rpx;
|
|
||||||
color: #000;
|
|
||||||
}
|
|
||||||
|
|
||||||
.custom-background {
|
.custom-background {
|
||||||
background-image: linear-gradient(
|
background-image: linear-gradient(
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
{
|
{
|
||||||
style: {
|
style: {
|
||||||
navigationStyle: 'custom',
|
navigationStyle: 'custom',
|
||||||
|
transparentTitle: 'always',
|
||||||
|
navigationBarTitleText: '',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</route>
|
</route>
|
||||||
|
|
@ -10,14 +12,16 @@
|
||||||
<view class="background-wrapper">
|
<view class="background-wrapper">
|
||||||
<Navbar safeAreaInsetTop bg-color="transparent" placeholder :bordered="false"></Navbar>
|
<Navbar safeAreaInsetTop bg-color="transparent" placeholder :bordered="false"></Navbar>
|
||||||
<view class="flex px-[32rpx] gap-[24rpx] custom-user-info" @click.stop="goLogin">
|
<view class="flex px-[32rpx] gap-[24rpx] custom-user-info" @click.stop="goLogin">
|
||||||
<image
|
<view class="w-[112rpx] h-[112rpx] rounded-full">
|
||||||
:src="
|
<image
|
||||||
userStore.userInfo.avatar ||
|
:src="
|
||||||
'https://private-zhiyuan.oss-cn-beijing.aliyuncs.com/avatar.png'
|
userStore.userInfo.avatar ||
|
||||||
"
|
'https://private-zhiyuan.oss-cn-beijing.aliyuncs.com/avatar.png'
|
||||||
class="w-[112rpx] h-[112rpx] rounded-full z-[1]"
|
"
|
||||||
mode="scaleToFill"
|
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="flex flex-col gap-[6rpx] py-[8rpx] z-[1] text-white">
|
||||||
<view class="text-[32rpx] font-semibold flex items-center">
|
<view class="text-[32rpx] font-semibold flex items-center">
|
||||||
<view>
|
<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]"
|
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">
|
<view class="flex flex-col items-center gap-[16rpx]" @click="goWishList">
|
||||||
<image
|
<view class="w-[51rpx] h-[51rpx]">
|
||||||
src="https://api.static.ycymedu.com/src/images/ucenter/wish-list.png"
|
<image
|
||||||
class="w-[51rpx] h-[51rpx]"
|
src="https://api.static.ycymedu.com/src/images/ucenter/wish-list.png"
|
||||||
mode="scaleToFill"
|
class="w-[51rpx] h-[51rpx]"
|
||||||
/>
|
mode="scaleToFill"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
<text>志愿表</text>
|
<text>志愿表</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="flex flex-col items-center gap-[16rpx]" @click="goEvaluate">
|
<view class="flex flex-col items-center gap-[16rpx]" @click="goEvaluate">
|
||||||
<image
|
<view class="w-[51rpx] h-[51rpx]">
|
||||||
src="https://api.static.ycymedu.com/src/images/ucenter/evaluation-list.png"
|
<image
|
||||||
class="w-[51rpx] h-[51rpx]"
|
src="https://api.static.ycymedu.com/src/images/ucenter/evaluation-list.png"
|
||||||
mode="scaleToFill"
|
class="w-[51rpx] h-[51rpx]"
|
||||||
/>
|
mode="scaleToFill"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
<text>测评结果</text>
|
<text>测评结果</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="flex flex-col items-center gap-[16rpx]" @click="goStar">
|
<view class="flex flex-col items-center gap-[16rpx]" @click="goStar">
|
||||||
<image
|
<view class="w-[51rpx] h-[51rpx]">
|
||||||
src="https://api.static.ycymedu.com/src/images/ucenter/star.png"
|
<image
|
||||||
class="w-[51rpx] h-[51rpx]"
|
src="https://api.static.ycymedu.com/src/images/ucenter/star.png"
|
||||||
mode="scaleToFill"
|
class="w-[51rpx] h-[51rpx]"
|
||||||
/>
|
mode="scaleToFill"
|
||||||
|
/>
|
||||||
|
</view>
|
||||||
<text>收藏</text>
|
<text>收藏</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
|
||||||
|
|
@ -137,7 +137,7 @@ export const getUnCollectionList = (params: {
|
||||||
Page?: number
|
Page?: number
|
||||||
PageSize?: number
|
PageSize?: number
|
||||||
}) => {
|
}) => {
|
||||||
//获取用户院校收藏表列表
|
// 获取用户院校收藏表列表
|
||||||
return http.get('/api/unCollection/list', params)
|
return http.get('/api/unCollection/list', params)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -499,7 +499,7 @@ export const authQrCode = ({
|
||||||
return http.post(
|
return http.post(
|
||||||
'https://api.sso.ycymedu.com/api/syswxopen/hookscuess',
|
'https://api.sso.ycymedu.com/api/syswxopen/hookscuess',
|
||||||
{
|
{
|
||||||
userCode: userCode,
|
userCode,
|
||||||
messageType,
|
messageType,
|
||||||
weChat,
|
weChat,
|
||||||
tpkey: '9k1cbc3f546eda35168c3aa3cb91780fbe703f0996c6d123ea96dc85c70bbc0a',
|
tpkey: '9k1cbc3f546eda35168c3aa3cb91780fbe703f0996c6d123ea96dc85c70bbc0a',
|
||||||
|
|
|
||||||
|
|
@ -47,16 +47,16 @@ interface NavigateToOptions {
|
||||||
"/login-sub/userAgreement" |
|
"/login-sub/userAgreement" |
|
||||||
"/pages-evaluation-sub/aiAutoFill/index" |
|
"/pages-evaluation-sub/aiAutoFill/index" |
|
||||||
"/pages-evaluation-sub/rank/index" |
|
"/pages-evaluation-sub/rank/index" |
|
||||||
"/pages-evaluation-sub/evaluate/academicReport/capabilityReport" |
|
"/pages-evaluation-sub/evaluate/academicReport/CapabilityReport" |
|
||||||
"/pages-evaluation-sub/evaluate/academicReport/characterReport" |
|
"/pages-evaluation-sub/evaluate/academicReport/CharacterReport" |
|
||||||
"/pages-evaluation-sub/evaluate/academicReport/interestReport" |
|
"/pages-evaluation-sub/evaluate/academicReport/InterestReport" |
|
||||||
"/pages-evaluation-sub/evaluate/academicReport/opinionAboutReport" |
|
"/pages-evaluation-sub/evaluate/academicReport/opinionAboutReport" |
|
||||||
"/pages-evaluation-sub/evaluate/psychologicalReport/mhtReport" |
|
"/pages-evaluation-sub/evaluate/psychologicalReport/mhtReport" |
|
||||||
"/pages-evaluation-sub/evaluate/psychologicalReport/sasReport" |
|
"/pages-evaluation-sub/evaluate/psychologicalReport/sasReport" |
|
||||||
"/pages-evaluation-sub/evaluate/psychologicalReport/sdsReport" |
|
"/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/anxietyReport" |
|
||||||
"/pages-evaluation-sub/evaluate/studyReport/learnSkillReport" |
|
|
||||||
"/pages-evaluation-sub/evaluate/studyReport/learnStudyReport" |
|
|
||||||
"/aiService-sub/index/index";
|
"/aiService-sub/index/index";
|
||||||
}
|
}
|
||||||
interface RedirectToOptions extends NavigateToOptions {}
|
interface RedirectToOptions extends NavigateToOptions {}
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import { CustomRequestOptions } from '@/interceptors/request'
|
import { CustomRequestOptions } from '@/interceptors/request'
|
||||||
import { staticBaseUrl, baseUrl } from '@/utils/index'
|
import { staticBaseUrl, baseUrl } from '@/utils/index'
|
||||||
|
import { getDeviceInfo } from './tools'
|
||||||
|
|
||||||
export const http = <T>(options: CustomRequestOptions) => {
|
export const http = <T>(options: CustomRequestOptions) => {
|
||||||
// 1. 返回 Promise 对象
|
// 1. 返回 Promise 对象
|
||||||
|
|
@ -7,16 +8,16 @@ export const http = <T>(options: CustomRequestOptions) => {
|
||||||
if (options.query?.staticType === 'static') {
|
if (options.query?.staticType === 'static') {
|
||||||
options.url = `${staticBaseUrl}${options.url}`
|
options.url = `${staticBaseUrl}${options.url}`
|
||||||
} else if (options.query?.hasPrefix) {
|
} else if (options.query?.hasPrefix) {
|
||||||
|
console.log('hasPrefix', options.url)
|
||||||
} else {
|
} else {
|
||||||
options.url = `${baseUrl}${options.url}`
|
options.url = `${baseUrl}${options.url}`
|
||||||
}
|
}
|
||||||
// options.url = `${options.query?.staticType === 'static' ? staticBaseUrl : baseUrl}${options.url}`
|
// // #ifndef MP-WEIXIN
|
||||||
|
options.responseType = 'json'
|
||||||
|
// // #endif
|
||||||
uni.request({
|
uni.request({
|
||||||
...options,
|
...options,
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
// #ifndef MP-WEIXIN
|
|
||||||
responseType: 'json',
|
|
||||||
// #endif
|
|
||||||
// 响应成功
|
// 响应成功
|
||||||
success(res) {
|
success(res) {
|
||||||
// 状态码 2xx,参考 axios 的设计
|
// 状态码 2xx,参考 axios 的设计
|
||||||
|
|
|
||||||
|
|
@ -7,13 +7,13 @@ import { CustomRequestOptions } from '@/interceptors/request'
|
||||||
*/
|
*/
|
||||||
const http = <T>(options: CustomRequestOptions) => {
|
const http = <T>(options: CustomRequestOptions) => {
|
||||||
// 1. 返回 Promise 对象
|
// 1. 返回 Promise 对象
|
||||||
|
// #ifndef MP-WEIXIN
|
||||||
|
options.responseType = 'json'
|
||||||
|
// #endif
|
||||||
return new Promise<T>((resolve, reject) => {
|
return new Promise<T>((resolve, reject) => {
|
||||||
uni.request({
|
uni.request({
|
||||||
...options,
|
...options,
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
// #ifndef MP-WEIXIN
|
|
||||||
responseType: 'json',
|
|
||||||
// #endif
|
|
||||||
// 响应成功
|
// 响应成功
|
||||||
success(res) {
|
success(res) {
|
||||||
// 状态码 2xx,参考 axios 的设计
|
// 状态码 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()
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue