diff --git a/pages.config.ts b/pages.config.ts
index ed247ea..5732365 100644
--- a/pages.config.ts
+++ b/pages.config.ts
@@ -52,16 +52,7 @@ export default defineUniPages({
},
],
},
- pages: [
- {
- path: 'pages/home/index/index',
- type: 'home',
- style: {
- navigationBarTitleText: '六维志愿',
- navigationStyle: 'custom',
- },
- },
- ],
+ pages: [],
preloadRule: {
'pages/home/index/index': {
network: 'all',
diff --git a/src/components/home/HotRank.vue b/src/components/home/HotRank.vue
index cfaaca0..f3e09db 100644
--- a/src/components/home/HotRank.vue
+++ b/src/components/home/HotRank.vue
@@ -18,11 +18,34 @@
hover-class="none"
:hover-stop-propagation="false"
>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
const { unSortTypeList } = useUnSortType()
let universityTypeRankList = ref([])
+const isLoading = ref(true)
+
+// 创建默认的骨架屏数据
+const skeletonItems = ref([
+ { type: 'skeleton-1', name: '综合排名', rows: [] },
+ { type: 'skeleton-2', name: '理工排名', rows: [] },
+ { type: 'skeleton-3', name: '文科排名', rows: [] },
+ { type: 'skeleton-4', name: '医科排名', rows: [] },
+])
watch(
() => unSortTypeList.value,
(newVal) => {
- Promise.all(
- newVal.map((item) =>
- getUniversityRank({
- Year: 2023,
- Type: item.type,
- PageIndex: 1,
- PageSize: 3,
- }),
- ),
- ).then((res) => {
- res.forEach((item, index) => {
- universityTypeRankList.value.push({
- ...newVal[index],
- rows: (item.result as { rows: any[] }).rows,
+ if (newVal && newVal.length > 0) {
+ Promise.all(
+ newVal.map((item) =>
+ getUniversityRank({
+ Year: 2023,
+ Type: item.type,
+ PageIndex: 1,
+ PageSize: 3,
+ }),
+ ),
+ )
+ .then((res) => {
+ universityTypeRankList.value = []
+ res.forEach((item, index) => {
+ universityTypeRankList.value.push({
+ ...newVal[index],
+ rows: (item.result as { rows: any[] }).rows,
+ loaded: true,
+ })
+ })
+ isLoading.value = false
})
- })
- })
+ .catch(() => {
+ isLoading.value = false
+ })
+ }
},
+ { immediate: true },
)
@@ -156,4 +198,26 @@ watch(
.hot-rank-outer .hot-rank-item:nth-child(5) {
background: linear-gradient(180deg, #e5ffc4 0%, rgba(213, 255, 196, 0) 23%, #fff 100%);
}
+
+/* 骨架屏样式 */
+.skeleton-text,
+.skeleton-image {
+ background-color: #e0e0e0;
+ animation: pulse 1.5s infinite;
+}
+
+.skeleton-item {
+ background: linear-gradient(180deg, #eaeaea 0%, #f5f5f5 23%, #fff 100%);
+}
+@keyframes pulse {
+ 0% {
+ opacity: 0.5;
+ }
+ 50% {
+ opacity: 1;
+ }
+ 100% {
+ opacity: 0.5;
+ }
+}
diff --git a/src/components/home/SubMenu.vue b/src/components/home/SubMenu.vue
index 17c1094..da91175 100644
--- a/src/components/home/SubMenu.vue
+++ b/src/components/home/SubMenu.vue
@@ -6,20 +6,33 @@
class="flex items-center justify-center flex-col"
@click="goPath(item.path, item.isTab)"
>
-
+
+
+
+
{{ item.name }}
+
+
diff --git a/src/pages-sub/home/inputScore/useRules.ts b/src/pages-sub/home/inputScore/useRules.ts
index 020f8c0..f8431a1 100644
--- a/src/pages-sub/home/inputScore/useRules.ts
+++ b/src/pages-sub/home/inputScore/useRules.ts
@@ -26,7 +26,7 @@ export const useRules = (callback?: any) => {
return
}
splitSubject(requireSubjectList.value, optionalSubjectList.value)
- callback()
+ callback ? callback() : false
}
})
}
diff --git a/src/pages.json b/src/pages.json
index bcaa9da..fcc0420 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -53,8 +53,9 @@
"path": "pages/home/index/index",
"type": "home",
"style": {
- "navigationBarTitleText": "六维志愿",
- "navigationStyle": "custom"
+ "navigationStyle": "custom",
+ "enableShareAppMessage": true,
+ "enableShareTimeline": true
}
},
{
diff --git a/src/pages/home/index/index.vue b/src/pages/home/index/index.vue
index 15b5ddd..25f3e94 100644
--- a/src/pages/home/index/index.vue
+++ b/src/pages/home/index/index.vue
@@ -1,4 +1,4 @@
-
+
{
style: {
navigationStyle: 'custom',