浏览代码

feat: 培养方案调试完毕

zhangjie 1 年之前
父节点
当前提交
536d18a2ab

+ 8 - 4
src/modules/target/api.js

@@ -16,6 +16,9 @@ export const updateTrainingPlan = (datas) => {
 export const updateTrainingPlanDescription = (datas) => {
   return $post("/api/admin/obe/culture/program/description/save", datas);
 };
+export const updateTrainingPlanDetail = (id) => {
+  return $postParam("/api/admin/obe/culture/program/get", { id });
+};
 
 // 培养方案管理-培养目标 ------------------->
 export const trainingPlanTargetListPage = (datas) => {
@@ -32,10 +35,11 @@ export const updateTrainingPlanTarget = (datas) => {
 export const trainingPlanRequirementListPage = (datas) => {
   return $postParam("/api/admin/obe/culture/program/requirement/list", datas);
 };
-export const addTrainingPlanRequirementNode = (id) => {
-  return $postParam("/api/admin/obe/culture/program/requirement/node_add", {
-    id,
-  });
+export const addTrainingPlanRequirementNode = (datas) => {
+  return $postParam(
+    "/api/admin/obe/culture/program/requirement/node/add",
+    datas
+  );
 };
 export const deleteTrainingPlanRequirementNode = (id) => {
   return $postParam("/api/admin/obe/culture/program/requirement/remove", {

+ 11 - 1
src/modules/target/components/training-plan/DetailTrainingPlan.vue

@@ -21,7 +21,11 @@
     </div>
 
     <div v-if="modalIsShow">
-      <component :is="curTab" :row-data="rowData"></component>
+      <component
+        :is="curTab"
+        :row-data="dataInfo"
+        @update-detail="getDetail"
+      ></component>
     </div>
 
     <div slot="footer"></div>
@@ -29,6 +33,7 @@
 </template>
 
 <script>
+import { updateTrainingPlanDetail } from "../../api";
 import TrainingPlanBase from "./TrainingPlanBase.vue";
 import TrainingPlanTarget from "./TrainingPlanTarget.vue";
 import TrainingPlanRequirement from "./TrainingPlanRequirement.vue";
@@ -84,9 +89,14 @@ export default {
           val: "TrainingPlanCourseMatrix",
         },
       ],
+      dataInfo: {},
     };
   },
   methods: {
+    async getDetail() {
+      const res = await updateTrainingPlanDetail(this.rowData.id);
+      this.dataInfo = res || {};
+    },
     cancel() {
       this.modalIsShow = false;
     },

+ 7 - 4
src/modules/target/components/training-plan/ModifyTrainingPlanRequirementPredict.vue

@@ -3,7 +3,7 @@
     :visible.sync="modalIsShow"
     title="毕业要求预期值"
     top="10vh"
-    width="500px"
+    width="300px"
     :close-on-click-modal="false"
     :close-on-press-escape="false"
     append-to-body
@@ -39,14 +39,14 @@
 import { updateTrainingPlanRequirementPredict } from "../../api";
 
 const initModalForm = {
-  id: null,
+  cultureProgramId: null,
   expectValue: undefined,
 };
 
 export default {
   name: "modify-training-plan-requirement-predict",
   props: {
-    instance: {
+    rowData: {
       type: Object,
       default() {
         return {};
@@ -71,7 +71,10 @@ export default {
   },
   methods: {
     visibleChange() {
-      this.modalForm = this.$objAssign(initModalForm, this.instance);
+      this.modalForm = {
+        cultureProgramId: this.rowData.id,
+        expectValue: this.rowData.expectValue || undefined,
+      };
     },
     cancel() {
       this.modalIsShow = false;

+ 3 - 0
src/modules/target/components/training-plan/TrainingPlanBase.vue

@@ -37,6 +37,9 @@ export default {
   data() {
     return {};
   },
+  mounted() {
+    this.$emit("update-detail");
+  },
   methods: {},
 };
 </script>

+ 16 - 15
src/modules/target/components/training-plan/TrainingPlanCourseMatrix.vue

@@ -4,20 +4,20 @@
       :data="dataList"
       border
       :cell-style="cellStyleHandle"
-      :span-method="spanMethod"
+      :summary-method="getSummaries"
+      show-summary
     >
-      <el-table-column
-        lang="课程信息"
-        fixed="left"
-        :summary-method="getSummaries"
-        show-summary
-      >
+      <el-table-column label="课程信息" align="center">
         <el-table-column label="课程名称(代码)" min-width="200">
           <template slot-scope="scope">
             {{ scope.row.courseName }}({{ scope.row.courseCode }})
           </template>
         </el-table-column>
-        <el-table-column label="学分" width="80"></el-table-column>
+        <el-table-column
+          label="学分"
+          prop="credit"
+          width="80"
+        ></el-table-column>
       </el-table-column>
       <el-table-column label="毕业要求" align="center">
         <template v-if="hasSubRequirements">
@@ -32,6 +32,7 @@
               :key="subr.name"
               :label="subr.name === 'null' ? '' : subr.name"
               align="center"
+              :prop="`${column.name}_${subr.name}`"
             >
               <template slot-scope="scope">
                 <el-input-number
@@ -66,6 +67,7 @@
             :key="cindex"
             :label="column.name"
             align="center"
+            :prop="`${column.name}_null`"
           >
             <template slot-scope="scope">
               <el-input-number
@@ -241,11 +243,11 @@ export default {
         };
       }
     },
-    spanMethod({ rowIndex, columnIndex }) {
-      if (rowIndex === 0 && columnIndex === 0) {
-        return { rowspan: 2, colspan: this.hasSubRequirements ? 2 : 1 };
-      }
-    },
+    // spanMethod({ rowIndex, columnIndex }) {
+    //   if (rowIndex === 0 && columnIndex === 0) {
+    //     return { rowspan: 2, colspan: this.hasSubRequirements ? 2 : 1 };
+    //   }
+    // },
     getSummaries(param) {
       const { columns } = param;
       const sums = [];
@@ -259,9 +261,8 @@ export default {
           return;
         }
 
-        const key = ``;
         sums[index] = calcSum(
-          this.dataList.map((item) => item[key].value || 0)
+          this.dataList.map((item) => item[column.property].value || 0)
         );
       });
       return sums;

+ 8 - 1
src/modules/target/components/training-plan/TrainingPlanRequirement.vue

@@ -59,6 +59,7 @@
     <modify-training-plan-requirement-predict
       ref="ModifyTrainingPlanRequirementPredict"
       :row-data="rowData"
+      @modified="predictChange"
     ></modify-training-plan-requirement-predict>
   </div>
 </template>
@@ -114,7 +115,10 @@ export default {
       });
     },
     async toAddNode(row) {
-      await addTrainingPlanRequirementNode(row.id);
+      await addTrainingPlanRequirementNode({
+        cultureProgramId: this.rowData.id,
+        id: row.id,
+      });
       await this.getList();
     },
     toEdit(row) {
@@ -124,6 +128,9 @@ export default {
     toEditPredict() {
       this.$refs.ModifyTrainingPlanRequirementPredict.open();
     },
+    predictChange() {
+      this.$emit("update-detail");
+    },
     async toDeleteNode(row) {
       const confirm = await this.$confirm(
         `确定要删除 ${row.parentName} 【${row.label}】吗?`,

+ 2 - 0
src/modules/target/components/training-plan/TrainingPlanTarget.vue

@@ -98,6 +98,7 @@ export default {
     };
   },
   mounted() {
+    this.modalForm.description = this.rowData.description;
     this.getList();
   },
   methods: {
@@ -135,6 +136,7 @@ export default {
         id: this.rowData.id,
         description: this.modalForm.description,
       });
+      this.$emit("update-detail");
     },
   },
 };