mo 2 years ago
parent
commit
cced59ec1e

+ 2 - 1
src/constant/index.js

@@ -297,7 +297,8 @@ export const downListType = {
   8: '订单汇总',
   8: '订单汇总',
   9: '乐团课表详情',
   9: '乐团课表详情',
   10: '乐团数据导出',
   10: '乐团数据导出',
-  11: '活动资格导出'
+  11: '活动资格导出',
+  12:'乐团学生指标导出',
 }
 }
 
 
 export const withdrawalStatus = {
 export const withdrawalStatus = {

+ 64 - 6
src/views/reportForm/index.vue

@@ -206,9 +206,8 @@
             $helpers.permission('export/studentVipPractice') ||
             $helpers.permission('export/studentVipPractice') ||
             $helpers.permission('export/exercisesSituation') ||
             $helpers.permission('export/exercisesSituation') ||
             $helpers.permission('export/exportIndexErrData') ||
             $helpers.permission('export/exportIndexErrData') ||
-            $helpers.permission('export/exportMusicGroupCourseList')||
+            $helpers.permission('export/exportMusicGroupCourseList') ||
             $helpers.permission('export/EXPORT_STUDENT_SUBCOURSE')
             $helpers.permission('export/EXPORT_STUDENT_SUBCOURSE')
-
           "
           "
         >
         >
           <template slot="title">
           <template slot="title">
@@ -593,10 +592,7 @@
               errorMsg="请选择导出月份"
               errorMsg="请选择导出月份"
             /> -->
             /> -->
           </div>
           </div>
-          <div
-            class="m-wrap"
-            v-permission="'export/EXPORT_STUDENT_SUBCOURSE'"
-          >
+          <div class="m-wrap" v-permission="'export/EXPORT_STUDENT_SUBCOURSE'">
             <div class="title">活动资格导出:</div>
             <div class="title">活动资格导出:</div>
             <select-all
             <select-all
               v-model.trim="activeOrganId"
               v-model.trim="activeOrganId"
@@ -621,7 +617,47 @@
               :exportData="exportActive"
               :exportData="exportActive"
               fileName="活动资格导出"
               fileName="活动资格导出"
               errorMsg="请选择分部"
               errorMsg="请选择分部"
+              :isDownList="true"
+            />
+          </div>
 
 
+          <div class="m-wrap" v-permission="'export/EXPORT_STUDENT_SERVE_INFO'">
+            <div class="title">乐团学生指标导出出:</div>
+            <select-all
+              v-model.trim="studentServerOrganId"
+              class="organSelect"
+              style="width: 100%"
+              filterable
+              multiple
+              placeholder="请选择分部"
+              clearable
+            >
+              <el-option
+                v-for="(item, index) in selects.branchs"
+                :key="index"
+                :label="item.name"
+                :value="item.id"
+              ></el-option>
+            </select-all>
+            <el-date-picker
+              v-model.trim="studentServerTimer"
+              style="width: 360px; margin-left: 15px"
+              type="daterange"
+              value-format="yyyy-MM-dd"
+              range-separator="至"
+              start-placeholder="开始日期"
+              end-placeholder="结束日期"
+              @change="getWeekTime"
+              :picker-options="{
+                firstDayOfWeek: 1,
+              }"
+            ></el-date-picker>
+            <ExportChiose
+              style="margin-left: 10px"
+              ExportEnum="EXPORT_STUDENT_SERVE_INFO"
+              :exportData="exportStudentServer"
+              fileName="乐团学生指标导出"
+              errorMsg="请选择分部"
               :isDownList="true"
               :isDownList="true"
             />
             />
           </div>
           </div>
@@ -867,6 +903,8 @@ export default {
       teamOrganId: [],
       teamOrganId: [],
       teamTimer: [],
       teamTimer: [],
       activeOrganId: [],
       activeOrganId: [],
+      studentServerOrganId: [],
+      studentServerTimer:[]
     };
     };
   },
   },
   mounted() {
   mounted() {
@@ -1637,6 +1675,26 @@ export default {
       };
       };
       return data;
       return data;
     },
     },
+    exportStudentServer() {
+      let sunday, monday;
+      if (this.studentServerTimer && this.studentServerTimer.length > 1) {
+        monday = this.studentServerTimer[0];
+        sunday = this.studentServerTimer[1];
+      } else {
+        monday = null;
+        sunday = null;
+      }
+      console.log( {
+        startTime: monday,
+        endTime: sunday,
+        organId: this.studentServerOrganId.join(","),
+      })
+      return {
+        startTime: monday,
+        endTime: sunday,
+        organId: this.studentServerOrganId.join(","),
+      };
+    },
 
 
     exportDetailService() {
     exportDetailService() {
       let sunday, monday;
       let sunday, monday;

+ 52 - 18
src/views/teamDetail/components/resetClass.vue

@@ -5,15 +5,21 @@
       <div class='squrt'></div>
       <div class='squrt'></div>
       班级调整
       班级调整
     </h2>-->
     </h2>-->
+    <!--    @change="changeMixClass" -->
     <div class="m-core">
     <div class="m-core">
       <div class="topWrap">
       <div class="topWrap">
-        <el-form :inline="true" :model="topForm">
-          <el-form-item label="班级类型">
+        <el-form
+          :inline="true"
+          :model="topForm"
+          @submit.stop.native="submit"
+          @reset.stop.native="reset"
+        >
+          <el-form-item>
             <el-select
             <el-select
               v-model.trim="topForm.classType"
               v-model.trim="topForm.classType"
               clearable
               clearable
               filterable
               filterable
-              @change="changeMixClass"
+              placeholder="请选择班级类型"
             >
             >
               <el-option
               <el-option
                 v-for="(item, index) in musicClassTypeList"
                 v-for="(item, index) in musicClassTypeList"
@@ -23,6 +29,21 @@
               ></el-option>
               ></el-option>
             </el-select>
             </el-select>
           </el-form-item>
           </el-form-item>
+          <el-form-item>
+            <el-select
+              v-model.trim="topForm.hasCourse"
+              clearable
+              filterable
+              placeholder="是否有剩余课程"
+            >
+              <el-option label="是" :value="1"></el-option>
+              <el-option label="否" :value="0"></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" native-type="submit">搜索</el-button>
+            <el-button type="danger" native-type="reset">重置</el-button>
+          </el-form-item>
         </el-form>
         </el-form>
       </div>
       </div>
       <div class="btnList">
       <div class="btnList">
@@ -197,8 +218,7 @@
                 <el-button
                 <el-button
                   type="text"
                   type="text"
                   v-if="
                   v-if="
-                    team_status == 'PROGRESS' &&
-                    permission('classGroup/update')
+                    team_status == 'PROGRESS' && permission('classGroup/update')
                   "
                   "
                   @click="resetClassName(scope.row)"
                   @click="resetClassName(scope.row)"
                   >班级名称调整</el-button
                   >班级名称调整</el-button
@@ -764,7 +784,7 @@ import qs from "qs";
 import { permission } from "@/utils/directivePage";
 import { permission } from "@/utils/directivePage";
 import { getCourseType } from "@/utils/utils";
 import { getCourseType } from "@/utils/utils";
 import { getSysTenantConfig } from "@/views/courseRulersManager/api";
 import { getSysTenantConfig } from "@/views/courseRulersManager/api";
-import {resetClassName} from '../api'
+import { resetClassName } from "../api";
 
 
 const formatClassGroupTeacherMapperList = (core, ass) => {
 const formatClassGroupTeacherMapperList = (core, ass) => {
   const list = [];
   const list = [];
@@ -805,6 +825,7 @@ export default {
       teamid: "",
       teamid: "",
       topForm: {
       topForm: {
         classType: "",
         classType: "",
+        hasCourse: "",
       },
       },
       studentSubmitedData: null,
       studentSubmitedData: null,
       infoDetail: null,
       infoDetail: null,
@@ -959,6 +980,18 @@ export default {
     this.tenantId = tenantConfig.tenantId;
     this.tenantId = tenantConfig.tenantId;
   },
   },
   methods: {
   methods: {
+    submit() {
+      this.getList();
+    },
+    reset() {
+      this.topForm = {
+        classType: "",
+        hasCourse: "",
+      };
+      this.$nextTick(() => {
+        this.getList();
+      });
+    },
     async getInstitutionRules() {
     async getInstitutionRules() {
       try {
       try {
         const res = await getSysTenantConfig({ group: "OFFLINE" });
         const res = await getSysTenantConfig({ group: "OFFLINE" });
@@ -1167,19 +1200,20 @@ export default {
       this.activeMixClass = val;
       this.activeMixClass = val;
     },
     },
     getList(val) {
     getList(val) {
-      getAllSignClassandTeacher({ musicGroupId: this.teamid, type: val }).then(
-        (res) => {
-          if (res.code == 200) {
-            this.activeSingleList = res.data;
-            if (res.data?.length > 0) {
-              this.mergeList = res.data.filter((item) => {
-                return item.type != "MUSIC_NETWORK";
-              });
-            }
-            // this.topForm.count = this.activeSingleList.length
+      getAllSignClassandTeacher({
+        musicGroupId: this.teamid,
+        ...this.topForm,
+      }).then((res) => {
+        if (res.code == 200) {
+          this.activeSingleList = res.data;
+          if (res.data?.length > 0) {
+            this.mergeList = res.data.filter((item) => {
+              return item.type != "MUSIC_NETWORK";
+            });
           }
           }
+          // this.topForm.count = this.activeSingleList.length
         }
         }
-      );
+      });
     },
     },
     // 临时调整
     // 临时调整
     temporary() {
     temporary() {
@@ -1823,7 +1857,7 @@ export default {
       this.classNameVisible = true;
       this.classNameVisible = true;
     },
     },
     async submitedResetClassName(data) {
     async submitedResetClassName(data) {
-      const obj = {...data};
+      const obj = { ...data };
       resetClassName(obj).then((res) => {
       resetClassName(obj).then((res) => {
         if (res.code == 200) {
         if (res.code == 200) {
           this.$message.success("修改成功");
           this.$message.success("修改成功");