Browse Source

Merge branch 'master' of http://git.cc-lotus.info/new_train/train-center

reloaded 5 years ago
parent
commit
280ede6264

+ 32 - 10
src/views/train-plan/parts/term-lesson-table.vue

@@ -19,8 +19,15 @@
         </template>
       </el-table-column>
       <el-table-column align="center" label="课程内容" prop="subname" :show-overflow-tooltip="true"></el-table-column>
-      <el-table-column align="center" label="1班" prop="name_1" :show-overflow-tooltip="true"></el-table-column>
-      <el-table-column align="center" label="2班" prop="name_2" :show-overflow-tooltip="true"></el-table-column>
+      <el-table-column
+        align="center"
+        v-for="(i, index) in classList"
+        :key="index"
+        :label="`${i.name}班`"
+        :prop="`name_${index + 1}`"
+        :show-overflow-tooltip="true"
+      ></el-table-column>
+      <!-- <el-table-column align="center" label="2班(需要改班级名)" prop="name_2" :show-overflow-tooltip="true"></el-table-column> -->
     </el-table>
   </div>
 </template>
@@ -43,6 +50,7 @@ export default {
   created() {},
   methods: {
     spanTable({ row, column, rowIndex, columnIndex }, arrayName) {
+      let { type } = row;
       let res = { rowspan: 1, colspan: 1 };
       let l = _.get(this.list, 'length');
       let b = this.batch * 1;
@@ -54,14 +62,15 @@ export default {
       // b为该期的批次 batch
       // 左侧是:0+6;1+6;2+6 => b-1+6
       // 右侧是: l-1 -2; l-1  -1; l-1 -0 => l-1 -(3-b)
-      if (_.inRange(rowIndex, b + 5, l - 4 + b) && columnIndex < 1) {
-        res.colspan = 3;
-      }
-      if (_.inRange(rowIndex, b + 5, l - 4 + b) && columnIndex >= 1 && columnIndex <= 2) {
-        res.colspan = 0;
-      }
-      if (rowIndex == l - 1) {
-        res.colspan = 5;
+      //用row的type字段搞定了,上面的是以前思路,现在判断type就行,lesson和undefined不管;allday是全合并;headteacher/lyteacher/jslocation 是合并3个
+      if (type == 'allday') res.colspan = 3 + this.classList.length; //TODO此处需要计算正常的3列(日期,星期,课程内容)后有几个班 x = 3+c(班级数量)
+      if (type == 'headteacher' || type == 'lyteacher' || type == 'jslocation') {
+        if (columnIndex < 1) {
+          res.colspan = 3;
+        }
+        if (columnIndex >= 1 && columnIndex <= 2) {
+          res.colspan = 0;
+        }
       }
       return res;
     },
@@ -94,6 +103,19 @@ export default {
     list() {
       return _.cloneDeep(this.data);
     },
+    classList() {
+      let res = [];
+      if (this.data.length > 0) {
+        let midarr = this.data.filter(f => f.type == 'lesson');
+        let mid = _.head(midarr);
+        let keys = Object.keys(mid).filter(f => f.includes('class_'));
+        for (const key of keys) {
+          let name = mid[key];
+          res.push({ name });
+        }
+      }
+      return res;
+    },
   },
   metaInfo() {
     return { title: this.$route.meta.title };

+ 1 - 0
src/views/train-plan/term-lesson.vue

@@ -194,6 +194,7 @@ export default {
           }
           obj.batch = i.batch;
           obj[`classid_${index + 1}`] = i._id;
+          obj[`class_${index + 1}`] = i.name;
           obj['type'] = 'lesson';
           return obj;
         });