123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- <template>
- <view>
- <view>请选择年级和学期</view>
- <text>我们会根据您选择,为您匹配对应的学习内容</text>
- <view class="grade-label">
- 年级
- </view>
- <view class="grade-container">
- <view v-for="item in data.nianji_list" :key="item.id" @click="handleSelectGrade(item)" :class="['grade-item', {active: item.id === data.activeGrade}]">{{item.label}}</view>
- </view>
- <view class="term-label">
- 学期
- </view>
- <view class="term-container">
- <view v-for="item in data.xueqi_list" :key="item.id" @click="handleSelectTerm(item)" :class="['term-item',{active: item.id === data.activeTerm}]">{{item.label}}</view>
- </view>
-
- <button @click="handleSelect">确定</button>
- </view>
- </template>
- <script setup>
- import {
- ref,
- reactive
- } from "vue"
-
-
- const data = reactive({
- nianji_list: [{
- label: '一年级',
- id: 1
- },
- {
- label: '二年级',
- id: 2
- },
- {
- label: '三年级',
- id: 3
- },
- {
- label: '四年级',
- id: 4
- },
- {
- label: '五年级',
- id: 5
- },
- {
- label: '六年级',
- id: 6
- },
- ],
- xueqi_list: [{
- label: '上册',
- id: 1
- },
- {
- label: '下册',
- id: 2
- }
- ],
- activeGrade: null,
- activeTerm: null
- })
- function handleSelectGrade(item) {
- data.activeGrade = item.id;
- }
- function handleSelectTerm(item) {
- data.activeTerm= item.id;
- }
-
- function handleSelect() {
- if (!data.activeGrade) {
- uni.showToast({
- title: '请选择年级',
- duration: 2000
- })
- return;
- }
- if (!data.activeTerm) {
- uni.showToast({
- title: '请选择学期',
- duration: 2000
- })
- return;
- }
-
- const text1 = data.nianji_list.find(item => item.id == data.activeGrade).label;
- const text2 = data.xueqi_list.find(item => item.id == data.activeTerm).label;
- const options = {
- grade: data.activeGrade,
- term: data.activeTerm,
- }
- uni.navigateTo({
- url: `/pages/study/index?gradeId=${options.grade}&termId=${options.term}&text=${text1}${text2}`
- })
- }
- </script>
- <style lang="scss">
- .active {
- color: red
- }
- .grade-container {
- display: flex;
- flex-wrap: wrap;
- }
- .grade-item {
- flex:1;
- min-width: 50%;
- text-align: center;
- padding: 10px;
- }
- .grade-label {
- text-align: center;
- padding: 10px;
- }
-
- .term-container {
- display: flex;
- flex-wrap: wrap;
- }
- .term-item {
- flex:1;
- min-width: 50%;
- text-align: center;
- padding: 10px;
- }
- .term-label {
- text-align: center;
- padding: 10px;
- }
- </style>
|