|
@@ -288,12 +288,13 @@
|
|
|
label="学习中心"
|
|
|
sortable
|
|
|
></el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="updateTime"
|
|
|
- width="168"
|
|
|
- label="更新时间"
|
|
|
- sortable
|
|
|
- ></el-table-column>
|
|
|
+ <el-table-column width="168" label="更新时间" sortable>
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button @click="gotoOperateLog(scope.row.id)" type="text">{{
|
|
|
+ scope.row.updateTime
|
|
|
+ }}</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column width="50" label="状态">
|
|
|
<span slot-scope="scope">
|
|
|
<span v-if="scope.row.enable">
|
|
@@ -613,6 +614,80 @@
|
|
|
>
|
|
|
<img :src="photo.url" height="100%" width="100%" />
|
|
|
</el-dialog>
|
|
|
+
|
|
|
+ <el-dialog
|
|
|
+ title="学生日志"
|
|
|
+ width="60%"
|
|
|
+ :visible.sync="stuLogDialog"
|
|
|
+ v-loading="studentLog.loading"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ element-loading-text="拼命加载中"
|
|
|
+ >
|
|
|
+ <!-- 表单 -->
|
|
|
+ <el-form inline :model="studentLog.formSearch">
|
|
|
+ <el-form-item label="操作内容">
|
|
|
+ <el-input
|
|
|
+ placeholder="请输入操作内容"
|
|
|
+ v-model="studentLog.formSearch.operate"
|
|
|
+ style="width: 180px"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="操作时间">
|
|
|
+ <el-date-picker
|
|
|
+ class="input"
|
|
|
+ v-model="studentLog.timeRange"
|
|
|
+ type="datetimerange"
|
|
|
+ start-placeholder="开始日期"
|
|
|
+ range-separator="至"
|
|
|
+ end-placeholder="结束日期"
|
|
|
+ value-format="yyyy/MM/dd HH:mm:ss"
|
|
|
+ :clearable="false"
|
|
|
+ size="small"
|
|
|
+ @change="changeTimeRange"
|
|
|
+ ></el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button
|
|
|
+ size="small"
|
|
|
+ type="primary"
|
|
|
+ icon="el-icon-search"
|
|
|
+ @click="loghandleSearchBtn"
|
|
|
+ >
|
|
|
+ 查询
|
|
|
+ </el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+
|
|
|
+ <div class="block-seperator"></div>
|
|
|
+ <!-- 页面列表 -->
|
|
|
+ <el-table
|
|
|
+ :data="studentLog.tableData"
|
|
|
+ border
|
|
|
+ resizable
|
|
|
+ stripe
|
|
|
+ style="width: 100%;"
|
|
|
+ >
|
|
|
+ <el-table-column width="200" prop="operateTime" label="操作时间">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column width="200" prop="operateIp" label="IP">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column width="200" prop="operateClient" label="操作端">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column prop="operate" label="操作内容"> </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <div class="page pull-right">
|
|
|
+ <el-pagination
|
|
|
+ v-if="studentLog.paginationShow"
|
|
|
+ @current-change="loghandleCurrentChange"
|
|
|
+ :current-page="studentLog.currentPage"
|
|
|
+ :page-size="studentLog.pageSize"
|
|
|
+ :page-sizes="[10, 20, 50, 100, 200, 300]"
|
|
|
+ @size-change="loghandleSizeChange"
|
|
|
+ layout="total, sizes, prev, pager, next, jumper"
|
|
|
+ :total="studentLog.total"
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</div>
|
|
|
</section>
|
|
@@ -622,7 +697,8 @@
|
|
|
import {
|
|
|
CORE_API,
|
|
|
EXAM_WORK_API,
|
|
|
- EXCHANGE_API
|
|
|
+ EXCHANGE_API,
|
|
|
+ REPORTS_API
|
|
|
} from "@/constants/constants.js";
|
|
|
import { mapState } from "vuex";
|
|
|
|
|
@@ -678,6 +754,7 @@ export default {
|
|
|
pageSize: 10,
|
|
|
total: 10,
|
|
|
photoDialog: false,
|
|
|
+ stuLogDialog: false,
|
|
|
photo: { url: "" },
|
|
|
|
|
|
unbindStudentCodeDialog: false,
|
|
@@ -726,7 +803,21 @@ export default {
|
|
|
},
|
|
|
examStageDisabled4Search: true,
|
|
|
queryExamStages4SearchLoading: false,
|
|
|
- examStageList4Search: []
|
|
|
+ examStageList4Search: [],
|
|
|
+ studentLog: {
|
|
|
+ loading: false,
|
|
|
+ timeRange: [],
|
|
|
+ paginationShow: false,
|
|
|
+ formSearch: {
|
|
|
+ studentId: "",
|
|
|
+ startTime: null,
|
|
|
+ endTime: null
|
|
|
+ },
|
|
|
+ tableData: [],
|
|
|
+ currentPage: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ total: 10
|
|
|
+ }
|
|
|
};
|
|
|
},
|
|
|
computed: {
|
|
@@ -750,6 +841,58 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
+ gotoOperateLog(studentId) {
|
|
|
+ this.studentLog.formSearch.studentId = studentId;
|
|
|
+ this.studentLog.tableData = [];
|
|
|
+ this.studentLog.total = 0;
|
|
|
+ this.studentLog.currentPage = 1;
|
|
|
+ this.stuLogDialog = true;
|
|
|
+ this.logsearchForm();
|
|
|
+ },
|
|
|
+ changeTimeRange(e) {
|
|
|
+ if (e && e.length > 0) {
|
|
|
+ this.studentLog.formSearch.startTime = e[0];
|
|
|
+ this.studentLog.formSearch.endTime = e[1];
|
|
|
+ } else {
|
|
|
+ this.studentLog.formSearch.startTime = "";
|
|
|
+ this.studentLog.formSearch.endTime = "";
|
|
|
+ }
|
|
|
+ },
|
|
|
+ loghandleSearchBtn() {
|
|
|
+ this.studentLog.currentPage = 1;
|
|
|
+ this.logsearchForm();
|
|
|
+ },
|
|
|
+ loghandleSizeChange(val) {
|
|
|
+ this.studentLog.pageSize = val;
|
|
|
+ this.studentLog.currentPage = 1;
|
|
|
+ this.logsearchForm();
|
|
|
+ },
|
|
|
+ loghandleCurrentChange(val) {
|
|
|
+ this.studentLog.currentPage = val;
|
|
|
+ this.logsearchForm();
|
|
|
+ },
|
|
|
+ //查询
|
|
|
+ logsearchForm() {
|
|
|
+ this.studentLog.loading = true;
|
|
|
+ var url =
|
|
|
+ REPORTS_API +
|
|
|
+ "/studentOperate/page/" +
|
|
|
+ this.studentLog.currentPage +
|
|
|
+ "/" +
|
|
|
+ this.studentLog.pageSize;
|
|
|
+ this.$httpWithMsg
|
|
|
+ .get(url, { params: this.studentLog.formSearch })
|
|
|
+ .then(response => {
|
|
|
+ this.studentLog.tableData = response.data.list;
|
|
|
+ this.studentLog.total = response.data.total;
|
|
|
+ this.studentLog.loading = false;
|
|
|
+
|
|
|
+ this.$nextTick(function() {
|
|
|
+ this.studentLog.paginationShow = true;
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .finally(() => (this.studentLog.loading = false));
|
|
|
+ },
|
|
|
resetPasswordByOrgId() {
|
|
|
this.orgList4RestPassword = [];
|
|
|
this.resetPasswordByOrgIdForm.orgId = null;
|