Bladeren bron

feat: 添加多语言课程组件并优化主页导航

refactor(services): 扩展课程接口字段
style(pages): 移除未使用的页面和动画元素
whj 2 weken geleden
bovenliggende
commit
7143e276bd

+ 0 - 14
pages.json

@@ -63,13 +63,6 @@
 			}
 		},
 		{
-			"path": "pages/english/select",
-			"style": {
-				"navigationStyle": "custom",
-				"disableScroll": true
-			}
-		},
-		{
 			"path": "pages/english/detail",
 			"style": {
 				"navigationStyle": "custom",
@@ -84,13 +77,6 @@
 			}
 		},
 		{
-			"path": "pages/mix/select",
-			"style": {
-				"navigationStyle": "custom",
-				"disableScroll": true
-			}
-		},
-		{
 			"path": "pages/game/index",
 			"style": {
 				"navigationStyle": "custom",

+ 2 - 2
pages/english/index.uvue

@@ -54,8 +54,8 @@ function handleDetail(item: SubjectCatalogResult) {
     <img src="https://oss.xiaoxiongcode.com/static/英语/图层 6.png" alt="" class="w-full h-full object-cover" />
 
     <!-- 精灵图动画 -->
-    <cl-image src="https://oss.xiaoxiongcode.com/static/home/3.gif" mode="heightFix"
-      class="!absolute bottom-0 left-0 !w-[44vh] !h-[55vh] z-[1]" />
+    <!-- <cl-image src="https://oss.xiaoxiongcode.com/static/home/3.gif" mode="heightFix"
+      class="!absolute bottom-0 left-0 !w-[44vh] !h-[55vh] z-[1]" /> -->
     <view>
 
     </view>

+ 0 - 140
pages/english/select.uvue

@@ -1,140 +0,0 @@
-<script lang="ts" setup>
-import { ref, onMounted } from 'vue'
-import { querySubjectInfo } from '@/services/subject/info'
-import type { SubjectInfoResult } from '@/services/subject/info'
-import Back from '@/components/back.uvue'
-import Loading from '@/components/loading.uvue'
-import { config } from '@/config'
-import { router } from "@/.cool";
-const isLoading = ref(true)
-const visible = ref<boolean>(false)
-const dataList = ref<SubjectInfoResult[]>([])
-async function getDataList() {
-  const res = await querySubjectInfo({
-    delFlag: false,
-    subjectType: 'english'
-  })
-  dataList.value = res
-}
-onMounted(async () => {
-  try {
-    await getDataList()
-    isLoading.value = false
-  } catch (err) {
-    console.log(err);
-    isLoading.value = false
-  }
-})
-function handleDetail(item: SubjectCatalogResult) {
-  router.push({
-    path: "/pages/english/index",
-    query: {
-      id: item.id,
-    }
-  });
-}
-</script>
-
-<template>
-  <Loading v-show="isLoading" />
-  <cl-page v-show="!isLoading">
-    <Back />
-    <img src="https://oss.xiaoxiongcode.com/static/英语/图层 6.png" alt="" class="w-full h-full object-cover" />
-    <!-- 精灵图动画 -->
-    <!-- <cl-image src="https://oss.xiaoxiongcode.com/static/home/3.gif" mode="heightFix"
-      class="!absolute bottom-0 left-0 !w-[44vh] !h-[55vh] z-[1]" /> -->
-    <!-- <view class="flex flex-row items-center justify-center gap-4 kk">
-      <view class="text-[20px] font-bold bg-[#00C6F1] text-white px-4 py-4 rounded-xl">
-        课程导航
-      </view>
-      <view class="jj"></view>
-    </view> -->
-    <view class="boxs">
-      <scroll-view class="scroll-view_H" direction="horizontal" :show-scrollbar="false">
-        <view class="scroll-view-item_H bg-[white]" v-for="course in dataList || []" :key="course.id"
-          @tap="handleDetail(course)">
-          <cl-image :src="config.baseUrl + course?.iconPath" mode="heightFix"
-            class="!w-full !h-[26vh] mb-[2px] rounded-xl"></cl-image>
-          <text class="text-[16px] font-bold">{{
-            course.mainTitle }}</text>
-          <text class="text-[14px] text-[#666]">{{
-            course.assistantTitle }}</text>
-        </view>
-      </scroll-view>
-    </view>
-  </cl-page>
-</template>
-
-
-
-<style lang="scss" scoped>
-.boxs {
-  @apply h-[50vh] absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 z-[1];
-}
-
-.kk {
-  @apply w-[50vh] h-[50vh] absolute top-1/2 left-0 z-[1];
-  transform: translateY(-50%);
-
-}
-
-.jj {
-  border: 20px solid #00C6F1;
-
-  border-top: 15px solid #00000000;
-  border-right: 15px solid #00000000;
-  border-bottom: 15px solid #00000000;
-}
-
-.scroll-view_H {
-  width: 100%;
-  height: 100%;
-  flex-direction: row;
-}
-
-.scroll-view-item_H {
-  @apply w-[40vh] h-[50vh] mr-[20px] rounded-2xl border-[5px] border-[#1D4BD9] border-solid border-b-[10px] p-1 flex items-center justify-between pb-[20px];
-}
-
-.light-tag {
-  @apply absolute top-3 left-1/2 z-[1] flex flex-row items-center bg-white px-3 py-2 font-bold rounded-full shadow-md;
-  transform: translateX(-50%);
-
-  .light-icon {
-    width: 20px;
-    height: 20px;
-    margin-right: 3px;
-  }
-
-  .light-text {
-    font-size: 16px;
-    width: 100px;
-  }
-}
-
-.select-item {
-  @apply flex items-center justify-center rounded-xl border-[3px] border-[#1D4BD9] border-solid border-b-[5px] px-4 py-2 font-bold;
-}
-
-.selected {
-  @apply border-green-500;
-}
-
-.footer {
-  @apply absolute bottom-2 right-5 z-[1] flex flex-row items-center justify-center gap-4;
-}
-
-.text-stroke-custom {
-  color: white;
-  text-shadow:
-    /* 左上角投影 */
-    -1px -1px 0 #1D4BD9,
-    /* 右上角投影 */
-    1px -1px 0 #1D4BD9,
-    /* 左下角投影 */
-    -1px 1px 0 #1D4BD9,
-    /* 右下角投影 */
-    1px 1px 0 #1D4BD9;
-
-}
-</style>

+ 99 - 0
pages/index/components/chinese.uvue

@@ -0,0 +1,99 @@
+<script setup lang='ts'>
+import { ref } from 'vue'
+import { router } from '@/.cool'
+import { user } from '@/.cool'
+
+function handleView(url) {
+  router.push({ path: url })
+}
+</script>
+<template>
+  <!-- <view class="bottom">
+    <view class=" progress">
+      <view class="text-[26px] font-bold">学习进度</view>
+      <view class=" w-full flex flex-row items-center justify-center gap-2">
+
+        <cl-progress class="flex-1" color="linear-gradient(0deg, #1FA5F5 37%, #A2D8FF 100%)"
+          :value="user.info.value?.studyCourseNum" :show-text="false" :strokeWidth="16"
+          :pt="{ outer: { className: '!rounded-full' }, inner: { className: '!rounded-full' } }"></cl-progress>
+
+        <view class="text-[12px] w-[100px] rounded-full text-black font-bold text-center check
+               to-pink-500 h-[20px] ">
+          今日打卡
+        </view>
+
+      </view>
+    </view>
+    <view class="flex-1 flex flex-col items-center justify-between gap-2 bg1 py-3">
+      <cl-image src="https://oss.xiaoxiongcode.com/static/home/17.png" mode="widthFix" width="40%" height="auto" />
+      <text class="text-[14px]">趣味虚拟实验</text>
+    </view>
+    <view class="flex-1 flex flex-col items-center justify-between gap-1 bg2 py-3"
+      @tap="handleView('/pages/card/index')">
+      <cl-image src="https://oss.xiaoxiongcode.com/static/home/19.png" mode="widthFix" width="70%" height="auto" />
+      <text class="text-[14px]">我的收获</text>
+    </view>
+    <view class="flex-1 flex flex-col items-center justify-between gap-1 bg3 py-3">
+      <cl-image src="https://oss.xiaoxiongcode.com/static/home/18.png" mode="widthFix" width="35%" height="auto" />
+      <text class="text-[14px]">学习报告</text>
+    </view>
+  </view> -->
+  <view class="content" @tap="handleView('/pages/chinese/index')">
+    <cl-image src="https://oss.xiaoxiongcode.com/static/home/play.png" mode="heightFix" height="100%" width="auto" />
+    <view class="flex-1 flex flex-col items-center justify-center gap-2 ft">
+      <view class="text-[10vh] font-bold">
+        语文启蒙
+      </view>
+      <!-- <view class="h-[15vh]">
+        <cl-image src="https://oss.xiaoxiongcode.com/static/home/play.png" mode="heightFix" height="100%"
+          width="auto" />
+      </view> -->
+    </view>
+  </view>
+</template>
+<style lang="scss" scoped>
+.bottom {
+  @apply absolute bottom-[1vh] left-1/2 w-full max-w-[800px] rounded-[20px] px-10 py-1 flex flex-row items-center justify-between gap-5;
+  transform: translateX(-50%);
+
+  .progress {
+    @apply w-[400px] h-[80px] rounded-[40px] flex justify-center gap-2 px-[30px] gap-3;
+    background: linear-gradient(0deg, #AAE3FF 0%, #DFF4FD 100%);
+    width: 40%;
+  }
+
+  .check {
+    background: linear-gradient(0deg, #FBD00E 0%, #FBEC92 100%);
+    line-height: 20px;
+  }
+}
+
+.bg1 {
+  background: linear-gradient(0deg, #7597FA 0%, #C1DAFF 100%);
+  border-radius: 28px;
+  height: 80px;
+}
+
+.bg2 {
+  background: linear-gradient(0deg, #3CD3DE 0%, #ADFBFF 100%);
+  border-radius: 28px;
+  height: 80px;
+}
+
+.bg3 {
+  background: linear-gradient(0deg, #FFCE4A 0%, #FFEC88 100%);
+  border-radius: 28px;
+  height: 80px;
+}
+
+.ft {
+  font-family: eryazhaocaimao;
+  text-shadow: 0 0 10px rgba(255, 255, 255, 0.8), 0 0 20px rgba(255, 255, 255, 0.6), 0 0 30px rgba(255, 255, 255, 0.4), 0 0 40px rgba(62, 166, 238, 0.8);
+}
+
+.content {
+  @apply absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 text-white w-[120vh] border-[3px] border-[#fff] border-solid rounded-[30px] px-10 py-4 h-[44vh] flex flex-row items-center justify-between gap-4;
+  background: linear-gradient(0deg, #C7F0FE 0%, #30B9FF 100%);
+
+}
+</style>

+ 76 - 0
pages/index/components/english.uvue

@@ -0,0 +1,76 @@
+<script lang="ts" setup>
+import { ref, onMounted } from 'vue'
+import { querySubjectInfo } from '@/services/subject/info'
+import type { SubjectInfoResult } from '@/services/subject/info'
+
+import { config } from '@/config'
+import { router } from "@/.cool";
+const isLoading = ref(true)
+const dataList = ref<SubjectInfoResult[]>([])
+async function getDataList() {
+  const res = await querySubjectInfo({
+    delFlag: false,
+    subjectType: 'english'
+  })
+  dataList.value = res
+}
+onMounted(async () => {
+  try {
+    await getDataList()
+    isLoading.value = false
+  } catch (err) {
+    console.log(err);
+    isLoading.value = false
+  }
+})
+function handleDetail(item: any) {
+  router.push({
+    path: "/pages/english/index",
+    query: {
+      id: item.id,
+    }
+  });
+}
+</script>
+
+<template>
+  <view class="boxs">
+    <scroll-view class="scroll-view_H" direction="horizontal" :show-scrollbar="false">
+      <view class="scroll-view-item_H bg-[white]" v-for="course in dataList || []" :key="course.id"
+        @tap="handleDetail(course)">
+        <cl-image :src="config.baseUrl + course?.iconPath" mode="heightFix"
+          class="!w-full !h-[26vh] mb-[2px] rounded-xl"></cl-image>
+        <text class="text-[4vh] font-bold">{{
+          course.mainTitle }}</text>
+        <text class="text-[3vh] text-[#666]">{{
+          course.assistantTitle }}</text>
+      </view>
+    </scroll-view>
+  </view>
+</template>
+
+
+
+<style lang="scss" scoped>
+.boxs {
+  @apply h-[60vh] absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 z-[1] pt-[10vh];
+}
+
+.jj {
+  border: 20px solid #00C6F1;
+
+  border-top: 15px solid #00000000;
+  border-right: 15px solid #00000000;
+  border-bottom: 15px solid #00000000;
+}
+
+.scroll-view_H {
+  width: 100%;
+  height: 100%;
+  flex-direction: row;
+}
+
+.scroll-view-item_H {
+  @apply w-[40vh] h-[50vh] mr-[20px] rounded-2xl border-b-[10px] p-1 flex items-center justify-between pb-[20px];
+}
+</style>

+ 99 - 0
pages/index/components/game.uvue

@@ -0,0 +1,99 @@
+<script setup lang='ts'>
+import { ref } from 'vue'
+import { router } from '@/.cool'
+import { user } from '@/.cool'
+
+function handleView(url) {
+  router.push({ path: url })
+}
+</script>
+<template>
+  <!-- <view class="bottom">
+    <view class=" progress">
+      <view class="text-[26px] font-bold">学习进度</view>
+      <view class=" w-full flex flex-row items-center justify-center gap-2">
+
+        <cl-progress class="flex-1" color="linear-gradient(0deg, #1FA5F5 37%, #A2D8FF 100%)"
+          :value="user.info.value?.studyCourseNum" :show-text="false" :strokeWidth="16"
+          :pt="{ outer: { className: '!rounded-full' }, inner: { className: '!rounded-full' } }"></cl-progress>
+
+        <view class="text-[12px] w-[100px] rounded-full text-black font-bold text-center check
+               to-pink-500 h-[20px] ">
+          今日打卡
+        </view>
+
+      </view>
+    </view>
+    <view class="flex-1 flex flex-col items-center justify-between gap-2 bg1 py-3">
+      <cl-image src="https://oss.xiaoxiongcode.com/static/home/17.png" mode="widthFix" width="40%" height="auto" />
+      <text class="text-[14px]">趣味虚拟实验</text>
+    </view>
+    <view class="flex-1 flex flex-col items-center justify-between gap-1 bg2 py-3"
+      @tap="handleView('/pages/card/index')">
+      <cl-image src="https://oss.xiaoxiongcode.com/static/home/19.png" mode="widthFix" width="70%" height="auto" />
+      <text class="text-[14px]">我的收获</text>
+    </view>
+    <view class="flex-1 flex flex-col items-center justify-between gap-1 bg3 py-3">
+      <cl-image src="https://oss.xiaoxiongcode.com/static/home/18.png" mode="widthFix" width="35%" height="auto" />
+      <text class="text-[14px]">学习报告</text>
+    </view>
+  </view> -->
+  <view class="content" @tap="handleView('/pages/game/index')">
+    <cl-image src="https://oss.xiaoxiongcode.com/static/home/play.png" mode="heightFix" height="100%" width="auto" />
+    <view class="flex-1 flex flex-col items-center justify-center gap-2 ft">
+      <view class="text-[10vh] font-bold">
+        娱乐启蒙
+      </view>
+      <!-- <view class="h-[15vh]">
+        <cl-image src="https://oss.xiaoxiongcode.com/static/home/play.png" mode="heightFix" height="100%"
+          width="auto" />
+      </view> -->
+    </view>
+  </view>
+</template>
+<style lang="scss" scoped>
+.bottom {
+  @apply absolute bottom-[1vh] left-1/2 w-full max-w-[800px] rounded-[20px] px-10 py-1 flex flex-row items-center justify-between gap-5;
+  transform: translateX(-50%);
+
+  .progress {
+    @apply w-[400px] h-[80px] rounded-[40px] flex justify-center gap-2 px-[30px] gap-3;
+    background: linear-gradient(0deg, #AAE3FF 0%, #DFF4FD 100%);
+    width: 40%;
+  }
+
+  .check {
+    background: linear-gradient(0deg, #FBD00E 0%, #FBEC92 100%);
+    line-height: 20px;
+  }
+}
+
+.bg1 {
+  background: linear-gradient(0deg, #7597FA 0%, #C1DAFF 100%);
+  border-radius: 28px;
+  height: 80px;
+}
+
+.bg2 {
+  background: linear-gradient(0deg, #3CD3DE 0%, #ADFBFF 100%);
+  border-radius: 28px;
+  height: 80px;
+}
+
+.bg3 {
+  background: linear-gradient(0deg, #FFCE4A 0%, #FFEC88 100%);
+  border-radius: 28px;
+  height: 80px;
+}
+
+.ft {
+  font-family: eryazhaocaimao;
+  text-shadow: 0 0 10px rgba(255, 255, 255, 0.8), 0 0 20px rgba(255, 255, 255, 0.6), 0 0 30px rgba(255, 255, 255, 0.4), 0 0 40px rgba(62, 166, 238, 0.8);
+}
+
+.content {
+  @apply absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2 text-white w-[120vh] border-[3px] border-[#fff] border-solid rounded-[30px] px-10 py-4 h-[44vh] flex flex-row items-center justify-between gap-4;
+  background: linear-gradient(0deg, #C7F0FE 0%, #30B9FF 100%);
+
+}
+</style>

+ 76 - 0
pages/index/components/mix.uvue

@@ -0,0 +1,76 @@
+<script lang="ts" setup>
+import { ref, onMounted } from 'vue'
+import { querySubjectInfo } from '@/services/subject/info'
+import type { SubjectInfoResult } from '@/services/subject/info'
+
+import { config } from '@/config'
+import { router } from "@/.cool";
+const isLoading = ref(true)
+const dataList = ref<SubjectInfoResult[]>([])
+async function getDataList() {
+  const res = await querySubjectInfo({
+    delFlag: false,
+    subjectType: 'mix'
+  })
+  dataList.value = res
+}
+onMounted(async () => {
+  try {
+    await getDataList()
+    isLoading.value = false
+  } catch (err) {
+    console.log(err);
+    isLoading.value = false
+  }
+})
+function handleDetail(item: any) {
+  router.push({
+    path: "/pages/english/index",
+    query: {
+      id: item.id,
+    }
+  });
+}
+</script>
+
+<template>
+  <view class="boxs">
+    <scroll-view class="scroll-view_H" direction="horizontal" :show-scrollbar="false">
+      <view class="scroll-view-item_H bg-[white]" v-for="course in dataList || []" :key="course.id"
+        @tap="handleDetail(course)">
+        <cl-image :src="config.baseUrl + course?.iconPath" mode="heightFix"
+          class="!w-full !h-[26vh] mb-[2px] rounded-xl"></cl-image>
+        <text class="text-[4vh] font-bold">{{
+          course.mainTitle }}</text>
+        <text class="text-[3vh] text-[#666]">{{
+          course.assistantTitle }}</text>
+      </view>
+    </scroll-view>
+  </view>
+</template>
+
+
+
+<style lang="scss" scoped>
+.boxs {
+  @apply h-[60vh] absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 z-[1] pt-[10vh];
+}
+
+.jj {
+  border: 20px solid #00C6F1;
+
+  border-top: 15px solid #00000000;
+  border-right: 15px solid #00000000;
+  border-bottom: 15px solid #00000000;
+}
+
+.scroll-view_H {
+  width: 100%;
+  height: 100%;
+  flex-direction: row;
+}
+
+.scroll-view-item_H {
+  @apply w-[40vh] h-[50vh] mr-[20px] rounded-2xl border-b-[10px] p-1 flex items-center justify-between pb-[20px];
+}
+</style>

+ 13 - 2
pages/index/home.uvue

@@ -4,6 +4,10 @@ import { dict } from '@/.cool/store'
 import { router } from '@/.cool'
 import { user } from '@/.cool'
 import Physics from './components/physics.uvue'
+import Chinese from './components/chinese.uvue'
+import English from './components/english.uvue'
+import Mix from './components/mix.uvue'
+import Game from './components/game.uvue'
 
 const menuList = computed(() => {
 	return [
@@ -30,6 +34,9 @@ const icons = {
 const selected = ref<string>('physics')
 function handlePage(val: any) {
 	selected.value = val.code
+	if (val.code === 'user') {
+		router.push({ path: '/pages/user/info' })
+	}
 }
 onMounted(() => {
 	console.log(menuList.value)
@@ -52,12 +59,16 @@ const userInfo = computed(() => user.info.value?.userInfo)
 			</view>
 		</view>
 
-		<Physics />
+		<Physics v-if="selected === 'physics'" />
+		<Chinese v-else-if="selected === 'chinese'" />
+		<English v-else-if="selected === 'english'" />
+		<Mix v-else-if="selected === 'mix'" />
+		<Game v-else-if="selected === 'game'" />
 	</cl-page>
 </template>
 <style lang="scss" scoped>
 .menus {
-	@apply absolute top-[5vh] left-1/2 bg-white rounded-[20px] px-10 py-2 flex flex-row items-center justify-between gap-2;
+	@apply absolute top-[5vh] left-1/2 bg-white rounded-[20px] p-2 px-3 flex flex-row items-center justify-center gap-2;
 	transform: translateX(-50%);
 }
 

+ 0 - 140
pages/mix/select.uvue

@@ -1,140 +0,0 @@
-<script lang="ts" setup>
-import { ref, onMounted } from 'vue'
-import { querySubjectInfo } from '@/services/subject/info'
-import type { SubjectInfoResult } from '@/services/subject/info'
-import Back from '@/components/back.uvue'
-import Loading from '@/components/loading.uvue'
-import { config } from '@/config'
-import { router } from "@/.cool";
-const isLoading = ref(true)
-const visible = ref<boolean>(false)
-const dataList = ref<SubjectInfoResult[]>([])
-async function getDataList() {
-  const res = await querySubjectInfo({
-    delFlag: false,
-    subjectType: 'mix'
-  })
-  dataList.value = res
-}
-onMounted(async () => {
-  try {
-    await getDataList()
-    isLoading.value = false
-  } catch (err) {
-    console.log(err);
-    isLoading.value = false
-  }
-})
-function handleDetail(item: SubjectCatalogResult) {
-  router.push({
-    path: "/pages/english/index",
-    query: {
-      id: item.id,
-    }
-  });
-}
-</script>
-
-<template>
-  <Loading v-show="isLoading" />
-  <cl-page v-show="!isLoading">
-    <Back />
-    <img src="https://oss.xiaoxiongcode.com/static/英语/图层 6.png" alt="" class="w-full h-full object-cover" />
-    <!-- 精灵图动画 -->
-    <!-- <cl-image src="https://oss.xiaoxiongcode.com/static/home/3.gif" mode="heightFix"
-      class="!absolute bottom-0 left-0 !w-[44vh] !h-[55vh] z-[1]" /> -->
-    <!-- <view class="flex flex-row items-center justify-center gap-4 kk">
-      <view class="text-[20px] font-bold bg-[#00C6F1] text-white px-4 py-4 rounded-xl">
-        课程导航
-      </view>
-      <view class="jj"></view>
-    </view> -->
-    <view class="boxs">
-      <scroll-view class="scroll-view_H" direction="horizontal" :show-scrollbar="false">
-        <view class="scroll-view-item_H bg-[white]" v-for="course in dataList || []" :key="course.id"
-          @tap="handleDetail(course)">
-          <cl-image :src="config.baseUrl + course?.iconPath" mode="heightFix"
-            class="!w-full !h-[26vh] mb-[2px] rounded-xl"></cl-image>
-          <text class="text-[16px] font-bold">{{
-            course.mainTitle }}</text>
-          <text class="text-[14px] text-[#666]">{{
-            course.assistantTitle }}</text>
-        </view>
-      </scroll-view>
-    </view>
-  </cl-page>
-</template>
-
-
-
-<style lang="scss" scoped>
-.boxs {
-  @apply h-[50vh] absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 z-[1];
-}
-
-.kk {
-  @apply w-[50vh] h-[50vh] absolute top-1/2 left-0 z-[1];
-  transform: translateY(-50%);
-
-}
-
-.jj {
-  border: 20px solid #00C6F1;
-
-  border-top: 15px solid #00000000;
-  border-right: 15px solid #00000000;
-  border-bottom: 15px solid #00000000;
-}
-
-.scroll-view_H {
-  width: 100%;
-  height: 100%;
-  flex-direction: row;
-}
-
-.scroll-view-item_H {
-  @apply w-[40vh] h-[50vh] mr-[20px] rounded-2xl border-[5px] border-[#1D4BD9] border-solid border-b-[10px] p-1 flex items-center justify-between pb-[20px];
-}
-
-.light-tag {
-  @apply absolute top-3 left-1/2 z-[1] flex flex-row items-center bg-white px-3 py-2 font-bold rounded-full shadow-md;
-  transform: translateX(-50%);
-
-  .light-icon {
-    width: 20px;
-    height: 20px;
-    margin-right: 3px;
-  }
-
-  .light-text {
-    font-size: 16px;
-    width: 100px;
-  }
-}
-
-.select-item {
-  @apply flex items-center justify-center rounded-xl border-[3px] border-[#1D4BD9] border-solid border-b-[5px] px-4 py-2 font-bold;
-}
-
-.selected {
-  @apply border-green-500;
-}
-
-.footer {
-  @apply absolute bottom-2 right-5 z-[1] flex flex-row items-center justify-center gap-4;
-}
-
-.text-stroke-custom {
-  color: white;
-  text-shadow:
-    /* 左上角投影 */
-    -1px -1px 0 #1D4BD9,
-    /* 右上角投影 */
-    1px -1px 0 #1D4BD9,
-    /* 左下角投影 */
-    -1px 1px 0 #1D4BD9,
-    /* 右下角投影 */
-    1px 1px 0 #1D4BD9;
-
-}
-</style>

+ 2 - 0
services/subject/catalog.ts

@@ -18,6 +18,8 @@ export interface SubjectCatalogResult {
     updateTime?: string
     fileList?: FileList[]
     courseList?: SubjectCourseResult[]
+    payFlag?: boolean
+    trialPlay?: boolean
 }
 
 // export function getSubjectCatalogPage(parameter: any) {

+ 1 - 0
services/subject/info.ts

@@ -19,6 +19,7 @@ export interface SubjectInfoResult {
     updateTime?: string
     interactionFlag?: boolean
     catalogList?: SubjectCatalogResult[]
+    iconPath?: string
 }
 
 // export function getSubjectInfoPage(parameter: any) {