|
@@ -0,0 +1,336 @@
|
|
|
|
+<!-- -->
|
|
|
|
+<template>
|
|
|
|
+ <div class="m-container">
|
|
|
|
+ <h2>
|
|
|
|
+ <div class="squrt"></div>课外作业
|
|
|
|
+ </h2>
|
|
|
|
+ <div class="m-core">
|
|
|
|
+ <el-form :inline="true" :model="searchForm">
|
|
|
|
+ <el-form-item>
|
|
|
|
+ <el-input
|
|
|
|
+ v-model.trim="searchForm.search"
|
|
|
|
+ @keyup.enter.native="search"
|
|
|
|
+ placeholder="请输入标题 学生姓名"
|
|
|
|
+ ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <!-- <el-form-item>
|
|
|
|
+ <el-select placeholder="老师姓名" v-model="searchForm.teacherId" clearable filterable>
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="(item,index) in teacherList"
|
|
|
|
+ :label="item.realName"
|
|
|
|
+ :value="item.id"
|
|
|
|
+ :key="index"
|
|
|
|
+ ></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>-->
|
|
|
|
+ <el-form-item>
|
|
|
|
+ <el-date-picker
|
|
|
|
+ v-model.trim="searchForm.timer"
|
|
|
|
+ style="width:410px;"
|
|
|
|
+ type="daterange"
|
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
|
+ range-separator="至"
|
|
|
|
+ start-placeholder="开始日期"
|
|
|
|
+ end-placeholder="结束日期"
|
|
|
|
+ ></el-date-picker>
|
|
|
|
+ </el-form-item>
|
|
|
|
+
|
|
|
|
+ <!-- <el-form-item>
|
|
|
|
+ <el-select placeholder="是否提交" v-model="searchForm.hasReport" clearable>
|
|
|
|
+ <el-option label="是" value="1"></el-option>
|
|
|
|
+ <el-option label="否" value="0"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item>
|
|
|
|
+ <el-select placeholder="是否回复" v-model="searchForm.hasReport" clearable>
|
|
|
|
+ <el-option label="是" value="1"></el-option>
|
|
|
|
+ <el-option label="否" value="0"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>-->
|
|
|
|
+ <el-form-item>
|
|
|
|
+ <el-button type="danger" @click="search">搜索</el-button>
|
|
|
|
+ <el-button @click="onReSet" type="primary">重置</el-button>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ <div class="tableWrap">
|
|
|
|
+ <el-table
|
|
|
|
+ style="width: 100%"
|
|
|
|
+ :header-cell-style="{background:'#EDEEF0',color:'#444'}"
|
|
|
|
+ :data="tableList"
|
|
|
|
+ >
|
|
|
|
+ <el-table-column align="center" prop="createTime" label="布置时间"></el-table-column>
|
|
|
|
+ <el-table-column align="center" prop="title" label="训练标题">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <div>
|
|
|
|
+ <div
|
|
|
|
+ v-if="scope.row.extracurricularExercises"
|
|
|
|
+ >{{scope.row.extracurricularExercises.title}}</div>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column align="center" prop="createTime" label="学生姓名">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <div>
|
|
|
|
+ <div v-if="scope.row.user">{{scope.row.user.username}}</div>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column align="center" label="提交状态">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <div>{{scope.row.status?'是':'否'}}</div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column align="center" prop="isReplied" label="是否提交">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <div>{{scope.row.isReplied?'是':'否'}}</div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <el-table-column align="center" prop="isView" label="是否回复">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <div>{{scope.row.isView?'是':'否'}}</div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ <!-- <el-table-column align="center" prop="teacherName" label="老师姓名">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <div v-if="scope.row.extracurricularExercises&&scope.row.extracurricularExercises.teacher">{{scope.row.extracurricularExercises.teacher.username}}</div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>-->
|
|
|
|
+ <el-table-column align="center" label="操作">
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
+ <div>
|
|
|
|
+ <el-button type="text" @click="lookDetail(scope.row)">查看</el-button>
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </el-table-column>
|
|
|
|
+ </el-table>
|
|
|
|
+ <pagination
|
|
|
|
+ :total="rules.total"
|
|
|
|
+ :page.sync="rules.page"
|
|
|
|
+ :limit.sync="rules.limit"
|
|
|
|
+ :page-sizes="rules.page_size"
|
|
|
|
+ @pagination="getList"
|
|
|
|
+ />
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ <el-dialog title="课外训练详情" :visible.sync="afterSchoolVisible" width="600px">
|
|
|
|
+ <el-form :model="visibleForm">
|
|
|
|
+ <!-- <el-form-item label="结束时间">
|
|
|
|
+ <p class="schoolCell">{{visibleForm.expiryDate}}</p>
|
|
|
|
+ </el-form-item>-->
|
|
|
|
+ <el-form-item label="老师姓名">
|
|
|
|
+ <p class="schoolCell">{{visibleForm.teacherName}}</p>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="学生姓名">
|
|
|
|
+ <el-popover
|
|
|
|
+ placement="top-start"
|
|
|
|
+ width="400"
|
|
|
|
+ trigger="hover"
|
|
|
|
+ :content="visibleForm.studentName"
|
|
|
|
+ >
|
|
|
|
+ <p class="schoolCell" slot="reference">{{visibleForm.studentName}}</p>
|
|
|
|
+ </el-popover>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="截止时间">
|
|
|
|
+ <p class="schoolCell">{{visibleForm.expiryDate}}</p>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="训练标题">
|
|
|
|
+ <p class="schoolCell">{{visibleForm.title}}</p>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="训练内容">
|
|
|
|
+ <el-input
|
|
|
|
+ disabled
|
|
|
|
+ type="textarea"
|
|
|
|
+ rows="5"
|
|
|
|
+ v-model="visibleForm.content"
|
|
|
|
+ style="width:400px"
|
|
|
|
+ ></el-input>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="学生上传" v-for="(item,index) in visibleForm.attachments" :key="index">
|
|
|
|
+ <p class="schoolCell" @click="lookWork(item)">点击播放</p>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ </el-dialog>
|
|
|
|
+ <el-dialog title="查看作业" width="680px" append-to-body :visible.sync="workVisible">
|
|
|
|
+ <!-- activeUrl -->
|
|
|
|
+ <video
|
|
|
|
+ style="width:640px;"
|
|
|
|
+ :src="activeSrc"
|
|
|
|
+ ref="dialogVideo"
|
|
|
|
+ controls="controls"
|
|
|
|
+ >您的浏览器不支持视频播放</video>
|
|
|
|
+ </el-dialog>
|
|
|
|
+ </div>
|
|
|
|
+</template>
|
|
|
|
+
|
|
|
|
+<script>
|
|
|
|
+import pagination from "@/components/Pagination/index";
|
|
|
|
+import {
|
|
|
|
+ extracurricularExercisesReply,
|
|
|
|
+ findStudentExtraExerciseDetail
|
|
|
|
+} from "@/api/afterSchool";
|
|
|
|
+import { getTeacher } from "@/api/buildTeam";
|
|
|
|
+export default {
|
|
|
|
+ components: { pagination },
|
|
|
|
+ data() {
|
|
|
|
+ return {
|
|
|
|
+ searchForm: {
|
|
|
|
+ search: null,
|
|
|
|
+ timer: [],
|
|
|
|
+ teacherId: null,
|
|
|
|
+ hasReport: null,
|
|
|
|
+ isView: null
|
|
|
|
+ },
|
|
|
|
+ rules: {
|
|
|
|
+ // 分页规则
|
|
|
|
+ limit: 10, // 限制显示条数
|
|
|
|
+ page: 1, // 当前页
|
|
|
|
+ total: 0, // 总条数
|
|
|
|
+ page_size: [10, 20, 40, 50] // 选择限制显示条数
|
|
|
|
+ },
|
|
|
|
+ teacherList: [],
|
|
|
|
+ tableList: [],
|
|
|
|
+ visibleForm: {
|
|
|
|
+ expiryDate: "啦啦啦啦",
|
|
|
|
+ teacherName: "",
|
|
|
|
+ title: "",
|
|
|
|
+ studentName: "",
|
|
|
|
+ content: "",
|
|
|
|
+ attachments: []
|
|
|
|
+ },
|
|
|
|
+ afterSchoolVisible: false,
|
|
|
|
+ workVisible: false,
|
|
|
|
+ activeSrc: "",
|
|
|
|
+ extracurricularExercisesId: "",
|
|
|
|
+ Fsearch:null,
|
|
|
|
+ Frules:null
|
|
|
|
+ };
|
|
|
|
+ },
|
|
|
|
+ //生命周期 - 创建完成(可以访问当前this实例)
|
|
|
|
+ created() {},
|
|
|
|
+ //生命周期 - 挂载完成(可以访问DOM元素)
|
|
|
|
+ mounted() {
|
|
|
|
+ getTeacher().then(res => {
|
|
|
|
+ if (res.code == 200) {
|
|
|
|
+ this.teacherList = res.data;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ this.init();
|
|
|
|
+ },
|
|
|
|
+ activated() {
|
|
|
|
+ this.init();
|
|
|
|
+ },
|
|
|
|
+ methods: {
|
|
|
|
+ init() {
|
|
|
|
+ // var now = new Date();
|
|
|
|
+ // var startDate = new Date(
|
|
|
|
+ // Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
|
|
|
|
+ // )
|
|
|
|
+ // .toISOString()
|
|
|
|
+ // .slice(0, 10);
|
|
|
|
+ // // + " 00:00:00" + " 23:59:59"
|
|
|
|
+ // var endDate = new Date(
|
|
|
|
+ // Date.UTC(now.getFullYear(), now.getMonth(), now.getDate())
|
|
|
|
+ // )
|
|
|
|
+ // .toISOString()
|
|
|
|
+ // .slice(0, 10);
|
|
|
|
+ // this.searchForm.timer = [];
|
|
|
|
+ // this.searchForm.timer.push(startDate);
|
|
|
|
+ // this.searchForm.timer.push(endDate);
|
|
|
|
+ if (this.$route.query.search) {
|
|
|
|
+ this.Fsearch = this.$route.query.search;
|
|
|
|
+ }
|
|
|
|
+ if (this.$route.query.rules) {
|
|
|
|
+ this.Frules = this.$route.query.rules
|
|
|
|
+ }
|
|
|
|
+ this.extracurricularExercisesId =
|
|
|
|
+ this.$route.query.extracurricularExercisesId || null;
|
|
|
|
+ this.getList();
|
|
|
|
+ },
|
|
|
|
+ getList() {
|
|
|
|
+ // assignStartTime assignEndTime page search teacherId title
|
|
|
|
+ let obj = {};
|
|
|
|
+ if (this.searchForm.timer && this.searchForm.timer.length > 0) {
|
|
|
|
+ obj.submitStartTime = this.searchForm.timer[0];
|
|
|
|
+ obj.submitEndTime = this.searchForm.timer[1];
|
|
|
|
+ }
|
|
|
|
+ obj.page = this.rules.page;
|
|
|
|
+ (obj.rows = this.rules.limit),
|
|
|
|
+ this.searchForm.teacherId
|
|
|
|
+ ? (obj.teacherId = this.searchForm.teacherId)
|
|
|
|
+ : null;
|
|
|
|
+ this.searchForm.search ? (obj.search = this.searchForm.search) : null;
|
|
|
|
+ this.extracurricularExercisesId
|
|
|
|
+ ? (obj.extracurricularExercisesId = this.extracurricularExercisesId)
|
|
|
|
+ : null;
|
|
|
|
+ extracurricularExercisesReply(obj).then(res => {
|
|
|
|
+ if (res.code == 200) {
|
|
|
|
+ this.tableList = res.data.rows;
|
|
|
|
+ this.rules.total = res.data.total;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ search() {
|
|
|
|
+ this.rules.page = 1;
|
|
|
|
+ this.getList();
|
|
|
|
+ },
|
|
|
|
+ onReSet() {
|
|
|
|
+ this.searchForm = {
|
|
|
|
+ search: null,
|
|
|
|
+ timer: [],
|
|
|
|
+ teacherId: null,
|
|
|
|
+ hasReport: null,
|
|
|
|
+ isView: null,
|
|
|
|
+
|
|
|
|
+ };
|
|
|
|
+ this.extracurricularExercisesId = null;
|
|
|
|
+ this.getList();
|
|
|
|
+ },
|
|
|
|
+ lookDetail(row) {
|
|
|
|
+ // this.afterSchoolVisible = true;
|
|
|
|
+ // console.log(row)
|
|
|
|
+ findStudentExtraExerciseDetail({
|
|
|
|
+ studentExerciseId: row.extracurricularExercisesId
|
|
|
|
+ }).then(res => {
|
|
|
|
+ if (res.code == 200) {
|
|
|
|
+ this.visibleForm = {
|
|
|
|
+ expiryDate: res.data.expiryDate,
|
|
|
|
+ teacherName: res.data.teacherName,
|
|
|
|
+ title: row.extracurricularExercises.title,
|
|
|
|
+ studentName: res.data.studentName,
|
|
|
|
+ content: res.data.content,
|
|
|
|
+ attachments: res.data.attachments.split(",")
|
|
|
|
+ };
|
|
|
|
+ // console.log(this.visibleForm)
|
|
|
|
+ this.afterSchoolVisible = true;
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+ },
|
|
|
|
+ lookWork(src) {
|
|
|
|
+ this.activeSrc = src;
|
|
|
|
+ this.workVisible = true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+};
|
|
|
|
+</script>
|
|
|
|
+<style lang='scss' scoped>
|
|
|
|
+.schoolCell {
|
|
|
|
+ width: 400px;
|
|
|
|
+ color: #333;
|
|
|
|
+ background-color: #f5f7fa;
|
|
|
|
+ border-color: #e4e7ed;
|
|
|
|
+ height: 40px;
|
|
|
|
+ line-height: 40px;
|
|
|
|
+ outline: 0;
|
|
|
|
+ padding: 0 15px;
|
|
|
|
+ border-radius: 4px;
|
|
|
|
+ border: 1px solid #dcdfe6;
|
|
|
|
+ display: inline-block;
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
+ white-space: nowrap;
|
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
+ overflow: hidden;
|
|
|
|
+}
|
|
|
|
+/deep/.el-textarea.is-disabled .el-textarea__inner {
|
|
|
|
+ color: #333;
|
|
|
|
+}
|
|
|
|
+</style>
|