SchoolSetPaper.vue 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <template>
  2. <div class="school-set-paper part-box part-box-pad">
  3. <el-form
  4. ref="modalFormComp"
  5. :model="modalForm"
  6. :rules="rules"
  7. label-width="180px"
  8. >
  9. <el-form-item prop="pdfSize" label="允许上传试卷规格:">
  10. <el-checkbox-group v-model="modalForm.pdfSize">
  11. <el-checkbox v-for="item in sysPdfSize" :key="item" :label="item">{{
  12. item
  13. }}</el-checkbox>
  14. </el-checkbox-group>
  15. </el-form-item>
  16. <el-form-item prop="cardSize" label="答题卡规格:">
  17. <el-radio-group v-model="modalForm.cardSize">
  18. <el-radio v-for="item in sysCardSize" :key="item" :label="item">
  19. <span>{{ item }}</span>
  20. <span v-if="item === '8K'" style="margin-left: 5px">(255*370)</span>
  21. </el-radio>
  22. </el-radio-group>
  23. </el-form-item>
  24. <el-form-item>
  25. <el-button type="primary" :loading="loading" @click="confirm"
  26. >保存</el-button
  27. >
  28. </el-form-item>
  29. </el-form>
  30. </div>
  31. </template>
  32. <script>
  33. import {
  34. sysPaperSizeList,
  35. schoolSetPaperInfo,
  36. schoolSetPaperUpdate,
  37. } from "../../api";
  38. export default {
  39. name: "school-set-paper",
  40. props: {
  41. school: {
  42. type: Object,
  43. default() {
  44. return {};
  45. },
  46. },
  47. },
  48. data() {
  49. return {
  50. loading: false,
  51. modalForm: {
  52. pdfSize: [],
  53. cardSize: "",
  54. },
  55. sysPdfSize: [],
  56. sysCardSize: [],
  57. paperInfo: [],
  58. rules: {
  59. pdfSize: [
  60. {
  61. required: true,
  62. validator: (rule, value, callback) => {
  63. if (!value || !value.length) {
  64. return callback(new Error(`请选择允许上传试卷规格`));
  65. }
  66. callback();
  67. },
  68. trigger: "change",
  69. },
  70. ],
  71. cardSize: [
  72. {
  73. required: true,
  74. message: "请选择答题卡规格",
  75. trigger: "change",
  76. },
  77. ],
  78. },
  79. };
  80. },
  81. mounted() {
  82. this.initData();
  83. },
  84. methods: {
  85. async initData() {
  86. const paperData = await sysPaperSizeList();
  87. this.sysPdfSize = paperData.result[0].value;
  88. this.sysCardSize = paperData.result[1].value;
  89. const data = await schoolSetPaperInfo(this.school.id);
  90. this.paperInfo = data.result;
  91. this.modalForm.pdfSize = data.result[0]?.value || [];
  92. this.modalForm.cardSize = data.result[1]?.value
  93. ? data.result[1].value[0]
  94. : "";
  95. },
  96. async confirm() {
  97. const valid = await this.$refs.modalFormComp.validate().catch(() => {});
  98. if (!valid) return;
  99. if (this.loading) return;
  100. this.loading = true;
  101. this.paperInfo[0].value = this.modalForm.pdfSize;
  102. this.paperInfo[1].value = [this.modalForm.cardSize];
  103. let datas = { param: this.paperInfo, schoolId: this.school.id };
  104. const res = await schoolSetPaperUpdate(datas).catch(() => {});
  105. this.loading = false;
  106. if (!res) return;
  107. this.$message.success("修改成功!");
  108. this.initData();
  109. },
  110. },
  111. };
  112. </script>