Browse Source

提交一下加学生列表

1
mo 3 years ago
parent
commit
5520fe9e0c

+ 1 - 1
src/store/modules/permission.js

@@ -243,7 +243,7 @@ function setDetailRoute(accessedRoutes) {
           hidden: true,
           meta: {
             noCache: '1',
-            title: '乐团会员列表',
+            title: '乐团展演列表',
             belongTopMenu: "/main",
             activeMenu: '/main/main'
           }

+ 10 - 0
src/views/resetTeaming/components/archicesComponents/api.js

@@ -87,6 +87,16 @@ export const getStudentAndTeacher = data => request2({
 
 })
 
+// 查询学员列表
+export const getStudentList = data => request2({
+  url: '/api-web/musicGroupRecord/queryStudentInfo',
+  data ,
+  params:data,
+  method: 'get',
+  requestType:'form'
+
+})
+
 // 获取作业情况
 export const getHomeworkStat = data => request2({
   url: '/api-web/exercisesSituation/musicGroupHomeworkStat',

+ 46 - 27
src/views/resetTeaming/components/archicesComponents/modals/studentMaster.vue

@@ -1,9 +1,8 @@
 <template>
   <div>
-    <save-form
+    <el-form
       ref="searchForm"
       :inline="true"
-      save-key="studentMaster"
       class="searchForm"
       @submit="search"
       @reset="onReSet"
@@ -17,7 +16,7 @@
           @keyup.enter.native="search"
         ></el-input>
       </el-form-item>
-      <el-form-item prop="major">
+      <el-form-item prop="subjectId">
         <el-select
           v-model.trim="searchForm.subjectId"
           clearable
@@ -33,9 +32,9 @@
         </el-select>
       </el-form-item>
 
-      <el-form-item prop="currentGrade">
+      <el-form-item prop="currentGradeNum">
         <el-select
-          v-model.trim="searchForm.currentGrade"
+          v-model.trim="searchForm.currentGradeNum"
           filterable
           clearable
           placeholder="请选择年级"
@@ -44,13 +43,13 @@
             v-for="(item, index) in gradeList"
             :key="index"
             :label="item.label"
-            :value="item.label"
+            :value="item.value"
           ></el-option>
         </el-select>
       </el-form-item>
-      <el-form-item prop="oweFlag">
+      <el-form-item prop="isBuyInstrumentsInsurance">
         <el-select
-          v-model.trim="searchForm.oweFlag"
+          v-model="searchForm.isBuyInstrumentsInsurance"
           clearable
           filterable
           placeholder="是否购买月保"
@@ -62,21 +61,21 @@
       <el-form-item>
         <el-button native-type="submit" type="danger">搜索</el-button>
         <el-button type="primary" native-type="reset">重置</el-button>
-        <el-button
+        <!-- <el-button
           type="primary"
           v-permission="'export/musicGroupStudent'"
           @click="onMusicGroupExport"
           >导出</el-button
-        >
+        > -->
       </el-form-item>
-    </save-form>
+    </el-form>
     <el-table
       :data="tableList"
       :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
     >
       <el-table-column label="学员编号" width="120px;" prop="userId">
       </el-table-column>
-      <el-table-column label="学员姓名" width="120px;" prop="realName">
+      <el-table-column label="学员姓名" width="120px;" prop="name">
       </el-table-column>
       <el-table-column align="center" prop="phone" label="联系电话">
         <template slot-scope="scope">
@@ -88,44 +87,42 @@
       <el-table-column align="center" label="声部" prop="subjectName">
         <template slot-scope="scope">
           <copy-text>
-            {{ scope.row.regSubjectName }}
+            {{ scope.row.subjectName }}
           </copy-text>
         </template>
       </el-table-column>
       <el-table-column align="center" label="年级">
         <template slot-scope="scope">
-          <div>{{ scope.row.currentGrade + scope.row.currentClass }}</div>
+          <div>{{getGrade(scope.row.currentGradeNum)  }}</div>
         </template>
       </el-table-column>
       <el-table-column align="center" label="乐器品牌">
         <template slot-scope="scope">
-          <div>{{ scope.row.paymentStatus | paymentStatus }}</div>
+          <div>{{ scope.row.goodsBrand }}</div>
         </template>
       </el-table-column>
       <el-table-column align="center" label="乐器型号">
         <template slot-scope="scope">
-          <div>{{ scope.row.paymentStatus | paymentStatus }}</div>
+          <div>{{ scope.row.specification }}</div>
         </template>
       </el-table-column>
       <el-table-column align="center" label="购买日期">
         <template slot-scope="scope">
-          <div>{{ scope.row.paymentStatus | paymentStatus }}</div>
+          <div>{{ scope.row.goodsBuyTime | formatTimer }}</div>
         </template>
       </el-table-column>
       <el-table-column align="center" label="是否购买月保">
         <template slot-scope="scope">
-          <div>{{ scope.row.isActive ? "是" : "否" }}</div>
+          <div>{{ scope.row.insuranceStartTime ? "是" : "否" }}</div>
         </template>
       </el-table-column>
-      <el-table-column align="center" label="月保有效期">
+      <el-table-column align="center" label="月保有效期" width="100px">
         <template slot-scope="scope">
-          <div>{{ scope.row.hasCourse ? "是" : "否" }}</div>
+          <div>{{ scope.row.insuranceStartTime | formatTimer }}~{{ scope.row.insuranceEndTime | formatTimer }}</div>
         </template>
       </el-table-column>
     </el-table>
     <pagination
-      save-key="studentMaster"
-      sync
       :total.sync="rules.total"
       :page.sync="rules.page"
       :limit.sync="rules.limit"
@@ -135,9 +132,10 @@
   </div>
 </template>
 <script>
+import { getStudentList } from "../api"
 import pagination from "@/components/Pagination/index";
 export default {
-  props: ["searchForm", "soundList", "gradeList"],
+  props: ["searchForm", "soundList", "gradeList","gradeMap"],
   components:{pagination},
   data() {
     return {
@@ -151,12 +149,33 @@ export default {
       },
     };
   },
-  mounted() {},
+  mounted() {
+    this.getList()
+    console.log(this.searchForm)
+  },
   methods: {
-       getList(){},
+      async getList(){
+        try{
+          const res = await  getStudentList({...this.searchForm,page:this.rules.page,rows:this.rules.limit, musicGroupId: this.$route.query.id})
+          //  res.data.rows
+          this.tableList = res.data.rows
+          this.rules.total = res.data.total
+        }catch(e){
+
+        }
+
+       },
     onMusicGroupExport() {},
-    search() {},
-    onReSet() {},
+    search() {
+      this.rules.page = 1;
+      this.getList()
+    },
+    onReSet() {
+      this.search()
+    },
+    getGrade(id){
+      return this.gradeMap[id]
+    }
   },
 };
 </script>

+ 45 - 33
src/views/resetTeaming/components/archicesComponents/studentAndTeacher.vue

@@ -4,9 +4,9 @@
       <template slot="title">
         <div class="shapeWrap">
           <span class="shape"></span>
-          <p style="margin-right:5px">学员分布</p>
-          <span v-if="graduateNums>0" style="color: red; font-weight: bold"
-            >该乐团当前有{{graduateNums}}名学员在毕业年级</span
+          <p style="margin-right: 5px">学员分布</p>
+          <span v-if="graduateNums > 0" style="color: red; font-weight: bold"
+            >该乐团当前有{{ graduateNums }}名学员在毕业年级</span
           >
         </div>
       </template>
@@ -32,8 +32,8 @@
     <el-divider class="divider"></el-divider>
     <el-row class="row">
       <el-col class="col" :span="6" v-for="(item, index) in grade" :key="index">
-        <span class="col-title">{{ gradeMap[item.key ]}}:</span>
-        <span class="col-value" @click="getGradeInfo(gradeMap[item.key ])"
+        <span class="col-title">{{ gradeMap[item.key] }}:</span>
+        <span class="col-value" @click="getGradeInfo(String(item.key))"
           >{{ item.value }}人</span
         >
       </el-col>
@@ -43,7 +43,7 @@
       <template slot="title">
         <div class="shapeWrap">
           <span class="shape"></span>
-          <p style="margin-right:5px">师资安排</p>
+          <p style="margin-right: 5px">师资安排</p>
           <el-tooltip placement="top" popper-class="mTooltip">
             <div slot="content">师资安排中第一位为主教老师</div>
             <i
@@ -74,9 +74,11 @@
       v-if="studentVisible"
     >
       <studentMaster
+        v-if="studentVisible"
         :searchForm="searchForm"
         :soundList="soundList"
         :gradeList="gradeList"
+        :gradeMap="gradeMap"
       />
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="studentVisible = false"
@@ -89,9 +91,9 @@
 <script>
 import { getStudentAndTeacher } from "./api";
 import studentMaster from "./modals/studentMaster";
-import { getMusicGroupGradeList, findSound } from "@/api/buildTeam";
+import { findSound } from "@/api/buildTeam";
 export default {
-  props:['graduateNum'],
+  props: ["graduateNum"],
   components: { studentMaster },
   data() {
     return {
@@ -102,8 +104,8 @@ export default {
       searchForm: {
         search: "",
         subjectId: "",
-        currentGrade: "",
-        oweFlag: "",
+        currentGradeNum: "",
+        isBuyInstrumentsInsurance: "",
       },
       teamid: this.$route.query.id,
       soundList: [],
@@ -116,23 +118,20 @@ export default {
         this.soundList = res.data;
       }
     });
-    getMusicGroupGradeList({ musicGroupId: this.teamid }).then((res) => {
-      let result = res.data;
-      if (res.code == 200 && result) {
-        for (let i in result) {
-          this.gradeList.push({
-            value: i,
-            label: result[i],
-          });
-        }
-      }
-    });
+
     try {
       const res = await getStudentAndTeacher({
         musicGroupId: this.$route.query.id,
       });
       this.grade = res.data.grade;
-      this.gradeMap = res.data.gradeMap
+      this.gradeMap = res.data.gradeMap;
+      this.gradeList = [];
+      for (let i in this.gradeMap) {
+        this.gradeList.push({
+          value: i,
+          label: this.gradeMap[i],
+        });
+      }
       this.subject = res.data.subject;
       this.teacher = res.data.teacher;
     } catch (e) {
@@ -141,28 +140,41 @@ export default {
   },
   methods: {
     getSoundInfo(val) {
-      this.searchForm = {
+      this.$set(this,'searchForm',{
         search: "",
         subjectId: val,
-        currentGrade: "",
-        oweFlag: "",
-      };
+        currentGradeNum: "",
+        isBuyInstrumentsInsurance: "",
+      })
+      // this.searchForm = {
+      //   search: "",
+      //   subjectId: val,
+      //   currentGradeNum: "",
+      //   isBuyInstrumentsInsurance: "",
+      // };
+
       this.studentVisible = true;
     },
     getGradeInfo(val) {
-      this.searchForm = {
+            this.$set(this,'searchForm',{
         search: "",
         subjectId: "",
-        currentGrade: val,
-        oweFlag: "",
-      };
+        currentGradeNum:val,
+        isBuyInstrumentsInsurance: "",
+      })
+      // this.searchForm = {
+      //   search: "",
+      //   subjectId: "",
+      //   currentGradeNum: val,
+      //   isBuyInstrumentsInsurance: "",
+      // };
       this.studentVisible = true;
     },
   },
   computed: {
-    graduateNums(){
-      return this.graduateNum
-    }
+    graduateNums() {
+      return this.graduateNum;
+    },
   },
 };
 </script>

+ 13 - 6
src/views/resetTeaming/components/archicesComponents/trainPlan.vue

@@ -179,7 +179,7 @@ import { filterCourseType } from "@/constant/index";
 import addplan from "./modals/addPlan";
 import Tooltip from "@/components/Tooltip/index";
 export default {
-  props: ["planDtosList"],
+  props: ["planDtosList", "planDtosList1"],
   components: { addplan, Tooltip },
   data() {
     return {
@@ -216,12 +216,18 @@ export default {
   },
   computed: {
     exceptionPlan() {
-      let str = "该乐团当前学期";
-      this.planDtosList.forEach((plan,index) => {
-        str += `${index+1}.${plan.classGroupName}班${filterCourseType[plan.scheduleType]}${
-          plan.num
-        }未进行教学规划; `;
+      let str = "该乐团学期";
+      this.planDtosList.forEach((plan, index) => {
+        str += `${plan.classGroupName}班${plan.num}节${
+          filterCourseType[plan.scheduleType]
+        }未进行教学规划; `;
       });
+      this.planDtosList1.forEach((plan, index) => {
+        str += `${plan.classGroupName}班${
+          filterCourseType[plan.scheduleType]
+        }训练规划与课时数不符; `;
+      });
+
       return str;
     },
   },
@@ -337,6 +343,7 @@ export default {
           this.$message.error("当前学期该班级暂无此类型课程");
           return;
         }
+
         if (classDates.length >= musicGroupTrainPlans.length) {
           this.planList = res2.data.classDates.map((time, index) => {
             let dayStr = time.substring(0, 19);

+ 4 - 2
src/views/resetTeaming/components/musicArchices.vue

@@ -27,11 +27,11 @@
           slot="label"
           class="badge"
           is-dot
-          :hidden="!planDtosList.length>0"
+          :hidden="!planDtosList.length>0&&!planDtosList1.length>0"
 
           >训练规划</el-badge
         >
-        <trainPlan :planDtosList="planDtosList" v-if="activeIndex == 3"  @getPlanError="getPlanError"/>
+        <trainPlan :planDtosList="planDtosList" :planDtosList1="planDtosList1" v-if="activeIndex == 3"  @getPlanError="getPlanError"/>
       </el-tab-pane>
       <el-tab-pane
         label="训练时长"
@@ -114,6 +114,7 @@ export default {
     return {
       activeIndex: "training-photos",
     planDtosList:[],
+    planDtosList1:[],
     year:'',
     term:'',
     graduateNum:0,
@@ -144,6 +145,7 @@ export default {
      try{
        const res = await getExceptionPlan({musicGroupId:this.$route.query.id,year:this.year,term:this.term})
        this.planDtosList = res.data.waitCourseTrainPlanDtos
+        this.planDtosList1= res.data.waitCourseTrainPlanDtos1
        this.graduateNum = res.data.graduateNum
      }catch(e){
        console.log(e)