浏览代码

Merge branch '03/03GRADE' into test

lex-xin 4 年之前
父节点
当前提交
f54432b258

+ 8 - 0
src/api/buildTeam.js

@@ -1490,6 +1490,14 @@ export function spanGroupMergeClassSplitClassAffirm(data) {
   })
 }
 
+// 获取用户所在分部的年级列表
+export function getMusicGroupGradeList(data) {
+  return request2({
+    url: api + '/musicGroup/getGradeList',
+    method: 'get',
+    params: data
+  })
+}
 // 获取乐保列表
 export function getInstrument(data) {
   return request2({

+ 4 - 0
src/constant/index.js

@@ -225,6 +225,10 @@ export const packageStatus = {
   2: '已使用',
 }
 
+export const gradeType = {
+  0: '6+3',
+  1: '5+4'
+}
 export const ProbationPeriodStatus = {
   0: '正式',
   1: '试用',

+ 6 - 2
src/utils/vueFilter.js

@@ -132,9 +132,9 @@ Vue.filter('studentTeamStatus', value => {
 })
 
 // 时间处理
-Vue.filter('dayjsFormat', (value) => {
+Vue.filter('dayjsFormat', (value, format = 'YYYY-MM-DD') => {
   if (value) {
-    return dayjs(value).format('YYYY-MM-DD')
+    return dayjs(value).format(format)
   } else {
     return value
   }
@@ -727,6 +727,10 @@ Vue.filter('studentPackage', value => {
   return constant.packageStatus[value]
 })
 
+// 分部 学年制
+Vue.filter('gradeTypeFormat', value => {
+  return constant.gradeType[value]
+})
 // 老师状态
 Vue.filter('ProbationPeriod', value => {
   return constant.ProbationPeriodStatus[value]

+ 29 - 7
src/views/categroyManager/specialSetup/branchSetting.vue

@@ -28,6 +28,12 @@
                            label="分部地址">
           </el-table-column>
           <el-table-column align='center'
+                           label="学年制">
+            <template slot-scope="scope">
+              {{ scope.row.gradeType | gradeTypeFormat }}
+            </template>
+          </el-table-column>
+          <el-table-column align='center'
                            label="成立时间">
             <template slot-scope="scope">
               {{ scope.row.registerDate | formatTimer }}
@@ -60,7 +66,7 @@
         <el-form-item label="分部名称"
                       prop="name"
                       :label-width="formLabelWidth">
-          <el-input v-model.trim="form.name"
+          <el-input v-model.trim="form.name" placeholder="请输入分部名称"
                     autocomplete="off"></el-input>
         </el-form-item>
         <el-form-item label="城市"
@@ -70,6 +76,7 @@
             <el-form-item prop="province">
               <el-select v-model.trim="form.province"
                          filterable
+                         placeholder="请选择省"
                          clearable
                          @change="onChangeProvince">
                 <el-option v-for="item in provinceList"
@@ -83,6 +90,7 @@
             <el-form-item prop="city">
               <el-select v-model.trim="form.city"
                          filterable
+                         placeholder="请选择市"
                          clearable>
                 <el-option v-for="item in cityList"
                            :key="item.value"
@@ -92,10 +100,21 @@
             </el-form-item>
           </el-col>
         </el-form-item>
+        <el-form-item label="学年制"
+                      prop="address"
+                      :label-width="formLabelWidth">
+          <el-select v-model.trim="form.gradeType"
+                         filterable
+                         placeholder="请选择学年制"
+                         clearable>
+                <el-option label="6+3" value="SIX_PLUS"></el-option>
+                <el-option label="5+4" value="FIVE_PLUS"></el-option>
+              </el-select>
+        </el-form-item>
         <el-form-item label="分部地址"
                       prop="address"
                       :label-width="formLabelWidth">
-          <el-input v-model.trim="form.address"
+          <el-input v-model.trim="form.address" placeholder="请输入分部地址"
                     autocomplete="off"></el-input>
         </el-form-item>
         <el-form-item label="成立时间"
@@ -107,7 +126,7 @@
                           :picker-options="{
                             firstDayOfWeek:1
                           }"
-                          placeholder="选择日期"></el-date-picker>
+                          placeholder="选择成立时间"></el-date-picker>
         </el-form-item>
       </el-form>
       <span slot="footer"
@@ -123,7 +142,6 @@
 <script>
 import pagination from '@/components/Pagination/index'
 import { branchQueryPage, areaQueryChild, branchAdd, branchUpdate, getParentArea } from '@/api/specialSetting'
-import store from '@/store'
 export default {
   name: 'branchSetting',
   components: { pagination },
@@ -152,14 +170,16 @@ export default {
         province: null,
         city: null,
         address: null,
-        registerDate: null
+        registerDate: null,
+        gradeType: 'SIX_PLUS',
       },
       rules: {
         name: [{ required: true, message: '请输入分部名称', trigger: 'blur' }],
         province: [{ required: true, message: '请选择省', trigger: 'change' }],
         city: [{ required: true, message: '请选择市', trigger: 'change' }],
         address: [{ required: true, message: '请输入分部地址', trigger: 'blur' }],
-        registerDate: [{ required: true, message: '请选择成立时间', trigger: 'change' }]
+        registerDate: [{ required: true, message: '请选择成立时间', trigger: 'change' }],
+        gradeType: [{ required: true, message: '请选择学年制', trigger: 'change' }]
       }
     }
   },
@@ -208,6 +228,7 @@ export default {
     },
     onFormClose (formName) { // 关闭弹窗重置验证
       this.$refs[formName].resetFields()
+      this.form.gradeType = 'SIX_PLUS'
     },
     getAreaList (parentId, callback) {
       parentId = parentId ? parentId : 0
@@ -249,7 +270,8 @@ export default {
                 province: res.data.id,
                 city: row.areaId,
                 address: row.address,
-                registerDate: row.registerDate
+                registerDate: row.registerDate,
+                gradeType: row.gradeType == 1 ? 'FIVE_PLUS' : 'SIX_PLUS'
               }
             })
 

+ 4 - 4
src/views/teamBuild/components/teamBaseInfo.vue

@@ -225,7 +225,7 @@
             placeholder="选择日期"
           ></el-date-picker>
         </el-form-item>
-        <el-form-item label="招生年级" v-if="basdisabled">
+        <!-- <el-form-item label="招生年级" v-if="basdisabled">
           <el-tooltip
             class="item"
             effect="dark"
@@ -236,8 +236,8 @@
               {{ startClassString }}
             </div>
           </el-tooltip>
-        </el-form-item>
-        <el-form-item
+        </el-form-item> -->
+        <!-- <el-form-item
           label="招生年级"
           v-else
           prop="startClass"
@@ -258,7 +258,7 @@
               :key="item.value"
             ></el-option>
           </el-select>
-        </el-form-item>
+        </el-form-item> -->
         <el-form-item
           label="课酬结算标准"
           :rules="[{ required: true, message: '请选择课酬结算标准' }]"

+ 42 - 6
src/views/teamBuild/signupList.vue

@@ -135,8 +135,8 @@
         @submit="search"
         @reset="onReset"
       >
-        <el-form-item label="专业">
-          <el-select v-model.trim="searchFrom.subject" filterable clearable>
+        <el-form-item >
+          <el-select v-model.trim="searchFrom.subject" filterable clearable placeholder="请选择专业">
             <el-option
               v-for="(item, index) in soundList"
               :key="index"
@@ -145,18 +145,30 @@
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="是否允许调剂">
+        <el-form-item >
           <el-select
             v-model.trim="searchFrom.isAllowAdjust"
             filterable
+            placeholder="请选择是否允许调剂"
             clearable
           >
             <el-option label="是" value="1"></el-option>
             <el-option label="否" value="0"></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="用户名或手机号">
-          <el-input v-model.trim="searchFrom.name" clearable></el-input>
+        <el-form-item>
+          <el-input v-model.trim="searchFrom.name" placeholder="请输入用户名或手机号" clearable></el-input>
+        </el-form-item>
+        <el-form-item>
+          <!-- <el-input v-model.trim="searchFrom.currentGrade" placeholder="请输入年级" clearable></el-input> -->
+          <el-select v-model.trim="searchFrom.currentGrade" filterable clearable placeholder="请输入年级">
+            <el-option
+              v-for="(item, index) in gradeList"
+              :key="index"
+              :label="item.label"
+              :value="item.label"
+            ></el-option>
+          </el-select>
         </el-form-item>
         <!-- 专业actualSubjectId 调剂isAllowAdjust 手机号name -->
         <el-form-item>
@@ -216,6 +228,11 @@
           </el-table-column>
           <el-table-column label="家长姓名" prop="parentsName" align="center">
           </el-table-column>
+          <el-table-column align="center" label="入团年份">
+            <template slot-scope="scope">
+              <div>{{ scope.row.currentGradeDate | dayjsFormat('YYYY年') }}</div>
+            </template>
+          </el-table-column>
           <el-table-column label="年级班级" align="center">
             <template slot-scope="scope">
               <div>
@@ -701,6 +718,7 @@ import {
   getTeamBaseInfo,
   studentApplyDetailExport,
   StudentQuit,
+  getMusicGroupGradeList
 } from "@/api/buildTeam";
 import mergeMusic from "./components/merge-music";
 import forecastList from "./components/forecast-list";
@@ -744,6 +762,7 @@ export default {
         name: "",
         subject: "", // 专业
         isAllowAdjust: "", // 是否允许调剂
+        currentGrade: null, // 入学年级
       },
       quitForm: {
         // 退团信息确认
@@ -850,7 +869,8 @@ export default {
       },
       isPay: false,
       applyDates: this.applyDate(),
-      detail: null,
+      detail:null,
+      gradeList: []
     };
   },
   created() {},
@@ -873,6 +893,20 @@ export default {
       this.teamName = this.$route.query.name;
       // 判断是否带缓存参数
       this.pickerOptions = this.beginDate(new Date());
+
+      getMusicGroupGradeList({ musicGroupId: this.id }).then(res => {
+        let result = res.data
+        if(res.code == 200 && result) {
+          for(let i in result) {
+            this.gradeList.push({
+              value: i,
+              label: result[i]
+            })
+          }
+        }
+      })
+
+
       getTeamBaseInfo({ musicGroupId: this.id }).then((res) => {
         if (res.code == 200) {
           this.organId = res.data.musicGroup.organId;
@@ -901,6 +935,7 @@ export default {
         name: null,
         subject: null, // 专业
         isAllowAdjust: null, // 是否允许调剂
+        currentGrade: null
       };
       this.getList();
     },
@@ -923,6 +958,7 @@ export default {
         actualSubjectId: this.searchFrom.subject || null,
         isAllowAdjust: this.searchFrom.isAllowAdjust || null,
         name: this.searchFrom.name || null,
+        currentGrade: this.searchFrom.currentGrade || null,
         page: this.rules.page,
         rows: this.rules.limit,
       };

+ 65 - 10
src/views/teamDetail/components/studentList.vue

@@ -44,7 +44,7 @@
       </statistic-item> -->
     <div style="margin-bottom: 15px;" class="studentListWrap">
       <el-button type="primary" v-permission="'studentRegistration/insertStudent'"
-              @click="addStudentVisible = true">新增学员</el-button>
+              @click="createStudentFrom">新增学员</el-button>
       <!-- 可以直接去学生考勤查看 -->
       <!-- <el-button type="primary" v-permission="'/studentSignin'"
               @click="gotoSignin">点名总览</el-button> -->
@@ -83,6 +83,29 @@
           <el-option label="报名" value="APPLY"></el-option>
         </el-select>
       </el-form-item>
+      <el-form-item prop="createYear">
+        <el-date-picker
+          v-model="searchForm.createYear"
+          type="year"
+          value-format="yyyy"
+          placeholder="选择入团年份">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item prop="currentGrade">
+        <!-- <el-input
+          v-model.trim="searchForm.currentGrade"
+          clearable
+          placeholder="学员年级"
+        ></el-input> -->
+        <el-select v-model.trim="searchForm.currentGrade" filterable clearable placeholder="请输入年级">
+          <el-option
+            v-for="(item, index) in gradeList"
+            :key="index"
+            :label="item.label"
+            :value="item.label"
+          ></el-option>
+        </el-select>
+      </el-form-item>
       <el-form-item prop="classGroupId">
         <el-select
           v-model.trim="searchForm.classGroupId"
@@ -240,6 +263,11 @@
             </copy-text>
           </template>
         </el-table-column>
+        <el-table-column align="center" label="入团年份">
+          <template slot-scope="scope">
+            <div>{{ scope.row.registerTime | dayjsFormat('YYYY年') }}</div>
+          </template>
+        </el-table-column>
         <el-table-column align="center" label="年级班级">
           <template slot-scope="scope">
             <div>{{ scope.row.currentGrade + scope.row.currentClass }}</div>
@@ -403,14 +431,15 @@
           ></el-input>
         </el-form-item>
 
-        <el-form-item label="年级" prop="startClass">
+        <el-form-item label="年级" prop="currentGradeNum">
           <el-select
             placeholder="起始年级"
             filterable
             clearable
-            v-model.trim="maskForm.startClass"
+            v-model.trim="maskForm.currentGradeNum"
           >
-            <el-option value="一年级" label="一年级"></el-option>
+          <el-option v-for="item in gradeList" :key="item.value" :label="item.label" :value="item.value"></el-option>
+            <!-- <el-option value="一年级" label="一年级"></el-option>
             <el-option value="二年级" label="二年级"></el-option>
             <el-option value="三年级" label="三年级"></el-option>
             <el-option value="四年级" label="四年级"></el-option>
@@ -421,7 +450,7 @@
             <el-option value="初三" label="初三"></el-option>
             <el-option value="高一" label="高一"></el-option>
             <el-option value="高二" label="高二"></el-option>
-            <el-option value="高三" label="高三"></el-option>
+            <el-option value="高三" label="高三"></el-option> -->
           </el-select>
         </el-form-item>
         <el-form-item label="班级" prop="course">
@@ -677,6 +706,7 @@ import {
   getMusicGroupAllClass,
   StudentFeeIsLock,
   updateStudentFee,
+  getMusicGroupGradeList
 } from "@/api/buildTeam";
 import {
   addStudent,
@@ -713,7 +743,6 @@ export default {
       addStudentVisible: false, //新增学员弹窗
       timesVisible: false,
       timerDetail: null,
-      teamid: '',
       topFrom: {
         // 顶部的禁选框集合
         expect: "2", // 预期招生
@@ -729,6 +758,8 @@ export default {
         search: "",
         isActive: "",
         oweFlag: '',
+        currentGrade: null,
+        createYear: null,
         classGroupId: null,
         hasCourse: null,
         carePackage: null,
@@ -772,6 +803,7 @@ export default {
       qrcodes: true,
       qrcode: null,
       codeUrl: null,
+      gradeList: [], // 学生
       maskForm: {
         studentName: "",
         sex: "",
@@ -787,6 +819,7 @@ export default {
         highonline: "",
         muiscnetwork: "",
         startClass: "",
+        currentGradeNum: null,
         id: "",
         // courseFee: null, // 声部费用
         temporaryCourseFee: null, // 本次课程费用
@@ -820,7 +853,7 @@ export default {
         timer: [{ required: true, message: "请选择出生日期" }],
         signClass: [{ required: true, message: "请选择声部班" }],
         // price: [{ required: true, message: '请输入首缴金额' },],
-        startClass: [{ required: true, message: "请选择年级" }],
+        currentGradeNum: [{ required: true, message: "请选择年级" }],
         id: [{ required: true, message: "请输入证件号" }],
         // courseFee: [{ required: true, message: "请输入声部费用" }],
         temporaryCourseFee: [{ required: true, message: "请输课程费用" }],
@@ -895,7 +928,7 @@ export default {
         1: "已缴费",
       };
       return template[val];
-    },
+    }
   },
   // activated() {
   //   this.init();
@@ -923,6 +956,19 @@ export default {
     },
     init() {
       this.teamid = this.$route.query.id;
+
+      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]
+            })
+          }
+        }
+      })
+
       // 获取汇总数据
       getTeamStudentInfo({ musicGroupId: this.teamid }).then((res) => {
         if (res.code == 200) {
@@ -1014,6 +1060,8 @@ export default {
         search: this.searchForm.search || null,
         isActive: this.searchForm.isActive || null,
         classGroupId: this.searchForm.classGroupId || null,
+        currentGrade: this.searchForm.currentGrade || null,
+        createYear: this.searchForm.createYear || null,
         hasCourse: this.searchForm.hasCourse || null,
         comeOnPackage: this.searchForm.comeOnPackage,
         carePackage: this.searchForm.carePackage,
@@ -1091,6 +1139,8 @@ export default {
         search: this.searchForm.search || null,
         isActive: this.searchForm.isActive || null,
         classGroupId: this.searchForm.classGroupId || null,
+        currentGrade: this.searchForm.currentGrade || null,
+        createYear: this.searchForm.createYear || null,
         oweFlag: this.searchForm.oweFlag || null,
         hasCourse: this.searchForm.hasCourse || null,
         comeOnPackage: this.searchForm.comeOnPackage,
@@ -1237,6 +1287,7 @@ export default {
               parentsName: maskForm.parentName,
               parentsPhone: maskForm.phone,
               currentGrade: maskForm.startClass,
+              currentGradeNum: maskForm.currentGradeNum,
               currentClass: maskForm.course,
               subjectId: maskForm.sound,
               musicGroupId: this.teamid,
@@ -1393,6 +1444,7 @@ export default {
               this.maskForm.parentName = res.data.parentsName;
               this.maskForm.course = res.data.currentClass;
               this.maskForm.startClass = res.data.currentGrade;
+              this.maskForm.currentGradeNum = res.data.currentGradeNum;
               this.maskForm.phone = val;
               this.maskForm.timer = res.data.birthdate;
             }
@@ -1488,6 +1540,9 @@ export default {
         },
       };
     },
+    createStudentFrom() {
+      this.addStudentVisible = true
+    }
   },
   watch: {
     quitVisible(val) {
@@ -1550,8 +1605,8 @@ export default {
 
 .studentInfo {
   /deep/.el-dialog__body {
-    padding-top: 0;
-    padding-bottom: 0;
+    // padding-top: 0;
+    // padding-bottom: 0;
   }
 }
 // .instrList {

+ 3 - 3
vue.config.js

@@ -17,11 +17,11 @@ const name = defaultSettings.title || '管乐迷后台管理系统' // page titl
 // http://47.99.212.176:8000
 // //  https://online.dayaedu.com
 // let target = 'https://online.dayaedu.com' //线上
+let target = 'https://test.dayaedu.com' //test环境
 // let target = 'http://192.168.3.139:8000' // 箭河
 // let target = 'http://192.168.3.38:8000' //邹璇
 // let target = 'http://192.168.3.57:8000' //勇哥
-let target = 'http://dev.dayaedu.com' // 测试服
-// let target = 'http://47.114.176.40:8000' //开发环境
+// let target = 'http://47.114.176.40:8000' // 测试服
 // let target = 'http://192.168.3.134' // 乔
 // All configuration item explanations can be find in https://cli.vuejs.org/config/
 module.exports = {
@@ -64,7 +64,7 @@ module.exports = {
       // http://192.168.3.134
       // http://47.114.176.40:8000
       '/api-auth': {
-        target: 'http://dev.dayaedu.com',
+        target: 'https://test.dayaedu.com',
         changeOrigin: true,
         pathRewrite: {
           '^api-auth': ''