This commit is contained in:
2024-10-12 09:39:25 +08:00
parent df9cbdba57
commit 5f028efbe0
2 changed files with 72 additions and 52 deletions
@@ -245,7 +245,7 @@ public class QuestionAnswerRankingServiceImpl extends BaseServiceImpl<QuestionUs
Cnd cnd = Cnd.NEW();
cnd.and("qus.questionId", "=", questionId);
cnd.groupBy("qus.answerDate", "qus.userId");
cnd.asc("qus.answerDate").asc("u.unionid").asc("u.id");
cnd.desc("qus.score").asc("qus.takeTime").asc("u.unionid").asc("u.id");
if (question.getCalcScoreMode() == 1) {
cnd.and("qus.score", "in", Sqls.create("select max(score) from question_user_score where userId = qus.userId and questionId = qus.questionId and answerDate = qus.answerDate"));
} else if (question.getCalcScoreMode() == 2) {
@@ -434,7 +434,7 @@ public class QuestionAnswerRankingServiceImpl extends BaseServiceImpl<QuestionUs
for (NutMap nutMap : list) {
int takeTime = nutMap.getInt("takeTime", 0);
String time = DateUtil.secondToTime(takeTime);
nutMap.put("takeTime",time);
nutMap.put("takeTime", time);
}
ExportParams exportParams = new ExportParams();
@@ -3,7 +3,8 @@ layout("/layouts/platform.html"){
#-->
<script src="https://cdn-go.cn/cdn/vod-js-sdk-v6/latest/vod-js-sdk-v6.js"></script>
<link href="https://web.sdk.qcloud.com/player/tcplayer/release/v4.3.0/tcplayer.min.css" rel="stylesheet"/>
<link href="https://web.sdk.qcloud.com/player/tcplayer/release/v4.3.0/tcplayer.min.css"
rel="stylesheet"/>
<!--如果需要在 Chrome 和 Firefox 等现代浏览器中通过 H5 播放 HLS 格式的视频,需要在 tcplayer.vx.x.x.min.js 之前引入 hls.min.x.xx.xm.js。-->
<script src="https://web.sdk.qcloud.com/player/tcplayer/release/v4.3.0/libs/hls.min.0.13.2m.js"></script>
<!--播放器脚本文件-->
@@ -36,64 +37,71 @@ layout("/layouts/platform.html"){
</style>
<div id="app" v-cloak>
<guava ref="guava" :v.sync="pageStatus">
<guava :v.sync="pageStatus" ref="guava">
<el-card shadow="never">
<div class="btn-group tool-button mt5">
<el-select v-model="pageForm.albumId" placeholder="请选择专辑" filterable clearable @change="doSearch">
<el-select @change="doSearch" clearable filterable placeholder="请选择专辑"
v-model="pageForm.albumId">
<el-option
v-for="item in albumList"
:key="item.id"
:label="item.title"
:value="item.id">
:value="item.id"
v-for="item in albumList">
</el-option>
</el-select>
</div>
<div class="btn-group tool-button mt5">
<el-input placeholder="请输入内容" v-model="pageForm.searchKeyword" clearable @keyup.enter.native="doSearch">
<el-select v-model="pageForm.searchName" slot="prepend" placeholder="查询类型" style="width: 120px;">
<el-input @keyup.enter.native="doSearch" clearable placeholder="请输入内容"
v-model="pageForm.searchKeyword">
<el-select placeholder="查询类型" slot="prepend" style="width: 120px;"
v-model="pageForm.searchName">
<el-option label="标题" value="tev.title"></el-option>
</el-select>
</el-input>
</div>
<div class="btn-group tool-button mt5">
<el-button type="primary" icon="el-icon-search" @click="doSearch">搜索</el-button>
<el-button @click="doSearch" icon="el-icon-search" type="primary">搜索</el-button>
</div>
<div class="pull-right offscreen-right mt5">
<el-button type="primary" @click="openAdd">
<el-button @click="openAdd" type="primary">
<i class="ti-plus"></i>
上传视频
</el-button>
</div>
</el-card>
<el-card shadow="never" class="mt10">
<table-tool label="视频列表" :app="this"></table-tool>
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder" style="width: 100%">
<el-table-column type="index" label="序号" width="80px"></el-table-column>
<el-card class="mt10" shadow="never">
<table-tool :app="this" label="视频列表"></table-tool>
<el-table :data="tableData" :size="tableSize" @sort-change="pageOrder"
style="width: 100%">
<el-table-column label="序号" type="index" width="80px"></el-table-column>
<el-table-column
align="center"
header-align="center"
v-for="column in tableColumns"
show-overflow-tooltip
:label="column.label"
:prop="column.prop"
:sortable="column.sortable"
align="center"
header-align="center"
show-overflow-tooltip
v-for="column in tableColumns"
>
<template v-if="column.prop==='disabled'" scope="{row}">
<template scope="{row}" v-if="column.prop==='disabled'">
<span v-if="row.disabled"><i class="el-icon-error text-error"></i> 禁用</span>
<span v-else><i class="el-icon-success text-success"></i> 启用</span>
</template>
</el-table-column>
<el-table-column align="center" header-align="center" label="操作" width="250">
<el-table-column align="center" header-align="center" label="操作" width="400">
<template scope="{row}">
<el-button size="small" @click="openView(row)">查看</el-button>
<el-button size="small" type="primary" @click="openEdit(row)">编辑</el-button>
<el-button size="small" type="danger" @click="doDelete(row.id)">删除</el-button>
<el-button @click="openCode(row)" size="small" type="primary">生成二维码
</el-button>
<el-button @click="openView(row)" size="small" type="primary">查看</el-button>
<el-button @click="openEdit(row)" size="small" type="primary">编辑</el-button>
<el-button @click="doDelete(row.id)" size="small" type="danger">删除
</el-button>
</template>
</el-table-column>
</el-table>
@@ -101,15 +109,15 @@ layout("/layouts/platform.html"){
</el-card>
<template #edit>
<el-form :model="formData" :rules="rules" ref="ruleForm" label-width="150px">
<el-form :model="formData" :rules="rules" label-width="150px" ref="ruleForm">
<el-form-item label="所属专辑" prop="albumId">
<el-select v-model="formData.albumId" placeholder="请选择专辑" style="width: 100%">
<el-select placeholder="请选择专辑" style="width: 100%" v-model="formData.albumId">
<el-option
v-for="item in albumList"
:key="item.id"
:label="item.title"
:value="item.id">
:value="item.id"
v-for="item in albumList">
</el-option>
</el-select>
<div class="text-primary">{{videoTypeTips}}</div>
@@ -119,65 +127,68 @@ layout("/layouts/platform.html"){
<el-input v-model="formData.title"></el-input>
</el-form-item>
<el-form-item label="上传文件" prop="url" class="upload-form-item">
<wp-upload ref="uploadForm"
:upload-auto="false"
:size="1024*500"
@on-select="selectFile"
:allow-files="['mp4']"
:max-file-number="1"
show-model="list"
<el-form-item class="upload-form-item" label="上传文件" prop="url">
<wp-upload :allow-files="['mp4']"
:file-list="fileList"
:max-file-number="1"
:size="1024*500"
:upload-auto="false"
@on-select="selectFile"
ref="uploadForm"
show-model="list"
type="single"></wp-upload>
<div class="el-upload__tip">请上传格式为mp4的视频文件,且不超过200M</div>
</el-form-item>
<el-form-item label="排序编号" prop="sortNo">
<el-input-number :min="1" :max="128" v-model="formData.sortNo"></el-input-number>
<el-input-number :max="128" :min="1"
v-model="formData.sortNo"></el-input-number>
</el-form-item>
<el-form-item label="每天最多观看次数" prop="everyDayMaxWatchNum">
<el-input-number :min="1" :max="100" v-model="formData.everyDayMaxWatchNum"></el-input-number>
<el-input-number :max="100" :min="1"
v-model="formData.everyDayMaxWatchNum"></el-input-number>
</el-form-item>
<el-form-item label="合格/达标次数" prop="qualifiedNum">
<el-input-number :min="1" :max="1000" v-model="formData.qualifiedNum"></el-input-number>
<el-input-number :max="1000" :min="1"
v-model="formData.qualifiedNum"></el-input-number>
</el-form-item>
<el-form-item label="开始时间" prop="startDate">
<el-date-picker
v-model="formData.startDate"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
style="width: 100%;">
style="width: 100%;"
type="date"
v-model="formData.startDate"
value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
<el-form-item label="结束时间" prop="endDate">
<el-date-picker
v-model="formData.endDate"
type="date"
placeholder="选择日期"
value-format="yyyy-MM-dd"
style="width: 100%;">
style="width: 100%;"
type="date"
v-model="formData.endDate"
value-format="yyyy-MM-dd">
</el-date-picker>
</el-form-item>
<el-form-item label="是否启用" prop="disabled">
<el-switch
v-model="formData.disabled"
:active-value="false"
:inactive-value="true"
active-color="#13ce66"
inactive-color="#ff4949">
inactive-color="#ff4949"
v-model="formData.disabled">
</el-switch>
</el-form-item>
</el-form>
<el-row class="mt20 text-right">
<el-button @click="$refs.guava.index()">取消</el-button>
<el-button type="primary" @click="doHandle">确定</el-button>
<el-button @click="doHandle" type="primary">确定</el-button>
</el-row>
</template>
@@ -199,15 +210,18 @@ layout("/layouts/platform.html"){
</template>
</guava>
<el-dialog title="视频" :visible.sync="playDialogVisible" width="60%" close-on-click-modal="false">
<el-dialog :visible.sync="playDialogVisible" close-on-click-modal="false" title="视频"
width="60%">
<h1 class="video-title">
<span>{{viewData.albumTitle + '-' + viewData.title}}</span>
</h1>
<video id="player-container-id" height="600" preload="auto" playsinline
<video height="600" id="player-container-id" playsinline preload="auto"
webkit-playsinline>
</video>
</el-dialog>
<open-qr-code ref="openQRCode"></open-qr-code>
</div>
@@ -277,7 +291,13 @@ layout("/layouts/platform.html"){
}
}
},
components: {
'open-qr-code': httpVueLoader('/components/plugins/OpenQRCode.vue'),
},
methods: {
openCode() {
this.$refs.openQRCode.openCode("/mobile/trainEducation/index")
},
openAdd() {
this.$refs['guava'].edit()
if (this.$refs.uploadForm) {