|
@@ -4,7 +4,7 @@
|
|
|
:visible.sync="modalIsShow"
|
|
|
title="批量合并印刷任务"
|
|
|
top="10vh"
|
|
|
- width="500px"
|
|
|
+ width="448px"
|
|
|
:close-on-click-modal="false"
|
|
|
:close-on-press-escape="false"
|
|
|
append-to-body
|
|
@@ -18,26 +18,61 @@
|
|
|
2、如果确定需要合并,请填写合并后考试名称及对应考试ID,然后点击确定按钮。
|
|
|
</p>
|
|
|
</div>
|
|
|
+ <div class="mb-4 tab-btns">
|
|
|
+ <el-button
|
|
|
+ v-for="(val, key) in EXAM_TYPE"
|
|
|
+ :key="key"
|
|
|
+ :type="examType == key ? 'primary' : 'default'"
|
|
|
+ @click="selectMenu(key)"
|
|
|
+ >{{ val }}</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
<el-form
|
|
|
+ v-if="examType === '0'"
|
|
|
ref="modalFormComp"
|
|
|
:model="modalForm"
|
|
|
:rules="rules"
|
|
|
label-position="top"
|
|
|
>
|
|
|
- <el-form-item prop="thirdRelateName" label="考试名称:">
|
|
|
+ <el-form-item label="考试ID:">
|
|
|
<el-input
|
|
|
- v-model.trim="modalForm.thirdRelateName"
|
|
|
- placeholder="请输入考试名称"
|
|
|
+ v-model.trim="modalForm.thirdRelateId"
|
|
|
+ placeholder="请输入考试ID"
|
|
|
clearable
|
|
|
></el-input>
|
|
|
</el-form-item>
|
|
|
- <el-form-item prop="thirdRelateId" label="考试ID:">
|
|
|
+ <el-form-item label="考试名称:">
|
|
|
<el-input
|
|
|
- v-model.trim="modalForm.thirdRelateId"
|
|
|
- placeholder="请输入考试ID"
|
|
|
+ v-model.trim="modalForm.thirdRelateName"
|
|
|
+ placeholder="请输入考试名称"
|
|
|
clearable
|
|
|
></el-input>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item prop="thirdRelate"></el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <el-form
|
|
|
+ v-else
|
|
|
+ ref="modalFormComp"
|
|
|
+ :model="modalForm"
|
|
|
+ :rules="rules1"
|
|
|
+ label-position="top"
|
|
|
+ >
|
|
|
+ <el-form-item prop="thirdRelateId" label="考试ID:">
|
|
|
+ <el-select
|
|
|
+ v-model="modalForm.thirdRelateId"
|
|
|
+ placeholder="请选择"
|
|
|
+ filterable
|
|
|
+ style="width:100%"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in exams"
|
|
|
+ :key="item.thirdRelateId"
|
|
|
+ :value="item.thirdRelateId"
|
|
|
+ :label="item.thirdRelateName"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
</el-form>
|
|
|
<div slot="footer">
|
|
|
<el-button type="primary" :disabled="isSubmit" @click="submit"
|
|
@@ -49,7 +84,7 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { printPlanMergePush } from "../api";
|
|
|
+import { printPlanMergePush, printPlanSyncExamList } from "../api";
|
|
|
|
|
|
const initModalForm = {
|
|
|
thirdRelateId: "",
|
|
@@ -67,30 +102,59 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
data() {
|
|
|
+ const thirdRelateValidator = (rule, value, callback) => {
|
|
|
+ if (!this.modalForm.thirdRelateId && !this.modalForm.thirdRelateName) {
|
|
|
+ return callback(new Error(`考试ID和名称至少填一项。`));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (
|
|
|
+ this.modalForm.thirdRelateId &&
|
|
|
+ this.modalForm.thirdRelateId.length > 50
|
|
|
+ ) {
|
|
|
+ return callback(new Error("考试ID长度不能超过50"));
|
|
|
+ }
|
|
|
+ if (
|
|
|
+ this.modalForm.thirdRelateName &&
|
|
|
+ this.modalForm.thirdRelateName.length > 50
|
|
|
+ ) {
|
|
|
+ return callback(new Error("考试名称长度不能超过50"));
|
|
|
+ }
|
|
|
+
|
|
|
+ return callback();
|
|
|
+ };
|
|
|
return {
|
|
|
modalIsShow: false,
|
|
|
isSubmit: false,
|
|
|
+ exams: [],
|
|
|
modalForm: { ...initModalForm },
|
|
|
rules: {
|
|
|
- thirdRelateName: [
|
|
|
+ thirdRelate: [
|
|
|
{
|
|
|
- required: false,
|
|
|
- message: "考试名称不能超过50个字",
|
|
|
- max: 50,
|
|
|
+ required: true,
|
|
|
+ validator: thirdRelateValidator,
|
|
|
trigger: "change"
|
|
|
}
|
|
|
- ],
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ rules1: {
|
|
|
thirdRelateId: [
|
|
|
{
|
|
|
- required: false,
|
|
|
- pattern: /^[0-9a-zA-Z_-]{3,30}$/,
|
|
|
- message: "考试ID只能由数字字母短横线组成,长度在3-30之间",
|
|
|
+ required: true,
|
|
|
+ message: "请选择考试ID",
|
|
|
trigger: "change"
|
|
|
}
|
|
|
]
|
|
|
+ },
|
|
|
+ examType: "0",
|
|
|
+ EXAM_TYPE: {
|
|
|
+ 0: "未同步考试",
|
|
|
+ 1: "已同步考试"
|
|
|
}
|
|
|
};
|
|
|
},
|
|
|
+ created() {
|
|
|
+ this.getExamList();
|
|
|
+ },
|
|
|
methods: {
|
|
|
initData(val) {
|
|
|
this.modalForm = { ...initModalForm };
|
|
@@ -101,6 +165,14 @@ export default {
|
|
|
visibleChange() {
|
|
|
this.initData(this.instance);
|
|
|
},
|
|
|
+ async getExamList() {
|
|
|
+ const data = await printPlanSyncExamList();
|
|
|
+ this.exams = data || [];
|
|
|
+ },
|
|
|
+ selectMenu(val) {
|
|
|
+ this.examType = val;
|
|
|
+ this.modalForm = { ...initModalForm };
|
|
|
+ },
|
|
|
cancel() {
|
|
|
this.modalIsShow = false;
|
|
|
},
|