|
@@ -31,13 +31,16 @@
|
|
|
value-format="timestamp"
|
|
|
align="right"
|
|
|
unlink-panels
|
|
|
+ @change="timeChange"
|
|
|
>
|
|
|
</el-date-picker>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
</div>
|
|
|
- <div class="part-box">
|
|
|
- <el-button type="primary" @click="toAdd">增加考试对象</el-button>
|
|
|
+ <div class="part-box part-box-pad part-box-border">
|
|
|
+ <el-button class="mb-2" type="primary" @click="toAdd"
|
|
|
+ >增加考试对象</el-button
|
|
|
+ >
|
|
|
<el-table ref="TableList" :data="tableData" border stripe>
|
|
|
<el-table-column
|
|
|
type="index"
|
|
@@ -49,7 +52,7 @@
|
|
|
<el-table-column prop="examPlace" label="考点"> </el-table-column>
|
|
|
<el-table-column prop="invigilatorTeacher" label="监考老师">
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="clazzName" label="考试对象"> </el-table-column>
|
|
|
+ <el-table-column prop="className" label="考试对象"> </el-table-column>
|
|
|
<el-table-column prop="studentCount" label="人数"> </el-table-column>
|
|
|
<el-table-column prop="printHouseName" label="印刷室">
|
|
|
</el-table-column>
|
|
@@ -59,7 +62,7 @@
|
|
|
:label="item.name"
|
|
|
>
|
|
|
<div slot-scope="scope">
|
|
|
- {{ scope.row[item.code] }}
|
|
|
+ {{ scope.row.extends[item.code] }}
|
|
|
</div>
|
|
|
</el-table-column>
|
|
|
<el-table-column label="操作">
|
|
@@ -74,14 +77,14 @@
|
|
|
<el-button
|
|
|
class="btn-table-icon"
|
|
|
type="text"
|
|
|
- icon="icon icon-circle-right"
|
|
|
+ icon="icon icon-edit"
|
|
|
@click="toEdit(scope.row)"
|
|
|
title="编辑"
|
|
|
></el-button>
|
|
|
<el-button
|
|
|
class="btn-table-icon"
|
|
|
type="text"
|
|
|
- icon="icon icon-circle-right"
|
|
|
+ icon="icon icon-delete"
|
|
|
@click="toDelete(scope.row)"
|
|
|
title="删除"
|
|
|
></el-button>
|
|
@@ -107,7 +110,7 @@
|
|
|
<create-print-task
|
|
|
ref="CreatePrintTask"
|
|
|
:instance="curRow"
|
|
|
- :clazz="validClazzes"
|
|
|
+ :clazzs="clazzs"
|
|
|
:extend-fields="extendFields"
|
|
|
@modified="getList"
|
|
|
></create-print-task>
|
|
@@ -120,7 +123,7 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { listTaskPrint, removeTaskPrint, listTaskPrintClass } from "../api";
|
|
|
+import { listTaskPrint, removeTaskPrint } from "../api";
|
|
|
import { examRuleDetail } from "../../base/api";
|
|
|
import pickerOptions from "@/constants/datePickerOptions";
|
|
|
import CreatePrintTask from "./CreatePrintTask";
|
|
@@ -142,6 +145,7 @@ export default {
|
|
|
modalIsShow: false,
|
|
|
isSubmit: false,
|
|
|
filter: {
|
|
|
+ printPlanName: "",
|
|
|
printPlanId: "",
|
|
|
examStartTime: "",
|
|
|
examEndTime: "",
|
|
@@ -159,7 +163,6 @@ export default {
|
|
|
teachers: [],
|
|
|
clazzs: [],
|
|
|
curClassId: "",
|
|
|
- validClazzes: [],
|
|
|
extendFields: [],
|
|
|
// date-picker
|
|
|
createTime: [],
|
|
@@ -172,18 +175,12 @@ export default {
|
|
|
methods: {
|
|
|
visibleChange() {
|
|
|
this.filter = this.$objAssign(this.filter, this.instance);
|
|
|
- this.getClazzs();
|
|
|
},
|
|
|
async getExtendFields() {
|
|
|
const examRule = await examRuleDetail();
|
|
|
- this.extendFields = JSON.parse(examRule.extendFields);
|
|
|
- },
|
|
|
- async getClazzs() {
|
|
|
- this.clazzs = await listTaskPrintClass({
|
|
|
- printPlanId: this.filter.printPlanId,
|
|
|
- courseCode: this.instance.courseCode,
|
|
|
- paperNumber: this.instance.paperNumber
|
|
|
- });
|
|
|
+ this.extendFields = examRule.extendFields
|
|
|
+ ? JSON.parse(examRule.extendFields)
|
|
|
+ : [];
|
|
|
},
|
|
|
async getList() {
|
|
|
const datas = {
|
|
@@ -196,18 +193,29 @@ export default {
|
|
|
const data = await listTaskPrint(datas);
|
|
|
if (data.iPage) {
|
|
|
this.tableData = data.iPage.records.map(item => {
|
|
|
- item.extendFields.forEach(field => {
|
|
|
- item[field.code] = field.value;
|
|
|
+ item.extends = {};
|
|
|
+ const extendFields = item.extendFields
|
|
|
+ ? JSON.parse(item.extendFields)
|
|
|
+ : [];
|
|
|
+ extendFields.forEach(field => {
|
|
|
+ item.extends[field.code] = field.value;
|
|
|
});
|
|
|
return item;
|
|
|
});
|
|
|
this.total = data.iPage.total;
|
|
|
+ } else {
|
|
|
+ this.tableData = [];
|
|
|
}
|
|
|
if (data.examStartTime && data.examEndTime) {
|
|
|
this.createTime = [data.examStartTime, data.examEndTime];
|
|
|
this.filter.examStartTime = this.createTime[0];
|
|
|
this.filter.examEndTime = this.createTime[1];
|
|
|
this.timeDisabled = true;
|
|
|
+ } else {
|
|
|
+ this.createTime = [];
|
|
|
+ this.filter.examStartTime = "";
|
|
|
+ this.filter.examEndTime = "";
|
|
|
+ this.timeDisabled = false;
|
|
|
}
|
|
|
},
|
|
|
toPage(page) {
|
|
@@ -218,6 +226,10 @@ export default {
|
|
|
this.filter.printPlanName = val.name;
|
|
|
this.getList();
|
|
|
},
|
|
|
+ timeChange(val) {
|
|
|
+ this.filter.examStartTime = val[0];
|
|
|
+ this.filter.examEndTime = val[1];
|
|
|
+ },
|
|
|
cancel() {
|
|
|
this.modalIsShow = false;
|
|
|
},
|
|
@@ -225,40 +237,30 @@ export default {
|
|
|
this.modalIsShow = true;
|
|
|
},
|
|
|
toAdd() {
|
|
|
- let item = {
|
|
|
+ if (
|
|
|
+ !this.filter.printPlanId ||
|
|
|
+ !this.filter.examStartTime ||
|
|
|
+ !this.filter.examEndTime
|
|
|
+ ) {
|
|
|
+ this.$message.error("请选择印刷计划和考试时间!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ this.curRow = {
|
|
|
examPlace: "",
|
|
|
examRoom: "",
|
|
|
invigilatorTeacher: "",
|
|
|
classId: "",
|
|
|
className: "",
|
|
|
- studentCount: 1,
|
|
|
+ studentCount: null,
|
|
|
printHouseId: null,
|
|
|
+ printHouseName: null,
|
|
|
...this.filter
|
|
|
};
|
|
|
- this.extendFields.forEach(field => {
|
|
|
- item[field.code] = "";
|
|
|
- });
|
|
|
- this.curRow = item;
|
|
|
- let unvalidClazzs = [];
|
|
|
- this.tableData.forEach(item => {
|
|
|
- unvalidClazzs = [...unvalidClazzs, ...item.classId.split(",")];
|
|
|
- });
|
|
|
- this.validClazzes = this.clazzs.filter(
|
|
|
- item => !unvalidClazzs.includes(item.classId)
|
|
|
- );
|
|
|
this.$refs.CreatePrintTask.open();
|
|
|
},
|
|
|
toEdit(row) {
|
|
|
- this.curRow = { ...row };
|
|
|
- let unvalidClazzs = [];
|
|
|
- this.tableData
|
|
|
- .filter(item => item.id !== row.id)
|
|
|
- .forEach(item => {
|
|
|
- unvalidClazzs = [...unvalidClazzs, ...item.classId.split(",")];
|
|
|
- });
|
|
|
- this.validClazzes = this.clazzs.filter(
|
|
|
- item => !unvalidClazzs.includes(item.classId)
|
|
|
- );
|
|
|
+ this.curRow = { ...row, ...this.filter.printPlanName };
|
|
|
this.$refs.CreatePrintTask.open();
|
|
|
},
|
|
|
toPreview(row) {
|
|
@@ -266,11 +268,16 @@ export default {
|
|
|
this.$refs.PrintTaskStudents.open();
|
|
|
},
|
|
|
async toDelete(row) {
|
|
|
+ const result = await this.$confirm(`确定要删除当前卷袋吗?`, "提示", {
|
|
|
+ cancelButtonClass: "el-button--danger is-plain",
|
|
|
+ confirmButtonClass: "el-button--primary",
|
|
|
+ type: "warning"
|
|
|
+ }).catch(() => {});
|
|
|
+ if (result !== "confirm") return;
|
|
|
+
|
|
|
await removeTaskPrint(row.id);
|
|
|
this.$message.success("删除成功!");
|
|
|
-
|
|
|
- const pos = this.tableData.findIndex(item => item.id === row.id);
|
|
|
- this.tableData.splice(pos, 1);
|
|
|
+ this.deletePageLastItem();
|
|
|
}
|
|
|
}
|
|
|
};
|