|
@@ -0,0 +1,394 @@
|
|
|
+<template>
|
|
|
+ <view class="ezy-xxjl-page">
|
|
|
+ <view class="icon-title-navBar-box">
|
|
|
+ <view @click="handleBack" class="nav-bar-icon"></view>
|
|
|
+ <text class="nav-bar-title">学习记录</text>
|
|
|
+ </view>
|
|
|
+ <view class="ezy-tab-border">
|
|
|
+ <uni-segmented-control :current="data.current" :values="data.items" active-color="#3A7FE9"
|
|
|
+ @clickItem="onChangeTab" class="ezy-tab-box" />
|
|
|
+ <view class="xxjl-content-box">
|
|
|
+ <view v-if="data.current === 0">
|
|
|
+ <scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="data.shuxue.loading"
|
|
|
+ :refresher-threshold="50" refresher-background="transparent" @refresherrefresh="onRefresh"
|
|
|
+ class="xxjl-scroll-view">
|
|
|
+ <!--数学-->
|
|
|
+ <uni-list>
|
|
|
+ <uni-list-item v-for="item in data.shuxue.list" class="xxjl-item-box">
|
|
|
+ <template v-slot:body>
|
|
|
+ <view @click="goDao(item)">
|
|
|
+ <view class="item-date-row">
|
|
|
+ <view class="data-item">
|
|
|
+ <icon class="data-icon"></icon>
|
|
|
+ <text>{{ item.createTime }}</text>
|
|
|
+ </view>
|
|
|
+ <!-- 这里加点击事件 wgy看这里 -->
|
|
|
+ <view class="data-item del-item">
|
|
|
+ <icon @click.stop="deleteJilu(item)" class="del-icon"></icon>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="item-zhang-row">
|
|
|
+ <icon class="zhang-icon"></icon>
|
|
|
+ <view>{{ item.levelName }}</view>
|
|
|
+ </view>
|
|
|
+ <view class="item-jie-row">
|
|
|
+ <text>{{ item.zhangName }}</text>
|
|
|
+ </view>
|
|
|
+ <view class="item-jie-row">
|
|
|
+ <text>{{ item.jieName }}</text>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ </template>
|
|
|
+ </uni-list-item>
|
|
|
+ <uni-load-more :status="data.shuxue.state" @click="getMore(0)"
|
|
|
+ :contentText="data.shuxue.contentText"></uni-load-more>
|
|
|
+ </uni-list>
|
|
|
+ </scroll-view>
|
|
|
+ </view>
|
|
|
+ <view v-if="data.current === 1">
|
|
|
+ <scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="data.yingyu.loading"
|
|
|
+ :refresher-threshold="50" refresher-background="transparent" @refresherrefresh="onRefresh"
|
|
|
+ class="xxjl-scroll-view">
|
|
|
+ <!--英语-->
|
|
|
+ <uni-list>
|
|
|
+ <uni-list-item v-for="item in data.yingyu.list" class="xxjl-item-box">
|
|
|
+ <template v-slot:body>
|
|
|
+ <view>
|
|
|
+ <view class="item-date-row">
|
|
|
+ <view class="data-item">
|
|
|
+ <icon class="data-icon"></icon>
|
|
|
+ <text>{{ item.createTime }}</text>
|
|
|
+ </view>
|
|
|
+ <!-- 这里加点击事件 wgy看这里 -->
|
|
|
+ <view class="data-item del-item">
|
|
|
+ <icon @click.stop="deleteJilu(item)" class="del-icon"></icon>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="item-zhang-row">
|
|
|
+ <icon class="zhang-icon"></icon>
|
|
|
+ <view>{{ item.levelName }}</view>
|
|
|
+ </view>
|
|
|
+ <view class="item-jie-row">
|
|
|
+ <text>{{ item.zhangName }}</text>
|
|
|
+ </view>
|
|
|
+ <view class="item-jie-row">
|
|
|
+ <text>{{ item.jieName }}</text>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
+ </uni-list-item>
|
|
|
+ <uni-load-more :status="data.yingyu.state" @click="getMore(1)"
|
|
|
+ :contentText="data.yingyu.contentText"></uni-load-more>
|
|
|
+ </uni-list>
|
|
|
+ </scroll-view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <tip-small-dialog ref="deleteJiluDialogRef" @confirm-btn="deleteJiluBtn"
|
|
|
+ :content="deleteJiluContent"></tip-small-dialog>
|
|
|
+ <CustomTabBar></CustomTabBar>
|
|
|
+ </view>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script setup>
|
|
|
+ import {
|
|
|
+ reactive,
|
|
|
+ ref
|
|
|
+ } from "vue";
|
|
|
+ import {
|
|
|
+ xuexiJilu,
|
|
|
+ xuexiJiluDelete
|
|
|
+ } from "@/api/my.js";
|
|
|
+ import {
|
|
|
+ onLoad
|
|
|
+ } from "@dcloudio/uni-app";
|
|
|
+ import cuoti from "@/components/chengji/chengji.vue";
|
|
|
+ import tipSmallDialog from '@/components/dialog/tipSmallDialog.vue';
|
|
|
+ import {
|
|
|
+ getWrongInfo
|
|
|
+ } from "@/api/wrong";
|
|
|
+ import {
|
|
|
+ toast,
|
|
|
+ getUserIdentity
|
|
|
+ } from "@/utils/common";
|
|
|
+ import CustomTabBar from '@/components/custom-tabbar/custom-tabbar.vue';
|
|
|
+ import cacheManager from "@/utils/cacheManager.js"
|
|
|
+ const zhangId = ref(null);
|
|
|
+ const nianji = ref(null);
|
|
|
+ const subjectId = ref(null);
|
|
|
+ const deleteJiluDialogRef = ref(null);
|
|
|
+ const deleteJiluContent = '你确定要执行这个操作吗?';
|
|
|
+ const wrongRef = ref(null);
|
|
|
+ const deleteId = ref('');
|
|
|
+
|
|
|
+ const data = reactive({
|
|
|
+ items: ['数学', '英语'],
|
|
|
+ current: 0,
|
|
|
+ shuxue: {
|
|
|
+ page: 0,
|
|
|
+ list: [],
|
|
|
+ loading: false,
|
|
|
+ state: 'more',
|
|
|
+ contentText: {
|
|
|
+ contentdown: '查看更多',
|
|
|
+ contentrefresh: '加载中',
|
|
|
+ contentnomore: '没有更多'
|
|
|
+ }
|
|
|
+
|
|
|
+ },
|
|
|
+ yingyu: {
|
|
|
+ page: 0,
|
|
|
+ list: [],
|
|
|
+ loading: false,
|
|
|
+ state: 'more',
|
|
|
+ contentText: {
|
|
|
+ contentdown: '查看更多',
|
|
|
+ contentrefresh: '加载中',
|
|
|
+ contentnomore: '没有更多'
|
|
|
+ }
|
|
|
+ },
|
|
|
+ wrongList: [],
|
|
|
+ })
|
|
|
+ subjectId.value = data.current + 1;
|
|
|
+
|
|
|
+
|
|
|
+ function goDao(data) {
|
|
|
+ const auth = cacheManager.get('auth');
|
|
|
+ cacheManager.updateObject('auth', {
|
|
|
+ levelId: data.levelId,
|
|
|
+ zhangId: data.zhangId,
|
|
|
+ })
|
|
|
+ cacheManager.remove('zhangInfo')
|
|
|
+ uni.redirectTo({
|
|
|
+ url: `/pages/study/index`
|
|
|
+ })
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ function deleteJilu(item) {
|
|
|
+ deleteId.value = item.id
|
|
|
+ deleteJiluDialogRef.value.handleShow();
|
|
|
+ }
|
|
|
+
|
|
|
+ function deleteJiluBtn(id) {
|
|
|
+ let req = {
|
|
|
+ id: deleteId.value
|
|
|
+ }
|
|
|
+ xuexiJiluDelete(req).then(res => {
|
|
|
+ if (res.code == 0) {
|
|
|
+ if (data.current === 0) {
|
|
|
+ data.shuxue.list = [];
|
|
|
+ data.shuxue.page = 0;
|
|
|
+ } else {
|
|
|
+ data.yingyu.list = [];
|
|
|
+ data.yingyu.page = 0;
|
|
|
+ }
|
|
|
+ // 重新加载数据
|
|
|
+ refreshData(data.current);
|
|
|
+ } else {
|
|
|
+ toast('失败,请稍后重试')
|
|
|
+ }
|
|
|
+ }).catch(err => {
|
|
|
+ toast('失败,请稍后重试')
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ function handleBack() {
|
|
|
+ uni.redirectTo({
|
|
|
+ url: '/pages/my/index'
|
|
|
+ })
|
|
|
+ uni.$emit('back-outpage')
|
|
|
+ }
|
|
|
+
|
|
|
+ function handleBackFromCuoti() {
|
|
|
+ wrongRef.value.closePopup();
|
|
|
+ uni.$emit('back-outpage')
|
|
|
+ }
|
|
|
+
|
|
|
+ function onChangeTab(e) {
|
|
|
+ if (data.current !== e.currentIndex) {
|
|
|
+ data.current = e.currentIndex;
|
|
|
+ subjectId.value = data.current + 1;
|
|
|
+ if (data.current == 0) {
|
|
|
+ data.shuxue.page = 0
|
|
|
+ } else if (data.current == 1) {
|
|
|
+ data.yingyu.page = 0
|
|
|
+ }
|
|
|
+ refreshData(data.current);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ function refreshData(code) {
|
|
|
+ const opt = {
|
|
|
+ page: 1,
|
|
|
+ size: 10, // 固定查询10条
|
|
|
+ subjectId: data.current + 1 // 前台索引加1为学科cardId
|
|
|
+ }
|
|
|
+
|
|
|
+ if (code == 0) {
|
|
|
+ data.shuxue.list = [];
|
|
|
+ // 数学
|
|
|
+ data.shuxue.state = 'loading';
|
|
|
+ data.shuxue.page++;
|
|
|
+ opt.page = data.shuxue.page;
|
|
|
+ } else if (code == 1) {
|
|
|
+ data.yingyu.list = [];
|
|
|
+ // 英语
|
|
|
+ data.yingyu.state = 'loading';
|
|
|
+ data.yingyu.page++;
|
|
|
+ opt.page = data.yingyu.page;
|
|
|
+ }
|
|
|
+ xuexiJilu(opt).then(res => {
|
|
|
+ if (code == 0) {
|
|
|
+ data.shuxue.list = data.shuxue.list.concat(res.data.data);
|
|
|
+ data.shuxue.loading = false;
|
|
|
+ } else if (code == 1) {
|
|
|
+ data.yingyu.list = data.yingyu.list.concat(res.data.data);
|
|
|
+ data.yingyu.loading = false;
|
|
|
+ }
|
|
|
+ if (code == 0) {
|
|
|
+ if (res.data.total > data.shuxue.list.length) {
|
|
|
+ // 数学
|
|
|
+ data.shuxue.state = 'more';
|
|
|
+ data.shuxue.loading = false;
|
|
|
+ } else {
|
|
|
+ // 数学
|
|
|
+ data.shuxue.state = 'no-more';
|
|
|
+ data.shuxue.loading = false;
|
|
|
+
|
|
|
+ }
|
|
|
+ } else if (code == 1) {
|
|
|
+ if (res.data.total > data.yingyu.list.length) {
|
|
|
+ // 英语
|
|
|
+ data.yingyu.state = 'more';
|
|
|
+ data.yingyu.loading = false;
|
|
|
+ } else {
|
|
|
+ // 英语
|
|
|
+ data.yingyu.state = 'no-more';
|
|
|
+ data.yingyu.loading = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }).catch(err => {
|
|
|
+ if (code == 0) {
|
|
|
+ // 数学
|
|
|
+ data.shuxue.state = 'more';
|
|
|
+ data.shuxue.loading = false;
|
|
|
+ } else if (code == 1) {
|
|
|
+ // 英语
|
|
|
+ data.yingyu.state = 'more';
|
|
|
+ data.yingyu.loading = false;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ function getMore(code) {
|
|
|
+ console.log('12312312312');
|
|
|
+ const opt = {
|
|
|
+ page: 1,
|
|
|
+ size: 10, // 固定查询10条
|
|
|
+ subjectId: data.current + 1 // 前台索引加1为学科cardId
|
|
|
+ }
|
|
|
+
|
|
|
+ if (code == 0) {
|
|
|
+
|
|
|
+ if (data.shuxue.state == 'no-more') return;
|
|
|
+ // 数学
|
|
|
+ data.shuxue.state = 'loading';
|
|
|
+ data.shuxue.page++;
|
|
|
+ opt.page = data.shuxue.page;
|
|
|
+ } else if (code == 1) {
|
|
|
+ // 英语
|
|
|
+ if (data.yingyu.state == 'no-more') return;
|
|
|
+ data.yingyu.state = 'loading';
|
|
|
+ data.yingyu.page++;
|
|
|
+ opt.page = data.yingyu.page;
|
|
|
+ }
|
|
|
+ xuexiJilu(opt).then(res => {
|
|
|
+ if (code == 0) {
|
|
|
+ data.shuxue.list = data.shuxue.list.concat(res.data.data);
|
|
|
+ data.shuxue.loading = false;
|
|
|
+ } else if (code == 1) {
|
|
|
+ data.yingyu.list = data.yingyu.list.concat(res.data.data);
|
|
|
+ data.yingyu.loading = false;
|
|
|
+ }
|
|
|
+ if (code == 0) {
|
|
|
+ if (res.data.total > data.shuxue.list.length) {
|
|
|
+ // 数学
|
|
|
+ data.shuxue.state = 'more';
|
|
|
+ data.shuxue.state_text = '加载更多';
|
|
|
+ data.shuxue.loading = false;
|
|
|
+ } else {
|
|
|
+ // 数学
|
|
|
+ data.shuxue.state = 'no-more';
|
|
|
+ data.shuxue.state_text = '没有更多啦';
|
|
|
+
|
|
|
+ data.shuxue.loading = false;
|
|
|
+ }
|
|
|
+ } else if (code == 1) {
|
|
|
+ if (res.data.total > data.yingyu.list.length) {
|
|
|
+ // 英语
|
|
|
+ data.yingyu.state = 'more';
|
|
|
+ data.yingyu.state_text = '加载更多';
|
|
|
+ data.yingyu.loading = false;
|
|
|
+ } else {
|
|
|
+ // 英语
|
|
|
+ data.yingyu.state = 'no-more';
|
|
|
+ data.yingyu.state_text = '没有更多啦';
|
|
|
+
|
|
|
+ data.yingyu.loading = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }).catch(err => {
|
|
|
+ if (code == 0) {
|
|
|
+ // 数学
|
|
|
+ data.shuxue.state = 'more';
|
|
|
+ data.shuxue.state_text = '加载更多';
|
|
|
+ data.shuxue.loading = false;
|
|
|
+ } else if (code == 1) {
|
|
|
+ // 英语
|
|
|
+ data.yingyu.state = 'more';
|
|
|
+ data.yingyu.state_text = '加载更多';
|
|
|
+ data.yingyu.loading = false;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+
|
|
|
+ // function formatListToUse(list) {
|
|
|
+ // list.forEach((item, index) => {
|
|
|
+ // item.mta_show = false;
|
|
|
+ // if (item.type == 3) {
|
|
|
+ // item.result = JSON.parse(item.result);
|
|
|
+ // item.placeholders = item.result.map((item, cindex) => `[bank${cindex+1}]`)
|
|
|
+ // item.reply = item.reply ? JSON.parse(item.reply) : item.result.map(() => '');
|
|
|
+ // }
|
|
|
+
|
|
|
+ // if (item.type == 4) {
|
|
|
+ // // 特殊题型英语题
|
|
|
+ // const audioList = item.audios ? item.audios.split(',') : [];
|
|
|
+ // item.placeholders = audioList.map((item, cindex) => `[yingyu${cindex+1}]`)
|
|
|
+ // item.audioList = audioList;
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ // }
|
|
|
+ function onRefresh() {
|
|
|
+ if (data.current == 0) {
|
|
|
+ data.shuxue.page = 0;
|
|
|
+ data.shuxue.list = [];
|
|
|
+ data.shuxue.loading = true;
|
|
|
+ } else if (data.current == 1) {
|
|
|
+ data.yingyu.page = 0;
|
|
|
+ data.yingyu.list = [];
|
|
|
+ data.yingyu.loading = true;
|
|
|
+ }
|
|
|
+ refreshData(data.current);
|
|
|
+ }
|
|
|
+
|
|
|
+ onLoad(() => {
|
|
|
+ getMore(data.current);
|
|
|
+ })
|
|
|
+</script>
|
|
|
+
|
|
|
+<style>
|
|
|
+
|
|
|
+</style>
|