Sfoglia il codice sorgente

添加考级页面

lex 2 anni fa
parent
commit
7020d5316f

+ 2 - 1
src/components/Editor/index.vue

@@ -13,6 +13,7 @@
     <el-upload
       ref="ivuUpload"
       class="ivu-upload"
+      style="height: 1px"
       :show-file-list="false"
       :on-success="handleSuccess"
       accept=".jpg, .jpeg, .png"
@@ -22,7 +23,7 @@
       :action="ossUploadUrl"
       :data="dataObj"
     >
-      <Button icon="ios-cloud-upload-outline"></Button>
+      <p></p>
     </el-upload>
 
     <el-dialog

+ 569 - 487
src/router/index.js

@@ -152,491 +152,573 @@ export function resetRouter() {
   router.matcher = newRouter.matcher; // reset router
 }
 export const asyncRoutes = {
-  Layout: Layout,
-  // 首页
-  main: () => import("@/views/main/index"),
-  // 内容管理
-  contentManager: () => import("@/views/contentManager/index"),
-  platformIndex: () => import("@/views/contentManager/platformIndex"),
-  accompaniment: () => import("@/views/accompaniment"),
-  contentOperation: () => import("@/views/contentManager/contentOperation"),
-  // 系统日志
-  journal: () => import("@/views/workBenchManager/journal/index"),
-  // 课酬确认
-  classFeesIsOk: () => import("@/views/workBenchManager/classFeesIsOk"),
-  // 课酬申诉
-  requestProcessing: () => import("@/views/workBenchManager/requestProcessing"),
-  // 考勤申诉
-  payAppeal: () => import("@/views/workBenchManager/payAppeal"),
-  // 乐团管理
-  teamDetail: () => import("@/views/teamDetail/teamList"),
-  teamBuild: () => import("@/views/teamBuild/index"), // 新建
-  teamDraft: () => import("@/views/teamBuild/teamDraft"), // 编辑
-  teamAudit: () => import("@/views/teamBuild/teamDraft"), // 审核
-  feeAudit: () => import("@/views/teamBuild/teamDraft"), // 费用审核
-  auditFailed: () => import("@/views/teamBuild/teamDraft"), // 审核失败
-  forecastName: () => import("@/views/teamBuild/forecastNameList"), // 预报名页面forecastName
-  createPayment: () => import("@/views/teamBuild/createPayment"), // 创建缴费页面
-  // VIP管理
-  vipList: () => import("@/views/vipClass/vipList"),
-  // vip修改
-  vipReset: () => import("@/views/vipClass/vipReset"),
-  // vip详情
-  // @/views/buildVip/index   @/views/vipClass/vipDetail
-  vipDetail: () => import("@/views/vipClass/vipDetail"),
-  buildVip: () => import("@/views/buildVip/index"),
-  // 教师管理
-  teacherList: () => import("@/views/teacherManager/teacherList"),
-  // 新增&修改教师
-  teacherOperation: () =>
-    import("@/views/teacherManager/teacherOperation/index"),
-  teacherOperationUpdate: () =>
-    import("@/views/teacherManager/teacherOperation/index"),
-  // 老师详情
-  teacherDetail: () => import("@/views/teacherManager/teacherDetail/index"),
-  // 学员管理
-  studentList: () => import("@/views/studentManager/studentList"),
-  // 学员详情
-  studentDetail: () => import("@/views/studentManager/index"),
-  // 订单管理
-  orderList: () => import("@/views/businessManager/orderManager/index"),
-  // 订单列表
-  income: () => import("@/views/businessManager/orderManager/income"),
-  incomeOne: () => import("@/views/businessManager/orderManager/incomeOne"),
-  incomeTwo: () => import("@/views/businessManager/orderManager/incomeTwo"),
-  // 财务管理(含陶气)
-  "financeManager-taoqi": () =>
-    import("@/views/businessManager/orderManager/financeManager-taoqi"),
-  // 财务管理
-  financeManager: () =>
-    import("@/views/businessManager/orderManager/financeManager"),
-  // 充值列表
-  incomebuy: () => import("@/views/businessManager/orderManager/incomebuy"),
-  // 退费订单
-  backOrder: () => import("@/views/businessManager/orderManager/backMoney"),
-  // 支出
-  expend: () => import("@/views/businessManager/orderManager/expend"),
-  // 商品管理
-  shopManager: () => import("@/views/businessManager/shopManager/shopList"),
-  // 商品修改(添加)
-  shopOperation: () =>
-    import("@/views/businessManager/shopManager/shopOperation"),
-  // 商品类型管理
-  shopCategory: () =>
-    import("@/views/businessManager/shopManager/shopCategory"),
-  // 报表中心
-  reportForm: () => import("@/views/reportForm/index"),
-  // musicalManager: () => import('@/views/categroyManager/specialSetup/musicalManager'),
-  // 系统管理
-  specialSetup: () => import("@/views/categroyManager/specialSetup/index"),
-  // 类型管理
-  typesManager: () =>
-    import("@/views/categroyManager/specialSetup/typesManager"),
-  tryClass: () => import("@/views/categroyManager/specialSetup/tryClass"),
-  activityManager: () =>
-    import("@/views/categroyManager/specialSetup/activityManager"),
-  tempalteManager: () =>
-    import("@/views/categroyManager/specialSetup/tempalteManager"),
-  bannerManager: () =>
-    import("@/views/categroyManager/specialSetup/bannerManager"),
-  holidayManager: () =>
-    import("@/views/categroyManager/specialSetup/holidayManager"),
-  branchSetting: () =>
-    import("@/views/categroyManager/specialSetup/branchSetting"),
-  jobTemplateSetting: () =>
-    import("@/views/categroyManager/specialSetup/jobTemplateSetting"),
-  generalSettings: () =>
-    import("@/views/categroyManager/generalSettings/index"),
-  siginManager: () =>
-    import("@/views/categroyManager/generalSettings/siginManager"),
-  leaveManager: () =>
-    import("@/views/categroyManager/generalSettings/leaveManager"),
-  cycleManager: () =>
-    import("@/views/categroyManager/generalSettings/cycleManager"),
-  overallManager: () =>
-    import("@/views/categroyManager/generalSettings/overallManager"),
-  payManager: () =>
-    import("@/views/categroyManager/generalSettings/payManager"),
-  insideSetting: () => import("@/views/categroyManager/insideSetting/index"),
-  adminManager: () =>
-    import("@/views/categroyManager/insideSetting/adminManager"),
-  adminOperation: () =>
-    import("@/views/categroyManager/insideSetting/adminOperation"),
-  staffManager: () =>
-    import("@/views/categroyManager/insideSetting/staffManager"),
-  branchManager: () =>
-    import("@/views/categroyManager/insideSetting/branchManager"),
-  addressManager: () =>
-    import("@/views/categroyManager/insideSetting/addressManager"),
-  branchActive: () =>
-    import("@/views/categroyManager/insideSetting/branchActive"),
-  branchActiveOperation: () =>
-    import("@/views/categroyManager/insideSetting/branchActiveOperation"),
-  vipChargeSeting: () => import("@/views/categroyManager/vipChargeSeting"),
-  vipActiveList: () => import("@/views/categroyManager/vipActiveList"),
-  vipNewActive: () => import("@/views/categroyManager/vipNewActive"),
-  vipParameterManager: () =>
-    import("@/views/categroyManager/generalSettings/vipParameterManager"),
-  globalConfig: () => import("@/views/categroyManager/globalConfig"),
-  // 全局声部设置
-  globalSubjects: () => import("@/views/categroyManager/globalSubjects"),
-  // 全局乐团设置
-  globalMusicGroup: () => import("@/views/categroyManager/globalMusicGroup"),
-  // 全局产品设置
-  productSystem: () => import("@/views/categroyManager/productSystem"),
-  memberFeeSet: () =>
-    import("@/views/categroyManager/productSystem/memberFeeSet"),
-  memberSet: () => import("@/views/categroyManager/productSystem/memberSet"),
-  // 侧边栏管理
-  setSilder: () => import("@/views/setSilder/addSilder"),
-  // 乐团老师点名记录
-  teamTeacherRecord: () =>
-    import("@/views/teamDetail/components/teamTeacherRecord"),
-  // 乐团筹备中 报名中
-  signupList: () => import("@/views/teamBuild/signupList"),
-  remedy: () => import("@/views/teamBuild/signupList"),
-  // 乐团筹备设置 (班级 老师 小课)
-  teamSeting: () => import("@/views/teamBuild/teamSeting/"),
-  //乐团详情
-  teamDetails: () => import("@/views/teamDetail"),
-  // 乐团课表详情
-  teamDetailCourse: () => import("@/views/teamDetail/indexCourse"),
-  // 学生点名总汇
-  studentSignin: () => import("@/views/teamDetail/components/studentSignin"),
-  // 班级调整
-  resetClass: () => import("@/views/teamDetail/components/resetClass"),
-  // 发放清单
-  teamDetailedList: () => import("@/views/teamDetail/teamDetailedList"),
-  // 基础技能班设置
-  setImprovement: () =>
-    import("@/views/teamBuild/teamSeting/components/setImprovement"),
-  // 乐团修改 @/views/resetTeaming/index
-  resetTeaming: () => import("@/views/resetTeaming/index"),
-  // 乐团课排课
-  coursePlan: () =>
-    import("@/views/teamBuild/teamSeting/components/coursePlan"),
-  // 收费分润管理
-  chargeProfitManager: () =>
-    import("../views/categroyManager/insideSetting/chargeProfitManager"),
-  // 收费管理
-  chargeManager: () => import("../views/chargeManager/index"),
-  // 零星管理
-  sporadicManager: () => import("@/views/sporadicManager/sporadicList"),
-  // 课表列表
-  teamCourseList: () => import("@/views/teamDetail/teamCourseList"),
-  // 运营预警
-  operationalList: () => import("@/views/operationalEarly/operationalList"),
-  // 网管课列表
-  accompanyList: () => import("@/views/accompanyManager/accompanyList"),
-  // 网管课详情
-  accompanys: () => import("@/views/accompanyManager/accompanys"),
-  accompany: () => import("@/views/accompanyManager"),
-  // 网管课购买
-  accompanyBuys: () => import("@/views/accompanyManager/accompanyBuys"),
-  // 版本控制
-  editionList: () => import("@/views/editionManager/editionList"),
-  // 定时任务
-  timedTask: () => import("@/views/timedTask/index"),
-  // 月报
-  evaluateList: () => import("@/views/evaluateManager/evaluateList"),
-  // 月报详情
-  evaluateDetail: () => import("@/views/evaluateManager/evaluateDetail"),
-  // 评价管理
-  commentManager: () => import("@/views/evaluateManager"),
-  // 网管课评价
-  networkList: () => import("@/views/evaluateManager/networkList"),
-  // 时间充值活动
-  entryActivities: () => import("@/views/app/entryActivities"),
-  // 添加或修改
-  entryOperation: () => import("@/views/app/entryOperation"),
-  // 意见反馈
-  suggestion: () => import("@/views/app/suggestion"),
-  // 云教练意见反馈
-  clouldSuggestion: () => import("@/views/app/clouldSuggestion"),
-  // 帮助分类
-  helpCategory: () => import("@/views/helpCenter/helpCategory"),
-  // 帮助内容
-  helpContent: () => import("@/views/helpCenter/helpContent"),
-  // 对外订单
-  incomeOut: () => import("@/views/businessManager/orderManager/incomeOut"),
-  // // 课外训练
-  // afterSchoolList:()=>import('@/views/afterSchoolManager/afterSchoolList'),
-  // // 课外训练
-  // afterWorkList:()=>import('@/views/afterSchoolManager/afterWorkList'),
-  // 课外管理
-  afterSchoolManager: () => import("@/views/afterSchoolManager"),
-  afterSchoolDetail: () =>
-    import("@/views/afterSchoolManager/afterSchoolDetail"),
-  // 运营管理 学员列表
-  operateStudent: () => import("@/views/operateManager/operateStudent"),
-  // 运营管理 结转奖励
-  settlementList: () => import("@/views/settlementManager/settlementList"),
-  // 运营管理 服务指标
-  serverIndexList: () => import("@/views/operateManager/serverIndexList"),
-  // 运营管理 服务指标详情
-  serverIndexDetail: () => import("@/views/operateManager/serverIndexDetail"),
-  // 维修单列表
-  repairList: () => import("@/views/repairManager/repairList"),
-  // 乐团缴费详情
-  strudentPayInfo: () =>
-    import("@/views/resetTeaming/components/strudentPayInfo"),
-  // 学生缴费金额设置
-  studentPayBase: () =>
-    import("@/views/resetTeaming/components/studentPayBase"),
-  // 考情列表
-  recodeList: () => import("@/views/recodeManager/recodeList"),
-  // 考级报名列表
-  levelManager: () => import("@/views/levelManager/levelManager"),
-  // 汇会账号管理
-  adapayManager: () => import("@/views/adapayAccount/index"),
-  adapayOperation: () => import("@/views/adapayAccount/form"),
-  // 日历课表
-  calendarList: () =>
-    import("@/views/teacherManager/teacherDetail/components/calendarList"),
-  returnVisitList: () => import("@/views/returnVisitManager/index"),
-  // 经营报表
-  businessStatement: () =>
-    import("@/views/businessManager/orderManager/businessStatement"),
-  //经营详情
-  businessStatementDetail: () =>
-    import("@/views/businessManager/orderManager/businessStatementDetail"),
-  // 支出记录
-  payRecord: () => import("@/views/businessManager/orderManager/payRecord"),
-  // 销售列表
-  salesList: () => import("@/views/businessManager/orderManager/salesList"),
-  // 人力资源
-  HumanResources: () => import("@/views/HumanResources"),
-  // 查看乐团基本信息
-  teamLookBase: () => import("@/views/teamDetail/teamInfo"),
-  // 更换列表
-  resetList: () => import("@/views/businessManager/resetList"),
-  // 进货清单
-  purchaseLlist: () =>
-    import("@/views/businessManager/shopManager/purchase-llist"),
-  // 抽奖活动管理
-  lotteryManager: () => import("@/views/luckyDraw/lotteryManager"),
-  // 活动奖品设置
-  trophyManager: () => import("@/views/luckyDraw/trophyManager"),
-  // 抽奖记录
-  lotteryRecord: () => import("@/views/luckyDraw/lotteryRecord"),
-  // 审核列表
-  auditList: () => import("@/views/auditList/index"),
-  // 订单审核
-  orderAudit: () => import("@/views/businessManager/orderManager/orderAudit"),
-  orderAuditTaoqi: () =>
-    import("@/views/businessManager/orderManager/orderAudit-taoqi"),
-  // 长三角比赛
-  matchManager: () => import("@/views/matchManager/index"),
-  // 考勤列表
-  attendanceList: () => import("@/views/attendanceManager/attendanceList"),
-  // 学生考情列表
-  stuRecodeManager: () => import("@/views/stuRecodeManager"),
-  // 乐团班级列表
-  teamCLassList: () => import("@/views/teamDetail/teamClassList"),
-  // 乐团巡查
-  musicInspection: () => import("@/views/musicInspection/index"),
-  // 乐团主管日程详情
-  scheduleDetail: () => import("@/views/main/teamSchedule/scheduleDetail"),
-  // 乐团班级列表
-  WithdrawalApplication: () => import("@/views/withdrawal-application"),
-  // 欠费学员列表
-  ArrearageStudents: () => import("@/views/arrearage-students"),
-  // 课程组管理
-  courseListManager: () => import("@/views/courseListManager"),
-  // 班级管理
-  classManager: () => import("@/views/courseListManager"),
-  // 课程管理
-  courseManager: () => import("@/views/courseListManager"),
-  // 训练管理
-  workManager: () => import("@/views/courseListManager"),
-  // 老师管理
-  teacherManager: () => import("@/views/courseListManager"),
-  // 学生管理
-  studentManager: () => import("@/views/courseListManager"),
-  // 订单管理
-  orderManager: () => import("@/views/courseListManager"),
-  // 财务录入
-  financeIn: () => import("@/views/courseListManager"),
-  // vip参数设置
-  vipSet: () => import("@/views/courseListManager"),
-  // 基本信息配置
-  sysBasics: () => import("@/views/courseListManager"),
-  // 参数设置
-  parameter: () => import("@/views/courseListManager"),
-  // 抽奖活动
-  luckyDraw: () => import("@/views/courseListManager"),
-  // 乐团管理
-  teamMananger: () => import("@/views/courseListManager"),
-  // vip管理
-  vipManager: () => import("@/views/courseListManager"),
-  // 网管课管理
-  accompanyManager: () => import("@/views/courseListManager"),
-  // 乐团管理
-  // 评论管理
-  commentManagerWrap: () => import("@/views/courseListManager"),
-  // 课外训练
-  afterSchoolManagerWrap: () => import("@/views/courseListManager"),
-  //
-  serverIndexManager: () => import("@/views/courseListManager"),
-  reportFormCenter: () => import("@/views/courseListManager"),
-  // 乐器维护
-  musicalManager: () => import("@/views/musicalManager"),
-  // 服务指标明细
-  branchActiveManager: () => import("@/views/courseListManager"),
-  // vip活动管理
-  vipActiveManager: () => import("@/views/courseListManager"),
-  // 乐团缴费
-  teamPayInfo: () => import("@/views/courseListManager"),
-  serverDetail: () => import("@/views/serverDetail"),
-  // 未在班级学员
-  notClassStudent: () => import("@/views/main/notClassStudent"),
-  // 报表中心 下载列表
-  downList: () => import("@/views/reportForm/downList"),
-  // 乐器置换
-  reaplceMusicPlayer: () => import("@/views/reaplceMusicPlayer"),
-  answerList: () => import("@/views/reaplceMusicPlayer/answerList"),
-  // 问卷管理
-  setQuestions: () => import("@/views/setQuestions"),
-  questionOperation: () => import("@/views/setQuestions/operation"),
-  // 21暑期考级
-  childrensDay: () => import("@/views/childrensDay"),
-  // 考级详情
-  childrensdayDetail: () => import("@/views/childrensDay/detail"),
-  // 异常数据
-  indexErrDataRecord: () => import("@/views/indexErrDataRecord"),
-  // 团练宝数据
-  cloudDate: () => import("@/views/main/cloudDate/index.vue"),
-  dictionaryManager: () => import("@/views/dictionaryManager"),
-  // 会员排课列表
-  memberClassList: () =>
-    import("@/views/teamDetail/components/memberClassList"),
-  // 设备号管理
-  deviceNum: () => import("@/views/deviceNumManager"),
-  // 乐团会员列表
-  teamMemberList: () => import("@/views/studentManager/memberList"),
-  //2021十一活动
-  memeberActionManager: () => import("@/views/2021memeberActionManager"),
-  // 优惠券管理
-  couponManager: () => import("@/views/couponManager"),
-  // 优惠券明细
-  couponDetail: () => import("@/views/couponManager/couponDetail"),
-  // 优惠券明细
-  activeMarketing: () => import("@/views/activityScheduling/activeMarketing"),
-  // 2021双11
-  "2021double11List": () =>
-    import("@/views/activityScheduling/2021double11List"),
-  // 活动资格管理
-  activeSenior: () => import("@/views/categroyManager/activeSenior"),
-  backManager: () => import("@/views/backManager"),
-  // 教材列表
-  teachManager: () => import("@/views/teachManager"),
-  // 教材分类
-  teachClass: () => import("@/views/teachManager/teachClass"),
-  // 课程规则设置
-  courseRulersManager: () => import("@/views/courseRulersManager"),
-  // 基础规则设置
-  baseRulesManager: () => import("@/views/baseRulesManager"),
-  // 课程参数设置
-  baseRulesClassSetting: () => import("@/views/baseRulesClassSetting"),
-  // 产品管理
-  productManager: () => import("@/views/platformManager/productManger"),
-  // 服务管理
-  // 基本信息配置
-  serviceManager: () => import("@/views/courseListManager"),
-  serviceList: () => import("@/views/platformManager/serviceManager/index"),
-  serviceOperation: () => import("@/views/platformManager/serviceManager/form"),
-  // 机构申请
-  tenantApply: () => import("@/views/platformManager/tenantApply"),
-  // 云教练流量包
-  cloudTrafficPackage: () =>
-    import("@/views/platformManager/cloudTrafficPackage"),
-  accompanyBaseConfig: () =>
-    import("@/views/categroyManager/accompanyBaseConfig"),
-  // 网管课价格配置
-  accompanyFeeConfig: () =>
-    import("@/views/categroyManager/accompanyFeeConfig"), // 机构列表
-  organList: () => import("@/views/organManager"),
-  organOperation: () => import("@/views/organManager/organOperation"),
-  // 课酬预警
-  earlyWarning: () =>
-    import("@/views/categroyManager/generalSettings/earlyWarning"),
-  holidaySetting: () =>
-    import("@/views/categroyManager/generalSettings/holidaySetting"),
-  // 平台课程默认值
-  platformCourseDeault: () =>
-    import("@/views/platformManager/platformCourseDeault"),
-  // 特殊参数默认值
-  specialDeault: () => import("@/views/baseRulesManager/special.vue"),
-  // 机构设置
-  tenantInfoSetting: () => import("@/views/tenantSetting/tenantInfo.vue"),
-  // 机构协议管理
-  tenantInfoProtocol: () =>
-    import("@/views/tenantSetting/tenantInfoProtocol.vue"),
-  // 机构交易管理
-  tenantTradeManager: () =>
-    import("@/views/tenantSetting/tenantTradeManager.vue"),
-  // 云教练激活记录
-  groupRecordManager: () =>
-    import("@/views/tenantSetting/groupRecordManager.vue"),
-  // 扣费记录
-  chargingRecord: () => import("@/views/tenantSetting/chargingRecord.vue"),
-  // 操作手册管理
-  operationManual: () => import("@/views/operationManual"),
-  // 产品服务
-  productService: () => import("@/views/productService"),
-  // 声部分类列表
-  subjectCategroyList: () =>
-    import("@/views/categroyManager/subjectCategroyList"),
-  // oa信息管理
-  OAMananger: () => import("@/views/OAMananger"),
-  // 平台员工管理
-  staffPlatManager: () =>
-    import("@/views/categroyManager/insideSetting/staffPlatManager"),
-  //邮件配置服务
-  mailInfoManager: () => import("@/views/mailInfoManager"),
-  // 机构协议管理
-  protocolManagement: () => import("@/views/protocolManagement"),
-  //
-  studentGroupPractice: () =>
-    import("@/views/studentManager/studentGroupPractice"),
-  // 云教练缴费记录
-  studentGroupRecord: () => import("@/views/studentManager/studentGroupRecord"),
-  // 直播课管理
-  liveClassManager: () => import("@/views/liveClassManager"),
-  // 新建直播课
-  createLiveClass: () => import("@/views/liveClassManager/newLiveClass"),
-  // 直播课详情
-  liveClassDetail: () => import("@/views/liveClassManager/liveClassDetail"),
-  // 平台员工管理
-  platformAdminManger: () => import("@/views/platformManager/paltformAdmin"),
-  // 小课学员管理
-  smallStudentManager: () => import("@/views/smallStudentManager"),
-  // 代理商管理
-  agentList: () => import("@/views/agentManager/agentList"),
-  // 云教练分润
-  memberShareList: () => import("@/views/agentManager/memberShareList"),
-  // 群组管理
-  groupChatManager: () => import("@/views/groupChatManager"),
-  // 群聊公告
-  sysGroupCat: () => import("@/views/groupChatManager/sysGroupCat"),
-  // 小小艺术家训练营
-  littleArtistCamp: () => import("@/views/littleArtistCamp"),
-  liveShopManger: () => import("@/views/liveShopManger"),
-  // 学员乐保
-  studentLebaoManager: () => import("@/views/studentLebaoManager"),
-  // 排课资格
-  courseCredentials: () => import("@/views/courseCredentials"),
-  // 合作单位缴费
-  branchPayManager: () => import("@/views/branchPayManager/payList"),
-  // 合作单位分润 payShareList
-  branchShareManager: () => import("@/views/branchPayManager/payShareList"),
-  smallCourseConsumption: () =>
-    import("@/views/smallCourseConsumption/index.vue"),
-  // 训练详情
-  exerciseDurationDetail: () =>
-    import("@/views/main/cloudDate/exerciseDurationDetail.vue"),
-  // 新课表列表
-  newCourseList: () => import("@/views/newCourseList"),
-  newOrderList: () => import("@/views/newCourseList/orderList")
-};
+         Layout: Layout,
+         // 首页
+         main: () => import("@/views/main/index"),
+         // 内容管理
+         contentManager: () => import("@/views/contentManager/index"),
+         platformIndex: () =>
+           import("@/views/contentManager/platformIndex"),
+         accompaniment: () => import("@/views/accompaniment"),
+         contentOperation: () =>
+           import("@/views/contentManager/contentOperation"),
+         // 系统日志
+         journal: () => import("@/views/workBenchManager/journal/index"),
+         // 课酬确认
+         classFeesIsOk: () =>
+           import("@/views/workBenchManager/classFeesIsOk"),
+         // 课酬申诉
+         requestProcessing: () =>
+           import("@/views/workBenchManager/requestProcessing"),
+         // 考勤申诉
+         payAppeal: () => import("@/views/workBenchManager/payAppeal"),
+         // 乐团管理
+         teamDetail: () => import("@/views/teamDetail/teamList"),
+         teamBuild: () => import("@/views/teamBuild/index"), // 新建
+         teamDraft: () => import("@/views/teamBuild/teamDraft"), // 编辑
+         teamAudit: () => import("@/views/teamBuild/teamDraft"), // 审核
+         feeAudit: () => import("@/views/teamBuild/teamDraft"), // 费用审核
+         auditFailed: () => import("@/views/teamBuild/teamDraft"), // 审核失败
+         forecastName: () =>
+           import("@/views/teamBuild/forecastNameList"), // 预报名页面forecastName
+         createPayment: () => import("@/views/teamBuild/createPayment"), // 创建缴费页面
+         // VIP管理
+         vipList: () => import("@/views/vipClass/vipList"),
+         // vip修改
+         vipReset: () => import("@/views/vipClass/vipReset"),
+         // vip详情
+         // @/views/buildVip/index   @/views/vipClass/vipDetail
+         vipDetail: () => import("@/views/vipClass/vipDetail"),
+         buildVip: () => import("@/views/buildVip/index"),
+         // 教师管理
+         teacherList: () => import("@/views/teacherManager/teacherList"),
+         // 新增&修改教师
+         teacherOperation: () =>
+           import("@/views/teacherManager/teacherOperation/index"),
+         teacherOperationUpdate: () =>
+           import("@/views/teacherManager/teacherOperation/index"),
+         // 老师详情
+         teacherDetail: () =>
+           import("@/views/teacherManager/teacherDetail/index"),
+         // 学员管理
+         studentList: () => import("@/views/studentManager/studentList"),
+         // 学员详情
+         studentDetail: () => import("@/views/studentManager/index"),
+         // 订单管理
+         orderList: () =>
+           import("@/views/businessManager/orderManager/index"),
+         // 订单列表
+         income: () =>
+           import("@/views/businessManager/orderManager/income"),
+         incomeOne: () =>
+           import("@/views/businessManager/orderManager/incomeOne"),
+         incomeTwo: () =>
+           import("@/views/businessManager/orderManager/incomeTwo"),
+         // 财务管理(含陶气)
+         "financeManager-taoqi": () =>
+           import("@/views/businessManager/orderManager/financeManager-taoqi"),
+         // 财务管理
+         financeManager: () =>
+           import("@/views/businessManager/orderManager/financeManager"),
+         // 充值列表
+         incomebuy: () =>
+           import("@/views/businessManager/orderManager/incomebuy"),
+         // 退费订单
+         backOrder: () =>
+           import("@/views/businessManager/orderManager/backMoney"),
+         // 支出
+         expend: () =>
+           import("@/views/businessManager/orderManager/expend"),
+         // 商品管理
+         shopManager: () =>
+           import("@/views/businessManager/shopManager/shopList"),
+         // 商品修改(添加)
+         shopOperation: () =>
+           import("@/views/businessManager/shopManager/shopOperation"),
+         // 商品类型管理
+         shopCategory: () =>
+           import("@/views/businessManager/shopManager/shopCategory"),
+         // 报表中心
+         reportForm: () => import("@/views/reportForm/index"),
+         // musicalManager: () => import('@/views/categroyManager/specialSetup/musicalManager'),
+         // 系统管理
+         specialSetup: () =>
+           import("@/views/categroyManager/specialSetup/index"),
+         // 类型管理
+         typesManager: () =>
+           import("@/views/categroyManager/specialSetup/typesManager"),
+         tryClass: () =>
+           import("@/views/categroyManager/specialSetup/tryClass"),
+         activityManager: () =>
+           import("@/views/categroyManager/specialSetup/activityManager"),
+         tempalteManager: () =>
+           import("@/views/categroyManager/specialSetup/tempalteManager"),
+         bannerManager: () =>
+           import("@/views/categroyManager/specialSetup/bannerManager"),
+         holidayManager: () =>
+           import("@/views/categroyManager/specialSetup/holidayManager"),
+         branchSetting: () =>
+           import("@/views/categroyManager/specialSetup/branchSetting"),
+         jobTemplateSetting: () =>
+           import("@/views/categroyManager/specialSetup/jobTemplateSetting"),
+         generalSettings: () =>
+           import("@/views/categroyManager/generalSettings/index"),
+         siginManager: () =>
+           import("@/views/categroyManager/generalSettings/siginManager"),
+         leaveManager: () =>
+           import("@/views/categroyManager/generalSettings/leaveManager"),
+         cycleManager: () =>
+           import("@/views/categroyManager/generalSettings/cycleManager"),
+         overallManager: () =>
+           import("@/views/categroyManager/generalSettings/overallManager"),
+         payManager: () =>
+           import("@/views/categroyManager/generalSettings/payManager"),
+         insideSetting: () =>
+           import("@/views/categroyManager/insideSetting/index"),
+         adminManager: () =>
+           import("@/views/categroyManager/insideSetting/adminManager"),
+         adminOperation: () =>
+           import("@/views/categroyManager/insideSetting/adminOperation"),
+         staffManager: () =>
+           import("@/views/categroyManager/insideSetting/staffManager"),
+         branchManager: () =>
+           import("@/views/categroyManager/insideSetting/branchManager"),
+         addressManager: () =>
+           import("@/views/categroyManager/insideSetting/addressManager"),
+         branchActive: () =>
+           import("@/views/categroyManager/insideSetting/branchActive"),
+         branchActiveOperation: () =>
+           import("@/views/categroyManager/insideSetting/branchActiveOperation"),
+         vipChargeSeting: () =>
+           import("@/views/categroyManager/vipChargeSeting"),
+         vipActiveList: () =>
+           import("@/views/categroyManager/vipActiveList"),
+         vipNewActive: () =>
+           import("@/views/categroyManager/vipNewActive"),
+         vipParameterManager: () =>
+           import("@/views/categroyManager/generalSettings/vipParameterManager"),
+         globalConfig: () =>
+           import("@/views/categroyManager/globalConfig"),
+         // 全局声部设置
+         globalSubjects: () =>
+           import("@/views/categroyManager/globalSubjects"),
+         // 全局乐团设置
+         globalMusicGroup: () =>
+           import("@/views/categroyManager/globalMusicGroup"),
+         // 全局产品设置
+         productSystem: () =>
+           import("@/views/categroyManager/productSystem"),
+         memberFeeSet: () =>
+           import("@/views/categroyManager/productSystem/memberFeeSet"),
+         memberSet: () =>
+           import("@/views/categroyManager/productSystem/memberSet"),
+         // 侧边栏管理
+         setSilder: () => import("@/views/setSilder/addSilder"),
+         // 乐团老师点名记录
+         teamTeacherRecord: () =>
+           import("@/views/teamDetail/components/teamTeacherRecord"),
+         // 乐团筹备中 报名中
+         signupList: () => import("@/views/teamBuild/signupList"),
+         remedy: () => import("@/views/teamBuild/signupList"),
+         // 乐团筹备设置 (班级 老师 小课)
+         teamSeting: () => import("@/views/teamBuild/teamSeting/"),
+         //乐团详情
+         teamDetails: () => import("@/views/teamDetail"),
+         // 乐团课表详情
+         teamDetailCourse: () =>
+           import("@/views/teamDetail/indexCourse"),
+         // 学生点名总汇
+         studentSignin: () =>
+           import("@/views/teamDetail/components/studentSignin"),
+         // 班级调整
+         resetClass: () =>
+           import("@/views/teamDetail/components/resetClass"),
+         // 发放清单
+         teamDetailedList: () =>
+           import("@/views/teamDetail/teamDetailedList"),
+         // 基础技能班设置
+         setImprovement: () =>
+           import("@/views/teamBuild/teamSeting/components/setImprovement"),
+         // 乐团修改 @/views/resetTeaming/index
+         resetTeaming: () => import("@/views/resetTeaming/index"),
+         // 乐团课排课
+         coursePlan: () =>
+           import("@/views/teamBuild/teamSeting/components/coursePlan"),
+         // 收费分润管理
+         chargeProfitManager: () =>
+           import("../views/categroyManager/insideSetting/chargeProfitManager"),
+         // 收费管理
+         chargeManager: () => import("../views/chargeManager/index"),
+         // 零星管理
+         sporadicManager: () =>
+           import("@/views/sporadicManager/sporadicList"),
+         // 课表列表
+         teamCourseList: () =>
+           import("@/views/teamDetail/teamCourseList"),
+         // 运营预警
+         operationalList: () =>
+           import("@/views/operationalEarly/operationalList"),
+         // 网管课列表
+         accompanyList: () =>
+           import("@/views/accompanyManager/accompanyList"),
+         // 网管课详情
+         accompanys: () => import("@/views/accompanyManager/accompanys"),
+         accompany: () => import("@/views/accompanyManager"),
+         // 网管课购买
+         accompanyBuys: () =>
+           import("@/views/accompanyManager/accompanyBuys"),
+         // 版本控制
+         editionList: () => import("@/views/editionManager/editionList"),
+         // 定时任务
+         timedTask: () => import("@/views/timedTask/index"),
+         // 月报
+         evaluateList: () =>
+           import("@/views/evaluateManager/evaluateList"),
+         // 月报详情
+         evaluateDetail: () =>
+           import("@/views/evaluateManager/evaluateDetail"),
+         // 评价管理
+         commentManager: () => import("@/views/evaluateManager"),
+         // 网管课评价
+         networkList: () =>
+           import("@/views/evaluateManager/networkList"),
+         // 时间充值活动
+         entryActivities: () => import("@/views/app/entryActivities"),
+         // 添加或修改
+         entryOperation: () => import("@/views/app/entryOperation"),
+         // 意见反馈
+         suggestion: () => import("@/views/app/suggestion"),
+         // 云教练意见反馈
+         clouldSuggestion: () => import("@/views/app/clouldSuggestion"),
+         // 帮助分类
+         helpCategory: () => import("@/views/helpCenter/helpCategory"),
+         // 帮助内容
+         helpContent: () => import("@/views/helpCenter/helpContent"),
+         // 对外订单
+         incomeOut: () =>
+           import("@/views/businessManager/orderManager/incomeOut"),
+         // // 课外训练
+         // afterSchoolList:()=>import('@/views/afterSchoolManager/afterSchoolList'),
+         // // 课外训练
+         // afterWorkList:()=>import('@/views/afterSchoolManager/afterWorkList'),
+         // 课外管理
+         afterSchoolManager: () => import("@/views/afterSchoolManager"),
+         afterSchoolDetail: () =>
+           import("@/views/afterSchoolManager/afterSchoolDetail"),
+         // 运营管理 学员列表
+         operateStudent: () =>
+           import("@/views/operateManager/operateStudent"),
+         // 运营管理 结转奖励
+         settlementList: () =>
+           import("@/views/settlementManager/settlementList"),
+         // 运营管理 服务指标
+         serverIndexList: () =>
+           import("@/views/operateManager/serverIndexList"),
+         // 运营管理 服务指标详情
+         serverIndexDetail: () =>
+           import("@/views/operateManager/serverIndexDetail"),
+         // 维修单列表
+         repairList: () => import("@/views/repairManager/repairList"),
+         // 乐团缴费详情
+         strudentPayInfo: () =>
+           import("@/views/resetTeaming/components/strudentPayInfo"),
+         // 学生缴费金额设置
+         studentPayBase: () =>
+           import("@/views/resetTeaming/components/studentPayBase"),
+         // 考情列表
+         recodeList: () => import("@/views/recodeManager/recodeList"),
+         // 考级报名列表
+         levelManager: () => import("@/views/levelManager/levelManager"),
+         gradeManager: () => import("@/views/levelManager/gradeManager"),
+         levelSetting: () => import("@/views/levelManager/levelSetting"),
+         levelInformationSetting: () =>
+           import("@/views/levelManager/levelInformationSetting"),
+         // 汇会账号管理
+         adapayManager: () => import("@/views/adapayAccount/index"),
+         adapayOperation: () => import("@/views/adapayAccount/form"),
+         // 日历课表
+         calendarList: () =>
+           import("@/views/teacherManager/teacherDetail/components/calendarList"),
+         returnVisitList: () =>
+           import("@/views/returnVisitManager/index"),
+         // 经营报表
+         businessStatement: () =>
+           import("@/views/businessManager/orderManager/businessStatement"),
+         //经营详情
+         businessStatementDetail: () =>
+           import("@/views/businessManager/orderManager/businessStatementDetail"),
+         // 支出记录
+         payRecord: () =>
+           import("@/views/businessManager/orderManager/payRecord"),
+         // 销售列表
+         salesList: () =>
+           import("@/views/businessManager/orderManager/salesList"),
+         // 人力资源
+         HumanResources: () => import("@/views/HumanResources"),
+         // 查看乐团基本信息
+         teamLookBase: () => import("@/views/teamDetail/teamInfo"),
+         // 更换列表
+         resetList: () => import("@/views/businessManager/resetList"),
+         // 进货清单
+         purchaseLlist: () =>
+           import("@/views/businessManager/shopManager/purchase-llist"),
+         // 抽奖活动管理
+         lotteryManager: () =>
+           import("@/views/luckyDraw/lotteryManager"),
+         // 活动奖品设置
+         trophyManager: () => import("@/views/luckyDraw/trophyManager"),
+         // 抽奖记录
+         lotteryRecord: () => import("@/views/luckyDraw/lotteryRecord"),
+         // 审核列表
+         auditList: () => import("@/views/auditList/index"),
+         // 订单审核
+         orderAudit: () =>
+           import("@/views/businessManager/orderManager/orderAudit"),
+         orderAuditTaoqi: () =>
+           import("@/views/businessManager/orderManager/orderAudit-taoqi"),
+         // 长三角比赛
+         matchManager: () => import("@/views/matchManager/index"),
+         // 考勤列表
+         attendanceList: () =>
+           import("@/views/attendanceManager/attendanceList"),
+         // 学生考情列表
+         stuRecodeManager: () => import("@/views/stuRecodeManager"),
+         // 乐团班级列表
+         teamCLassList: () => import("@/views/teamDetail/teamClassList"),
+         // 乐团巡查
+         musicInspection: () => import("@/views/musicInspection/index"),
+         // 乐团主管日程详情
+         scheduleDetail: () =>
+           import("@/views/main/teamSchedule/scheduleDetail"),
+         // 乐团班级列表
+         WithdrawalApplication: () =>
+           import("@/views/withdrawal-application"),
+         // 欠费学员列表
+         ArrearageStudents: () => import("@/views/arrearage-students"),
+         // 课程组管理
+         courseListManager: () => import("@/views/courseListManager"),
+         // 班级管理
+         classManager: () => import("@/views/courseListManager"),
+         // 课程管理
+         courseManager: () => import("@/views/courseListManager"),
+         // 训练管理
+         workManager: () => import("@/views/courseListManager"),
+         // 老师管理
+         teacherManager: () => import("@/views/courseListManager"),
+         // 学生管理
+         studentManager: () => import("@/views/courseListManager"),
+         // 订单管理
+         orderManager: () => import("@/views/courseListManager"),
+         // 财务录入
+         financeIn: () => import("@/views/courseListManager"),
+         // vip参数设置
+         vipSet: () => import("@/views/courseListManager"),
+         // 基本信息配置
+         sysBasics: () => import("@/views/courseListManager"),
+         // 参数设置
+         parameter: () => import("@/views/courseListManager"),
+         // 抽奖活动
+         luckyDraw: () => import("@/views/courseListManager"),
+         // 乐团管理
+         teamMananger: () => import("@/views/courseListManager"),
+         // vip管理
+         vipManager: () => import("@/views/courseListManager"),
+         // 网管课管理
+         accompanyManager: () => import("@/views/courseListManager"),
+         // 乐团管理
+         // 评论管理
+         commentManagerWrap: () => import("@/views/courseListManager"),
+         // 课外训练
+         afterSchoolManagerWrap: () =>
+           import("@/views/courseListManager"),
+         //
+         serverIndexManager: () => import("@/views/courseListManager"),
+         reportFormCenter: () => import("@/views/courseListManager"),
+         // 乐器维护
+         musicalManager: () => import("@/views/musicalManager"),
+         // 服务指标明细
+         branchActiveManager: () => import("@/views/courseListManager"),
+         // vip活动管理
+         vipActiveManager: () => import("@/views/courseListManager"),
+         // 乐团缴费
+         teamPayInfo: () => import("@/views/courseListManager"),
+         serverDetail: () => import("@/views/serverDetail"),
+         // 未在班级学员
+         notClassStudent: () => import("@/views/main/notClassStudent"),
+         // 报表中心 下载列表
+         downList: () => import("@/views/reportForm/downList"),
+         // 乐器置换
+         reaplceMusicPlayer: () => import("@/views/reaplceMusicPlayer"),
+         answerList: () =>
+           import("@/views/reaplceMusicPlayer/answerList"),
+         // 问卷管理
+         setQuestions: () => import("@/views/setQuestions"),
+         questionOperation: () =>
+           import("@/views/setQuestions/operation"),
+         // 21暑期考级
+         childrensDay: () => import("@/views/childrensDay"),
+         // 考级详情
+         childrensdayDetail: () => import("@/views/childrensDay/detail"),
+         // 异常数据
+         indexErrDataRecord: () => import("@/views/indexErrDataRecord"),
+         // 团练宝数据
+         cloudDate: () => import("@/views/main/cloudDate/index.vue"),
+         dictionaryManager: () => import("@/views/dictionaryManager"),
+         // 会员排课列表
+         memberClassList: () =>
+           import("@/views/teamDetail/components/memberClassList"),
+         // 设备号管理
+         deviceNum: () => import("@/views/deviceNumManager"),
+         // 乐团会员列表
+         teamMemberList: () =>
+           import("@/views/studentManager/memberList"),
+         //2021十一活动
+         memeberActionManager: () =>
+           import("@/views/2021memeberActionManager"),
+         // 优惠券管理
+         couponManager: () => import("@/views/couponManager"),
+         // 优惠券明细
+         couponDetail: () =>
+           import("@/views/couponManager/couponDetail"),
+         // 优惠券明细
+         activeMarketing: () =>
+           import("@/views/activityScheduling/activeMarketing"),
+         // 2021双11
+         "2021double11List": () =>
+           import("@/views/activityScheduling/2021double11List"),
+         // 活动资格管理
+         activeSenior: () =>
+           import("@/views/categroyManager/activeSenior"),
+         backManager: () => import("@/views/backManager"),
+         // 教材列表
+         teachManager: () => import("@/views/teachManager"),
+         // 教材分类
+         teachClass: () => import("@/views/teachManager/teachClass"),
+         // 课程规则设置
+         courseRulersManager: () =>
+           import("@/views/courseRulersManager"),
+         // 基础规则设置
+         baseRulesManager: () => import("@/views/baseRulesManager"),
+         // 课程参数设置
+         baseRulesClassSetting: () =>
+           import("@/views/baseRulesClassSetting"),
+         // 产品管理
+         productManager: () =>
+           import("@/views/platformManager/productManger"),
+         // 服务管理
+         // 基本信息配置
+         serviceManager: () => import("@/views/courseListManager"),
+         serviceList: () =>
+           import("@/views/platformManager/serviceManager/index"),
+         serviceOperation: () =>
+           import("@/views/platformManager/serviceManager/form"),
+         // 机构申请
+         tenantApply: () =>
+           import("@/views/platformManager/tenantApply"),
+         // 云教练流量包
+         cloudTrafficPackage: () =>
+           import("@/views/platformManager/cloudTrafficPackage"),
+         accompanyBaseConfig: () =>
+           import("@/views/categroyManager/accompanyBaseConfig"),
+         // 网管课价格配置
+         accompanyFeeConfig: () =>
+           import("@/views/categroyManager/accompanyFeeConfig"), // 机构列表
+         organList: () => import("@/views/organManager"),
+         organOperation: () =>
+           import("@/views/organManager/organOperation"),
+         // 课酬预警
+         earlyWarning: () =>
+           import("@/views/categroyManager/generalSettings/earlyWarning"),
+         holidaySetting: () =>
+           import("@/views/categroyManager/generalSettings/holidaySetting"),
+         // 平台课程默认值
+         platformCourseDeault: () =>
+           import("@/views/platformManager/platformCourseDeault"),
+         // 特殊参数默认值
+         specialDeault: () =>
+           import("@/views/baseRulesManager/special.vue"),
+         // 机构设置
+         tenantInfoSetting: () =>
+           import("@/views/tenantSetting/tenantInfo.vue"),
+         // 机构协议管理
+         tenantInfoProtocol: () =>
+           import("@/views/tenantSetting/tenantInfoProtocol.vue"),
+         // 机构交易管理
+         tenantTradeManager: () =>
+           import("@/views/tenantSetting/tenantTradeManager.vue"),
+         // 云教练激活记录
+         groupRecordManager: () =>
+           import("@/views/tenantSetting/groupRecordManager.vue"),
+         // 扣费记录
+         chargingRecord: () =>
+           import("@/views/tenantSetting/chargingRecord.vue"),
+         // 操作手册管理
+         operationManual: () => import("@/views/operationManual"),
+         // 产品服务
+         productService: () => import("@/views/productService"),
+         // 声部分类列表
+         subjectCategroyList: () =>
+           import("@/views/categroyManager/subjectCategroyList"),
+         // oa信息管理
+         OAMananger: () => import("@/views/OAMananger"),
+         // 平台员工管理
+         staffPlatManager: () =>
+           import("@/views/categroyManager/insideSetting/staffPlatManager"),
+         //邮件配置服务
+         mailInfoManager: () => import("@/views/mailInfoManager"),
+         // 机构协议管理
+         protocolManagement: () => import("@/views/protocolManagement"),
+         //
+         studentGroupPractice: () =>
+           import("@/views/studentManager/studentGroupPractice"),
+         // 云教练缴费记录
+         studentGroupRecord: () =>
+           import("@/views/studentManager/studentGroupRecord"),
+         // 直播课管理
+         liveClassManager: () => import("@/views/liveClassManager"),
+         // 新建直播课
+         createLiveClass: () =>
+           import("@/views/liveClassManager/newLiveClass"),
+         // 直播课详情
+         liveClassDetail: () =>
+           import("@/views/liveClassManager/liveClassDetail"),
+         // 平台员工管理
+         platformAdminManger: () =>
+           import("@/views/platformManager/paltformAdmin"),
+         // 小课学员管理
+         smallStudentManager: () =>
+           import("@/views/smallStudentManager"),
+         // 代理商管理
+         agentList: () => import("@/views/agentManager/agentList"),
+         // 云教练分润
+         memberShareList: () =>
+           import("@/views/agentManager/memberShareList"),
+         // 群组管理
+         groupChatManager: () => import("@/views/groupChatManager"),
+         // 群聊公告
+         sysGroupCat: () =>
+           import("@/views/groupChatManager/sysGroupCat"),
+         // 小小艺术家训练营
+         littleArtistCamp: () => import("@/views/littleArtistCamp"),
+         liveShopManger: () => import("@/views/liveShopManger"),
+         // 学员乐保
+         studentLebaoManager: () =>
+           import("@/views/studentLebaoManager"),
+         // 排课资格
+         courseCredentials: () => import("@/views/courseCredentials"),
+         // 合作单位缴费
+         branchPayManager: () =>
+           import("@/views/branchPayManager/payList"),
+         // 合作单位分润 payShareList
+         branchShareManager: () =>
+           import("@/views/branchPayManager/payShareList"),
+         smallCourseConsumption: () =>
+           import("@/views/smallCourseConsumption/index.vue"),
+         // 训练详情
+         exerciseDurationDetail: () =>
+           import("@/views/main/cloudDate/exerciseDurationDetail.vue"),
+         // 新课表列表
+         newCourseList: () => import("@/views/newCourseList"),
+         newOrderList: () => import("@/views/newCourseList/orderList")
+       };
 export default router;

+ 40 - 39
src/views/agentManager/memberShareList.vue

@@ -12,20 +12,19 @@
             <span>
               意向机构
             </span>
-            <span> <count-to :endVal="detail.tenantAgency"  /></span>
+            <span> <count-to :endVal="detail.tenantAgency"/></span>
           </statistic-item>
-             <statistic-item>
+          <statistic-item>
             <span>
               入驻机构
-
             </span>
-            <span> <count-to :endVal="detail.preTenant"  /></span>
+            <span> <count-to :endVal="detail.preTenant"/></span>
           </statistic-item>
-             <statistic-item>
+          <statistic-item>
             <span>
               云教练销售数(个月)
             </span>
-            <span> <count-to :endVal="detail.memberCount"  /></span>
+            <span> <count-to :endVal="detail.memberCount"/></span>
           </statistic-item>
         </statistic>
       </el-card>
@@ -71,7 +70,7 @@
             start-placeholder="开始日期"
             end-placeholder="结束日期"
             :picker-options="{
-              firstDayOfWeek: 1,
+              firstDayOfWeek: 1
             }"
           >
           </el-date-picker>
@@ -142,20 +141,24 @@ import { getToken } from "@/utils/auth";
 import pagination from "@/components/Pagination/index";
 import { getTimes } from "@/utils";
 import load from "@/utils/loading";
-import { getProxyUserList, getProxyDividend,getProxyDividendList } from "./api";
-import countTo from 'vue-count-to'
+import {
+  getProxyUserList,
+  getProxyDividend,
+  getProxyDividendList
+} from "./api";
+import countTo from "vue-count-to";
 export default {
-  components: { pagination ,   'count-to': countTo},
+  components: { pagination, "count-to": countTo },
   data() {
     return {
       searchForm: {
         search: null,
-        timer: [],
+        timer: []
       },
-      detail:{
-        memberCount:0,
-          preTenant:0,
-          tenantAgency:0
+      detail: {
+        memberCount: 0,
+        preTenant: 0,
+        tenantAgency: 0
       },
       tableList: [],
       organList: [],
@@ -164,9 +167,9 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50], // 选择限制显示条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
-      proxyList: [],
+      proxyList: []
     };
   },
   //生命周期 - 创建完成(可以访问当前this实例)
@@ -180,26 +183,25 @@ export default {
   methods: {
     init() {
       this.getProxList();
-      this.getProxyDividendDetail()
+      this.getProxyDividendDetail();
       this.getList();
     },
-    async getProxyDividendDetail(){
-      try{
-         const res = await getProxyDividend()
-          this.detail = {
-         ...res.data
-        }
-      }catch(e){
-        console.log(e)
+    async getProxyDividendDetail() {
+      try {
+        const res = await getProxyDividend();
+        this.detail = {
+          ...res.data
+        };
+      } catch (e) {
+        console.log(e);
       }
-
     },
     async getProxList() {
       try {
         const res = await getProxyUserList({
           page: 1,
           rows: 9999,
-          state: "0",
+          state: "0"
         });
         this.proxyList = res.data.rows;
       } catch (e) {}
@@ -210,13 +212,12 @@ export default {
         ...rest,
         page: this.rules.page,
         rows: this.rules.limit,
-        ...getTimes(timer, ["startData", "endData"]),
+        ...getTimes(timer, ["startData", "endData"])
       };
       try {
         const res = await getProxyDividendList({ ...params });
         this.tableList = res.data.rows;
         this.rules.total = res.data.total;
-
       } catch (e) {
         console.log(e);
       }
@@ -226,10 +227,10 @@ export default {
       this.getList();
     },
     onReSet() {
-      this.$nextTick(()=>{
-         this.searchForm.timer = this.getInitDate();
-         this.search()
-      })
+      this.$nextTick(() => {
+        this.searchForm.timer = this.getInitDate();
+        this.search();
+      });
     },
     getInitDate() {
       const end = this.$helpers.dayjs(new Date()).format("YYYY-MM-DD");
@@ -238,15 +239,15 @@ export default {
         .set("date", 1)
         .format("YYYY-MM-DD");
       return [start, end];
-    },
-  },
+    }
+  }
 };
 </script>
-<style lang='scss' scoped>
+<style lang="scss" scoped>
 .myCard {
   margin-bottom: 20px;
- ::v-deep .el-card__body {
-    padding: 0 20px!important;
+  ::v-deep .el-card__body {
+    padding: 0 20px !important;
   }
 }
 </style>

+ 15 - 13
src/views/auditList/index.vue

@@ -5,16 +5,19 @@
       费用审核
     </h2>
     <div class="m-core">
-      <tab-router v-model.trim="activeIndex"
-               type="card">
-        <el-tab-pane label="乐团缴费"
-                     name="1"
-                     v-if="permission('/auditList/music')">
+      <tab-router v-model.trim="activeIndex" type="card">
+        <el-tab-pane
+          label="乐团缴费"
+          name="1"
+          v-if="permission('/auditList/music')"
+        >
           <musicGroup v-if="activeIndex === '1'" />
         </el-tab-pane>
-        <el-tab-pane label="云教练缴费"
-                     name="2"
-                     v-if="permission('cloudCoachPaymentProgram/queryPage/home')">
+        <el-tab-pane
+          label="云教练缴费"
+          name="2"
+          v-if="permission('cloudCoachPaymentProgram/queryPage/home')"
+        >
           <member v-if="activeIndex === '2'" />
         </el-tab-pane>
       </tab-router>
@@ -33,16 +36,15 @@ export default {
   },
   data() {
     return {
-      activeIndex: null,
+      activeIndex: null
     };
   },
   mounted() {
     // console.log(permission('/main/main/allData/826'))
   },
   methods: {
-    permission,
-  },
+    permission
+  }
 };
 </script>
-<style lang="scss" scope>
-</style>
+<style lang="scss" scope></style>

+ 46 - 41
src/views/categroyManager/insideSetting/branchActiveOperation.vue

@@ -170,7 +170,7 @@ import {
   getUserRole,
   courseScheduleRewardsAdd,
   courseScheduleRewardsUpdate,
-  findTeacherByOrganId,
+  findTeacherByOrganId
 } from "@/api/systemManage";
 import { vipGroupCategory } from "@/api/vipSeting";
 export default {
@@ -195,44 +195,44 @@ export default {
             max: null,
             money: null,
             disabled: false,
-            key: Date.now(),
-          },
+            key: Date.now()
+          }
         ],
-        errorText: null,
+        errorText: null
       },
       rules: {
         name: [{ required: true, message: "请输入活动名称", trigger: "blur" }],
         rewardMode: [
-          { required: true, message: "请选择活动类型", trigger: "change" },
+          { required: true, message: "请选择活动类型", trigger: "change" }
         ],
         vipGroupCategoryIdList: [
           {
             type: "array",
             required: true,
             message: "请选择课程类型",
-            trigger: "change",
-          },
+            trigger: "change"
+          }
         ],
         organId: [
-          { required: true, message: "请选择所属分部", trigger: "change" },
+          { required: true, message: "请选择所属分部", trigger: "change" }
         ],
         subjectIds: [
           {
             type: "array",
             required: true,
             message: "请选择所属声部",
-            trigger: "change",
-          },
+            trigger: "change"
+          }
         ],
         teacherId: [
           {
             type: "array",
             required: true,
             message: "请选择老师",
-            trigger: "change",
-          },
-        ],
-      },
+            trigger: "change"
+          }
+        ]
+      }
     };
   },
   mounted() {
@@ -250,7 +250,7 @@ export default {
 
       if (this.pageType == "update") {
         let courseScheduleRewards = await courseScheduleRewardsQuery({
-          id: this.id,
+          id: this.id
         });
         if (courseScheduleRewards.code == 200) {
           let data = courseScheduleRewards.data;
@@ -283,10 +283,10 @@ export default {
                       max: null,
                       money: null,
                       disabled: false,
-                      key: Date.now(),
-                    },
+                      key: Date.now()
+                    }
                   ],
-              errorText: null,
+              errorText: null
             };
           });
         }
@@ -307,17 +307,17 @@ export default {
       await findTeacherByOrganId({
         organId: organId,
         subjectIds: subjectIds,
-        jobNature: "FULL_TIME",
-      }).then((res) => {
+        jobNature: "FULL_TIME"
+      }).then(res => {
         if (res.code == 200) {
           if (type != "update") {
             this.teacherList = [];
             this.result.teacherId = [];
           }
-          res.data.forEach((item) => {
+          res.data.forEach(item => {
             this.teacherList.push({
               label: item.realName,
-              value: item.id,
+              value: item.id
             });
           });
         }
@@ -329,17 +329,17 @@ export default {
         return;
       }
       this.result.teacherId = [];
-      this.teacherList.forEach((item) => {
+      this.teacherList.forEach(item => {
         this.result.teacherId.push(item.value.toString());
       });
     },
     onSubmit(formName) {
-      this.$refs[formName].validate((valid) => {
+      this.$refs[formName].validate(valid => {
         let result = JSON.parse(JSON.stringify(this.result));
         this.addDomain(result, true);
         if (valid && !result.errorText) {
           // 如果奖励金额为空时,默认为0
-          result.domains.forEach((item) => {
+          result.domains.forEach(item => {
             if (!item.money) {
               item.money = 0;
             }
@@ -352,16 +352,16 @@ export default {
             rewardMode: result.rewardMode,
             subjectIds: result.subjectIds.join(","),
             rewardsRulesJson: JSON.stringify(result.domains),
-            name: result.name,
+            name: result.name
           };
           if (this.pageType == "update") {
             params.id = result.id;
-            courseScheduleRewardsUpdate(params).then((res) => {
+            courseScheduleRewardsUpdate(params).then(res => {
               this.messageTips("修改", res);
             });
           } else if (this.pageType == "create") {
             // return false
-            courseScheduleRewardsAdd(params).then((res) => {
+            courseScheduleRewardsAdd(params).then(res => {
               this.messageTips("添加", res);
             });
           }
@@ -372,16 +372,22 @@ export default {
     },
     messageTips(title, res) {
       if (res.code == 200) {
-        this.$message.success('修改成功')
-        this.$store.dispatch('delVisitedViews', this.$route)
-        this.$router.push({ path: '/operateManager/branchActiveManager/branchActive', query: { rules: this.pageInfo, searchForm: this.searchForm } })
+        this.$message.success("修改成功");
+        this.$store.dispatch("delVisitedViews", this.$route);
+        this.$router.push({
+          path: "/operateManager/branchActiveManager/branchActive",
+          query: { rules: this.pageInfo, searchForm: this.searchForm }
+        });
       } else {
         this.$message.error(res.msg);
       }
     },
-    onCancel () {
-      this.$store.dispatch('delVisitedViews', this.$route)
-      this.$router.push({ path: '/operateManager/branchActiveManager/branchActive', query: { rules: this.pageInfo, searchForm: this.searchForm } })
+    onCancel() {
+      this.$store.dispatch("delVisitedViews", this.$route);
+      this.$router.push({
+        path: "/operateManager/branchActiveManager/branchActive",
+        query: { rules: this.pageInfo, searchForm: this.searchForm }
+      });
     },
     resetForm() {
       this.teacherList = [];
@@ -398,10 +404,10 @@ export default {
             max: null,
             money: null,
             disabled: false,
-            key: Date.now(),
-          },
+            key: Date.now()
+          }
         ],
-        errorText: null,
+        errorText: null
       };
       this.$refs.form.resetFields();
     },
@@ -449,15 +455,14 @@ export default {
           min: null,
           max: null,
           disabled: false,
-          key: Date.now(),
+          key: Date.now()
         });
       }
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="scss" scoped>
-
 .el-row {
   margin-top: 40px;
 }

+ 178 - 0
src/views/levelManager/components/level-notice.vue

@@ -0,0 +1,178 @@
+<template>
+  <div>
+    <!-- 搜索标题 -->
+    <save-form
+      :inline="true"
+      class="searchForm"
+      ref="searchForm"
+      @submit="onSearch"
+      @reset="onReSet"
+      :model="searchForm"
+      saveKey="level-student-rule"
+    >
+      <el-form-item prop="name">
+        <el-input
+          v-model.trim="searchForm.name"
+          clearable
+          placeholder="请输入风采标题"
+          @keyup.enter.native="
+            e => {
+              e.target.blur();
+              $refs.searchForm.save();
+              search();
+            }
+          "
+        ></el-input>
+      </el-form-item>
+      <el-form-item prop="city">
+        <el-select
+          v-model.trim="searchForm.organId"
+          filterable
+          clearable
+          placeholder="请选择分部"
+        >
+          <el-option
+            v-for="(item, index) in selects.branchs"
+            :key="index"
+            :label="item.name"
+            :value="item.id"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-select
+          class="multiple"
+          v-model.trim="searchForm.degreeType"
+          filterable
+          clearable
+          placeholder="请选择状态"
+        >
+          <el-option :value="4" label="停用"></el-option>
+          <el-option :value="3" label="启用"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-button native-type="submit" type="danger">搜索</el-button>
+        <el-button native-type="reset" type="primary">重置</el-button>
+      </el-form-item>
+    </save-form>
+    <el-button
+      v-permission="'/teacherOperationAdd'"
+      type="primary"
+      @click="onOperation()"
+      style="margin-bottom:20px"
+    >
+      新增风采
+    </el-button>
+    <div class="tableWrap">
+      <el-table
+        :data="tableList"
+        :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+      >
+        <el-table-column width="90px" prop="id" label="编号"> </el-table-column>
+        <el-table-column prop="name" label="标题">
+          <template slot-scope="scope">
+            <overflow-text :text="scope.row.name"></overflow-text>
+          </template>
+        </el-table-column>
+        <el-table-column prop="name" label="分部">
+          <template slot-scope="scope">
+            <copy-text>{{ scope.row.name }}</copy-text>
+          </template>
+        </el-table-column>
+        <el-table-column prop="name" label="状态">
+          <template slot-scope="scope">
+            <copy-text>{{ scope.row.name }}</copy-text>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" fixed="right">
+          <template slot-scope="scope">
+            <el-button type="text" @click="onOperation('update', scope.row)"
+              >停用</el-button
+            >
+            <el-button type="text" @click="onOperation('update', scope.row)"
+              >修改</el-button
+            >
+            <el-button type="text" @click="onOperation('update', scope.row)"
+              >删除</el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+      <pagination
+        sync
+        saveKey="level-student-rule"
+        :total.sync="pageInfo.total"
+        :page.sync="pageInfo.page"
+        :limit.sync="pageInfo.limit"
+        :page-sizes="pageInfo.page_size"
+        @pagination="getList"
+      />
+    </div>
+
+    <informationOperation ref="informationOperation" @getList="getList" />
+  </div>
+</template>
+<script>
+import pagination from "@/components/Pagination/index";
+import informationOperation from "../model/information-operation";
+export default {
+  components: { pagination, informationOperation },
+  name: "student-rule",
+  data() {
+    return {
+      searchForm: {},
+      tableList: [],
+      pageInfo: {
+        // 分页规则
+        limit: 10, // 限制显示条数
+        page: 1, // 当前页
+        total: 0, // 总条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
+      }
+    };
+  },
+  mounted() {
+    this.$store.dispatch("setBranchs");
+  },
+  methods: {
+    onSearch() {
+      this.pageInfo.page = 1;
+      // this.getList();
+    },
+    onReSet() {
+      this.$refs.searchForm.resetFields();
+      // this.search();
+    },
+    async getList() {},
+    onOperation(type, row) {
+      const dialogType = type || "create";
+      /**
+       * @param 创建/修改
+       * @param 类型
+       * @params 值
+       */
+      this.$refs.informationOperation.openDialog(dialogType, "student", row);
+    }
+  }
+};
+</script>
+<style lang="scss" scoped>
+::v-deep .el-image-viewer__close {
+  color: #fff;
+  opacity: 1;
+}
+::v-deep .el-date-editor.el-input {
+  width: 100% !important;
+}
+::v-deep .el-select {
+  width: 100% !important;
+}
+::v-deep .el-table .cell {
+  display: -webkit-box;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  -webkit-line-clamp: 3;
+  -webkit-box-orient: vertical;
+}
+</style>

+ 178 - 0
src/views/levelManager/components/level-regulations.vue

@@ -0,0 +1,178 @@
+<template>
+  <div>
+    <!-- 搜索标题 -->
+    <save-form
+      :inline="true"
+      class="searchForm"
+      ref="searchForm"
+      @submit="onSearch"
+      @reset="onReSet"
+      :model="searchForm"
+      saveKey="level-student-rule"
+    >
+      <el-form-item prop="name">
+        <el-input
+          v-model.trim="searchForm.name"
+          clearable
+          placeholder="请输入风采标题"
+          @keyup.enter.native="
+            e => {
+              e.target.blur();
+              $refs.searchForm.save();
+              search();
+            }
+          "
+        ></el-input>
+      </el-form-item>
+      <el-form-item prop="city">
+        <el-select
+          v-model.trim="searchForm.organId"
+          filterable
+          clearable
+          placeholder="请选择分部"
+        >
+          <el-option
+            v-for="(item, index) in selects.branchs"
+            :key="index"
+            :label="item.name"
+            :value="item.id"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-select
+          class="multiple"
+          v-model.trim="searchForm.degreeType"
+          filterable
+          clearable
+          placeholder="请选择状态"
+        >
+          <el-option :value="4" label="停用"></el-option>
+          <el-option :value="3" label="启用"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-button native-type="submit" type="danger">搜索</el-button>
+        <el-button native-type="reset" type="primary">重置</el-button>
+      </el-form-item>
+    </save-form>
+    <el-button
+      v-permission="'/teacherOperationAdd'"
+      type="primary"
+      @click="onOperation()"
+      style="margin-bottom:20px"
+    >
+      新增风采
+    </el-button>
+    <div class="tableWrap">
+      <el-table
+        :data="tableList"
+        :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+      >
+        <el-table-column width="90px" prop="id" label="编号"> </el-table-column>
+        <el-table-column prop="name" label="标题">
+          <template slot-scope="scope">
+            <overflow-text :text="scope.row.name"></overflow-text>
+          </template>
+        </el-table-column>
+        <el-table-column prop="name" label="分部">
+          <template slot-scope="scope">
+            <copy-text>{{ scope.row.name }}</copy-text>
+          </template>
+        </el-table-column>
+        <el-table-column prop="name" label="状态">
+          <template slot-scope="scope">
+            <copy-text>{{ scope.row.name }}</copy-text>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" fixed="right">
+          <template slot-scope="scope">
+            <el-button type="text" @click="onOperation('update', scope.row)"
+              >停用</el-button
+            >
+            <el-button type="text" @click="onOperation('update', scope.row)"
+              >修改</el-button
+            >
+            <el-button type="text" @click="onOperation('update', scope.row)"
+              >删除</el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+      <pagination
+        sync
+        saveKey="level-student-rule"
+        :total.sync="pageInfo.total"
+        :page.sync="pageInfo.page"
+        :limit.sync="pageInfo.limit"
+        :page-sizes="pageInfo.page_size"
+        @pagination="getList"
+      />
+    </div>
+
+    <informationOperation ref="informationOperation" @getList="getList" />
+  </div>
+</template>
+<script>
+import pagination from "@/components/Pagination/index";
+import informationOperation from "../model/information-operation";
+export default {
+  components: { pagination, informationOperation },
+  name: "student-rule",
+  data() {
+    return {
+      searchForm: {},
+      tableList: [],
+      pageInfo: {
+        // 分页规则
+        limit: 10, // 限制显示条数
+        page: 1, // 当前页
+        total: 0, // 总条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
+      }
+    };
+  },
+  mounted() {
+    this.$store.dispatch("setBranchs");
+  },
+  methods: {
+    onSearch() {
+      this.pageInfo.page = 1;
+      // this.getList();
+    },
+    onReSet() {
+      this.$refs.searchForm.resetFields();
+      // this.search();
+    },
+    async getList() {},
+    onOperation(type, row) {
+      const dialogType = type || "create";
+      /**
+       * @param 创建/修改
+       * @param 类型
+       * @params 值
+       */
+      this.$refs.informationOperation.openDialog(dialogType, "student", row);
+    }
+  }
+};
+</script>
+<style lang="scss" scoped>
+::v-deep .el-image-viewer__close {
+  color: #fff;
+  opacity: 1;
+}
+::v-deep .el-date-editor.el-input {
+  width: 100% !important;
+}
+::v-deep .el-select {
+  width: 100% !important;
+}
+::v-deep .el-table .cell {
+  display: -webkit-box;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  -webkit-line-clamp: 3;
+  -webkit-box-orient: vertical;
+}
+</style>

+ 178 - 0
src/views/levelManager/components/student-rule.vue

@@ -0,0 +1,178 @@
+<template>
+  <div>
+    <!-- 搜索标题 -->
+    <save-form
+      :inline="true"
+      class="searchForm"
+      ref="searchForm"
+      @submit="onSearch"
+      @reset="onReSet"
+      :model="searchForm"
+      saveKey="level-student-rule"
+    >
+      <el-form-item prop="name">
+        <el-input
+          v-model.trim="searchForm.name"
+          clearable
+          placeholder="请输入风采标题"
+          @keyup.enter.native="
+            e => {
+              e.target.blur();
+              $refs.searchForm.save();
+              search();
+            }
+          "
+        ></el-input>
+      </el-form-item>
+      <el-form-item prop="city">
+        <el-select
+          v-model.trim="searchForm.organId"
+          filterable
+          clearable
+          placeholder="请选择分部"
+        >
+          <el-option
+            v-for="(item, index) in selects.branchs"
+            :key="index"
+            :label="item.name"
+            :value="item.id"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-select
+          class="multiple"
+          v-model.trim="searchForm.degreeType"
+          filterable
+          clearable
+          placeholder="请选择状态"
+        >
+          <el-option :value="4" label="停用"></el-option>
+          <el-option :value="3" label="启用"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-button native-type="submit" type="danger">搜索</el-button>
+        <el-button native-type="reset" type="primary">重置</el-button>
+      </el-form-item>
+    </save-form>
+    <el-button
+      v-permission="'/teacherOperationAdd'"
+      type="primary"
+      @click="onOperation()"
+      style="margin-bottom:20px"
+    >
+      新增风采
+    </el-button>
+    <div class="tableWrap">
+      <el-table
+        :data="tableList"
+        :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+      >
+        <el-table-column width="90px" prop="id" label="编号"> </el-table-column>
+        <el-table-column prop="name" label="标题">
+          <template slot-scope="scope">
+            <overflow-text :text="scope.row.name"></overflow-text>
+          </template>
+        </el-table-column>
+        <el-table-column prop="name" label="分部">
+          <template slot-scope="scope">
+            <copy-text>{{ scope.row.name }}</copy-text>
+          </template>
+        </el-table-column>
+        <el-table-column prop="name" label="状态">
+          <template slot-scope="scope">
+            <copy-text>{{ scope.row.name }}</copy-text>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" fixed="right">
+          <template slot-scope="scope">
+            <el-button type="text" @click="onOperation('update', scope.row)"
+              >停用</el-button
+            >
+            <el-button type="text" @click="onOperation('update', scope.row)"
+              >修改</el-button
+            >
+            <el-button type="text" @click="onOperation('update', scope.row)"
+              >删除</el-button
+            >
+          </template>
+        </el-table-column>
+      </el-table>
+      <pagination
+        sync
+        saveKey="level-student-rule"
+        :total.sync="pageInfo.total"
+        :page.sync="pageInfo.page"
+        :limit.sync="pageInfo.limit"
+        :page-sizes="pageInfo.page_size"
+        @pagination="getList"
+      />
+    </div>
+
+    <informationOperation ref="informationOperation" @getList="getList" />
+  </div>
+</template>
+<script>
+import pagination from "@/components/Pagination/index";
+import informationOperation from "../model/information-operation";
+export default {
+  components: { pagination, informationOperation },
+  name: "student-rule",
+  data() {
+    return {
+      searchForm: {},
+      tableList: [],
+      pageInfo: {
+        // 分页规则
+        limit: 10, // 限制显示条数
+        page: 1, // 当前页
+        total: 0, // 总条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
+      }
+    };
+  },
+  mounted() {
+    this.$store.dispatch("setBranchs");
+  },
+  methods: {
+    onSearch() {
+      this.pageInfo.page = 1;
+      // this.getList();
+    },
+    onReSet() {
+      this.$refs.searchForm.resetFields();
+      // this.search();
+    },
+    async getList() {},
+    onOperation(type, row) {
+      const dialogType = type || "create";
+      /**
+       * @param 创建/修改
+       * @param 类型
+       * @params 值
+       */
+      this.$refs.informationOperation.openDialog(dialogType, "student", row);
+    }
+  }
+};
+</script>
+<style lang="scss" scoped>
+::v-deep .el-image-viewer__close {
+  color: #fff;
+  opacity: 1;
+}
+::v-deep .el-date-editor.el-input {
+  width: 100% !important;
+}
+::v-deep .el-select {
+  width: 100% !important;
+}
+::v-deep .el-table .cell {
+  display: -webkit-box;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  -webkit-line-clamp: 3;
+  -webkit-box-orient: vertical;
+}
+</style>

+ 241 - 0
src/views/levelManager/gradeManager.vue

@@ -0,0 +1,241 @@
+<template>
+  <div class="m-container">
+    <h2>
+      <div class="squrt"></div>
+      考级管理
+    </h2>
+    <div class="m-core">
+      <!-- 搜索标题 -->
+      <save-form
+        :inline="true"
+        class="searchForm"
+        ref="searchForm"
+        @submit="onSearch"
+        @reset="onReSet"
+        :model="searchForm"
+      >
+        <el-form-item prop="name">
+          <el-input
+            v-model.trim="searchForm.name"
+            clearable
+            placeholder="请输入名称/编号"
+            @keyup.enter.native="
+              e => {
+                e.target.blur();
+                $refs.searchForm.save();
+                search();
+              }
+            "
+          ></el-input>
+        </el-form-item>
+        <el-form-item prop="orderDate">
+          <el-date-picker
+            v-model.trim="searchForm.orderDate"
+            style="width: 410px"
+            type="daterange"
+            value-format="yyyy-MM-dd"
+            range-separator="至"
+            start-placeholder="开始日期"
+            end-placeholder="结束日期"
+            :picker-options="{
+              firstDayOfWeek: 1
+            }"
+          ></el-date-picker>
+        </el-form-item>
+        <el-form-item>
+          <el-select
+            class="multiple"
+            v-model.trim="searchForm.status"
+            filterable
+            clearable
+            placeholder="请选择状态"
+          >
+            <el-option :value="1" label="未缴费"></el-option>
+            <el-option :value="2" label="已缴费"></el-option>
+            <el-option :value="3" label="已退费"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-button native-type="submit" type="danger">搜索</el-button>
+          <el-button native-type="reset" type="primary">重置</el-button>
+        </el-form-item>
+      </save-form>
+
+      <el-button
+        v-permission="'/teacherOperationAdd'"
+        type="primary"
+        @click="onGradeOperation"
+        style="margin-bottom:20px"
+      >
+        新增考级
+      </el-button>
+
+      <div class="tableWrap">
+        <el-table
+          :data="tableList"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+        >
+          <el-table-column width="90px" align="center" prop="id" label="编号">
+            <template slot-scope="scope">
+              <copy-text>{{ scope.row.id }}</copy-text>
+            </template>
+          </el-table-column>
+          <el-table-column prop="name" label="考级名称">
+            <template slot-scope="scope">
+              <copy-text>{{ scope.row.name }}</copy-text>
+              <br />
+              (<copy-text>{{ scope.row.userId }}</copy-text
+              >)
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="orderNo" label="考级时间">
+            <template slot-scope="scope">
+              15:52:13-15:52:22
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="transNo" label="人数">
+            <template slot-scope="scope">
+              <p>报名人数:0人</p>
+              <p>报名人次:0人</p>
+              <p>购课学员:0人</p>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="city" label="适用分部">
+            <template slot-scope="scope">
+              <copy-text>{{ scope.row.city }}</copy-text>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="school" label="状态">
+            <template slot-scope="scope">
+              <copy-text>{{ scope.row.school }}</copy-text>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" label="操作" fixed="right">
+            <template slot-scope="scope">
+              <el-button
+                v-if="$helpers.permission('degree/refund')"
+                type="text"
+                @click="
+                  () => {
+                    $router.push({
+                      path: '/levelManager'
+                    });
+                  }
+                "
+                >详情</el-button
+              >
+              <el-button
+                v-if="$helpers.permission('degree/refund')"
+                type="text"
+                @click="onGradeOperation('update', scope.row)"
+                >修改</el-button
+              >
+            </template>
+          </el-table-column>
+        </el-table>
+        <pagination
+          sync
+          :total.sync="pageInfo.total"
+          :page.sync="pageInfo.page"
+          :limit.sync="pageInfo.limit"
+          :page-sizes="pageInfo.page_size"
+          @pagination="getList"
+        />
+      </div>
+    </div>
+
+    <gradeOperation ref="gradeOperation" @getList="getList" />
+  </div>
+</template>
+<script>
+import pagination from "@/components/Pagination/index";
+import gradeOperation from "./model/grade-operation";
+import { degreeQueryPage } from "./levelManageApi";
+import { getTimes } from "@/utils";
+export default {
+  components: { pagination, gradeOperation },
+  name: "helpCategory",
+  data() {
+    return {
+      searchForm: {
+        name: null,
+        status: 2,
+        startTime: null,
+        organId: null,
+        endTime: null,
+        orderDate: []
+      },
+      totalNumber: 0,
+      totalAmount: 0,
+      tableList: [],
+      pageInfo: {
+        // 分页规则
+        limit: 10, // 限制显示条数
+        page: 1, // 当前页
+        total: 0, // 总条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
+      },
+      tempTreeList: []
+    };
+  },
+  mounted() {
+    this.$store.dispatch("setBranchs");
+    this.getList();
+  },
+  methods: {
+    onSearch() {
+      this.pageInfo.page = 1;
+      this.getList();
+    },
+    onReSet() {
+      // 重置搜索
+      this.orderDate = null;
+      this.$refs.searchForm.resetFields();
+      //  this.$set(this.searchForm,'status','pay')
+      this.searchForm.status = 2;
+      this.onSearch();
+    },
+    getList() {
+      let { orderDate, ...rest } = this.searchForm;
+      let params = {
+        ...rest,
+        page: this.pageInfo.page,
+        rows: this.pageInfo.limit,
+        ...getTimes(orderDate, ["startTime", "endTime"])
+      };
+      degreeQueryPage(params).then(res => {
+        let result = res.data;
+        if (res.code == 200) {
+          this.totalNumber = result.applyNum;
+          this.totalAmount = result.totalAmount;
+          this.tableList = result.rows;
+          this.pageInfo.total = result.total;
+        }
+      });
+    },
+    onGradeOperation(type, row) {
+      const dialogType = type || "create";
+      this.$refs.gradeOperation.openDialog(dialogType, row);
+    }
+  }
+};
+</script>
+<style lang="scss" scoped>
+::v-deep .el-image-viewer__close {
+  color: #fff;
+  opacity: 1;
+}
+::v-deep .el-date-editor.el-input {
+  width: 100% !important;
+}
+::v-deep .el-select {
+  width: 100% !important;
+}
+::v-deep .el-table .cell {
+  display: -webkit-box;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  -webkit-line-clamp: 3;
+  -webkit-box-orient: vertical;
+}
+</style>

+ 56 - 0
src/views/levelManager/levelInformationSetting.vue

@@ -0,0 +1,56 @@
+<template>
+  <div class="m-container">
+    <h2>
+      <div class="squrt"></div>
+      考级信息设置
+    </h2>
+    <div class="m-core">
+      <tab-router v-model.trim="activeIndex" type="card">
+        <el-tab-pane
+          label="考生风采"
+          name="1"
+          v-if="permission('/auditList/music')"
+        >
+          <studentRule v-if="activeIndex === '1'" />
+        </el-tab-pane>
+        <el-tab-pane
+          label="考级简章"
+          name="2"
+          v-if="permission('cloudCoachPaymentProgram/queryPage/home')"
+        >
+          <levelRegulations v-if="activeIndex === '2'" />
+        </el-tab-pane>
+        <el-tab-pane
+          label="考级须知"
+          name="3"
+          v-if="permission('cloudCoachPaymentProgram/queryPage/home')"
+        >
+          <levelNotice v-if="activeIndex === '3'" />
+        </el-tab-pane>
+      </tab-router>
+    </div>
+  </div>
+</template>
+<script>
+import { permission } from "@/utils/directivePage";
+import studentRule from "./components/student-rule";
+import levelRegulations from "./components/level-regulations";
+import levelNotice from "./components/level-notice";
+export default {
+  name: "levelInformationSetting",
+  components: {
+    studentRule,
+    levelRegulations,
+    levelNotice
+  },
+  data() {
+    return {
+      activeIndex: null
+    };
+  },
+  methods: {
+    permission
+  }
+};
+</script>
+<style lang="scss" scoped></style>

+ 61 - 39
src/views/levelManager/levelManager.vue

@@ -1,10 +1,40 @@
 <template>
   <div class="m-container">
     <h2>
-      <div class="squrt"></div>
-      考级报名
+      <!-- <div class="squrt"></div>
+      考级报名 -->
+      <el-page-header @back="onCancel" :content="'考级报名'"></el-page-header>
     </h2>
     <div class="m-core">
+      <el-card header="" style="width:60%" class="myCard">
+        <statistic class="statistic" :cols="0">
+          <statistic-item>
+            <span>
+              报名人数
+            </span>
+            <span> <count-to :endVal="1001"/></span>
+          </statistic-item>
+          <statistic-item>
+            <span>
+              报名人次
+            </span>
+            <span> <count-to :endVal="100"/></span>
+          </statistic-item>
+          <statistic-item>
+            <span>
+              考级收入
+            </span>
+            <span> <count-to :endVal="100"/></span>
+          </statistic-item>
+          <statistic-item>
+            <span>
+              课程收入
+            </span>
+            <span> <count-to :endVal="100"/></span>
+          </statistic-item>
+        </statistic>
+      </el-card>
+
       <!-- 搜索标题 -->
       <save-form
         :inline="true"
@@ -19,8 +49,8 @@
             v-model.trim="searchForm.name"
             clearable
             placeholder="请输入姓名"
-              @keyup.enter.native="
-              (e) => {
+            @keyup.enter.native="
+              e => {
                 e.target.blur();
                 $refs.searchForm.save();
                 search();
@@ -33,8 +63,8 @@
             v-model.trim="searchForm.orderNo"
             clearable
             placeholder="请输入订单编号"
-              @keyup.enter.native="
-              (e) => {
+            @keyup.enter.native="
+              e => {
                 e.target.blur();
                 $refs.searchForm.save();
                 search();
@@ -45,8 +75,8 @@
         <el-form-item prop="transNo">
           <el-input
             v-model.trim="searchForm.transNo"
-              @keyup.enter.native="
-              (e) => {
+            @keyup.enter.native="
+              e => {
                 e.target.blur();
                 $refs.searchForm.save();
                 search();
@@ -64,8 +94,8 @@
         <el-form-item prop="city">
           <el-input
             v-model.trim="searchForm.city"
-              @keyup.enter.native="
-              (e) => {
+            @keyup.enter.native="
+              e => {
                 e.target.blur();
                 $refs.searchForm.save();
                 search();
@@ -159,7 +189,8 @@
             <template slot-scope="scope">
               <copy-text>{{ scope.row.name }}</copy-text>
               <br />
-              (<copy-text>{{ scope.row.userId }}</copy-text>)
+              (<copy-text>{{ scope.row.userId }}</copy-text
+              >)
             </template>
           </el-table-column>
           <el-table-column align="center" prop="orderNo" label="订单编号">
@@ -167,7 +198,12 @@
               <copy-text>{{ scope.row.orderNo }}</copy-text>
             </template>
           </el-table-column>
-          <el-table-column align="center" prop="transNo" label="交易流水号" min-width="110px">
+          <el-table-column
+            align="center"
+            prop="transNo"
+            label="交易流水号"
+            min-width="110px"
+          >
             <template slot-scope="scope">
               <el-tooltip placement="top-start">
                 <div slot="content">{{ scope.row.transNo }}</div>
@@ -313,8 +349,9 @@ import { degreeQueryPage, degreeRefund } from "./levelManageApi";
 import { getToken, getTenantId } from "@/utils/auth";
 import { getTimes } from "@/utils";
 import load from "@/utils/loading";
+import countTo from "vue-count-to";
 export default {
-  components: { pagination },
+  components: { pagination, "count-to": countTo },
   name: "helpCategory",
   data() {
     return {
@@ -344,13 +381,10 @@ export default {
     };
   },
   mounted() {
+    this.$store.dispatch("setBranchs");
     this.getList();
-    this.__init();
   },
   methods: {
-    __init() {
-      this.$store.dispatch("setBranchs");
-    },
     onSearch() {
       this.pageInfo.page = 1;
       this.getList();
@@ -359,25 +393,12 @@ export default {
       // 重置搜索
 
       this.orderDate = null;
-      // this.searchForm = {
-      //   orderNo: null,
-      //   transNo: null,
-      //   city: null,
-      //   status: null,
-      //   startTime: null,
-      //   organId: null,
-      //   endTime: null,
-      // };
       this.$refs.searchForm.resetFields();
       //  this.$set(this.searchForm,'status','pay')
       this.searchForm.status = 2;
       this.onSearch();
     },
     getList() {
-      // let searchForm = this.searchForm;
-      // let params = cleandeep(searchForm);
-      // params.page = this.pageInfo.page;
-      // params.rows = this.pageInfo.limit;
       let { orderDate, ...rest } = this.searchForm;
       let params = {
         ...rest,
@@ -412,15 +433,6 @@ export default {
         }
       });
     },
-    // searchOrderDate(value) {
-    //   if (value) {
-    //     this.searchForm.startTime = value[0];
-    //     this.searchForm.endTime = value[1];
-    //   } else {
-    //     this.searchForm.startTime = null;
-    //     this.searchForm.endTime = null;
-    //   }
-    // },
     // 导出
     onExport() {
       let url = "/api-web/export/degreeRegistration";
@@ -508,6 +520,10 @@ export default {
             });
         })
         .catch(() => {});
+    },
+    onCancel() {
+      this.$store.dispatch("delVisitedViews", this.$route);
+      this.$router.push({ path: "/gradeManager" });
     }
   },
   filters: {
@@ -519,6 +535,12 @@ export default {
 };
 </script>
 <style lang="scss" scoped>
+.myCard {
+  margin-bottom: 20px;
+  ::v-deep .el-card__body {
+    padding: 0 20px !important;
+  }
+}
 ::v-deep .el-image-viewer__close {
   color: #fff;
   opacity: 1;

+ 251 - 0
src/views/levelManager/levelSetting.vue

@@ -0,0 +1,251 @@
+<template>
+  <div class="m-container">
+    <h2>
+      <div class="squrt"></div>
+      考级金额设置
+    </h2>
+    <div class="m-core">
+      <!-- 搜索标题 -->
+      <save-form
+        :inline="true"
+        class="searchForm"
+        ref="searchForm"
+        @submit="onSearch"
+        @reset="onReSet"
+        :model="searchForm"
+      >
+        <el-form-item>
+          <el-select
+            v-model.trim="searchForm.subjectId"
+            filterable
+            clearable
+            placeholder="请选择声部"
+          >
+            <el-option
+              v-for="item in selects.subjects"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-select
+            class="multiple"
+            v-model.trim="searchForm.degreeType"
+            filterable
+            clearable
+            placeholder="请选择级别"
+          >
+            <el-option :value="4" label="2023级寒假考级"></el-option>
+            <el-option :value="3" label="2022级暑假考级"></el-option>
+            <el-option :value="2" label="2022级寒假考级"></el-option>
+            <el-option :value="1" label="2021级寒假考级"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-select
+            class="multiple"
+            v-model.trim="searchForm.status"
+            filterable
+            clearable
+            placeholder="请选择上传证件"
+          >
+            <el-option :value="1" label="全部"></el-option>
+            <el-option :value="2" label="无需上传"></el-option>
+            <el-option :value="3" label="需上传"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item>
+          <el-button native-type="submit" type="danger">搜索</el-button>
+          <el-button native-type="reset" type="primary">重置</el-button>
+        </el-form-item>
+      </save-form>
+
+      <el-button
+        v-permission="'/teacherOperationAdd'"
+        type="primary"
+        @click="onLevelSetting"
+        style="margin-bottom:20px"
+      >
+        新增
+      </el-button>
+
+      <div class="tableWrap">
+        <el-table
+          :data="tableList"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+        >
+          <el-table-column
+            prop="id"
+            label="编号"
+            min-width="60px"
+          ></el-table-column>
+          <el-table-column prop="name" label="声部" min-width="120px">
+            <template slot-scope="scope">
+              <copy-text>{{ scope.row.name }}</copy-text>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="orderNo" label="级别">
+            <template slot-scope="scope">
+              <copy-text>{{ scope.row.orderNo }}</copy-text>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="transNo"
+            label="报名金额"
+            min-width="110px"
+          >
+            <template slot-scope="scope">
+              <el-tooltip placement="top-start">
+                <div slot="content">{{ scope.row.transNo }}</div>
+              </el-tooltip>
+              <copy-text>{{ scope.row.transNo }}</copy-text>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="city" label="上传证书">
+            <template slot-scope="scope">
+              <copy-text>{{ scope.row.city }}</copy-text>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" label="操作" fixed="right">
+            <template slot-scope="scope">
+              <el-button
+                v-if="$helpers.permission('degree/refund')"
+                type="text"
+                @click="onLevelSetting('update', scope.row)"
+                >修改</el-button
+              >
+              <el-button
+                v-if="$helpers.permission('degree/refund')"
+                @click="onDelete(scope.row)"
+                type="text"
+                >删除</el-button
+              >
+            </template>
+          </el-table-column>
+        </el-table>
+        <pagination
+          sync
+          :total.sync="pageInfo.total"
+          :page.sync="pageInfo.page"
+          :limit.sync="pageInfo.limit"
+          :page-sizes="pageInfo.page_size"
+          @pagination="getList"
+        />
+      </div>
+    </div>
+
+    <levelSettingAdd ref="levelSettingAdd" @getList="getList" />
+    <levelSettingUpdate ref="levelSettingUpdate" @getList="getList" />
+  </div>
+</template>
+<script>
+import levelSettingAdd from "./model/levelSettingAdd";
+import levelSettingUpdate from "./model/levelSettingUpdate";
+import pagination from "@/components/Pagination/index";
+import { getTimes } from "@/utils";
+export default {
+  components: { pagination, levelSettingAdd, levelSettingUpdate },
+  name: "levelSetting",
+  data() {
+    return {
+      searchForm: {
+        subjectId: null,
+        degreeType: null,
+        status: null
+      },
+      tableList: [],
+      pageInfo: {
+        // 分页规则
+        limit: 10, // 限制显示条数
+        page: 1, // 当前页
+        total: 0, // 总条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
+      }
+    };
+  },
+  async mounted() {
+    // 获取声部
+    await this.$store.dispatch("setSubjects");
+    this.getList();
+  },
+  methods: {
+    onSearch() {
+      this.pageInfo.page = 1;
+      this.getList();
+    },
+    onReSet() {
+      // 重置搜索
+
+      this.orderDate = null;
+      this.$refs.searchForm.resetFields();
+      //  this.$set(this.searchForm,'status','pay')
+      this.searchForm.status = 2;
+      this.onSearch();
+    },
+    getList() {
+      let { orderDate, ...rest } = this.searchForm;
+      let params = {
+        ...rest,
+        page: this.pageInfo.page,
+        rows: this.pageInfo.limit,
+        ...getTimes(orderDate, ["startTime", "endTime"])
+      };
+      // degreeQueryPage(params).then(res => {
+      //   let result = res.data;
+      //   if (res.code == 200) {
+      //     this.totalNumber = result.applyNum;
+      //     this.totalAmount = result.totalAmount;
+      //     this.tableList = result.rows;
+      //     this.pageInfo.total = result.total;
+      //   }
+      // });
+    },
+    onLevelSetting(type, row) {
+      if (type === "update") {
+        this.$refs.levelSettingUpdate.openDialog(row);
+      } else {
+        this.$refs.levelSettingAdd.openDialog();
+      }
+    },
+    onDelete(item) {
+      this.$confirm("确定删除吗?", "提示", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      }).then(async () => {
+        // try {
+        //   await degreeRefund({
+        //     degreeRegistrationId: item.id
+        //   });
+        //   this.$message.success("退费成功");
+        //   this.getList();
+        // } catch {
+        //   //
+        // }
+      });
+    }
+  }
+};
+</script>
+<style lang="scss" scoped>
+::v-deep .el-image-viewer__close {
+  color: #fff;
+  opacity: 1;
+}
+::v-deep .el-date-editor.el-input {
+  width: 100% !important;
+}
+::v-deep .el-select {
+  width: 100% !important;
+}
+::v-deep .el-table .cell {
+  display: -webkit-box;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  -webkit-line-clamp: 3;
+  -webkit-box-orient: vertical;
+}
+</style>

+ 136 - 0
src/views/levelManager/model/grade-operation.vue

@@ -0,0 +1,136 @@
+<template>
+  <el-dialog
+    width="500px"
+    :title="dialogTitle"
+    :visible.sync="operationVisible"
+    :before-close="onClose"
+    append-to-body
+  >
+    <el-form
+      class="elForm"
+      ref="elForm"
+      label-position="top"
+      :model="forms"
+      :inline="false"
+      label-width="100px"
+    >
+      <el-form-item
+        label="考级标题"
+        :rules="[{ required: true, message: '请输入考级标题' }]"
+        prop="title"
+      >
+        <el-input
+          type="text"
+          clearable
+          v-model="forms.title"
+          placeholder="请输入考级标题"
+        />
+      </el-form-item>
+      <el-form-item
+        label="适用分部"
+        :rules="[{ required: true, message: '请选择适用分部' }]"
+        prop="level"
+      >
+        <select-all
+          v-model.trim="forms.organId"
+          style="width: 100%"
+          class="organSelect"
+          filterable
+          placeholder="请选择适用分部"
+          multiple
+          clearable
+        >
+          <el-option
+            v-for="(item, index) in selects.branchs"
+            :key="index"
+            :label="item.name"
+            :value="item.id"
+          ></el-option>
+        </select-all>
+      </el-form-item>
+      <el-form-item label="考级日期" prop="orderDate">
+        <el-date-picker
+          v-model.trim="forms.orderDate"
+          type="daterange"
+          value-format="yyyy-MM-dd"
+          range-separator="至"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+          style="width: 100%"
+          :picker-options="{
+            firstDayOfWeek: 1
+          }"
+        ></el-date-picker>
+      </el-form-item>
+      <el-form-item label="登录日期" prop="orderDate">
+        <el-date-picker
+          v-model.trim="forms.registerDate"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择登记日期"
+        ></el-date-picker>
+      </el-form-item>
+    </el-form>
+    <div slot="footer" class="dialog-footer">
+      <el-button @click="operationVisible = false">取 消</el-button>
+      <el-button type="primary" @click="onSubmit">确 定</el-button>
+    </div>
+  </el-dialog>
+</template>
+<script>
+export default {
+  name: "grade-operation",
+  data() {
+    return {
+      dialogTitle: "",
+      operationVisible: false,
+      forms: {
+        title: null,
+        organId: [],
+        orderDate: null,
+        registerDate: null
+      }
+    };
+  },
+  mounted() {
+    this.$store.dispatch("setBranchs");
+  },
+  methods: {
+    onClose() {
+      this.$refs.elForm && this.$refs.elForm.resetFields();
+      this.operationVisible = false;
+    },
+    onSubmit() {
+      this.$refs.elForm.validate(async res => {
+        console.log(res, "res");
+        if (res) {
+        }
+      });
+    },
+    openDialog(type, row) {
+      this.dialogTitle = type === "update" ? "修改考级" : "新增考级";
+      this.operationVisible = true;
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-form-item__label {
+  padding: 0;
+}
+.el-form-title {
+  margin: 0 !important;
+}
+.el-from-type {
+  display: flex;
+  ::v-deep .el-form-item__label {
+    width: 100px !important;
+  }
+}
+.btnGroup {
+  .el-button + .el-button {
+    margin-left: 5px;
+  }
+}
+</style>

+ 104 - 0
src/views/levelManager/model/information-operation.vue

@@ -0,0 +1,104 @@
+<template>
+  <el-dialog
+    width="720px"
+    :title="dialogTitle"
+    :visible.sync="operationVisible"
+    :before-close="onClose"
+    append-to-body
+  >
+    <el-form
+      class="elForm"
+      ref="elForm"
+      label-position="top"
+      :model="forms"
+      :inline="false"
+      label-width="100px"
+    >
+      <el-form-item
+        label="标题"
+        :rules="[{ required: true, message: '请输入标题' }]"
+        prop="money"
+      >
+        <el-input
+          type="text"
+          v-model="forms.money"
+          placeholder="请输入标题"
+        ></el-input>
+      </el-form-item>
+      <el-form-item
+        label="内容"
+        :rules="[{ required: true, message: '请输入内容' }]"
+        prop="content"
+      >
+        <Editor
+          :form="forms.content"
+          id="EditorInformation"
+          alias="EditorInformation"
+          ref="content"
+          :keyWord="'content'"
+          class="Editor"
+          @onEditorChange="onEditorChange"
+        />
+      </el-form-item>
+    </el-form>
+    <div slot="footer" class="dialog-footer">
+      <el-button @click="operationVisible = false">取 消</el-button>
+      <el-button type="primary" @click="onSubmit">确 定</el-button>
+    </div>
+  </el-dialog>
+</template>
+<script>
+import Editor from "@/components/Editor";
+export default {
+  name: "informationOperation",
+  components: { Editor },
+  data() {
+    return {
+      operationVisible: false,
+      dialogTitle: "",
+      row: {},
+      forms: {
+        title: "level", // theory
+        content: ""
+      }
+    };
+  },
+  methods: {
+    onClose() {
+      this.$refs.elForm && this.$refs.elForm.resetFields();
+      this.operationVisible = false;
+    },
+    onEditorChange(html) {
+      console.log(html, "html");
+      this.forms.content = html;
+    },
+    onSubmit() {
+      this.$refs.elForm.validate(async res => {
+        console.log(res, "res");
+        if (res) {
+        }
+      });
+    },
+    openDialog(dialogType, type, row) {
+      if (type === "student") {
+        this.dialogTitle = dialogType === "update" ? "修改风采" : "新增风采";
+      }
+      this.operationVisible = true;
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-form-item__label {
+  padding: 0;
+}
+::v-deep .ql-editor {
+  display: flex;
+  flex-direction: column;
+
+  .ql-container .ql-editor {
+    max-height: 400px;
+  }
+}
+</style>

+ 231 - 0
src/views/levelManager/model/levelSettingAdd.vue

@@ -0,0 +1,231 @@
+<template>
+  <el-dialog
+    width="980px"
+    title="新增"
+    :visible.sync="addVisible"
+    :before-close="onClose"
+    append-to-body
+  >
+    <el-form
+      class="elForm"
+      ref="elForm"
+      label-position="top"
+      :model="forms"
+      :inline="false"
+      label-width="100px"
+    >
+      <el-row>
+        <el-col :span="24">
+          <el-form-item
+            label="考级类型"
+            :rules="[{ required: true, message: '请选择考级类型' }]"
+            prop="type"
+            class="el-from-type"
+          >
+            <el-radio-group v-model="forms.type" @input="onTypeChange">
+              <el-radio label="level">考级</el-radio>
+              <el-radio label="theory">乐理</el-radio>
+            </el-radio-group>
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row :gutter="10">
+        <el-col :span="5" v-if="forms.type === 'level'">
+          <el-form-item
+            label="声部"
+            :rules="[{ required: true, message: '请选择声部' }]"
+            prop="subjectId"
+          >
+            <el-select
+              style="width: 100% !important;"
+              v-model="forms.subjectId"
+              clearable
+              filterable
+              placeholder="请选择声部"
+            >
+              <el-option
+                v-for="item in selects.subjects"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="forms.type === 'level' ? 19 : 24">
+          <el-row :gutter="10">
+            <el-col
+              :span="7"
+              class="el-form-item is-required el-form-item--medium el-form-title"
+            >
+              <label class="el-form-item__label">级别</label>
+            </el-col>
+            <el-col
+              :span="7"
+              class="el-form-item is-required el-form-item--medium el-form-title"
+            >
+              <label class="el-form-item__label">报考金额</label>
+            </el-col>
+            <el-col
+              :span="7"
+              class="el-form-item is-required el-form-item--medium el-form-title"
+            >
+              <label class="el-form-item__label">是否上传证书</label>
+            </el-col>
+          </el-row>
+          <el-row
+            :gutter="10"
+            v-for="(item, index) in forms.domains"
+            :key="index"
+          >
+            <el-col :span="7">
+              <el-form-item
+                :rules="[{ required: true, message: '请输入级别' }]"
+                :prop="'domains.' + index + '.level'"
+              >
+                <el-select
+                  style="width: 100% !important;"
+                  v-model="item.level"
+                  clearable
+                  filterable
+                  placeholder="请选择级别"
+                >
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="7">
+              <el-form-item
+                :rules="[{ required: true, message: '请输入报考金额' }]"
+                :prop="'domains.' + index + '.money'"
+              >
+                <el-input
+                  type="number"
+                  @mousewheel.native.prevent
+                  v-model="item.money"
+                  placeholder="请输入报考金额"
+                ></el-input> </el-form-item
+            ></el-col>
+            <el-col :span="7">
+              <el-form-item
+                :rules="[{ required: true, message: '请选择是否上传证书' }]"
+                :prop="'domains.' + index + '.certificate'"
+              >
+                <el-select
+                  style="width: 100% !important;"
+                  v-model="item.certificate"
+                  clearable
+                  placeholder="请选择是否上传证书"
+                >
+                  <el-option :value="0" label="无需上传"></el-option>
+                  <el-option :value="1" label="需上传"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="3">
+              <div class="btnGroup" style="display: inline-block">
+                <el-button
+                  icon="el-icon-plus"
+                  circle
+                  @click="onAdd()"
+                ></el-button>
+                <el-button
+                  icon="el-icon-minus"
+                  circle
+                  :disabled="forms.domains.length <= 1 ? true : false"
+                  @click="onRemove(item)"
+                ></el-button>
+              </div>
+            </el-col>
+          </el-row>
+        </el-col>
+      </el-row>
+    </el-form>
+    <div slot="footer" class="dialog-footer">
+      <el-button @click="addVisible = false">取 消</el-button>
+      <el-button type="primary" @click="onSubmit">确 定</el-button>
+    </div>
+  </el-dialog>
+</template>
+<script>
+export default {
+  name: "levelSettingAdd",
+  data() {
+    return {
+      addVisible: false,
+      forms: {
+        type: "level", // theory
+        subjectId: null,
+        domains: [
+          {
+            level: null,
+            money: null,
+            certificate: null
+          }
+        ]
+      }
+    };
+  },
+  methods: {
+    onClose() {
+      this.forms.type = "level";
+      this.$refs.elForm && this.$refs.elForm.resetFields();
+      this.addVisible = false;
+    },
+    onTypeChange(val) {
+      // 当前考级类型变化时,重置表单验证状态
+      this.forms.domains = [
+        {
+          level: null,
+          money: null,
+          certificate: null
+        }
+      ];
+      this.forms.subjectId = null;
+      this.$refs.elForm && this.$refs.elForm.clearValidate();
+    },
+    onAdd() {
+      this.forms.domains.push({
+        level: null,
+        money: null,
+        certificate: null
+      });
+    },
+    onRemove(item) {
+      let index = this.forms.domains.indexOf(item);
+      if (index !== -1) {
+        this.forms.domains.splice(index, 1);
+      }
+    },
+    onSubmit() {
+      this.$refs.elForm.validate(async res => {
+        console.log(res, "res");
+        if (res) {
+        }
+      });
+    },
+    openDialog() {
+      this.addVisible = true;
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-form-item__label {
+  padding: 0;
+}
+.el-form-title {
+  margin: 0 !important;
+}
+.el-from-type {
+  display: flex;
+  ::v-deep .el-form-item__label {
+    width: 100px !important;
+  }
+}
+.btnGroup {
+  .el-button + .el-button {
+    margin-left: 5px;
+  }
+}
+</style>

+ 139 - 0
src/views/levelManager/model/levelSettingUpdate.vue

@@ -0,0 +1,139 @@
+<template>
+  <el-dialog
+    width="500px"
+    title="修改"
+    :visible.sync="updateVisible"
+    :before-close="onClose"
+    append-to-body
+  >
+    <el-form
+      class="elForm"
+      ref="elForm"
+      label-position="top"
+      :model="forms"
+      :inline="false"
+      label-width="100px"
+    >
+      <el-form-item
+        label="声部"
+        :rules="[{ required: true, message: '请选择声部' }]"
+        prop="subjectId"
+      >
+        <el-select
+          style="width: 100% !important;"
+          v-model="forms.subjectId"
+          clearable
+          filterable
+          placeholder="请选择声部"
+        >
+          <el-option
+            v-for="item in selects.subjects"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+          ></el-option>
+        </el-select>
+      </el-form-item>
+
+      <el-form-item
+        label="级别"
+        :rules="[{ required: true, message: '请输入级别' }]"
+        prop="level"
+      >
+        <el-select
+          style="width: 100% !important;"
+          v-model="forms.level"
+          clearable
+          filterable
+          placeholder="请选择级别"
+        >
+        </el-select>
+      </el-form-item>
+      <el-form-item
+        label="报考金额"
+        :rules="[{ required: true, message: '请输入报考金额' }]"
+        prop="money"
+      >
+        <el-input
+          type="number"
+          @mousewheel.native.prevent
+          v-model="forms.money"
+          placeholder="请输入报考金额"
+        ></el-input>
+      </el-form-item>
+      <el-form-item
+        label="是否上传证书"
+        :rules="[{ required: true, message: '请选择是否上传证书' }]"
+        prop="certificate"
+      >
+        <el-select
+          style="width: 100% !important;"
+          v-model="forms.certificate"
+          clearable
+          placeholder="请选择是否上传证书"
+        >
+          <el-option :value="0" label="无需上传"></el-option>
+          <el-option :value="1" label="需上传"></el-option>
+        </el-select>
+      </el-form-item>
+    </el-form>
+    <div slot="footer" class="dialog-footer">
+      <el-button @click="updateVisible = false">取 消</el-button>
+      <el-button type="primary" @click="onSubmit">确 定</el-button>
+    </div>
+  </el-dialog>
+</template>
+<script>
+export default {
+  name: "levelSettingAdd",
+  data() {
+    return {
+      updateVisible: false,
+      row: {},
+      forms: {
+        type: "level", // theory
+        subjectId: null,
+        level: null,
+        money: null,
+        certificate: null
+      }
+    };
+  },
+  methods: {
+    onClose() {
+      this.$refs.elForm && this.$refs.elForm.resetFields();
+      this.updateVisible = false;
+    },
+    onSubmit() {
+      this.$refs.elForm.validate(async res => {
+        console.log(res, "res");
+        if (res) {
+        }
+      });
+    },
+    openDialog(row) {
+      this.updateVisible = true;
+    }
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+::v-deep .el-form-item__label {
+  padding: 0;
+}
+.el-form-title {
+  margin: 0 !important;
+}
+.el-from-type {
+  display: flex;
+  ::v-deep .el-form-item__label {
+    width: 100px !important;
+  }
+}
+.btnGroup {
+  .el-button + .el-button {
+    margin-left: 5px;
+  }
+}
+</style>

+ 14 - 14
src/views/liveClassManager/modals/addLiveShop.vue

@@ -88,7 +88,7 @@ export default {
   data() {
     return {
       searchForm: {
-        search: "",
+        search: ""
       },
       tableList: [],
       organList: [],
@@ -97,14 +97,14 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50], // 选择限制显示条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
       addMuiscVisible: false,
       multipleSelection: [],
       chioseIdList: [],
       isNewPage: false,
       lookVisible: false,
-      activeRow: { sendFlag: false },
+      activeRow: { sendFlag: false }
     };
   },
 
@@ -116,16 +116,16 @@ export default {
           ...this.searchForm,
           page: this.rules.page,
           rows: this.rules.limit,
-          liveId: this.activeRow.roomUid,
+          liveId: this.activeRow.roomUid
         });
         this.tableList = res.data.rows;
         this.rules.total = res.data.total;
-        let idList = this.chioseIdList.map((group) => {
+        let idList = this.chioseIdList.map(group => {
           return group.id;
         });
         this.isNewPage = true;
         this.$nextTick(() => {
-          this.tableList.forEach((course) => {
+          this.tableList.forEach(course => {
             if (idList.indexOf(course.id) != -1) {
               this.$refs.multipleSelection.toggleRowSelection(course, true);
             }
@@ -152,13 +152,13 @@ export default {
       }
       try {
         let idList = this.chioseIdList
-          .map((group) => {
+          .map(group => {
             return group.id;
           })
           .join(",");
         const res = await addLiveGoodsMapper({
           liveGoodsIds: idList,
-          liveId: this.activeRow.roomUid,
+          liveId: this.activeRow.roomUid
         });
         this.$message.success("添加成功");
         this.$emit("getList");
@@ -183,12 +183,12 @@ export default {
         );
       } else {
         if (this.isNewPage) return;
-        let idList = this.chioseIdList.map((group) => {
+        let idList = this.chioseIdList.map(group => {
           return group.id;
         });
         this.$nextTick(() => {
           let tableIdList = [];
-          this.tableList.forEach((group) => {
+          this.tableList.forEach(group => {
             tableIdList.push(group.id);
             if (idList.indexOf(group.id) != -1) {
               this.$refs.multipleSelection.toggleRowSelection(group, false);
@@ -196,7 +196,7 @@ export default {
           });
           this.chioseIdList = this.$helpers.lodash.remove(
             this.chioseIdList,
-            function (item) {
+            function(item) {
               return tableIdList.indexOf(item.id) == -1;
             }
           );
@@ -211,7 +211,7 @@ export default {
       this.$refs.multipleSelection.clearSelection();
     },
     onTableSelect(rows, row) {
-      let idList = this.chioseIdList.map((group) => {
+      let idList = this.chioseIdList.map(group => {
         return group.id;
       });
       if (idList.indexOf(row.id) != -1) {
@@ -230,8 +230,8 @@ export default {
       this.lookVisible = true;
       console.log(row);
       this.getList();
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="scss" scoped>

+ 14 - 18
src/views/setQuestions/components/questionList.vue

@@ -6,7 +6,7 @@
           label="题目类型"
           prop="type"
           :rules="[
-            { required: true, message: '请选择题目类型', trigger: 'change' },
+            { required: true, message: '请选择题目类型', trigger: 'change' }
           ]"
         >
           <el-select
@@ -22,12 +22,12 @@
           </el-select>
         </el-form-item>
       </el-col>
-      <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12"  v-if="!commitType">
+      <el-col :xs="24" :sm="24" :md="24" :lg="12" :xl="12" v-if="!commitType">
         <el-form-item
           label="是否必填"
           prop="isRequire"
           :rules="[
-            { required: true, message: '请选择是否必填', trigger: 'change' },
+            { required: true, message: '请选择是否必填', trigger: 'change' }
           ]"
         >
           <el-select
@@ -59,9 +59,8 @@
 
     <template v-if="form.type == 'radio' || form.type == 'checkbox'">
       <div
-        v-for="(
-          questionnaireQuestionItemList, index
-        ) in form.questionnaireQuestionItemList"
+        v-for="(questionnaireQuestionItemList,
+        index) in form.questionnaireQuestionItemList"
         :key="index"
       >
         <el-form-item
@@ -69,7 +68,7 @@
           style="display: inline-block"
           :prop="'questionnaireQuestionItemList.' + index + '.answerValue'"
           :rules="[
-            { required: true, message: '请输入选项内容', trigger: 'change' },
+            { required: true, message: '请输入选项内容', trigger: 'change' }
           ]"
         >
           <el-input
@@ -81,7 +80,7 @@
           ></el-input>
         </el-form-item>
         <el-form-item
-        v-if="commitType"
+          v-if="commitType"
           label="是否终止答题"
           style="display: inline-block"
           label-width="120px"
@@ -90,8 +89,8 @@
             {
               required: true,
               message: '请选择是否终止答题',
-              trigger: 'change',
-            },
+              trigger: 'change'
+            }
           ]"
         >
           <el-radio-group
@@ -113,7 +112,6 @@
             <el-button
               icon="el-icon-top"
               circle
-
               @click="moveDown(form.questionnaireQuestionItemList, index)"
               :disabled="index == 0 || disabled"
             ></el-button>
@@ -127,12 +125,11 @@
             <el-button
               icon="el-icon-bottom"
               circle
-
               @click="moveUp(form.questionnaireQuestionItemList, index)"
               :disabled="
                 form.questionnaireQuestionItemList.length <= 1 ||
-                form.questionnaireQuestionItemList.length == index + 1 ||
-                disabled
+                  form.questionnaireQuestionItemList.length == index + 1 ||
+                  disabled
               "
             ></el-button>
           </el-tooltip>
@@ -140,7 +137,6 @@
             <el-button
               icon="el-icon-delete"
               circle
-
               @click="onDelete(form.questionnaireQuestionItemList, index)"
               :disabled="
                 form.questionnaireQuestionItemList.length <= 1 || disabled
@@ -166,7 +162,7 @@
 </template>
 <script>
 export default {
-  props: ["form", "type", "disabled","commitType"],
+  props: ["form", "type", "disabled", "commitType"],
   data() {
     return {};
   },
@@ -194,8 +190,8 @@ export default {
         }
       }
       arr.splice(index, 1);
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="scss" scoped>

+ 5 - 6
src/views/vipClass/vipDetail/index.vue

@@ -77,8 +77,8 @@ export default {
         teacherRecord: permission("/vipDetail/teacherRecord"),
         fnanceInfo: permission("/vipDetail/fnanceInfo"),
         vipStudentList: permission("/vipDetail/vipStudentList"),
-        vipReset: permission("/vipReset"),
-      },
+        vipReset: permission("/vipReset")
+      }
     };
   },
   mounted() {
@@ -105,9 +105,8 @@ export default {
     onCancel() {
       this.$store.dispatch("delVisitedViews", this.$route);
       this.$router.push({ path: "/vipManager/vipList" });
-    },
-  },
+    }
+  }
 };
 </script>
-<style lang="scss">
-</style>
+<style lang="scss"></style>