|
@@ -3,71 +3,14 @@
|
|
|
<div class="part-box part-box-filter">
|
|
|
<el-form ref="FilterForm" label-position="left" label-width="85px" inline>
|
|
|
<template v-if="checkPrivilege('condition', 'condition')">
|
|
|
- <el-form-item label="学期:">
|
|
|
- <semester-select
|
|
|
- v-model="filter.semesterId"
|
|
|
- placeholder="学期"
|
|
|
- ></semester-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="档案:">
|
|
|
- <archives-select
|
|
|
- v-model="filter.paperArchivesId"
|
|
|
- :semester-id="filter.semesterId"
|
|
|
- semester-strict
|
|
|
- placeholder="档案"
|
|
|
- >
|
|
|
- </archives-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="课程:">
|
|
|
- <course-select v-model="filter.courseCode" placeholder="请选择课程">
|
|
|
- </course-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="任务名称:">
|
|
|
- <el-input
|
|
|
- style="width: 180px"
|
|
|
- v-model.trim="filter.scanTaskName"
|
|
|
- placeholder="任务名称"
|
|
|
- clearable
|
|
|
- ></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="扫描员:">
|
|
|
- <el-input
|
|
|
- style="width: 180px"
|
|
|
- v-model.trim="filter.scanUser"
|
|
|
- placeholder="扫描员"
|
|
|
- clearable
|
|
|
- ></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="校验员:">
|
|
|
- <el-input
|
|
|
- style="width: 180px"
|
|
|
- v-model.trim="filter.checkUser"
|
|
|
- placeholder="校验员"
|
|
|
- clearable
|
|
|
- ></el-input>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="绑定进度范围:">
|
|
|
- <el-input-number
|
|
|
- v-model="filter.smallerProgress"
|
|
|
- style="width: 84px"
|
|
|
- :min="0"
|
|
|
- :max="100"
|
|
|
- :step="1"
|
|
|
- step-strictly
|
|
|
- :controls="false"
|
|
|
- placeholder="最小进度"
|
|
|
- ></el-input-number>
|
|
|
- <span>~</span>
|
|
|
- <el-input-number
|
|
|
- v-model="filter.largerProgress"
|
|
|
- style="width: 84px"
|
|
|
- :min="0"
|
|
|
- :max="100"
|
|
|
- :step="1"
|
|
|
- step-strictly
|
|
|
- :controls="false"
|
|
|
- placeholder="最大进度"
|
|
|
- ></el-input-number>
|
|
|
+ <sec-select
|
|
|
+ v-model="filter"
|
|
|
+ defaultSelectExam
|
|
|
+ @exam-default="toPage(1)"
|
|
|
+ ></sec-select>
|
|
|
+ <el-form-item label="班级:">
|
|
|
+ <teach-clazz-select v-model="filter.clazz" placeholder="请选择班级">
|
|
|
+ </teach-clazz-select>
|
|
|
</el-form-item>
|
|
|
</template>
|
|
|
|
|
@@ -104,76 +47,30 @@
|
|
|
@click="viewResult"
|
|
|
>导入结果</el-button
|
|
|
>
|
|
|
- <el-button
|
|
|
- v-if="checkPrivilege('button', 'add')"
|
|
|
- type="primary"
|
|
|
- @click="toAddTask"
|
|
|
- >新增任务</el-button
|
|
|
- >
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="part-box part-box-pad">
|
|
|
- <el-table
|
|
|
- ref="TableList"
|
|
|
- :data="taskList"
|
|
|
- @selection-change="handleSelectionChange"
|
|
|
- >
|
|
|
- <el-table-column
|
|
|
- type="selection"
|
|
|
- width="55"
|
|
|
- align="center"
|
|
|
- ></el-table-column>
|
|
|
- <el-table-column prop="scanTaskName" label="任务名称"></el-table-column>
|
|
|
- <el-table-column
|
|
|
- prop="paperScanTaskId"
|
|
|
- label="任务ID"
|
|
|
- width="180"
|
|
|
- ></el-table-column>
|
|
|
+ <el-table ref="TableList" :data="taskList">
|
|
|
<el-table-column
|
|
|
- prop="archivesName"
|
|
|
- label="档案名称"
|
|
|
- width="120"
|
|
|
+ type="index"
|
|
|
+ label="序号"
|
|
|
+ width="70"
|
|
|
+ :index="indexMethod"
|
|
|
></el-table-column>
|
|
|
+ <el-table-column prop="semesterName" label="学期"></el-table-column>
|
|
|
+ <el-table-column prop="examName" label="考试"></el-table-column>
|
|
|
<el-table-column
|
|
|
- prop="archivesCode"
|
|
|
- label="档案编号"
|
|
|
- width="180"
|
|
|
+ prop="courseCodeName"
|
|
|
+ label="课程名称(代码)"
|
|
|
></el-table-column>
|
|
|
- <el-table-column prop="courseName" label="课程" min-width="180">
|
|
|
- <span slot-scope="scope"
|
|
|
- >{{ scope.row.courseName }}({{ scope.row.courseCode }})</span
|
|
|
- >
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="studentCount" label="考生数" width="110">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="scanCount" label="扫描量(份)" width="110">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="bindCount" label="绑定量(份)" width="110">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="abnormalCount" label="异常量(份)" width="110">
|
|
|
- </el-table-column>
|
|
|
- <el-table-column prop="scanUserName" label="扫描员" width="120">
|
|
|
+
|
|
|
+ <el-table-column prop="studentCount" label="考生总数" width="110">
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="checkUserName" label="校验员" width="120">
|
|
|
+ <el-table-column prop="scanCount" label="已扫人数" width="110">
|
|
|
</el-table-column>
|
|
|
- <el-table-column
|
|
|
- class-name="action-column"
|
|
|
- label="绑定进度"
|
|
|
- width="80"
|
|
|
- fixed="right"
|
|
|
- >
|
|
|
- <template slot-scope="scope">
|
|
|
- <el-button
|
|
|
- v-if="checkPrivilege('link', 'ProgressDetail')"
|
|
|
- class="btn-primary"
|
|
|
- type="text"
|
|
|
- @click="toShowProgress(scope.row)"
|
|
|
- >
|
|
|
- <span class="cont-link">{{ scope.row.bindProgress || 0 }}%</span>
|
|
|
- </el-button>
|
|
|
- </template>
|
|
|
+ <el-table-column prop="bindCount" label="已扫张数" width="110">
|
|
|
</el-table-column>
|
|
|
<el-table-column
|
|
|
class-name="action-column"
|
|
@@ -189,13 +86,6 @@
|
|
|
@click="toDetail(scope.row)"
|
|
|
>查看详情</el-button
|
|
|
>
|
|
|
- <el-button
|
|
|
- v-if="checkPrivilege('link', 'delete')"
|
|
|
- class="btn-danger"
|
|
|
- type="text"
|
|
|
- @click="toDelete(scope.row)"
|
|
|
- >删除</el-button
|
|
|
- >
|
|
|
<el-button
|
|
|
v-if="checkPrivilege('link', 'ClearScanData')"
|
|
|
class="btn-danger"
|
|
@@ -203,13 +93,6 @@
|
|
|
@click="toClear(scope.row)"
|
|
|
>清除数据</el-button
|
|
|
>
|
|
|
- <el-button
|
|
|
- v-if="checkPrivilege('link', 'UnbindScanner')"
|
|
|
- class="btn-danger"
|
|
|
- type="text"
|
|
|
- @click="toUnbind(scope.row)"
|
|
|
- >解绑扫描员</el-button
|
|
|
- >
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
@@ -226,105 +109,30 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
- <!-- ImportTask -->
|
|
|
- <import-file
|
|
|
- v-if="checkPrivilege('button', 'import')"
|
|
|
- ref="ImportTask"
|
|
|
- title="导入任务"
|
|
|
- :upload-url="uploadUrl"
|
|
|
- :upload-data="uploadData"
|
|
|
- :format="['xls', 'xlsx']"
|
|
|
- :auto-upload="false"
|
|
|
- :before-submit-handle="submitImport"
|
|
|
- @upload-success="uploadSuccess"
|
|
|
- >
|
|
|
- <el-form
|
|
|
- ref="modalFormComp"
|
|
|
- :model="modalForm"
|
|
|
- :rules="rules"
|
|
|
- label-width="90px"
|
|
|
- >
|
|
|
- <el-form-item label="模板下载:">
|
|
|
- <a class="cont-link" :href="downloadUrl" :download="dfilename">{{
|
|
|
- dfilename
|
|
|
- }}</a>
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="学期:">
|
|
|
- <semester-select
|
|
|
- v-model="modalForm.semesterId"
|
|
|
- placeholder="学期"
|
|
|
- ></semester-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item prop="paperArchivesId" label="所属档案:">
|
|
|
- <archives-select
|
|
|
- style="width: 100%"
|
|
|
- v-model="modalForm.paperArchivesId"
|
|
|
- placeholder="请选择所属档案"
|
|
|
- semester-strict
|
|
|
- :semester-id="modalForm.semesterId"
|
|
|
- >
|
|
|
- </archives-select>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- </import-file>
|
|
|
- <!-- LibraryStateDialog -->
|
|
|
- <library-state-dialog ref="LibraryStateDialog" :task="curRow">
|
|
|
- </library-state-dialog>
|
|
|
<!-- ScanTaskDetailDialog -->
|
|
|
<scan-task-detail-dialog
|
|
|
ref="ScanTaskDetailDialog"
|
|
|
:task="curRow"
|
|
|
></scan-task-detail-dialog>
|
|
|
- <!-- DataTaskDialog -->
|
|
|
- <data-task-dialog
|
|
|
- v-if="checkPrivilege('button', 'import')"
|
|
|
- ref="DataTaskDialog"
|
|
|
- task-type="PAPER_SCAN_TASK_IMPORT"
|
|
|
- ></data-task-dialog>
|
|
|
- <!-- ModifyScanTask -->
|
|
|
- <modify-scan-task
|
|
|
- v-if="checkPrivilege('button', 'add')"
|
|
|
- ref="ModifyScanTask"
|
|
|
- :instance="curRow"
|
|
|
- @modified="getList"
|
|
|
- ></modify-scan-task>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import {
|
|
|
- scanTaskListPage,
|
|
|
- deleteScanTask,
|
|
|
- clearScanTaskData,
|
|
|
- unbindScanTaskUser,
|
|
|
-} from "../api";
|
|
|
-import ImportFile from "../../../components/ImportFile.vue";
|
|
|
-import LibraryStateDialog from "../components/LibraryStateDialog.vue";
|
|
|
+import { scanTaskListPage, clearScanTaskData } from "../api";
|
|
|
import ScanTaskDetailDialog from "../components/ScanTaskDetailDialog.vue";
|
|
|
-import DataTaskDialog from "../../base/components/DataTaskDialog.vue";
|
|
|
-import ModifyScanTask from "../components/ModifyScanTask.vue";
|
|
|
|
|
|
export default {
|
|
|
name: "scan-task-manage",
|
|
|
components: {
|
|
|
- ImportFile,
|
|
|
- LibraryStateDialog,
|
|
|
ScanTaskDetailDialog,
|
|
|
- DataTaskDialog,
|
|
|
- ModifyScanTask,
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
filter: {
|
|
|
semesterId: "",
|
|
|
- paperArchivesId: "",
|
|
|
+ examId: "",
|
|
|
courseCode: "",
|
|
|
- scanTaskName: "",
|
|
|
- scanUser: "",
|
|
|
- checkUser: "",
|
|
|
- smallerProgress: undefined,
|
|
|
- largerProgress: undefined,
|
|
|
+ clazz: "",
|
|
|
},
|
|
|
current: 1,
|
|
|
size: this.GLOBAL.pageSize,
|
|
@@ -333,29 +141,6 @@ export default {
|
|
|
taskList: [],
|
|
|
curRow: {},
|
|
|
loading: false,
|
|
|
- userId: this.$ls.get("user", { id: "" }).id,
|
|
|
- // import-task
|
|
|
- modalForm: { paperArchivesId: "", semesterId: "" },
|
|
|
- rules: {
|
|
|
- semesterId: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: "请选择学期",
|
|
|
- trigger: "change",
|
|
|
- },
|
|
|
- ],
|
|
|
- paperArchivesId: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- message: "请选择所属档案",
|
|
|
- trigger: "change",
|
|
|
- },
|
|
|
- ],
|
|
|
- },
|
|
|
- uploadData: {},
|
|
|
- uploadUrl: "/api/admin/paper/scan_task/scan_task_import",
|
|
|
- downloadUrl: "/temps/scanTaskTemplate.xlsx",
|
|
|
- dfilename: "扫描任务导入模板.xlsx",
|
|
|
};
|
|
|
},
|
|
|
mounted() {
|
|
@@ -365,15 +150,6 @@ export default {
|
|
|
async getList() {
|
|
|
if (!this.checkPrivilege("list", "list")) return;
|
|
|
|
|
|
- if (
|
|
|
- this.filter.smallerProgress &&
|
|
|
- this.filter.largerProgress &&
|
|
|
- this.filter.smallerProgress > this.filter.largerProgress
|
|
|
- ) {
|
|
|
- this.$message.error("最小进度不能大于最大进度");
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
const datas = {
|
|
|
...this.filter,
|
|
|
pageNumber: this.current,
|
|
@@ -387,49 +163,10 @@ export default {
|
|
|
this.current = page;
|
|
|
this.getList();
|
|
|
},
|
|
|
- handleSelectionChange(val) {
|
|
|
- this.multipleSelection = val.map((item) => item.paperScanTaskId);
|
|
|
- },
|
|
|
toDetail(row) {
|
|
|
this.curRow = row;
|
|
|
this.$refs.ScanTaskDetailDialog.open();
|
|
|
},
|
|
|
- toShowProgress(row) {
|
|
|
- this.curRow = row;
|
|
|
- this.$refs.LibraryStateDialog.open();
|
|
|
- },
|
|
|
- toImportTask() {
|
|
|
- this.$refs.ImportTask.open();
|
|
|
- },
|
|
|
- async batchDelete() {
|
|
|
- if (!this.multipleSelection.length) {
|
|
|
- this.$message.error("请选择要删除的数据");
|
|
|
- return;
|
|
|
- }
|
|
|
- const res = await this.$confirm(`确定要删除选中的这些任务吗?`, "提示", {
|
|
|
- type: "warning",
|
|
|
- }).catch(() => {});
|
|
|
- if (res !== "confirm") return;
|
|
|
-
|
|
|
- await deleteScanTask(this.multipleSelection);
|
|
|
- this.$message.success("操作成功!");
|
|
|
- this.deletePageLastItem(this.multipleSelection.length);
|
|
|
- this.multipleSelection = [];
|
|
|
- },
|
|
|
- async toDelete(row) {
|
|
|
- const res = await this.$confirm(
|
|
|
- `确定要删除任务【${row.scanTaskName}】吗??`,
|
|
|
- "提示",
|
|
|
- {
|
|
|
- type: "warning",
|
|
|
- }
|
|
|
- ).catch(() => {});
|
|
|
- if (res !== "confirm") return;
|
|
|
-
|
|
|
- await deleteScanTask([row.paperScanTaskId]);
|
|
|
- this.$message.success("操作成功!");
|
|
|
- this.deletePageLastItem();
|
|
|
- },
|
|
|
async toClear(row) {
|
|
|
const res = await this.$confirm(`确认要清除当前任务已扫描数据?`, "提示", {
|
|
|
type: "warning",
|
|
@@ -440,31 +177,6 @@ export default {
|
|
|
this.$message.success("操作成功!");
|
|
|
this.getList();
|
|
|
},
|
|
|
- async toUnbind(row) {
|
|
|
- const res = await this.$confirm(`确定要解绑当前任务的扫描员吗?`, "提示", {
|
|
|
- type: "warning",
|
|
|
- }).catch(() => {});
|
|
|
- if (res !== "confirm") return;
|
|
|
-
|
|
|
- await unbindScanTaskUser(row.paperScanTaskId);
|
|
|
- this.$message.success("操作成功!");
|
|
|
- this.getList();
|
|
|
- },
|
|
|
- // import
|
|
|
- async submitImport() {
|
|
|
- this.uploadData = { ...this.modalForm };
|
|
|
- return this.$refs.modalFormComp.validate();
|
|
|
- },
|
|
|
- uploadSuccess() {
|
|
|
- this.$message.success("任务提交成功,结果请在导入结果中查看!");
|
|
|
- },
|
|
|
- viewResult() {
|
|
|
- this.$refs.DataTaskDialog.open();
|
|
|
- },
|
|
|
- toAddTask() {
|
|
|
- this.curRow = {};
|
|
|
- this.$refs.ModifyScanTask.open();
|
|
|
- },
|
|
|
},
|
|
|
};
|
|
|
</script>
|