|
@@ -0,0 +1,208 @@
|
|
|
+<template>
|
|
|
+ <el-dialog
|
|
|
+ class="modify-card-info"
|
|
|
+ :visible.sync="modalIsShow"
|
|
|
+ :title="title"
|
|
|
+ width="600px"
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ :close-on-press-escape="false"
|
|
|
+ append-to-body
|
|
|
+ @open="visibleChange"
|
|
|
+ >
|
|
|
+ <el-form
|
|
|
+ ref="modalFormComp"
|
|
|
+ label-width="120px"
|
|
|
+ :rules="rules"
|
|
|
+ :model="modalForm"
|
|
|
+ >
|
|
|
+ <el-form-item label="学期:">
|
|
|
+ <semester-select
|
|
|
+ v-model.trim="modalForm.semesterId"
|
|
|
+ placeholder="学期"
|
|
|
+ :disabled="isEdit"
|
|
|
+ ></semester-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="考试:">
|
|
|
+ <exam-select
|
|
|
+ v-model="modalForm.examId"
|
|
|
+ :semester-id="modalForm.semesterId"
|
|
|
+ exam-model="MODEL4"
|
|
|
+ :disabled="isEdit"
|
|
|
+ @change="examChange"
|
|
|
+ ></exam-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="课程(代码):">
|
|
|
+ <course-select
|
|
|
+ v-model.trim="modalForm.courseId"
|
|
|
+ :semester-id="modalForm.semesterId"
|
|
|
+ :exam-id="modalForm.examId"
|
|
|
+ placeholder="课程(代码)"
|
|
|
+ :disabled="isEdit"
|
|
|
+ @change="courseChange"
|
|
|
+ ></course-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="title" label="题卡名称:">
|
|
|
+ <el-input
|
|
|
+ v-model.trim="modalForm.title"
|
|
|
+ placeholder="建议不超过30个字,题卡名称不允许重复"
|
|
|
+ clearable
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item prop="remark" label="备注:">
|
|
|
+ <el-input
|
|
|
+ v-model="modalForm.remark"
|
|
|
+ type="textarea"
|
|
|
+ resize="none"
|
|
|
+ :rows="2"
|
|
|
+ :maxlength="50"
|
|
|
+ clearable
|
|
|
+ show-word-limit
|
|
|
+ placeholder="建议不超过50个字"
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+
|
|
|
+ <div slot="footer">
|
|
|
+ <el-button type="primary" :disabled="isSubmit" @click="submit"
|
|
|
+ >确认</el-button
|
|
|
+ >
|
|
|
+ <el-button @click="cancel">取消</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import { updateCard } from "../api";
|
|
|
+import { examConfigByExamIdOrgId } from "@/modules/exam/api";
|
|
|
+
|
|
|
+const initModalForm = {
|
|
|
+ id: null,
|
|
|
+ semesterId: "",
|
|
|
+ examId: "",
|
|
|
+ courseId: "",
|
|
|
+ title: "",
|
|
|
+ remark: "",
|
|
|
+ courseName: "",
|
|
|
+ courseCode: "",
|
|
|
+ makeMethod: "SELF",
|
|
|
+ type: "CUSTOM",
|
|
|
+ createMethod: "STANDARD",
|
|
|
+};
|
|
|
+
|
|
|
+export default {
|
|
|
+ name: "modify-mode-card-info",
|
|
|
+ props: {
|
|
|
+ instance: {
|
|
|
+ type: Object,
|
|
|
+ default() {
|
|
|
+ return {};
|
|
|
+ },
|
|
|
+ },
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ isEdit() {
|
|
|
+ return !!this.modalForm.id;
|
|
|
+ },
|
|
|
+ title() {
|
|
|
+ return (this.isEdit ? "编辑" : "新增") + "题卡";
|
|
|
+ },
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ modalIsShow: false,
|
|
|
+ isSubmit: false,
|
|
|
+ modalForm: {},
|
|
|
+ curExam: {},
|
|
|
+ rules: {
|
|
|
+ semesterId: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "请选择学期",
|
|
|
+ trigger: "change",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ examId: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "请选择考试",
|
|
|
+ trigger: "change",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ courseId: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "请选择课程",
|
|
|
+ trigger: "change",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ title: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "题卡名称不能超过30个字",
|
|
|
+ max: 30,
|
|
|
+ trigger: "change",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
+ };
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ initData(val) {
|
|
|
+ this.modalForm = this.$objAssign(initModalForm, val);
|
|
|
+ },
|
|
|
+ visibleChange() {
|
|
|
+ this.initData(this.instance);
|
|
|
+
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.$refs.modalFormComp.clearValidate();
|
|
|
+ });
|
|
|
+ },
|
|
|
+ cancel() {
|
|
|
+ this.modalIsShow = false;
|
|
|
+ },
|
|
|
+ open() {
|
|
|
+ this.modalIsShow = true;
|
|
|
+ },
|
|
|
+ courseChange(val) {
|
|
|
+ this.modalForm.courseName = val?.courseName || "";
|
|
|
+ this.modalForm.courseCode = val?.courseCode || "";
|
|
|
+ },
|
|
|
+ examChange(val) {
|
|
|
+ this.curExam = val || {};
|
|
|
+ },
|
|
|
+ async submit() {
|
|
|
+ const valid = await this.$refs.modalFormComp.validate().catch(() => {});
|
|
|
+ if (!valid) return;
|
|
|
+
|
|
|
+ if (!this.isEdit) {
|
|
|
+ const examPrintPlan = await examConfigByExamIdOrgId({
|
|
|
+ examId: this.modalForm.examId,
|
|
|
+ orgId: this.curExam.orgId,
|
|
|
+ });
|
|
|
+
|
|
|
+ const datas = {
|
|
|
+ ...this.modalForm,
|
|
|
+ cardRuleId: examPrintPlan.cardRuleId,
|
|
|
+ schoolName: this.$ls.get("schoolName"),
|
|
|
+ };
|
|
|
+ this.$emit("new-card", datas);
|
|
|
+ this.cancel();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (this.isSubmit) return;
|
|
|
+ this.isSubmit = true;
|
|
|
+ let datas = {
|
|
|
+ ...this.modalForm,
|
|
|
+ };
|
|
|
+ const data = await updateCard(datas).catch(() => {});
|
|
|
+ this.isSubmit = false;
|
|
|
+ if (!data) return;
|
|
|
+
|
|
|
+ this.$message.success("保存成功!");
|
|
|
+ this.$emit("modified");
|
|
|
+ this.cancel();
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|