lrf402788946 il y a 5 ans
Parent
commit
b582b2dac3

+ 35 - 32
src/views/new-plan/arrange/school-arrange.vue

@@ -2,7 +2,7 @@
   <div id="school-arrange">
     <detail-frame :title="pageTitle">
       <!-- 大表 -->
-      <el-card v-loading="!already" style="min-height:500px">
+      <!-- <el-card v-loading="!already" style="min-height:500px">
         <el-row type="flex" align="middle" justify="end" style="padding-bottom:10px">
           <el-col :span="2">
             <el-button type="success" size="mini" @click="toSave">保存计划</el-button>
@@ -15,8 +15,6 @@
           </el-col>
         </el-row>
         <el-table :data="list" border stripe size="mini" max-height="650px" @cell-click="cellClick" :show-summary="true" v-if="already">
-          <!-- :cell-style="cellStyle"
-          :cell-class-name="cellClass" -->
           <el-table-column label="学校" fixed align="center" prop="name" width="180">
             <template v-slot="{ row }">
               <el-row>
@@ -39,7 +37,8 @@
             </el-table-column>
           </el-table-column>
         </el-table>
-      </el-card>
+      </el-card> -->
+      <a-table :termList="termList"></a-table>
     </detail-frame>
 
     <el-drawer :visible.sync="drawer" direction="rtl" title="名额分配" @close="toClose">
@@ -132,6 +131,7 @@
 </template>
 
 <script>
+import aTable from './table/table';
 import _ from 'lodash';
 var moment = require('moment');
 import detailFrame from '@frame/layout/admin/detail-frame';
@@ -143,7 +143,7 @@ const { mapActions: schPlan } = createNamespacedHelpers('schPlan');
 export default {
   name: 'school-arrange',
   props: {},
-  components: { detailFrame },
+  components: { detailFrame, aTable },
   data: () => {
     return {
       list: [],
@@ -162,8 +162,8 @@ export default {
   },
   async created() {
     await this.toGetTrainPlan();
-    await this.toGetTrainTemplate();
-    await this.getSchool();
+    // await this.toGetTrainTemplate();
+    // await this.getSchool();
   },
   methods: {
     ...util({ modelFetch: 'fetch' }),
@@ -412,35 +412,38 @@ export default {
       res = _.compact(res);
       return res;
     },
-    //整理(事件)列表
-    getTermList() {
+    //整理批次(事件)列表
+    getBatchList() {
       let events = this.resetEvents();
-      let arr = _.toPairs(_.groupBy(events, 'termid'));
-      let res = arr.map(i => {
-        i = _.flatten(_.remove(i, r => _.isArray(r)));
-        let tpt = i.reduce((prev, next) => {
-          let num = next.number ? next.number * 1 * next.class : next.class * _.get(this.template, 'stunum', 0);
-          return prev + num;
-        }, 0);
-        let { start, term, termid } = _.head(i);
-        let { end } = _.last(i);
-        return { start, end, term, tpt, remaining: tpt, termid }; //tpt:该期总人数 ,remaining:剩余人数
-      });
-      this.$set(this, `termList`, res);
+      this.$set(this, `termList`, events);
+      // let arr = _.toPairs(_.groupBy(events, 'termid'));
+      // let res = arr.map(i => {
+      //   i = _.flatten(_.remove(i, r => _.isArray(r)));
+      //   let tpt = i.reduce((prev, next) => {
+      //     let num = next.number ? next.number * 1 * next.class : next.class * _.get(this.template, 'stunum', 0);
+      //     return prev + num;
+      //   }, 0);
+      //   let { start, term, termid } = _.head(i);
+      //   let { end } = _.last(i);
+      //   return { start, end, term, tpt, remaining: tpt, termid }; //tpt:该期总人数 ,remaining:剩余人数
+      // });
+      // this.$set(this, `termList`, res);
+      this.already = true;
     },
     //整理计划=>和日历的 events 一样
     resetEvents() {
       let events = _.get(this.plan, 'termnum', []);
-      events = events.map(i => {
-        let tobj = { term: i.term, termid: i._id };
-        return i.batchnum.map(bat => {
-          let { startdate: start, enddate: end, ...info } = bat;
-          let bobj = { ...info, ...tobj, start, end };
-          return bobj;
-        });
-      });
-      events = _.flatten(events);
       return events;
+      // events = events.map(i => {
+      //   let tobj = { term: i.term, termid: i._id };
+      //   return i.batchnum.map(bat => {
+      //     let { startdate: start, enddate: end, ...info } = bat;
+      //     let bobj = { ...info, ...tobj, start, end };
+      //     return bobj;
+      //   });
+      // });
+      // events = _.flatten(events);
+      // return events;
     },
     //名额统计
     getTotal() {
@@ -505,7 +508,7 @@ export default {
     },
     //分配重置
     async toReset() {
-      this.getTermList();
+      this.getBatchList();
       let list = this.list.map(i => {
         let arr = ['address', 'code', 'daterange', 'hascar', 'level', 'name', 'shortname', 'number', 'plan'];
         let object = _.pick(i, arr);
@@ -603,7 +606,7 @@ export default {
       let res = await this.getTrainPlan(planid);
       if (this.$checkRes(res)) {
         this.$set(this, `plan`, res.data);
-        this.getTermList();
+        this.getBatchList();
       }
     },
     //获取计划模板

+ 72 - 0
src/views/new-plan/arrange/table/table-title.vue

@@ -0,0 +1,72 @@
+<template>
+  <div id="table-title">
+    <el-row type="flex" align="middle">
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+      <el-col :span="6">学校名称</el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import _ from 'lodash';
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'table-title',
+  props: {
+    termList: { type: Array, default: () => [] },
+  },
+  components: {},
+  data: function() {
+    return {};
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+    pageTitle() {
+      return `${this.$route.meta.title}`;
+    },
+    tList() {
+      return _.cloneDeep(this.termList);
+    },
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+};
+</script>
+
+<style lang="less" scoped>
+.el-col {
+  text-align: center;
+  border-right: solid 0.5px #ccc;
+}
+</style>

+ 41 - 0
src/views/new-plan/arrange/table/table.vue

@@ -0,0 +1,41 @@
+<template>
+  <div id="table-frame">
+    <el-card>
+      <div style="border:1px solid #ccc;max-width:1200px">
+        <t-title :termList="tList"></t-title>
+      </div>
+    </el-card>
+  </div>
+</template>
+
+<script>
+import _ from 'lodash';
+import tTitle from './table-title.vue';
+import { mapState, createNamespacedHelpers } from 'vuex';
+export default {
+  name: 'table-frame',
+  props: {
+    termList: { type: Array, default: () => [] },
+  },
+  components: { tTitle },
+  data: function() {
+    return {};
+  },
+  created() {},
+  methods: {},
+  computed: {
+    ...mapState(['user']),
+    pageTitle() {
+      return `${this.$route.meta.title}`;
+    },
+    tList() {
+      return _.cloneDeep(this.termList);
+    },
+  },
+  metaInfo() {
+    return { title: this.$route.meta.title };
+  },
+};
+</script>
+
+<style lang="less" scoped></style>