deason 3 rokov pred
rodič
commit
3135681b98

+ 1 - 1
src/modules/portal/views/Login.vue

@@ -55,7 +55,7 @@
       </div>
       <footer class="login-footer">
         Copyright &copy; 2021
-        <a href="https://www.qmth.com.cn">武汉启明软件</a>.
+        <a href="https://www.qmth.com.cn">启明泰和</a>.
       </footer>
     </main>
   </div>

+ 4 - 2
src/modules/questions/constants/constants.js

@@ -14,9 +14,11 @@ export const QUESTION_TYPES = [
   { value: "BOOL_ANSWER_QUESTION", label: "判断" },
   { value: "FILL_BLANK_QUESTION", label: "填空" },
   { value: "TEXT_ANSWER_QUESTION", label: "问答" },
-  { value: "NESTED_ANSWER_QUESTION", label: "套题" },
+  { value: "READING_COMPREHENSION", label: "普通阅读" },
   { value: "LISTENING_QUESTION", label: "听力" },
-  { value: "MATCHING_QUESTION", label: "配对题" },
+  { value: "CLOZE", label: "完形填空" },
+  { value: "PARAGRAPH_MATCHING", label: "段落匹配" },
+  { value: "BANKED_CLOZE", label: "选词填空" },
 ];
 export const PUBLICITY_LIST = [
   { label: "公开", value: true },

+ 9 - 6
src/modules/questions/routes/routes.js

@@ -26,6 +26,7 @@ import user from "../views/user.vue";
 import data_previllege from "../views/data_previllege.vue";
 import PaperStorage from "../views/PaperStorage.vue";
 import ViewPaper from "../views/ViewPaper.vue";
+import OrgProperty from "../views/OrgProperty.vue";
 
 export default [
   {
@@ -42,6 +43,11 @@ export default [
         meta: { privilegeCodes: "index_school" },
         component: School,
       },
+      {
+        path: "org/property",
+        name: "org_property", //学校管理
+        component: OrgProperty,
+      },
       {
         path: "user", //用户管理
         meta: { privilegeCodes: "index_user" },
@@ -127,13 +133,11 @@ export default [
         component: InsertPaperTitle,
       },
       {
-        path:
-          "edit_other_question/:paperId/:paperDetailId/:questionType/:courseNo/:courseName",
+        path: "edit_other_question/:paperId/:paperDetailId/:questionType/:courseNo/:courseName",
         component: EditOtherQuestion,
       },
       {
-        path:
-          "edit_select_question/:paperId/:paperDetailId/:questionType/:courseNo/:courseName",
+        path: "edit_select_question/:paperId/:paperDetailId/:questionType/:courseNo/:courseName",
         component: EditSelectQuestion,
       },
       {
@@ -147,8 +151,7 @@ export default [
     component: EditPaper,
   },
   {
-    path:
-      "/select_question/:id/:courseNo/:courseName/:paperDetailId/:parentView", //试卷选题
+    path: "/select_question/:id/:courseNo/:courseName/:paperDetailId/:parentView", //试卷选题
     component: SelectQuestion,
   },
   {

+ 284 - 0
src/modules/questions/views/OrgProperty.vue

@@ -0,0 +1,284 @@
+<template>
+  <div>
+    <LinkTitlesCustom
+      :current-paths="['系统管理', '顶级机构管理', '机构设置']"
+    />
+    <section class="content">
+      <div class="box box-info">
+        <!-- 正文信息 -->
+        <div class="box-body">
+          <el-form
+            ref="form"
+            :inline="true"
+            :rules="rules"
+            :model="form"
+            inline-message
+            label-position="right"
+          >
+            <el-row>
+              <el-col :span="20"
+                ><span>{{ rootOrgName }}</span></el-col
+              >
+              <el-col :span="4"
+                ><div>
+                  <el-button type="primary" size="small" @click="save"
+                    >保 存</el-button
+                  >
+                  <el-button
+                    type="primary"
+                    size="small"
+                    icon="el-icon-arrow-left"
+                    @click="back"
+                    >返 回</el-button
+                  >
+                </div></el-col
+              ></el-row
+            >
+            <div class="block-seperator"></div>
+            <el-tabs v-model="activeName" type="border-card">
+              <!-- 题型设置 -->
+              <el-tab-pane label="题型设置" name="tab1">
+                <el-row>
+                  <el-form-item
+                    label="可用题型"
+                    prop="properties.ROOT_ORG_QUESTION_TYPES"
+                  >
+                  </el-form-item
+                ></el-row>
+                <el-row>
+                  <el-form-item
+                    label="基础题型"
+                    label-width="120px"
+                    prop="properties.ROOT_ORG_QUESTION_TYPES1"
+                  >
+                    <el-checkbox-group
+                      v-model="form.properties.ROOT_ORG_QUESTION_TYPES1"
+                      class="pull_length"
+                    >
+                      <el-checkbox
+                        label="SINGLE_ANSWER_QUESTION"
+                        class="checkbox_length"
+                        >单选</el-checkbox
+                      >
+                      <el-checkbox
+                        label="MULTIPLE_ANSWER_QUESTION"
+                        class="checkbox_length"
+                        >多选</el-checkbox
+                      >
+                      <el-checkbox
+                        label="BOOL_ANSWER_QUESTION"
+                        class="checkbox_length"
+                        >判断</el-checkbox
+                      >
+                      <el-checkbox
+                        label="FILL_BLANK_QUESTION"
+                        class="checkbox_length"
+                        >填空</el-checkbox
+                      >
+                      <el-checkbox
+                        label="TEXT_ANSWER_QUESTION"
+                        class="checkbox_length"
+                        >问答</el-checkbox
+                      >
+                    </el-checkbox-group></el-form-item
+                  >
+                </el-row>
+                <el-row>
+                  <el-form-item
+                    label="组合题型"
+                    label-width="120px"
+                    prop="properties.ROOT_ORG_QUESTION_TYPES2"
+                  >
+                    <el-checkbox-group
+                      v-model="form.properties.ROOT_ORG_QUESTION_TYPES2"
+                      class="pull_length"
+                    >
+                      <el-checkbox
+                        label="READING_COMPREHENSION"
+                        class="checkbox_length"
+                        >普通阅读</el-checkbox
+                      >
+                      <el-checkbox label="CLOZE" class="checkbox_length"
+                        >完形填空</el-checkbox
+                      >
+                      <el-checkbox
+                        label="PARAGRAPH_MATCHING"
+                        class="checkbox_length"
+                        >段落匹配</el-checkbox
+                      >
+                      <el-checkbox label="BANKED_CLOZE" class="checkbox_length"
+                        >选词填空</el-checkbox
+                      >
+                    </el-checkbox-group></el-form-item
+                  >
+                </el-row>
+                <el-row>
+                  <el-form-item
+                    label="特殊题型"
+                    label-width="120px"
+                    prop="properties.ROOT_ORG_QUESTION_TYPES3"
+                  >
+                    <el-checkbox-group
+                      v-model="form.properties.ROOT_ORG_QUESTION_TYPES3"
+                      class="pull_length"
+                    >
+                      <el-checkbox
+                        label="LISTENING_QUESTION"
+                        class="checkbox_length"
+                        >听力</el-checkbox
+                      >
+                    </el-checkbox-group></el-form-item
+                  >
+                </el-row>
+                <el-row>
+                  <el-form-item label="成卷配置"> </el-form-item
+                ></el-row>
+                <el-row>
+                  <el-form-item label="特殊设置" label-width="120px">
+                    <el-checkbox-group
+                      v-model="form.properties.QUESTION_TYPE_SPECIAL_SET"
+                      class="pull_length"
+                    >
+                      <el-checkbox
+                        label="AUTONOMY_QUESTION"
+                        class="checkbox_length"
+                        >选做题设置</el-checkbox
+                      >
+                    </el-checkbox-group></el-form-item
+                  >
+                </el-row>
+              </el-tab-pane>
+              <!-- 审核配置 -->
+              <el-tab-pane label="审核配置" name="tab2"> </el-tab-pane>
+              <!-- 查重配置 -->
+              <el-tab-pane label="查重配置" name="tab3"> </el-tab-pane>
+            </el-tabs>
+          </el-form>
+        </div>
+      </div>
+    </section>
+  </div>
+</template>
+
+<script>
+import { mapState } from "vuex";
+import { QUESTION_API } from "@/constants/constants.js";
+import LinkTitlesCustom from "@/components/LinkTitlesCustom.vue";
+
+export default {
+  components: {
+    LinkTitlesCustom,
+  },
+  data() {
+    return {
+      style: {
+        label_width_tab1: "160px",
+        label_width_tab2: "110px",
+        label_width_tab3: "120px",
+      },
+      activeName: "tab1",
+      rootOrgName: "",
+      form: {
+        orgId: null,
+        properties: {
+          ROOT_ORG_QUESTION_TYPES: [],
+          ROOT_ORG_QUESTION_TYPES1: [],
+          ROOT_ORG_QUESTION_TYPES2: [],
+          ROOT_ORG_QUESTION_TYPES3: [],
+          QUESTION_TYPE_SPECIAL_SET: [],
+        },
+      },
+      rules: {
+        // code: [{ required: true, validator: validateCode, trigger: "blur" }],
+      },
+    };
+  },
+  computed: {
+    ...mapState({ user: (state) => state.user }),
+  },
+  created() {
+    this.form.orgId = this.$route.params.rootOrgId;
+    this.rootOrgName =
+      this.$route.params.rootOrgName +
+      "(" +
+      this.$route.params.rootOrgCode +
+      ")";
+    this.init();
+  },
+  methods: {
+    init() {
+      var url = QUESTION_API + "/org/allProperties/" + this.form.orgId;
+      this.$httpWithMsg.get(url).then((response) => {
+        this.form.properties.ROOT_ORG_QUESTION_TYPES1 = JSON.parse(
+          response.data.ROOT_ORG_QUESTION_TYPES1
+        );
+        this.form.properties.ROOT_ORG_QUESTION_TYPES2 = JSON.parse(
+          response.data.ROOT_ORG_QUESTION_TYPES2
+        );
+        this.form.properties.ROOT_ORG_QUESTION_TYPES3 = JSON.parse(
+          response.data.ROOT_ORG_QUESTION_TYPES3
+        );
+        this.form.properties.QUESTION_TYPE_SPECIAL_SET = JSON.parse(
+          response.data.QUESTION_TYPE_SPECIAL_SET
+        );
+      });
+    },
+    setParams() {
+      for (let i of this.form.properties.ROOT_ORG_QUESTION_TYPES1) {
+        this.form.properties.ROOT_ORG_QUESTION_TYPES.push(i);
+      }
+      for (let i of this.form.properties.ROOT_ORG_QUESTION_TYPES2) {
+        this.form.properties.ROOT_ORG_QUESTION_TYPES.push(i);
+      }
+      for (let i of this.form.properties.ROOT_ORG_QUESTION_TYPES3) {
+        this.form.properties.ROOT_ORG_QUESTION_TYPES.push(i);
+      }
+      this.form.properties.ROOT_ORG_QUESTION_TYPES = JSON.stringify(
+        this.form.properties.ROOT_ORG_QUESTION_TYPES
+      );
+      if (this.form.properties.ROOT_ORG_QUESTION_TYPES1) {
+        this.form.properties.ROOT_ORG_QUESTION_TYPES1 = JSON.stringify(
+          this.form.properties.ROOT_ORG_QUESTION_TYPES1
+        );
+      }
+      if (this.form.properties.ROOT_ORG_QUESTION_TYPES2) {
+        this.form.properties.ROOT_ORG_QUESTION_TYPES2 = JSON.stringify(
+          this.form.properties.ROOT_ORG_QUESTION_TYPES2
+        );
+      }
+      if (this.form.properties.ROOT_ORG_QUESTION_TYPES3) {
+        this.form.properties.ROOT_ORG_QUESTION_TYPES3 = JSON.stringify(
+          this.form.properties.ROOT_ORG_QUESTION_TYPES3
+        );
+      }
+      if (this.form.properties.QUESTION_TYPE_SPECIAL_SET) {
+        this.form.properties.QUESTION_TYPE_SPECIAL_SET = JSON.stringify(
+          this.form.properties.QUESTION_TYPE_SPECIAL_SET
+        );
+      }
+    },
+    save() {
+      this.setParams();
+      let url = QUESTION_API + "/org/saveOrgProperties";
+      this.$httpWithMsg.put(url, this.form).then(() => {
+        this.$notify({
+          type: "success",
+          message: "保存成功!",
+        });
+        this.back();
+      });
+    },
+    back() {
+      this.$router.push({ path: "/questions/school" });
+    },
+  },
+};
+</script>
+<style scoped>
+.pull_length {
+  /* width: 240px; */
+}
+.input >>> .el-input__inner {
+  -webkit-appearance: button;
+}
+</style>

+ 7 - 129
src/modules/questions/views/School.vue

@@ -151,95 +151,6 @@
           </el-row>
         </el-form>
       </el-dialog>
-      <el-dialog
-        v-loading="setLoading"
-        title="机构特殊设置"
-        width="500px"
-        :visible.sync="schoolSetDialog"
-      >
-        <el-form
-          ref="schoolForm"
-          :inline="true"
-          inline-message
-          :model="schoolForm"
-          :rules="rules"
-          label-position="right"
-          label-width="90px"
-          class="editSchoolForm"
-        >
-          <el-row>
-            <el-form-item label="学校名称" label-width="120px" prop="name">
-              <el-input
-                v-model="schoolSetForm.name"
-                class="pull_length"
-                auto-complete="off"
-                placeholder="学校名称"
-                :disabled="true"
-              />
-            </el-form-item>
-          </el-row>
-          <el-row>
-            <el-form-item label="学校代码" label-width="120px" prop="code">
-              <el-input
-                v-model="schoolSetForm.code"
-                class="pull_length"
-                auto-complete="off"
-                placeholder="学校域名"
-                :disabled="true"
-              />
-            </el-form-item>
-          </el-row>
-
-          <el-row>
-            <el-form-item
-              label="可用题型"
-              label-width="120px"
-              prop="questionTypeArr"
-            >
-              <el-checkbox-group v-model="questionTypeArr" class="pull_length">
-                <el-checkbox
-                  label="SINGLE_ANSWER_QUESTION"
-                  class="checkbox_length"
-                  >单选</el-checkbox
-                >
-                <el-checkbox
-                  label="MULTIPLE_ANSWER_QUESTION"
-                  class="checkbox_length"
-                  >多选</el-checkbox
-                >
-                <el-checkbox
-                  label="BOOL_ANSWER_QUESTION"
-                  class="checkbox_length"
-                  >判断</el-checkbox
-                >
-                <el-checkbox label="FILL_BLANK_QUESTION" class="checkbox_length"
-                  >填空</el-checkbox
-                >
-                <el-checkbox
-                  label="TEXT_ANSWER_QUESTION"
-                  class="checkbox_length"
-                  >问答</el-checkbox
-                >
-                <el-checkbox
-                  label="NESTED_ANSWER_QUESTION"
-                  class="checkbox_length"
-                  >套题</el-checkbox
-                >
-                <el-checkbox label="LISTENING_QUESTION" class="checkbox_length"
-                  >听力题</el-checkbox
-                >
-                <el-checkbox label="MATCHING_QUESTION" class="checkbox_length"
-                  >配对题</el-checkbox
-                >
-              </el-checkbox-group></el-form-item
-            >
-          </el-row>
-          <el-row class="d-flex justify-content-center">
-            <el-button type="primary" @click="submitSetForm">保 存</el-button>
-            <el-button @click="schoolSetDialog = false">取 消</el-button>
-          </el-row>
-        </el-form>
-      </el-dialog>
 
       <!-- 页面列表 -->
       <el-table
@@ -379,14 +290,6 @@ export default {
         remark: "",
       },
       questionTypeArr: [],
-      schoolSetForm: {
-        orgId: null,
-        name: "",
-        code: "",
-        properties: {
-          ROOT_ORG_QUESTION_TYPES: "",
-        },
-      },
       schoolDialog: false,
       schoolSetDialog: false,
       logoDialog: false,
@@ -598,20 +501,6 @@ export default {
         }
       });
     },
-    submitSetForm() {
-      this.schoolSetForm.properties.ROOT_ORG_QUESTION_TYPES = JSON.stringify(
-        this.questionTypeArr
-      );
-      let url = QUESTION_API + "/org/saveOrgProperties";
-      this.$httpWithMsg.put(url, this.schoolSetForm).then(() => {
-        this.$notify({
-          type: "success",
-          message: "保存成功!",
-        });
-        this.searchForm();
-        this.schoolSetDialog = false;
-      });
-    },
     //新增
     insert() {
       this.schoolForm.id = null;
@@ -637,25 +526,14 @@ export default {
       this.schoolDialog = true;
     },
     orgSet(row) {
-      this.questionTypeArr = [];
-      this.setLoading = true;
-      var url = QUESTION_API + "/org/allProperties/" + row.id;
-      this.$httpWithMsg.get(url).then((response) => {
-        this.schoolSetForm.properties = response.data;
-        if (
-          this.schoolSetForm.properties &&
-          this.schoolSetForm.properties.ROOT_ORG_QUESTION_TYPES
-        ) {
-          this.questionTypeArr = JSON.parse(
-            this.schoolSetForm.properties.ROOT_ORG_QUESTION_TYPES
-          );
-        }
-        this.schoolSetForm.orgId = row.id;
-        this.schoolSetForm.name = row.name;
-        this.schoolSetForm.code = row.code;
-        this.setLoading = false;
+      this.$router.push({
+        name: "org_property",
+        params: {
+          rootOrgId: row.id,
+          rootOrgName: row.name,
+          rootOrgCode: row.code,
+        },
       });
-      this.schoolSetDialog = true;
     },
   },
 };