Browse Source

修改文案

云教练 -> 云练习
lex 1 year ago
parent
commit
2ab9c62e59
72 changed files with 2837 additions and 1729 deletions
  1. 1 1
      src/assets/icon/iconfont.json
  2. 75 68
      src/constant/guide.js
  3. 7 7
      src/constant/index.js
  4. 5 5
      src/router/index.js
  5. 2 2
      src/store/modules/permission.js
  6. 2 2
      src/utils/searchArray.js
  7. 1 1
      src/views/accompaniment/index.vue
  8. 2 2
      src/views/accompaniment/modals/form.vue
  9. 36 17
      src/views/afterSchoolManager/afterSchoolList.vue
  10. 75 27
      src/views/afterSchoolManager/afterWorkList.vue
  11. 86 32
      src/views/afterSchoolManager/components/oldAfterWorkList.vue
  12. 36 21
      src/views/afterSchoolManager/examination.vue
  13. 2 2
      src/views/agentManager/memberShareList.vue
  14. 130 120
      src/views/app/clouldSuggestion.vue
  15. 1 1
      src/views/app/suggestionIndex.vue
  16. 32 17
      src/views/attendanceManager/attendanceList/index.vue
  17. 1 1
      src/views/auditList/index.vue
  18. 53 21
      src/views/auditList/member.vue
  19. 26 14
      src/views/auditList/memberModel.vue
  20. 4 4
      src/views/baseRulesManager/components/otherRules.vue
  21. 3 3
      src/views/businessManager/shopManager/shopList.vue
  22. 261 70
      src/views/businessManager/shopManager/shopOperation.vue
  23. 75 76
      src/views/categroyManager/generalSettings/groupMarkPrice.vue
  24. 1 1
      src/views/categroyManager/globalConfig.vue
  25. 63 63
      src/views/categroyManager/globalMusicGroup.vue
  26. 211 127
      src/views/categroyManager/productSystem/memberFeeSet.vue
  27. 124 102
      src/views/categroyManager/specialSetup/cloudTeacherFee.vue
  28. 16 13
      src/views/couponManager/couponGiveList.vue
  29. 2 2
      src/views/courseCredentials/index.vue
  30. 28 23
      src/views/courseRulersManager/components/studentAttRules.vue
  31. 47 33
      src/views/courseRulersManager/components/teamRules.vue
  32. 23 24
      src/views/dictionaryManager/index.vue
  33. 3 4
      src/views/main/api.js
  34. 5 5
      src/views/main/cloudDate/exerciseDuration.vue
  35. 2 2
      src/views/main/cloudDate/exerciseDurationDetail.vue
  36. 29 20
      src/views/main/cloudDate/organDate.vue
  37. 34 17
      src/views/main/cloudDate/organDateDetail.vue
  38. 4 4
      src/views/main/cloudDate/organMemberList.vue
  39. 37 20
      src/views/main/cloudDate/organRankDetail.vue
  40. 19 23
      src/views/main/cloudDate/organRanking.vue
  41. 6 7
      src/views/main/constant.js
  42. 1 1
      src/views/main/index.vue
  43. 43 35
      src/views/platformManager/cloudTrafficPackage/index.vue
  44. 12 12
      src/views/reportForm/index.vue
  45. 3 3
      src/views/resetTeaming/api.js
  46. 3 3
      src/views/resetTeaming/components/giveMemberList.vue
  47. 2 2
      src/views/resetTeaming/components/payInfoDetail.vue
  48. 108 67
      src/views/resetTeaming/components/strudentPayInfo.vue
  49. 3 3
      src/views/resetTeaming/modals/giveMemberModel.vue
  50. 28 22
      src/views/resetTeaming/modals/giveMemberPayment.vue
  51. 1 1
      src/views/resetTeaming/modals/member.vue
  52. 2 2
      src/views/resetTeaming/modals/payMember.vue
  53. 68 44
      src/views/resetTeaming/modals/review-detail.vue
  54. 8 8
      src/views/resetTeaming/modals/subject-preview.vue
  55. 1 1
      src/views/resetTeaming/modals/user-pay-form.vue
  56. 3 3
      src/views/sporadicManager/sporadicList.vue
  57. 1 1
      src/views/studentManager/api.js
  58. 34 34
      src/views/studentManager/memberList.vue
  59. 84 67
      src/views/studentManager/modals/createMember.vue
  60. 45 31
      src/views/studentManager/modals/recordDetail.vue
  61. 6 6
      src/views/studentManager/studentGroupPractice.vue
  62. 25 20
      src/views/studentManager/studentGroupRecord.vue
  63. 149 88
      src/views/studentManager/studentList.vue
  64. 1 1
      src/views/teacherManager/teacherOperation/components/teacherOperation.vue
  65. 16 16
      src/views/teamBuild/signupList.vue
  66. 44 18
      src/views/teamDetail/components/modals/quite-team.vue
  67. 2 2
      src/views/teamDetail/components/studentList.vue
  68. 486 161
      src/views/teamDetail/teamCourseList.vue
  69. 2 2
      src/views/tenantSetting/groupRecordManager.vue
  70. 1 1
      src/views/withdrawal-application/index.vue
  71. 43 27
      src/views/withdrawal-application/modals/quit.vue
  72. 42 43
      src/views/workBenchManager/journal/model/musicGroup.vue

+ 1 - 1
src/assets/icon/iconfont.json

@@ -455,7 +455,7 @@
     },
     {
       "icon_id": "27122005",
-      "name": "云练反馈",
+      "name": "云练反馈",
       "font_class": "yunjiaolianfankui",
       "unicode": "e65c",
       "unicode_decimal": 58972

+ 75 - 68
src/constant/guide.js

@@ -1,92 +1,99 @@
 export const guideList = {
   organ: {
-    name: '分部',
-    desc: '分部用于区分本机构下各校区,各分部员工只可查询和操作本分部数据',
-    path: '/sysBasics/branchSetting',
-    permission: '/branchSetting'
+    name: "分部",
+    desc: "分部用于区分本机构下各校区,各分部员工只可查询和操作本分部数据",
+    path: "/sysBasics/branchSetting",
+    permission: "/branchSetting"
   },
   teamManager: {
-    name: '乐团主管',
-    desc: '乐团主管是直接管理乐团的负责人,可在员工管理中设置各分部的乐团主管',
-    path: '/sysBasics/staffManager',
-    permission: '/staffManager'
+    name: "乐团主管",
+    desc: "乐团主管是直接管理乐团的负责人,可在员工管理中设置各分部的乐团主管",
+    path: "/sysBasics/staffManager",
+    permission: "/staffManager"
   },
   teamPayType: {
-    name: '乐团收费类型',
-    desc: '乐团收费类型用于区分乐团运营模式,不同类型的乐团可设置不同的课程定价',
-    path: '/baseRulesClassSetting?tabrouter=6',
-    permission: '/globalConfig/chargesList'
+    name: "乐团收费类型",
+    desc:
+      "乐团收费类型用于区分乐团运营模式,不同类型的乐团可设置不同的课程定价",
+    path: "/baseRulesClassSetting?tabrouter=6",
+    permission: "/globalConfig/chargesList"
   },
   cooperationOrgan: {
-    name: '合作单位',
-    desc: '合作单位即合作学校,乐团需从属于具体合作单位',
-    path: '/sysBasics/branchManager',
-    permission: '/branchManager'
+    name: "合作单位",
+    desc: "合作单位即合作学校,乐团需从属于具体合作单位",
+    path: "/sysBasics/branchManager",
+    permission: "/branchManager"
   },
   school: {
-    name: '教学点',
-    desc: '教学点是线下课的上课地点,学员和老师需根据教学点前往指定地点上课,同时老师需在教学点定位范围内进行考勤',
-    path: '/sysBasics/addressManager',
-    permission: '/addressManager'
+    name: "教学点",
+    desc:
+      "教学点是线下课的上课地点,学员和老师需根据教学点前往指定地点上课,同时老师需在教学点定位范围内进行考勤",
+    path: "/sysBasics/addressManager",
+    permission: "/addressManager"
   },
   teamCourseFee: {
-    name: '乐团课程单价费用',
-    desc: '乐团各类型课程都需设置每分钟价格,设置完成后创建缴费时会以此价格乘以课时时长计算学员应付价格标准',
-    path: '/baseRulesClassSetting?tabrouter=2',
-    permission: '/globalConfig/musicCourseFee'
+    name: "乐团课程单价费用",
+    desc:
+      "乐团各类型课程都需设置每分钟价格,设置完成后创建缴费时会以此价格乘以课时时长计算学员应付价格标准",
+    path: "/baseRulesClassSetting?tabrouter=2",
+    permission: "/globalConfig/musicCourseFee"
   },
   teamCourseType: {
-    name: '乐团收费标准',
-    desc: '支持创建标准的乐团训练课程组合,创建后乐团中可直接选择该课程标准对学员进行销售',
-    path: '/baseRulesClassSetting?tabrouter=3',
-    permission: '/globalConfig/chargesList'
+    name: "乐团收费标准",
+    desc:
+      "支持创建标准的乐团训练课程组合,创建后乐团中可直接选择该课程标准对学员进行销售",
+    path: "/baseRulesClassSetting?tabrouter=3",
+    permission: "/globalConfig/chargesList"
   },
   memberList: {
-    name: '云教练定价',
-    desc: '可对不同分部设置云教练学员购买价格,若不设置则学员不可购买云教练',
-    path: '/memberFeeSet',
-    permission: '/memberFeeSet'
+    name: "云练习定价",
+    desc: "可对不同分部设置云练习学员购买价格,若不设置则学员不可购买云练习",
+    path: "/memberFeeSet",
+    permission: "/memberFeeSet"
   },
-  teacher:{
-    name: '新增老师',
-    desc: '新增可设置老师基本信息、分部、执教声部、课酬等参数',
-    path: '/teacherManager/teacherList',
-    permission: '/teacherList'
+  teacher: {
+    name: "新增老师",
+    desc: "新增可设置老师基本信息、分部、执教声部、课酬等参数",
+    path: "/teacherManager/teacherList",
+    permission: "/teacherList"
   },
-  holiday:{
-    name: '节假日设置',
-    desc: '设置节假日后,排课时可选择跳过节假日',
-    path: '/holidaySetting',
-    permission: '/globalConfig/holidaySetting'
+  holiday: {
+    name: "节假日设置",
+    desc: "设置节假日后,排课时可选择跳过节假日",
+    path: "/holidaySetting",
+    permission: "/globalConfig/holidaySetting"
   },
-  teamCourseTimer:{
-    name: '课程时长设置',
-    desc: '可设置各分部各类型课程的单课时标准时长,设置完成后可选择已设置的时长进行排课',
-    path: '/baseRulesClassSetting?tabrouter=1',
-    permission: '/globalConfig/courseTimerSetting'
+  teamCourseTimer: {
+    name: "课程时长设置",
+    desc:
+      "可设置各分部各类型课程的单课时标准时长,设置完成后可选择已设置的时长进行排课",
+    path: "/baseRulesClassSetting?tabrouter=1",
+    permission: "/globalConfig/courseTimerSetting"
   },
-  vipPrice:{
-    name: 'VIP课时单价',
-    desc: '用于计算学员购买VIP时需要支付的金额',
-    path: '/baseRulesClassSetting?tabrouter=8',
-    permission: '/vipChargeSeting'
+  vipPrice: {
+    name: "VIP课时单价",
+    desc: "用于计算学员购买VIP时需要支付的金额",
+    path: "/baseRulesClassSetting?tabrouter=8",
+    permission: "/vipChargeSeting"
   },
-  teamActive:{
-    name: '乐团活动',
-    desc: '可通过创建乐团活动在乐团报名缴费时销售VIP课',
-    path: '/vipActiveManager/vipActiveList',
-    permission: '/vipActiveList'
+  teamActive: {
+    name: "乐团活动",
+    desc: "可通过创建乐团活动在乐团报名缴费时销售VIP课",
+    path: "/vipActiveManager/vipActiveList",
+    permission: "/vipActiveList"
   },
-  offline:{
-    name: '考勤规则设置',
-    desc: '系统默认为您创建了考勤及课酬扣减规则,请根据本机构实际规则进行修改。',
-    path: '/courseRulersManager?tabrouter=2',
-    permission: '/institutionOfflineTeamRules'
+  offline: {
+    name: "考勤规则设置",
+    desc:
+      "系统默认为您创建了考勤及课酬扣减规则,请根据本机构实际规则进行修改。",
+    path: "/courseRulersManager?tabrouter=2",
+    permission: "/institutionOfflineTeamRules"
   },
-  agreement:{
-    name: '服务协议',
-    desc: '服务协议是学员购买服务或商品时签署的交易协议,交易成功后会生成电子合同,具有法律效益,请及时添加本机构的服务协议内容,为本机构及学员提供保障。若无协议学员也可正常购买,但不会生成电子合同。',
-    path: '/tenantInfoProtocol',
-    permission: 'tenantContractTemplate/list'
+  agreement: {
+    name: "服务协议",
+    desc:
+      "服务协议是学员购买服务或商品时签署的交易协议,交易成功后会生成电子合同,具有法律效益,请及时添加本机构的服务协议内容,为本机构及学员提供保障。若无协议学员也可正常购买,但不会生成电子合同。",
+    path: "/tenantInfoProtocol",
+    permission: "tenantContractTemplate/list"
   }
-}
+};

+ 7 - 7
src/constant/index.js

@@ -307,14 +307,14 @@ export const downListType = {
   17: "预计课耗导出",
   18: "预计课耗学员详情导出",
   19: "课耗统计导出",
-  20: "云练统计导出",
+  20: "云练统计导出",
   21: "班级列表导出",
-  22: "云练统计详情导出",
-  23: "老师云练使用数据",
+  22: "云练统计详情导出",
+  23: "老师云练使用数据",
   24: "oa费用汇总",
   25: "oa费用明细",
   26: "经营报表收入汇总",
-  27: "云练激活明细",
+  27: "云练激活明细",
   28: "课程收入明细导出",
   29: "乐团梯队数据导出",
   30: "平衡关系-乐团课",
@@ -335,7 +335,7 @@ export const withdrawalStatus = {
 
 export const clientStatus = {
   NETWORK_ROOM: "网络教室",
-  SMART_PRACTICE: "云练"
+  SMART_PRACTICE: "云练"
 };
 
 export const conclusion = {
@@ -425,7 +425,7 @@ export const organPayState = {
 export const tenantStatus = {
   TENANT_OPEN: "机构开通缴费",
   TENANT_RENEW: "机构续费",
-  CLOUD_TEACHER: "激活云练",
+  CLOUD_TEACHER: "激活云练",
   TENANT_RECHARGE: "机构充值"
 };
 //   "DAY": '天',
@@ -464,7 +464,7 @@ export const coupontypeDetail = {
   MUSIC: "乐团课",
   VIP: "VIP课",
   LIVE: "直播课",
-  MEMBER: "云练"
+  MEMBER: "云练"
 };
 
 // 发券方式

+ 5 - 5
src/router/index.js

@@ -351,7 +351,7 @@ export const asyncRoutes = {
   entryOperation: () => import("@/views/app/entryOperation"),
   // 意见反馈
   suggestion: () => import("@/views/app/suggestionIndex"),
-  // 云练意见反馈
+  // 云练意见反馈
   clouldSuggestion: () => import("@/views/app/clouldSuggestion"),
   // 帮助分类
   helpCategory: () => import("@/views/helpCenter/helpCategory"),
@@ -552,7 +552,7 @@ export const asyncRoutes = {
   serviceOperation: () => import("@/views/platformManager/serviceManager/form"),
   // 机构申请
   tenantApply: () => import("@/views/platformManager/tenantApply"),
-  // 云练流量包
+  // 云练流量包
   cloudTrafficPackage: () =>
     import("@/views/platformManager/cloudTrafficPackage"),
   accompanyBaseConfig: () =>
@@ -580,7 +580,7 @@ export const asyncRoutes = {
   // 机构交易管理
   tenantTradeManager: () =>
     import("@/views/tenantSetting/tenantTradeManager.vue"),
-  // 云练激活记录
+  // 云练激活记录
   groupRecordManager: () =>
     import("@/views/tenantSetting/groupRecordManager.vue"),
   // 扣费记录
@@ -604,7 +604,7 @@ export const asyncRoutes = {
   //
   studentGroupPractice: () =>
     import("@/views/studentManager/studentGroupPractice"),
-  // 云练缴费记录
+  // 云练缴费记录
   studentGroupRecord: () => import("@/views/studentManager/studentGroupRecord"),
   // 直播课管理
   liveClassManager: () => import("@/views/liveClassManager"),
@@ -620,7 +620,7 @@ export const asyncRoutes = {
   smallStudentManager: () => import("@/views/smallStudentManager"),
   // 代理商管理
   agentList: () => import("@/views/agentManager/agentList"),
-  // 云练分润
+  // 云练分润
   memberShareList: () => import("@/views/agentManager/memberShareList"),
   // 群组管理
   groupChatManager: () => import("@/views/groupChatManager"),

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

@@ -270,7 +270,7 @@ function setDetailRoute(accessedRoutes) {
           hidden: true,
           meta: {
             noCache: "1",
-            title: "分部云练数据详情",
+            title: "分部云练数据详情",
             belongTopMenu: "/main",
             activeMenu: "/workbench"
           }
@@ -282,7 +282,7 @@ function setDetailRoute(accessedRoutes) {
           hidden: true,
           meta: {
             noCache: "1",
-            title: "分部云练排行",
+            title: "分部云练排行",
             belongTopMenu: "/main",
             activeMenu: "/workbench"
           }

+ 2 - 2
src/utils/searchArray.js

@@ -679,8 +679,8 @@ export const visitChiose1 = [
     ]
   },
   {
-    value: "云练",
-    label: "云练",
+    value: "云练",
+    label: "云练",
     children: [
       {
         value: "体验回访",

+ 1 - 1
src/views/accompaniment/index.vue

@@ -75,7 +75,7 @@
             placeholder="请选择客户端类型"
           >
             <el-option value="NETWORK_ROOM" label="网络教室"></el-option>
-            <el-option value="SMART_PRACTICE" label="云练"></el-option>
+            <el-option value="SMART_PRACTICE" label="云练"></el-option>
           </el-select>
         </el-form-item> -->
         <el-form-item prop="categoriesId">

+ 2 - 2
src/views/accompaniment/modals/form.vue

@@ -116,7 +116,7 @@
           placeholder="请选择客户端类型"
         >
           <el-option value="NETWORK_ROOM" label="网络教室"></el-option>
-          <el-option value="SMART_PRACTICE" label="云练"></el-option>
+          <el-option value="SMART_PRACTICE" label="云练"></el-option>
         </el-select>
       </el-form-item> -->
       <!-- <el-form-item
@@ -465,7 +465,7 @@ export default {
           midiUrl: "",
           order: 0,
           musicScoreCategoriesId: [],
-          // 兼容之前数据,默认选择云
+          // 兼容之前数据,默认选择云练
           clientType: "SMART_PRACTICE",
           renderFrom: "",
           playMode: "MP3",

+ 36 - 17
src/views/afterSchoolManager/afterSchoolList.vue

@@ -19,7 +19,7 @@
             v-model.trim="searchForm.search"
             clearable
             @keyup.enter.native="
-              (e) => {
+              e => {
                 e.target.blur();
                 $refs.saveForm.save();
                 search();
@@ -69,7 +69,7 @@
             class="organSelect"
             filterable
             clearable
-            placeholder="是否云练布置"
+            placeholder="是否云练布置"
           >
             <el-option label="是" :value="true"></el-option>
             <el-option label="否" :value="false"></el-option>
@@ -124,7 +124,9 @@
           </el-table-column>
           <el-table-column align="center" prop="createTime" label="练习类型">
             <template slot-scope="scope">
-              {{ scope.row.type == "EXTRACURRICULAR" ? "课外练习" : "额外练习" }}
+              {{
+                scope.row.type == "EXTRACURRICULAR" ? "课外练习" : "额外练习"
+              }}
             </template>
           </el-table-column>
           <el-table-column align="center" prop="teacherName" label="布置老师">
@@ -136,10 +138,16 @@
           </el-table-column>
 
           <el-table-column align="center" prop="title" label="应交人数">
-            <template slot-scope="scope"> {{ scope.row.expectNum || 0 }}人 </template>
+            <template slot-scope="scope">
+              {{ scope.row.expectNum || 0 }}人
+            </template>
           </el-table-column>
 
-          <el-table-column align="center" prop="actualTeacherName" label="完成人数">
+          <el-table-column
+            align="center"
+            prop="actualTeacherName"
+            label="完成人数"
+          >
             <template slot-scope="scope">
               <div>{{ scope.row.completedNum || 0 }}人</div>
             </template>
@@ -154,7 +162,9 @@
             <template slot-scope="scope">
               <div>
                 <auth auths="afterSchollList/look">
-                  <el-button type="text" @click="lookDetail(scope.row)">查看</el-button>
+                  <el-button type="text" @click="lookDetail(scope.row)"
+                    >查看</el-button
+                  >
                 </auth>
               </div>
             </template>
@@ -176,7 +186,10 @@
         width="1000px"
         v-if="classVisible"
       >
-        <courseWorkeDetail :studentExerciseId="activeRow.id" :showGroup="true" />
+        <courseWorkeDetail
+          :studentExerciseId="activeRow.id"
+          :showGroup="true"
+        />
       </el-dialog>
     </div>
     <!-- <el-dialog title="课外训练详情"
@@ -235,21 +248,21 @@ export default {
         listTimer: [],
         teacherId: null,
         organIdList: null,
-        type: null,
+        type: null
       },
       rules: {
         // 分页规则
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50], // 选择限制显示条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
       tableList: [],
       visibleForm: {
-        createTime: null,
+        createTime: null
       },
       classVisible: false,
-      activeRow: null,
+      activeRow: null
     };
   },
   //生命周期 - 创建完成(可以访问当前this实例)
@@ -289,7 +302,9 @@ export default {
       }
       obj.page = this.rules.page;
       (obj.rows = this.rules.limit),
-        this.searchForm.teacherId ? (obj.teacherId = this.searchForm.teacherId) : null;
+        this.searchForm.teacherId
+          ? (obj.teacherId = this.searchForm.teacherId)
+          : null;
       this.searchForm.search ? (obj.search = this.searchForm.search) : null;
       this.searchForm.organIdList
         ? (obj.organIdList = this.searchForm.organIdList)
@@ -298,7 +313,7 @@ export default {
       obj.cloudHomeworkFlag = this.searchForm.cloudHomeworkFlag;
       obj.studentAssignFlag = false;
       obj.type = this.searchForm.type ? this.searchForm.type : null;
-      queryPageList(obj).then((res) => {
+      queryPageList(obj).then(res => {
         if (res.code == 200) {
           this.tableList = res.data.rows;
           this.rules.total = res.data.total;
@@ -315,7 +330,7 @@ export default {
         listTimer: [],
         teacherId: null,
         organIdList: null,
-        type: null,
+        type: null
       };
       this.getNow();
       this.search();
@@ -325,13 +340,17 @@ export default {
       if (row.versionTag == "v1") {
         this.$router.push({
           path: "/business/afterSchoolDetailold",
-          query: { extracurricularExercisesId: row.id, title: row.title, activeIndex: 1 },
+          query: {
+            extracurricularExercisesId: row.id,
+            title: row.title,
+            activeIndex: 1
+          }
         });
       } else {
         this.classVisible = true;
       }
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="scss" scoped>

+ 75 - 27
src/views/afterSchoolManager/afterWorkList.vue

@@ -18,7 +18,7 @@
           <el-input
             v-model.trim="searchForm.search"
             @keyup.enter.native="
-              (e) => {
+              e => {
                 e.target.blur();
                 $refs.saveForm.save();
                 search();
@@ -62,7 +62,7 @@
             class="organSelect"
             filterable
             clearable
-            placeholder="是否云练布置"
+            placeholder="是否云练布置"
           >
             <el-option label="是" :value="true"></el-option>
             <el-option label="否" :value="false"></el-option>
@@ -147,15 +147,26 @@
           :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
           :data="tableList"
         >
-          <el-table-column align="center" prop="organName" label="分部"></el-table-column>
-          <el-table-column align="center" prop="createTime" label="布置时间" width="150">
+          <el-table-column
+            align="center"
+            prop="organName"
+            label="分部"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="createTime"
+            label="布置时间"
+            width="150"
+          >
             <template slot-scope="scope">{{
               scope.row.createTime | dateForMinFormat
             }}</template>
           </el-table-column>
           <el-table-column align="center" prop="createTime" label="练习类型">
             <template slot-scope="scope">
-              {{ scope.row.type == "EXTRACURRICULAR" ? "课后练习" : "额外练习" }}
+              {{
+                scope.row.type == "EXTRACURRICULAR" ? "课后练习" : "额外练习"
+              }}
             </template>
           </el-table-column>
           <el-table-column align="center" prop="teacherName" label="布置老师">
@@ -165,16 +176,27 @@
               </copy-text>
             </template>
           </el-table-column>
-          <el-table-column align="center" prop="expireDate" label="截止时间" width="150">
+          <el-table-column
+            align="center"
+            prop="expireDate"
+            label="截止时间"
+            width="150"
+          >
             <template slot-scope="scope">{{
               scope.row.expireDate | dateForMinFormat
             }}</template>
           </el-table-column>
           <el-table-column align="center" prop="title" label="应交人数">
-            <template slot-scope="scope"> {{ scope.row.expectNum || 0 }}人 </template>
+            <template slot-scope="scope">
+              {{ scope.row.expectNum || 0 }}人
+            </template>
           </el-table-column>
 
-          <el-table-column align="center" prop="actualTeacherName" label="完成人数">
+          <el-table-column
+            align="center"
+            prop="actualTeacherName"
+            label="完成人数"
+          >
             <template slot-scope="scope">
               <div>{{ scope.row.completedNum || 0 }}人</div>
             </template>
@@ -232,7 +254,7 @@
               <div>{{ scope.row.isRepliedTimely ? "是" : "否" }}</div>
             </template>
           </el-table-column>
-          <el-table-column align="center" prop="actualTeacherName" label="是否云练布置">
+          <el-table-column align="center" prop="actualTeacherName" label="是否云练布置">
             <template slot-scope="scope">
               <div>
                 {{ scope.row.musicScoreId ? "是" : "否" }}
@@ -273,10 +295,17 @@
         width="1000px"
         v-if="classVisible"
       >
-        <courseWorkeDetail :studentExerciseId="activeRow.id" :showGroup="false" />
+        <courseWorkeDetail
+          :studentExerciseId="activeRow.id"
+          :showGroup="false"
+        />
       </el-dialog>
     </div>
-    <el-dialog title="课外训练详情" :visible.sync="afterSchoolVisible" width="600px">
+    <el-dialog
+      title="课外训练详情"
+      :visible.sync="afterSchoolVisible"
+      width="600px"
+    >
       <el-form :model="visibleForm" label-width="100px">
         <el-form-item label="老师姓名">
           <el-input v-model="visibleForm.teacherName" disabled></el-input>
@@ -309,9 +338,19 @@
         </el-form-item>
       </el-form>
     </el-dialog>
-    <el-dialog title="查看训练" width="680px" append-to-body :visible.sync="workVisible">
+    <el-dialog
+      title="查看训练"
+      width="680px"
+      append-to-body
+      :visible.sync="workVisible"
+    >
       <!-- activeUrl -->
-      <video style="width: 640px" :src="activeSrc" ref="dialogVideo" controls="controls">
+      <video
+        style="width: 640px"
+        :src="activeSrc"
+        ref="dialogVideo"
+        controls="controls"
+      >
         您的浏览器不支持视频播放
       </video>
     </el-dialog>
@@ -323,7 +362,7 @@ import pagination from "@/components/Pagination/index";
 import {
   extracurricularExercisesReply,
   findStudentExtraExerciseDetail,
-  queryPageList,
+  queryPageList
 } from "@/api/afterSchool";
 
 import { getEmployeeOrgan } from "@/api/buildTeam";
@@ -341,14 +380,14 @@ export default {
       searchForm: {
         search: null,
         type: null,
-        organIdList: "",
+        organIdList: ""
       },
       rules: {
         // 分页规则
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50], // 选择限制显示条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
       teacherList: [],
       tableList: [],
@@ -359,7 +398,7 @@ export default {
         title: "",
         studentName: "",
         content: "",
-        attachments: [],
+        attachments: []
       },
       afterSchoolVisible: false,
       workVisible: false,
@@ -367,7 +406,7 @@ export default {
       extracurricularExercisesId: null,
       show: true,
       classVisible: false,
-      activeRow: null,
+      activeRow: null
     };
   },
   //生命周期 - 创建完成(可以访问当前this实例)
@@ -394,7 +433,7 @@ export default {
       // assignStartTime  assignEndTime page search teacherId title
       let obj = this.getDate();
       obj.studentAssignFlag = true;
-      queryPageList(obj).then((res) => {
+      queryPageList(obj).then(res => {
         if (res.code == 200) {
           this.tableList = res.data.rows;
           this.rules.total = res.data.total;
@@ -419,15 +458,20 @@ export default {
       obj.page = this.rules.page;
 
       (obj.rows = this.rules.limit),
-        this.searchForm.teacherId ? (obj.teacherId = this.searchForm.teacherId) : null;
+        this.searchForm.teacherId
+          ? (obj.teacherId = this.searchForm.teacherId)
+          : null;
       this.searchForm.search ? (obj.search = this.searchForm.search) : null;
       this.searchForm.status ? (obj.status = this.searchForm.status) : null;
-      this.searchForm.isReplied ? (obj.isReplied = this.searchForm.isReplied) : null;
+      this.searchForm.isReplied
+        ? (obj.isReplied = this.searchForm.isReplied)
+        : null;
       this.searchForm.isRepliedTimely
         ? (obj.isRepliedTimely = this.searchForm.isRepliedTimely)
         : null;
       this.searchForm.isView ? (obj.isView = this.searchForm.isView) : null;
-      this.extracurricularExercisesId && this.extracurricularExercisesId != "yes"
+      this.extracurricularExercisesId &&
+      this.extracurricularExercisesId != "yes"
         ? (obj.extracurricularExercisesId = this.extracurricularExercisesId)
         : null;
       this.searchForm.organIdList
@@ -452,7 +496,7 @@ export default {
         expireDate: [],
         existVipCourse: null,
         cloudHomeworkFlag: null,
-        type: null,
+        type: null
       };
       this.extracurricularExercisesId = null;
       this.getList();
@@ -481,7 +525,11 @@ export default {
         // });
         this.$router.push({
           path: "/business/afterSchoolDetailold",
-          query: { extracurricularExercisesId: row.id, title: row.title, activeIndex: 2 },
+          query: {
+            extracurricularExercisesId: row.id,
+            title: row.title,
+            activeIndex: 2
+          }
         });
       } else {
         this.classVisible = true;
@@ -490,15 +538,15 @@ export default {
     lookWork(src) {
       this.activeSrc = src;
       this.workVisible = true;
-    },
+    }
   },
   watch: {
     workVisible(val) {
       if (!val) {
         this.activeSrc = "";
       }
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="scss" scoped>

+ 86 - 32
src/views/afterSchoolManager/components/oldAfterWorkList.vue

@@ -18,7 +18,7 @@
           <el-input
             v-model.trim="searchForm.search"
             @keyup.enter.native="
-              (e) => {
+              e => {
                 e.target.blur();
                 $refs.saveForm.save();
                 search();
@@ -50,7 +50,7 @@
             class="organSelect"
             filterable
             clearable
-            placeholder="是否云练布置"
+            placeholder="是否云练布置"
           >
             <el-option label="是" :value="true"></el-option>
             <el-option label="否" :value="false"></el-option>
@@ -58,13 +58,21 @@
         </el-form-item>
 
         <el-form-item>
-          <el-select placeholder="是否提交" v-model="searchForm.status" clearable>
+          <el-select
+            placeholder="是否提交"
+            v-model="searchForm.status"
+            clearable
+          >
             <el-option label="是" value="1"></el-option>
             <el-option label="否" value="0"></el-option>
           </el-select>
         </el-form-item>
         <el-form-item>
-          <el-select placeholder="是否评价" v-model="searchForm.isReplied" clearable>
+          <el-select
+            placeholder="是否评价"
+            v-model="searchForm.isReplied"
+            clearable
+          >
             <el-option label="是" value="1"></el-option>
             <el-option label="否" value="0"></el-option>
           </el-select>
@@ -99,7 +107,7 @@
             start-placeholder="布置开始日期"
             end-placeholder="布置结束日期"
             :picker-options="{
-              firstDayOfWeek: 1,
+              firstDayOfWeek: 1
             }"
           ></el-date-picker>
         </el-form-item>
@@ -113,7 +121,7 @@
             start-placeholder="截止开始日期"
             end-placeholder="截止结束日期"
             :picker-options="{
-              firstDayOfWeek: 1,
+              firstDayOfWeek: 1
             }"
           ></el-date-picker>
         </el-form-item>
@@ -135,12 +143,22 @@
           :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
           :data="tableList"
         >
-          <el-table-column align="center" prop="createTime" label="布置时间" width="150">
+          <el-table-column
+            align="center"
+            prop="createTime"
+            label="布置时间"
+            width="150"
+          >
             <template slot-scope="scope">{{
               scope.row.createTime | dateForMinFormat
             }}</template>
           </el-table-column>
-          <el-table-column align="center" prop="expireDate" label="截止时间" width="150">
+          <el-table-column
+            align="center"
+            prop="expireDate"
+            label="截止时间"
+            width="150"
+          >
             <template slot-scope="scope">{{
               scope.row.expireDate | dateForMinFormat
             }}</template>
@@ -181,7 +199,12 @@
               <div>{{ scope.row.status ? "是" : "否" }}</div>
             </template>
           </el-table-column>
-          <el-table-column align="center" prop="createTime" label="提交时间" width="150">
+          <el-table-column
+            align="center"
+            prop="createTime"
+            label="提交时间"
+            width="150"
+          >
             <template slot-scope="scope">{{
               scope.row.submitTime | dateForMinFormat
             }}</template>
@@ -191,7 +214,12 @@
               <div>{{ scope.row.isReplied ? "是" : "否" }}</div>
             </template>
           </el-table-column>
-          <el-table-column align="center" label="是否有vip" width="100" fixed="right">
+          <el-table-column
+            align="center"
+            label="是否有vip"
+            width="100"
+            fixed="right"
+          >
             <template slot-scope="scope">
               <div>{{ scope.row.existVipCourse ? "是" : "否" }}</div>
             </template>
@@ -207,7 +235,11 @@
               <div>{{ scope.row.isRepliedTimely ? "是" : "否" }}</div>
             </template>
           </el-table-column>
-          <el-table-column align="center" prop="actualTeacherName" label="是否云教练布置">
+          <el-table-column
+            align="center"
+            prop="actualTeacherName"
+            label="是否云练习布置"
+          >
             <template slot-scope="scope">
               <div>
                 {{ scope.row.musicScoreId ? "是" : "否" }}
@@ -243,7 +275,11 @@
         />
       </div>
     </div>
-    <el-dialog title="课外训练详情" :visible.sync="afterSchoolVisible" width="600px">
+    <el-dialog
+      title="课外训练详情"
+      :visible.sync="afterSchoolVisible"
+      width="600px"
+    >
       <el-form :model="visibleForm" label-width="100px">
         <el-form-item label="老师姓名">
           <el-input v-model="visibleForm.teacherName" disabled></el-input>
@@ -276,9 +312,19 @@
         </el-form-item>
       </el-form>
     </el-dialog>
-    <el-dialog title="查看训练" width="680px" append-to-body :visible.sync="workVisible">
+    <el-dialog
+      title="查看训练"
+      width="680px"
+      append-to-body
+      :visible.sync="workVisible"
+    >
       <!-- activeUrl -->
-      <video style="width: 640px" :src="activeSrc" ref="dialogVideo" controls="controls">
+      <video
+        style="width: 640px"
+        :src="activeSrc"
+        ref="dialogVideo"
+        controls="controls"
+      >
         您的浏览器不支持视频播放
       </video>
     </el-dialog>
@@ -289,7 +335,7 @@
 import pagination from "@/components/Pagination/index";
 import {
   extracurricularExercisesReply,
-  findStudentExtraExerciseDetail,
+  findStudentExtraExerciseDetail
 } from "@/api/afterSchool";
 import { getEmployeeOrgan } from "@/api/buildTeam";
 import { Export } from "@/utils/downLoadFile";
@@ -312,14 +358,14 @@ export default {
         organIdList: null,
         expireDate: [],
         existVipCourse: null,
-        cloudHomeworkFlag: null,
+        cloudHomeworkFlag: null
       },
       rules: {
         // 分页规则
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50], // 选择限制显示条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
       teacherList: [],
       tableList: [],
@@ -330,13 +376,13 @@ export default {
         title: "",
         studentName: "",
         content: "",
-        attachments: [],
+        attachments: []
       },
       afterSchoolVisible: false,
       workVisible: false,
       activeSrc: "",
       extracurricularExercisesId: null,
-      show: true,
+      show: true
     };
   },
   //生命周期 - 创建完成(可以访问当前this实例)
@@ -354,7 +400,10 @@ export default {
       }
       this.searchForm.search = this.$route.query.studentId;
       if (this.$route.query.startTime && this.$route.query.endTime) {
-        this.searchForm.timer = [this.$route.query.startTime, this.$route.query.endTime];
+        this.searchForm.timer = [
+          this.$route.query.startTime,
+          this.$route.query.endTime
+        ];
       }
       //  (this.$route.query)
       this.getList();
@@ -362,7 +411,7 @@ export default {
     getList() {
       // assignStartTime  assignEndTime page search teacherId title
       let obj = this.getDate();
-      extracurricularExercisesReply(obj).then((res) => {
+      extracurricularExercisesReply(obj).then(res => {
         if (res.code == 200) {
           this.tableList = res.data.rows;
           this.rules.total = res.data.total;
@@ -382,7 +431,7 @@ export default {
           url: "/api-web/export/extraExercisesReplys",
           fileName: "课外训练(学员).xls",
           method: "get",
-          params: obj,
+          params: obj
         },
         "您确定导出列表?"
       );
@@ -400,15 +449,20 @@ export default {
       obj.page = this.rules.page;
 
       (obj.rows = this.rules.limit),
-        this.searchForm.teacherId ? (obj.teacherId = this.searchForm.teacherId) : null;
+        this.searchForm.teacherId
+          ? (obj.teacherId = this.searchForm.teacherId)
+          : null;
       this.searchForm.search ? (obj.search = this.searchForm.search) : null;
       this.searchForm.status ? (obj.status = this.searchForm.status) : null;
-      this.searchForm.isReplied ? (obj.isReplied = this.searchForm.isReplied) : null;
+      this.searchForm.isReplied
+        ? (obj.isReplied = this.searchForm.isReplied)
+        : null;
       this.searchForm.isRepliedTimely
         ? (obj.isRepliedTimely = this.searchForm.isRepliedTimely)
         : null;
       this.searchForm.isView ? (obj.isView = this.searchForm.isView) : null;
-      this.extracurricularExercisesId && this.extracurricularExercisesId != "yes"
+      this.extracurricularExercisesId &&
+      this.extracurricularExercisesId != "yes"
         ? (obj.extracurricularExercisesId = this.extracurricularExercisesId)
         : null;
       this.searchForm.organIdList
@@ -431,7 +485,7 @@ export default {
         organId: null,
         expireDate: [],
         existVipCourse: null,
-        cloudHomeworkFlag: null,
+        cloudHomeworkFlag: null
       };
       this.extracurricularExercisesId = null;
       this.getList();
@@ -440,8 +494,8 @@ export default {
       //   this.afterSchoolVisible = true;
       //    (row)
       findStudentExtraExerciseDetail({
-        studentExerciseId: row.id,
-      }).then((res) => {
+        studentExerciseId: row.id
+      }).then(res => {
         if (res.code == 200) {
           this.visibleForm = {
             expiryDate: res.data.expiryDate,
@@ -449,7 +503,7 @@ export default {
             title: row.extracurricularExercises.title,
             studentName: res.data.studentName,
             content: res.data.content,
-            attachments: res.data.attachments.split(","),
+            attachments: res.data.attachments.split(",")
           };
           //    (this.visibleForm)
           this.afterSchoolVisible = true;
@@ -459,15 +513,15 @@ export default {
     lookWork(src) {
       this.activeSrc = src;
       this.workVisible = true;
-    },
+    }
   },
   watch: {
     workVisible(val) {
       if (!val) {
         this.activeSrc = "";
       }
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="scss" scoped>

+ 36 - 21
src/views/afterSchoolManager/examination.vue

@@ -19,7 +19,7 @@
             v-model.trim="searchForm.search"
             clearable
             @keyup.enter.native="
-              (e) => {
+              e => {
                 e.target.blur();
                 $refs.saveForm.save();
                 search();
@@ -84,7 +84,7 @@
             class="organSelect"
             clearable
             filterable
-            placeholder="是否云练布置"
+            placeholder="是否云练布置"
           >
             <el-option label="是" :value="true"></el-option>
             <el-option label="否" :value="false"></el-option>
@@ -115,7 +115,11 @@
           :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
           :data="tableList"
         >
-          <el-table-column align="center" prop="organName" label="分部"></el-table-column>
+          <el-table-column
+            align="center"
+            prop="organName"
+            label="分部"
+          ></el-table-column>
           <!-- <el-table-column
             align="center"
             prop="musicGroupName"
@@ -134,19 +138,23 @@
           <el-table-column align="center" label="布置时间">
             <template slot-scope="scope">
               <div>
-                {{ scope.row.createTime ? scope.row.createTime.substr(0, 16) : "" }}
+                {{
+                  scope.row.createTime ? scope.row.createTime.substr(0, 16) : ""
+                }}
               </div>
             </template>
           </el-table-column>
           <el-table-column align="center" label="截止时间">
             <template slot-scope="scope">
               <div>
-                {{ scope.row.expireDate ? scope.row.expireDate.substr(0, 16) : "" }}
+                {{
+                  scope.row.expireDate ? scope.row.expireDate.substr(0, 16) : ""
+                }}
               </div>
             </template>
           </el-table-column>
 
-          <!-- <el-table-column align="center" prop="actualTeacherName" label="是否云练布置">
+          <!-- <el-table-column align="center" prop="actualTeacherName" label="是否云练布置">
             <template slot-scope="scope">
               <div>
                 {{ scope.row.musicScoreId ? "是" : "否" }}
@@ -172,7 +180,9 @@
             <template slot-scope="scope">
               <div>
                 <auth auths="/teamCourseListDetailWorkList/attendanceList">
-                  <el-button type="text" @click="lookDetail(scope.row)">查看</el-button>
+                  <el-button type="text" @click="lookDetail(scope.row)"
+                    >查看</el-button
+                  >
                 </auth>
               </div>
             </template>
@@ -192,7 +202,10 @@
           width="1000px"
           v-if="classVisible"
         >
-          <examinationDetail :courseScheduleId="activeRow.id" :type="activeRow.type" />
+          <examinationDetail
+            :courseScheduleId="activeRow.id"
+            :type="activeRow.type"
+          />
         </el-dialog>
       </div>
     </div>
@@ -217,7 +230,7 @@ export default {
         organId: null,
         musicGroupId: "",
         groupType: "MUSIC",
-        courseTimer: [],
+        courseTimer: []
       },
       teacherList: [],
       tableList: [],
@@ -227,11 +240,11 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50], // 选择限制显示条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
       teamList: [],
       activeRow: null,
-      classVisible: false,
+      classVisible: false
     };
   },
   //生命周期 - 创建完成(可以访问当前this实例)
@@ -277,9 +290,9 @@ export default {
         ...rest,
         page: this.rules.page,
         rows: this.rules.limit,
-        ...getTimes(courseTimer, ["classStartDate", "classEndDate"]),
+        ...getTimes(courseTimer, ["classStartDate", "classEndDate"])
       };
-      getLessonExamination(params).then((res) => {
+      getLessonExamination(params).then(res => {
         if (res.code == 200) {
           this.tableList = res.data.rows;
           this.rules.total = res.data.total;
@@ -297,7 +310,7 @@ export default {
         groupType: "MUSIC",
         courseTimer: [],
         cloudHomeworkFlag: "",
-        musicGroupId: "",
+        musicGroupId: ""
       };
       // this.courseTimer = [];
       this.search();
@@ -315,18 +328,20 @@ export default {
       if (val) {
         let organId = val;
         try {
-          await getTeamListNoLoading({ organId, page: 1, rows: 9999 }).then((res) => {
-            if (res.code == 200) {
-              this.$set(this, "teamList", res.data.rows);
-              // this.teamList = res.data.rows;
+          await getTeamListNoLoading({ organId, page: 1, rows: 9999 }).then(
+            res => {
+              if (res.code == 200) {
+                this.$set(this, "teamList", res.data.rows);
+                // this.teamList = res.data.rows;
+              }
             }
-          });
+          );
         } catch (e) {
           console.log(e);
         }
       }
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="scss" scoped>

+ 2 - 2
src/views/agentManager/memberShareList.vue

@@ -3,7 +3,7 @@
   <div class="m-container">
     <h2>
       <div class="squrt"></div>
-      云练分润
+      云练分润
     </h2>
     <div class="m-core">
       <el-card header="" style="width:460px" class="myCard">
@@ -22,7 +22,7 @@
           </statistic-item>
           <statistic-item>
             <span>
-              云练销售数(个月)
+              云练销售数(个月)
             </span>
             <span> <count-to :endVal="detail.memberCount"/></span>
           </statistic-item>

+ 130 - 120
src/views/app/clouldSuggestion.vue

@@ -1,130 +1,140 @@
 <template>
-  <div class='m-container'>
-  <h2>
-      <div class="squrt"></div>云教练反馈
+  <div class="m-container">
+    <h2>
+      <div class="squrt"></div>
+      云练习反馈
     </h2>
-  <div class="m-core">
-    <save-form
-      :inline="true"
-      class="searchForm"
-      save-key="clouldSuggestion"
-      @submit="search"
-      @reset="onReSet"
-      :model.sync="searchForm"
-      ref="searchForm"
-    >
-      <!-- 状态 指导老师 活动方案-->
-      <el-form-item prop="search">
-        <el-input
-          v-model.trim="searchForm.search"
-          clearable
-          placeholder="姓名/编号/手机号"
-        ></el-input>
-      </el-form-item>
-
-      <el-form-item prop="clientType">
-        <el-select clearable v-model="searchForm.clientType" placeholder="请选择客户端">
-          <el-option
-            v-for="(item, index) in clientList"
-            :key="index"
-            :value="item.value"
-            :label="item.label"
-          ></el-option>
-        </el-select>
-      </el-form-item>
-      <!-- statusList -->
-      <el-form-item prop="timer">
-        <el-date-picker
-          v-model.trim="searchForm.timer"
-          style="width: 400px"
-          type="daterange"
-          :picker-options="{
-            firstDayOfWeek: 1,
-          }"
-          value-format="yyyy-MM-dd"
-          range-separator="至"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-        ></el-date-picker>
-      </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>
-    <div class="tableWrap">
-      <el-table
-        :data="dataList"
-        :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+    <div class="m-core">
+      <save-form
+        :inline="true"
+        class="searchForm"
+        save-key="clouldSuggestion"
+        @submit="search"
+        @reset="onReSet"
+        :model.sync="searchForm"
+        ref="searchForm"
       >
-        <el-table-column
-          align="center"
-          label="用户编号"
-          prop="userId"
-        ></el-table-column>
-        <el-table-column
-          align="center"
-          label="用户姓名"
-          prop="username"
-        ></el-table-column>
+        <!-- 状态 指导老师 活动方案-->
+        <el-form-item prop="search">
+          <el-input
+            v-model.trim="searchForm.search"
+            clearable
+            placeholder="姓名/编号/手机号"
+          ></el-input>
+        </el-form-item>
 
-        <el-table-column align="center" prop="mobileNo" label="邮箱或手机号">
-        </el-table-column>
+        <el-form-item prop="clientType">
+          <el-select
+            clearable
+            v-model="searchForm.clientType"
+            placeholder="请选择客户端"
+          >
+            <el-option
+              v-for="(item, index) in clientList"
+              :key="index"
+              :value="item.value"
+              :label="item.label"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <!-- statusList -->
+        <el-form-item prop="timer">
+          <el-date-picker
+            v-model.trim="searchForm.timer"
+            style="width: 400px"
+            type="daterange"
+            :picker-options="{
+              firstDayOfWeek: 1
+            }"
+            value-format="yyyy-MM-dd"
+            range-separator="至"
+            start-placeholder="开始日期"
+            end-placeholder="结束日期"
+          ></el-date-picker>
+        </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>
+      <div class="tableWrap">
+        <el-table
+          :data="dataList"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+        >
+          <el-table-column
+            align="center"
+            label="用户编号"
+            prop="userId"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            label="用户姓名"
+            prop="username"
+          ></el-table-column>
 
-        <!-- <el-table-column align="center" prop="name" label="标题"> -->
-        <!-- </el-table-column> -->
-        <el-table-column align="center" label="内容" prop="content" width="400">
-          <template slot-scope="scope">
-            <tooltip :content="scope.row.content" />
-            <!-- <el-popover placement="top-start"
+          <el-table-column align="center" prop="mobileNo" label="邮箱或手机号">
+          </el-table-column>
+
+          <!-- <el-table-column align="center" prop="name" label="标题"> -->
+          <!-- </el-table-column> -->
+          <el-table-column
+            align="center"
+            label="内容"
+            prop="content"
+            width="400"
+          >
+            <template slot-scope="scope">
+              <tooltip :content="scope.row.content" />
+              <!-- <el-popover placement="top-start"
                           width="300"
                           trigger="hover"
                           :content="scope.row.content">
                 <span slot="reference">{{ scope.row.content }}</span>
               </el-popover> -->
-            <!-- <div :title="scope.row.content">{{ scope.row.content }}</div> -->
-          </template>
-        </el-table-column>
+              <!-- <div :title="scope.row.content">{{ scope.row.content }}</div> -->
+            </template>
+          </el-table-column>
 
-        <el-table-column align="center" label="客户端" prop="clientType">
-          <template slot-scope="scope">
-            <div>
-              {{ scope.row.clientType | clientTypeFilter }}
-            </div>
-          </template>
-        </el-table-column>
-        <el-table-column align="center" label="反馈时间" prop="createTime">
-          <template slot-scope="scope">
-            {{ scope.row.createTime | dateForMinFormat }}
-          </template>
-        </el-table-column>
-        <el-table-column align="center" prop="url" label="反馈图片">
-          <template slot-scope="scope">
-            <el-image
-              v-if="scope.row.url"
-              style="width: 60px; height: 60px"
-              fit="cover"
-              :src="scope.row.url.split(',')[0]"
-              :previewSrcList="scope.row.url.split(',')"
-            >
-            </el-image>
-          </template>
-        </el-table-column>
-        <!-- <el-table-column align="center" prop="createTime" label="反馈时间">
+          <el-table-column align="center" label="客户端" prop="clientType">
+            <template slot-scope="scope">
+              <div>
+                {{ scope.row.clientType | clientTypeFilter }}
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" label="反馈时间" prop="createTime">
+            <template slot-scope="scope">
+              {{ scope.row.createTime | dateForMinFormat }}
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="url" label="反馈图片">
+            <template slot-scope="scope">
+              <el-image
+                v-if="scope.row.url"
+                style="width: 60px; height: 60px"
+                fit="cover"
+                :src="scope.row.url.split(',')[0]"
+                :previewSrcList="scope.row.url.split(',')"
+              >
+              </el-image>
+            </template>
+          </el-table-column>
+          <!-- <el-table-column align="center" prop="createTime" label="反馈时间">
         </el-table-column> -->
-      </el-table>
-      <pagination
-        sync
-        :total.sync="pageInfo.total"
-        save-key="clouldSuggestion"
-        :page.sync="pageInfo.page"
-        :limit.sync="pageInfo.limit"
-        :page-sizes="pageInfo.page_size"
-        @pagination="getList"
-      />
+        </el-table>
+        <pagination
+          sync
+          :total.sync="pageInfo.total"
+          save-key="clouldSuggestion"
+          :page.sync="pageInfo.page"
+          :limit.sync="pageInfo.limit"
+          :page-sizes="pageInfo.page_size"
+          @pagination="getList"
+        />
+      </div>
     </div>
   </div>
-  </div>
 </template>
 <script>
 import pagination from "@/components/Pagination/index";
@@ -143,15 +153,15 @@ export default {
       searchForm: {
         search: "",
         timer: [],
-        clientType: "",
+        clientType: ""
       },
       pageInfo: {
         // 分页规则
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50], // 选择限制显示条数
-      },
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
+      }
     };
   },
   activated() {
@@ -168,9 +178,9 @@ export default {
         page: this.pageInfo.page,
         type: "SMART_PRACTICE",
         ...getTimes(timer, ["startTime", "endTime"]),
-        ...rest,
+        ...rest
       };
-      sysSuggestionList(params).then((res) => {
+      sysSuggestionList(params).then(res => {
         if (res.code == 200) {
           this.dataList = res.data.rows;
           this.pageInfo.total = res.data.total;
@@ -184,8 +194,8 @@ export default {
     search() {
       this.pageInfo.page = 1;
       this.getList();
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="scss" scoped>

+ 1 - 1
src/views/app/suggestionIndex.vue

@@ -23,7 +23,7 @@
           <suggestionType v-if="activeIndex === '2'" />
         </el-tab-pane>
         <!-- <el-tab-pane
-          label="云练反馈"
+          label="云练反馈"
           lazy
           name="3"
           v-if="permissionList.clouldSuggestion"

+ 32 - 17
src/views/attendanceManager/attendanceList/index.vue

@@ -19,7 +19,7 @@
             v-model.trim="searchForm.search"
             clearable
             @keyup.enter.native="
-              (e) => {
+              e => {
                 e.target.blur();
                 $refs.saveForm.save();
                 search();
@@ -66,7 +66,7 @@
             class="organSelect"
             clearable
             filterable
-            placeholder="是否云练布置"
+            placeholder="是否云练布置"
           >
             <el-option label="是" :value="true"></el-option>
             <el-option label="否" :value="false"></el-option>
@@ -82,7 +82,7 @@
             start-placeholder="上课开始日期"
             end-placeholder="上课结束日期"
             :picker-options="{
-              firstDayOfWeek: 1,
+              firstDayOfWeek: 1
             }"
           ></el-date-picker>
         </el-form-item>
@@ -107,12 +107,22 @@
             prop="courseScheduleName"
             label="课程名称"
           ></el-table-column>
-          <el-table-column align="center" prop="organName" label="分部"></el-table-column>
-          <el-table-column align="center" prop="groupName" label="乐团"></el-table-column>
+          <el-table-column
+            align="center"
+            prop="organName"
+            label="分部"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="groupName"
+            label="乐团"
+          ></el-table-column>
           <el-table-column align="center" label="布置时间">
             <template slot-scope="scope">
               <div>
-                {{ scope.row.createTime ? scope.row.createTime.substr(0, 16) : "" }}
+                {{
+                  scope.row.createTime ? scope.row.createTime.substr(0, 16) : ""
+                }}
               </div>
             </template>
           </el-table-column>
@@ -121,7 +131,7 @@
             prop="actualTeacherName"
             label="布置老师"
           ></el-table-column>
-          <!-- <el-table-column align="center" prop="actualTeacherName" label="是否云练布置">
+          <!-- <el-table-column align="center" prop="actualTeacherName" label="是否云练布置">
             <template slot-scope="scope">
               <div>
                 {{ scope.row.musicScoreId ? "是" : "否" }}
@@ -147,7 +157,9 @@
             <template slot-scope="scope">
               <div>
                 <auth auths="/teamCourseListDetailWorkList/attendanceList">
-                  <el-button type="text" @click="lookDetail(scope.row)">查看</el-button>
+                  <el-button type="text" @click="lookDetail(scope.row)"
+                    >查看</el-button
+                  >
                 </auth>
               </div>
             </template>
@@ -171,7 +183,10 @@
             v-if="activeRow.versionTag == 'v1'"
             :courseScheduleId="activeRow.courseScheduleId"
           ></studentWork>
-          <courseWorkeDetail v-else :courseScheduleId="activeRow.courseScheduleId" />
+          <courseWorkeDetail
+            v-else
+            :courseScheduleId="activeRow.courseScheduleId"
+          />
         </el-dialog>
       </div>
     </div>
@@ -194,7 +209,7 @@ export default {
         search: null,
         organId: null,
         groupType: "MUSIC",
-        courseTimer: [],
+        courseTimer: []
       },
 
       teacherList: [],
@@ -205,10 +220,10 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50], // 选择限制显示条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
       activeRow: null,
-      classVisible: false,
+      classVisible: false
     };
   },
   //生命周期 - 创建完成(可以访问当前this实例)
@@ -251,9 +266,9 @@ export default {
         ...rest,
         page: this.rules.page,
         rows: this.rules.limit,
-        ...getTimes(courseTimer, ["classStartDate", "classEndDate"]),
+        ...getTimes(courseTimer, ["classStartDate", "classEndDate"])
       };
-      getHomePageList(params).then((res) => {
+      getHomePageList(params).then(res => {
         if (res.code == 200) {
           this.tableList = res.data.rows;
           this.rules.total = res.data.total;
@@ -270,7 +285,7 @@ export default {
         organId: null,
         groupType: "MUSIC",
         courseTimer: [],
-        cloudHomeworkFlag: "",
+        cloudHomeworkFlag: ""
       };
       // this.courseTimer = [];
       this.search();
@@ -278,8 +293,8 @@ export default {
     lookDetail(row) {
       this.activeRow = row;
       this.classVisible = true;
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="scss" scoped>

+ 1 - 1
src/views/auditList/index.vue

@@ -14,7 +14,7 @@
           <musicGroup v-if="activeIndex === '1'" />
         </el-tab-pane>
         <el-tab-pane
-          label="云练缴费"
+          label="云练缴费"
           name="2"
           v-if="permission('cloudCoachPaymentProgram/queryPage/home')"
         >

+ 53 - 21
src/views/auditList/member.vue

@@ -4,7 +4,7 @@
       <el-form :inline="true" :model="searchForm">
         <el-form-item prop="period">
           <el-select
-            placeholder="云练单位"
+            placeholder="云练单位"
             clearable
             v-model.trim="searchForm.period"
             style="width: 100% !important"
@@ -54,7 +54,7 @@
             style="width: 410px"
             type="daterange"
             :picker-options="{
-              firstDayOfWeek: 1,
+              firstDayOfWeek: 1
             }"
             :default-time="['00:00:00', '23:59:59']"
             range-separator="至"
@@ -87,17 +87,24 @@
           :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
           :data="tableList"
         >
-          <el-table-column align="left" prop="id" label="续费编号"></el-table-column>
+          <el-table-column
+            align="left"
+            prop="id"
+            label="续费编号"
+          ></el-table-column>
           <el-table-column align="left" prop="organName" label="分部名称">
           </el-table-column>
-          <el-table-column align="left" prop="name" label="云教练">
+          <el-table-column align="left" prop="name" label="云练">
             <template slot-scope="scope">
               <div>
                 <p>
-                  续费周期: {{ scope.row.memberNum ? scope.row.memberNum : "--"
+                  续费周期:
+                  {{ scope.row.memberNum ? scope.row.memberNum : "--"
                   }}{{ scope.row.period | memberEnumType }}
                 </p>
-                <p>缴费金额: {{ scope.row.actualAmount | moneyFormat(true) }}</p>
+                <p>
+                  缴费金额: {{ scope.row.actualAmount | moneyFormat(true) }}
+                </p>
               </div>
             </template>
           </el-table-column>
@@ -114,27 +121,45 @@
               <p>总人数: {{ scope.row.userNum }}人</p>
             </template>
           </el-table-column>
-          <el-table-column align="left" label="创建人" prop="operatorName" width="200px">
+          <el-table-column
+            align="left"
+            label="创建人"
+            prop="operatorName"
+            width="200px"
+          >
             <template slot-scope="scope">
               <div>
-                <p>{{ scope.row.operatorName ? scope.row.operatorName : "--" }}</p>
+                <p>
+                  {{ scope.row.operatorName ? scope.row.operatorName : "--" }}
+                </p>
                 <p>{{ scope.row.createTime ? scope.row.createTime : "--" }}</p>
               </div>
             </template>
           </el-table-column>
-          <el-table-column align="left" prop="createTime" label="审核人" width="140px">
+          <el-table-column
+            align="left"
+            prop="createTime"
+            label="审核人"
+            width="140px"
+          >
             <template slot-scope="scope">
               <div>
                 <p>{{ scope.row.auditName ? scope.row.auditName : "--" }}</p>
                 <p>
                   {{
-                    scope.row.auditTime ? scope.row.auditTime : "--" | dateForMinFormat
+                    scope.row.auditTime
+                      ? scope.row.auditTime
+                      : "--" | dateForMinFormat
                   }}
                 </p>
               </div>
             </template>
           </el-table-column>
-          <el-table-column align="left" prop="remark" label="备注"></el-table-column>
+          <el-table-column
+            align="left"
+            prop="remark"
+            label="备注"
+          ></el-table-column>
           <el-table-column align="left" prop="memo" label="审核意见">
             <template slot-scope="scope">
               <overflow-text width="80px" :text="scope.row.memo" />
@@ -145,7 +170,12 @@
             prop="operatorName"
             label="申请人"
           ></el-table-column>
-          <el-table-column align="left" prop="status" label="状态" width="100px">
+          <el-table-column
+            align="left"
+            prop="status"
+            label="状态"
+            width="100px"
+          >
             <template slot-scope="scope">
               <div>
                 {{ scope.row.status | auditType }}
@@ -164,7 +194,7 @@
                 type="text"
                 v-if="
                   scope.row.status == 'AUDITING' &&
-                  $helpers.permission('cloudCoachPaymentProgram/audit')
+                    $helpers.permission('cloudCoachPaymentProgram/audit')
                 "
                 @click="onDetail(scope.row)"
                 >审核</el-button
@@ -173,7 +203,9 @@
                 type="text"
                 v-if="
                   scope.row.status != 'AUDITING' &&
-                  $helpers.permission('studentCloudCoachPaymentDetails/queryPage')
+                    $helpers.permission(
+                      'studentCloudCoachPaymentDetails/queryPage'
+                    )
                 "
                 @click="onDetail(scope.row)"
                 >详情</el-button
@@ -224,7 +256,7 @@ export default {
         period: null,
         organId: null,
         status: "AUDITING",
-        audit: null,
+        audit: null
       },
       tableList: [],
       userList: [],
@@ -233,10 +265,10 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50], // 选择限制显示条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
       selectDetail: null,
-      statusList: auditTypeList,
+      statusList: auditTypeList
     };
   },
   async mounted() {
@@ -253,7 +285,7 @@ export default {
           ...search,
           ...getTimes(visitTime, ["startTime", "endTime"]),
           page: this.rules.page,
-          rows: this.rules.limit,
+          rows: this.rules.limit
         });
         this.rules.total = res.data.total;
         this.tableList = res.data.rows;
@@ -266,7 +298,7 @@ export default {
     onReSet() {
       this.searchForm = {
         visitTime: [],
-        period: null,
+        period: null
       };
       this.search();
     },
@@ -281,7 +313,7 @@ export default {
       } catch (e) {
         console.log(e);
       }
-    },
-  },
+    }
+  }
 };
 </script>

+ 26 - 14
src/views/auditList/memberModel.vue

@@ -1,22 +1,30 @@
 <template>
   <div>
     <descriptions :column="2" style="margin-bottom: 20px">
-      <descriptions-item label="云练单位">{{
+      <descriptions-item label="云练单位">{{
         detail.period | memberEnumType
       }}</descriptions-item>
-      <descriptions-item label="周期数">{{ detail.memberNum }}</descriptions-item>
+      <descriptions-item label="周期数">{{
+        detail.memberNum
+      }}</descriptions-item>
       <descriptions-item label="缴费金额(元)">{{
         detail.actualAmount | moneyFormat(true)
       }}</descriptions-item>
       <descriptions-item label="已缴费人数/总人数"
         >{{ detail.paymentUserNum }}/{{ detail.userNum }}</descriptions-item
       >
-      <descriptions-item label="创建人">{{ detail.operatorName }}</descriptions-item>
-      <descriptions-item label="创建时间">{{ detail.createTime }}</descriptions-item>
+      <descriptions-item label="创建人">{{
+        detail.operatorName
+      }}</descriptions-item>
+      <descriptions-item label="创建时间">{{
+        detail.createTime
+      }}</descriptions-item>
       <descriptions-item :span="2" label="学员姓名">{{
         detail.userNames
       }}</descriptions-item>
-      <descriptions-item :span="2" label="备注">{{ detail.remark }}</descriptions-item>
+      <descriptions-item :span="2" label="备注">{{
+        detail.remark
+      }}</descriptions-item>
     </descriptions>
 
     <template v-if="detail.status === 'AUDITING'">
@@ -31,7 +39,9 @@
       <el-form :model="form" ref="form">
         <el-form-item
           prop="memo"
-          :rules="[{ required: true, message: '请输入审核意见', trigger: 'blur' }]"
+          :rules="[
+            { required: true, message: '请输入审核意见', trigger: 'blur' }
+          ]"
         >
           <el-input
             type="textarea"
@@ -52,7 +62,9 @@
         <el-button
           type="danger"
           @click="submit(0)"
-          v-if="permission('musicGroupPaymentCalender/auditRefuse/batchAuditing')"
+          v-if="
+            permission('musicGroupPaymentCalender/auditRefuse/batchAuditing')
+          "
           >驳回</el-button
         >
         <el-button @click="$emit('close')">关 闭</el-button>
@@ -68,8 +80,8 @@ export default {
   data() {
     return {
       form: {
-        memo: "",
-      },
+        memo: ""
+      }
     };
   },
   mounted() {
@@ -77,18 +89,18 @@ export default {
   },
   methods: {
     async submit(val) {
-      this.$refs.form.validate(async (_) => {
+      this.$refs.form.validate(async _ => {
         if (_) {
           try {
             const detail = this.detail;
             const str = val ? "通过" : "驳回";
             await this.$confirm(`是否确认审核${str}`, "提示", {
-              type: "warning",
+              type: "warning"
             });
             await cloudCoachPaymentProgramAudit({
               id: detail.id,
               memo: this.form.memo,
-              status: val ? "OPEN" : "REJECT",
+              status: val ? "OPEN" : "REJECT"
             });
             this.$message.success(`${str}成功`);
             this.$emit("close");
@@ -99,8 +111,8 @@ export default {
     },
     permission(str) {
       return permission(str);
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="less" scoped>

+ 4 - 4
src/views/baseRulesManager/components/otherRules.vue

@@ -60,7 +60,7 @@
         </el-alert>
         <!-- <el-row>
           <el-form-item prop="108">
-            云练活动分部目标
+            云练活动分部目标
             <el-input
               class="marginLR5"
               style="width: 180px"
@@ -73,7 +73,7 @@
         </el-row>
         <el-row>
           <el-form-item prop="109">
-            云练活动预约开始时间
+            云练活动预约开始时间
             <el-date-picker
               class="marginLR5"
               v-model="form['109']"
@@ -88,7 +88,7 @@
         </el-row>
         <el-row>
           <el-form-item prop="110">
-            云练活动预约结束时间
+            云练活动预约结束时间
             <el-date-picker
               class="marginLR5"
               v-model="form['110']"
@@ -103,7 +103,7 @@
         </el-row>
         <el-row>
           <el-form-item prop="111">
-            云练活动开屏广告编号
+            云练活动开屏广告编号
             <el-input
               class="marginLR5"
               v-model="form['111']"

+ 3 - 3
src/views/businessManager/shopManager/shopList.vue

@@ -257,7 +257,7 @@
           >
             <el-option label="课程收费" value="0"></el-option>
             <el-option label="系统收费" value="1"></el-option>
-            <el-option label="云练收费" value="2"></el-option>
+            <el-option label="云练收费" value="2"></el-option>
           </el-select>
         </el-form-item> -->
         <!-- <el-form-item prop="replacementShow">
@@ -860,7 +860,7 @@
           >
             <el-option label="课程收费" value="0"></el-option>
             <el-option label="系统收费" value="1"></el-option>
-            <el-option label="云练收费" value="2"></el-option>
+            <el-option label="云练收费" value="2"></el-option>
           </select-all> -->
         <!-- <el-select
             v-model="form.courseViewType"
@@ -870,7 +870,7 @@
           >
             <el-option label="课程收费" :value="0"></el-option>
             <el-option label="系统收费" :value="1"></el-option>
-            <el-option label="云练收费" :value="2"></el-option>
+            <el-option label="云练收费" :value="2"></el-option>
           </el-select> -->
         <!-- </el-form-item> -->
         <!-- <el-form-item

+ 261 - 70
src/views/businessManager/shopManager/shopOperation.vue

@@ -1,38 +1,82 @@
 <template>
   <div class="m-container">
     <h2>
-      <el-page-header @back="onCancel" :content="pageTitle[pageType] + '商品'"></el-page-header>
+      <el-page-header
+        @back="onCancel"
+        :content="pageTitle[pageType] + '商品'"
+      ></el-page-header>
     </h2>
 
     <div class="m-core">
-      <el-form :model="form" :rules="rules" ref="form" label-width="160px" :inline="true">
-        <el-alert title="基础信息" :closable="false" class="alert" type="info" />
+      <el-form
+        :model="form"
+        :rules="rules"
+        ref="form"
+        label-width="160px"
+        :inline="true"
+      >
+        <el-alert
+          title="基础信息"
+          :closable="false"
+          class="alert"
+          type="info"
+        />
         <el-form-item label="货号" prop="sn">
-          <el-input v-model.trim="form.sn" :disabled="pageDisabled" placeholder="请输入货号"
-            style="width: 220px !important"></el-input>
+          <el-input
+            v-model.trim="form.sn"
+            :disabled="pageDisabled"
+            placeholder="请输入货号"
+            style="width: 220px !important"
+          ></el-input>
         </el-form-item>
         <el-form-item label="品牌" prop="brand">
-          <el-input v-model.trim="form.brand" :disabled="pageDisabled" placeholder="请输入品牌"
-            style="width: 220px !important"></el-input>
+          <el-input
+            v-model.trim="form.brand"
+            :disabled="pageDisabled"
+            placeholder="请输入品牌"
+            style="width: 220px !important"
+          ></el-input>
         </el-form-item>
         <!-- <el-form-item label="备查货号" prop="supplyChannel" v-if="pageType == 'create'">
           <el-input v-model.trim="form.supplyChannel" placeholder="请输入备查货号" style="width: 400px"></el-input>
         </el-form-item> -->
         <el-form-item label="商品名称" prop="name">
-          <el-input v-model.trim="form.name" placeholder="请输入商品名称" :disabled="pageDisabled"
-            style="width: 220px !important"></el-input>
+          <el-input
+            v-model.trim="form.name"
+            placeholder="请输入商品名称"
+            :disabled="pageDisabled"
+            style="width: 220px !important"
+          ></el-input>
         </el-form-item>
         <el-form-item label="商品类型" prop="type">
-          <el-select v-model.trim="form.type" placeholder="请选择商品类型" :disabled="pageDisabled"
-            style="width: 220px !important">
-            <el-option v-for="(item, index) in goodsType" :key="index" :label="item.label"
-              :value="item.value"></el-option>
+          <el-select
+            v-model.trim="form.type"
+            placeholder="请选择商品类型"
+            :disabled="pageDisabled"
+            style="width: 220px !important"
+          >
+            <el-option
+              v-for="(item, index) in goodsType"
+              :key="index"
+              :label="item.label"
+              :value="item.value"
+            ></el-option>
           </el-select>
         </el-form-item>
         <el-form-item label="商品分类" prop="goodsCategoryId">
-          <el-select v-model.trim="form.goodsCategoryId" placeholder="请选择商品分类" :disabled="pageDisabled"
-            style="width: 220px !important" filterable>
-            <el-option v-for="item in categoryList" :key="item.value" :label="item.label" :value="item.value">
+          <el-select
+            v-model.trim="form.goodsCategoryId"
+            placeholder="请选择商品分类"
+            :disabled="pageDisabled"
+            style="width: 220px !important"
+            filterable
+          >
+            <el-option
+              v-for="item in categoryList"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
             </el-option>
           </el-select>
         </el-form-item>
@@ -55,24 +99,49 @@
           </select-all>
         </el-form-item> -->
         <el-form-item label="商品型号" prop="specification">
-          <el-input v-model.trim="form.specification" placeholder="请输入商品型号" :disabled="pageDisabled"
-            style="width: 220px"></el-input>
+          <el-input
+            v-model.trim="form.specification"
+            placeholder="请输入商品型号"
+            :disabled="pageDisabled"
+            style="width: 220px"
+          ></el-input>
         </el-form-item>
         <el-form-item label="库存类型" prop="stockType" v-if="tenantId == 1">
-          <el-select v-model="form.stockType" placeholder="请选择库存类型" :disabled="pageDisabled"
-            style="width: 220px !important">
-            <el-option v-for="(item, index) in stockType" :key="index" :label="item.label"
-              :value="item.value"></el-option>
+          <el-select
+            v-model="form.stockType"
+            placeholder="请选择库存类型"
+            :disabled="pageDisabled"
+            style="width: 220px !important"
+          >
+            <el-option
+              v-for="(item, index) in stockType"
+              :key="index"
+              :label="item.label"
+              :value="item.value"
+            ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="是否库存预警" prop="stockWarning" v-if="tenantId == 1">
-          <el-select v-model="form.stockWarning" placeholder="请选择库存预警" :disabled="pageDisabled"
-            style="width: 220px !important">
+        <el-form-item
+          label="是否库存预警"
+          prop="stockWarning"
+          v-if="tenantId == 1"
+        >
+          <el-select
+            v-model="form.stockWarning"
+            placeholder="请选择库存预警"
+            :disabled="pageDisabled"
+            style="width: 220px !important"
+          >
             <el-option label="是" :value="1"></el-option>
             <el-option label="否" :value="0"></el-option>
           </el-select>
         </el-form-item>
-        <el-alert title="价格信息" :closable="false" class="alert" type="info" />
+        <el-alert
+          title="价格信息"
+          :closable="false"
+          class="alert"
+          type="info"
+        />
 
         <el-form-item label="市场价" prop="marketPrice" class="hiddenStart">
           <template slot="label">
@@ -83,17 +152,26 @@
                 <div slot="content">
                   商品标价,仅在商品购买时做展示,不以该价格向学员销售商品
                 </div>
-                <i class="el-icon-question" style="
+                <i
+                  class="el-icon-question"
+                  style="
                     font-size: 18px;
                     color: #f56c6c;
                     position: relative;
                     top: 2px;
-                  "></i>
+                  "
+                ></i>
               </el-tooltip>
             </p>
           </template>
-          <el-input type="number" placeholder="请输入市场价" :disabled="pageDisabled" @mousewheel.native.prevent
-            v-model.trim="form.marketPrice" style="width: 220px"></el-input>
+          <el-input
+            type="number"
+            placeholder="请输入市场价"
+            :disabled="pageDisabled"
+            @mousewheel.native.prevent
+            v-model.trim="form.marketPrice"
+            style="width: 220px"
+          ></el-input>
         </el-form-item>
         <el-form-item label="零售价" prop="discountPrice" class="hiddenStart">
           <template slot="label">
@@ -104,42 +182,75 @@
                 <div slot="content">
                   管理端APP、乐器维修时学员购买该商品的价格
                 </div>
-                <i class="el-icon-question" style="
+                <i
+                  class="el-icon-question"
+                  style="
                     font-size: 18px;
                     color: #f56c6c;
                     position: relative;
                     top: 2px;
-                  "></i>
+                  "
+                ></i>
               </el-tooltip>
             </p>
           </template>
-          <el-input type="number" placeholder="请输入零售价" @mousewheel.native.prevent :disabled="pageDisabled"
-            v-model.trim="form.discountPrice" style="width: 220px"></el-input>
+          <el-input
+            type="number"
+            placeholder="请输入零售价"
+            @mousewheel.native.prevent
+            :disabled="pageDisabled"
+            v-model.trim="form.discountPrice"
+            style="width: 220px"
+          ></el-input>
         </el-form-item>
-        <el-form-item label="商品团购价" prop="groupPurchasePrice" class="hiddenStart">
+        <el-form-item
+          label="商品团购价"
+          prop="groupPurchasePrice"
+          class="hiddenStart"
+        >
           <template slot="label">
             <p style="position: relative">
               <span style="color: #f56c6c; margin-right: 4px">*</span>
               团购价
               <el-tooltip placement="top" popper-class="mTooltip">
                 <div slot="content">乐团报名缴费时学员购买该商品的价格</div>
-                <i class="el-icon-question" style="
+                <i
+                  class="el-icon-question"
+                  style="
                     font-size: 18px;
                     color: #f56c6c;
                     position: relative;
                     top: 2px;
-                  "></i>
+                  "
+                ></i>
               </el-tooltip>
             </p>
           </template>
-          <el-input type="number" placeholder="请输入商品团购价" @mousewheel.native.prevent :disabled="pageDisabled"
-            v-model.trim="form.groupPurchasePrice" style="width: 220px"></el-input>
+          <el-input
+            type="number"
+            placeholder="请输入商品团购价"
+            @mousewheel.native.prevent
+            :disabled="pageDisabled"
+            v-model.trim="form.groupPurchasePrice"
+            style="width: 220px"
+          ></el-input>
         </el-form-item>
         <el-form-item label="分部成本" prop="organCostPrice">
-          <el-input type="number" placeholder="请输入分部成本" @mousewheel.native.prevent :disabled="pageDisabled"
-            v-model.trim="form.organCostPrice" style="width: 220px"></el-input>
+          <el-input
+            type="number"
+            placeholder="请输入分部成本"
+            @mousewheel.native.prevent
+            :disabled="pageDisabled"
+            v-model.trim="form.organCostPrice"
+            style="width: 220px"
+          ></el-input>
         </el-form-item>
-        <el-alert title="销售渠道" :closable="false" class="alert" type="info" />
+        <el-alert
+          title="销售渠道"
+          :closable="false"
+          class="alert"
+          type="info"
+        />
         <!-- <el-form-item label="学生端APP可售分部" prop="studentShowOrganId">
           <select-all
             v-model.trim="form.studentShowOrganId"
@@ -159,38 +270,97 @@
           </select-all>
         </el-form-item> -->
         <el-form-item label="移动端可售分部" prop="educationShowOrganId">
-          <select-all v-model.trim="form.educationShowOrganId" filterable placeholder="请选择分部"
-            style="width: 400px !important" multiple :disabled="pageDisabled" clearable>
-            <el-option v-for="item in selects.branchs" :key="item.id" :label="item.name"
-              :value="item.id.toString()"></el-option>
+          <select-all
+            v-model.trim="form.educationShowOrganId"
+            filterable
+            placeholder="请选择分部"
+            style="width: 400px !important"
+            multiple
+            :disabled="pageDisabled"
+            clearable
+          >
+            <el-option
+              v-for="item in selects.branchs"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id.toString()"
+            ></el-option>
           </select-all>
         </el-form-item>
         <el-form-item label="课程收费乐团可售分部" prop="courseFeeShowOrganId">
-          <select-all v-model.trim="form.courseFeeShowOrganId" filterable placeholder="请选择分部"
-            style="width: 400px !important" multiple :disabled="pageDisabled" clearable>
-            <el-option v-for="item in selects.branchs" :key="item.id" :label="item.name"
-              :value="item.id.toString()"></el-option>
+          <select-all
+            v-model.trim="form.courseFeeShowOrganId"
+            filterable
+            placeholder="请选择分部"
+            style="width: 400px !important"
+            multiple
+            :disabled="pageDisabled"
+            clearable
+          >
+            <el-option
+              v-for="item in selects.branchs"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id.toString()"
+            ></el-option>
           </select-all>
         </el-form-item>
         <el-form-item label="会员收费乐团可售分部" prop="memberFeeShowOrganId">
-          <select-all v-model.trim="form.memberFeeShowOrganId" filterable placeholder="请选择分部"
-            style="width: 400px !important" multiple :disabled="pageDisabled" clearable>
-            <el-option v-for="item in selects.branchs" :key="item.id" :label="item.name"
-              :value="item.id.toString()"></el-option>
+          <select-all
+            v-model.trim="form.memberFeeShowOrganId"
+            filterable
+            placeholder="请选择分部"
+            style="width: 400px !important"
+            multiple
+            :disabled="pageDisabled"
+            clearable
+          >
+            <el-option
+              v-for="item in selects.branchs"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id.toString()"
+            ></el-option>
           </select-all>
         </el-form-item>
         <el-form-item label="免费乐团可售分部" prop="freeFeeShowOrganId">
-          <select-all v-model.trim="form.freeFeeShowOrganId" filterable placeholder="请选择分部"
-            style="width: 400px !important" multiple :disabled="pageDisabled" clearable>
-            <el-option v-for="item in selects.branchs" :key="item.id" :label="item.name"
-              :value="item.id.toString()"></el-option>
+          <select-all
+            v-model.trim="form.freeFeeShowOrganId"
+            filterable
+            placeholder="请选择分部"
+            style="width: 400px !important"
+            multiple
+            :disabled="pageDisabled"
+            clearable
+          >
+            <el-option
+              v-for="item in selects.branchs"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id.toString()"
+            ></el-option>
           </select-all>
         </el-form-item>
-        <el-form-item label="乐器置换可售分部" prop="replacementShowOrganId" v-if="tenantId == 1">
-          <select-all v-model.trim="form.replacementShowOrganId" filterable placeholder="请选择所属分部"
-            style="width: 400px !important" multiple :disabled="pageDisabled" clearable>
-            <el-option v-for="item in selects.branchs" :key="item.id" :label="item.name"
-              :value="item.id.toString()"></el-option>
+        <el-form-item
+          label="乐器置换可售分部"
+          prop="replacementShowOrganId"
+          v-if="tenantId == 1"
+        >
+          <select-all
+            v-model.trim="form.replacementShowOrganId"
+            filterable
+            placeholder="请选择所属分部"
+            style="width: 400px !important"
+            multiple
+            :disabled="pageDisabled"
+            clearable
+          >
+            <el-option
+              v-for="item in selects.branchs"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id.toString()"
+            ></el-option>
           </select-all>
         </el-form-item>
         <!-- <el-form-item label="学员是否展示" prop="clientShow">
@@ -241,7 +411,7 @@
           >
             <el-option label="课程收费" value="0"></el-option>
             <el-option label="系统收费" value="1"></el-option>
-            <el-option label="云练收费" value="2"></el-option>
+            <el-option label="云练收费" value="2"></el-option>
           </select-all>
         </el-form-item> -->
 
@@ -256,7 +426,12 @@
             <el-option label="否" :value="0"></el-option>
           </el-select>
         </el-form-item> -->
-        <el-alert title="商品信息" :closable="false" class="alert" type="info" />
+        <el-alert
+          title="商品信息"
+          :closable="false"
+          class="alert"
+          type="info"
+        />
         <el-form-item label="商品图片" prop="image">
           <!-- <el-upload
             class="avatar-uploader"
@@ -271,8 +446,14 @@
             <img v-if="form.image" :src="form.image" class="avatar" />
             <i v-else class="el-icon-plus avatar-uploader-icon"></i>
           </el-upload> -->
-          <image-cropper :options="cropperOptions" :disabled="pageDisabled" :imgSize="2" :imageUrl="form.image"
-            @crop-upload-success="cropSuccess" bucket_name="mall" />
+          <image-cropper
+            :options="cropperOptions"
+            :disabled="pageDisabled"
+            :imgSize="2"
+            :imageUrl="form.image"
+            @crop-upload-success="cropSuccess"
+            bucket_name="mall"
+          />
           <p class="imageSize">
             <!-- 仅支持上传尺寸为:{{ imageWidthM }}x{{ imageHeightM }}的图片 -->
             请上传大小2M以内,格式为jpg、png、gif图片
@@ -280,11 +461,21 @@
         </el-form-item>
         <br />
         <el-form-item label="商品描述" prop="brief">
-          <el-input type="textarea" v-model.trim="form.brief" :disabled="pageDisabled" style="width: 400px"></el-input>
+          <el-input
+            type="textarea"
+            v-model.trim="form.brief"
+            :disabled="pageDisabled"
+            style="width: 400px"
+          ></el-input>
         </el-form-item>
         <br />
         <el-form-item label="商品详情" prop="desc">
-          <el-input type="textarea" v-model.trim="form.desc" :disabled="pageDisabled" style="width: 400px"></el-input>
+          <el-input
+            type="textarea"
+            v-model.trim="form.desc"
+            :disabled="pageDisabled"
+            style="width: 400px"
+          ></el-input>
         </el-form-item>
         <br />
         <el-form-item v-if="!pageDisabled">
@@ -800,7 +991,7 @@ replacementShowOrganId: 6,7 */
       const _URL = window.URL || window.webkitURL;
       const isSize = new Promise((resolve, reject) => {
         const img = new Image();
-        img.onload = function () {
+        img.onload = function() {
           if (imageWidth && imageHeigh) {
             this.width === imageWidth && this.height === imageHeigh
               ? resolve()

+ 75 - 76
src/views/categroyManager/generalSettings/groupMarkPrice.vue

@@ -3,7 +3,7 @@
     <el-form :inline="true" :model="form" ref="form">
       <el-alert
         style="margin: 10px 0"
-        title="机构云练定价范围设置"
+        title="机构云练定价范围设置"
         :closable="false"
         type="info"
       >
@@ -11,20 +11,19 @@
       <el-row>
         <el-form-item
           prop="minMonthFee"
-          label="月度云练机构定价范围最低:"
+          label="月度云练机构定价范围最低:"
           :rules="[
             {
               required: false,
               pattern: /^[0-9][0-9]*$/,
-              message: '请输入正确的价格',
-            },
+              message: '请输入正确的价格'
+            }
           ]"
         >
-          <el-input
-            v-model="form.minMonthFee"
-            placeholder="请输入金额"
-          >
-            <template slot="append">元</template>
+          <el-input v-model="form.minMonthFee" placeholder="请输入金额">
+            <template slot="append"
+              >元</template
+            >
           </el-input>
         </el-form-item>
         <el-form-item
@@ -34,36 +33,34 @@
             {
               required: false,
               pattern: /^[0-9][0-9]*$/,
-              message: '请输入正确的价格',
+              message: '请输入正确的价格'
             },
             { validator: validateMonthMax, trigger: 'blur' }
           ]"
         >
-          <el-input
-            v-model="form.maxMonthFee"
-            placeholder="请输入金额"
-          >
-            <template slot="append">元</template>
+          <el-input v-model="form.maxMonthFee" placeholder="请输入金额">
+            <template slot="append"
+              >元</template
+            >
           </el-input>
         </el-form-item>
       </el-row>
       <el-row>
         <el-form-item
           prop="minQuarterlyFee"
-          label="季度云练机构定价范围最低:"
+          label="季度云练机构定价范围最低:"
           :rules="[
             {
               required: false,
               pattern: /^[0-9][0-9]*$/,
-              message: '请输入正确的价格',
-            },
+              message: '请输入正确的价格'
+            }
           ]"
         >
-          <el-input
-            v-model="form.minQuarterlyFee"
-            placeholder="请输入金额"
-          >
-            <template slot="append">元</template>
+          <el-input v-model="form.minQuarterlyFee" placeholder="请输入金额">
+            <template slot="append"
+              >元</template
+            >
           </el-input>
         </el-form-item>
         <el-form-item
@@ -73,36 +70,34 @@
             {
               required: false,
               pattern: /^[0-9][0-9]*$/,
-              message: '请输入正确的价格',
+              message: '请输入正确的价格'
             },
             { validator: validateQuarterlyMax, trigger: 'blur' }
           ]"
         >
-          <el-input
-            v-model="form['maxQuarterlyFee']"
-            placeholder="请输入金额"
-          >
-            <template slot="append">元</template>
+          <el-input v-model="form['maxQuarterlyFee']" placeholder="请输入金额">
+            <template slot="append"
+              >元</template
+            >
           </el-input>
         </el-form-item>
       </el-row>
       <el-row>
         <el-form-item
           prop="minHalfYearFee"
-          label="半年云练机构定价范围最低:"
+          label="半年云练机构定价范围最低:"
           :rules="[
             {
               required: false,
               pattern: /^[0-9][0-9]*$/,
-              message: '请输入正确的价格',
-            },
+              message: '请输入正确的价格'
+            }
           ]"
         >
-          <el-input
-            v-model="form['minHalfYearFee']"
-            placeholder="请输入金额"
-          >
-            <template slot="append">元</template>
+          <el-input v-model="form['minHalfYearFee']" placeholder="请输入金额">
+            <template slot="append"
+              >元</template
+            >
           </el-input>
         </el-form-item>
         <el-form-item
@@ -112,36 +107,34 @@
             {
               required: false,
               pattern: /^[0-9][0-9]*$/,
-              message: '请输入正确的价格',
+              message: '请输入正确的价格'
             },
             { validator: validateHalfYearMax, trigger: 'blur' }
           ]"
         >
-          <el-input
-            v-model="form['maxHalfYearFee']"
-            placeholder="请输入金额"
-          >
-            <template slot="append">元</template>
+          <el-input v-model="form['maxHalfYearFee']" placeholder="请输入金额">
+            <template slot="append"
+              >元</template
+            >
           </el-input>
         </el-form-item>
       </el-row>
       <el-row>
         <el-form-item
           prop="minYearFee"
-          label="年度云练机构定价范围最低:"
+          label="年度云练机构定价范围最低:"
           :rules="[
             {
               required: false,
               pattern: /^[0-9][0-9]*$/,
-              message: '请输入正确的价格',
-            },
+              message: '请输入正确的价格'
+            }
           ]"
         >
-          <el-input
-            v-model="form['minYearFee']"
-            placeholder="请输入金额"
-          >
-            <template slot="append">元</template>
+          <el-input v-model="form['minYearFee']" placeholder="请输入金额">
+            <template slot="append"
+              >元</template
+            >
           </el-input>
         </el-form-item>
         <el-form-item
@@ -151,22 +144,24 @@
             {
               required: false,
               pattern: /^[0-9][0-9]*$/,
-              message: '请输入正确的价格',
+              message: '请输入正确的价格'
             },
             { validator: validateYearMax, trigger: 'blur' }
           ]"
         >
-          <el-input
-            v-model="form['maxYearFee']"
-            placeholder="请输入金额"
-          >
-            <template slot="append">元</template>
+          <el-input v-model="form['maxYearFee']" placeholder="请输入金额">
+            <template slot="append"
+              >元</template
+            >
           </el-input>
         </el-form-item>
       </el-row>
     </el-form>
-    <el-button  type="primary" @click="save" class="saveBtn"
-     v-permission="'sysConfig/batchUpdate/groupMarkPrice'"
+    <el-button
+      type="primary"
+      @click="save"
+      class="saveBtn"
+      v-permission="'sysConfig/batchUpdate/groupMarkPrice'"
       >保存</el-button
     >
   </div>
@@ -187,10 +182,10 @@ export default {
         minHalfYearFee: null,
         maxHalfYearFee: null,
         minYearFee: null,
-        maxYearFee: null,
+        maxYearFee: null
       },
       questionList: [],
-      rulesVisiable: false,
+      rulesVisiable: false
     };
   },
   async mounted() {
@@ -200,15 +195,17 @@ export default {
     async getRules() {
       try {
         const res = await sysConfigList({ group: "DEFAULT" });
-        const paramName = 'cloud_price_range'
-        res.data.forEach((item) => {
-          if(item.paramName == paramName) {
-            const itemValue = item.paranValue ? JSON.parse(item.paranValue) : null
-            if(itemValue) {
-              this.id = item.id
-              this.form = itemValue
+        const paramName = "cloud_price_range";
+        res.data.forEach(item => {
+          if (item.paramName == paramName) {
+            const itemValue = item.paranValue
+              ? JSON.parse(item.paranValue)
+              : null;
+            if (itemValue) {
+              this.id = item.id;
+              this.form = itemValue;
             }
-            console.log(itemValue)
+            console.log(itemValue);
             // this.$set(this.form, item.id, item.paranValue);
           }
           // this.form[item.paramName] = item.paranValue
@@ -221,12 +218,14 @@ export default {
       }
     },
     async save() {
-      this.$refs.form.validate(async (valid) => {
+      this.$refs.form.validate(async valid => {
         if (valid) {
-          let param = [{
-            id: this.id,
-            paranValue: JSON.stringify(this.form)
-          }];
+          let param = [
+            {
+              id: this.id,
+              paranValue: JSON.stringify(this.form)
+            }
+          ];
 
           try {
             const res = await sysConfigUpdate(param);
@@ -269,8 +268,8 @@ export default {
         return callback();
       }
       return callback(new Error("输入值不得小于年度最低金额"));
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="scss" scoped>

+ 1 - 1
src/views/categroyManager/globalConfig.vue

@@ -20,7 +20,7 @@
           <loginRules v-if="activeIndex == 6" />
         </el-tab-pane>
         <el-tab-pane
-          label="云练定价"
+          label="云练定价"
           lazy
           name="3"
           v-if="permissionList.groupMarkPrice"

+ 63 - 63
src/views/categroyManager/globalMusicGroup.vue

@@ -6,75 +6,75 @@
     </h2>
     <div class="m-core">
       <!-- navMenu -->
-        <tab-router
-          v-model.trim="activeIndex"
-          type="card"
-          @tab-click="handleClick"
+      <tab-router
+        v-model.trim="activeIndex"
+        type="card"
+        @tab-click="handleClick"
+      >
+        <el-tab-pane
+          label="乐团收费类型"
+          lazy
+          name="2"
+          v-if="permissionList.typesManager"
         >
-          <el-tab-pane
-            label="乐团收费类型"
-            lazy
-            name="2"
-            v-if="permissionList.typesManager"
-          >
-            <typesManager v-if="activeIndex == 2" />
-          </el-tab-pane>
-          <!-- <el-tab-pane
-            label="分部云教练价格配置"
+          <typesManager v-if="activeIndex == 2" />
+        </el-tab-pane>
+        <!-- <el-tab-pane
+            label="分部云练习价格配置"
             lazy
             name="13"
           >
             <cloudTeacherFee v-if="activeIndex == 13" />
           </el-tab-pane> -->
-          <el-tab-pane
-            label="课程时长设置"
-            lazy
-            name="11"
-            v-if="permissionList.courseTimerSetting"
-          >
-            <courseTimerSetting v-if="activeIndex == 11" />
-          </el-tab-pane>
-          <el-tab-pane
-            label="商品折扣和声部设置"
-            lazy
-            name="9"
-            v-if="permissionList.discountManage"
-          >
-            <discountManage v-if="activeIndex == 9" />
-          </el-tab-pane>
-          <el-tab-pane
-            label="乐团收费标准"
-            lazy
-            name="3"
-            v-if="permissionList.chargesList"
-          >
-            <chargesList v-if="activeIndex == 3" />
-          </el-tab-pane>
-          <el-tab-pane
-            label="乐团课程费用"
-            lazy
-            name="10"
-            v-if="permissionList.musicCourseFee"
-          >
-            <musicCourseFee v-if="activeIndex == 10" />
-          </el-tab-pane>
-          <el-tab-pane
-            label="乐团训练模板"
-            lazy
-            name="4"
-            v-if="permissionList.jobTemplateSetting"
-          >
-            <jobTemplateSetting v-if="activeIndex == 4" />
-          </el-tab-pane>
-          <el-tab-pane
-            label="热词标签"
-            lazy
-            name="5"
-            v-if="permissionList.errorManager"
-          >
-            <errorManager v-if="activeIndex == 5" />
-          </el-tab-pane>
-        </tab-router>
+        <el-tab-pane
+          label="课程时长设置"
+          lazy
+          name="11"
+          v-if="permissionList.courseTimerSetting"
+        >
+          <courseTimerSetting v-if="activeIndex == 11" />
+        </el-tab-pane>
+        <el-tab-pane
+          label="商品折扣和声部设置"
+          lazy
+          name="9"
+          v-if="permissionList.discountManage"
+        >
+          <discountManage v-if="activeIndex == 9" />
+        </el-tab-pane>
+        <el-tab-pane
+          label="乐团收费标准"
+          lazy
+          name="3"
+          v-if="permissionList.chargesList"
+        >
+          <chargesList v-if="activeIndex == 3" />
+        </el-tab-pane>
+        <el-tab-pane
+          label="乐团课程费用"
+          lazy
+          name="10"
+          v-if="permissionList.musicCourseFee"
+        >
+          <musicCourseFee v-if="activeIndex == 10" />
+        </el-tab-pane>
+        <el-tab-pane
+          label="乐团训练模板"
+          lazy
+          name="4"
+          v-if="permissionList.jobTemplateSetting"
+        >
+          <jobTemplateSetting v-if="activeIndex == 4" />
+        </el-tab-pane>
+        <el-tab-pane
+          label="热词标签"
+          lazy
+          name="5"
+          v-if="permissionList.errorManager"
+        >
+          <errorManager v-if="activeIndex == 5" />
+        </el-tab-pane>
+      </tab-router>
     </div>
   </div>
 </template>

+ 211 - 127
src/views/categroyManager/productSystem/memberFeeSet.vue

@@ -2,9 +2,12 @@
   <div class="m-container">
     <h2>
       <div class="squrt"></div>
-      云练收费标准
+      云练收费标准
     </h2>
-    <div class="m-core"  v-if="(tableList.length>0 || rules.page>1)&&contextFlag">
+    <div
+      class="m-core"
+      v-if="(tableList.length > 0 || rules.page > 1) && contextFlag"
+    >
       <save-form
         :inline="true"
         class="searchForm"
@@ -19,7 +22,7 @@
           <el-input
             v-model.trim="searchForm.search"
             clearable
-            placeholder="云练名称"
+            placeholder="云练名称"
           ></el-input>
         </el-form-item>
         <el-form-item prop="organId">
@@ -63,7 +66,7 @@
         <el-table-column
           align="left"
           prop="rankName"
-          label="云练名称"
+          label="云练名称"
           width="90px"
         ></el-table-column>
         <el-table-column align="left" prop="type" label="月收费">
@@ -83,7 +86,10 @@
                 }}
               </p>
               <div>经营报表</div>
-              <div>确认收入: {{ scope.row.memberFeeSetting.incomeMonthFee | hasMoneyFormat }}</div>
+              <div>
+                确认收入:
+                {{ scope.row.memberFeeSetting.incomeMonthFee | hasMoneyFormat }}
+              </div>
             </div>
           </template>
         </el-table-column>
@@ -112,7 +118,12 @@
               </p>
 
               <div>经营报表</div>
-              <div>确认收入: {{ scope.row.memberFeeSetting.incomeQuarterlyFee | hasMoneyFormat }}</div>
+              <div>
+                确认收入:
+                {{
+                  scope.row.memberFeeSetting.incomeQuarterlyFee | hasMoneyFormat
+                }}
+              </div>
             </div>
           </template>
         </el-table-column>
@@ -140,7 +151,12 @@
                 }}
               </p>
               <div>经营报表</div>
-              <div>确认收入: {{ scope.row.memberFeeSetting.incomeHalfYearFee | hasMoneyFormat }}</div>
+              <div>
+                确认收入:
+                {{
+                  scope.row.memberFeeSetting.incomeHalfYearFee | hasMoneyFormat
+                }}
+              </div>
             </div>
           </template>
         </el-table-column>
@@ -165,7 +181,10 @@
                 }}
               </p>
               <div>经营报表</div>
-              <div>确认收入: {{ scope.row.memberFeeSetting.incomeYearFee | hasMoneyFormat }}</div>
+              <div>
+                确认收入:
+                {{ scope.row.memberFeeSetting.incomeYearFee | hasMoneyFormat }}
+              </div>
             </div>
           </template>
         </el-table-column>
@@ -207,7 +226,13 @@
         @pagination="getList"
       />
     </div>
-    <emptyPage @submit="addFee" title='云教练收费标准' btnTitle='新建云教练收费标准' :context='context' v-if="!(tableList.length>0 || rules.page>1)&&contextFlag" />
+    <emptyPage
+      @submit="addFee"
+      title="云练习收费标准"
+      btnTitle="新建云练习收费标准"
+      :context="context"
+      v-if="!(tableList.length > 0 || rules.page > 1) && contextFlag"
+    />
     <el-dialog
       class="dialog"
       :title="title"
@@ -244,9 +269,9 @@
             </el-select>
           </el-form-item>
           <el-form-item
-            label="云练名称"
+            label="云练名称"
             prop="memberRankSettingId"
-            :rules="[{ required: true, message: '请选择云练' }]"
+            :rules="[{ required: true, message: '请选择云练' }]"
             :label-width="formLabelWidth"
           >
             <el-select
@@ -255,7 +280,7 @@
               filterable
               v-model.trim="form.memberRankSettingId"
               clearable
-              placeholder="请选择云练"
+              placeholder="请选择云练"
             >
               <el-option
                 v-for="(item, index) in remberList"
@@ -277,9 +302,9 @@
               { required: true, message: '请输入月收费团购价' },
               {
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入大于0的正整数',
+                message: '请输入大于0的正整数'
               },
-              { validator: validateMonth, trigger: 'blur' },
+              { validator: validateMonth, trigger: 'blur' }
             ]"
             :label-width="formLabelWidth"
             :placeholder="monthRule"
@@ -289,7 +314,9 @@
               :disabled="addDisabled"
               :placeholder="monthRule"
             >
-              <template slot="append">元/月</template>
+              <template slot="append"
+                >元/月</template
+              >
             </el-input>
           </el-form-item>
           <el-form-item
@@ -299,18 +326,20 @@
               { required: true, message: '请输入月收费零售价' },
               {
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入大于0的正整数',
+                message: '请输入大于0的正整数'
               },
-              { validator: validateMonth, trigger: 'blur' },
+              { validator: validateMonth, trigger: 'blur' }
             ]"
             :label-width="formLabelWidth"
           >
             <el-input
               v-model="form.currentMonthFee"
               :disabled="addDisabled"
-                    :placeholder="monthRule"
+              :placeholder="monthRule"
             >
-              <template slot="append">元/月</template>
+              <template slot="append"
+                >元/月</template
+              >
             </el-input>
           </el-form-item>
           <el-form-item
@@ -320,9 +349,9 @@
               { required: true, message: '请输入月收费原价' },
               {
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入大于0的正整数',
+                message: '请输入大于0的正整数'
               },
-              { validator: validateMonth, trigger: 'blur' },
+              { validator: validateMonth, trigger: 'blur' }
             ]"
             :label-width="formLabelWidth"
           >
@@ -331,7 +360,9 @@
               :disabled="addDisabled"
               :placeholder="monthRule"
             >
-              <template slot="append">元/月</template>
+              <template slot="append"
+                >元/月</template
+              >
             </el-input>
           </el-form-item>
           <el-form-item
@@ -341,9 +372,9 @@
               { required: true, message: '请输入月度经营报表确认收入' },
               {
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入大于0的正整数',
+                message: '请输入大于0的正整数'
               },
-              { validator: validateMonthIncome, trigger: 'blur' },
+              { validator: validateMonthIncome, trigger: 'blur' }
             ]"
             :label-width="formLabelWidth"
           >
@@ -352,7 +383,9 @@
               :disabled="addDisabled"
               :placeholder="monthRuleIncome"
             >
-              <template slot="append">元</template>
+              <template slot="append"
+                >元</template
+              >
             </el-input>
           </el-form-item>
         </div>
@@ -367,9 +400,9 @@
               { required: true, message: '请输入季度收费团购价' },
               {
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入大于0的正整数',
+                message: '请输入大于0的正整数'
               },
-              { validator: validateQuarterly, trigger: 'blur' },
+              { validator: validateQuarterly, trigger: 'blur' }
             ]"
             :label-width="formLabelWidth"
           >
@@ -378,7 +411,9 @@
               :disabled="addDisabled"
               :placeholder="quarterlyRule"
             >
-              <template slot="append">元/季度</template>
+              <template slot="append"
+                >元/季度</template
+              >
             </el-input>
           </el-form-item>
           <el-form-item
@@ -388,19 +423,20 @@
               { required: true, message: '请输入季度收费零售价' },
               {
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入大于0的正整数',
+                message: '请输入大于0的正整数'
               },
-              { validator: validateQuarterly, trigger: 'blur' },
+              { validator: validateQuarterly, trigger: 'blur' }
             ]"
             :label-width="formLabelWidth"
-
           >
             <el-input
               v-model="form.currentQuarterlyFee"
               :disabled="addDisabled"
               :placeholder="quarterlyRule"
             >
-              <template slot="append">元/季度</template>
+              <template slot="append"
+                >元/季度</template
+              >
             </el-input>
           </el-form-item>
           <el-form-item
@@ -410,9 +446,9 @@
               { required: true, message: '请输入季度收费原价' },
               {
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入大于0的正整数',
+                message: '请输入大于0的正整数'
               },
-              { validator: validateQuarterly, trigger: 'blur' },
+              { validator: validateQuarterly, trigger: 'blur' }
             ]"
             :label-width="formLabelWidth"
           >
@@ -421,7 +457,9 @@
               :disabled="addDisabled"
               :placeholder="quarterlyRule"
             >
-              <template slot="append">元/季度</template>
+              <template slot="append"
+                >元/季度</template
+              >
             </el-input>
           </el-form-item>
           <el-form-item
@@ -431,9 +469,9 @@
               { required: true, message: '请输入季度经营报表确认收入' },
               {
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入大于0的正整数',
+                message: '请输入大于0的正整数'
               },
-              { validator: validateQuarterlyIncome, trigger: 'blur' },
+              { validator: validateQuarterlyIncome, trigger: 'blur' }
             ]"
             :label-width="formLabelWidth"
           >
@@ -442,7 +480,9 @@
               :disabled="addDisabled"
               :placeholder="quarterlyRuleIncome"
             >
-              <template slot="append">元</template>
+              <template slot="append"
+                >元</template
+              >
             </el-input>
           </el-form-item>
         </div>
@@ -457,9 +497,9 @@
               { required: true, message: '请输入半年收费团购价' },
               {
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入大于0的正整数',
+                message: '请输入大于0的正整数'
               },
-              { validator: validateHalfYear, trigger: 'blur' },
+              { validator: validateHalfYear, trigger: 'blur' }
             ]"
             :label-width="formLabelWidth"
           >
@@ -468,7 +508,9 @@
               :disabled="addDisabled"
               :placeholder="halfYearRule"
             >
-              <template slot="append">元/半年</template>
+              <template slot="append"
+                >元/半年</template
+              >
             </el-input>
           </el-form-item>
           <el-form-item
@@ -478,9 +520,9 @@
               { required: true, message: '请输入半年收费零售价' },
               {
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入大于0的正整数',
+                message: '请输入大于0的正整数'
               },
-                { validator: validateHalfYear, trigger: 'blur' },
+              { validator: validateHalfYear, trigger: 'blur' }
             ]"
             :label-width="formLabelWidth"
           >
@@ -489,7 +531,9 @@
               :disabled="addDisabled"
               :placeholder="halfYearRule"
             >
-              <template slot="append">元/半年</template>
+              <template slot="append"
+                >元/半年</template
+              >
             </el-input>
           </el-form-item>
           <el-form-item
@@ -499,9 +543,9 @@
               { required: true, message: '请输入半年收费原价' },
               {
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入大于0的正整数',
+                message: '请输入大于0的正整数'
               },
-              { validator: validateHalfYear, trigger: 'blur' },
+              { validator: validateHalfYear, trigger: 'blur' }
             ]"
             :label-width="formLabelWidth"
           >
@@ -510,7 +554,9 @@
               :disabled="addDisabled"
               :placeholder="halfYearRule"
             >
-              <template slot="append">元/半年</template>
+              <template slot="append"
+                >元/半年</template
+              >
             </el-input>
           </el-form-item>
           <el-form-item
@@ -520,9 +566,9 @@
               { required: true, message: '请输入半年经营报表确认收入' },
               {
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入大于0的正整数',
+                message: '请输入大于0的正整数'
               },
-              { validator: validateHalfYearIncome, trigger: 'blur' },
+              { validator: validateHalfYearIncome, trigger: 'blur' }
             ]"
             :label-width="formLabelWidth"
           >
@@ -531,13 +577,15 @@
               :disabled="addDisabled"
               :placeholder="halfYearRuleIncome"
             >
-              <template slot="append">元</template>
+              <template slot="append"
+                >元</template
+              >
             </el-input>
           </el-form-item>
         </div>
 
         <div class="lineTitle">年度收费</div>
-        
+
         <div class="wrap">
           <el-form-item
             prop="groupPurchaseYearFee"
@@ -546,9 +594,9 @@
               { required: true, message: '请输入年收费团购价' },
               {
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入大于0的正整数',
+                message: '请输入大于0的正整数'
               },
-              { validator: validateYear, trigger: 'blur' },
+              { validator: validateYear, trigger: 'blur' }
             ]"
             :label-width="formLabelWidth"
           >
@@ -557,7 +605,9 @@
               :disabled="addDisabled"
               :placeholder="yearRule"
             >
-              <template slot="append">元/年</template>
+              <template slot="append"
+                >元/年</template
+              >
             </el-input>
           </el-form-item>
           <el-form-item
@@ -567,9 +617,9 @@
               { required: true, message: '请输入年收费零售价' },
               {
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入大于0的正整数',
+                message: '请输入大于0的正整数'
               },
-              { validator: validateYear, trigger: 'blur' },
+              { validator: validateYear, trigger: 'blur' }
             ]"
             :label-width="formLabelWidth"
           >
@@ -578,7 +628,9 @@
               :disabled="addDisabled"
               :placeholder="yearRule"
             >
-              <template slot="append">元/年</template>
+              <template slot="append"
+                >元/年</template
+              >
             </el-input>
           </el-form-item>
           <el-form-item
@@ -588,9 +640,9 @@
               { required: true, message: '请输入年收费原价' },
               {
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入大于0的正整数',
+                message: '请输入大于0的正整数'
               },
-              { validator: validateYear, trigger: 'blur' },
+              { validator: validateYear, trigger: 'blur' }
             ]"
             :label-width="formLabelWidth"
           >
@@ -599,7 +651,9 @@
               :disabled="addDisabled"
               :placeholder="yearRule"
             >
-              <template slot="append">元/年</template>
+              <template slot="append"
+                >元/年</template
+              >
             </el-input>
           </el-form-item>
           <el-form-item
@@ -609,9 +663,9 @@
               { required: true, message: '请输入年度经营报表确认收入' },
               {
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入大于0的正整数',
+                message: '请输入大于0的正整数'
               },
-              { validator: validateYearIncome, trigger: 'blur' },
+              { validator: validateYearIncome, trigger: 'blur' }
             ]"
             :label-width="formLabelWidth"
           >
@@ -620,7 +674,9 @@
               :disabled="addDisabled"
               :placeholder="yearRuleIncome"
             >
-              <template slot="append">元</template>
+              <template slot="append"
+                >元</template
+              >
             </el-input>
           </el-form-item>
         </div>
@@ -641,32 +697,32 @@ import {
   addMemberOrganizationFeeMapper,
   getmemberRankOrganizationFeeMapper,
   getmemberOrganizationFeeMapperkDetail,
-  resetMemberOrganizationFeeMapper,
+  resetMemberOrganizationFeeMapper
 } from "./api";
 import { sysConfigList } from "@/api/generalSettings";
 import pagination from "@/components/Pagination/index";
-import emptyPage from '@/components/emptyPage'
+import emptyPage from "@/components/emptyPage";
 // numeral(this.list.form[index].courseTotalMinuties * this.list.form[index].unitPrice).format('0,0.00')
 export default {
-  components: { pagination,emptyPage },
+  components: { pagination, emptyPage },
   name: "memberFeeSet",
   data() {
     return {
       searchForm: {
         search: null,
-        organId: null,
+        organId: null
       },
       rules: {
         // 分页规则
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50], // 选择限制显示条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
       tableList: [],
       addDisabled: false,
       title: "新增收费标准",
-      pageType: 'create',
+      pageType: "create",
       formLabelWidth: "120px",
       form: {
         currentDayFee: "",
@@ -684,10 +740,10 @@ export default {
         groupPurchaseYearFee: "",
         organId: "",
         memberRankSettingId: "",
-        incomeMonthFee: '', // 月经营报表
+        incomeMonthFee: "", // 月经营报表
         incomeQuarterlyFee: "", // 季度经营报表
         incomeHalfYearFee: "", // 半年经营报表
-        incomeYearFee: "", // 年经营报表
+        incomeYearFee: "" // 年经营报表
       },
       branchStatus: false,
       remberList: [],
@@ -699,10 +755,11 @@ export default {
         minHalfYearFee: null,
         maxHalfYearFee: null,
         minYearFee: null,
-        maxYearFee: null,
+        maxYearFee: null
       },
-      context:'云教练收费标准,可根据各分部的实际情况为分部制定不同的售价标准,设置完成后,各分部为学员创建云教练缴费时默认以此处设置的价格向学员收费。',
-      contextFlag:false
+      context:
+        "云练习收费标准,可根据各分部的实际情况为分部制定不同的售价标准,设置完成后,各分部为学员创建云练习缴费时默认以此处设置的价格向学员收费。",
+      contextFlag: false
     };
   },
   async mounted() {
@@ -712,8 +769,8 @@ export default {
       const res = await getAllmemberRank();
       this.remberList = res.data;
       // 默认选中第一个
-      if(this.pageType == 'create' && this.remberList.length > 0) {
-        this.form.memberRankSettingId = this.remberList[0].id
+      if (this.pageType == "create" && this.remberList.length > 0) {
+        this.form.memberRankSettingId = this.remberList[0].id;
       }
     } catch {}
 
@@ -725,7 +782,7 @@ export default {
       try {
         const res = await sysConfigList({ group: "DEFAULT" });
         const paramName = "cloud_price_range";
-        res.data.forEach((item) => {
+        res.data.forEach(item => {
           if (item.paramName == paramName) {
             const itemValue = item.paranValue
               ? JSON.parse(item.paranValue)
@@ -757,7 +814,7 @@ export default {
         const res = await getmemberRankOrganizationFeeMapper({
           ...this.searchForm,
           rows: this.rules.limit,
-          page: this.rules.page,
+          page: this.rules.page
         });
         this.contextFlag = true;
         this.tableList = res.data.rows;
@@ -774,12 +831,12 @@ export default {
         originalHalfYearFee: "",
         originalMonthFee: "",
         originalYearFee: "",
-        incomeMonthFee: '', // 月经营报表
+        incomeMonthFee: "", // 月经营报表
         incomeQuarterlyFee: "", // 季度经营报表
         incomeHalfYearFee: "", // 半年经营报表
         incomeYearFee: "", // 年经营报表
         organId: "",
-        memberRankSettingId: "",
+        memberRankSettingId: ""
       }),
         this.$refs[ruleForm].resetFields();
     },
@@ -810,7 +867,7 @@ export default {
         ...obj,
         organId: row.organId,
         memberRankSettingId: row.memberRankSettingId,
-        outId: row.id,
+        outId: row.id
       };
       this.branchStatus = true;
     },
@@ -820,7 +877,7 @@ export default {
         this.branchStatus = false;
         return;
       }
-      this.$refs.ruleForm.validate(async (flag) => {
+      this.$refs.ruleForm.validate(async flag => {
         if (flag) {
           if (this.pageType == "update") {
             try {
@@ -828,7 +885,7 @@ export default {
                 memberFeeSetting: { ...this.form },
                 organId: this.form.organId,
                 memberRankSettingId: this.form.memberRankSettingId,
-                id: this.form.outId,
+                id: this.form.outId
               });
               this.$message.success("修改成功");
               this.branchStatus = false;
@@ -841,7 +898,7 @@ export default {
               const res = await addMemberOrganizationFeeMapper({
                 memberFeeSetting: { ...this.form },
                 organId: this.form.organId,
-                memberRankSettingId: this.form.memberRankSettingId,
+                memberRankSettingId: this.form.memberRankSettingId
               });
               this.$message.success("新建成功");
               this.branchStatus = false;
@@ -851,10 +908,12 @@ export default {
         }
       });
     },
-    validateMonthIncome(rule, value, callback){
+    validateMonthIncome(rule, value, callback) {
       const one = Number(value);
       const min = Number(this.rulesForm.minMonthFee);
-      const max = this.form.groupPurchaseMonthFee ? Number(this.form.groupPurchaseMonthFee) : Number(this.rulesForm.maxMonthFee)
+      const max = this.form.groupPurchaseMonthFee
+        ? Number(this.form.groupPurchaseMonthFee)
+        : Number(this.rulesForm.maxMonthFee);
       if (one >= min && one <= max) {
         return callback();
       }
@@ -867,12 +926,14 @@ export default {
       if (one >= min && one <= max) {
         return callback();
       }
-      return callback(new Error(`月度云练定价应在${min}-${max}之间`));
+      return callback(new Error(`月度云练定价应在${min}-${max}之间`));
     },
     validateQuarterlyIncome(rule, value, callback) {
       const one = Number(value);
       const min = Number(this.rulesForm.minQuarterlyFee);
-      const max = this.form.groupPurchaseQuarterlyFee ? Number(this.form.groupPurchaseQuarterlyFee) : Number(this.rulesForm.maxQuarterlyFee);
+      const max = this.form.groupPurchaseQuarterlyFee
+        ? Number(this.form.groupPurchaseQuarterlyFee)
+        : Number(this.rulesForm.maxQuarterlyFee);
       if (one >= min && one <= max) {
         return callback();
       }
@@ -885,12 +946,14 @@ export default {
       if (one >= min && one <= max) {
         return callback();
       }
-      return callback(new Error(`季度云练定价应在${min}-${max}之间`));
+      return callback(new Error(`季度云练定价应在${min}-${max}之间`));
     },
     validateHalfYearIncome(rule, value, callback) {
       const one = Number(value);
       const min = Number(this.rulesForm.minHalfYearFee);
-      const max = this.form.groupPurchaseHalfYearFee ? Number(this.form.groupPurchaseHalfYearFee) : Number(this.rulesForm.maxHalfYearFee);
+      const max = this.form.groupPurchaseHalfYearFee
+        ? Number(this.form.groupPurchaseHalfYearFee)
+        : Number(this.rulesForm.maxHalfYearFee);
       if (one >= min && one <= max) {
         return callback();
       }
@@ -903,12 +966,14 @@ export default {
       if (one >= min && one <= max) {
         return callback();
       }
-      return callback(new Error(`半年云练定价应在${min}-${max}之间`));
+      return callback(new Error(`半年云练定价应在${min}-${max}之间`));
     },
     validateYearIncome(rule, value, callback) {
       const one = Number(value);
       const min = Number(this.rulesForm.minYearFee);
-      const max = this.form.groupPurchaseYearFee ? Number(this.form.groupPurchaseYearFee) : Number(this.rulesForm.maxYearFee);
+      const max = this.form.groupPurchaseYearFee
+        ? Number(this.form.groupPurchaseYearFee)
+        : Number(this.rulesForm.maxYearFee);
       if (one >= min && one <= max) {
         return callback();
       }
@@ -921,42 +986,62 @@ export default {
       if (one >= min && one <= max) {
         return callback();
       }
-      return callback(new Error(`年度云练定价应在${min}-${max}之间`));
-    },
+      return callback(new Error(`年度云练定价应在${min}-${max}之间`));
+    }
   },
   watch: {
     branchStatus(val) {
       if (!val) {
         this.onFormClose("ruleForm");
       }
-    },
+    }
   },
   computed: {
     monthRuleIncome() {
-      return `${this.rulesForm.minMonthFee}-${this.form.groupPurchaseMonthFee ? this.form.groupPurchaseMonthFee : this.rulesForm.maxMonthFee}`;
+      return `${this.rulesForm.minMonthFee}-${
+        this.form.groupPurchaseMonthFee
+          ? this.form.groupPurchaseMonthFee
+          : this.rulesForm.maxMonthFee
+      }`;
     },
     monthRule() {
       return `${this.rulesForm.minMonthFee}-${this.rulesForm.maxMonthFee}`;
     },
     quarterlyRuleIncome() {
-      return `${this.rulesForm.minQuarterlyFee}-${this.form.groupPurchaseQuarterlyFee ? this.form.groupPurchaseQuarterlyFee : this.rulesForm.maxQuarterlyFee}`;
+      return `${this.rulesForm.minQuarterlyFee}-${
+        this.form.groupPurchaseQuarterlyFee
+          ? this.form.groupPurchaseQuarterlyFee
+          : this.rulesForm.maxQuarterlyFee
+      }`;
     },
     quarterlyRule() {
-      return `${this.rulesForm.minQuarterlyFee}-${this.rulesForm.maxQuarterlyFee}`;
+      return `${this.rulesForm.minQuarterlyFee}-${
+        this.rulesForm.maxQuarterlyFee
+      }`;
     },
     halfYearRuleIncome() {
-      return `${this.rulesForm.minHalfYearFee}-${this.form.groupPurchaseHalfYearFee ? this.form.groupPurchaseHalfYearFee : this.rulesForm.maxHalfYearFee}`;
+      return `${this.rulesForm.minHalfYearFee}-${
+        this.form.groupPurchaseHalfYearFee
+          ? this.form.groupPurchaseHalfYearFee
+          : this.rulesForm.maxHalfYearFee
+      }`;
     },
     halfYearRule() {
-      return `${this.rulesForm.minHalfYearFee}-${this.rulesForm.maxHalfYearFee}`;
+      return `${this.rulesForm.minHalfYearFee}-${
+        this.rulesForm.maxHalfYearFee
+      }`;
     },
     yearRuleIncome() {
-      return `${this.rulesForm.minYearFee}-${this.form.groupPurchaseYearFee ? this.form.groupPurchaseYearFee : this.rulesForm.maxYearFee}`;
+      return `${this.rulesForm.minYearFee}-${
+        this.form.groupPurchaseYearFee
+          ? this.form.groupPurchaseYearFee
+          : this.rulesForm.maxYearFee
+      }`;
     },
     yearRule() {
       return `${this.rulesForm.minYearFee}-${this.rulesForm.maxYearFee}`;
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="scss" scoped>
@@ -965,13 +1050,13 @@ export default {
     width: 120px !important;
   }
 }
-.dialog{
+.dialog {
   ::v-deep {
-    .el-dialog{
+    .el-dialog {
       border-radius: 4px;
       overflow: hidden;
     }
-    .el-dialog__header{
+    .el-dialog__header {
       display: flex;
       flex-shrink: 0;
       justify-content: space-between;
@@ -980,49 +1065,49 @@ export default {
       width: 100%;
       height: 48px;
       padding: 0 20px;
-      .el-dialog__title{
+      .el-dialog__title {
         font-weight: 500;
         font-size: 16px;
       }
-      .el-dialog__headerbtn{
+      .el-dialog__headerbtn {
         position: relative;
         top: 0;
         right: 0;
-        &::before{
+        &::before {
           position: absolute;
           display: block;
           box-sizing: border-box;
           background-color: transparent;
           border-radius: 50%;
-          transition: background-color .1s cubic-bezier(0,0,1,1);
+          transition: background-color 0.1s cubic-bezier(0, 0, 1, 1);
           content: "";
           top: 50%;
           left: 50%;
           width: 20px;
           height: 20px;
-          transform: translate(-50%,-50%);
+          transform: translate(-50%, -50%);
         }
       }
-      .el-dialog__headerbtn:hover{
-        &::before{
-          background-color: rgba(0,0,0, .5);
+      .el-dialog__headerbtn:hover {
+        &::before {
+          background-color: rgba(0, 0, 0, 0.5);
         }
       }
-      .el-dialog__close{
+      .el-dialog__close {
         position: relative;
       }
     }
-    .el-dialog__body{
+    .el-dialog__body {
       padding: 10px 20px;
     }
-    .el-input-group__append{
+    .el-input-group__append {
       padding: 0 10px;
     }
   }
 }
-.elForm{
+.elForm {
   ::v-deep {
-    .el-form-item__label{
+    .el-form-item__label {
       max-width: 100%;
       color: #4e5969;
       font-size: 14px;
@@ -1033,21 +1118,20 @@ export default {
     }
   }
 }
-.lineTitle{
-  background-color: rgba(247,247,247,1);
+.lineTitle {
+  background-color: rgba(247, 247, 247, 1);
   padding: 10px;
   border-radius: 4px;
   color: #333;
 }
-.wrap{
+.wrap {
   display: flex;
   align-items: center;
-  ::v-deep .el-form-item:not(:last-child){
+  ::v-deep .el-form-item:not(:last-child) {
     margin-right: 20px;
-    
   }
-  .el-form-item{
-      width: 180px;
-    }
+  .el-form-item {
+    width: 180px;
+  }
 }
 </style>

+ 124 - 102
src/views/categroyManager/specialSetup/cloudTeacherFee.vue

@@ -1,11 +1,21 @@
 <template>
-  <div class='m-container'>
+  <div class="m-container">
     <!-- <h2>收费类型设置</h2> -->
     <div class="m-core">
-      <el-button class='newBand' type="primary" v-if="$helpers.permission('organizationCloudTeacherFee/add')"
-           @click="openTypes('create')">添加</el-button>
+      <el-button
+        class="newBand"
+        type="primary"
+        v-if="$helpers.permission('organizationCloudTeacherFee/add')"
+        @click="openTypes('create')"
+        >添加</el-button
+      >
 
-      <save-form :inline="true" @submit="onSearch" :saveKey="'cloudTeacherFee'" :model="searchForm">
+      <save-form
+        :inline="true"
+        @submit="onSearch"
+        :saveKey="'cloudTeacherFee'"
+        :model="searchForm"
+      >
         <el-form-item>
           <el-select
             placeholder="请选择分部"
@@ -26,56 +36,56 @@
       </save-form>
       <!-- 列表 -->
       <div class="tableWrap">
-        <el-table :data='tableList'
-                  :header-cell-style="{background:'#EDEEF0',color:'#444'}">
-          <el-table-column align='center'
-                           prop="organName"
-                           label="分部">
+        <el-table
+          :data="tableList"
+          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+        >
+          <el-table-column align="center" prop="organName" label="分部">
           </el-table-column>
-          <el-table-column align='center'
-                           prop="price"
-                           label="云教练价格(元)">
+          <el-table-column align="center" prop="price" label="云练习价格(元)">
             <template slot-scope="scope">
               {{ scope.row.price | moneyFormat }}
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                           prop="price">
+          <el-table-column align="center" prop="price">
             <template #header>
-              云练<sup>+</sup>价格(元)
+              云练<sup>+</sup>价格(元)
             </template>
             <template slot-scope="scope">
               {{ scope.row.plusPrice | moneyFormat }}
             </template>
           </el-table-column>
-          <el-table-column align='center'
-                          v-if="$helpers.permission('organizationCloudTeacherFee/update')"
-                           label="操作">
+          <el-table-column
+            align="center"
+            v-if="$helpers.permission('organizationCloudTeacherFee/update')"
+            label="操作"
+          >
             <template slot-scope="scope">
-              <el-button @click="openTypes('update', scope.row)" type="text">修改</el-button>
+              <el-button @click="openTypes('update', scope.row)" type="text"
+                >修改</el-button
+              >
             </template>
           </el-table-column>
         </el-table>
         <pagination
-        saveKey='cloudTeacherFee'
-        sync
-        :total.sync="pageInfo.total"
-                    :page.sync="pageInfo.page"
-                    :limit.sync="pageInfo.limit"
-                    :page-sizes="pageInfo.page_size"
-                    @pagination="getList" />
+          saveKey="cloudTeacherFee"
+          sync
+          :total.sync="pageInfo.total"
+          :page.sync="pageInfo.page"
+          :limit.sync="pageInfo.limit"
+          :page-sizes="pageInfo.page_size"
+          @pagination="getList"
+        />
       </div>
     </div>
-    <el-dialog :title="formTitle[formActionTitle]"
-               :visible.sync="typeStatus"
-               @close="onFormClose('ruleForm')"
-               width="500px">
-      <el-form :model="form"
-               :rules="rules"
-               ref="ruleForm">
-        <el-form-item label="分部"
-                      prop="organId"
-                      :label-width="formLabelWidth">
+    <el-dialog
+      :title="formTitle[formActionTitle]"
+      :visible.sync="typeStatus"
+      @close="onFormClose('ruleForm')"
+      width="500px"
+    >
+      <el-form :model="form" :rules="rules" ref="ruleForm">
+        <el-form-item label="分部" prop="organId" :label-width="formLabelWidth">
           <el-select
             placeholder="请选择分部"
             v-model="form.organId"
@@ -89,62 +99,71 @@
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="云教练价格"
-                      prop="price"
-                      :label-width="formLabelWidth">
-          <el-input v-model.number="form.price"
-                    placeholder="请输入价格"
-                    type="number"
-                    autocomplete="off"></el-input>
+        <el-form-item
+          label="云练习价格"
+          prop="price"
+          :label-width="formLabelWidth"
+        >
+          <el-input
+            v-model.number="form.price"
+            placeholder="请输入价格"
+            type="number"
+            autocomplete="off"
+          ></el-input>
         </el-form-item>
-        <el-form-item prop="plusPrice"
-                      :label-width="formLabelWidth">
+        <el-form-item prop="plusPrice" :label-width="formLabelWidth">
           <template #label>
-            云练<sup>+</sup>价格
+            云练<sup>+</sup>价格
           </template>
-          <el-input v-model.number="form.plusPrice"
-                    placeholder="请输入价格"
-                    type="number"
-                    autocomplete="off"></el-input>
+          <el-input
+            v-model.number="form.plusPrice"
+            placeholder="请输入价格"
+            type="number"
+            autocomplete="off"
+          ></el-input>
         </el-form-item>
       </el-form>
-      <span slot="footer"
-            class="dialog-footer">
+      <span slot="footer" class="dialog-footer">
         <el-button @click="typeStatus = false">取 消</el-button>
-        <el-button type="primary"
-                   @click="onTypesSubmit('ruleForm')">确 定</el-button>
+        <el-button type="primary" @click="onTypesSubmit('ruleForm')"
+          >确 定</el-button
+        >
       </span>
     </el-dialog>
   </div>
 </template>
 <script>
-import pagination from '@/components/Pagination/index'
-import { organizationCloudTeacherFeeQueryPage, organizationCloudTeacherFeeAdd, organizationCloudTeacherFeeUpdate } from '@/api/specialSetting'
+import pagination from "@/components/Pagination/index";
+import {
+  organizationCloudTeacherFeeQueryPage,
+  organizationCloudTeacherFeeAdd,
+  organizationCloudTeacherFeeUpdate
+} from "@/api/specialSetting";
 export default {
-  name: 'typesManager',
+  name: "typesManager",
   components: { pagination },
-  data () {
+  data() {
     return {
       tableList: [],
       searchForm: {
-        organId: null,
+        organId: null
       },
-      formActionTitle: 'create',
+      formActionTitle: "create",
       formTitle: {
-        create: '添加分部云教练价格',
-        update: '修改分部云教练价格'
+        create: "添加分部云练习价格",
+        update: "修改分部云练习价格"
       },
       typeStatus: false, // 添加教学点
-      formLabelWidth: '120px',
+      formLabelWidth: "120px",
       form: {
         organId: null, //
         price: null,
-        plusPrice: null,
+        plusPrice: null
       },
       rules: {
-        organId: [{ required: true, message: '请选择分部', trigger: 'change' }],
-        price: [{ required: true, message: '请输入价格', trigger: 'blur' }],
-        plusPrice: [{ required: true, message: '请输入价格', trigger: 'blur' }],
+        organId: [{ required: true, message: "请选择分部", trigger: "change" }],
+        price: [{ required: true, message: "请输入价格", trigger: "blur" }],
+        plusPrice: [{ required: true, message: "请输入价格", trigger: "blur" }]
       },
       pageInfo: {
         // 分页规则
@@ -153,86 +172,89 @@ export default {
         total: 0, // 总条数
         page_size: [10, 20, 40, 50] // 选择限制显示条数
       }
-    }
+    };
   },
-  mounted () {
+  mounted() {
     // 获取分部
     this.$store.dispatch("setBranchs");
-    this.getList()
+    this.getList();
   },
   methods: {
     onSearch() {
       this.pageInfo.page = 1;
       this.getList();
     },
-    onTypesSubmit (formName) { // 添加数据
-      this.$refs[formName].validate((valid) => {
+    onTypesSubmit(formName) {
+      // 添加数据
+      this.$refs[formName].validate(valid => {
         if (valid) {
-          if (this.formActionTitle == 'create') {
-            if (this.form.id) { // 判断有没有Id,如果有则删除
-              delete this.form.id
+          if (this.formActionTitle == "create") {
+            if (this.form.id) {
+              // 判断有没有Id,如果有则删除
+              delete this.form.id;
             }
             organizationCloudTeacherFeeAdd(this.form).then(res => {
-              this.messageTips('添加', res)
-            })
-          } else if (this.formActionTitle == 'update') {
+              this.messageTips("添加", res);
+            });
+          } else if (this.formActionTitle == "update") {
             organizationCloudTeacherFeeUpdate(this.form).then(res => {
-              this.messageTips('修改', res)
-            })
+              this.messageTips("修改", res);
+            });
           }
         } else {
           return false;
         }
-      })
+      });
     },
-    messageTips (title, res) {
+    messageTips(title, res) {
       if (res.code == 200) {
-        this.$message.success(title + '成功')
-        this.typeStatus = false
-        this.getList()
+        this.$message.success(title + "成功");
+        this.typeStatus = false;
+        this.getList();
       } else {
-        this.$message.error(res.msg)
+        this.$message.error(res.msg);
       }
     },
-    async getList () {
+    async getList() {
       try {
         let res = await organizationCloudTeacherFeeQueryPage({
           ...this.searchForm,
           rows: this.pageInfo.limit,
           page: this.pageInfo.page
-        })
-        let result = res.data
-        this.tableList = result.rows
-        this.pageInfo.total = result.total
+        });
+        let result = res.data;
+        this.tableList = result.rows;
+        this.pageInfo.total = result.total;
       } catch {
         //
       }
     },
-    openTypes (type, row) {
-      this.typeStatus = true
-      this.formActionTitle = type
+    openTypes(type, row) {
+      this.typeStatus = true;
+      this.formActionTitle = type;
       // 修改的时候赋值
-      if (type == 'update') {
+      if (type == "update") {
         this.$nextTick(() => {
           this.form = {
             id: row.id,
             organId: row.organId,
             price: row.price,
             plusPrice: row.plusPrice
-          }
-        })
+          };
+        });
       }
     },
-    onFormClose (formName) { // 关闭弹窗重置验证
+    onFormClose(formName) {
+      // 关闭弹窗重置验证
       this.form = {
         organId: null, // 训练模块名称
         price: null,
         plusPrice: null
-      }
-      this.$refs[formName].resetFields()
-    },
+      };
+      this.$refs[formName].resetFields();
+    }
   }
-}
+};
 </script>
 <style lang="scss" scoped>
 ::v-deep .el-date-editor.el-input {

+ 16 - 13
src/views/couponManager/couponGiveList.vue

@@ -100,13 +100,16 @@
     </div>
     <!--  -->
     <el-dialog
-      title="激活云练"
+      title="激活云练"
       :visible.sync="couponDetailVisible"
       width="1000px"
       append-to-body
     >
       <div class="chioseWrap">
-        <p>您将为以下 <span>{{tableList.length}}</span>位学员激活云教练,激活金额<span></span>元</p>
+        <p>
+          您将为以下 <span>{{ tableList.length }}</span
+          >位学员激活云练习,激活金额<span></span>元
+        </p>
         <couponGiveChiose :tableList="tableList" />
       </div>
 
@@ -137,9 +140,9 @@ export default {
         couponName: null,
         paymentOrderId: null,
         usageStatus: null,
-        organId: null,
+        organId: null
       },
-      couponDetailVisible:false,
+      couponDetailVisible: false,
       tableList: [],
       organList: [],
       rules: {
@@ -147,8 +150,8 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50], // 选择限制显示条数
-      },
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
+      }
     };
   },
   //生命周期 - 创建完成(可以访问当前this实例)
@@ -168,7 +171,7 @@ export default {
         const res = await getSysCouponCode({
           ...this.searchForm,
           page: this.rules.page,
-          rows: this.rules.limit,
+          rows: this.rules.limit
         });
         this.tableList = res.data.rows;
         this.rules.total = res.data.total;
@@ -188,23 +191,23 @@ export default {
     gotoOrder(id) {
       this.$router.push({
         name: "income",
-        params: { orderNo: id },
+        params: { orderNo: id }
       });
-    },
+    }
   },
   filters: {
     usageStatus(val) {
       let obj = {
         0: "未使用",
         1: "已使用",
-        2: "已过期",
+        2: "已过期"
       };
       return obj[val];
-    },
-  },
+    }
+  }
 };
 </script>
-<style lang='scss' scoped>
+<style lang="scss" scoped>
 .chioseWrap {
   height: 500px;
   overflow-y: scroll;

+ 2 - 2
src/views/courseCredentials/index.vue

@@ -268,7 +268,7 @@
               <span v-if="scope.row.practiceFlag">
                 网管课
               </span>
-              <span v-if="scope.row.memberFlag">云练</span>
+              <span v-if="scope.row.memberFlag">云练</span>
 
               <span
                 v-if="
@@ -299,7 +299,7 @@
               <span v-if="scope.row.givePracticeFlag">
                 网管课
               </span>
-              <span v-if="scope.row.giveMemberFlag">云练</span>
+              <span v-if="scope.row.giveMemberFlag">云练</span>
 
               <span
                 v-if="

+ 28 - 23
src/views/courseRulersManager/components/studentAttRules.vue

@@ -2,7 +2,6 @@
   <div class="m-container">
     <div>
       <el-form :inline="true" :model="form" ref="form">
-
         <el-alert
           style="margin: 20px 0 40px"
           title="学员请假规则设置"
@@ -17,8 +16,8 @@
               {
                 required: false,
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入正确的时间',
-              },
+                message: '请输入正确的时间'
+              }
             ]"
           >
             课程开始前
@@ -51,13 +50,15 @@
               {
                 required: false,
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入正确的时间',
-              },
+                message: '请输入正确的时间'
+              }
             ]"
           >
             老师可在开课
             <el-input v-model="form['41']" placeholder="请输入时间">
-              <template slot="append">小时</template>
+              <template slot="append"
+                >小时</template
+              >
             </el-input>
             前调整VIP、网管课程。
           </el-form-item>
@@ -77,13 +78,15 @@
               {
                 required: false,
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入正确的分钟数',
-              },
+                message: '请输入正确的分钟数'
+              }
             ]"
           >
-            学员每周使用云练时长小于
+            学员每周使用云练时长小于
             <el-input v-model="form['106']" placeholder="请输入分钟数">
-              <template slot="append">分钟</template> </el-input
+              <template slot="append"
+                >分钟</template
+              > </el-input
             >时需要回访。
           </el-form-item>
         </el-row>
@@ -94,13 +97,15 @@
               {
                 required: false,
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入正确的次数',
-              },
+                message: '请输入正确的次数'
+              }
             ]"
           >
-            学员每周使用云练练习次数小于
+            学员每周使用云练练习次数小于
             <el-input v-model="form['107']" placeholder="请输入次数">
-              <template slot="append">次</template> </el-input
+              <template slot="append"
+                >次</template
+              > </el-input
             >时需要回访。
           </el-form-item>
         </el-row>
@@ -133,7 +138,7 @@ export default {
     return {
       form: {},
       questionList: [],
-      rulesVisiable: false,
+      rulesVisiable: false
     };
   },
   async mounted() {
@@ -150,7 +155,7 @@ export default {
     async getPlatformRules() {
       try {
         const res = await sysConfigList({ group: "COURSE" });
-        res.data.forEach((item) => {
+        res.data.forEach(item => {
           // this.form[item.paramName] = item.paranValue
           this.$set(this.form, item.id, item.paranValue);
         });
@@ -163,7 +168,7 @@ export default {
     async getInstitutionRules() {
       try {
         const res = await getSysTenantConfig({ group: "COURSE" });
-        res.data.forEach((item) => {
+        res.data.forEach(item => {
           // this.form[item.paramName] = item.paranValue
           this.$set(this.form, item.id, item.paranValue);
         });
@@ -174,13 +179,13 @@ export default {
       }
     },
     savePlatform() {
-      this.$refs.form.validate(async (valid) => {
+      this.$refs.form.validate(async valid => {
         if (valid) {
           let param = [];
           for (let i in this.form) {
             param.push({
               id: i,
-              paranValue: this.form[i],
+              paranValue: this.form[i]
             });
           }
           try {
@@ -194,13 +199,13 @@ export default {
       });
     },
     saveInstitution() {
-      this.$refs.form.validate(async (valid) => {
+      this.$refs.form.validate(async valid => {
         if (valid) {
           let param = [];
           for (let i in this.form) {
             param.push({
               id: i,
-              paranValue: this.form[i],
+              paranValue: this.form[i]
             });
           }
           try {
@@ -219,8 +224,8 @@ export default {
       } else {
         this.saveInstitution();
       }
-    },
-  },
+    }
+  }
 };
 </script>
 

+ 47 - 33
src/views/courseRulersManager/components/teamRules.vue

@@ -16,13 +16,15 @@
               {
                 required: false,
                 pattern: /^\d+$/,
-                message: '请输入正确的人数',
-              },
+                message: '请输入正确的人数'
+              }
             ]"
           >
             乐团预报名人数达到
             <el-input v-model="form['132']" placeholder="请输入人数">
-              <template slot="append">人</template>
+              <template slot="append"
+                >人</template
+              >
             </el-input>
             时,可将乐团状态变更为创建缴费中。
           </el-form-item>
@@ -41,13 +43,15 @@
               {
                 required: false,
                 pattern: /^\d+$/,
-                message: '请输入正确的人数',
-              },
+                message: '请输入正确的人数'
+              }
             ]"
           >
             报名缴费阶段乐团若未合并学员,缴费人数达到
             <el-input v-model="form['134']" placeholder="请输入人数">
-              <template slot="append">人</template>
+              <template slot="append"
+                >人</template
+              >
             </el-input>
             时,可确认开团。
           </el-form-item>
@@ -59,13 +63,15 @@
               {
                 required: false,
                 pattern: /^\d+$/,
-                message: '请输入正确的人数',
-              },
+                message: '请输入正确的人数'
+              }
             ]"
           >
             报名缴费阶段乐团若合并学员,缴费人数达到
             <el-input v-model="form['135']" placeholder="请输入人数">
-              <template slot="append">人</template>
+              <template slot="append"
+                >人</template
+              >
             </el-input>
             时,可确认开团。
           </el-form-item>
@@ -85,13 +91,15 @@
               {
                 required: false,
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入正确的天数',
-              },
+                message: '请输入正确的天数'
+              }
             ]"
           >
             订单支付
             <el-input v-model="form['76']" placeholder="请输入天数">
-              <template slot="append">天</template>
+              <template slot="append"
+                >天</template
+              >
             </el-input>
             后自动更新为已收货,不设置时立即更新。
           </el-form-item>
@@ -109,19 +117,21 @@
             :rules="[
               {
                 required: true,
-                message: '请输入人数',
+                message: '请输入人数'
               },
               {
                 required: false,
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入正确的人数',
-              },
+                message: '请输入正确的人数'
+              }
             ]"
           >
             <span style="color: #f56c6c; margin-right: 4px">*</span>
             乐团各声部不购买团练宝或乐器就可以直接入团的人数
             <el-input v-model="form[136]" placeholder="请输入人数">
-              <template slot="append">人</template> </el-input
+              <template slot="append"
+                >人</template
+              > </el-input
             >。
           </el-form-item>
         </el-row>
@@ -132,18 +142,20 @@
               {
                 required: true,
                 message: '请输入分钟数',
-                trigger: 'change',
+                trigger: 'change'
               },
               {
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入正确的分钟数',
-              },
+                message: '请输入正确的分钟数'
+              }
             ]"
           >
             <span style="color: #f56c6c; margin-right: 4px">*</span>
             会员团每学期赠送
             <el-input v-model="form[133]" placeholder="请输入分钟数">
-              <template slot="append">分钟</template>
+              <template slot="append"
+                >分钟</template
+              >
             </el-input>
             课程。
           </el-form-item>
@@ -155,13 +167,15 @@
               {
                 required: false,
                 pattern: /^[1-9][0-9]*$/,
-                message: '请输入正确的天数',
-              },
+                message: '请输入正确的天数'
+              }
             ]"
           >
             每学期结束前
             <el-input v-model="form[99]">
-              <template slot="append">天</template>
+              <template slot="append"
+                >天</template
+              >
             </el-input>
             提醒教务老师安排下学期课程。
           </el-form-item>
@@ -177,7 +191,7 @@
               },
             ]"
           >
-            学员云练有效期结束前
+            学员云练有效期结束前
             <el-input v-model="form[104]" >
               <template slot="append">天</template>
             </el-input>
@@ -214,7 +228,7 @@ export default {
     return {
       form: {},
       questionList: [],
-      rulesVisiable: false,
+      rulesVisiable: false
     };
   },
   async mounted() {
@@ -242,7 +256,7 @@ export default {
     async getPlatformRules() {
       try {
         const res = await sysConfigList({ group: "MUSIC" });
-        res.data.forEach((item) => {
+        res.data.forEach(item => {
           // this.form[item.paramName] = item.paranValue
           this.$set(this.form, item.id, item.paranValue);
         });
@@ -255,7 +269,7 @@ export default {
     async getInstitutionRules() {
       try {
         const res = await getSysTenantConfig({ group: "MUSIC" });
-        res.data.forEach((item) => {
+        res.data.forEach(item => {
           // this.form[item.paramName] = item.paranValue
           this.$set(this.form, item.id, item.paranValue);
         });
@@ -266,13 +280,13 @@ export default {
       }
     },
     savePlatform() {
-      this.$refs.form.validate(async (valid) => {
+      this.$refs.form.validate(async valid => {
         if (valid) {
           let param = [];
           for (let i in this.form) {
             param.push({
               id: i,
-              paranValue: this.form[i],
+              paranValue: this.form[i]
             });
           }
           try {
@@ -286,13 +300,13 @@ export default {
       });
     },
     saveInstitution() {
-      this.$refs.form.validate(async (valid) => {
+      this.$refs.form.validate(async valid => {
         if (valid) {
           let param = [];
           for (let i in this.form) {
             param.push({
               id: i,
-              paranValue: this.form[i],
+              paranValue: this.form[i]
             });
           }
           try {
@@ -311,8 +325,8 @@ export default {
       } else {
         this.saveInstitution();
       }
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="scss" scoped>

+ 23 - 24
src/views/dictionaryManager/index.vue

@@ -3,7 +3,7 @@
   <div class="m-container">
     <h2>
       <div class="squrt"></div>
-      云练功能字典
+      云练功能字典
     </h2>
     <div class="m-core">
       <save-form
@@ -11,15 +11,14 @@
         :model="searchForm"
         @submit="search"
         ref="searchForm"
-
       >
-      <!--        @reset="onReSet" -->
+        <!--        @reset="onReSet" -->
         <el-form-item>
           <el-input
             v-model.trim="searchForm.search"
             clearable
             @keyup.enter.native="
-              (e) => {
+              e => {
                 e.target.blur();
                 $refs.searchForm.save();
                 search();
@@ -146,13 +145,13 @@ import {
   getMemberPrivilegesItem,
   addMemberPrivilegesItem,
   resetMemberPrivilegesItem,
-  deleteMemberPrivilegesItem,
+  deleteMemberPrivilegesItem
 } from "./api";
 export default {
   data() {
     return {
       searchForm: {
-        search: null,
+        search: null
       },
       branchStatus: false,
       tableList: [],
@@ -160,7 +159,7 @@ export default {
         value: "id",
         label: "name",
         children: "children",
-        checkStrictly: true,
+        checkStrictly: true
       },
       cascaderList: [], // 父级元素
       form: {
@@ -168,16 +167,16 @@ export default {
         name: null,
         parentId: null,
         code: null,
-        desc: null,
+        desc: null
       },
       formLabelWidth: "100px",
       title: "",
       rules: {
         name: [{ required: true, message: "请输入功能", trigger: "blur" }],
         desc: [{ required: true, message: "请输入功能描述", trigger: "blur" }],
-        code: [{ required: true, message: "请输入功能标识", trigger: "blur" }],
+        code: [{ required: true, message: "请输入功能标识", trigger: "blur" }]
       },
-      disctionStatus: "create",
+      disctionStatus: "create"
     };
   },
   //生命周期 - 创建完成(可以访问当前this实例)
@@ -228,7 +227,7 @@ export default {
         name: row.name,
         parentId: row.parentId,
         code: row.code,
-        desc: row.desc,
+        desc: row.desc
       };
       this.branchStatus = true;
     },
@@ -236,7 +235,7 @@ export default {
       this.$confirm(`是否删除该功能`, "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning",
+        type: "warning"
       })
         .then(async () => {
           try {
@@ -248,7 +247,7 @@ export default {
         .catch(() => {});
     },
     onBranchSubmit() {
-      this.$refs["ruleForm"].validate(async (valid) => {
+      this.$refs["ruleForm"].validate(async valid => {
         if (valid) {
           let form = this.form;
 
@@ -256,9 +255,9 @@ export default {
             try {
               const res = await addMemberPrivilegesItem({
                 name: form.name,
-                parentId: form.parentId?.pop()||0,
+                parentId: form.parentId?.pop() || 0,
                 code: form.code,
-                desc: form.desc,
+                desc: form.desc
               });
               this.$message.success("添加成功");
               this.getList();
@@ -268,7 +267,7 @@ export default {
             }
           } else if (this.disctionStatus == "update") {
             if (typeof form.parentId === "object") {
-              form.parentId = form.parentId.pop()||0;
+              form.parentId = form.parentId.pop() || 0;
             }
             try {
               const res = await resetMemberPrivilegesItem(form);
@@ -286,14 +285,14 @@ export default {
     },
     setTableData(result) {
       let list = [];
-      list = result.map((res) => {
+      list = result.map(res => {
         let tempList = {};
         tempList = {
           id: res.id,
           name: res.name,
           parentId: res.parentId,
           code: res.code,
-          desc: res.desc,
+          desc: res.desc
         };
         if (res.memberPrivilegesItems && res.memberPrivilegesItems.length > 0) {
           tempList.children = this.setTableData(res.memberPrivilegesItems);
@@ -309,7 +308,7 @@ export default {
         name: null,
         parentId: null,
         code: null,
-        desc: null,
+        desc: null
       };
       this.$refs[formName].resetFields();
     },
@@ -333,12 +332,12 @@ export default {
         ) {
           array.push({
             ...treeData[i],
-            children: this.handleTreeData(treeData[i].children, searchValue),
+            children: this.handleTreeData(treeData[i].children, searchValue)
           });
         }
       }
       return array;
-    },
+    }
   },
   computed: {
     treeTable() {
@@ -350,11 +349,11 @@ export default {
       } else {
         return this.tableList;
       }
-    },
-  },
+    }
+  }
 };
 </script>
-<style lang='scss' scoped>
+<style lang="scss" scoped>
 .btnList {
   margin-bottom: 20px;
 }

+ 3 - 4
src/views/main/api.js

@@ -167,7 +167,7 @@ export const getMusicGroupPerformance = data =>
     params: data
   });
 
-// 获取云练首页数据汇总
+// 获取云练首页数据汇总
 export const getCloudStudyStudentOverView = data =>
   request2({
     url: "/api-web/studentManage/getCloudStudyStudentOverView",
@@ -239,12 +239,11 @@ export const cloudTeacherSumDetail = data =>
     method: "post",
     data
   });
-  
+
 // 获取3端经营数据
 export const multiDataSourceHomeStatsSummerIncome = data =>
   request2({
     url: "/api-web/multiDataSourceHomeStats/summerIncome",
     method: "post",
-    data,
+    data
   });
-  

+ 5 - 5
src/views/main/cloudDate/exerciseDuration.vue

@@ -170,8 +170,8 @@ import histogram from "v-charts/lib/histogram.common";
 import { getNowDateAndMonday, getNowDateAndSunday } from "@/utils/utils";
 import { cloudTeacherNum } from "../api";
 let nowTime = dayjs()
-            .subtract(1, "day")
-            .format("YYYY-MM-DD")
+  .subtract(1, "day")
+  .format("YYYY-MM-DD");
 export const getTimes = (times, keys = []) => {
   if (times && times.length) {
     return {
@@ -188,7 +188,7 @@ export default {
     return {
       searchForm: {
         dates: [
-        dayjs()
+          dayjs()
             .subtract(1, "day")
             .format("YYYY-MM-DD"),
           dayjs()
@@ -215,7 +215,7 @@ export default {
         this,
         {
           url: "/api-web/export/managerDownload",
-          fileName: "云练练习时长.xls",
+          fileName: "云练练习时长.xls",
           method: "post",
           params: {
             exportEnum: "EXPORT_CLOUD_TEACHER_SUM",
@@ -224,7 +224,7 @@ export default {
             }
           }
         },
-        "您确定导出云练练习时长?"
+        "您确定导出云练练习时长?"
       );
     },
     onDetail(row) {

+ 2 - 2
src/views/main/cloudDate/exerciseDurationDetail.vue

@@ -235,7 +235,7 @@ export default {
         this,
         {
           url: "/api-web/export/managerDownload",
-          fileName: "云练练习时长.xls",
+          fileName: "云练练习时长.xls",
           method: "post",
           params: {
             exportEnum: "EXPORT_CLOUD_TEACHER_SUM_DETAIL",
@@ -245,7 +245,7 @@ export default {
             }
           }
         },
-        "您确定导出云练练习时长?"
+        "您确定导出云练练习时长?"
       );
     },
     search() {

+ 29 - 20
src/views/main/cloudDate/organDate.vue

@@ -7,7 +7,6 @@
           type="primary"
           v-permission="'export/organStudentOverView'"
           @click="organDateExport"
-
           >导出</el-button
         >
         <el-button
@@ -27,7 +26,7 @@
           @sort-change="sortChang"
           :default-sort="{
             prop: 'cloudStudyUseStudentDuty',
-            order: 'descending',
+            order: 'descending'
           }"
           sortable="custom"
         >
@@ -66,7 +65,12 @@
               </div>
             </template>
           </el-table-column>
-          <el-table-column align="center" prop="targetNum" label="目标人数" v-if="tenantId ==1">
+          <el-table-column
+            align="center"
+            prop="targetNum"
+            label="目标人数"
+            v-if="tenantId == 1"
+          >
             <template slot="header" slot-scope="slot">
               <div class="titleCell">
                 <span>目标人数</span>
@@ -119,7 +123,7 @@
               <div class="titleCell">
                 <span>使用人数</span>
                 <el-tooltip placement="top" popper-class="mTooltip">
-                  <div slot="content">截止目前使用云练的总人数</div>
+                  <div slot="content">截止目前使用云练的总人数</div>
                   <i
                     class="el-icon-question micon el-tooltip"
                     style="
@@ -176,7 +180,7 @@
               <div class="titleCell">
                 <span>新增使用人数</span>
                 <el-tooltip placement="top" popper-class="mTooltip">
-                  <div slot="content">当日第一次使用云练的人数</div>
+                  <div slot="content">当日第一次使用云练的人数</div>
                   <i
                     class="el-icon-question micon el-tooltip"
                     style="
@@ -297,7 +301,12 @@
             </template>
           </el-table-column> -->
 
-          <el-table-column align="center" prop="studentId" label="操作" fixed="right">
+          <el-table-column
+            align="center"
+            prop="studentId"
+            label="操作"
+            fixed="right"
+          >
             <template slot-scope="scope">
               <div>
                 <auth auths="/organDateDetail">
@@ -330,7 +339,7 @@ import qs from "qs";
 export default {
   components: {
     headers,
-    pagination,
+    pagination
   },
   data() {
     return {
@@ -341,16 +350,16 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50], // 选择限制显示条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
       searchList: {
-        cloudStudyUseStudentDuty: "DESC",
+        cloudStudyUseStudentDuty: "DESC"
       },
-      tenantId:''
+      tenantId: ""
     };
   },
   mounted() {
-   this.tenantId =  this.$helpers.tenantId
+    this.tenantId = this.$helpers.tenantId;
     this.getList();
   },
   methods: {
@@ -361,7 +370,7 @@ export default {
           page: 1,
           rows: 10,
           ...this.searchList,
-          organIds: this.organId,
+          organIds: this.organId
         });
         this.tableList = res.data.rows;
         this.rules.total = res.data.total;
@@ -373,7 +382,7 @@ export default {
     sortChang(val) {
       const dates = {
         ascending: "ASC",
-        descending: "DESC",
+        descending: "DESC"
       };
       this.searchList = {};
       if (val.prop && val.order) {
@@ -386,7 +395,7 @@ export default {
       // 跳转到分部数据详情 row.organId
       this.$router.push({
         name: "organDateDetail",
-        params: { organId: row.organId },
+        params: { organId: row.organId }
       });
     },
     changeOrgan(val) {
@@ -400,20 +409,20 @@ export default {
         this,
         {
           url: "/api-web/export/organStudentOverView",
-          fileName: "分部云练数据.xls",
+          fileName: "分部云练数据.xls",
           method: "post",
-          params: qs.stringify(params),
+          params: qs.stringify(params)
         },
-        "您确定导出分部云练数据列表?"
+        "您确定导出分部云练数据列表?"
       );
     },
 
     gotoAll() {
       this.$router.push({
-        name: "organRankDetail",
+        name: "organRankDetail"
       });
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="scss" scoped>

+ 34 - 17
src/views/main/cloudDate/organDateDetail.vue

@@ -4,7 +4,7 @@
     <el-page-header
       @back="goback"
       style="padding-bottom: 30px"
-      content="分部云练数据详情"
+      content="分部云练数据详情"
     >
     </el-page-header>
 
@@ -93,7 +93,7 @@
                 <span>使用人数</span>
                 <el-tooltip placement="top" popper-class="mTooltip">
                   <div slot="content">
-                    指导老师关联的截止目前使用云练的总人数
+                    指导老师关联的截止目前使用云练的总人数
                   </div>
                   <i
                     class="el-icon-question micon el-tooltip"
@@ -143,7 +143,9 @@
               <div class="titleCell">
                 <span>付费会员数</span>
                 <el-tooltip placement="top" popper-class="mTooltip">
-                  <div slot="content">指导老师关联的生效中、待生效付费会员总数</div>
+                  <div slot="content">
+                    指导老师关联的生效中、待生效付费会员总数
+                  </div>
                   <i
                     class="el-icon-question micon el-tooltip"
                     style="
@@ -238,7 +240,7 @@ export default {
   data() {
     return {
       searchForm: {
-        organId: null,
+        organId: null
       },
 
       tableList: [],
@@ -248,11 +250,11 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50], // 选择限制显示条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
       studentVisible: false,
       noTeacherStudentNum: 0,
-      specialList: [],
+      specialList: []
     };
   },
   //生命周期 - 创建完成(可以访问当前this实例)
@@ -262,9 +264,24 @@ export default {
     // 获取分部
     await this.$store.dispatch("setBranchs");
     const arr = [
-      36, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 54, 55, 56,
+      36,
+      39,
+      41,
+      42,
+      43,
+      44,
+      45,
+      46,
+      47,
+      48,
+      49,
+      50,
+      52,
+      54,
+      55,
+      56
     ];
-    this.specialList = this.selects.branchs.filter((item) => {
+    this.specialList = this.selects.branchs.filter(item => {
       return arr.indexOf(item.id) == -1;
     });
     if (this.$route.params?.organId) {
@@ -282,7 +299,7 @@ export default {
         const res = await queryMemberStudentData({
           organId: this.searchForm.organId,
           page: this.rules.page,
-          rows: this.rules.limit,
+          rows: this.rules.limit
         });
         this.tableList = res.data.rows;
         this.rules.total = res.data.total;
@@ -300,14 +317,14 @@ export default {
     gotoDetail(row) {
       this.$router.push({
         name: "studentList",
-        params: { teacherId: row.teacherId },
+        params: { teacherId: row.teacherId }
       });
       // this.studentVisible = true;
     },
     gotoStudentList() {
       this.$router.push({
         name: "studentList",
-        params: { hasTeacher: "0", organId: this.searchForm.organId },
+        params: { hasTeacher: "0", organId: this.searchForm.organId }
       });
     },
     goback() {
@@ -320,17 +337,17 @@ export default {
         this,
         {
           url: "/api-web/export/organTeacherMemberStudentData",
-          fileName: "分部云练数据详情.xls",
+          fileName: "分部云练数据详情.xls",
           method: "post",
-          params: qs.stringify(params),
+          params: qs.stringify(params)
         },
-        "您确定导出分部云练数据详情列表?"
+        "您确定导出分部云练数据详情列表?"
       );
-    },
-  },
+    }
+  }
 };
 </script>
-<style lang='scss' scoped>
+<style lang="scss" scoped>
 .msg {
   color: red;
   margin-bottom: 20px;

+ 4 - 4
src/views/main/cloudDate/organMemberList.vue

@@ -291,11 +291,11 @@ export default {
         this,
         {
           url: "/api-web/export/now",
-          fileName: "云练数据汇总.xls",
+          fileName: "云练数据汇总.xls",
           method: "post",
           params: { exportEnum: "CLOUD_STUDY_STUDENT_OVER_VIEW" }
         },
-        "您确定导出云练数据汇总?"
+        "您确定导出云练数据汇总?"
       );
     },
     async getList() {
@@ -375,11 +375,11 @@ export default {
     //     this,
     //     {
     //       url: "/api-web/export/organStudentOverView",
-    //       fileName: "分部云练数据.xls",
+    //       fileName: "分部云练数据.xls",
     //       method: "post",
     //       params: qs.stringify(params)
     //     },
-    //     "您确定导出分部云练数据列表?"
+    //     "您确定导出分部云练数据列表?"
     //   );
     // },
 

+ 37 - 20
src/views/main/cloudDate/organRankDetail.vue

@@ -3,7 +3,7 @@
     <el-page-header
       @back="goback"
       style="padding-bottom: 30px"
-      content="分部云练数据"
+      content="分部云练数据"
     >
     </el-page-header>
     <save-form
@@ -41,7 +41,7 @@
         @sort-change="sortChang"
         :default-sort="{
           prop: 'cloudStudyUseStudentDuty',
-          order: 'descending',
+          order: 'descending'
         }"
         sortable="custom"
       >
@@ -134,7 +134,7 @@
             <div class="titleCell">
               <span>使用人数</span>
               <el-tooltip placement="top" popper-class="mTooltip">
-                <div slot="content">截止目前使用云练的总人数</div>
+                <div slot="content">截止目前使用云练的总人数</div>
                 <i
                   class="el-icon-question micon el-tooltip"
                   style="
@@ -187,7 +187,7 @@
             <div class="titleCell">
               <span>新增使用人数</span>
               <el-tooltip placement="top" popper-class="mTooltip">
-                <div slot="content">当日第一次使用云练的人数</div>
+                <div slot="content">当日第一次使用云练的人数</div>
                 <i
                   class="el-icon-question micon el-tooltip"
                   style="
@@ -336,13 +336,13 @@ import { organStudentOverView } from "../api";
 export default {
   components: {
     headers,
-    pagination,
+    pagination
   },
   data() {
     return {
       tableList: [],
       searchList: {
-        cloudStudyUseStudentDuty: "DESC",
+        cloudStudyUseStudentDuty: "DESC"
       },
       searchForm: {},
       rules: {
@@ -350,20 +350,37 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50], // 选择限制显示条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
       date: "",
       specialList: [],
-      tenantId: "",
+      tenantId: ""
     };
   },
   async mounted() {
-    this.date = dayjs(new Date()).subtract(1, "day").format("YYYY-MM-DD");
+    this.date = dayjs(new Date())
+      .subtract(1, "day")
+      .format("YYYY-MM-DD");
     await this.$store.dispatch("setBranchs");
     const arr = [
-      36, 39, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 54, 55, 56,
+      36,
+      39,
+      41,
+      42,
+      43,
+      44,
+      45,
+      46,
+      47,
+      48,
+      49,
+      50,
+      52,
+      54,
+      55,
+      56
     ];
-    this.specialList = this.selects.branchs.filter((item) => {
+    this.specialList = this.selects.branchs.filter(item => {
       return arr.indexOf(item.id) == -1;
     });
     if (this.$route.params?.organId) {
@@ -379,7 +396,7 @@ export default {
           ...this.searchList,
           rows: 999,
           page: 1,
-          organIds: this.searchForm.organId,
+          organIds: this.searchForm.organId
         });
         this.tableList = res.data.rows;
         this.rules.total = res.data.total;
@@ -401,7 +418,7 @@ export default {
           } else {
             return time.getTime() >= Date.now() - 24 * 60 * 60 * 1000;
           }
-        },
+        }
       };
     },
     changeValue(val) {
@@ -412,7 +429,7 @@ export default {
     sortChang(val) {
       const dates = {
         ascending: "ASC",
-        descending: "DESC",
+        descending: "DESC"
       };
       this.searchList = {};
       if (val.prop && val.order) {
@@ -427,11 +444,11 @@ export default {
         this,
         {
           url: "/api-web/export/cloudStudyStudentOverView",
-          fileName: "分部云练数据排行.xls",
+          fileName: "分部云练数据排行.xls",
           method: "post",
-          params: qs.stringify(params),
+          params: qs.stringify(params)
         },
-        "您确定导出分部云练数据排行?"
+        "您确定导出分部云练数据排行?"
       );
     },
     goback() {
@@ -442,10 +459,10 @@ export default {
       // 跳转到分部数据详情 row.organId
       this.$router.push({
         name: "organDateDetail",
-        params: { organId: row.organId },
+        params: { organId: row.organId }
       });
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="scss" scoped>

+ 19 - 23
src/views/main/cloudDate/organRanking.vue

@@ -5,7 +5,6 @@
       <div class="wrap">
         <el-button
           type="primary"
-
           @click="rankingExport"
           v-permission="'export/cloudStudyStudentOverView'"
           >导出</el-button
@@ -13,7 +12,6 @@
         <div class="chioseBox">
           <el-date-picker
             v-model="date"
-
             type="date"
             value-format="yyyy-MM-dd"
             format="yyyy-MM-dd"
@@ -42,7 +40,6 @@
           :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
           :data="tableList"
           @sort-change="sortChang"
-
         >
           <el-table-column align="center" prop="index" label="排名">
           </el-table-column>
@@ -164,7 +161,7 @@
               <div class="titleCell">
                 <span>当日新增使用人数</span>
                 <el-tooltip placement="top" popper-class="mTooltip">
-                  <div slot="content">当日第一次使用云练的人数</div>
+                  <div slot="content">当日第一次使用云练的人数</div>
                   <i
                     class="el-icon-question micon el-tooltip"
                     style="
@@ -189,7 +186,7 @@
               <div class="titleCell">
                 <span>使用人数占比</span>
                 <el-tooltip placement="top" popper-class="mTooltip">
-                  <div slot="content">云练当日使用人数 / 学员总数</div>
+                  <div slot="content">云练当日使用人数 / 学员总数</div>
                   <i
                     class="el-icon-question micon el-tooltip"
                     style="
@@ -319,7 +316,7 @@
                 <span>活跃度</span>
                 <el-tooltip placement="top" popper-class="mTooltip">
                   <div slot="content">
-                    当日使用过云练的会员占比(生效中会员,含试用)
+                    当日使用过云练的会员占比(生效中会员,含试用)
                   </div>
                   <i
                     class="el-icon-question micon el-tooltip"
@@ -358,26 +355,26 @@ import { indexStudentOverView } from "../api";
 export default {
   components: {
     headers,
-    pagination,
+    pagination
   },
   data() {
     return {
       tableList: [],
-      searchList: {
-
-      },
+      searchList: {},
       rules: {
         // 分页规则
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50], // 选择限制显示条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
-      date: "",
+      date: ""
     };
   },
   mounted() {
-    this.date = dayjs(new Date()).subtract(1, "day").format("YYYY-MM-DD");
+    this.date = dayjs(new Date())
+      .subtract(1, "day")
+      .format("YYYY-MM-DD");
     this.getList();
   },
   methods: {
@@ -387,7 +384,7 @@ export default {
           ...this.searchList,
           date: this.date,
           rows: this.rules.limit,
-          page: this.rules.page,
+          page: this.rules.page
         });
         this.tableList = res.data.rows;
         this.rules.total = res.data.total;
@@ -406,7 +403,7 @@ export default {
           } else {
             return time.getTime() >= Date.now() - 24 * 60 * 60 * 1000;
           }
-        },
+        }
       };
     },
     changeValue(val) {
@@ -417,7 +414,7 @@ export default {
     sortChang(val) {
       const dates = {
         ascending: "ASC",
-        descending: "DESC",
+        descending: "DESC"
       };
       this.searchList = {};
       if (val.prop && val.order) {
@@ -432,19 +429,19 @@ export default {
         this,
         {
           url: "/api-web/export/cloudStudyStudentOverView",
-          fileName: "分部云练数据排行.xls",
+          fileName: "分部云练数据排行.xls",
           method: "post",
-          params: qs.stringify(params),
+          params: qs.stringify(params)
         },
-        "您确定导出分部云练数据排行?"
+        "您确定导出分部云练数据排行?"
       );
     },
     gotoDetail() {
       this.$router.push({
-        name: "organRankDetail",
+        name: "organRankDetail"
       });
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="scss" scoped>
@@ -472,4 +469,3 @@ export default {
   margin-bottom: 20px;
 }
 </style>
-

+ 6 - 7
src/views/main/constant.js

@@ -79,13 +79,12 @@ export const descs = {
   eVipStudentNum: "如果是试用会员又是付费会员,则不算试用会员数",
   cloudStudyLivelyStudentNum:
     "过去四周内有三周及以上每周训练时长超过60分钟的学员人数",
-  newCloudStudyStudentNum: "第一次使用云练的人数",
+  newCloudStudyStudentNum: "第一次使用云练的人数",
   cloudStudyTodayUseStudentNum: "今日有练习记录的学员人数",
   // "cloudStudyUseStudentNum":'累计使用的总人数',
   totalStudentNum: "进行中、暂停乐团的在读学员总数",
-  againBuyRate:
-    "会员人数中,有多次云教练付费订单的学员数占比",
-  buyRate: "在读学员中云教练生效或待激活学员占比",
+  againBuyRate: "会员人数中,有多次云练习付费订单的学员数占比",
+  buyRate: "在读学员中云练习生效或待激活学员占比",
   waitActivateVipStudentNum: "待激活学员人数",
   effectiveVipStudentNum: "在读学员中会员生效人数",
   vipStudentRate: "会员人数/在读人数",
@@ -128,15 +127,15 @@ export const errorType = {
       // ...dates
     }
   },
-  SCHOOL_PATROL:{
+  SCHOOL_PATROL: {
     name: "学校巡堂异常",
     isError: true,
     url: "/schoolPatrol",
     permission: "/schoolPatrol",
     always: true,
     query: {
-      handleStatus: 'false',
-      evaluateStatus:"UNQUALIFIED"
+      handleStatus: "false",
+      evaluateStatus: "UNQUALIFIED"
     }
   },
   MUSIC_PATROL_ITEM: {

+ 1 - 1
src/views/main/index.vue

@@ -26,7 +26,7 @@
         <!-- <el-tab-pane
           v-if="permission('/cloudDate')"
           lazy
-          label="云练数据"
+          label="云练数据"
           name="cloudDate"
         >
           <cloudDate v-if="activeKey === 'cloudDate'" />

+ 43 - 35
src/views/platformManager/cloudTrafficPackage/index.vue

@@ -2,7 +2,7 @@
   <div class="m-container">
     <h2>
       <div class="squrt"></div>
-      云练流量包
+      云练流量包
     </h2>
     <save-form
       :inline="true"
@@ -10,31 +10,41 @@
       ref="searchForm"
       @submit="search"
       @reset="reset"
-
       :saveKey="'platformProductManager'"
       :model.sync="searchForm"
     >
       <el-form-item>
         <el-select
-            v-model.trim="searchForm.minuteUp"
-            clearable
-            filterable
-            placeholder="请选择分钟数"
-          >
-            <el-option v-for="min in minuteList" :label="min" :value="min" :key="min"></el-option>
-          </el-select>
+          v-model.trim="searchForm.minuteUp"
+          clearable
+          filterable
+          placeholder="请选择分钟数"
+        >
+          <el-option
+            v-for="min in minuteList"
+            :label="min"
+            :value="min"
+            :key="min"
+          ></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  style="margin-bottom: 20px;" type="primary" v-permission="'cloudRoomFlowConfig/add'" @click="openCloudPackage('create')" icon="el-icon-plus">新增流量包</el-button>
+    <el-button
+      style="margin-bottom: 20px;"
+      type="primary"
+      v-permission="'cloudRoomFlowConfig/add'"
+      @click="openCloudPackage('create')"
+      icon="el-icon-plus"
+      >新增流量包</el-button
+    >
     <!-- 列表 -->
     <div class="tableWrap">
       <el-table
         :data="tableList"
-
         :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
       >
         <el-table-column align="center" prop="id" label="流量包编号">
@@ -54,21 +64,19 @@
               @click="resetCloudPackage(scope.row)"
               v-permission="'cloudRoomFlowConfig/update'"
               type="text"
-
               >修改</el-button
             >
             <el-button
               @click="delCloudPackage(scope.row)"
               v-permission="'cloudRoomFlowConfig/delete'"
               type="text"
-
               >删除</el-button
             >
           </template>
         </el-table-column>
       </el-table>
       <pagination
-       :saveKey="'platformProductManager'"
+        :saveKey="'platformProductManager'"
         sync
         :total.sync="pageInfo.total"
         :page.sync="pageInfo.page"
@@ -92,8 +100,8 @@
         @close="close"
       />
       <div slot="footer" class="dialog-footer">
-        <el-button  @click="courseVisible = false">取 消</el-button>
-        <el-button  type="primary" @click="submitInfo">确 定</el-button>
+        <el-button @click="courseVisible = false">取 消</el-button>
+        <el-button type="primary" @click="submitInfo">确 定</el-button>
       </div>
     </el-dialog>
   </div>
@@ -101,7 +109,7 @@
 <script>
 import pagination from "@/components/Pagination/index";
 import { queryPage, getMinuteUp, cloudDelete } from "./api";
-import cloudModel from './cloudModel'
+import cloudModel from "./cloudModel";
 const initSearch = {
   minuteUp: null
 };
@@ -115,32 +123,32 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50], // 选择限制显示条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
       searchForm: { ...initSearch },
       isAdd: true,
       courseVisible: false,
       activeRow: null,
-      minuteList: [],
+      minuteList: []
     };
   },
   mounted() {
-    this.__init()
+    this.__init();
     this.getList();
   },
   methods: {
     async __init() {
       try {
-        const res = await getMinuteUp()
-        this.minuteList = res.data || []
-      } catch(e) {}
+        const res = await getMinuteUp();
+        this.minuteList = res.data || [];
+      } catch (e) {}
     },
     async getList() {
       try {
         const res = await queryPage({
           ...this.searchForm,
           page: this.pageInfo.page,
-          rows: this.pageInfo.limit,
+          rows: this.pageInfo.limit
         });
         this.pageInfo.total = res.data.total;
         this.tableList = res.data.rows;
@@ -159,7 +167,7 @@ export default {
     resetCloudPackage(row) {
       this.isAdd = false;
       this.activeRow = row;
-      this.pageType = 'update'
+      this.pageType = "update";
       this.courseVisible = true;
     },
     submitInfo() {
@@ -173,23 +181,23 @@ export default {
     openCloudPackage() {
       this.isAdd = true;
       this.activeRow = null;
-      this.pageType = 'create'
+      this.pageType = "create";
       this.courseVisible = true;
     },
     async delCloudPackage(row) {
       this.$confirm("是否删除?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning",
-      }).then( async() => {
-        try{
-         const res =  await cloudDelete({ id:row.id})
-         this.$message.success('删除成功')
-         this.getList()
-        }catch{}
+        type: "warning"
+      }).then(async () => {
+        try {
+          const res = await cloudDelete({ id: row.id });
+          this.$message.success("删除成功");
+          this.getList();
+        } catch {}
       });
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="scss" scoped>

+ 12 - 12
src/views/reportForm/index.vue

@@ -160,7 +160,7 @@
             class="m-wrap"
             v-permission="'export/cloudStudyStudentTrainData'"
           >
-            <div class="title">云练学员统计:</div>
+            <div class="title">云练学员统计:</div>
             <!-- <el-select
               v-model.trim="trainOrganId"
               class="organSelect"
@@ -214,16 +214,16 @@
               style="margin-left: 10px"
               ExportEnum="CLOUD_STUDY_STUDENT_TRAIN_DATA"
               :exportData="exportTrain"
-              fileName="云练学员统计"
+              fileName="云练学员统计"
               errorMsg="请至少选择一个分部"
               :flag="this.trainOrganId.length < 1"
             />
           </div>
-          <!-- 老师使用云练数据
+          <!-- 老师使用云练数据
  -->
 
           <div class="m-wrap" v-permission="'export/teacherCloudTrainingList'">
-            <div class="title">老师使用云练数据:</div>
+            <div class="title">老师使用云练数据:</div>
             <select-all
               v-model.trim="trainTeacherOrganId"
               class="organSelect"
@@ -260,7 +260,7 @@
               style="margin-left: 10px"
               ExportEnum="EXPORT_TEACHER_CLOUD_COURSE_REPORT"
               :exportData="exportTeacherTrain"
-              fileName="老师使用云练数据"
+              fileName="老师使用云练数据"
               errorMsg="请选择分部"
               :flag="!this.trainTeacherOrganId"
               :isDownList="true"
@@ -804,7 +804,7 @@
             />
           </div>
           <div class="m-wrap" v-permission="'export/EXPORT_CLOUD_TEACHER_SUM'">
-            <div class="title">云练统计导出:</div>
+            <div class="title">云练统计导出:</div>
             <select-all
               v-model.trim="yunOrganId"
               class="organSelect"
@@ -839,7 +839,7 @@
               style="margin-left: 10px"
               ExportEnum="EXPORT_CLOUD_TEACHER_SUM"
               :exportData="exporyun"
-              fileName="云练统计导出"
+              fileName="云练统计导出"
               errorMsg="请选择分部"
               :isDownList="true"
             />
@@ -849,7 +849,7 @@
             class="m-wrap"
             v-permission="'export/CLOUD_COACH_ACTIVATION_DETAILS'"
           >
-            <div class="title">云练激活明细:</div>
+            <div class="title">云练激活明细:</div>
             <select-all
               v-model.trim="cloudAcivationOrganId"
               class="organSelect"
@@ -880,7 +880,7 @@
               style="margin-left: 10px"
               ExportEnum="CLOUD_COACH_ACTIVATION_DETAILS"
               :exportData="expotAcivationDetails"
-              fileName="云练激活明细导出"
+              fileName="云练激活明细导出"
               errorMsg="请选择分部"
               :flag="this.cloudAcivationOrganId.length <= 0"
             />
@@ -1324,7 +1324,7 @@
               clearable
             >
               <el-option
-                label="云练用户反馈"
+                label="云练用户反馈"
                 value="CLOUD_TEACHER_FEEDBACK"
               ></el-option>
             </el-select>
@@ -1729,7 +1729,7 @@ export default {
       //   this,
       //   {
       //     url: "/api-web/export/teacherCloudTrainingList",
-      //     fileName: "老师使用云练数据.xls",
+      //     fileName: "老师使用云练数据.xls",
       //     method: "post",
       //     params: qs.stringify({
       //       organIdList: this.trainTeacherOrganId.join(","),
@@ -1737,7 +1737,7 @@ export default {
       //       endTime,
       //     }),
       //   },
-      //   "您确定导出老师使用云练数据?"
+      //   "您确定导出老师使用云练数据?"
       // );
       let obj = {
         organId: this.trainTeacherOrganId.join(","),

+ 3 - 3
src/views/resetTeaming/api.js

@@ -141,7 +141,7 @@ export const getAutoActivationFlag = data =>
     params: data
   });
 
-// 查询未激活云练用户
+// 查询未激活云练用户
 export const queryInactive = data =>
   request2({
     url: "/api-web/cloudTeacherOrder/queryInactive",
@@ -149,7 +149,7 @@ export const queryInactive = data =>
     data
   });
 
-// 设置云练会员时长
+// 设置云练会员时长
 export const cancelInactive = data =>
   request2({
     url: "/api-web/cloudTeacherOrder/cancelInactive",
@@ -157,7 +157,7 @@ export const cancelInactive = data =>
     data
   });
 
-// 激活云练用户
+// 激活云练用户
 export const cloudPay = data =>
   request2({
     url: "/api-web/cloudTeacherOrder/pay",

+ 3 - 3
src/views/resetTeaming/components/giveMemberList.vue

@@ -63,7 +63,7 @@
       v-if="$helpers.permission('cloudTeacherOrder/pay')"
       type="primary"
       style="margin-bottom: 20px"
-      >激活云练</el-button
+      >激活云练</el-button
     >
     <el-button
       type="primary"
@@ -97,7 +97,7 @@
           prop="subjectName"
           label="学员声部"
         ></el-table-column>
-        <el-table-column align="center" prop="type" label="云练类型">
+        <el-table-column align="center" prop="type" label="云练类型">
           <template slot-scope="scope">
             {{ scope.row.type | memberEnumType }}
           </template>
@@ -168,7 +168,7 @@
     </div>
 
     <el-dialog
-      title="激活云练"
+      title="激活云练"
       :visible.sync="giveMemberVisible"
       width="1000px"
       v-if="giveMemberVisible"

+ 2 - 2
src/views/resetTeaming/components/payInfoDetail.vue

@@ -113,7 +113,7 @@
                     <img src="../images/checkIcon2.png" alt="" />
                   </div>
                   <div class="checkRight">
-                    <p>云练</p>
+                    <p>云练</p>
                     <p class="checkSubTitle">乐团训练工具</p>
                   </div>
                   <div class="checTriangle" v-if="member">
@@ -1143,7 +1143,7 @@ export default {
           },
           activity: [...activeList], // 小班课
           course: courseList, // 课程
-          member: memberObj, // 云
+          member: memberObj, // 云练
           memberPrivilegesItemList: [], // 会员基本内容
           repair:
             form.leBaoList?.length > 0 &&

+ 108 - 67
src/views/resetTeaming/components/strudentPayInfo.vue

@@ -14,7 +14,11 @@
       <statistic-item>
         <span>状态</span>
         <span>
-          <p class="status" style="color: #ff6a6a" v-if="info.paymentStatus == 'OPEN'">
+          <p
+            class="status"
+            style="color: #ff6a6a"
+            v-if="info.paymentStatus == 'OPEN'"
+          >
             {{ "已开启" }}
           </p>
           <p
@@ -24,13 +28,25 @@
           >
             {{ "审核中" }}
           </p>
-          <p class="status" style="color: #ff6a6a" v-if="info.paymentStatus == 'NO'">
+          <p
+            class="status"
+            style="color: #ff6a6a"
+            v-if="info.paymentStatus == 'NO'"
+          >
             {{ "未开始" }}
           </p>
-          <p class="status" style="color: #5ccdb8" v-if="info.paymentStatus == 'OVER'">
+          <p
+            class="status"
+            style="color: #5ccdb8"
+            v-if="info.paymentStatus == 'OVER'"
+          >
             {{ "已结束" }}
           </p>
-          <p class="status" style="color: #5ccdb8" v-if="info.paymentStatus == 'REJECT'">
+          <p
+            class="status"
+            style="color: #5ccdb8"
+            v-if="info.paymentStatus == 'REJECT'"
+          >
             {{ "已拒绝" }}
           </p>
         </span>
@@ -114,7 +130,7 @@
           <el-input
             v-model.trim="searchForm.search"
             @keyup.enter.native="
-              (e) => {
+              e => {
                 e.target.blur();
                 $refs.searchForm.save();
                 search();
@@ -230,7 +246,11 @@
           :data="tableList"
           @selection-change="handleSelectionChange"
         >
-          <el-table-column type="selection" :selectable="checkSelect" width="55">
+          <el-table-column
+            type="selection"
+            :selectable="checkSelect"
+            width="55"
+          >
           </el-table-column>
           <el-table-column type="expand">
             <template slot-scope="props">
@@ -238,7 +258,7 @@
                 <el-form-item label="乐团课金额">
                   <span>{{ props.row.courseAmount | moneyFormat }}元</span>
                 </el-form-item>
-                <el-form-item label="云练金额">
+                <el-form-item label="云练金额">
                   <span>{{ props.row.cloudAmount | moneyFormat }}元</span>
                 </el-form-item>
                 <el-form-item label="乐保金额">
@@ -278,7 +298,10 @@
           <el-table-column align="center" label="学员状态">
             <template slot-scope="scope">
               <div v-if="scope.row.studentRegistration">
-                {{ scope.row.studentRegistration.musicGroupStatus | studentTeamStatus }}
+                {{
+                  scope.row.studentRegistration.musicGroupStatus
+                    | studentTeamStatus
+                }}
               </div>
             </template>
           </el-table-column>
@@ -468,7 +491,11 @@
           align="center"
           label="学员姓名"
         ></el-table-column>
-        <el-table-column property="phone" align="center" label="手机号"></el-table-column>
+        <el-table-column
+          property="phone"
+          align="center"
+          label="手机号"
+        ></el-table-column>
       </el-table>
       <div slot="footer" class="dialog-footer">
         <el-button @click="cancleAdd">取 消</el-button>
@@ -488,7 +515,9 @@
         :musicGroupId="$route.query.id"
       />
       <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="detailVisible = false">关闭</el-button>
+        <el-button type="primary" @click="detailVisible = false"
+          >关闭</el-button
+        >
       </div>
     </el-dialog>
 
@@ -550,7 +579,7 @@ import {
   queryCanAddStudent,
   addMusicGroupPaymentCalenderStudent,
   delMusicGroupPaymentCalenderStudent,
-  sendWaitRenewMessage,
+  sendWaitRenewMessage
 } from "@/api/buildTeam";
 let that;
 export default {
@@ -561,7 +590,7 @@ export default {
         search: null,
         subjectId: null,
         paymentStatus: null,
-        musicGroupStatus: null,
+        musicGroupStatus: null
       },
       teacherList: [],
       soundList: [],
@@ -571,7 +600,7 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50], // 选择限制显示条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
       payVisible: false,
       resetPayVisible: false,
@@ -582,14 +611,14 @@ export default {
         firstDayOfWeek: 1,
         disabledDate(time) {
           return time.getTime() + 86400000 <= new Date().getTime();
-        },
+        }
       },
       payForm: {
-        startDate: null,
+        startDate: null
       },
       resetPayForm: {
         momey: null,
-        expectMemberAmount: null,
+        expectMemberAmount: null
       },
       activeChiose: [],
       id: null,
@@ -600,7 +629,7 @@ export default {
         deadlinePaymentDate: null,
         expectNum: null,
         actualNum: null,
-        sumActualAmount: null,
+        sumActualAmount: null
       },
 
       msgList: [],
@@ -615,13 +644,13 @@ export default {
         memberPaymentAmount: "",
         memberRankSettingName: "",
         originalMemberPaymentAmount: "",
-        memberValidDate: "",
+        memberValidDate: ""
       },
       timerVisible: false,
       timerForm: {
         startPaymentDate: "",
-        deadlinePaymentDate: "",
-      },
+        deadlinePaymentDate: ""
+      }
     };
   },
   //生命周期 - 创建完成(可以访问当前this实例)
@@ -631,7 +660,7 @@ export default {
     // 获取声部
     that = this;
     this.teamid = this.$route.query.id;
-    findSound({ musicGroupId: this.teamid }).then((res) => {
+    findSound({ musicGroupId: this.teamid }).then(res => {
       if (res.code == 200) {
         this.soundList = res.data;
       }
@@ -641,7 +670,7 @@ export default {
   },
   activated() {
     this.teamid = this.$route.query.id;
-    findSound({ musicGroupId: this.teamid }).then((res) => {
+    findSound({ musicGroupId: this.teamid }).then(res => {
       if (res.code == 200) {
         this.soundList = res.data;
       }
@@ -655,7 +684,7 @@ export default {
     getList() {
       this.id = this.$route.query.paymentId;
       // 获取缴费状态
-      getMusicGroupPaymentCalenderDetail({ id: this.id }).then((res) => {
+      getMusicGroupPaymentCalenderDetail({ id: this.id }).then(res => {
         if (res.code == 200) {
           this.info = {
             paymentStatus: res.data.calender.status,
@@ -663,18 +692,20 @@ export default {
             deadlinePaymentDate: res.data.calender.deadlinePaymentDate,
             expectNum: res.data.calender.expectNum,
             actualNum: res.data.calender.actualNum,
-            sumActualAmount: res.data.sumActualAmount,
+            sumActualAmount: res.data.sumActualAmount
           };
           this.titleForm = {
             paymentType: res.data.calender.paymentType,
-            musicGroupOrganizationCourseSettingId: res.data.calenderSettingsName,
+            musicGroupOrganizationCourseSettingId:
+              res.data.calenderSettingsName,
             paymentValidStartDate: res.data.calender.paymentValidStartDate,
             paymentValidEndDate: res.data.calender.paymentValidEndDate,
             calenderSettingsName: res.data.calenderSettingsName,
             memberPaymentAmount: res.data.calender.memberPaymentAmount,
             memberRankSettingName: res.data.calender.memberRankSettingName,
-            originalMemberPaymentAmount: res.data.calender.originalMemberPaymentAmount,
-            memberValidDate: res.data.calender.memberValidDate,
+            originalMemberPaymentAmount:
+              res.data.calender.originalMemberPaymentAmount,
+            memberValidDate: res.data.calender.memberValidDate
           };
           this.msgList = res.data.musicGroupPaymentCalenderCourseSettings;
           this.memberRankSettingId = res.data?.calender?.memberRankSettingId;
@@ -683,7 +714,7 @@ export default {
       this.searchForm.id = this.id;
       this.searchForm.page = this.rules.page;
       this.searchForm.rows = this.rules.limit;
-      getmusicGroupPaymentCalenderDetail(this.searchForm).then((payment) => {
+      getmusicGroupPaymentCalenderDetail(this.searchForm).then(payment => {
         if (payment.code == 200) {
           this.rules.total = payment.data.total;
           this.tableList = payment.data.rows;
@@ -699,7 +730,7 @@ export default {
         search: null,
         subjectId: null,
         paymentStatus: null,
-        musicGroupStatus: null,
+        musicGroupStatus: null
       };
       this.search();
     },
@@ -712,7 +743,7 @@ export default {
         this.$message.error("请至少选择一名学员");
         return;
       }
-      let ids = this.activeChiose.map((item) => {
+      let ids = this.activeChiose.map(item => {
         return item.id;
       });
       this.ids = ids.join(",");
@@ -727,13 +758,13 @@ export default {
         this.$store.dispatch("delVisitedViews", this.$route);
         this.$router.push({
           path: "/business/resetTeaming",
-          query: { ...this.$route.query },
+          query: { ...this.$route.query }
         });
       } else if (query.type == "look") {
         this.$store.dispatch("delVisitedViews", this.$route);
         this.$router.push({
           path: "/business/resetTeaming",
-          query: { ...this.$route.query },
+          query: { ...this.$route.query }
         });
       } else if (
         query.type == "teamDraft" ||
@@ -743,7 +774,7 @@ export default {
         this.$store.dispatch("delVisitedViews", this.$route);
         this.$router.push({
           path: "/business/resetTeaming",
-          query: { ...this.$route.query },
+          query: { ...this.$route.query }
         });
       }
     },
@@ -762,13 +793,13 @@ export default {
       // console.log(this.activeChiose)
     },
     submitReset() {
-      this.$refs.resetPayForm.validate((res) => {
+      this.$refs.resetPayForm.validate(res => {
         if (res) {
           let obj = {};
           obj.expectAmount = this.resetPayForm.momey;
           obj.expectMemberAmount = this.resetPayForm.expectMemberAmount;
           obj.ids = this.ids;
-          resetMusicGroupPaymentCalenderDetail(obj).then((res) => {
+          resetMusicGroupPaymentCalenderDetail(obj).then(res => {
             if (res.code == 200) {
               this.$message.success("修改成功");
               this.resetPayVisible = false;
@@ -779,12 +810,17 @@ export default {
       });
     },
     addStudentBtn() {
-      console.log("musicGroupId:", this.teamid, "musicGroupPaymentCalenderId:", this.id);
+      console.log(
+        "musicGroupId:",
+        this.teamid,
+        "musicGroupPaymentCalenderId:",
+        this.id
+      );
       // 获取无缴费学员
       queryCanAddStudent({
         musicGroupId: this.teamid,
-        musicGroupPaymentCalenderId: this.id,
-      }).then((res) => {
+        musicGroupPaymentCalenderId: this.id
+      }).then(res => {
         if (res.code == 200) {
           this.studentList = res.data;
           this.studentVisible = true;
@@ -799,17 +835,17 @@ export default {
       this.$confirm(`是否删除此学员`, "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning",
+        type: "warning"
       })
         .then(() => {
           let musicGroupPaymentCalenderDetailIds = this.activeChiose
-            .map((stu) => {
+            .map(stu => {
               return stu.id;
             })
             .join(",");
           delMusicGroupPaymentCalenderStudent({
-            musicGroupPaymentCalenderDetailIds,
-          }).then((res) => {
+            musicGroupPaymentCalenderDetailIds
+          }).then(res => {
             if (res.code == 200) {
               this.$message.success(`删除成功`);
               this.$set(this.rules, "page", 1);
@@ -829,8 +865,8 @@ export default {
       }
       addMusicGroupPaymentCalenderStudent({
         musicGroupPaymentCalenderId: this.id,
-        userId: this.chioseStudent.userId,
-      }).then((res) => {
+        userId: this.chioseStudent.userId
+      }).then(res => {
         if (res.code == 200) {
           this.$message.success("添加成功");
           this.studentVisible = false;
@@ -839,7 +875,12 @@ export default {
       });
     },
     onMusicGroupPaymentCalenderDetail() {
-      let { subjectId, paymentStatus, musicGroupStatus, search } = this.searchForm;
+      let {
+        subjectId,
+        paymentStatus,
+        musicGroupStatus,
+        search
+      } = this.searchForm;
       // 报表导出
       let url = "/api-web/export/musicGroupPaymentCalenderDetail";
       let data = {
@@ -848,32 +889,32 @@ export default {
         subjectId,
         paymentStatus,
         musicGroupStatus,
-        search,
+        search
       };
       const options = {
         method: "POST",
         headers: {
           Authorization: getToken(),
-          tenantId: getTenantId(),
+          tenantId: getTenantId()
         },
         data: qs.stringify(cleanDeep(data)),
         url,
-        responseType: "blob",
+        responseType: "blob"
       };
       this.$confirm("您确定导出缴费记录", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning",
+        type: "warning"
       })
         .then(() => {
           load.startLoading();
           axios(options)
-            .then((res) => {
+            .then(res => {
               let blob = new Blob([res.data], {
-                type: "application/vnd.ms-excel;charset=utf-8",
+                type: "application/vnd.ms-excel;charset=utf-8"
               });
               let text = new Response(blob).text();
-              text.then((res) => {
+              text.then(res => {
                 // 判断是否报错
                 if (res.indexOf("code") != -1) {
                   let json = JSON.parse(res);
@@ -900,7 +941,7 @@ export default {
 
               load.endLoading();
             })
-            .catch((error) => {
+            .catch(error => {
               this.$message.error("导出数据失败,请联系管理员");
               load.endLoading();
             });
@@ -919,7 +960,7 @@ export default {
       let submitArr = [];
       let msgArr = "";
       let str = "";
-      this.activeChiose.forEach((item) => {
+      this.activeChiose.forEach(item => {
         if (item.open) {
           submitArr.push(item.userId);
         } else {
@@ -936,13 +977,13 @@ export default {
       this.$confirm(str, "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning",
+        type: "warning"
       })
         .then(async () => {
           try {
             const res = await sendWaitRenewMessage({
               studentIds: submitArr.join(","),
-              calenderId: this.$route.query.paymentId,
+              calenderId: this.$route.query.paymentId
             });
             this.$message.success("提醒成功");
             this.getList();
@@ -954,17 +995,17 @@ export default {
       this.timerForm.deadlinePaymentDate = "";
     },
     async submitPayTimer() {
-      this.$refs.timerForm.validate((flag) => {
+      this.$refs.timerForm.validate(flag => {
         if (flag) {
-          let ids = this.activeChiose.map((item) => {
+          let ids = this.activeChiose.map(item => {
             return item.id;
           });
           ids = ids.join(",");
           // console.log(ids)
           openMusicGroupPaymentCalenderDetailPayment({
             ids,
-            ...this.timerForm,
-          }).then((res) => {
+            ...this.timerForm
+          }).then(res => {
             if (res.code == 200) {
               this.$message.success(res.msg);
               this.timerVisible = false;
@@ -974,13 +1015,13 @@ export default {
           });
         }
       });
-    },
+    }
   },
   watch: {
     payVisible(val) {
       if (!val) {
         this.payForm = {
-          startDate: null,
+          startDate: null
         };
         this.$refs["payForm"].resetFields();
       }
@@ -988,7 +1029,7 @@ export default {
     resetPayVisible(val) {
       if (!val) {
         this.resetPayForm = {
-          momey: null,
+          momey: null
         };
       }
     },
@@ -996,7 +1037,7 @@ export default {
       if (!val) {
         this.$refs.timerForm.resetFields();
       }
-    },
+    }
   },
   computed: {
     payendTimer: () => {
@@ -1011,10 +1052,10 @@ export default {
           } else {
             return time.getTime() + 86400000 <= new Date().getTime();
           }
-        },
+        }
       };
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="scss" scoped>

+ 3 - 3
src/views/resetTeaming/modals/giveMemberModel.vue

@@ -2,7 +2,7 @@
   <div class="chioseWrap">
     <p>
       您将为以下<span>{{ tableList.length }}</span
-      >位学员激活云练,激活金额<span>{{
+      >位学员激活云练,激活金额<span>{{
         selectStudentMoney | moneyFormat
       }}</span
       >元
@@ -35,7 +35,7 @@
       </el-table-column>
       <el-table-column align="center" prop="phone" label="手机号">
       </el-table-column>
-      <el-table-column align="center" prop="type" label="云练类型">
+      <el-table-column align="center" prop="type" label="云练类型">
         <template slot-scope="scope">
           {{ scope.row.type | memberEnumType }}
         </template>
@@ -64,7 +64,7 @@
     </span>
 
     <el-dialog
-      title="激活云练"
+      title="激活云练"
       :visible.sync="payMentVisible"
       :before-close="onClose"
       v-if="payMentVisible"

+ 28 - 22
src/views/resetTeaming/modals/giveMemberPayment.vue

@@ -1,14 +1,20 @@
 <template>
   <div class="chioseWrap">
-    <p>您将为<span>{{tableList.length}}</span>位学员激活云教练<br />共需支付<span>{{ selectStudentMoney | moneyFormat }}</span>元</p>
-    <p>请扫描二维码支付,支付功能后学员云教练即刻激活</p>
+    <p>
+      您将为<span>{{ tableList.length }}</span
+      >位学员激活云练习<br />共需支付<span>{{
+        selectStudentMoney | moneyFormat
+      }}</span
+      >元
+    </p>
+    <p>请扫描二维码支付,支付功能后学员云练习即刻激活</p>
 
     <vue-qr :text="codeUrl" style="width: 250px" :margin="0"></vue-qr>
   </div>
 </template>
 <script>
-import VueQr from 'vue-qr'
-import { cloudPayCheck } from '../api'
+import VueQr from "vue-qr";
+import { cloudPayCheck } from "../api";
 export default {
   props: {
     tableList: {
@@ -20,48 +26,48 @@ export default {
     },
     codeUrl: {
       type: String
-    },
+    }
   },
   components: { VueQr },
   data() {
     return {
       payForm: {
-        payType: null,
+        payType: null
       },
       selectStudentMoney: 0, // 选中学生金额
       orderTimer: null
     };
   },
   async mounted() {
-    let tableList = this.tableList || []
-    for(let i of tableList) {
-      this.selectStudentMoney += parseFloat(i.amount)
+    let tableList = this.tableList || [];
+    for (let i of tableList) {
+      this.selectStudentMoney += parseFloat(i.amount);
     }
     this.initTimer = setTimeout(() => {
-      this.getPaymentStatus()
-    }, 3000)
+      this.getPaymentStatus();
+    }, 3000);
   },
   methods: {
     async getPaymentStatus() {
       this.orderTimer = setInterval(async () => {
         try {
-          const res = await cloudPayCheck({ orderNo: this.orderNo })
-          if(res.data) {
-            clearInterval(this.orderTimer)
-            clearTimeout(this.initTimer)
-            this.$message.success('您已成功缴费')
-            this.$listeners.getList()
-            this.$emit('close', true)
+          const res = await cloudPayCheck({ orderNo: this.orderNo });
+          if (res.data) {
+            clearInterval(this.orderTimer);
+            clearTimeout(this.initTimer);
+            this.$message.success("您已成功缴费");
+            this.$listeners.getList();
+            this.$emit("close", true);
           }
-        } catch(e) {
-          clearInterval(this.orderTimer)
+        } catch (e) {
+          clearInterval(this.orderTimer);
         }
       }, 5000);
     }
   },
   beforeDestroy() {
-    clearTimeout(this.initTimer)
-    clearInterval(this.orderTimer)
+    clearTimeout(this.initTimer);
+    clearInterval(this.orderTimer);
   }
 };
 </script>

+ 1 - 1
src/views/resetTeaming/modals/member.vue

@@ -149,7 +149,7 @@ export default {
   },
   methods: {
     onTrainChange(item) {
-      // 云练点击时
+      // 云练点击时
       this.$emit("onCheckItem", item, "train");
     },
     onQuestions(item) {

+ 2 - 2
src/views/resetTeaming/modals/payMember.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="teamCourseList">
     <p class="coreTitle">
-      云
+      云练
       <el-form-item
         label="是否展示"
         prop="isShowMemberForPay"
@@ -11,7 +11,7 @@
         <el-select
           style="width: 100% !important"
           v-model="form.isShowMemberForPay"
-          placeholder="请选择是否展示云练费用"
+          placeholder="请选择是否展示云练费用"
           size="mini"
         >
           <el-option label="是" :value="true"> </el-option>

+ 68 - 44
src/views/resetTeaming/modals/review-detail.vue

@@ -40,23 +40,38 @@
       <descriptions-item label="订单类型:">{{
         calender.payUserType | payUserTypeFormat
       }}</descriptions-item>
-      <descriptions-item label="学生人数:" v-if="calenderFeeJson&&calenderFeeJson.sutdentNumber&&calender.calenderFeeType=='STUDENT'">{{
-        calenderFeeJson.sutdentNumber
-      }}</descriptions-item>
-      <descriptions-item label="缴费总金额:" v-if="calenderFeeJson&&calenderFeeJson.allTotal">{{
-        numeral(calenderFeeJson.allTotal).format("0,0")
-      }}</descriptions-item>
-      <descriptions-item label="优惠金额:" v-if="calenderFeeJson&&calenderFeeJson.discountTotal">{{
-        numeral(calenderFeeJson.discountTotal).format("0,0")
-      }}</descriptions-item>
+      <descriptions-item
+        label="学生人数:"
+        v-if="
+          calenderFeeJson &&
+            calenderFeeJson.sutdentNumber &&
+            calender.calenderFeeType == 'STUDENT'
+        "
+        >{{ calenderFeeJson.sutdentNumber }}</descriptions-item
+      >
+      <descriptions-item
+        label="缴费总金额:"
+        v-if="calenderFeeJson && calenderFeeJson.allTotal"
+        >{{
+          numeral(calenderFeeJson.allTotal).format("0,0")
+        }}</descriptions-item
+      >
+      <descriptions-item
+        label="优惠金额:"
+        v-if="calenderFeeJson && calenderFeeJson.discountTotal"
+        >{{
+          numeral(calenderFeeJson.discountTotal).format("0,0")
+        }}</descriptions-item
+      >
       <descriptions-item label="实缴金额">{{
         numeral(calender.currentTotalAmount).format("0,0")
       }}</descriptions-item>
 
-
-      <descriptions-item label="缴费单号:" v-if="calender.payUserType == 'SCHOOL'">{{
-        calender.id
-      }}</descriptions-item>
+      <descriptions-item
+        label="缴费单号:"
+        v-if="calender.payUserType == 'SCHOOL'"
+        >{{ calender.id }}</descriptions-item
+      >
       <descriptions-item
         :span="3"
         v-if="calender.payUserType !== 'SCHOOL'"
@@ -95,7 +110,7 @@
     <el-table
       :data="course"
       stripe
-      v-if="course&&course.length"
+      v-if="course && course.length"
       style="width: 100%; margin-top: 10px"
       :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
     >
@@ -185,7 +200,7 @@
       </el-table-column>
     </el-table>
     <el-alert
-      title="云练"
+      title="云练"
       :closable="false"
       class="alert"
       type="info"
@@ -206,7 +221,7 @@
           scope.row.optionalFlag ? "是" : "否"
         }}</template>
       </el-table-column>
-          <el-table-column prop="autoActivationFlag" label="自动激活" width="100px">
+      <el-table-column prop="autoActivationFlag" label="自动激活" width="100px">
         <template slot-scope="scope">{{
           scope.row.autoActivationFlag ? "是" : "否"
         }}</template>
@@ -282,7 +297,7 @@
       :closable="false"
       class="alert"
       type="info"
-      v-if="activity&&activity.length > 0"
+      v-if="activity && activity.length > 0"
     >
     </el-alert>
     <el-table
@@ -325,26 +340,31 @@
       :closable="false"
       class="alert"
       type="info"
-      v-if="calenderFeeJson&&calenderFeeJson.teacherFeeList&&calender.calenderFeeType=='TEACHER'"
+      v-if="
+        calenderFeeJson &&
+          calenderFeeJson.teacherFeeList &&
+          calender.calenderFeeType == 'TEACHER'
+      "
     >
     </el-alert>
     <el-table
       :data="calenderFeeJson.teacherFeeList"
       stripe
-      v-if="calenderFeeJson&&calenderFeeJson.teacherFeeList&&calender.calenderFeeType=='TEACHER'"
+      v-if="
+        calenderFeeJson &&
+          calenderFeeJson.teacherFeeList &&
+          calender.calenderFeeType == 'TEACHER'
+      "
       style="width: 100%; margin-top: 10px"
       :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
     >
-    <el-table-column prop="courseType" label="课程类型">
+      <el-table-column prop="courseType" label="课程类型">
         <template slot-scope="scope">
           {{ scope.row.courseType | courseTypeFormat }}
         </template>
       </el-table-column>
-      <el-table-column prop="teacherNumber" label="老师人数" >
-
-      </el-table-column>
-      <el-table-column prop="courseNumber" label="课程数">
-      </el-table-column>
+      <el-table-column prop="teacherNumber" label="老师人数"> </el-table-column>
+      <el-table-column prop="courseNumber" label="课程数"> </el-table-column>
       <el-table-column prop="courseCurrentPrice" label="单课时售价(元)">
       </el-table-column>
     </el-table>
@@ -353,32 +373,36 @@
       :closable="false"
       class="alert"
       type="info"
-      v-if="calenderRefundPeriods&&calenderRefundPeriods.length > 0"
+      v-if="calenderRefundPeriods && calenderRefundPeriods.length > 0"
     >
     </el-alert>
 
     <el-table
       :data="calenderRefundPeriods"
       stripe
-      v-if="calenderRefundPeriods&&calenderRefundPeriods.length > 0"
+      v-if="calenderRefundPeriods && calenderRefundPeriods.length > 0"
       style="width: 100%; margin-top: 10px"
       :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
     >
-      <el-table-column prop="refundAmount" label="回款金额" >
-      </el-table-column>
-      <el-table-column prop="refundDate" label="回款状态" >
+      <el-table-column prop="refundAmount" label="回款金额"> </el-table-column>
+      <el-table-column prop="refundDate" label="回款状态">
         <template slot-scope="scope">
-
-          <div v-if="calender.status == 'NO'||calender.status == 'OPEN'||calender.status == 'OVER'||calender.status == 'PAID'">
-            {{scope.row.refundFlag?'已回款':'回款中'}}
+          <div
+            v-if="
+              calender.status == 'NO' ||
+                calender.status == 'OPEN' ||
+                calender.status == 'OVER' ||
+                calender.status == 'PAID'
+            "
+          >
+            {{ scope.row.refundFlag ? "已回款" : "回款中" }}
           </div>
           <div v-else>
             --
           </div>
         </template>
       </el-table-column>
-      <el-table-column prop="refundDate" label="回款时间" >
-      </el-table-column>
+      <el-table-column prop="refundDate" label="回款时间"> </el-table-column>
     </el-table>
 
     <!-- 会员信息 -->
@@ -423,7 +447,7 @@ const initData = {
   studentNum: 0,
   phone: "",
   username: "",
-  calenderRefundPeriods:[]
+  calenderRefundPeriods: []
 };
 export default {
   components: { Item },
@@ -431,7 +455,7 @@ export default {
   data() {
     return {
       payVisible: false,
-      ...initData,
+      ...initData
     };
   },
   computed: {
@@ -449,12 +473,12 @@ export default {
       }
       return "";
     },
-    calenderFeeJson(){
+    calenderFeeJson() {
       const calenderFee = this.calender?.calenderFeeJson;
-      if(calenderFee){
-        return JSON.parse(calenderFee)
+      if (calenderFee) {
+        return JSON.parse(calenderFee);
       }
-      return null
+      return null;
     }
   },
   mounted() {
@@ -466,7 +490,7 @@ export default {
       try {
         const res = await musicGroupPaymentCalenderView({
           id: this.detail.id,
-          musicGroupId: this.detail.musicGroupId,
+          musicGroupId: this.detail.musicGroupId
         });
         for (const key in initData) {
           if (initData.hasOwnProperty(key)) {
@@ -474,8 +498,8 @@ export default {
           }
         }
       } catch (error) {}
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="less" scoped>

+ 8 - 8
src/views/resetTeaming/modals/subject-preview.vue

@@ -242,8 +242,8 @@ export default {
       balance: 0, // 余额
       needPrice: 0, // 还需支付
       payType: false, // 是否余额支付
-      cloudTeacherFee: 0, // 云练费用
-      cloudTeacherPlusFee: 0, // 云练+
+      cloudTeacherFee: 0, // 云练费用
+      cloudTeacherPlusFee: 0, // 云练+
       orderInfo: {
         marketPrice: 0,
         amount: 0, // 现价总金额
@@ -283,9 +283,9 @@ export default {
       isClickStatus: false,
       accessStatus: false, // 是否有辅件乐保
       accessIsShowStatus: false, // 是否显示辅件 true 显示, false 不显示
-      memberCoursePrice: [], // 云练,显示赠送的课程
+      memberCoursePrice: [], // 云练,显示赠送的课程
       memberCourseShowFlag: false, // 是否显示赠送课程
-      buyCloudTeacher: false, // 是否购买云
+      buyCloudTeacher: false, // 是否购买云练
       remissionCourseFeeStatus: false,
       isGiveAccessories: false, // 是否赠送辅件
       giveAccessoriesStatus: false,
@@ -427,7 +427,7 @@ export default {
           });
         }
       });
-      // 云
+      // 云练
       const member =
         paymentCalender && paymentCalender.member ? paymentCalender.member : {};
 
@@ -632,7 +632,7 @@ export default {
       }
     },
     // onTrainChange(item) {
-    //   // 云练点击时
+    //   // 云练点击时
     //   // this.$emit("onCheckItem", item, "train");
 
     // },
@@ -669,7 +669,7 @@ export default {
       this.$forceUpdate();
     },
     giveAccessoriesSetStatus() {
-      let status = false; // 是否有选中云
+      let status = false; // 是否有选中云练
       this.toolsPackage.forEach(item => {
         if (item.isStatus) {
           status = true;
@@ -762,7 +762,7 @@ export default {
         });
       }
 
-      // 云
+      // 云练
       const toolsPackage = this.toolsPackage;
       if (toolsPackage.length > 0) {
         toolsPackage.forEach(item => {

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

@@ -488,7 +488,7 @@ export default {
     async init() {
       let organId = this.baseInfo?.musicGroup?.organId;
       this.courseViewType = this.baseInfo?.musicGroup?.courseViewType;
-      // 如果为学员缴费且是乐团缴费则显示云练的价格
+      // 如果为学员缴费且是乐团缴费则显示云练的价格
       //  进行中添加
       if (this.courseViewType == 2 && !this.rowDetail && !this.isUserType) {
         this.$set(this.form, "leixing", "2");

+ 3 - 3
src/views/sporadicManager/sporadicList.vue

@@ -550,7 +550,7 @@ export default {
         { label: "账户充值", value: 9 },
         // { label: "乐保服务", value: 10 },
         // { label: "网基课活动", value: 13 },
-        // { label: "云练购买", value: 15 },
+        // { label: "云练购买", value: 15 },
         { label: "其它", value: 11 }
       ],
       orderType1: [
@@ -564,7 +564,7 @@ export default {
         { label: "其它", value: 11 }
         // { label: "乐保服务", value: 10 },
         // { label: "网基课活动", value: 13 },
-        // { label: "云练购买", value: 15 },
+        // { label: "云练购买", value: 15 },
       ],
       maskForm: {
         organId: [],
@@ -1045,7 +1045,7 @@ export default {
         11: "其它",
         12: "双十一活动",
         13: "网基课活动",
-        15: "云练购买"
+        15: "云练购买"
       };
       return template[val];
     }

+ 1 - 1
src/views/studentManager/api.js

@@ -40,7 +40,7 @@ export const cloudQueryPage = data =>
     params: data
   });
 
-// 设置云练会员时长
+// 设置云练会员时长
 export const setStudentMembe = data =>
   request2({
     url: "/api-web/studentManage/updateStudentMember",

+ 34 - 34
src/views/studentManager/memberList.vue

@@ -18,7 +18,7 @@
             v-model.trim="searchForm.search"
             clearable
             @keyup.enter.native="
-              (e) => {
+              e => {
                 e.target.blur();
                 $refs.searchForm.save();
                 search();
@@ -70,7 +70,7 @@
             type="daterange"
             value-format="yyyy-MM-dd"
             :picker-options="{
-              firstDayOfWeek: 1,
+              firstDayOfWeek: 1
             }"
             range-separator="至"
             start-placeholder="回访开始日期"
@@ -206,7 +206,7 @@
           <el-popover placement="right" width="500" trigger="click">
             <div class="popoverWrap">
               <p>乐团退团退费规则:</p>
-              <p>退还云练费用:报名缴费时缴费的云练费用</p>
+              <p>退还云练费用:报名缴费时缴费的云练费用</p>
               <p>退还课程费用:缴费总额-已结束课时单价之和</p>
               <p>退还乐器费用:报名缴费时缴纳的乐器费用(团购、租金)</p>
               <p>退还教辅费用:报名缴费时缴费的教辅费用</p>
@@ -257,10 +257,7 @@
             prop="reasonEnum"
             :rules="[{ required: true, message: '请选择退团原因' }]"
           >
-            <el-radio-group
-              v-model="quitForm.reasonEnum"
-              :disabled="false"
-            >
+            <el-radio-group v-model="quitForm.reasonEnum" :disabled="false">
               <el-radio-button
                 :label="item.value"
                 v-for="(item, index) in quiteReasonList"
@@ -315,7 +312,7 @@
           <el-popover placement="right" width="500" trigger="click">
             <div class="popoverWrap">
               <p>乐团退团退费规则:</p>
-              <p>退还云练费用:报名缴费时缴费的云练费用</p>
+              <p>退还云练费用:报名缴费时缴费的云练费用</p>
               <p>退还课程费用:缴费总额-已结束课时单价之和</p>
               <p>退还乐器费用:报名缴费时缴纳的乐器费用(团购、租金)</p>
               <p>退还教辅费用:报名缴费时缴费的教辅费用</p>
@@ -358,7 +355,7 @@ export default {
         search: null,
         organId: null,
         hasMember: "0",
-        visitTime: [],
+        visitTime: []
       },
 
       tableList: [{}],
@@ -368,7 +365,7 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50], // 选择限制显示条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
       quitForm: {
         // 退团信息确认
@@ -382,14 +379,14 @@ export default {
         isCloudTeacherAmount: null,
         isRefundMemberFee: null,
         maintenanceFee: 0,
-        reason: "",
+        reason: ""
       },
       quitVisible: false,
       activeRow: null,
       visitVisible: false,
       tenantId: "",
       onekeyQuitVisible: false,
-      quiteReasonList,
+      quiteReasonList
     };
   },
   //生命周期 - 创建完成(可以访问当前this实例)
@@ -416,7 +413,7 @@ export default {
           ...rest,
           ...getTimes(visitTime, ["visitStartTime", "visitEndTime"]),
           page: this.rules.page,
-          rows: this.rules.limit,
+          rows: this.rules.limit
         });
         this.tableList = res.data.rows;
         this.rules.total = res.data.total;
@@ -447,7 +444,7 @@ export default {
       this.onekeyQuitVisible = true;
     },
     quieTeams() {
-      this.$refs.onekeyQuitForm.validate((res) => {
+      this.$refs.onekeyQuitForm.validate(res => {
         if (!res) {
           return;
         }
@@ -455,12 +452,12 @@ export default {
           musicGroupId: this.activeRow.musicGroupId,
           userId: this.activeRow.userId,
           reason: this.quitForm.reason,
-          reasonEnum:this.quitForm.reasonEnum,
+          reasonEnum: this.quitForm.reasonEnum,
           isRefundCourseFee: false,
           isRefundInstrumentFee: false,
           isRefundTeachingAssistantsFee: false,
-          isRefundMemberFee: false,
-        }).then((res) => {
+          isRefundMemberFee: false
+        }).then(res => {
           this.quitForm = {
             // 退团信息确认
             isRefundCourseFee: null,
@@ -472,7 +469,7 @@ export default {
             isRefundMemberFee: null,
             maintenanceFee: 0,
             reason: "",
-            reasonEnum: "",
+            reasonEnum: ""
           };
           if (res.code == 200) {
             this.$message.success("退团成功");
@@ -483,12 +480,12 @@ export default {
       });
     },
     chioseType() {
-      this.$refs["quitForm"].$refs["quitForm"].validate((res) => {
+      this.$refs["quitForm"].$refs["quitForm"].validate(res => {
         if (res) {
           this.$confirm("确定退团?", "提示", {
             confirmButtonText: "确定",
             cancelButtonText: "取消",
-            type: "warning",
+            type: "warning"
           })
             .then(() => {
               let row = this.activeRow;
@@ -498,19 +495,19 @@ export default {
                 reason: this.quitForm.reason,
                 isRefundCourseFee: this.quitForm.isRefundCourseFee,
                 isRefundInstrumentFee: this.quitForm.isRefundInstrumentFee,
-                isRefundTeachingAssistantsFee:
-                  this.quitForm.isRefundTeachingAssistantsFee,
+                isRefundTeachingAssistantsFee: this.quitForm
+                  .isRefundTeachingAssistantsFee,
                 maintenanceFee: this.quitForm.maintenanceFee,
-                isRefundMemberFee: this.quitForm.isRefundMemberFee,
+                isRefundMemberFee: this.quitForm.isRefundMemberFee
               };
-              // 退还云练费用
+              // 退还云练费用
               if (this.quitForm.isRefundMemberFee) {
                 params.cloudTeacherAmount = this.quitForm.cloudTeacherAmount;
               } else {
                 params.cloudTeacherAmount = 0;
               }
               // 发请求 退团
-              StudentQuit(params).then((res) => {
+              StudentQuit(params).then(res => {
                 this.quitForm = {
                   // 退团信息确认
                   isRefundCourseFee: null,
@@ -521,7 +518,7 @@ export default {
                   isCloudTeacherAmount: null,
                   isRefundMemberFee: null,
                   maintenanceFee: 0,
-                  reason: "",
+                  reason: ""
                 };
                 if (res.code == 200) {
                   this.$message.success("退团成功");
@@ -547,9 +544,13 @@ export default {
     lookVisit(row) {
       this.$router.push({
         path: "/studentManager/returnVisitList",
-        query: { search: row.userId,tabrouter:'2', typeList: ["其它", "会员续费"] },
+        query: {
+          search: row.userId,
+          tabrouter: "2",
+          typeList: ["其它", "会员续费"]
+        }
       });
-    },
+    }
   },
   watch: {
     quitVisible(val) {
@@ -563,19 +564,18 @@ export default {
           cloudTeacherAmount: null,
           isCloudTeacherAmount: null,
           maintenanceFee: 0,
-          reason: "",
+          reason: ""
         };
         this.$refs["quitForm"].$refs["quitForm"].resetFields();
       }
-    },
+    }
   },
   filters: {
     hasMemberFilter(val) {
       const arr = ["已过期", "即将过期", "待生效", "生效中"];
       return arr[val];
-    },
-  },
+    }
+  }
 };
 </script>
-<style lang='scss' scoped>
-</style>
+<style lang="scss" scoped></style>

+ 84 - 67
src/views/studentManager/modals/createMember.vue

@@ -3,14 +3,14 @@
     <!-- <p class="title">已选择{{ multipleSelection.length }}名学员</p> -->
     <el-form :model="memberForm" label-width="100px" ref="memberForm">
       <el-form-item
-        label="云练单位"
+        label="云练单位"
         prop="period"
         :rules="[
-          { required: true, message: '请选择云练单位', trigger: 'blur' },
+          { required: true, message: '请选择云练单位', trigger: 'blur' }
         ]"
       >
         <el-select
-          placeholder="云练单位"
+          placeholder="云练单位"
           clearable
           v-model.trim="memberForm.period"
           @change="getMemberList"
@@ -24,10 +24,10 @@
         </el-select>
       </el-form-item>
       <el-form-item
-        label="云练周期"
+        label="云练周期"
         prop="memberNum"
         :rules="[
-          { required: true, message: '请输入云练周期', trigger: 'blur' },
+          { required: true, message: '请输入云练周期', trigger: 'blur' }
         ]"
       >
         <el-input
@@ -35,7 +35,7 @@
           @input="getMemberList"
           onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))"
           v-model="memberForm.memberNum"
-          placeholder="请输入云练周期"
+          placeholder="请输入云练周期"
         >
         </el-input>
       </el-form-item>
@@ -44,24 +44,27 @@
         prop="actualAmount"
         :rules="[
           { required: true, message: '请输入缴费金额', trigger: 'blur' },
-          { validator: validateMember, trigger: 'blur' },
+          { validator: validateMember, trigger: 'blur' }
         ]"
       >
-      <!-- onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))" -->
+        <!-- onKeypress="return (/[\d]/.test(String.fromCharCode(event.keyCode)))" -->
         <el-input
           type="number"
-          @keyup.native='keyupEvent($event)'
+          @keyup.native="keyupEvent($event)"
           v-model="memberForm.actualAmount"
           placeholder="请输入缴费金额"
         >
           <div slot="append">元/人</div>
         </el-input>
       </el-form-item>
-      <p style="color: red; padding: 0 0 20px 100px">若修改默认金额需审核通过后生效</p>
-      <el-form-item label="备注" prop="remark"
-        :rules="[
-          { required: true, message: '请输入备注', trigger: 'blur' },
-        ]">
+      <p style="color: red; padding: 0 0 20px 100px">
+        若修改默认金额需审核通过后生效
+      </p>
+      <el-form-item
+        label="备注"
+        prop="remark"
+        :rules="[{ required: true, message: '请输入备注', trigger: 'blur' }]"
+      >
         <el-input
           type="textarea"
           show-word-limit
@@ -76,10 +79,10 @@
 </template>
 <script>
 import { add, update } from "../api";
-import { getmemberRankOrganizationFeeMapper } from '@/views/categroyManager/productSystem/api'
+import { getmemberRankOrganizationFeeMapper } from "@/views/categroyManager/productSystem/api";
 import { sysConfigList } from "@/api/generalSettings"; // 平台的修改和查
 export default {
-  props: ["multipleSelection", 'type'],
+  props: ["multipleSelection", "type"],
   data() {
     return {
       memberForm: {
@@ -90,103 +93,121 @@ export default {
       },
       userIds: [],
       organId: null,
-      rulesForm: null,// 范围
+      rulesForm: null, // 范围
       memberFeeSetting: null
     };
   },
   mounted() {
-    console.log(this.multipleSelection)
-    if(this.type == 'update') {
-      const { memberNum, actualAmount, period, remark, organId, id } = this.multipleSelection
+    console.log(this.multipleSelection);
+    if (this.type == "update") {
+      const {
+        memberNum,
+        actualAmount,
+        period,
+        remark,
+        organId,
+        id
+      } = this.multipleSelection;
       this.memberForm = {
         memberNum,
         period,
         actualAmount,
         remark,
         id
-      }
-      this.organId = organId
+      };
+      this.organId = organId;
     } else {
-      this.userIds = this.multipleSelection
-        .map((stu) => {
-          return stu.userId;
-        });
-      this.organId = this.multipleSelection[0].organId //
+      this.userIds = this.multipleSelection.map(stu => {
+        return stu.userId;
+      });
+      this.organId = this.multipleSelection[0].organId; //
     }
 
-    this.__init()
+    this.__init();
   },
   methods: {
     async __init() {
       try {
         const res = await sysConfigList({ group: "DEFAULT" });
-        const paramName = 'cloud_price_range'
-        res.data.forEach((item) => {
-          if(item.paramName == paramName) {
-            const itemValue = item.paranValue ? JSON.parse(item.paranValue) : null
-            if(itemValue) {
-              this.rulesForm = itemValue
+        const paramName = "cloud_price_range";
+        res.data.forEach(item => {
+          if (item.paramName == paramName) {
+            const itemValue = item.paranValue
+              ? JSON.parse(item.paranValue)
+              : null;
+            if (itemValue) {
+              this.rulesForm = itemValue;
             }
           }
         });
 
-        const rankInfo = await getmemberRankOrganizationFeeMapper({ page: 1, rows: 10, organId: this.organId })
+        const rankInfo = await getmemberRankOrganizationFeeMapper({
+          page: 1,
+          rows: 10,
+          organId: this.organId
+        });
         // console.log(rankInfo)
-        const { rows } = rankInfo.data
-        if(!rows[0]?.memberFeeSetting){
-           this.$bus.$emit("showguide", ['memberList']);
+        const { rows } = rankInfo.data;
+        if (!rows[0]?.memberFeeSetting) {
+          this.$bus.$emit("showguide", ["memberList"]);
         }
-        this.memberFeeSetting = rows[0]?.memberFeeSetting
-      } catch(e) {
-
-      }
+        this.memberFeeSetting = rows[0]?.memberFeeSetting;
+      } catch (e) {}
     },
     getMemberList() {
-      let money = 0
-      const memberForm = this.memberForm
-      const memberFeeSetting = this.memberFeeSetting
-      if(memberFeeSetting) {
+      let money = 0;
+      const memberForm = this.memberForm;
+      const memberFeeSetting = this.memberFeeSetting;
+      if (memberFeeSetting) {
         switch (memberForm?.period) {
           case "MONTH": {
-            money = Number(memberFeeSetting.groupPurchaseMonthFee * memberForm.memberNum)
+            money = Number(
+              memberFeeSetting.groupPurchaseMonthFee * memberForm.memberNum
+            );
             break;
           }
           case "QUARTERLY": {
-            money = Number(memberFeeSetting.groupPurchaseQuarterlyFee * memberForm.memberNum)
+            money = Number(
+              memberFeeSetting.groupPurchaseQuarterlyFee * memberForm.memberNum
+            );
             break;
           }
           case "YEAR_HALF": {
-            money = Number(memberFeeSetting.groupPurchaseHalfYearFee * memberForm.memberNum)
+            money = Number(
+              memberFeeSetting.groupPurchaseHalfYearFee * memberForm.memberNum
+            );
             break;
           }
           case "YEAR": {
-            money = Number(memberFeeSetting.groupPurchaseYearFee * memberForm.memberNum)
+            money = Number(
+              memberFeeSetting.groupPurchaseYearFee * memberForm.memberNum
+            );
             break;
           }
         }
       }
-      if(memberForm.memberNum && memberForm.period) {
-        this.memberForm.actualAmount = money
+      if (memberForm.memberNum && memberForm.period) {
+        this.memberForm.actualAmount = money;
       }
     },
     submit() {
-      this.$refs.memberForm.validate(async (res) => {
-        console.log(res, this.type, 'res')
+      this.$refs.memberForm.validate(async res => {
+        console.log(res, this.type, "res");
         if (res) {
           try {
-            if(this.type == 'update') {
+            if (this.type == "update") {
               await update({
                 ...this.memberForm,
                 organId: this.organId
               });
-              this.$message.success('创建云教练成功')
+              this.$message.success("创建云练习成功");
             } else {
               await add({
                 ...this.memberForm,
                 userIds: this.userIds,
                 organId: this.organId
               });
-              this.$message.success('创建云教练成功')
+              this.$message.success("创建云练习成功");
             }
             this.$emit("close");
             this.$emit("submited");
@@ -202,19 +223,15 @@ export default {
       let max = 0;
       switch (this.memberForm?.period) {
         case "MONTH": {
-          min =
-            Number(this.rulesForm.minMonthFee) * this.memberForm.memberNum;
-          max =
-            Number(this.rulesForm.maxMonthFee) * this.memberForm.memberNum;
+          min = Number(this.rulesForm.minMonthFee) * this.memberForm.memberNum;
+          max = Number(this.rulesForm.maxMonthFee) * this.memberForm.memberNum;
           break;
         }
         case "QUARTERLY": {
           min =
-            Number(this.rulesForm.minQuarterlyFee) *
-            this.memberForm.memberNum;
+            Number(this.rulesForm.minQuarterlyFee) * this.memberForm.memberNum;
           max =
-            Number(this.rulesForm.maxQuarterlyFee) *
-            this.memberForm.memberNum;
+            Number(this.rulesForm.maxQuarterlyFee) * this.memberForm.memberNum;
           break;
         }
         case "YEAR_HALF": {
@@ -235,8 +252,8 @@ export default {
         return callback();
       }
       return callback(new Error(`定价应在${min}-${max}之间`));
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="scss" scoped>

+ 45 - 31
src/views/studentManager/modals/recordDetail.vue

@@ -2,20 +2,34 @@
   <div>
     <!-- <el-alert title="基础信息" :closable="false" class="alert" type="info" /> -->
     <descriptions :column="3" style="margin-bottom: 20px;">
-      <descriptions-item label="云教练单位">{{ detail.period | memberEnumType }}</descriptions-item>
-      <descriptions-item label="周期数">{{ detail.memberNum }}</descriptions-item>
-      <descriptions-item label="缴费金额(元)">{{ detail.actualAmount | moneyFormat(true) }}</descriptions-item>
-      <descriptions-item label="已缴费人数/总人数">{{ detail.paymentUserNum }}/{{ detail.userNum }}</descriptions-item>
-      <descriptions-item label="创建人">{{ detail.operatorName }}</descriptions-item>
-      <descriptions-item label="创建时间">{{ detail.createTime }}</descriptions-item>
-      <descriptions-item :span="3" label="备注">{{ detail.remark }}</descriptions-item>
+      <descriptions-item label="云练习单位">{{
+        detail.period | memberEnumType
+      }}</descriptions-item>
+      <descriptions-item label="周期数">{{
+        detail.memberNum
+      }}</descriptions-item>
+      <descriptions-item label="缴费金额(元)">{{
+        detail.actualAmount | moneyFormat(true)
+      }}</descriptions-item>
+      <descriptions-item label="已缴费人数/总人数"
+        >{{ detail.paymentUserNum }}/{{ detail.userNum }}</descriptions-item
+      >
+      <descriptions-item label="创建人">{{
+        detail.operatorName
+      }}</descriptions-item>
+      <descriptions-item label="创建时间">{{
+        detail.createTime
+      }}</descriptions-item>
+      <descriptions-item :span="3" label="备注">{{
+        detail.remark
+      }}</descriptions-item>
     </descriptions>
 
     <!-- <el-alert title="订单详情" :closable="false" class="alert" style="margin-top: 20px;" type="info" /> -->
     <el-table
-        :data="tableList"
-        :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
-      >
+      :data="tableList"
+      :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+    >
       <el-table-column align="center" prop="userId" label="学员编号">
       </el-table-column>
       <el-table-column align="center" label="学员姓名" prop="username">
@@ -24,29 +38,29 @@
       </el-table-column>
       <el-table-column align="center" label="缴费状态">
         <template slot-scope="scope">
-          {{ scope.row.paymentStatus == 1 ? '已缴费' : '未缴费' }}
+          {{ scope.row.paymentStatus == 1 ? "已缴费" : "未缴费" }}
         </template>
       </el-table-column>
       <el-table-column align="center" label="缴费时间" prop="createTime">
       </el-table-column>
     </el-table>
     <pagination
-        sync
-        save-key="recordDetail"
-        :total.sync="rules.total"
-        :page.sync="rules.page"
-        :limit.sync="rules.limit"
-        :page-sizes="rules.page_size"
-        @pagination="getList"
-      />
+      sync
+      save-key="recordDetail"
+      :total.sync="rules.total"
+      :page.sync="rules.page"
+      :limit.sync="rules.limit"
+      :page-sizes="rules.page_size"
+      @pagination="getList"
+    />
   </div>
 </template>
 
 <script>
 import pagination from "@/components/Pagination/index";
-import { cloudQueryPage } from '../api'
+import { cloudQueryPage } from "../api";
 export default {
-  props: ['detail'],
+  props: ["detail"],
   components: { pagination },
   data() {
     return {
@@ -56,13 +70,13 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50], // 选择限制显示条数
-      },
-    }
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
+      }
+    };
   },
   mounted() {
-    console.log(this.detail)
-    this.getList()
+    console.log(this.detail);
+    this.getList();
   },
   methods: {
     async getList() {
@@ -70,17 +84,17 @@ export default {
         const res = await cloudQueryPage({
           paymentId: this.detail.id,
           page: this.rules.page,
-          rows: this.rules.limit,
+          rows: this.rules.limit
         });
-        console.log(res)
+        console.log(res);
         this.rules.total = res.data.total;
         this.tableList = res.data.rows;
       } catch (e) {
-        console.log(e)
+        console.log(e);
       }
-    },
+    }
   }
-}
+};
 </script>
 
 <style lang="less" scoped>

+ 6 - 6
src/views/studentManager/studentGroupPractice.vue

@@ -2,7 +2,7 @@
   <div class="m-container">
     <h2>
       <div class="squrt"></div>
-      待激活云
+      待激活云练
     </h2>
     <div class="m-core">
       <el-form :inline="true" :model="searchForm">
@@ -52,7 +52,7 @@
         v-if="$helpers.permission('cloudTeacherOrder/pay/student')"
         type="primary"
         style="margin-bottom: 20px"
-        >激活云练</el-button
+        >激活云练</el-button
       >
       <el-button
         type="primary"
@@ -97,7 +97,7 @@
             prop="subjectName"
             label="学员声部"
           ></el-table-column>
-          <el-table-column align="center" prop="type" label="云练类型">
+          <el-table-column align="center" prop="type" label="云练类型">
             <template slot-scope="scope">
               {{ scope.row.type | memberEnumType }}
             </template>
@@ -159,7 +159,7 @@
     </div>
 
     <el-dialog
-      title="激活云练"
+      title="激活云练"
       :visible.sync="giveMemberVisible"
       width="1000px"
       v-if="giveMemberVisible"
@@ -321,14 +321,14 @@ export default {
         this,
         {
           url: "/api-web/export/now",
-          fileName: "待激活云练.xls",
+          fileName: "待激活云练.xls",
           method: "post",
           params: {
             exportEnum: "EXPORT_CLOUD_TEACHER_ORDER_INACTIVE",
             queryInfo: params
           }
         },
-        "您确定导出待激活云练?"
+        "您确定导出待激活云练?"
       );
     },
     async submitDateReset() {

+ 25 - 20
src/views/studentManager/studentGroupRecord.vue

@@ -2,13 +2,13 @@
   <div class="m-container">
     <h2>
       <div class="squrt"></div>
-      云练缴费记录
+      云练缴费记录
     </h2>
     <div class="m-core">
       <el-form :inline="true" :model="searchForm">
         <el-form-item prop="period">
           <el-select
-            placeholder="云练单位"
+            placeholder="云练单位"
             clearable
             v-model.trim="searchForm.period"
             style="width: 100% !important"
@@ -42,7 +42,7 @@
             style="width: 410px"
             type="daterange"
             :picker-options="{
-              firstDayOfWeek: 1,
+              firstDayOfWeek: 1
             }"
             :default-time="['00:00:00', '23:59:59']"
             range-separator="至"
@@ -69,7 +69,7 @@
           ></el-table-column>
           <el-table-column align="center" prop="organName" label="分部名称">
           </el-table-column>
-          <el-table-column align="center" prop="name" label="云练单位">
+          <el-table-column align="center" prop="name" label="云练单位">
             <template slot-scope="scope">
               {{ scope.row.period | memberEnumType }}
             </template>
@@ -109,10 +109,15 @@
             prop="createTime"
             label="创建时间"
           ></el-table-column>
-          <el-table-column align="center" prop="remark" label="备注" width="220px">
+          <el-table-column
+            align="center"
+            prop="remark"
+            label="备注"
+            width="220px"
+          >
             <template slot-scope="scope">
-                  <overflow-text width="200px" :text="scope.row.remark" />
-                </template>
+              <overflow-text width="200px" :text="scope.row.remark" />
+            </template>
           </el-table-column>
           <el-table-column align="center" label="操作">
             <template slot-scope="scope">
@@ -120,7 +125,7 @@
                 type="text"
                 v-if="
                   scope.row.status == 'REJECT' &&
-                  $helpers.permission('cloudCoachPaymentProgram/update')
+                    $helpers.permission('cloudCoachPaymentProgram/update')
                 "
                 @click="onUpdate(scope.row)"
                 >修改</el-button
@@ -129,9 +134,9 @@
                 type="text"
                 v-if="
                   scope.row.status != 'REJECT' &&
-                  $helpers.permission(
-                    'studentCloudCoachPaymentDetails/queryPage'
-                  )
+                    $helpers.permission(
+                      'studentCloudCoachPaymentDetails/queryPage'
+                    )
                 "
                 @click="onDetail(scope.row)"
                 >详情</el-button
@@ -151,7 +156,7 @@
     </div>
 
     <el-dialog
-      title="激活云练"
+      title="激活云练"
       :visible.sync="recordVisible"
       width="1000px"
       v-if="recordVisible"
@@ -161,7 +166,7 @@
     </el-dialog>
 
     <el-dialog
-      title="修改云练缴费"
+      title="修改云练缴费"
       width="500px"
       :visible.sync="memberVisible"
     >
@@ -195,7 +200,7 @@ export default {
       searchForm: {
         visitTime: [],
         period: null,
-        organId: null,
+        organId: null
       },
       tableList: [],
       rules: {
@@ -203,9 +208,9 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50], // 选择限制显示条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
-      selectDetail: null,
+      selectDetail: null
     };
   },
   async mounted() {
@@ -220,7 +225,7 @@ export default {
           ...search,
           ...getTimes(visitTime, ["startTime", "endTime"]),
           page: this.rules.page,
-          rows: this.rules.limit,
+          rows: this.rules.limit
         });
         this.rules.total = res.data.total;
         this.tableList = res.data.rows;
@@ -233,7 +238,7 @@ export default {
     onReSet() {
       this.searchForm = {
         visitTime: [],
-        period: null,
+        period: null
       };
       this.search();
     },
@@ -247,7 +252,7 @@ export default {
     },
     submitAddMember() {
       this.$refs.addMember.submit();
-    },
-  },
+    }
+  }
 };
 </script>

+ 149 - 88
src/views/studentManager/studentList.vue

@@ -19,7 +19,7 @@
             clearable
             placeholder="学生姓名或电话"
             @keydown.enter.native="
-              (e) => {
+              e => {
                 e.target.blur();
                 $refs.saveForm.save();
                 onSearch();
@@ -152,7 +152,7 @@
             class="multiple"
             v-model.trim="searchForm.isRecord"
             clearable
-            placeholder="是否使用云练"
+            placeholder="是否使用云练"
           >
             <el-option label="是" value="1"></el-option>
             <el-option label="否" value="0"></el-option>
@@ -174,7 +174,7 @@
         type="primary"
         @click="addStudentMember"
         icon="el-icon-plus"
-        >创建云练缴费</el-button
+        >创建云练缴费</el-button
       >
       <el-button
         v-if="$helpers.permission('studentManage/register')"
@@ -185,7 +185,11 @@
       >
         新增学员
       </el-button>
-      <el-button @click="onCreateQRCode" type="primary" style="margin-bottom: 20px">
+      <el-button
+        @click="onCreateQRCode"
+        type="primary"
+        style="margin-bottom: 20px"
+      >
         学员激活列表
       </el-button>
       <!-- 列表 -->
@@ -251,7 +255,9 @@
                     <el-form-item label="VIP老师" v-if="tenantId == 1">
                       <Tooltip
                         :content="
-                          props.row.vipTeacherName ? props.row.vipTeacherName : '--'
+                          props.row.vipTeacherName
+                            ? props.row.vipTeacherName
+                            : '--'
                         "
                       /> </el-form-item
                   ></el-col>
@@ -269,7 +275,9 @@
                     <el-form-item label="声部课老师">
                       <Tooltip
                         :content="
-                          props.row.normalTeacherName ? props.row.normalTeacherName : '--'
+                          props.row.normalTeacherName
+                            ? props.row.normalTeacherName
+                            : '--'
                         "
                       /> </el-form-item
                   ></el-col>
@@ -277,7 +285,9 @@
                     <el-form-item label="合奏课老师">
                       <Tooltip
                         :content="
-                          props.row.mixTeacherName ? props.row.mixTeacherName : '--'
+                          props.row.mixTeacherName
+                            ? props.row.mixTeacherName
+                            : '--'
                         "
                       /> </el-form-item
                   ></el-col>
@@ -300,7 +310,9 @@
                   >
                   <el-col :span="4">
                     <el-form-item label="加油包">
-                      <span>{{ props.row.comeOnPackage | studentPackage }}</span>
+                      <span>{{
+                        props.row.comeOnPackage | studentPackage
+                      }}</span>
                     </el-form-item></el-col
                   >
                   <el-col :span="4">
@@ -330,7 +342,12 @@
               <copy-text>{{ scope.row.organName }}</copy-text>
             </template>
           </el-table-column>
-          <el-table-column align="center" prop="userId" label="学员信息" width="140px">
+          <el-table-column
+            align="center"
+            prop="userId"
+            label="学员信息"
+            width="140px"
+          >
             <template slot-scope="scope">
               {{ scope.row.username }}
               ({{ scope.row.gender ? "男" : "女" }})<br />
@@ -340,7 +357,12 @@
           <!-- <el-table-column align="center" prop="username" label="学员姓名">
             <template slot-scope="scope"> </template>
           </el-table-column> -->
-          <el-table-column align="center" prop="realName" label="家长信息" width="140px">
+          <el-table-column
+            align="center"
+            prop="realName"
+            label="家长信息"
+            width="140px"
+          >
             <template slot-scope="scope">
               {{ scope.row.realName }}
               <br />
@@ -417,7 +439,7 @@
               scope.row.serviceTag ? "是" : "否"
             }}</template>
           </el-table-column>
-          <el-table-column align="center" label="是否使用云练">
+          <el-table-column align="center" label="是否使用云练">
             <template slot-scope="scope">{{
               scope.row.recordUserId > 0 ? "是" : "否"
             }}</template>
@@ -553,7 +575,7 @@
                   trigger="click"
                   placement="bottom"
                   :hide-on-click="false"
-                  @visible-change="(val) => showDropdown(val, scope.row)"
+                  @visible-change="val => showDropdown(val, scope.row)"
                 >
                   <span class="el-dropdown-link">
                     操作<i
@@ -563,7 +585,7 @@
                         activeRow &&
                         activeRow.userId == scope.row.userId
                           ? 'el-icon-arrow-up'
-                          : 'el-icon-arrow-down',
+                          : 'el-icon-arrow-down'
                       ]"
                     ></i>
                   </span>
@@ -578,14 +600,18 @@
                         class="el-button--text"
                         :to="{
                           path: `/business/studentDetail`,
-                          query: { ...scope.row },
+                          query: { ...scope.row }
                         }"
                         >查看</router-link
                       >
                     </el-dropdown-item>
                     <el-dropdown-item
                       style="width: 180px"
-                      v-if="$helpers.permission('studentManage/studentUpdate/setStudent')"
+                      v-if="
+                        $helpers.permission(
+                          'studentManage/studentUpdate/setStudent'
+                        )
+                      "
                       @click.native="setStudent(scope.row)"
                     >
                       <el-button type="text" style="padding-left: 10px"
@@ -597,11 +623,15 @@
                       v-if="$helpers.permission('studentManage/studentUpdate')"
                       @click.native="resetStudent(scope.row)"
                     >
-                      <el-button type="text" style="padding-left: 10px">修改</el-button>
+                      <el-button type="text" style="padding-left: 10px"
+                        >修改</el-button
+                      >
                     </el-dropdown-item>
                     <el-dropdown-item
                       style="width: 180px"
-                      v-if="$helpers.permission('api-auth/user/updatePassword2')"
+                      v-if="
+                        $helpers.permission('api-auth/user/updatePassword2')
+                      "
                       @click.native="resetPassWrod(scope.row)"
                     >
                       <el-button type="text" style="padding-left: 10px"
@@ -612,7 +642,7 @@
                       style="width: 180px"
                       v-if="
                         scope.row.isSignedContract &&
-                        $helpers.permission('sysUserContracts/getLatest')
+                          $helpers.permission('sysUserContracts/getLatest')
                       "
                       @click.native="lookContracts(scope.row)"
                     >
@@ -622,11 +652,13 @@
                     </el-dropdown-item>
                     <el-dropdown-item
                       style="width: 180px"
-                      v-if="$helpers.permission('studentManage/updateStudentMember')"
+                      v-if="
+                        $helpers.permission('studentManage/updateStudentMember')
+                      "
                       @click.native="setClound(scope.row)"
                     >
                       <el-button type="text" style="padding-left: 10px"
-                        >云练时长调整</el-button
+                        >云练时长调整</el-button
                       >
                     </el-dropdown-item>
                   </el-dropdown-menu>
@@ -710,7 +742,10 @@
           style="margin-bottom: 15px"
         ></el-alert>
         <el-form-item label="学生姓名" prop="name">
-          <el-input v-model.trim="studentForm.name" stlye="width:202px"></el-input>
+          <el-input
+            v-model.trim="studentForm.name"
+            stlye="width:202px"
+          ></el-input>
         </el-form-item>
         <el-form-item label="学生性别" prop="sex">
           <el-select
@@ -732,7 +767,7 @@
             value-format="yyyy-MM-dd"
             type="date"
             :picker-options="{
-              firstDayOfWeek: 1,
+              firstDayOfWeek: 1
             }"
             placeholder="选择日期"
           ></el-date-picker>
@@ -775,8 +810,8 @@
             {
               pattern: /^1\d{10}$/,
               message: '请输入正确的手机号',
-              trigger: 'blur',
-            },
+              trigger: 'blur'
+            }
           ]"
         >
           <!--   @blur="checkPhone(studentForm.phone)" -->
@@ -786,7 +821,10 @@
             v-model.trim="studentForm.phone"
           ></el-input>
         </el-form-item>
-        <el-form-item :label="tenantId == 28 ? '城市' : '所属分部'" prop="organId">
+        <el-form-item
+          :label="tenantId == 28 ? '城市' : '所属分部'"
+          prop="organId"
+        >
           <el-select
             style="width: 202px !important"
             class="multiple"
@@ -944,7 +982,10 @@
               是否是新用户
               <el-tooltip placement="top" popper-class="mTooltip">
                 <div slot="content">未购买VIP课程的学员为新用户</div>
-                <i class="el-icon-question" style="font-size: 18px; color: #f56c6c"></i>
+                <i
+                  class="el-icon-question"
+                  style="font-size: 18px; color: #f56c6c"
+                ></i>
               </el-tooltip>
             </p>
           </template>
@@ -997,7 +1038,9 @@
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button @click="studentVisible = false">取 消</el-button>
-        <el-button type="primary" v-if="isNew" @click="submitAddStudent">确 定</el-button>
+        <el-button type="primary" v-if="isNew" @click="submitAddStudent"
+          >确 定</el-button
+        >
         <el-button type="primary" v-if="!isNew" @click="resetStudentSubmie"
           >确 定</el-button
         >
@@ -1022,8 +1065,8 @@
             {
               pattern: /^1\d{10}$/,
               message: '请输入正确的手机号',
-              trigger: 'blur',
-            },
+              trigger: 'blur'
+            }
           ]"
         >
           <copy-text>{{ passwrodForm.phone }}</copy-text>
@@ -1037,8 +1080,8 @@
             {
               pattern: /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/,
               message: '密码为6-20位数字和字母组合',
-              trigger: 'blur',
-            },
+              trigger: 'blur'
+            }
           ]"
         >
           <el-input v-model.trim="passwrodForm.password"></el-input>
@@ -1052,8 +1095,8 @@
             {
               pattern: /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/,
               message: '密码为6-20位数字和字母组合',
-              trigger: 'blur',
-            },
+              trigger: 'blur'
+            }
           ]"
         >
           <el-input v-model.trim="passwrodForm.password2"></el-input>
@@ -1083,7 +1126,11 @@
       />
     </el-dialog>
 
-    <el-dialog title="创建云教练缴费" width="500px" :visible.sync="memberVisible">
+    <el-dialog
+      title="创建云练习缴费"
+      width="500px"
+      :visible.sync="memberVisible"
+    >
       <createMember
         ref="addMember"
         v-if="memberVisible"
@@ -1096,7 +1143,11 @@
         <el-button type="primary" @click="submitAddMember">确 定</el-button>
       </div>
     </el-dialog>
-    <el-dialog title="云教练时长调整" width="500px" :visible.sync="cloundDateVisible">
+    <el-dialog
+      title="云练习时长调整"
+      width="500px"
+      :visible.sync="cloundDateVisible"
+    >
       <setMemberDate
         v-if="cloundDateVisible"
         :row="activatedRow"
@@ -1119,7 +1170,7 @@ import {
   getStudentInfoByPhone,
   registerStudent,
   updateStudent,
-  getLatest,
+  getLatest
 } from "@/api/studentManager";
 import { queryByOrganId } from "@/api/systemManage";
 import { getGradeList } from "@/views/2021memeberActionManager/api";
@@ -1128,7 +1179,7 @@ import { vaildStudentUrl } from "@/utils/validate";
 import { resetPassword2, getTeacher, getAgreement } from "@/api/buildTeam";
 import {
   organizationCloudTeacherFeeQueryPage,
-  subjectListTree,
+  subjectListTree
 } from "@/api/specialSetting";
 import axios from "axios";
 import qs from "qs";
@@ -1147,7 +1198,7 @@ export default {
     protocolModel,
     studentExt,
     Tooltip,
-    setMemberDate,
+    setMemberDate
   },
   data() {
     return {
@@ -1170,7 +1221,7 @@ export default {
         isNewUser: null,
         hasTeacher: null,
         isRecord: null,
-        hasMember: null,
+        hasMember: null
       },
       memberVisible: false,
       multipleSelection: [],
@@ -1185,7 +1236,7 @@ export default {
         limit: 10, // 限制显示条数
         page: 1, // 当前页
         total: 0, // 总条数
-        page_size: [10, 20, 40, 50], // 选择限制显示条数
+        page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
       studentForm: {
         phone: "",
@@ -1203,11 +1254,11 @@ export default {
         comeOnPackage: 0,
         school: null,
         currentClass: "",
-        currentGradeNum: "",
+        currentGradeNum: ""
       },
       studentUpdatePackage: {
         carePackage: 0,
-        comeOnPackage: 0,
+        comeOnPackage: 0
       },
       studentRules: {
         name: [{ required: true, message: "请输入学生姓名" }],
@@ -1218,7 +1269,7 @@ export default {
         serviceTag: [{ required: true, message: "请选择是否参与服务" }],
         isNewUser: [{ required: true, message: "请选择是否是新用户" }],
         operatingTag: [{ required: true, message: "请选择是否参与运营" }],
-        teacherId: [{ required: true, message: "请选择指导老师" }],
+        teacherId: [{ required: true, message: "请选择指导老师" }]
       },
       isNew: false,
       active: null,
@@ -1230,7 +1281,7 @@ export default {
       passwrodForm: {
         phone: "",
         password: "",
-        password2: "",
+        password2: ""
       },
       activatedRow: null,
       protocolVisible: false,
@@ -1239,7 +1290,7 @@ export default {
       tenantId: null,
       studentGradeList: [],
       showDropdownFlag: false,
-      cloundDateVisible: false,
+      cloundDateVisible: false
     };
   },
   mounted() {
@@ -1255,7 +1306,9 @@ export default {
     if (this.$route.params.organId) {
       this.searchForm.organId = [];
 
-      this.searchForm.organId = this.searchForm.organId.push(this.$route.params.organId);
+      this.searchForm.organId = this.searchForm.organId.push(
+        this.$route.params.organId
+      );
     }
     this.$store.dispatch("setBranchs");
     this.$store.dispatch("setTeachers");
@@ -1292,7 +1345,7 @@ export default {
     addStudentMember() {
       if (this.multipleSelection.length > 0) {
         let organIds = [];
-        this.multipleSelection.forEach((m) => {
+        this.multipleSelection.forEach(m => {
           if (!organIds.includes(m.organId)) {
             organIds.push(m.organId);
           }
@@ -1314,14 +1367,15 @@ export default {
     onCreateQRCode() {
       // 生成报名二维码
       this.qrcodeStatus = true;
-      this.qrcodeUrl = vaildStudentUrl() + `/#/queryStudentPer?tenantId=` + this.tenantId;
+      this.qrcodeUrl =
+        vaildStudentUrl() + `/#/queryStudentPer?tenantId=` + this.tenantId;
     },
     getList() {
       let params = { ...this.searchForm };
       params.rows = this.pageInfo.limit;
       params.page = this.pageInfo.page;
       params.organId = this.searchForm.organId.join(",");
-      queryStudentList(params).then((res) => {
+      queryStudentList(params).then(res => {
         if (res.code == 200) {
           this.tableList = res.data.rows;
           this.pageInfo.total = res.data.total;
@@ -1339,7 +1393,7 @@ export default {
         hasPracticeCourse: null,
         operatingTag: null,
         serviceTag: null,
-        teacherId: null,
+        teacherId: null
       };
       this.getList();
     },
@@ -1353,44 +1407,49 @@ export default {
         hasCourse: searchForm.hasCourse == "" ? null : searchForm.hasCourse,
         // isMake: searchForm.isMake ? searchForm.isMake : null,
         hasPracticeCourse:
-          searchForm.hasPracticeCourse + "" ? searchForm.hasPracticeCourse : null,
-        operatingTag: searchForm.operatingTag + "" ? searchForm.operatingTag : null,
+          searchForm.hasPracticeCourse + ""
+            ? searchForm.hasPracticeCourse
+            : null,
+        operatingTag:
+          searchForm.operatingTag + "" ? searchForm.operatingTag : null,
         serviceTag: searchForm.serviceTag + "" ? searchForm.serviceTag : null,
         teacherId: searchForm.teacherId + "" ? searchForm.teacherId : null,
-        carePackage: searchForm.carePackage + "" ? searchForm.carePackage : null,
-        comeOnPackage: searchForm.comeOnPackage + "" ? searchForm.comeOnPackage : null,
+        carePackage:
+          searchForm.carePackage + "" ? searchForm.carePackage : null,
+        comeOnPackage:
+          searchForm.comeOnPackage + "" ? searchForm.comeOnPackage : null,
         isNewUser: searchForm.isNewUser + "" ? searchForm.isNewUser : null,
         hasTeacher: searchForm.hasTeacher + "" ? searchForm.hasTeacher : null,
         isRecord: searchForm.isRecord + "" ? searchForm.isRecord : null,
-        hasMember: searchForm.hasMember + "" ? searchForm.hasMember : null,
+        hasMember: searchForm.hasMember + "" ? searchForm.hasMember : null
       };
       const options = {
         method: "POST",
         headers: {
           Authorization: getToken(),
-          tenantId: getTenantId(),
+          tenantId: getTenantId()
         },
         url,
         data: qs.stringify(data),
-        responseType: "blob",
+        responseType: "blob"
       };
 
       this.$confirm("确定导出学员名单?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning",
+        type: "warning"
       })
         .then(() => {
           load.startLoading();
           axios(options)
-            .then((res) => {
+            .then(res => {
               let blob = new Blob([res.data], {
                 // type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8',
-                type: "application/vnd.ms-excel;charset=utf-8",
+                type: "application/vnd.ms-excel;charset=utf-8"
                 // word文档为application/msword,pdf文档为application/pdf,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8
               });
               let text = new Response(blob).text();
-              text.then((res) => {
+              text.then(res => {
                 // 判断是否报错
                 if (res.indexOf("code") != -1) {
                   let json = JSON.parse(res);
@@ -1409,7 +1468,9 @@ export default {
                   let link = document.createElement("a");
                   let nowTime = new Date();
                   let ymd =
-                    nowTime.getFullYear() + (nowTime.getMonth() + 1) + nowTime.getDate();
+                    nowTime.getFullYear() +
+                    (nowTime.getMonth() + 1) +
+                    nowTime.getDate();
                   let fname = `导出学员名单` + ymd + ".xls"; //下载文件的名字
                   link.href = objectUrl;
                   link.setAttribute("download", fname);
@@ -1420,7 +1481,7 @@ export default {
 
               load.endLoading();
             })
-            .catch((error) => {
+            .catch(error => {
               this.$message.error("导出数据失败,请联系管理员");
               load.endLoading();
             });
@@ -1431,7 +1492,7 @@ export default {
       var regu = /^1\d{10}$/;
       var re = new RegExp(regu);
       if (re.test(val)) {
-        getStudentInfoByPhone({ mobile: this.studentForm.phone }).then((res) => {
+        getStudentInfoByPhone({ mobile: this.studentForm.phone }).then(res => {
           if (res.code == 200) {
             if (res.data) {
               this.studentForm = {
@@ -1440,7 +1501,7 @@ export default {
                 parseName: res.data.parentsName,
                 // sound: parseInt(res.data.subjectIdList),
                 phone: val,
-                date: res.data.birthdate,
+                date: res.data.birthdate
               };
             }
           }
@@ -1450,7 +1511,7 @@ export default {
     submitAddStudent() {
       const studentForm = this.studentForm;
       // 效验  然后组数据提交
-      this.$refs["studentForm"].validate((item) => {
+      this.$refs["studentForm"].validate(item => {
         if (item) {
           let obj = {
             phone: studentForm.phone,
@@ -1469,9 +1530,9 @@ export default {
             cooperationOrganId: studentForm.school,
             currentClass: studentForm.currentClass,
             currentGradeNum: studentForm.currentGradeNum,
-            courseTeacher: studentForm.courseTeacher,
+            courseTeacher: studentForm.courseTeacher
           };
-          registerStudent(obj).then((res) => {
+          registerStudent(obj).then(res => {
             if (res.code == 200) {
               this.$message.success("添加成功");
               this.studentVisible = false;
@@ -1484,7 +1545,7 @@ export default {
     // 修改学生信息
     resetStudentSubmie() {
       const studentForm = this.studentForm;
-      this.$refs["studentForm"].validate((item) => {
+      this.$refs["studentForm"].validate(item => {
         if (item) {
           let obj = {
             phone: studentForm.phone,
@@ -1504,9 +1565,9 @@ export default {
             cooperationOrganId: studentForm.school,
             currentClass: studentForm.currentClass,
             currentGradeNum: studentForm.currentGradeNum,
-            courseTeacher: studentForm.courseTeacher,
+            courseTeacher: studentForm.courseTeacher
           };
-          updateStudent(obj).then((res) => {
+          updateStudent(obj).then(res => {
             if (res.code == 200) {
               this.$message.success("修改成功");
               this.studentVisible = false;
@@ -1521,8 +1582,8 @@ export default {
       try {
         await subjectListTree({
           delFlag: "NO",
-          rows: 9999,
-        }).then((res) => {
+          rows: 9999
+        }).then(res => {
           let result = res.data;
           if (res.code == 200) {
             let tempArray = [];
@@ -1530,17 +1591,17 @@ export default {
             result.rows.forEach((item, index) => {
               let subject = [];
               let nowSubject = item.subjects || [];
-              nowSubject.forEach((s) => {
+              nowSubject.forEach(s => {
                 subject.push({
                   value: s.id,
-                  label: s.name,
+                  label: s.name
                 });
               });
 
               tempArray[index] = {
                 label: item.name,
                 value: item.id,
-                options: subject,
+                options: subject
               };
             });
             this.subjectList = tempArray;
@@ -1595,11 +1656,11 @@ export default {
           extSubjectIds: row.extSubjectIds || null,
           currentClass: row.currentClass || null,
           currentGradeNum: row.currentGradeNum || null,
-          courseTeacher: row.courseTeacher || null,
+          courseTeacher: row.courseTeacher || null
         };
         this.studentUpdatePackage = {
           carePackage: row.carePackage,
-          comeOnPackage: row.comeOnPackage,
+          comeOnPackage: row.comeOnPackage
         };
       });
     },
@@ -1622,7 +1683,7 @@ export default {
         carePackage: row.carePackage,
         comeOnPackage: row.comeOnPackage,
         cooperationOrganId: row.cooperationOrganId || null,
-        extSubjectIds: row.extSubjectIds,
+        extSubjectIds: row.extSubjectIds
       };
       this.extVisible = true;
     },
@@ -1639,7 +1700,7 @@ export default {
       this.passwrodForm = {
         phone: "",
         password: "",
-        password2: "",
+        password2: ""
       };
       this.$refs["passwrodForm"].resetFields();
       this.passwrodVisiable = false;
@@ -1649,14 +1710,14 @@ export default {
         this.$message.error("两次密码必须相同");
         return;
       }
-      this.$refs["passwrodForm"].validate((res) => {
+      this.$refs["passwrodForm"].validate(res => {
         if (res) {
           // 发请求
           resetPassword2({
             mobile: this.passwrodForm.phone,
             newPassword: this.passwrodForm.password,
-            userId: this.activatedRow.userId,
-          }).then((res) => {
+            userId: this.activatedRow.userId
+          }).then(res => {
             if (res.code == 200) {
               // 修改成功
               this.$message.success("修改成功");
@@ -1670,7 +1731,7 @@ export default {
       this.studentForm.teacherId = null;
       this.studentForm.school = null;
       if (val) {
-        await getTeacher({ organId: val }).then((res) => {
+        await getTeacher({ organId: val }).then(res => {
           if (res.code == 200) {
             this.maskTeacherList = res.data;
             if (this.maskTeacherList <= 0) {
@@ -1680,7 +1741,7 @@ export default {
             }
           }
         });
-        queryByOrganId({ organId: val }).then((res) => {
+        queryByOrganId({ organId: val }).then(res => {
           if (res.code == 200) {
             this.cooperationList = res.data;
           }
@@ -1691,7 +1752,7 @@ export default {
       }
     },
     async lookContracts(row) {
-      await getLatest({ userId: row.userId }).then((res) => {
+      await getLatest({ userId: row.userId }).then(res => {
         if (res.code == 200) {
           if (res.data) {
             this.protocolVersions = res.data;
@@ -1704,8 +1765,8 @@ export default {
       let dayjs = this.$helpers.dayjs;
       let nowDate = new Date().getTime();
       return nowDate - dayjs(dateStr).valueOf() < 0;
-    },
-  },
+    }
+  }
 };
 </script>
 <style lang="scss" scoped>

+ 1 - 1
src/views/teacherManager/teacherOperation/components/teacherOperation.vue

@@ -271,7 +271,7 @@
               </el-col>
               <el-col :span="12">
                 <el-form-item
-                  label="禁用云练"
+                  label="禁用云练"
                   label-width="90px"
                   class="course"
                 >

+ 16 - 16
src/views/teamBuild/signupList.vue

@@ -244,7 +244,7 @@
                       审核中
                       <el-tooltip placement="top" popper-class="mTooltip">
                         <div slot="content">
-                          不购买云练系统学员数量,不包含已缴费学员
+                          不购买云练系统学员数量,不包含已缴费学员
                         </div>
                         <i
                           class="el-icon-question"
@@ -262,16 +262,16 @@
                   </template>
                 </el-table-column>
                 <el-table-column
-                  label="购买云练人数"
+                  label="购买云练人数"
                   prop="buyCloudTeacherNum"
                   align="center"
                 >
                   <template slot="header">
                     <p>
-                      购买云练人数
+                      购买云练人数
                       <el-tooltip placement="top" popper-class="mTooltip">
                         <div slot="content">
-                          已缴费学员中购买了云练系统的学员总数
+                          已缴费学员中购买了云练系统的学员总数
                         </div>
                         <i
                           class="el-icon-question"
@@ -292,16 +292,16 @@
                   </template>
                 </el-table-column>
                 <el-table-column
-                  label="入团未购云练"
+                  label="入团未购云练"
                   prop="noCloudTeacherStudentNumOfNormal"
                   align="center"
                 >
                   <template slot="header">
                     <p>
-                      入团未购云
+                      入团未购云练
                       <el-tooltip placement="top" popper-class="mTooltip">
                         <div slot="content">
-                          【在读】学员中,未购买【云练系统】学员数量
+                          【在读】学员中,未购买【云练系统】学员数量
                         </div>
                         <i
                           class="el-icon-question"
@@ -542,7 +542,7 @@
             v-model.trim="searchFrom.hasCloudTeacher"
             clearable
             filterable
-            placeholder="是否购买云练"
+            placeholder="是否购买云练"
           >
             <el-option label="是" :value="1" />
             <el-option label="否" :value="0" />
@@ -652,7 +652,7 @@
                   </el-form-item>
                 </el-col>
                 <!-- <el-col :span="4">
-                  <el-form-item label="是否购买云练:">
+                  <el-form-item label="是否购买云练:">
                     <span>{{
                       props.row.hasCloudTeacher == 1 ? "是" : "否"
                     }}</span>
@@ -830,7 +830,7 @@
             <p style="position: relative; display: flex">
               解除限制
               <el-tooltip placement="top" popper-class="mTooltip">
-                <div slot="content">学员是否受到不购买云练的缴费限制</div>
+                <div slot="content">学员是否受到不购买云练的缴费限制</div>
                 <i
                   class="el-icon-question"
                   style="font-size: 18px; color: #f56c6c"
@@ -1130,7 +1130,7 @@
           <el-popover placement="right" width="500" trigger="click">
             <div class="popoverWrap">
               <p>乐团退团退费规则:</p>
-              <p>退还云练费用:报名缴费时缴费的云练费用</p>
+              <p>退还云练费用:报名缴费时缴费的云练费用</p>
               <p>退还课程费用:缴费总额-已结束课时单价之和</p>
               <p>退还乐器费用:报名缴费时缴纳的乐器费用(团购、租金)</p>
               <p>退还教辅费用:报名缴费时缴费的教辅费用</p>
@@ -1306,7 +1306,7 @@ export default {
         currentGrade: null, // 入学年级
         paymentStatus: "",
         visited: "",
-        hasCloudTeacher: null, // 是否购买云
+        hasCloudTeacher: null, // 是否购买云练
         payingStatus: null,
         noneNeedCloudTeacher: null,
         studentStatus: null
@@ -1377,9 +1377,9 @@ export default {
         ]
       },
       quitRules: {
-        isCloudTeacherAmount: [{ required: true, message: "请输入云练费用" }],
+        isCloudTeacherAmount: [{ required: true, message: "请输入云练费用" }],
         cloudTeacherAmount: [
-          { required: true, message: "请输入云练金额", trigger: "blur" }
+          { required: true, message: "请输入云练金额", trigger: "blur" }
         ],
         isRefundCourseFee: [
           { required: true, message: "请选择是否退还课程费用" }
@@ -2086,7 +2086,7 @@ export default {
               item.type == "CLOUD_TEACHER" ||
               item.type == "CLOUD_TEACHER_PLUS"
             ) {
-              item.name = "云练";
+              item.name = "云练";
             } else if (item.type == "COURSE") {
               item.name = "课程";
             } else if (item.type == "ORGAN_SHARE_PROFIT") {
@@ -2331,7 +2331,7 @@ export default {
       return row.paymentStatus == 0;
     },
     relieve(row) {
-      this.$confirm("操作后该学员即可不购买云练缴费入团", "提示", {
+      this.$confirm("操作后该学员即可不购买云练缴费入团", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
         type: "warning"

+ 44 - 18
src/views/teamDetail/components/modals/quite-team.vue

@@ -15,7 +15,10 @@
         </el-col>
         <el-col :span="12">
           <el-form-item label="乐团名称">
-            <overflow-text :text="quitForm.musicGroupName" width="150px"></overflow-text>
+            <overflow-text
+              :text="quitForm.musicGroupName"
+              width="150px"
+            ></overflow-text>
             <!-- <span>{{}}</span>   -->
           </el-form-item>
         </el-col>
@@ -23,10 +26,16 @@
 
       <el-row>
         <el-form-item label="是否回访" prop="isVisit">
-          <el-radio v-model.trim="quitForm.isVisit" :label="true" :disabled="isDisabled"
+          <el-radio
+            v-model.trim="quitForm.isVisit"
+            :label="true"
+            :disabled="isDisabled"
             >是</el-radio
           >
-          <el-radio :disabled="isDisabled" v-model.trim="quitForm.isVisit" :label="false"
+          <el-radio
+            :disabled="isDisabled"
+            v-model.trim="quitForm.isVisit"
+            :label="false"
             >否</el-radio
           >
         </el-form-item>
@@ -126,7 +135,9 @@
               v-model.trim="quitForm.courseFee"
               style="width: 180px"
             >
-              <template slot="append">元</template>
+              <template slot="append"
+                >元</template
+              >
             </el-input>
           </el-form-item>
         </el-row>
@@ -160,7 +171,9 @@
               v-model.trim="quitForm.musicalFee"
               style="width: 180px"
             >
-              <template slot="append">元</template>
+              <template slot="append"
+                >元</template
+              >
             </el-input>
           </el-form-item>
         </el-row>
@@ -194,7 +207,9 @@
               v-model.trim="quitForm.accessoriesFee"
               style="width: 180px"
             >
-              <template slot="append">元</template>
+              <template slot="append"
+                >元</template
+              >
             </el-input>
           </el-form-item>
         </el-row>
@@ -228,13 +243,18 @@
               v-model="quitForm.maintenanceFee"
               style="width: 180px"
             >
-              <template slot="append">元</template>
+              <template slot="append"
+                >元</template
+              >
             </el-input>
           </el-form-item>
         </el-row>
         <el-row>
           <el-form-item label="退团原因" prop="reasonEnum">
-            <el-radio-group v-model="quitForm.reasonEnum" :disabled="isDisabled">
+            <el-radio-group
+              v-model="quitForm.reasonEnum"
+              :disabled="isDisabled"
+            >
               <el-radio-button
                 :label="item.value"
                 v-for="(item, index) in quiteReasonList"
@@ -289,30 +309,36 @@ export default {
   data() {
     return {
       quitRules: {
-        isCloudTeacherAmount: [{ required: true, message: "请输入云练费用" }],
+        isCloudTeacherAmount: [{ required: true, message: "请输入云练费用" }],
         cloudTeacherAmount: [
-          { required: true, message: "请输入云教练金额", trigger: "blur" },
+          { required: true, message: "请输入云练习金额", trigger: "blur" }
+        ],
+        isRefundCourseFee: [
+          { required: true, message: "请选择是否退还课程费用" }
+        ],
+        isRefundInstrumentFee: [
+          { required: true, message: "选择是否退还乐器费用" }
         ],
-        isRefundCourseFee: [{ required: true, message: "请选择是否退还课程费用" }],
-        isRefundInstrumentFee: [{ required: true, message: "选择是否退还乐器费用" }],
         isRefundTeachingAssistantsFee: [
-          { required: true, message: "选择是否退还教辅费用" },
+          { required: true, message: "选择是否退还教辅费用" }
         ],
         isMaintenanceFee: [{ required: true, message: "选择是否退还乐保费用" }],
         maintenanceFee: [{ required: true, message: "请输入退还乐保金额" }],
         reason: [{ required: true, message: "请填写退团退费原因" }],
-        isRefundMemberFee: [{ required: true, message: "请选择是否退还会员费用" }],
-        reasonEnum: [{ required: true, message: "请选择退团原因" }],
+        isRefundMemberFee: [
+          { required: true, message: "请选择是否退还会员费用" }
+        ],
+        reasonEnum: [{ required: true, message: "请选择退团原因" }]
       },
       pickerOptions: {
         firstDayOfWeek: 1,
         disabledDate(time) {
           return time.getTime() > new Date().getTime();
-        },
+        }
       },
-      quiteReasonList,
+      quiteReasonList
     };
-  },
+  }
 };
 </script>
 <style lang="scss" scoped></style>

+ 2 - 2
src/views/teamDetail/components/studentList.vue

@@ -811,7 +811,7 @@
           <el-popover placement="right" width="500" trigger="click">
             <div class="popoverWrap">
               <p>乐团退团退费规则:</p>
-              <p>退还云练费用:报名缴费时缴费的云练费用</p>
+              <p>退还云练费用:报名缴费时缴费的云练费用</p>
               <p>退还课程费用:缴费总额-已结束课时单价之和</p>
               <p>退还乐器费用:报名缴费时缴纳的乐器费用(团购、租金)</p>
               <p>退还教辅费用:报名缴费时缴费的教辅费用</p>
@@ -1568,7 +1568,7 @@ export default {
               } else {
                 params.status = "PROCESSING";
               }
-              // 退还云练费用
+              // 退还云练费用
 
               // 发请求 退团
               applyMusicGroupQuit(params).then(res => {

File diff suppressed because it is too large
+ 486 - 161
src/views/teamDetail/teamCourseList.vue


+ 2 - 2
src/views/tenantSetting/groupRecordManager.vue

@@ -2,7 +2,7 @@
   <div class="m-container">
     <h2>
       <div class="squrt"></div>
-      云练激活记录
+      云练激活记录
     </h2>
     <div class="m-core">
       <save-form
@@ -94,7 +94,7 @@
               {{ scope.row.type | tenantStatus }}
             </template>
           </el-table-column> -->
-          <el-table-column align="center" label="数量/云练类型">
+          <el-table-column align="center" label="数量/云练类型">
             <template slot-scope="scope">
               {{ scope.row.time }}/{{ scope.row.type | memberEnumType }}
             </template>

+ 1 - 1
src/views/withdrawal-application/index.vue

@@ -264,7 +264,7 @@
           <el-popover placement="right" width="500" trigger="click">
             <div class="popoverWrap">
               <p>乐团退团退费规则:</p>
-              <p>退还云练费用:报名缴费时缴费的云练费用</p>
+              <p>退还云练费用:报名缴费时缴费的云练费用</p>
               <p>退还课程费用:缴费总额-已结束课时单价之和</p>
               <p>退还乐器费用:报名缴费时缴纳的乐器费用(团购、租金)</p>
               <p>退还教辅费用:报名缴费时缴费的教辅费用</p>

+ 43 - 27
src/views/withdrawal-application/modals/quit.vue

@@ -13,9 +13,9 @@
         <el-radio v-model.trim="quitForm.status" label="DENIED">拒绝</el-radio>
       </el-form-item>
       <el-form-item
-        label="退还云练费用"
+        label="退还云练费用"
         prop="isRefundMemberFee"
-        v-if=" quitForm.status == 'APPROVED'&&courseViewType==2"
+        v-if="quitForm.status == 'APPROVED' && courseViewType == 2"
       >
         <el-radio v-model.trim="quitForm.isRefundMemberFee" label="true"
           >是</el-radio
@@ -26,16 +26,22 @@
       </el-form-item>
 
       <el-form-item
-        label="退还云练金额"
+        label="退还云练金额"
         prop="cloudTeacherAmount"
-        v-if="quitForm.isRefundMemberFee&&quitForm.isRefundMemberFee!='false' && quitForm.status == 'APPROVED'"
+        v-if="
+          quitForm.isRefundMemberFee &&
+            quitForm.isRefundMemberFee != 'false' &&
+            quitForm.status == 'APPROVED'
+        "
       >
         <el-input
           type="number"
           v-model.trim="quitForm.cloudTeacherAmount"
           style="width: 180px"
         >
-          <template slot="append">元</template>
+          <template slot="append"
+            >元</template
+          >
         </el-input>
       </el-form-item>
       <el-form-item
@@ -81,7 +87,11 @@
       <el-form-item
         label="退还乐保费用"
         prop="isMaintenanceFee"
-        v-if="detail.hasMaintenance&&quitForm.status == 'APPROVED'&&$helpers.tenantId ==1"
+        v-if="
+          detail.hasMaintenance &&
+            quitForm.status == 'APPROVED' &&
+            $helpers.tenantId == 1
+        "
       >
         <el-radio v-model.trim="quitForm.isMaintenanceFee" :label="true"
           >是</el-radio
@@ -100,7 +110,9 @@
           v-model.trim="quitForm.maintenanceFee"
           style="width: 180px"
         >
-          <template slot="append">元</template>
+          <template slot="append"
+            >元</template
+          >
         </el-input>
       </el-form-item>
       <el-form-item label="退团原因" prop="reason">
@@ -133,57 +145,61 @@ export default {
         maintenanceFee: 0,
         cloudTeacherAmount: null,
         isCloudTeacherAmount: null,
-        isRefundMemberFee:null,
-        reason: null,
+        isRefundMemberFee: null,
+        reason: null
       },
-      courseViewType:null
+      courseViewType: null
     };
   },
   mounted() {
-    this.quitForm.cloudTeacherAmount = this.detail.cloudTeacherAmount
-    this.courseViewType =this.detail.musicGroup.courseViewType;
-    console.log(this.courseViewType)
+    this.quitForm.cloudTeacherAmount = this.detail.cloudTeacherAmount;
+    this.courseViewType = this.detail.musicGroup.courseViewType;
+    console.log(this.courseViewType);
   },
-  watch:{
-        "quitForm.isMaintenanceFee"(val) {
+  watch: {
+    "quitForm.isMaintenanceFee"(val) {
       if (val) {
         this.quitForm.maintenanceFee = 300;
       } else {
         this.quitForm.maintenanceFee = 0;
       }
-    },
+    }
   },
   computed: {
     quitRules() {
       const required = this.quitForm.status === "APPROVED";
       return {
-        isCloudTeacherAmount: [{ required: true, message: "请输入云教练费用" }],
-        cloudTeacherAmount: [{ required: true, message: "请输入云教练金额", trigger: 'blur' }],
+        isCloudTeacherAmount: [{ required: true, message: "请输入云练习费用" }],
+        cloudTeacherAmount: [
+          { required: true, message: "请输入云练习金额", trigger: "blur" }
+        ],
         status: [{ required: true, message: "请选择审核状态" }],
         isRefundCourseFee: [{ required, message: "请选择是否退还课程费用" }],
         isRefundInstrumentFee: [{ required, message: "选择是否退还乐器费用" }],
         isRefundTeachingAssistantsFee: [
-          { required, message: "选择是否退还教辅费用" },
+          { required, message: "选择是否退还教辅费用" }
         ],
         isMaintenanceFee: [{ required: true, message: "选择是否退还乐保费用" }],
         maintenanceFee: [{ required: true, message: "请输入退还乐保金额" }],
-        isRefundMemberFee:[{required: true, message: "请选择是否退还会员费用"}],
-        reason: [{ required: true, message: "请填写退团原因" }],
+        isRefundMemberFee: [
+          { required: true, message: "请选择是否退还会员费用" }
+        ],
+        reason: [{ required: true, message: "请填写退团原因" }]
       };
-    },
+    }
   },
   methods: {
     submit() {
-      this.$refs.quitForm.validate(async (valid) => {
+      this.$refs.quitForm.validate(async valid => {
         if (valid) {
           try {
             await this.$confirm("是否确定提交?", "提示", {
-              type: "warning",
+              type: "warning"
             });
             await quitMusicGroup(
               cleanDeep({
                 id: this.detail.id,
-                ...this.quitForm,
+                ...this.quitForm
               })
             );
             this.$emit("close");
@@ -192,7 +208,7 @@ export default {
           } catch (error) {}
         }
       });
-    },
-  },
+    }
+  }
 };
 </script>

+ 42 - 43
src/views/workBenchManager/journal/model/musicGroup.vue

@@ -49,7 +49,7 @@
         ></el-input>
       </el-form-item>
       <el-form-item
-        label="退还云练费用"
+        label="退还云练费用"
         prop="isRefundMemberFee"
         v-if="musicForm.status == 'PROCESSING' && musicForm.courseViewType == 2"
       >
@@ -62,7 +62,7 @@
       </el-form-item> -->
 
     <!-- <el-form-item
-        label="退还云练金额"
+        label="退还云练金额"
         prop="cloudTeacherAmount"
         v-if="
           quitForm.isRefundMemberFee &&
@@ -156,11 +156,11 @@
       ref="musicForm"
       :isDisabled="
         musicForm.status != 'PROCESSING' ||
-        (isManage == 'manage' && musicForm.currentApproveRole == '2') ||
-        (!isManage && musicForm.currentApproveRole == '1')
+          (isManage == 'manage' && musicForm.currentApproveRole == '2') ||
+          (!isManage && musicForm.currentApproveRole == '1')
       "
     />
-     <p style="color:red;paddingLeft:150px">退费金额暂不进入账户余额</p>
+    <p style="color:red;paddingLeft:150px">退费金额暂不进入账户余额</p>
     <span
       slot="footer"
       class="dialog-footer question"
@@ -170,11 +170,13 @@
         <el-popover placement="right" width="500" trigger="click">
           <div class="popoverWrap">
             <p>乐团退团退费规则:</p>
-            <p>退还云练费用:报名缴费时缴费的云练费用</p>
+            <p>退还云练费用:报名缴费时缴费的云练费用</p>
             <p>退还课程费用:缴费总额-已结束课时单价之和</p>
             <p>退还乐器费用:报名缴费时缴纳的乐器费用(团购、租金)</p>
             <p>退还教辅费用:报名缴费时缴费的教辅费用</p>
-            <p v-if="$helpers.tenantId ==1">退还乐保费用:报名缴费时缴费的乐保费用</p>
+            <p v-if="$helpers.tenantId == 1">
+              退还乐保费用:报名缴费时缴费的乐保费用
+            </p>
           </div>
           <el-button
             type="text"
@@ -189,7 +191,7 @@
         <el-button
           type="primary"
           v-permission="'musicGroupQuit/quitMusicGroup/conform'"
-          v-if="isManage=='staff'"
+          v-if="isManage == 'staff'"
           :disabled="musicForm.currentApproveRole == '1'"
           @click="onSubmitGroup(musicForm, 'PROCESSING')"
           >提交审核</el-button
@@ -207,7 +209,7 @@
         <el-button
           :disabled="
             (isManage == 'manage' && musicForm.currentApproveRole == '2') ||
-            (isManage=='staff' && musicForm.currentApproveRole == '1')
+              (isManage == 'staff' && musicForm.currentApproveRole == '1')
           "
           type="danger"
           v-permission="'musicGroupQuit/quitMusicGroup'"
@@ -241,7 +243,7 @@
 import {
   queryApplyRefundDetail,
   musicGroupQuit,
-  quitMusicGroup,
+  quitMusicGroup
 } from "@/api/journal";
 import Tooltip from "@/components/Tooltip";
 import cleanDeep from "clean-deep";
@@ -282,7 +284,7 @@ export default {
     return {
       musicForm: {
         user: {},
-        musicGroup: {},
+        musicGroup: {}
       },
       musicGroupCourse: [],
       vipCourse: [],
@@ -298,28 +300,28 @@ export default {
         musicGroupName: null,
         isVisit: false,
         reason: "",
-        userComment: null,
+        userComment: null
       },
       quitRules: {
         isRefundCourseFee: [
-          { required: true, message: "请选择是否退还课程费用" },
+          { required: true, message: "请选择是否退还课程费用" }
         ],
         isRefundInstrumentFee: [
-          { required: true, message: "请选择是否退还乐器费用" },
+          { required: true, message: "请选择是否退还乐器费用" }
         ],
         isRefundTeachingAssistantsFee: [
-          { required: true, message: "请选择是否退还教辅费用" },
+          { required: true, message: "请选择是否退还教辅费用" }
         ],
         isReturnMemberFee: [
-          { required: true, message: "请选择是否退还会员费用" },
+          { required: true, message: "请选择是否退还会员费用" }
         ],
         isMaintenanceFee: [{ required: true, message: "选择是否退还乐保费用" }],
         maintenanceFee: [{ required: true, message: "请输入退还乐保金额" }],
         memberFee: [{ required: true, message: "请输入退还会员金额" }],
         reason: [{ validator: validateReason, trigger: "blur" }],
-        userComment: [{ required: true, message: "请输入申请理由" }],
+        userComment: [{ required: true, message: "请输入申请理由" }]
       },
-      isManage: false,
+      isManage: false
     };
   },
   mounted() {
@@ -339,19 +341,19 @@ export default {
       // 获取权限
       let isSuperAdmin = this.$store.getters.isSuperAdmin;
       let roles = this.$store.getters.roles;
-    if (isSuperAdmin) {
-      this.isManage = "super";
-    } else {
-      if (roles.indexOf("1") != -1) {
-        this.isManage = "manage";
+      if (isSuperAdmin) {
+        this.isManage = "super";
+      } else {
+        if (roles.indexOf("1") != -1) {
+          this.isManage = "manage";
+        }
+        if (roles.indexOf("2") != -1) {
+          this.isManage = "staff";
+        }
       }
-      if (roles.indexOf("2") != -1) {
-        this.isManage = "staff";
+      if (roles.indexOf("1") != -1 && roles.indexOf("2") != -1) {
+        this.isManage = "super";
       }
-    }
-    if (roles.indexOf("1") != -1 && roles.indexOf("2") != -1) {
-      this.isManage = "super";
-    }
       //   isSuperAdmin:state=>state.user.isSuperAdmin,
       // roles:state=>state.user.roles,
 
@@ -376,7 +378,7 @@ export default {
         //     }
         // })
       } else if (memo.type == "MUSICGROUP") {
-        await musicGroupQuit({ id: memo.Id }).then((res) => {
+        await musicGroupQuit({ id: memo.Id }).then(res => {
           if (res.code == 200) {
             this.musicForm = res.data;
             if (this.$refs["musicForm"].$refs.quitForm) {
@@ -401,17 +403,14 @@ export default {
     onSubmitGroup(params, status) {
       if (status == "DENIED") {
         this.$refs["musicForm"].$refs.quitForm.clearValidate();
-        this.$refs["musicForm"].$refs.quitForm.validateField(
-          "reason",
-          (res) => {
-            if (!res) {
-              this.onSubmitGroups(params, status);
-            }
+        this.$refs["musicForm"].$refs.quitForm.validateField("reason", res => {
+          if (!res) {
+            this.onSubmitGroups(params, status);
           }
-        );
+        });
       } else {
         // console.log(this.$refs.musicForm)
-        this.$refs["musicForm"].$refs.quitForm.validate((res) => {
+        this.$refs["musicForm"].$refs.quitForm.validate(res => {
           if (res) {
             this.onSubmitGroups(params, status);
           }
@@ -422,7 +421,7 @@ export default {
       this.$confirm("确定此操作吗?", "提示", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
-        type: "warning",
+        type: "warning"
       })
         .then(async () => {
           let query = this.quitForm;
@@ -437,18 +436,18 @@ export default {
             isReturnMusicalFee: query.isReturnMusicalFee,
             maintenanceFee: query.maintenanceFee,
             memberFee: query.memberFee,
-            musicalFee: query.musicalFee,
+            musicalFee: query.musicalFee
           };
 
-          await quitMusicGroup(cleanDeep(query)).then((res) => {
+          await quitMusicGroup(cleanDeep(query)).then(res => {
             this.$message.success("处理成功");
             this.$listeners.close();
             this.$listeners.getList();
           });
         })
         .catch(() => {});
-    },
-  },
+    }
+  }
 };
 </script>
 

Some files were not shown because too many files changed in this diff