zhangjie пре 2 година
родитељ
комит
932ea28576

+ 6 - 2
src/modules/paper-export/views/PaperTemplatePreview.vue

@@ -5,6 +5,7 @@
       ref="PaperTemplateView"
       class="preview-body"
       :pages="pages"
+      :page-config="pageConfig"
     ></paper-template-view>
   </div>
 </template>
@@ -25,6 +26,7 @@ export default {
       isFrame: this.$route.params.viewType === "frame",
       tid: this.$route.params.tid,
       pages: [],
+      pageConfig: {},
     };
   },
   computed: {
@@ -49,8 +51,9 @@ export default {
       const paperTempData = window.parent.paperTempData;
       if (!paperTempData) return;
 
-      const { pages } = deepCopy(paperTempData);
+      const { pages, pageConfig } = deepCopy(paperTempData);
       this.pages = pages;
+      this.pageConfig = pageConfig;
     },
     async init() {
       const detDataRes = await paperTemplateDetailApi(this.tid);
@@ -60,8 +63,9 @@ export default {
         return;
       }
 
-      const { pages } = JSON.parse(detDataRes.data.content);
+      const { pages, pageConfig } = JSON.parse(detDataRes.data.content);
       this.pages = pages;
+      this.pageConfig = pageConfig;
     },
   },
 };

+ 7 - 1
src/modules/question/components/FolderQuestionManageDialog.vue

@@ -268,7 +268,13 @@ export default {
       this.selectedQuestionIds = selections.map((item) => item.id);
     },
     folderFilterSelected(folder) {
-      this.filter.classifyId = folder && folder.id;
+      this.filter = {
+        classifyId: folder && folder.id,
+        courseId: "",
+        questionType: "",
+        sourceDetailId: "",
+        propertyIdList: [],
+      };
       this.toPage(1);
     },
     toViewQuestion(row) {

+ 78 - 1
src/modules/question/components/QuestionSafetySetDialog.vue

@@ -10,11 +10,37 @@
     append-to-body
     @open="visibleChange"
   >
-    <el-form ref="modalFormComp">
+    <el-form ref="modalFormComp" :model="modalForm" :rules="rules">
       <el-form-item label="加密“题库”,“卷库”">
         <el-switch v-model="modalForm.safeEnable"></el-switch>
         <p class="tips-info">开启后,进入题库、卷库模块,需要进行密码验证!</p>
       </el-form-item>
+      <el-form-item
+        v-if="modalForm.safeEnable"
+        label="设置密码"
+        prop="safePassword"
+      >
+        <el-input
+          v-model="modalForm.safePassword"
+          type="password"
+          class="dialog-input-width"
+          auto-complete="off"
+          placeholder="请输入6位以上数字和字母组合"
+        />
+      </el-form-item>
+      <el-form-item
+        v-if="modalForm.safeEnable"
+        label="确认密码"
+        prop="checkSafePassword"
+      >
+        <el-input
+          v-model="modalForm.checkSafePassword"
+          type="password"
+          class="dialog-input-width"
+          auto-complete="off"
+          placeholder="请输入6位以上数字和字母组合"
+        />
+      </el-form-item>
     </el-form>
 
     <div slot="footer">
@@ -34,11 +60,55 @@ import { USER_SIGNIN } from "../../../modules/portal/store/user";
 export default {
   name: "QuestionSafetySetDialog",
   data() {
+    var validatePassWeakPass = (rule, value, callback) => {
+      if (this.modalForm.checkSafePassword !== "") {
+        this.$refs.modalFormComp.validateField("checkSafePassword");
+      }
+      callback();
+    };
+    var validatePassWeakPass2 = (rule, value, callback) => {
+      if (value !== this.modalForm.safePassword) {
+        callback(new Error("两次输入密码不一致!"));
+      } else {
+        callback();
+      }
+    };
+    const pwdRule = [
+      {
+        validator: (rule, value, callback) => {
+          if (value && value.match(/[0-9]+/) && value.match(/[a-zA-Z]+/)) {
+            callback();
+          } else {
+            callback(new Error("请输入数字和字母组合"));
+          }
+        },
+        trigger: "change",
+      },
+      {
+        required: true,
+        min: 6,
+        max: 16,
+        message: "密码只能6-16个字符",
+        trigger: "change",
+      },
+    ];
     return {
       modalIsShow: false,
       isSubmit: false,
       modalForm: {
         safeEnable: false,
+        safePassword: "",
+        checkSafePassword: "",
+      },
+      rules: {
+        safePassword: [
+          { validator: validatePassWeakPass, trigger: "blur" },
+          ...pwdRule,
+        ],
+        checkSafePassword: [
+          { validator: validatePassWeakPass2, trigger: "blur" },
+          ...pwdRule,
+        ],
       },
     };
   },
@@ -47,6 +117,8 @@ export default {
     visibleChange() {
       this.modalForm = {
         safeEnable: this.$store.state.user.safeEnable,
+        safePassword: "",
+        checkSafePassword: "",
       };
     },
     cancel() {
@@ -56,6 +128,11 @@ export default {
       this.modalIsShow = true;
     },
     async confirm() {
+      if (this.modalForm.safeEnable) {
+        const valid = await this.$refs.modalFormComp.validate().catch(() => {});
+        if (!valid) return;
+      }
+
       if (this.isSubmit) return;
       this.isSubmit = true;
       const data = await questionSecuritySettingsApi(this.modalForm).catch(

+ 1 - 1
src/modules/question/components/edit/TextAnswerQuestion.vue

@@ -12,7 +12,7 @@
           @change="quesBodyChange"
         ></v-editor>
       </el-form-item>
-      <el-form-item prop="quesAnswer" label="答案">
+      <el-form-item label="答案">
         <v-editor v-model="quesAnswer" @change="answerChange"></v-editor>
       </el-form-item>
       <el-form-item label="答案解析">