Răsfoiți Sursa

数据初始化保存接口调试

zhangjie 3 ani în urmă
părinte
comite
887d56d838

+ 10 - 0
src/assets/styles/pages.scss

@@ -1086,6 +1086,16 @@
     margin-top: 40px;
     text-align: center;
   }
+  .step-title {
+    color: $--color-text-gray-3;
+    border: none;
+    outline: none;
+
+    &:hover,
+    &.is-active {
+      color: $--color-success;
+    }
+  }
 }
 .proficiency-edit {
   .el-form-item__content {

+ 12 - 9
src/modules/analysis/components/ModifyBaseConfig.vue

@@ -20,6 +20,7 @@
         >
           <el-button
             slot="title"
+            :class="['step-title', { 'is-active': curStep === ind }]"
             type="text"
             :disabled="item.disabled"
             @click="changeStep(ind)"
@@ -135,19 +136,21 @@ export default {
         moduleEvaluationList(datas)
       ];
       const result = await Promise.all(funcs).catch(() => {});
-      if (!result.length) return;
+      if (!result) return;
 
       result.forEach((item, index) => {
-        if (item) this.steps[index].status = "finish";
+        if (item) this.steps[index].status = "success";
       });
       this.steps.forEach(item => {
         item.disabled = item.status === "wait";
       });
-      const curFinishInd = this.steps.findIndex(
-        item => item.status === "finish"
-      );
-      if (curFinishInd !== this.steps.length - 1) {
-        this.curStep = curFinishInd + 1;
+      const nextStep = this.steps.findIndex(item => item.status !== "success");
+      if (
+        nextStep > -1 &&
+        nextStep !== this.steps.length - 1 &&
+        this.steps[nextStep].status === "wait"
+      ) {
+        this.curStep = nextStep;
         this.steps[this.curStep].status = "process";
       }
 
@@ -188,9 +191,9 @@ export default {
       };
       const stepVal = this.steps[this.curStep].val;
       const data = await sets[stepVal].func(datas);
-      this[sets[stepVal].listName] = data;
+      this.configs[sets[stepVal].listName] = data;
 
-      this.steps[this.curStep].status = "finish";
+      this.steps[this.curStep].status = "success";
       if (
         this.curStep !== this.steps.length - 1 &&
         this.steps[this.curStep + 1].status === "wait"

+ 13 - 10
src/modules/analysis/components/baseConfig/BlueprintConfig.vue

@@ -9,9 +9,9 @@
         <el-table-column prop="courseCode" label="课程代码"></el-table-column>
         <el-table-column prop="courseName" label="课程名称"> </el-table-column>
         <el-table-column prop="paperNumber" label="试卷编号"> </el-table-column>
-        <el-table-column prop="bigQuestionNumber" label="大题号" width="60">
+        <el-table-column prop="bigQuestionNumber" label="大题号" width="80">
         </el-table-column>
-        <el-table-column prop="smallQuestionNumber" label="小题号" width="60">
+        <el-table-column prop="smallQuestionNumber" label="小题号" width="80">
         </el-table-column>
         <el-table-column prop="bigTopicName" label="题目类型" width="80">
         </el-table-column>
@@ -19,7 +19,7 @@
         </el-table-column>
         <el-table-column prop="scoreRules" label="计分规则" width="80">
         </el-table-column>
-        <el-table-column prop="knowledgeDimension" label="知识模块" width="200">
+        <el-table-column prop="knowledgeDimension" label="知识模块" width="260">
           <template slot-scope="scope">
             <el-select
               v-model="scope.row.knowledgeDimension"
@@ -39,7 +39,7 @@
             </el-select>
           </template>
         </el-table-column>
-        <el-table-column prop="abilityDimension" label="能力模块" width="200">
+        <el-table-column prop="abilityDimension" label="能力模块" width="260">
           <template slot-scope="scope">
             <el-select
               v-model="scope.row.abilityDimension"
@@ -112,6 +112,9 @@ export default {
       downloadFilename: ""
     };
   },
+  created() {
+    this.initData();
+  },
   methods: {
     initData() {
       const { dimensionList, structList } = this.configs;
@@ -129,13 +132,13 @@ export default {
         .map(item => {
           return {
             name: item.namePrimary,
-            code: item.namePrimary
+            code: item.codePrimary
           };
         });
       const abilityCodes = this.abilityList.map(item => item.code);
       this.dataList = structList.map(item => {
         let nitem = { ...item };
-        let knowledgeDimension = item.knowledgeDimension.split();
+        let knowledgeDimension = (item.knowledgeDimension || "").split(",");
         if (knowledgeDimension.length) {
           knowledgeDimension = knowledgeDimension.filter(item =>
             knowledgeCodes.includes(item)
@@ -143,7 +146,7 @@ export default {
         }
         nitem.knowledgeDimension = knowledgeDimension;
 
-        let abilityDimension = item.abilityDimension.split();
+        let abilityDimension = (item.abilityDimension || "").split(",");
         if (abilityDimension.length) {
           abilityDimension = abilityDimension.filter(item =>
             abilityCodes.includes(item)
@@ -163,12 +166,12 @@ export default {
       this.dataList.forEach(item => {
         let names = [];
         if (!item.knowledgeDimension.length) names.push("知识模块");
-        if (!item.abilityDimension) names.push("能力模块");
+        if (!item.abilityDimension.length) names.push("能力模块");
 
         if (names.length) {
           errMsg.push(
             `第${item.bigQuestionNumber}大题、第${
-              itme.smallQuestionNumber
+              item.smallQuestionNumber
             }小题${names.join("和")}未选择`
           );
         }
@@ -176,7 +179,7 @@ export default {
 
       if (errMsg.length) {
         if (errMsg.length > 5) {
-          this.$message.error("未选择知识模块能力模块的小题数过多!");
+          this.$message.error("未选择知识模块能力模块的小题数过多!");
         } else {
           this.$message.error(errMsg.join("。"));
         }

+ 2 - 2
src/modules/analysis/components/baseConfig/CommentConfig.vue

@@ -117,8 +117,8 @@ export default {
             levelName: item.levelName,
             result: item.result,
             advice: item.advice,
-            startRate: item.min,
-            endRate: item.max
+            startRate: item.min * 1,
+            endRate: item.max * 1
           };
         });
       } else {

+ 8 - 4
src/modules/analysis/components/baseConfig/CommentKnowledge.vue

@@ -1,8 +1,12 @@
 <template>
   <div class="comment-knowledge">
     <el-table ref="TableList" :data="dataList">
-      <el-table-column prop="level" label="等级" width="60"></el-table-column>
-      <el-table-column prop="level" label="划分规划" width="280">
+      <el-table-column
+        prop="levelCode"
+        label="等级"
+        width="60"
+      ></el-table-column>
+      <el-table-column label="划分规划" width="280">
         <div
           slot-scope="scope"
           :class="[
@@ -40,12 +44,12 @@
         </div>
       </el-table-column>
       <el-table-column
-        prop="levelDesc"
+        prop="levelName"
         label="水平层次"
         width="140"
       ></el-table-column>
       <el-table-column prop="result" label="诊断结果"></el-table-column>
-      <el-table-column prop="suggest" label="学习建议"></el-table-column>
+      <el-table-column prop="advice" label="学习建议"></el-table-column>
       <el-table-column
         class-name="action-column"
         label="操作"

+ 12 - 12
src/modules/analysis/components/baseConfig/DiagnoseConfig.vue

@@ -169,17 +169,17 @@ export default {
     };
   },
   created() {
-    const { paperDefineInfo } = this.configs;
-    if (!paperDefineInfo) return;
+    const { defineList } = this.configs;
+    if (!defineList) return;
 
-    this.modalForm = this.$objAssign(initModalForm, paperDefineInfo);
-    this.modalForm.gradeModuleDefineParamList = paperDefineInfo.gradeModuleDefineParamList.map(
+    this.modalForm = this.$objAssign(initModalForm, defineList);
+    this.modalForm.gradeModuleDefineParamList = defineList.gradeModuleKnowledgeDefineParamList.map(
       item => {
         return {
           level: item.level,
           title: item.define.split(":")[0],
-          startRate: item.min,
-          endRate: item.max
+          startRate: item.min * 100,
+          endRate: item.max * 100
         };
       }
     );
@@ -204,19 +204,19 @@ export default {
       };
       datas.gradeModuleDefineParamList = this.modalForm.gradeModuleDefineParamList.map(
         item => {
-          const min = item.min / 100;
-          const max = item.max / 100;
+          const min = item.startRate / 100;
+          const max = item.endRate / 100;
           let scopeStr = "",
             defineStr = "";
-          if (item.max === 100) {
+          if (item.endRate === 100) {
             scopeStr = `[${min},${max}]`;
-            defineStr = `${item.title}:个人得分率≥${item.min}%`;
+            defineStr = `${item.title}:个人得分率≥${item.startRate}%`;
           } else if (item.min === 0) {
             scopeStr = `[${min},${max})`;
-            defineStr = `${item.title}:个人得分率<${item.max}%`;
+            defineStr = `${item.title}:个人得分率<${item.endRate}%`;
           } else {
             scopeStr = `[${min},${max})`;
-            defineStr = `${item.title}:${item.min}≤个人得分率<${item.max}%`;
+            defineStr = `${item.title}:${item.startRate}%≤个人得分率<${item.endRate}%`;
           }
 
           return {

+ 4 - 4
src/modules/analysis/components/baseConfig/DimensionAbilityList.vue

@@ -18,7 +18,7 @@
         <el-table-column
           class-name="action-column"
           label="操作"
-          width="160px"
+          width="180px"
           align="center"
         >
           <template slot-scope="scope">
@@ -30,7 +30,7 @@
               >编辑</el-button
             >
             <el-button
-              class="btn-primary"
+              class="btn-danger"
               type="text"
               :disabled="loading"
               @click="toDelete(scope)"
@@ -91,9 +91,9 @@ export default {
       }
     },
     datas: {
-      type: Object,
+      type: Array,
       default() {
-        return {};
+        return [];
       }
     }
   },

+ 2 - 2
src/modules/analysis/components/baseConfig/DimensionKnowledgeList.vue

@@ -96,9 +96,9 @@ export default {
       }
     },
     datas: {
-      type: Object,
+      type: Array,
       default() {
-        return {};
+        return [];
       }
     }
   },

+ 18 - 9
src/modules/analysis/views/AnalysisBatchManage.vue

@@ -2,16 +2,23 @@
   <div class="analysis-batch-manage">
     <div class="part-box part-box-filter part-box-flex">
       <el-form ref="FilterForm" label-position="left" label-width="85px" inline>
-        <el-form-item label="分析批次:">
-          <el-input
-            style="width:100%;"
-            v-model.trim="filter.gradeBatchName"
-            placeholder="请输入批次名称"
-            clearable
-          ></el-input>
-        </el-form-item>
+        <template v-if="checkPrivilege('condition', 'condition')">
+          <el-form-item label="分析批次:">
+            <el-input
+              style="width:100%;"
+              v-model.trim="filter.gradeBatchName"
+              placeholder="请输入批次名称"
+              clearable
+            ></el-input>
+          </el-form-item>
+        </template>
         <el-form-item>
-          <el-button type="primary" @click="toPage(1)">查询</el-button>
+          <el-button
+            v-if="checkPrivilege('button', 'select')"
+            type="primary"
+            @click="toPage(1)"
+            >查询</el-button
+          >
         </el-form-item>
       </el-form>
       <div class="part-box-action">
@@ -122,6 +129,8 @@ export default {
   },
   methods: {
     async getList() {
+      if (!this.checkPrivilege("list", "list")) return;
+
       const datas = {
         ...this.filter,
         pageNumber: this.current,

+ 30 - 30
src/modules/analysis/views/DataInitManage.vue

@@ -2,27 +2,34 @@
   <div class="data-init-manage">
     <div class="part-box part-box-filter part-box-flex">
       <el-form ref="FilterForm" label-position="left" label-width="55px" inline>
-        <el-form-item label="学期:">
-          <semester-select
-            v-model="filter.semesterId"
-            placeholder="学期"
-          ></semester-select>
-        </el-form-item>
-        <el-form-item label="考试:">
-          <exam-select
-            v-model="filter.examId"
-            :semester-id="filter.semesterId"
-            placeholder="考试"
-          ></exam-select>
-        </el-form-item>
-        <el-form-item label="课程:">
-          <course-select
-            v-model="filter.courseCode"
-            placeholder="课程"
-          ></course-select>
-        </el-form-item>
+        <template v-if="checkPrivilege('condition', 'condition')">
+          <el-form-item label="学期:">
+            <semester-select
+              v-model="filter.semesterId"
+              placeholder="学期"
+            ></semester-select>
+          </el-form-item>
+          <el-form-item label="考试:">
+            <exam-select
+              v-model="filter.examId"
+              :semester-id="filter.semesterId"
+              placeholder="考试"
+            ></exam-select>
+          </el-form-item>
+          <el-form-item label="课程:">
+            <course-select
+              v-model="filter.courseCode"
+              placeholder="课程"
+            ></course-select>
+          </el-form-item>
+        </template>
         <el-form-item>
-          <el-button type="primary" @click="toPage(1)">查询</el-button>
+          <el-button
+            v-if="checkPrivilege('button', 'select')"
+            type="primary"
+            @click="toPage(1)"
+            >查询</el-button
+          >
         </el-form-item>
       </el-form>
       <div class="part-box-action"></div>
@@ -51,18 +58,12 @@
         >
           <template slot-scope="scope">
             <el-button
+              v-if="checkPrivilege('link', 'window')"
               class="btn-primary"
               type="text"
               @click="toConfig(scope.row)"
               >基础配置</el-button
             >
-            <el-button
-              class="btn-primary"
-              type="text"
-              :disabled="loading"
-              @click="toAssignScore(scope.row)"
-              >赋分管理</el-button
-            >
           </template>
         </el-table-column>
       </el-table>
@@ -113,6 +114,8 @@ export default {
   },
   methods: {
     async getList() {
+      if (!this.checkPrivilege("list", "list")) return;
+
       const datas = {
         ...this.filter,
         pageNumber: this.current,
@@ -130,9 +133,6 @@ export default {
       console.log(row);
       this.curRow = row;
       this.$refs.ModifyBaseConfig.open();
-    },
-    async toAssignScore(row) {
-      console.log(row);
     }
   }
 };