Browse Source

提交修改

1
mo 3 years ago
parent
commit
10be9432bb

+ 1 - 1
src/api/buildTeam.js

@@ -1543,7 +1543,7 @@ export function updateStudentInstrument(data) {
 
 export function findUserByRole(data) {
   return request2({
-    url: api + `/employee/findUserByRole`,
+    url: api + `/organization/getOrganRole`,
     method: 'get',
     params:data,
   })

+ 71 - 29
src/constant/guide.js

@@ -1,32 +1,74 @@
 export const guideList = {
-  organ:{
-    name:'分部',
-    desc:'分部用于区分本机构下各校区,各分部员工只可查询和操作本分部数据',
-    path:'/sysBasics/branchSetting',
-    permission:'/branchSetting'
-  },
-  teamManager:{
-    name:'乐团主管',
-    desc:'乐团主管是直接管理乐团的负责人,可在分部中设置各分部的乐团主管',
-    path:'/sysBasics/branchSetting',
-    permission:'/branchSetting'
-  },
-  teamPayType:{
-    name:'收费类型',
-    desc:'收费类型用于区分乐团运营模式,不同类型的乐团可设置不同的课程定价',
-    path:'/baseRulesClassSetting',
-    permission:'/globalConfig/chargesList'
-  },
-  cooperationOrgan:{
-    name:'合作单位',
-    desc:'合作单位既合作学校,乐团需从属与具体合作单位',
-    path:'/sysBasics/branchManager',
-    permission:'/branchManager'
-  },
-  school:{
-    name:'教学点',
-    desc:'教学点是乐团线下课的上线地点,学员和老师需根据教学点前往制定地点上课,同时老师需在教学点定位范围内进行考勤',
-    path:'/sysBasics/addressManager',
-    permission:'/addressManager'
+  organ: {
+    name: '分部',
+    desc: '分部用于区分本机构下各校区,各分部员工只可查询和操作本分部数据',
+    path: '/sysBasics/branchSetting',
+    permission: '/branchSetting'
   },
+  teamManager: {
+    name: '乐团主管',
+    desc: '乐团主管是直接管理乐团的负责人,可在分部中设置各分部的乐团主管',
+    path: '/sysBasics/branchSetting',
+    permission: '/branchSetting'
+  },
+  teamPayType: {
+    name: '乐团类型',
+    desc: '乐团类型用于区分乐团运营模式,不同类型的乐团可设置不同的课程定价',
+    path: '/baseRulesClassSetting?tabrouter=6',
+    permission: '/globalConfig/chargesList'
+  },
+  cooperationOrgan: {
+    name: '合作单位',
+    desc: '合作单位既合作学校,乐团需从属与具体合作单位',
+    path: '/sysBasics/branchManager',
+    permission: '/branchManager'
+  },
+  school: {
+    name: '教学点',
+    desc: '教学点是乐团线下课的上线地点,学员和老师需根据教学点前往制定地点上课,同时老师需在教学点定位范围内进行考勤',
+    path: '/sysBasics/addressManager',
+    permission: '/addressManager'
+  },
+  teamCourseFee: {
+    name: '乐团课程单价费用',
+    desc: '乐团各类型课程都需设置每分钟价格,设置完成后创建缴费时会以此价格乘以课时时长计算学员应付价格标准',
+    path: '/baseRulesClassSetting?tabrouter=2',
+    permission: '/globalConfig/musicCourseFee'
+  },
+  teamCourseType: {
+    name: '乐团收费标准',
+    desc: '支持创建标准的乐团训练课程组合,创建后乐团中可直接选择该课程标准对学员进行销售',
+    path: '/baseRulesClassSetting?tabrouter=6',
+    permission: '/globalConfig/chargesList'
+  },
+  memberList: {
+    name: '团练宝定价',
+    desc: '可对不同分部设置团练宝学员购买价格,若不设置则学员不可购买团练宝',
+    path: '/productSystem?tabrouter=2',
+    permission: '/memberFeeSet'
+  },
+  teacher:{
+    name: '新增老师',
+    desc: '新增可设置老师基本信息、分部、执教声部、课酬等参数',
+    path: '/teacherManager/teacherList',
+    permission: '/teacherList'
+  },
+  holiday:{
+    name: '节假日设置',
+    desc: '设置节假日后,排课时可选择跳过节假日',
+    path: '/holidaySetting',
+    permission: '/globalConfig/holidaySetting'
+  },
+  teamCourseTimer:{
+    name: '课程时长设置',
+    desc: '可设置各分部各类型课程的单课时标准时长,设置完成后可选择已设置的时长进行排课',
+    path: '/baseRulesClassSetting?tabrouter=1',
+    permission: '/globalConfig/courseTimerSetting'
+  },
+  vipPrice:{
+    name: '小班课课时单价',
+    desc: '用于计算学员购买小班课时需要支持的金额',
+    path: '/sysBasics/vipChargeSeting',
+    permission: '/vipChargeSeting'
+  }
 }

+ 5 - 5
src/layout/components/AppMain.vue

@@ -16,12 +16,12 @@
         <router-view v-if="!needKeep" :key="key" /> -->
       </div>
     </transition>
-    <el-dialog :visible.sync="guideVisible" title="您需要完成以下设置" width="800px" :modal="false" v-if="guideList.length>0">
+    <el-dialog :visible.sync="guideVisible" title="您需要完成以下设置" width="800px" :modal="false" v-if="guideList.length>0" append-to-body>
       <div class="guideWrap">
         <div class="guideItem" v-for="guide in guideList" :key="guide.name">
           <p>
             <span class="guideTitle">{{guide.name}}</span>
-            <el-button type='text' @click="gotoSet(guide.path)" v-if="permission(guide.permission)">立即设置 >></el-button>
+            <el-button type='text' @click="gotoSet(guide)" v-if="permission(guide.permission)">立即设置 >></el-button>
             <span v-else>您暂无此设置权限,请联系机构管理员</span>
           </p>
           <p>{{guide.desc}}</p>
@@ -60,7 +60,6 @@ export default {
     },
   },
   mounted() {
-    console.log(guideList,'111')
     this.$bus.$on('showguide',(obj)=>{
        this.guideList = []
       obj.forEach(element => {
@@ -87,8 +86,9 @@ export default {
     openIns() {
       this.$refs.instructions.showInstructions();
     },
-    gotoSet(path){
-      this.$router.push({path})
+    gotoSet(guide){
+      console.log()
+      this.$router.push({path:guide.path})
       this.guideVisible = false;
     },
     permission(str){

+ 11 - 1
src/views/baseRulesClassSetting/index.vue

@@ -24,7 +24,7 @@
           <courseTimerSetting v-if="activeIndex == 1" />
         </el-tab-pane>
         <el-tab-pane
-          label="乐团模式设置"
+          label="乐团类型设置"
           lazy
           name="6"
           v-if="permissionList.typesManager"
@@ -100,11 +100,21 @@ export default {
       },
     };
   },
+  mounted(){
+    console.log(this.$route.query)
+  },
   methods: {
     handleClick(val) {
       this.activeIndex = val.name;
     },
   },
+  watch:{
+    '$route.query'(val){
+      if(val.tabrouter){
+        this.handleClick(val.tabrouter)
+      }
+    }
+  }
 };
 </script>
 <style lang="scss" scoped>

+ 55 - 23
src/views/buildVip/index.vue

@@ -83,8 +83,8 @@
               <el-option
                 v-for="(item, index) in educationList"
                 :key="index"
-                :label="item.userName"
-                :value="item.userId"
+                :label="item.value"
+                :value="item.key"
               />
             </el-select>
           </el-form-item>
@@ -215,9 +215,11 @@
           </el-form-item>
           <el-form-item label="每课时长" prop="classTime">
             <el-select
-            @change="()=>{
-              computationalBtn = false
-            }"
+              @change="
+                () => {
+                  computationalBtn = false;
+                }
+              "
               v-model.trim="leftForm.classTime"
               :disabled="timeTable.length > 0 || classTimeDis"
             >
@@ -466,7 +468,6 @@
               <template slot-scope="scope">
                 <el-input-number
                   :disabled="true"
-                  
                   @change="changeStudentMoney"
                   style="width: 90% !important"
                   class="number-input"
@@ -486,7 +487,6 @@
               <template slot-scope="scope">
                 <el-input-number
                   @change="changeStudentMoney"
-                  
                   style="width: 90% !important"
                   class="number-input"
                   :disabled="true"
@@ -519,7 +519,6 @@
               </template>
               <template slot-scope="scope">
                 <el-input-number
-                  
                   style="width: 90% !important"
                   class="number-input"
                   v-model="scope.row.paymentPrice"
@@ -672,6 +671,7 @@ import {
   getSubject,
   findEducationUsers,
   getPracticeApplySubjects,
+  findUserByRole,
 } from "@/api/buildTeam";
 import {
   vipGroupCategory,
@@ -807,7 +807,7 @@ export default {
         educationalTeacherId: [
           {
             required: true,
-            message: "请选择教务",
+            message: "请选择乐团主管",
             trigger: "change",
           },
         ],
@@ -1116,6 +1116,10 @@ export default {
       }
       // 获取所有科目的接口
       await this.$store.dispatch("setBranchs");
+      if (this.selects.branchs.length <= 0) {
+        this.$bus.$emit("showguide", ["organ"]);
+      }
+
       if (this.courseType == "PRACTICE") {
         getPracticeApplySubjects().then((res) => {
           if (res.code == 200) {
@@ -1139,7 +1143,6 @@ export default {
       this.courseOption = this.coursesDate();
     },
     onCourseNumChange(type) {
-
       // 折扣类型,并且设置的排课数有值
       this.computationalBtn = false;
       let centerForm = this.centerForm;
@@ -1204,7 +1207,7 @@ export default {
       };
     },
     changeSubject(val) {
-      this.computationalBtn = false
+      this.computationalBtn = false;
       this.leftForm.teacher = "";
       this.leftForm.section = "";
       // 根据科目id获取相应的老师
@@ -1214,6 +1217,10 @@ export default {
       }).then((res) => {
         if (res.code == 200) {
           this.teacherList = res.data;
+           if( this.teacherList.length <=0){
+          this.$bus.$emit("showguide", ['teacher']);
+          return
+        }
         }
       });
       // getTeacherBySubject({ subjecId: val }).then(res => {
@@ -1228,7 +1235,7 @@ export default {
       this.rightForm.offlineCourse = "";
       this.rightForm.onlineCourse = "";
       this.leftForm.activeType = "";
-       this.computationalBtn = false;
+      this.computationalBtn = false;
       this.leftForm.students = []; // 重置所选学生
       this.changePrice(val);
     },
@@ -1249,6 +1256,11 @@ export default {
           // 线下课单节价格
           this.rightForm.offlinePrice =
             this.courseTypeList[i].offlineClassesUnitPrice;
+
+            if(this.rightForm.onlinePrice<=0 || this.rightForm.offlinePrice<=0){
+               this.$bus.$emit("showguide", ['vipPrice']);
+              return
+            }
           this.isMusicTheory = this.courseTypeList[i].musicTheory;
         }
       }
@@ -2030,7 +2042,7 @@ export default {
       this.leftForm.section = "";
       this.rightForm.offlineCourse = "";
       this.rightForm.onlineCourse = "";
-      this.computationalBtn = false
+      this.computationalBtn = false;
       // this.leftForm.courseType = "";
       if (val) {
         getTeachSchool({
@@ -2038,6 +2050,10 @@ export default {
         }).then((res) => {
           if (res.code == 200) {
             this.scetionList = res.data;
+        //         if(this.scetionList.length <=0){
+        //   this.$bus.$emit("showguide", ['teamPayType']);
+        //   return
+        // }
           }
         });
       }
@@ -2081,10 +2097,10 @@ export default {
     //     }
     //   });
     // },
-    onClassChange(val) {
+    async onClassChange(val) {
       // 课程分部改变时
       // 老师 乐团主管 都要重置
-      this.computationalBtn = false
+      this.computationalBtn = false;
       this.studentList = [];
       this.activeStudentList = [];
       this.$set(this.leftForm, "students", []);
@@ -2114,16 +2130,32 @@ export default {
           }
         });
         // 获取乐团主管
-        findEducationUsers({ organId: val }).then((res) => {
-          if (res.code == 200) {
-            this.educationList = res.data;
+        try {
+          const ruselt = await findUserByRole({
+            id: val,
+          });
+          this.educationList = ruselt?.data?.educationId;
+          if (this.educationList.length <= 0) {
+            this.$bus.$emit("showguide", ["teamManager"]);
+            return
           }
-        });
+        } catch (e) {
+          console.log(e);
+        }
+        /**
+         *
+        // 乐团主管
+        this.educationList = ruselt?.data?.educationId;
+         */
+        // findEducationUsers({ organId: val }).then((res) => {
+        //   if (res.code == 200) {
+        //     this.educationList = res.data;
+        //   }
+        // });
         // 如果是网管课 则获取网管课单价
         if (this.courseType == "PRACTICE") {
           getPracticeGroupSellPrice({ organId: val }).then((res) => {
             if (res.code == 200) {
-              console.log(res);
               this.rightForm.onlinePrice = res.data.singleClassMinutesPrice;
             }
           });
@@ -2269,8 +2301,8 @@ export default {
       }
     },
     changeStudent(val) {
-      this.computationalBtn = false
-      this.chioseActive()
+      this.computationalBtn = false;
+      this.chioseActive();
       this.leftForm.activeType = "";
       this.activeStudentList = [];
       this.chioseStudent = val;
@@ -2306,7 +2338,7 @@ export default {
       }
     },
     changeStudentP(val) {
-      this.chioseActive()
+      this.chioseActive();
       this.leftForm.activeType = "";
       this.activeStudentList = [];
       this.chioseStudent = val;

+ 2 - 2
src/views/categroyManager/accompanyBaseConfig.vue

@@ -61,7 +61,7 @@
           >保存</el-button
         > -->
         </el-row>
-        <el-row class="row">
+        <!-- <el-row class="row">
           网管课可预约时间为每日
           <el-time-picker
             v-model="form['46']"
@@ -86,7 +86,7 @@
             placeholder="请选择时间"
           >
           </el-time-picker>。
-        </el-row>
+        </el-row> -->
         <el-alert
           style="margin: 20px 0"
           title="试听课设置"

+ 29 - 24
src/views/categroyManager/insideSetting/branchManager.vue

@@ -7,7 +7,6 @@
     <div class="m-core">
       <!-- 搜索类型 -->
       <save-form
-        
         :inline="true"
         class="searchForm"
         @submit="search"
@@ -63,8 +62,7 @@
         @click="openTeaching('create')"
         v-permission="'cooperationOrgan/add'"
         type="primary"
-        style="margin-bottom:20px"
-        
+        style="margin-bottom: 20px"
       >
         新建
       </el-button>
@@ -72,7 +70,6 @@
       <!-- 列表 -->
       <div class="tableWrap">
         <el-table
-         
           :data="tableList"
           :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
         >
@@ -154,14 +151,13 @@
           >
             <el-input
               v-model.trim="form.name"
-               :disabled="basdisabled"
+              :disabled="basdisabled"
               autocomplete="off"
               style="width: 180px !important"
             ></el-input>
           </el-form-item>
           <el-form-item
             label="所属分部"
-
             prop="organId"
             :label-width="formLabelWidth"
           >
@@ -197,14 +193,14 @@
               clearable
             >
               <el-option
-                v-for="(item, index) in educationList"
-                :key="index"
-                :label="item.realName"
-                :value="item.userId"
+                v-for="item in educationList"
+                :key="item.key"
+                :label="item.value"
+                :value="item.key"
               >
-                <span style="float: left">{{ item.realName }}</span>
+                <span style="float: left">{{ item.value }}</span>
                 <span style="float: right; color: #8492a6; font-size: 13px">{{
-                  String(item.userId)
+                  String(item.key)
                 }}</span>
               </el-option>
             </el-select>
@@ -315,7 +311,10 @@
 
       <span slot="footer" class="dialog-footer">
         <el-button @click="teachingStatus = false">取 消</el-button>
-        <el-button type="primary" v-if="!basdisabled" @click="onTeachingSubmit('ruleForm')"
+        <el-button
+          type="primary"
+          v-if="!basdisabled"
+          @click="onTeachingSubmit('ruleForm')"
           >确 定</el-button
         >
       </span>
@@ -409,11 +408,14 @@ export default {
       actionRow: null,
     };
   },
-  mounted() {
+  async mounted() {
     this.getList(); // 获取列表数据
 
     // 获取当前用户分部
-    this.$store.dispatch("setBranchs");
+    await this.$store.dispatch("setBranchs");
+    if (this.selects.branchs.length <= 0) {
+      this.$bus.$emit("showguide", ["organ"]);
+    }
   },
   methods: {
     onDelete(rows) {
@@ -585,10 +587,12 @@ export default {
       if (val) {
         try {
           const ruselt = await findUserByRole({
-            organId: val,
-            employeeRole: "EDUCATION",
+            id: val,
           });
-          this.educationList = ruselt?.data?.EDUCATION;
+          this.educationList = ruselt?.data?.educationId;
+          if (this.educationList.length <= 0) {
+            this.$bus.$emit("showguide", ["teamManager"]);
+          }
         } catch (e) {
           console.log(e);
         }
@@ -618,13 +622,14 @@ export default {
         });
       }
     },
-  },watch:{
-    teachingStatus(val){
-      if(!val){
-        this.getList()
+  },
+  watch: {
+    teachingStatus(val) {
+      if (!val) {
+        this.getList();
       }
-    }
-  }
+    },
+  },
 };
 </script>
 <style lang="scss" scoped>

+ 19 - 1
src/views/categroyManager/specialSetup/branchSetting.vue

@@ -224,6 +224,21 @@
             </el-option>
           </el-select>
         </el-form-item>
+               <el-form-item label="衔接老师" prop="joinTeacherId" :label-width="formLabelWidth">
+          <el-select v-model.trim="form.joinTeacherId" filterable clearable multiple>
+            <el-option
+              v-for="item in employeeList"
+              :key="item.id"
+              :label="item.realName"
+              :value="item.id+''"
+            >
+              <span style="float: left">{{ item.realName }}</span>
+              <span style="float: right; color: #8492a6; font-size: 13px">{{
+                String(item.id)
+              }}</span>
+            </el-option>
+          </el-select>
+        </el-form-item>
       </el-form>
       <span slot="footer" class="dialog-footer">
         <el-button @click="branchStatus = false">取 消</el-button>
@@ -278,6 +293,7 @@ export default {
         organManager: [],
         educationId: [],
         repairId: [],
+        joinTeacherId:[]
       },
       rules: {
         name: [{ required: true, message: "请输入分部名称", trigger: "blur" }],
@@ -308,7 +324,8 @@ export default {
           ...this.form,
           organManager:this.form.organManager.join(','),
           educationId:this.form.educationId.join(','),
-          repairId:this.form.repairId.join(',')
+          repairId:this.form.repairId.join(','),
+          joinTeacherId:this.form.joinTeacherId.join(',')
         }
 
         if (this.formActionTitle == "create") {
@@ -403,6 +420,7 @@ export default {
                 gradeType: row.gradeType == 1 ? "FIVE_PLUS" : "SIX_PLUS",
                 organManager:row.organManager?row.organManager.split(','):[],
                 repairId:row.repairId?row.repairId.split(','):[],
+                joinTeacherId:row.joinTeacherId?row.joinTeacherId.split(','):[],
                 educationId:row.educationId?row.educationId.split(','):[],
               };
             });

+ 6 - 2
src/views/categroyManager/specialSetup/chargesList.vue

@@ -89,10 +89,10 @@
           <el-table-column align='center'
                            label="操作">
             <template slot-scope="scope">
-              <el-button @click="onChargeOperation('update', scope.row)" 
+              <el-button @click="onChargeOperation('update', scope.row)"
                          v-permission="'musicGroupOrganizationCourseSettings/update'"
                          type="text">修改</el-button>
-              <el-button @click="onChargeDelete(scope.row)" 
+              <el-button @click="onChargeDelete(scope.row)"
                          v-permission="'musicGroupOrganizationCourseSettings/delSetting'"
                          type="text">删除</el-button>
             </template>
@@ -192,6 +192,10 @@ export default {
           })
         })
         this.typesById = typesById
+            if( res.data.rows.length <=0){
+          this.$bus.$emit("showguide", ['teamPayType']);
+          return
+        }
       }
     })
 

+ 10 - 6
src/views/categroyManager/specialSetup/musicCourseFee.vue

@@ -7,7 +7,7 @@
                @reset="onReSet"
                ref="searchForm"
                :saveKey="'musicCourseFee'"
-               
+
                :model="searchForm">
         <el-form-item prop="organId">
           <el-select placeholder="请选择分部"
@@ -58,7 +58,7 @@
           </el-table-column>
           <el-table-column align="center"
                            prop="chargeName"
-                           label="缴费形态">
+                           label="乐团类型">
             <template slot-scope="scope">{{
               scope.row.chargeType.name
             }}</template>
@@ -80,7 +80,7 @@
           <el-table-column align="center"
                            label="操作">
             <template slot-scope="scope">
-              <el-button @click="openTypes(scope.row)" 
+              <el-button @click="openTypes(scope.row)"
                          v-permission="'organizationCourseUnitPriceSettings/update'"
                          type="text">修改</el-button>
             </template>
@@ -102,7 +102,7 @@
                width="500px">
       <el-form :model="createForm"
                class="createForm"
-               
+
                ref="ruleForm">
         <el-form-item label="所属分部"
                       :rules="[{ required: true, message: '所属分部', trigger: 'blur' }]"
@@ -137,7 +137,7 @@
         </el-form-item>
         <div v-for="(item, index) in dataList"
              :key="index">
-          <el-form-item :label="`${item.name}模式`"
+          <el-form-item :label="`${item.name}乐团类型`"
                         :label-width="formLabelWidth"
                         :rules="[
               {
@@ -170,7 +170,7 @@
                destroy-on-close>
       <el-form :model="resetForm"
                class="resetForm"
-               
+
                ref="resetForm">
         <el-form-item label="所属分部"
                       :rules="[{ required: true, message: '所属分部', trigger: 'blur' }]"
@@ -289,6 +289,10 @@ export default {
         this.dataList.forEach((item) => {
           this.$set(this.createForm.unitPriceJson, item.id, null);
         });
+        if(this.dataList.length <=0){
+          this.$bus.$emit("showguide", ['teamPayType']);
+          return
+        }
       }
     });
     // 获取分部

+ 3 - 3
src/views/categroyManager/specialSetup/typesManager.vue

@@ -8,11 +8,11 @@
       <!-- 列表 -->
       <div class="tableWrap">
         <el-table :data='tableList'
-        
+
                   :header-cell-style="{background:'#EDEEF0',color:'#444'}">
           <el-table-column align='center'
                            prop="name"
-                           label="收费类型">
+                           label="乐团类型">
           </el-table-column>
           <el-table-column align='center'
                            prop="description"
@@ -46,7 +46,7 @@
       <el-form :model="form"
                :rules="rules"
                ref="ruleForm" >
-        <el-form-item label="收费类型"
+        <el-form-item label="乐团类型"
                       prop="name"
                       :label-width="formLabelWidth">
           <el-input v-model.trim="form.name"

+ 6 - 0
src/views/resetTeaming/components/resetPayList.vue

@@ -616,6 +616,12 @@ export default {
         rows: 9999,
       });
       this.organizationCourseUnitPriceSettings = res.data.rows;
+      // this.organizationCourseUnitPriceSettings=[];
+      if(this.organizationCourseUnitPriceSettings.length<=0){
+          this.$bus.$emit("showguide", ['teamCourseFee']);
+          return
+      }
+
     } catch (error) {}
     this.init();
   },

+ 6 - 2
src/views/resetTeaming/components/resetPayListSchool.vue

@@ -555,20 +555,24 @@ export default {
       payOrderTypeLists: payOrderTypeList,
       getMoneyVisible: false,
       baseInfo: null,
-      paymentType:''
+      paymentType: "",
     };
   },
   //生命周期 - 创建完成(可以访问当前this实例)
   created() {},
   //生命周期 - 挂载完成(可以访问DOM元素)
   async mounted() {
-   this.paymentType=this.team_status == 'PRE_BUILD_FEE' ? 0 : 1
+    this.paymentType = this.team_status == "PRE_BUILD_FEE" ? 0 : 1;
     // 获取分部
     try {
       const res = await getOrganizationCourseUnitPriceSettings({
         rows: 9999,
       });
       this.organizationCourseUnitPriceSettings = res.data.rows;
+      if (this.organizationCourseUnitPriceSettings.length <= 0) {
+        this.$bus.$emit("showguide", ["teamCourseFee"]);
+        return;
+      }
     } catch (error) {}
     this.init();
   },

+ 14 - 8
src/views/resetTeaming/modals/member-setting.vue

@@ -145,14 +145,13 @@ export default {
     }
     this.$set(this.form, "memberValidDate", 6);
   },
-  beforeDestroy(){
+  beforeDestroy() {
     this.$set(this.form, "memo", null);
-       this.$set(this.form, "memberRankSettingId", null);
-        this.$set(this.form, "memberValidDate", null);
-        this.$set(this.form, "memberPaymentAmount", null);
-        this.$set(this.form, "originalMemberPaymentAmount", null);
-        this.$set(this.form, "paymentDate", []);
-
+    this.$set(this.form, "memberRankSettingId", null);
+    this.$set(this.form, "memberValidDate", null);
+    this.$set(this.form, "memberPaymentAmount", null);
+    this.$set(this.form, "originalMemberPaymentAmount", null);
+    this.$set(this.form, "paymentDate", []);
   },
   methods: {
     async memberRankSettingIdChange(val) {
@@ -162,7 +161,10 @@ export default {
             rankId: val,
             organId: this.organId,
           });
-          if (res.data?.groupPurchaseHalfYearFee && res.data?.originalHalfYearFee) {
+          if (
+            res.data?.groupPurchaseHalfYearFee &&
+            res.data?.originalHalfYearFee
+          ) {
             this.$set(
               this.form,
               "memberPaymentAmount",
@@ -176,6 +178,10 @@ export default {
           } else {
             this.$message.error("请设置该会员的默认价格");
           }
+          if (!res.data) {
+            this.$bus.$emit("showguide", ["memberList"]);
+            return;
+          }
         } catch (e) {
           console.log(e);
         }

+ 1 - 1
src/views/resetTeaming/modals/user-baseinfo.vue

@@ -41,7 +41,7 @@
       v-if="isCommon && form.musicGroupOrganizationCourseSettingId != 0 && courseViewType != 2"
       type="warning">
       <template #title>
-        <p>该乐团为{{chargeTypeName}}模式,若需创建其他模式的收费标准,请先修改乐团基本信息中的乐团模式
+        <p>该乐团为{{chargeTypeName}}类型,若需创建其他类型的收费标准,请先修改乐团基本信息中的乐团类型
           <strong style="font-weight: 600;margin-left: 10px;cursor: pointer;" @click="changeActive">立即修改>></strong>
       </p>
       </template>

+ 6 - 1
src/views/resetTeaming/modals/user-pay-form.vue

@@ -192,7 +192,7 @@
             icon="el-icon-circle-plus-outline"
             plain
             type="info"
-            
+
             style="width: 100%; margin: 20px 0"
             @click="addCycle"
             >新增缴费周期</el-button
@@ -677,6 +677,11 @@ export default {
           this.$set(this.form, "musicGroupOrganizationCourseSettingId", null);
         }
         this.charges = res.data.rows;
+        // this.charges =[];
+           if(this.charges.length<=0){
+          this.$bus.$emit("showguide", ['teamCourseFee']);
+          return
+      }
       } catch (error) {}
     },
     addExtraClass() {

+ 1 - 1
src/views/teamBuild/components/soundSetComponents/chioseMusic.vue

@@ -145,7 +145,7 @@
         type="info"
         plain
         style="width: 558px"
-        
+
         icon="el-icon-plus"
         @click="addMusic"
         >新增可选乐器</el-button

+ 61 - 35
src/views/teamBuild/components/teamBaseInfo.vue

@@ -33,9 +33,9 @@
           </el-select>
         </el-form-item>
         <el-form-item
-          label="收费类型"
+          label="乐团类型"
           prop="type"
-          :rules="[{ required: true, message: '收费类型不能为空' }]"
+          :rules="[{ required: true, message: '乐团类型不能为空' }]"
         >
           <el-select
             v-model.trim="topFrom.type"
@@ -251,12 +251,12 @@
             <el-option
               v-for="(item, index) in educationList"
               :key="index"
-              :label="item.realName"
-              :value="item.userId"
+              :label="item.value"
+              :value="item.key"
             >
-              <span style="float: left">{{ item.realName }}</span>
+              <span style="float: left">{{ item.value }}</span>
               <span style="float: right; color: #8492a6; font-size: 13px">{{
-                String(item.userId)
+                String(item.key)
               }}</span>
             </el-option>
           </el-select>
@@ -292,12 +292,12 @@
             <el-option
               v-for="(item, index) in technician"
               :key="index"
-              :label="item.userName"
-              :value="item.userId"
+              :label="item.value"
+              :value="item.key"
             >
-              <span style="float: left">{{ item.realName }}</span>
+              <span style="float: left">{{ item.value }}</span>
               <span style="float: right; color: #8492a6; font-size: 13px">{{
-                String(item.userId)
+                String(item.key)
               }}</span>
             </el-option>
           </el-select>
@@ -311,13 +311,13 @@
           >
             <el-option
               v-for="item in transactionList"
-              :key="item.userId"
-              :label="item.realName"
-              :value="item.userId"
+              :key="item.key"
+              :label="item.value"
+              :value="item.key"
             >
-              <span style="float: left">{{ item.realName }}</span>
+              <span style="float: left">{{ item.value }}</span>
               <span style="float: right; color: #8492a6; font-size: 13px">{{
-                String(item.userId)
+                String(item.key)
               }}</span>
             </el-option>
           </el-select>
@@ -760,7 +760,7 @@ export default {
           if (this.typeList.length <= 0) {
             arr.push("teamPayType");
           }
-           this.$bus.$emit('showguide',arr)
+          this.$bus.$emit("showguide", arr);
         }
       );
       // console.log('到这里来',getEmployeeOrgan())
@@ -778,31 +778,35 @@ export default {
     },
     async getBaseList(val) {
       // 合作单位
-      queryByOrganId({ organId: val }).then((res) => {
-        if (res.code == 200) {
-          this.cooperationList = res.data;
-        }
-      });
+      // queryByOrganId({ organId: val }).then((res) => {
+      //   if (res.code == 200) {
+      //     this.cooperationList = res.data;
+      //   }
+      // });
       // 教学点=>学校
-      getSchool({ organId: val }).then((res) => {
-        if (res.code == 200) {
-          this.addList = res.data;
-        }
-      });
+      // getSchool({ organId: val }).then((res) => {
+      //   if (res.code == 200) {
+      //     this.addList = res.data;
+      //   }
+      // });
       // 获取维修技师
-      findTechnician().then((res) => {
-        if (res.code == 200) {
-          this.technician = res.data;
-        }
-      });
+      // findTechnician().then((res) => {
+      //   if (res.code == 200) {
+      //     this.technician = res.data;
+      //   }
+      // });
       // 获取乐团主管
       try {
         const ruselt = await findUserByRole({
-          organId: val,
+          id: val,
         });
-        this.educationList = ruselt?.data?.EDUCATION;
-        this.bossList = ruselt?.data?.TEAM_TEACHER;
-        this.transactionList = ruselt?.data?.TRANSACTION;
+        // 乐团主管
+        this.educationList = ruselt?.data?.educationId;
+        // 维修技师
+      this.technician =ruselt?.data?.repairId
+        // this.bossList = ruselt?.data?.TEAM_TEACHER;
+             // 衔接老师
+        this.transactionList = ruselt?.data?.joinTeacherId;
       } catch (e) {
         console.log(e);
       }
@@ -822,6 +826,28 @@ export default {
           this.teacherList = res.data;
         }
       });
+      Promise.all([
+        queryByOrganId({ organId: val }),
+        getSchool({ organId: val }),
+      ]).then((values) => {
+        if (values[0].code == 200) {
+          this.cooperationList = values[0].data;
+        }
+        if (values[1].code == 200) {
+          this.addList = values[1].data;
+        }
+        let arr = [];
+        if (this.cooperationList.length <= 0) {
+          arr.push("cooperationOrgan");
+        }
+        if (this.addList.length <= 0) {
+          arr.push("school");
+        }
+        if (arr.length > 0) {
+          this.$bus.$emit("showguide", arr);
+          return;
+        }
+      });
     },
     chioseSchool(val) {
       // 清除教学点

+ 9 - 3
src/views/teamDetail/components/modals/classroom-setting-merge.vue

@@ -238,6 +238,11 @@ export default {
         organId: this.musicGroup.organId,
       });
       this.prices = res.data;
+      if (JSON.stringify(this.prices) == "{}") {
+        // 课程时长
+        this.$bus.$emit("showguide", ["teamCourseTimer"]);
+        return;
+      }
     } catch (error) {}
     this.setCourseTypeListByName();
     this.formatClasss();
@@ -392,15 +397,16 @@ export default {
               } else if (this.classType == 5) {
                 // 这里是合班拆班
                 let obj = {};
-                obj.musicGroupPaymentCalenderDtos = this.musicGroupPaymentCalenderDtos;
+                obj.musicGroupPaymentCalenderDtos =
+                  this.musicGroupPaymentCalenderDtos;
                 obj.classGroup4MixDtos = list;
                 obj.classGroupIds = this.classIdList;
                 obj.studentIds = this.studentSubmitedData.seleched;
                 obj.classGroupStudents = this.classGroupStudents;
                 obj.classCourseMinuteMap = this.selectPrices;
                 await mergeClassSplitClassAffirm(obj);
-                let grend = this.$parent.$parent.$parent.$parent.$parent.$parent
-                  .$parent;
+                let grend =
+                  this.$parent.$parent.$parent.$parent.$parent.$parent.$parent;
                 grend.closeStudentReset();
                 grend.getList();
                 return;

+ 33 - 20
src/views/teamDetail/components/modals/classroom-setting.vue

@@ -168,7 +168,8 @@ import {
 import courseItem from "./classroom-setting-item";
 import { classTimeList } from "@/utils/searchArray";
 import MusicStore from "@/views/resetTeaming/store";
-import { sysConfigList } from "@/api/generalSettings";
+
+import { getSysTenantConfig } from "@/views/courseRulersManager/api";
 import { queryByOrganIdAndCourseType } from "@/views/resetTeaming/api";
 import { isEmpty } from "lodash";
 import classromePreview from "./classroom-preview";
@@ -270,27 +271,40 @@ export default {
     },
   },
   async mounted() {
-    try {
-      await MusicStore.dispatch("getBaseInfo", {
-        data: { musicGroupId: this.musicGroupId },
-      });
-      const res = await queryByOrganIdAndCourseType({
-        organId: this.musicGroup.organId,
-      });
-      this.prices = res.data;
-    } catch (error) {}
     this.setCourseTypeListByName();
     this.formatClasss();
-    this.FetchHoliday();
+    this.init();
   },
   methods: {
-    async FetchHoliday() {
+    async init() {
       try {
-        const res = await sysConfigList({
+        await MusicStore.dispatch("getBaseInfo", {
+          data: { musicGroupId: this.musicGroupId },
+        });
+        const res = await queryByOrganIdAndCourseType({
+          organId: this.musicGroup.organId,
+        });
+        const res1 = await getSysTenantConfig({
           group: "holiday",
         });
-        this.holidays = JSON.parse(res.data[0].paranValue);
-      } catch (error) {}
+        this.holidays = JSON.parse(res1.data[0].paranValue);
+        this.prices = res.data;
+        let arr = [];
+        if (JSON.stringify(this.prices) == '{}') {
+          // 课程时长
+          arr.push("teamCourseTimer");
+        }
+        if (this.holidays.length <= 0) {
+          arr.push("holiday");
+        }
+        //
+        if (arr.length > 0) {
+          this.$bus.$emit("showguide", arr);
+          return;
+        }
+      } catch (error) {
+        console.log(error);
+      }
     },
     setCourseTypeListByName() {
       const courseTypeListByName = {};
@@ -341,7 +355,6 @@ export default {
       // console.log(res);
       if (Object.keys(res).length <= 0) return;
       this.musicCourseSettings = res.data;
-      console.log('musicCourseSettings', this.musicCourseSettings)
       for (let key in this.musicCourseSettings) {
         this.musicSurplus[key] = 0;
       }
@@ -395,7 +408,6 @@ export default {
             if (this.form.classs.hasOwnProperty(key)) {
               const item = this.form.classs[key];
               const data = {
-
                 type: this.detail ? undefined : this.activeType,
                 courseType: key,
                 classGroupName:
@@ -472,15 +484,16 @@ export default {
               } else if (this.classType == 5) {
                 // 这里是合班拆班
                 let obj = {};
-                obj.musicGroupPaymentCalenderDtos = this.musicGroupPaymentCalenderDtos;
+                obj.musicGroupPaymentCalenderDtos =
+                  this.musicGroupPaymentCalenderDtos;
                 obj.classGroup4MixDtos = list;
                 obj.classGroupIds = this.classIdList;
                 obj.studentIds = this.studentSubmitedData.seleched;
                 obj.classGroupStudents = this.classGroupStudents;
                 obj.classCourseMinuteMap = this.selectPrices;
                 await mergeClassSplitClassAffirm(obj);
-                let grend = this.$parent.$parent.$parent.$parent.$parent.$parent
-                  .$parent;
+                let grend =
+                  this.$parent.$parent.$parent.$parent.$parent.$parent.$parent;
                 grend.closeStudentReset();
                 grend.getList();
                 return;

+ 21 - 9
src/views/teamDetail/components/modals/member-class-setting.vue

@@ -110,7 +110,7 @@ import { isEmpty } from "lodash";
 import { preCourseSchedule } from "@/api/buildTeam";
 import { getClassAllStudent } from "@/api/studentManager";
 import { queryByOrganIdAndCourseType } from "@/views/resetTeaming/api";
-import { sysConfigList } from "@/api/generalSettings";
+import { getSysTenantConfig } from "@/views/courseRulersManager/api";
 import viewStudentList from "@/views/teamDetail/componentClass/student-list";
 const formatClassGroupTeacherMapperList = (core, ass) => {
   const list = [];
@@ -168,11 +168,6 @@ export default {
       await MusicStore.dispatch("getBaseInfo", {
         data: { musicGroupId: this.musicGroupId },
       });
-
-      const res = await queryByOrganIdAndCourseType({
-        organId: this.musicGroup.organId,
-      });
-      this.prices = res.data;
     } catch (error) {}
     // console.log('courseTypeList',this.courseTypeList)
     // 获取班级的学生列表
@@ -196,12 +191,29 @@ export default {
   methods: {
     async FetchHoliday() {
       try {
-        const res = await sysConfigList({
+        const res1 = await getSysTenantConfig({
           group: "holiday",
         });
-        this.holidays = JSON.parse(res.data[0].paranValue);
+        const res = await queryByOrganIdAndCourseType({
+          organId: this.musicGroup.organId,
+        });
+        this.holidays = JSON.parse(res1.data[0].paranValue);
+        this.prices = res.data;
+        let arr = [];
+        if (JSON.stringify(this.prices) == "{}") {
+          // 课程时长
+          arr.push("teamCourseTimer");
+        }
+        if (this.holidays.length <= 0) {
+          arr.push("holiday");
+        }
+        //
+        if (arr.length > 0) {
+          this.$bus.$emit("showguide", arr);
+          return;
+        }
       } catch (error) {
-        console.log(error)
+        console.log(error);
       }
     },
     setCourseTypeListByName() {

+ 5 - 1
src/views/teamDetail/components/resetClass.vue

@@ -39,7 +39,7 @@
           class="newBand"
           style="width: 120px"
           v-permission="'/memberClassList'"
-          v-if="courseViewType == 2&&team_status == 'PROGRESS'"
+          v-if="courseViewType == 2 && team_status == 'PROGRESS'"
           @click="gotoMemberCourse"
         >
           会员课程排课
@@ -931,6 +931,10 @@ export default {
           if (res.code == 200) {
             this.cooperationList = res.data;
             this.teacherList = res.data;
+            if (this.teacherList.length <= 0) {
+              this.$bus.$emit("showguide", ["teacher"]);
+              return;
+            }
           }
         });
         // getAllClass({ musicGroupId: this.teamid }).then((res) => {

+ 2 - 2
vue.config.js

@@ -17,9 +17,9 @@ const name = defaultSettings.title || '管乐迷后台管理系统' // page titl
 // //  https://online.dayaedu.com
 // let target = 'https://online.dayaedu.com' //线上
 // let target = 'http://192.168.3.227:8000' // 何国威
-// let target = 'http://192.168.3.124:8000' //邹璇
+let target = 'http://192.168.3.250:8000' //邹璇
 // let target = 'http://192.168.3.112:8000' //勇哥
-let target = 'http://dev.dayaedu.com' // 开发环境
+// let target = 'http://dev.dayaedu.com' // 开发环境
 // let target = 'https://test.dayaedu.com' //测试环境
 // let target = 'http://192.168.3.134:8000' // 乔
 // All configuration item explanations can be find in https://cli.vuejs.org/config/