Merge branch 'dev-20250930' of http://25.13.9.101:9000/K17_AITS/tra-app into dev-20250930
@@ -261,6 +261,15 @@
|
||||
"titleNView": false
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/charts/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"app-plus": {
|
||||
"titleNView": false
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"tabBar": {
|
||||
|
||||
@@ -25,7 +25,8 @@
|
||||
<view class="rank-top3">
|
||||
<view class="rank-content rank-content-backgound-color1" v-if="chartsList.length > 1">
|
||||
<image src="/static/images/charts/02.svg" class="crown1"></image>
|
||||
<image src="/static/images/charts/avator.png" class="top-avator"></image>
|
||||
<image v-if="chartsList[1].imgAddr" :src="chartsList[1].imgAddr" class="top-avator"></image>
|
||||
<image v-else src="/static/images/charts/avator.png" class="top-avator"></image>
|
||||
<view class="content1">top·2</view>
|
||||
<view class="content2">{{chartsList[1].userName}}</view>
|
||||
<view class="content3">{{chartsList[1].score}}</view>
|
||||
@@ -33,7 +34,8 @@
|
||||
</view>
|
||||
<view class="rank-content rank-content-backgound-color2" v-if="chartsList.length > 0">
|
||||
<image src="/static/images/charts/01.svg" class="crown2"></image>
|
||||
<image src="/static/images/charts/avator.png" class="top-avator"></image>
|
||||
<image v-if="chartsList[0].imgAddr" :src="chartsList[0].imgAddr" class="top-avator"></image>
|
||||
<image v-else src="/static/images/charts/avator.png" class="top-avator"></image>
|
||||
<view class="content11">top·1</view>
|
||||
<view class="content2">{{chartsList[0].userName}}</view>
|
||||
<view class="content33">{{chartsList[0].score}}</view>
|
||||
@@ -41,7 +43,8 @@
|
||||
</view>
|
||||
<view class="rank-content rank-content-backgound-color3" v-if="chartsList.length > 2">
|
||||
<image src="/static/images/charts/03.svg" class="crown3"></image>
|
||||
<image src="/static/images/charts/avator.png" class="top-avator"></image>
|
||||
<image v-if="chartsList[2].imgAddr" :src="chartsList[2].imgAddr" class="top-avator"></image>
|
||||
<image v-else src="/static/images/charts/avator.png" class="top-avator"></image>
|
||||
<view class="content111">top·3</view>
|
||||
<view class="content2">{{chartsList[2].userName}}</view>
|
||||
<view class="content333">{{chartsList[2].score}}</view>
|
||||
@@ -113,17 +116,18 @@
|
||||
</template>
|
||||
<!-- 自定义 body -->
|
||||
<template v-slot:body>
|
||||
<view style="width: 50%;text-align: center;">
|
||||
<image :src="item.imgAddr" class="avator"></image>
|
||||
<view style="width: 55%;text-align: center;margin-left: 10rpx;">
|
||||
<image v-if="item.imgAddr" :src="item.imgAddr" class="avator"></image>
|
||||
<image v-else src="/static/images/charts/avator.png" class="avator"></image>
|
||||
<view style="float: left;margin-left: 18rpx;">
|
||||
<view :class="item.userId == userId?'active-name':'name'">{{ item.userName }}</view>
|
||||
<view class="belong">{{ item.dept }}</view>
|
||||
<view style="width: 250rpx;text-align: left;margin-top: 10rpx;" class="belong">{{ item.dept }}</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<!-- 自定义 footer-->
|
||||
<template v-slot:footer>
|
||||
<text class="score-sty score-sty-footer">{{ item.score }}</text>
|
||||
<text style="text-align: center;" class="score-sty score-sty-footer">{{ item.score }}</text>
|
||||
</template>
|
||||
</uni-list-item>
|
||||
<view style="width: 100%;height: 200rpx;"></view>
|
||||
@@ -142,11 +146,12 @@
|
||||
</template>
|
||||
<!-- 自定义 body -->
|
||||
<template v-slot:body>
|
||||
<view style="width: 50%;text-align: center;">
|
||||
<image src="/static/images/charts/avator.png" class="avator"></image>
|
||||
<view style="width: 65%;text-align: center;margin-top: 30rpx;">
|
||||
<image v-if="myselfObj.imgAddr" :src="myselfObj.imgAddr" class="avator" style="margin-top: 4rpx;"></image>
|
||||
<image v-else src="/static/images/charts/avator.png" class="avator" style="margin-top: 4rpx;"></image>
|
||||
<view style="float: left;margin-left: 18rpx;">
|
||||
<view class="my-rank-name">{{myselfObj.userName}}</view>
|
||||
<view class="my-rank-belong">{{myselfObj.dept}}</view>
|
||||
<view style="width: 260rpx;text-align: left;margin-top: 5rpx;" class="my-rank-belong">{{myselfObj.dept}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
@@ -169,6 +174,7 @@
|
||||
getLeaderBoardCrsCntApi
|
||||
} from "@/api/leaderBoard.js"
|
||||
// 我的排行榜
|
||||
import { getUserInfo } from '@/common/common';
|
||||
import {
|
||||
reactive,
|
||||
ref,
|
||||
@@ -178,7 +184,7 @@
|
||||
watch
|
||||
} from 'vue';
|
||||
import common from '@/common/common';
|
||||
const userId = ("USER001");
|
||||
const userId = ref("");
|
||||
const itemIndex = ref(0);
|
||||
const learnTimeList = ref([])
|
||||
const practCntList = ref([])
|
||||
@@ -215,30 +221,33 @@
|
||||
itemIndex.value = 0;
|
||||
tabAct.value = index;
|
||||
tableLastName.value = item.name;
|
||||
if (tableLastName.value == '学习时长') {
|
||||
if (tableLastName.value.includes('学习时长') ) {
|
||||
tableLastName.value = '学习时长(h)'
|
||||
}
|
||||
if (tableLastName.value == '学习时长') {
|
||||
if (tableLastName.value.includes('学习时长')) {
|
||||
allChartsList.value = learnTimeList.value;
|
||||
chartsList.value = learnTimeList.value.annual.list || [];
|
||||
chartsList.value = learnTimeList.value.annual?learnTimeList.value.annual.list:[];
|
||||
myselfObj.value = allChartsList.value.annual?allChartsList.value.annual.self:{};
|
||||
myselfObj.value.score = allChartsList.value.annual.self.annlStdyTmLen;
|
||||
myselfObj.value.score = allChartsList.value.annual?allChartsList.value.annual.self.annlStdyTmLen:"";
|
||||
chartsList.value.forEach(item => item.score = item.annlStdyTmLen)
|
||||
} else if (tableLastName.value == '练习次数') {
|
||||
} else if (tableLastName.value == '练习次数') {
|
||||
allChartsList.value = practCntList.value;
|
||||
chartsList.value = practCntList.value.annual.list || [];
|
||||
chartsList.value = practCntList.value.annual?practCntList.value.annual.list:[];
|
||||
myselfObj.value = allChartsList.value.annual?allChartsList.value.annual.self:{};
|
||||
myselfObj.value.score = allChartsList.value.annual.self.annlPractCnt;
|
||||
myselfObj.value.score = allChartsList.value.annual?allChartsList.value.annual.self.annlPractCnt:"";
|
||||
chartsList.value.forEach(item => item.score = item.annlPractCnt);
|
||||
} else if (tableLastName.value == '考试次数') {
|
||||
allChartsList.value = examCntList.value;
|
||||
chartsList.value = examCntList.value.annual.list || [];
|
||||
chartsList.value = examCntList.value.annual?examCntList.value.annual.list:[];
|
||||
myselfObj.value = allChartsList.value.annual?allChartsList.value.annual.self:{};
|
||||
myselfObj.value.score = allChartsList.value.annual.self.annlExamCnt;
|
||||
myselfObj.value.score = allChartsList.value.annual?allChartsList.value.annual.self.annlExamCnt:"";
|
||||
chartsList.value.forEach(item => item.score = item.annlExamCnt);
|
||||
} else if (tableLastName.value == '通关课程数') {
|
||||
allChartsList.value = crsCntList.value;
|
||||
chartsList.value = crsCntList.value.annual.list || [];
|
||||
chartsList.value = crsCntList.value.annual?crsCntList.value.annual.list:[];
|
||||
myselfObj.value = allChartsList.value.annual?allChartsList.value.annual.self:{};
|
||||
myselfObj.value.score = allChartsList.value.annual.self.annlCrsCnt;
|
||||
myselfObj.value.score = allChartsList.value.annual?allChartsList.value.annual.self.annlCrsCnt:"";
|
||||
chartsList.value.forEach(item => item.score = item.annlCrsCnt);
|
||||
}
|
||||
if (chartsList.value.length > 3) {
|
||||
newChartsList.value = chartsList.value.slice(3).concat();
|
||||
@@ -266,11 +275,16 @@
|
||||
myselfObj.value.score = myselfObj.value.annlCrsCnt;
|
||||
}
|
||||
} else if (item.value == 'month') {
|
||||
console.log('month')
|
||||
chartsList.value = allChartsList.value.month ? allChartsList.value.month.list : [];
|
||||
myselfObj.value = allChartsList.value.month ? allChartsList.value.month.self : {};
|
||||
if (tableLastName.value == '学习时长') {
|
||||
console.log(chartsList.value,'chartsList.value')
|
||||
console.log(myselfObj.value,'myselfObj.value')
|
||||
if (tableLastName.value.includes('学习时长')) {
|
||||
chartsList.value.forEach(item => item.score = item.thisMonthStdyTmLen);
|
||||
myselfObj.value.score = myselfObj.value.thisMonthStdyTmLen;
|
||||
console.log(chartsList.value,'chartsList.valueMonth')
|
||||
console.log(myselfObj.value,'myselfObj.valueMonth')
|
||||
} else if (tableLastName.value == '练习次数') {
|
||||
chartsList.value.forEach(item => item.score = item.thisMonthPractCnt);
|
||||
myselfObj.value.score = myselfObj.value.thisMonthPractCnt;
|
||||
@@ -284,9 +298,11 @@
|
||||
} else if (item.value == 'week') {
|
||||
chartsList.value = allChartsList.value.week ? allChartsList.value.week.list : [];
|
||||
myselfObj.value = allChartsList.value.week ? allChartsList.value.week.self : {};
|
||||
if (tableLastName.value == '学习时长') {
|
||||
if (tableLastName.value.includes('学习时长')) {
|
||||
chartsList.value.forEach(item => item.score = item.thisWeekStdyTmLen);
|
||||
myselfObj.value.score = myselfObj.value.thisWeekStdyTmLen;
|
||||
console.log(chartsList.value,'chartsList.valueWeek')
|
||||
console.log(myselfObj.value,'myselfObj.valueWeek')
|
||||
} else if (tableLastName.value == '练习次数') {
|
||||
chartsList.value.forEach(item => item.score = item.thisWeekPractCnt);
|
||||
myselfObj.value.score = myselfObj.value.thisWeekPractCnt;
|
||||
@@ -298,91 +314,24 @@
|
||||
myselfObj.value.score = myselfObj.value.thisWeekCrsCnt;
|
||||
}
|
||||
}
|
||||
if (chartsList.value.length > 3) {
|
||||
newChartsList.value = chartsList.value.slice(3).concat();
|
||||
} else {
|
||||
newChartsList.value = chartsList.value;
|
||||
}
|
||||
}
|
||||
const userInfo = computed(() => getUserInfo())
|
||||
userId.value = userInfo.value.userId;
|
||||
console.log(userId.value,'userId')
|
||||
onMounted(() => {
|
||||
|
||||
//挡板数据代码
|
||||
// let tempList = {
|
||||
// annual: [{
|
||||
// userName: "江心",
|
||||
// score: 94,
|
||||
// dept: "吉林银行吉林分行",
|
||||
// userId: "USER001",
|
||||
// imgAddr: "/static/images/charts/avator.png"
|
||||
// },
|
||||
// {
|
||||
// userName: "李婉儿",
|
||||
// score: 98,
|
||||
// dept: "吉林银行吉林分行"
|
||||
// },
|
||||
// {
|
||||
// userName: "百里里",
|
||||
// score: 88,
|
||||
// dept: "吉林银行吉林分行"
|
||||
// },
|
||||
// {
|
||||
// userName: "黎明",
|
||||
// score: 94,
|
||||
// dept: "吉林银行吉林分行",
|
||||
// imgAddr: "/static/images/charts/avator.png"
|
||||
// },
|
||||
// {
|
||||
// userName: "张伟",
|
||||
// score: 91,
|
||||
// dept: "吉林银行吉林分行"
|
||||
// },
|
||||
// {
|
||||
// userName: "俞小凡",
|
||||
// score: 89,
|
||||
// dept: "吉林银行吉林分行",
|
||||
// imgAddr: "/static/images/charts/avator.png"
|
||||
// },
|
||||
// {
|
||||
// userName: "黎明",
|
||||
// score: 94,
|
||||
// dept: "吉林银行吉林分行"
|
||||
// },
|
||||
// {
|
||||
// userName: "张伟",
|
||||
// score: 91,
|
||||
// dept: "吉林银行吉林分行"
|
||||
// },
|
||||
// {
|
||||
// userName: "俞小凡",
|
||||
// score: 89,
|
||||
// dept: "吉林银行吉林分行"
|
||||
// },
|
||||
// {
|
||||
// userName: "江月心",
|
||||
// score: 10,
|
||||
// dept: "吉林银行吉林分行"
|
||||
// }
|
||||
// ]
|
||||
// }
|
||||
// learnTimeList.value = tempList;
|
||||
// allChartsList.value = learnTimeList.value;
|
||||
// chartsList.value = tempList.annual;
|
||||
// console.log(chartsList.value, '1111111')
|
||||
// chartsList.value.score = learnTimeList.value.annual.annlStdyTmLen;
|
||||
// console.log(chartsList.value, '222222')
|
||||
// myselfObj.value = chartsList.value.filter(item => item.userId == userId)
|
||||
// console.log(myselfObj.value, '3333')
|
||||
// if (chartsList.value.length > 3) {
|
||||
// newChartsList.value = chartsList.value.slice(3).concat();
|
||||
// } else {
|
||||
// newChartsList.value = chartsList.value;
|
||||
// }
|
||||
// console.log(learnTimeList.value, 'learnTimeList')
|
||||
//挡板数据代码
|
||||
console.log(myselfObj.value,'78787878')
|
||||
getLeaderBoardStdyTmApi().then(res => {
|
||||
console.log(res, 'getLeaderBoardStdyTmApi')
|
||||
learnTimeList.value = res.body || [];
|
||||
allChartsList.value = learnTimeList.value;
|
||||
chartsList.value = allChartsList.value.annual?allChartsList.value.annual.list:[];
|
||||
myselfObj.value = allChartsList.value.annual?allChartsList.value.annual.self:{};
|
||||
// chartsList.value[0].dept = "吉林银行吉林分行"
|
||||
// myselfObj.value.dept = "吉林银行吉林分行"
|
||||
chartsList.value[0].dept = "吉林银行吉林分行"
|
||||
myselfObj.value.dept = "吉林银行吉林分行"
|
||||
console.log(chartsList.value,'chartsList.value')
|
||||
console.log(myselfObj.value,myselfObj.value,'myselfObj.value')
|
||||
chartsList.value.forEach(item => item.score = item.annlStdyTmLen);
|
||||
@@ -862,7 +811,7 @@
|
||||
color: #0066FF;
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
margin-top: 15rpx
|
||||
margin-top: 20rpx
|
||||
}
|
||||
|
||||
.my-rank-name {
|
||||
|
||||
@@ -1,6 +1,17 @@
|
||||
<!-- type: 0,纯文本信息不翻译 1,语音回答 , 2 文本回答 3, 段落信息 4 问题信息 5 统计信息 6: 发送loading状态 7: 教师反馈文本不翻译 -->
|
||||
<!-- type:
|
||||
0,纯文本信息不翻译
|
||||
1,语音回答 ,
|
||||
2 文本回答
|
||||
3 段落信息
|
||||
4 问题信息
|
||||
5 统计信息
|
||||
6 发送loading状态
|
||||
7 教师反馈文本不翻译
|
||||
8 问题反馈信息
|
||||
-->
|
||||
<template>
|
||||
<view :class="['ai-answer', props.class]" :id="props.id" v-if="[3,4,5].indexOf(type) >= 0">
|
||||
<view :class="['ai-answer', props.class]" :id="props.id" v-if="[3,4,5,8].indexOf(type) >= 0">
|
||||
<!-- 头像信息 -->
|
||||
<view class="user-info">
|
||||
<view class="avatar-box">
|
||||
<ImagePreview class="img-box" :imgId="teacherInfo?.imgAddr"></ImagePreview>
|
||||
@@ -10,12 +21,16 @@
|
||||
<view class="ai-name-desc">{{teacherInfo?.teacherDesc}}</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 对话信息 -->
|
||||
<view :class="['talking-info', [4].indexOf(type) >= 0 ? 'talking-info-less':''] ">
|
||||
<!-- 语音加载状态 -->
|
||||
<view :class="['talking-gif', !voiceLoading && (activeVoiceId === dataInfo.id)?'is-play':'']" v-if="type !== 5">
|
||||
<CommonLoading color="#06f" v-show="voiceLoading"/>
|
||||
</view>
|
||||
<view class="talking-cont">
|
||||
<!-- 加载状态 -->
|
||||
<CommonLoading color="#06f" v-show="dataInfo.isLoading"/>
|
||||
<!-- 题干/段落内容 -->
|
||||
<text class="talking-text" v-if="[3, 5, 6].indexOf(type) >= 0 && !dataInfo.isLoading">
|
||||
{{ showContent }}
|
||||
</text>
|
||||
@@ -23,24 +38,32 @@
|
||||
<!-- 请您思考并作答:<br> -->
|
||||
{{ showContent }}
|
||||
</text>
|
||||
<RadioSubject v-if="[4].indexOf(type) >= 0 && dataInfo.qnsTyp !== 'ES'" :item="dataInfo" :mode="mode" @subject_click="subject_click" />
|
||||
<!-- 试题问题 -->
|
||||
<RadioSubject v-if="[4].indexOf(type) >= 0 && dataInfo.qnsTyp !== 'ES'" :isPreview="!isLast" :item="dataInfo" :mode="mode" @subject_click="subject_click" />
|
||||
<!-- 试题问题反馈 -->
|
||||
<!-- <RadioSubjectRequest v-if="[8].indexOf(type) >= 0 && dataInfo.qnsTyp !== 'ES'" :item="dataInfo" :mode="mode" @subject_click="subject_click" /> -->
|
||||
<!-- 段落图片视频预览 -->
|
||||
<view v-if="type === 3" style="overflow: hidden;">
|
||||
<ImagePreview class="cont-img-box" v-if="(dataInfo.imageAddrs||[]).length>0" :imgId="dataInfo.imageAddrs[0]" :previewDetail="true"></ImagePreview>
|
||||
<VideoPreview class="cont-img-box" v-if="(dataInfo.vidoAddrs||[]).length>0" :fileId="dataInfo.vidoAddrs[0]"></VideoPreview>
|
||||
</view>
|
||||
<!-- 维度信息预览 -->
|
||||
<view v-if="type === 5 && !dataInfo.isLoading" style="padding-top: 16rpx;">
|
||||
<ChartFour v-if="dataInfo.evalDimens.length === 4" :dataList="dataInfo.evalDimens" :score="dataInfo.intrctGrade"/>
|
||||
<ChartThree v-if="dataInfo.evalDimens.length === 3" :dataList="dataInfo.evalDimens" :score="dataInfo.intrctGrade"/>
|
||||
<ChartFive v-if="dataInfo.evalDimens.length === 5" :dataList="dataInfo.evalDimens" :score="dataInfo.intrctGrade"/>
|
||||
</view>
|
||||
<view v-if="type === 3 && dataInfo.knoExampie " style="overflow: hidden;">
|
||||
<!-- 举例预览 -->
|
||||
<view class="talking-text" v-if="type === 3 && dataInfo.knoExampie " style="overflow: hidden;">
|
||||
举例:{{ dataInfo.knoExampie }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="btns-cont" v-show="!dataInfo.isLoading">
|
||||
<view class="replay-btn" @click.stop="restartPlay" v-if="!([5].indexOf(type) >= 0)">
|
||||
<!-- 重新回答 -->
|
||||
<view class="replay-btn" @click.stop="restartPlay" v-if="!([5, 8].indexOf(type) >= 0)">
|
||||
<image class="icon" src="@/static/images/course/replay.png" style="width: 100%;height: 100%;"></image>
|
||||
</view>
|
||||
<!-- 停止回答 -->
|
||||
<view class="play-btn" v-if="!([5].indexOf(type) >= 0)">
|
||||
<image
|
||||
class="icon"
|
||||
@@ -58,7 +81,7 @@
|
||||
></image>
|
||||
</view>
|
||||
<view class="next-learn-btn"
|
||||
v-if="showNextBtn && [5].indexOf(type) >= 0 && isLast"
|
||||
v-if="showNextBtn && [5,8].indexOf(type) >= 0 && isLast"
|
||||
@click.stop="goOnRestartPrgh"
|
||||
>
|
||||
重新学
|
||||
@@ -66,7 +89,7 @@
|
||||
</view>
|
||||
<view
|
||||
class="next-learn-btn restart"
|
||||
v-if="showNextBtn && [5].indexOf(type) >= 0 && isLast"
|
||||
v-if="showNextBtn && [5,8].indexOf(type) >= 0 && isLast"
|
||||
@click.stop="goOnRestart"
|
||||
>
|
||||
重新答
|
||||
@@ -74,7 +97,7 @@
|
||||
</view>
|
||||
<view
|
||||
class="replay-study-btn next-learn-btn"
|
||||
v-if="showNextBtn && [5].indexOf(type) >= 0 && isLast && dataInfo.passStat === 'PS'"
|
||||
v-if="showNextBtn && [5,8].indexOf(type) >= 0 && isLast && (dataInfo.passStat === 'PS' || dataInfo.judgeResult === 'P')"
|
||||
@click.stop="goOnGetQues"
|
||||
>
|
||||
继续学
|
||||
@@ -83,6 +106,7 @@
|
||||
<view class="next-btn" @click.stop="goOnGetQues" v-if="showGoonBtn">继续
|
||||
<image class="icon icon-iamge" src="@/static/images/course/goon.png" ></image></view>
|
||||
</view>
|
||||
<!-- 解析信息 -->
|
||||
<view class="talking-cont last-cont" v-if=" [5].indexOf(type) >= 0 && !dataInfo.isLoading">
|
||||
<view class="talking-text">
|
||||
{{ changeBr(dataInfo.suggestContent || '--') }}
|
||||
@@ -90,6 +114,7 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- ai回答 -->
|
||||
<view :class="['ai-answer', props.class]" :id="props.id" v-if="[7].indexOf(type) >= 0">
|
||||
<view class="user-info">
|
||||
<view class="avatar-box">
|
||||
@@ -108,6 +133,7 @@
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<!-- 用户对话 -->
|
||||
<view :class="['user-answer', props.class]" :id="props.id" v-else-if="[1, 2].indexOf(type) >= 0">
|
||||
<view class="user-info">
|
||||
<view class="avatar-box">
|
||||
@@ -201,6 +227,7 @@ import { useStorageStore } from "@/store/storage.js"
|
||||
import { onUnload } from '@dcloudio/uni-app'
|
||||
|
||||
import RadioSubject from '@/components/examination/radio-subject.vue'
|
||||
// import RadioSubjectRequest from '@/pages/wrong_question_record/components/radio-subject.vue'
|
||||
|
||||
const storageStore = useStorageStore()
|
||||
const audioCacheObj = computed(() => storageStore.audioObj)
|
||||
@@ -513,7 +540,7 @@ const audioCacheObj = computed(() => storageStore.audioObj)
|
||||
// 答题 选择
|
||||
const subject_click = (type,data) => {
|
||||
if(type === 'answer'){
|
||||
emit('answerQuestion', data)
|
||||
emit('answerQuestion', data, unref(dataInfo))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -832,8 +832,49 @@ const withdrawNow = (data) => {
|
||||
})
|
||||
}
|
||||
const loadingQstLogId = ref('')
|
||||
const answerQuestionNow = (data) => {
|
||||
console.log(data,1111111111)
|
||||
const answerQuestionNow = (data, item) => {
|
||||
// 发出答案
|
||||
let _answer = data.answerItems.map(t=>t.itemNo).join(',')
|
||||
let _id1 = new Date().getTime() + '3d'
|
||||
talkingList.value.push({
|
||||
id: _id1,
|
||||
talkingContent: _answer,
|
||||
userInfo: {...choiceTeacherInfo.value},
|
||||
type: 0
|
||||
})
|
||||
scrollToBottomNow(0)
|
||||
let _data = {
|
||||
qnsId: item.qnsId,// 问题ID 必输项:true 类型:String
|
||||
pgrphId: item.pgrphId,// 段落ID 必输项:true 类型:String
|
||||
crsId: crsId.value,// 课程ID 必输项:true 类型:String
|
||||
stdyBatch: stdyBatch.value,// 学习批次 必输项:true 类型:String
|
||||
ansterContent: data.answer.join(',') // 回答文本内容 必输项:false 类型:String
|
||||
}
|
||||
textChartApi({
|
||||
processType: 'ANSER-CHOICE',
|
||||
requestBody: JSON.stringify(_data)
|
||||
}).then(res=>{
|
||||
let _id = new Date().getTime() + 'id'
|
||||
let _body = res.body
|
||||
lastTalkingInfo.value = {
|
||||
crsId: crsId.value,
|
||||
stdyId: unref(stdyId),
|
||||
stdyBatch: unref(stdyBatch),
|
||||
logId: unref(logId),
|
||||
pgrphId: item.pgrphId,
|
||||
qnsId: item.qnsId,
|
||||
chatContent: _body.chatContent||'',
|
||||
...(_body.chatBody||{}),
|
||||
type: Number(_body.bodyTyp || 8),
|
||||
userInfo: {...choiceTeacherInfo.value},
|
||||
id: _id,
|
||||
isQuestion: true,
|
||||
my_answer:[],
|
||||
backend_answer: []
|
||||
}
|
||||
talkingList.value.push(lastTalkingInfo.value)
|
||||
scrollToBottomNow(0)
|
||||
})
|
||||
}
|
||||
// 完成
|
||||
const finishQuestionNow = (data) => {
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
<view class="mr-10">已学</view>
|
||||
<view class="c-000">{{ form.styParaGraphNum || 0 }}</view>
|
||||
</view>
|
||||
<view class="num-item examination">
|
||||
<view class="num-item examination" @click="common.navigateTo('/pages/examRanking/index?crsId=' + crsId)">
|
||||
<image
|
||||
class="title-icon"
|
||||
src="/src/static/images/courseDetail/charts.png"
|
||||
|
||||
@@ -1,6 +1,61 @@
|
||||
<template>
|
||||
<view>
|
||||
|
||||
<view class="exam-ranking">
|
||||
<image src="@/static/images/examRanking/bg.png" mode="aspectFit" class="bg-box"></image>
|
||||
<view class="ranking-box">
|
||||
|
||||
<view class="nav-div">
|
||||
<view class="back_div">
|
||||
<view class="back-icon"></view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="title-view">
|
||||
<!-- <view class="title-info">考试排行榜</view> -->
|
||||
<image class="title-image" src="@/static/images/examRanking/title.png" mode="aspectFit"></image>
|
||||
<view class="title-desc">吾日三省吾身,传不习乎?</view>
|
||||
<image class="cup-image" src="@/static/images/examRanking/cup.png" mode="aspectFit"></image>
|
||||
|
||||
</view>
|
||||
<view class="ranking-body">
|
||||
<view class="list-header list-item">
|
||||
<view class="rank-column">排名</view>
|
||||
<view class="user-column">用户名/所属机构</view>
|
||||
<view class="score-column">最高分</view>
|
||||
</view>
|
||||
<scroll-view :scroll-y="true" class="scroll-items-view">
|
||||
<view v-for="(item,index) in 60" :class="['list-item', 'item-'+(index+1)]">
|
||||
<view class="rank-column">
|
||||
{{index + 1}}
|
||||
</view>
|
||||
<view class="user-column">
|
||||
<view class="avatar-box">
|
||||
<image-preview class="avatar-image" :imgId="item" mode="aspectFit"></image-preview>
|
||||
</view>
|
||||
<view class="user-name">{{'李想'}}</view>
|
||||
<view class="user-org">{{'吉林银行白城分行'}}</view>
|
||||
</view>
|
||||
<view class="score-column">{{100 - index}}</view>
|
||||
</view>
|
||||
</scroll-view>
|
||||
</view>
|
||||
<view class="ranking-self">
|
||||
<view class="list-header list-item">
|
||||
<view class="rank-column">我的排名</view>
|
||||
</view>
|
||||
<view class="list-item item-me">
|
||||
<view class="rank-column">
|
||||
{{21}}
|
||||
</view>
|
||||
<view class="user-column">
|
||||
<view class="avatar-box">
|
||||
<image-preview class="avatar-image" :imgId="item" mode="aspectFit"></image-preview>
|
||||
</view>
|
||||
<view class="user-name">{{'李想'}}</view>
|
||||
<view class="user-org">{{'吉林银行白城分行'}}</view>
|
||||
</view>
|
||||
<view class="score-column">{{22}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -8,15 +63,272 @@
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
|
||||
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
<style scoped lang="scss">
|
||||
$top-height: var(--status-bar-height);
|
||||
|
||||
</style>
|
||||
.exam-ranking {
|
||||
position: relative;
|
||||
height: 100vh;
|
||||
width: 100vw;
|
||||
overflow: hidden;
|
||||
box-sizing: border-box;
|
||||
padding-top: $top-height;
|
||||
|
||||
// background:url(@/static/images/examRanking/bg.png) no-repeat top center;
|
||||
.bg-box {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100vw;
|
||||
height: 412rpx;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.ranking-box {
|
||||
height: calc(100% - $top-height);
|
||||
overflow: hidden;
|
||||
position: absolute;
|
||||
top: $top-height;
|
||||
width: 100%;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.nav-div {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
height: 70rpx;
|
||||
|
||||
.back_div {
|
||||
margin-right: 10rpx;
|
||||
position: absolute;
|
||||
left: 25rpx;
|
||||
top: 0;
|
||||
padding: 15rpx;
|
||||
|
||||
.back-icon {
|
||||
position: relative;
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.back-icon::before,
|
||||
.back-icon::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
.back-icon::after {
|
||||
top: 25%;
|
||||
left: 25%;
|
||||
width: 40%;
|
||||
height: 40%;
|
||||
border-top: 4rpx solid #000;
|
||||
border-left: 4rpx solid #000;
|
||||
transform: rotate(-45deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.title-view {
|
||||
height: 180rpx;
|
||||
position: relative;
|
||||
padding-left: 79rpx;
|
||||
padding-top: 20rpx;
|
||||
|
||||
.cup-image {
|
||||
position: absolute;
|
||||
right: 90rpx;
|
||||
bottom: 0;
|
||||
width: 178rpx;
|
||||
height: 159rpx;
|
||||
}
|
||||
|
||||
.title-desc {
|
||||
color: #666;
|
||||
line-height: 34rpx;
|
||||
font-size: 25rpx;
|
||||
}
|
||||
|
||||
.title-image {
|
||||
width: 308rpx;
|
||||
height: 88rpx;
|
||||
}
|
||||
}
|
||||
|
||||
.ranking-body {
|
||||
height: calc(100% - 170rpx - 180rpx - 70rpx);
|
||||
overflow: hidden;
|
||||
background-color: #fff;
|
||||
border-radius: 31rpx 31rpx 0 0;
|
||||
padding-top: 20rpx;
|
||||
box-sizing: border-box;
|
||||
.scroll-items-view{
|
||||
height: calc(100% - 54rpx);
|
||||
}
|
||||
}
|
||||
|
||||
.list-item {
|
||||
height: 108rpx;
|
||||
border-bottom: 2rpx solid #efefef;
|
||||
overflow: hidden;
|
||||
|
||||
&.list-header {
|
||||
height: 54rpx;
|
||||
line-height: 54rpx;
|
||||
color: #999;
|
||||
font-size: 25rpx;
|
||||
border-bottom: 0;
|
||||
.rank-column {
|
||||
height: 54rpx;
|
||||
line-height: 54rpx;
|
||||
color: #999;
|
||||
font-weight: normal;
|
||||
font-size: 25rpx;
|
||||
font-style: initial;
|
||||
text-indent: 0;
|
||||
}
|
||||
.user-column {
|
||||
padding: 0;
|
||||
}
|
||||
.score-column {
|
||||
line-height: 54rpx;
|
||||
color: #999;
|
||||
font-weight: normal;
|
||||
font-size: 25rpx;
|
||||
}
|
||||
}
|
||||
|
||||
&.item-1 {
|
||||
border-bottom: 0;
|
||||
margin-bottom: 8rpx;
|
||||
background: linear-gradient(90deg, #fbf9f5 0%, #fffffd 100%);
|
||||
.rank-column{
|
||||
color: #ffffff00;
|
||||
background: url(@/static/images/examRanking/no-1.png) no-repeat ;
|
||||
background-position: 40rpx center;
|
||||
background-size: 44rpx 66rpx;
|
||||
text-indent: 8rpx;
|
||||
}
|
||||
}
|
||||
|
||||
&.item-2 {
|
||||
border-bottom: 0;
|
||||
margin-bottom: 8rpx;
|
||||
background: linear-gradient(90deg, #f4f8f9 0%, #f7fbfe 100%);
|
||||
.rank-column{
|
||||
color: #ffffff00;
|
||||
background: url(@/static/images/examRanking/no-2.png) no-repeat ;
|
||||
background-position: 40rpx center;
|
||||
background-size: 44rpx 66rpx;
|
||||
text-indent: 8rpx;
|
||||
}
|
||||
}
|
||||
|
||||
&.item-3 {
|
||||
border-bottom: 0;
|
||||
margin-bottom: 8rpx;
|
||||
background: linear-gradient(90deg, #faf6f5 0%, #fcfbfc 100%);
|
||||
.rank-column{
|
||||
color: #ffffff00;
|
||||
background: url(@/static/images/examRanking/no-3.png) no-repeat ;
|
||||
background-position: 40rpx center;
|
||||
background-size: 44rpx 66rpx;
|
||||
text-indent: 8rpx;
|
||||
}
|
||||
}
|
||||
|
||||
&.item-me{
|
||||
border-bottom: 0;
|
||||
.rank-column {
|
||||
color: #06f;
|
||||
}
|
||||
}
|
||||
|
||||
.rank-column {
|
||||
width: 170rpx;
|
||||
padding-left: 40rpx;
|
||||
float: left;
|
||||
font-weight: 600;
|
||||
line-height: 92rpx;
|
||||
height: 108rpx;
|
||||
color: #333;
|
||||
font-size: 38rpx;
|
||||
font-style: italic;
|
||||
text-indent: 8rpx;
|
||||
}
|
||||
|
||||
.user-column {
|
||||
width: 450rpx;
|
||||
float: left;
|
||||
padding: 15rpx 0;
|
||||
|
||||
.avatar-box{
|
||||
width: 77rpx;
|
||||
height: 77rpx;
|
||||
overflow: hidden;
|
||||
float: left;
|
||||
background-color: #eee;
|
||||
border-radius: 50%;
|
||||
.avatar-image{
|
||||
width: 77rpx;
|
||||
height: 77rpx;
|
||||
}
|
||||
}
|
||||
.user-name{
|
||||
float: left;
|
||||
width: calc(100% - 77rpx);
|
||||
padding-left: 18rpx;
|
||||
padding-right: 18rpx;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
height: 40rpx;
|
||||
line-height: 40rpx;
|
||||
font-size: 29rpx;
|
||||
color: #000;
|
||||
font-weight: 500;
|
||||
}
|
||||
.user-org{
|
||||
float: left;
|
||||
width: calc(100% - 77rpx);
|
||||
padding-left: 18rpx;
|
||||
padding-right: 18rpx;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
height: 34rpx;
|
||||
line-height: 34rpx;
|
||||
font-size: 25rpx;
|
||||
color: #999;
|
||||
}
|
||||
}
|
||||
|
||||
.score-column {
|
||||
width: 75rpx;
|
||||
text-align: right;
|
||||
float: left;
|
||||
font-weight: 600;
|
||||
line-height: 108rpx;
|
||||
color: #333;
|
||||
font-size: 31rpx;
|
||||
}
|
||||
}
|
||||
.ranking-self {
|
||||
height: 170rpx;
|
||||
overflow: hidden;
|
||||
background-color: #f5f9ff;
|
||||
padding-top: 4rpx;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -17,6 +17,15 @@
|
||||
"titleNView": false
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"path": "pages/charts/index",
|
||||
"style": {
|
||||
"navigationBarTitleText": "",
|
||||
"app-plus": {
|
||||
"titleNView": false
|
||||
}
|
||||
}
|
||||
},
|
||||
]
|
||||
}
|
||||
|
After Width: | Height: | Size: 122 KiB |
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 5.6 KiB |