浏览代码

乐团状态整理

1
mo 4 年之前
父节点
当前提交
4a1c870755

+ 36 - 21
src/constant/index.js

@@ -167,21 +167,21 @@ export const teachMode = {
 }
 
 export const updateAttendanceEnum = {
-  SIGN_IN:'修复签到',
-  SIGN_OUT:'修复签退',
-  ALL:'签到和签退',
+  SIGN_IN: '修复签到',
+  SIGN_OUT: '修复签退',
+  ALL: '签到和签退',
 }
 export const classTime = {
-  SINGLE:"90",
-  MIX:"90",
-  HIGH:"45",
-  HIGH_ONLINE:"45",
-  COMPREHENSIVE:"90",
-  PRACTICE:"25",
-  MUSIC_NETWORK:"25",
-  TRAINING_SINGLE:'180',
-  TRAINING_MIX:'180',
-  CLASSROOM:'40'
+  SINGLE: "90",
+  MIX: "90",
+  HIGH: "45",
+  HIGH_ONLINE: "45",
+  COMPREHENSIVE: "90",
+  PRACTICE: "25",
+  MUSIC_NETWORK: "25",
+  TRAINING_SINGLE: '180',
+  TRAINING_MIX: '180',
+  CLASSROOM: '40'
 }
 
 export const mergeCourseType = {
@@ -199,17 +199,17 @@ export const belongDaya = {
 }
 
 export const musicClassType = {
-  NORMAL:"声部班" ,
-  MIX:"合奏班",
-  HIGH:"基础技能班",
-  SNAP:"临时班",
-  HIGH_ONLINE:'线上基础技能班',
-  MUSIC_NETWORK:"乐团网管课"
+  NORMAL: "声部班",
+  MIX: "合奏班",
+  HIGH: "基础技能班",
+  SNAP: "临时班",
+  HIGH_ONLINE: '线上基础技能班',
+  MUSIC_NETWORK: "乐团网管课"
 }
 
 export const inspectionItem = {
-  INSPECT:'下校巡查',
-  VISIT:'学员回访'
+  INSPECT: '下校巡查',
+  VISIT: '学员回访'
 }
 
 export const complaintsStatus = {
@@ -225,6 +225,21 @@ export const packageStatus = {
   2: '已使用',
 }
 
+export const musicGroupType = {
+  APPLY: "报名中",
+  PAY: "缴费中",
+  PREPARE: "筹备中",
+  PROGRESS: "进行中",
+  CANCELED: '取消',
+  PAUSE: '暂停',
+  AUDIT: '审核中',
+  DRAFT: '编辑中',
+  AUDIT_FAILED: '审核失败',
+  PRE_APPLY:'预报名中',
+  PRE_BUILD_FEE:'创建缴费中',
+  FEE_AUDIT:'费用审核中',
+  CLOSE:'关闭'
+}
 // export const musicScoreCategoriesId = [
 //   ''
 // ]

+ 18 - 16
src/utils/searchArray.js

@@ -1,5 +1,5 @@
 // 搜索用的下拉数据列表
-import { payOrderType, auditType, auditPaymentType, orderServerType, orderAuditType, rewardModeType,classTime,musicClassType } from '../constant'
+import { payOrderType, auditType, auditPaymentType, orderServerType, orderAuditType, rewardModeType,classTime,musicClassType ,musicGroupType} from '../constant'
 // 课程类型
 export const courseType = [
   { label: "声部课", value: "SINGLE" },
@@ -96,21 +96,7 @@ export const dealStatus = [
   { value: "CLOSE", label: "交易关闭" }
 ]
 
-export const musicGroupStatus = [
-  { value: 'DRAFT', text: '编辑中' },
-  { value: 'AUDIT', text: '审核中' },
-  { value: 'PRE_APPLY', text: '预报名中' },
-  { value: 'PRE_BUILD_FEE', text: '创建缴费中' },
-  { value: 'APPLY', text: '报名中' },
-  { value: 'PAY', text: '缴费中' },
-  { value: 'PREPARE', text: '筹备中' },
-  { value: 'PROGRESS', text: '进行中' },
-  { value: 'FEE_AUDIT', text: '费用审核中' },
-  { value: 'AUDIT_FAILED', text: '审核失败' },
-  { value: 'PAUSE', text: '暂停' },
-  { value: 'CANCELED', text: '取消' },
-  { value: 'CLOSE', text: '已关闭' },
-]
+
 
 export const vipGroupStatus = [
   { value: '0', text: '未开始' },
@@ -212,6 +198,22 @@ export const stockType = [
   { value: 'EXTERNAL', label: '外部' },
   { value: 'ALL', label: '全部' }
 ]
+// export const musicGroupStatus = [
+//   { value: 'DRAFT', text: '编辑中' },
+//   { value: 'AUDIT', text: '审核中' },
+//   { value: 'PRE_APPLY', text: '预报名中' },
+//   { value: 'PRE_BUILD_FEE', text: '创建缴费中' },
+//   { value: 'APPLY', text: '报名中' },
+//   { value: 'PAY', text: '缴费中' },
+//   { value: 'PREPARE', text: '筹备中' },
+//   { value: 'PROGRESS', text: '进行中' },
+//   { value: 'FEE_AUDIT', text: '费用审核中' },
+//   { value: 'AUDIT_FAILED', text: '审核失败' },
+//   { value: 'PAUSE', text: '暂停' },
+//   { value: 'CANCELED', text: '取消' },
+//   { value: 'CLOSE', text: '已关闭' },
+// ]
+export const musicGroupStatus = getValueForKey(musicGroupType)
 export const classTimeList = getValueForKey(classTime)
 
 export const payOrderTypeList = getValueForKey(payOrderType)

+ 35 - 35
src/utils/vueFilter.js

@@ -36,21 +36,7 @@ Vue.filter('shopType', (value) => {
   return template[value]
 })
 
-// 乐团状态
-Vue.filter('musicGroupType', (value) => {
-  let template = {
-    APPLY: "报名中",
-    PAY: "缴费中",
-    PREPARE: "筹备中",
-    PROGRESS: "进行中",
-    CANCELED: '取消',
-    PAUSE: '暂停',
-    AUDIT: '审核中',
-    DRAFT: '编辑中',
-    AUDIT_FAILED: '审核失败'
-  }
-  return template[value]
-})
+
 
 // 乐团学员状态
 Vue.filter('musicGroupStudentType', (value) => {
@@ -74,7 +60,7 @@ Vue.filter('instrumentType', (value) => {
 })
 
 // 课程类型
-Vue.filter('coursesType', (value) => { 
+Vue.filter('coursesType', (value) => {
   let template = {
     NORMAL: '声部课',
     SINGLE: '声部课',
@@ -176,7 +162,21 @@ Vue.filter('dateForMinFormat', (value) => {
     return value
   }
 })
-
+// 乐团状态
+Vue.filter('musicGroupType', (value) => {
+  // let template = {
+  //   APPLY: "报名中",
+  //   PAY: "缴费中",
+  //   PREPARE: "筹备中",
+  //   PROGRESS: "进行中",
+  //   CANCELED: '取消',
+  //   PAUSE: '暂停',
+  //   AUDIT: '审核中',
+  //   DRAFT: '编辑中',
+  //   AUDIT_FAILED: '审核失败'
+  // }
+  return constant.musicGroupType[value]
+})
 Vue.filter('paymentPatternTypeFormat', val => constant.paymentPatternType[val])
 // 支付用户类型
 Vue.filter('payUserTypeFormat', val => constant.payUserType[val])
@@ -321,24 +321,24 @@ Vue.filter('paymentStatus', value => {
   return template[value]
 })
 // 乐团状态
-Vue.filter('teamStatus', value => {
-  let template = {
-    PRE_APPLY: "预报名中",
-    APPLY: "报名中",
-    PAY: "缴费中",
-    PREPARE: "筹备中",
-    PROGRESS: "进行中",
-    PRE_BUILD_FEE: '创建缴费中',
-    CANCELED: '取消',
-    PAUSE: '暂停',
-    AUDIT: '乐团审核中',
-    DRAFT: '编辑中',
-    AUDIT_FAILED: '审核失败',
-    FEE_AUDIT: '费用审核中',
-    CLOSE: '已关闭',
-  }
-  return template[value]
-})
+// Vue.filter('teamStatus', value => {
+//   let template = {
+//     PRE_APPLY: "预报名中",
+//     APPLY: "报名中",
+//     PAY: "缴费中",
+//     PREPARE: "筹备中",
+//     PROGRESS: "进行中",
+//     PRE_BUILD_FEE: '创建缴费中',
+//     CANCELED: '取消',
+//     PAUSE: '暂停',
+//     AUDIT: '乐团审核中',
+//     DRAFT: '编辑中',
+//     AUDIT_FAILED: '审核失败',
+//     FEE_AUDIT: '费用审核中',
+//     CLOSE: '已关闭',
+//   }
+//   return template[value]
+// })
 
 // 学生状态
 /**studentStatus */

+ 84 - 24
src/views/resetTeaming/index.vue

@@ -4,6 +4,13 @@
       <el-page-header @back="onCancel" :content="teamName"></el-page-header>
     </h2>
     <div class="m-core">
+      <p class="msg" :class="team_status">
+        <img
+          :src="stepImgs[team_status]"
+          alt=""
+        />
+        {{ musicGroupType[team_status] }}
+      </p>
       <!-- navMenu -->
       <tab-router v-model.trim="activeIndex" type="card" ref="tab">
         <el-tab-pane
@@ -27,13 +34,8 @@
         >
           <resetSound v-if="activeIndex == 2" />
         </el-tab-pane>
-               <el-tab-pane
-          lazy
-          label="预报名信息"
-          name="9"
-
-        >
-        <!--         v-if="
+        <el-tab-pane lazy label="预报名信息" name="9">
+          <!--         v-if="
             team_status == 'PRE_APPLY' ||
             team_status == 'PRE_BUILD_FEE' ||
             team_status == 'FEE_AUDIT' ||
@@ -44,9 +46,7 @@
             :isedit="team_status == 'PRE_APPLY'"
           />
         </el-tab-pane>
-        <el-tab-pane  lazy
-          label="乐器清单"
-          name="10">
+        <el-tab-pane lazy label="乐器清单" name="10">
           <musicOrder />
         </el-tab-pane>
         <el-tab-pane
@@ -75,14 +75,13 @@
             :musicGroupInfo="musicGroupInfo"
           />
         </el-tab-pane>
-             <el-tab-pane
+        <el-tab-pane
           label="课表详情"
           lazy
           v-if="permission('/teamDetails/courseList')"
           name="8"
         >
-          <courseList v-if="activeIndex == '8'"
-                      :teamid='teamid' />
+          <courseList v-if="activeIndex == '8'" :teamid="teamid" />
         </el-tab-pane>
         <el-tab-pane
           label="学员缴费设置"
@@ -108,13 +107,13 @@
             @changeActive="handleClick"
           />
         </el-tab-pane>
+  <!--   v-if="permission('/resetTeaming/coursePlan')" -->
+        <el-tab-pane label="乐团日志"
 
-        <!-- <el-tab-pane label="新增排课"
-                     v-if="permission('/resetTeaming/coursePlan')"
-                     name="4">
-          <coursePlan :teamid='teamid'
-                      v-if="activeIndex == 4" />
-        </el-tab-pane> -->
+                     name="11">
+          <teamJournal :teamid='teamid'
+                      v-if="activeIndex == 11" />
+        </el-tab-pane>
         <!-- <el-tab-pane label="新增小班课"
                      name="5">
           <improvement :teamid='teamid' />
@@ -126,7 +125,8 @@
 </template>
 <script>
 import teamBaseInfo from "@/views/teamBuild/components/teamBaseInfo";
-import resetSound from "@/views/resetTeaming/components/resetSoundv2";
+// import resetSound from "@/views/resetTeaming/components/resetSoundv2";
+import resetSound from "@/views/teamBuild/components/teamSoundSet"
 import resetClass from "@/views/teamDetail/components/resetClass";
 // import coursePlan from '@/views/teamBuild/teamSeting/components/coursePlan'
 // import lookCourse from '@/views/teamBuild/teamSeting/components/lookCourse'
@@ -138,9 +138,11 @@ import studentList from "@/views/teamDetail/components/studentList";
 import teacherList from "@/views/teamDetail/components/teacherList";
 import courseList from "@/views/teamDetail/components/courseList";
 import forecastName from "@/views/teamBuild/forecastName";
-import musicOrder from "@/views/teamDetail/teamDetailedList"
+import musicOrder from "@/views/teamDetail/teamDetailedList";
+import teamJournal from "@/views/teamBuild/components/teamJournal"
 import { permission } from "@/utils/directivePage";
 import { getTeamBaseInfo } from "@/api/buildTeam";
+import { musicGroupType} from '@/constant'
 export default {
   components: {
     teamBaseInfo,
@@ -153,7 +155,8 @@ export default {
     teacherList,
     courseList,
     forecastName,
-    musicOrder
+    musicOrder,
+    teamJournal
   },
   name: "resetTeaming",
   data() {
@@ -171,7 +174,23 @@ export default {
       name: null,
       teamName: "乐团修改",
       musicGroupInfo: null,
-      team_status:''
+      musicGroupType,
+      team_status: "",
+      stepImgs: {
+        AUDIT_FAILED: require("@/assets/images/base/end.png"),
+        CANCELED: require("@/assets/images/base/end.png"),
+        CLOSE: require("@/assets/images/base/end.png"),
+        PAUSE: require("@/assets/images/base/end.png"),
+        PROGRESS: require("@/assets/images/base/ing.png"),
+        DRAFT: require("@/assets/images/base/ing.png"),
+        AUDIT: require("@/assets/images/base/ing.png"),
+        PRE_APPLY: require("@/assets/images/base/ing.png"),
+        PRE_BUILD_FEE: require("@/assets/images/base/ing.png"),
+        FEE_AUDIT: require("@/assets/images/base/ing.png"),
+        APPLY: require("@/assets/images/base/clock.png"),
+        PAY: require("@/assets/images/base/pay.png"),
+        PREPARE: require("@/assets/images/base/ing.png"),
+      },
     };
   },
   created() {
@@ -198,7 +217,7 @@ export default {
     __init() {
       // this.activeIndex = sessionStorage.getItem('resetCode') || '1';
       this.teamid = this.$route.query.id;
-      this.team_status = this.$route.query.team_status
+      this.team_status = this.$route.query.team_status;
       if (this.$route.query.tabrouter != 1) {
         getTeamBaseInfo({ musicGroupId: this.teamid }).then((res) => {
           if (res.code == 200) {
@@ -230,4 +249,45 @@ export default {
 };
 </script>
 <style lang="scss" scoped>
+// AUDIT_FAILED: require("@/assets/images/base/end.png"),
+//         CANCELED: require("@/assets/images/base/end.png"),
+//         CLOSE: require("@/assets/images/base/end.png"),
+//         PAUSE: require("@/assets/images/base/end.png"),
+
+
+//         PROGRESS: require("@/assets/images/base/ing.png"),
+//         DRAFT: require("@/assets/images/base/ing.png"),
+//         AUDIT: require("@/assets/images/base/ing.png"),
+//         PRE_APPLY: require("@/assets/images/base/ing.png"),
+//         PRE_BUILD_FEE: require("@/assets/images/base/ing.png"),
+//         FEE_AUDIT: require("@/assets/images/base/ing.png"),
+//         APPLYL: require("@/assets/images/base/clock.png"),
+//         PAY: require("@/assets/images/base/pay.png"),
+//         PREPARE: require("@/assets/images/base/ing.png"),
+.msg.PAY{
+ color: #f85043;
+}
+.msg.APPLY{
+ color: #f97215;
+}
+.msg.AUDIT_FAILED,.msg.CANCELED,.msg.CLOSE,.msg.PAUSE {
+    color: #777;
+}
+.msg {
+  color: #14928a;
+  text-align: right;
+  // color: #777;
+  font-size: 32px;
+  font-weight: bold;
+  position: absolute;
+  right: 40px;
+  top: -33px;
+  img {
+    width: 36px;
+    height: 36px;
+    position: relative;
+    top: 5px;
+    margin-right: 8px;
+  }
+}
 </style>

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

@@ -699,7 +699,7 @@ export default {
 }
 .soundBtnFixed {
   top: 86px;
-  left: 205px;
+  left: 270px; // 205
   width: 100%;
   position: fixed;
   background-color: #fff;

+ 83 - 0
src/views/teamBuild/components/teamJournal.vue

@@ -0,0 +1,83 @@
+<template>
+  <div class="m-core">
+    <div class="tableWrap">
+      <el-table
+        style="width: 100%"
+        :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+        :data="processList"
+      >
+        <el-table-column
+          align="center"
+          prop="userId"
+          label="操作人"
+          width="150px"
+        >
+          <template slot-scope="scope">
+            <copy-text>{{ scope.row.realName }}</copy-text>
+          </template>
+        </el-table-column>
+        <el-table-column
+          align="center"
+          prop="userId"
+          label="操作时间"
+          width="180px"
+        >
+          <template slot-scope="scope">
+         {{ scope.row.createTime }}
+          </template>
+        </el-table-column>
+               <el-table-column
+
+          prop="userId"
+          label="操作内容"
+
+        >
+          <template slot-scope="scope">
+           {{ scope.row.event }}
+          </template>
+        </el-table-column>
+      </el-table>
+      <!--      sync -->
+      <!-- <pagination
+        :total.sync="pageInfo.total"
+        :page.sync="pageInfo.page"
+        :limit.sync="pageInfo.limit"
+        :page-sizes="pageInfo.page_size"
+        @pagination="getList"
+      /> -->
+    </div>
+  </div>
+</template>
+<script>
+import { getMusicGroupProcess } from '@/api/buildTeam'
+export default {
+  data() {
+    return {
+      processList: [],
+      pageInfo: {
+        // 分页规则
+        limit: 10, // 限制显示条数
+        page: 1, // 当前页
+        total: 0, // 总条数
+        page_size: [10, 20, 40, 50], // 选择限制显示条数
+      },
+      teamid:''
+    };
+  },
+  mounted(){
+      this.teamid = this.$route.query.id;
+      this.getProcess()
+  },
+  methods:{
+    getProcess () {
+      getMusicGroupProcess({
+        musicGroupId: this.teamid
+      }).then(res => {
+        if (res.code == 200) {
+          this.processList = res.data;
+        }
+      })
+    }
+  }
+};
+</script>

+ 1 - 1
src/views/teamBuild/components/teamSoundSet.vue

@@ -11,7 +11,7 @@
       @getNumber="getNumber"
     />
     <div class="btnWrap">
-      <el-button type="primary" @click="goback">上一步</el-button>
+      <el-button type="primary" @click="goback"  v-if="teamStatus == 'newTeam'">上一步</el-button>
 
       <el-button
         type="primary"

+ 7 - 6
src/views/teamBuild/forecastName.vue

@@ -8,20 +8,20 @@
           缴费截止时间:{{ '2020-12-12' | formatTimer }}
         </p> -->
 
-        <div class="btnList" v-if="isedit">
-            <auth :auths="['forecastName/forecastLink']">
+        <div class="btnList" >
+            <auth :auths="['forecastName/forecastLink']" v-if="isedit">
               <el-button type="primary" @click="codeStatus = true">预报名链接</el-button>
             </auth>
             <!-- <auth>
               <el-button type="primary" @click="extendPaymentStatus = true">预报名时间延长</el-button>
             </auth> -->
-            <auth :auths="['musicGroup/sendParentMeetingNotice']">
+            <auth :auths="['musicGroup/sendParentMeetingNotice']" v-if="isedit">
               <el-button type="primary" @click="extendPaymentStatus = true">家长会通知</el-button>
             </auth>
             <auth :auths="['musicGroup/finishPreApply']">
-              <el-button type="primary" @click="onPaymentGroup">乐团缴费</el-button>
+              <el-button type="primary" @click="onPaymentGroup" v-if="isedit">乐团缴费</el-button>
             </auth>
-            <auth :auths="['musicGroup/finishPreApply/item']">
+            <auth :auths="['musicGroup/finishPreApply/item']" v-if="isedit">
               <el-button type="primary" @click="onPaymentGroup(1)">特色乐团缴费</el-button>
             </auth>
             <auth :auths="['studentRegistration/preRegisterExport']">
@@ -156,8 +156,9 @@
                         label="操作"
                          v-if="isedit"
                     >
+                    <!-- :router="['/business/forecastName']" -->
                         <template slot-scope="scope">
-                            <auth :auths="['visit/add']" :router="['/business/forecastName']">
+                            <auth :auths="['visit/add']" >
                                 <el-button
 
                                 type="text"

+ 4 - 7
src/views/teamDetail/teamDetailedList.vue

@@ -63,6 +63,7 @@
                  v-permission="'order/musicalListDetailExport'"
                  @click="musicalListDetailExport">分发清单导出</el-button>
       <el-button type="warning okBtn"
+      v-if="team_status =='PREPARE'"
                  v-permission="'order/verifyMusicalList'"
                  @click="okDetailList">确认</el-button>
       <!-- <div class="okBtn" v-permission="'order/verifyMusicalList'"
@@ -83,7 +84,8 @@ export default {
       teamid: '',
       tableList: [],
       Fsearch: null,
-      Frules: null
+      Frules: null,
+      team_status:''
     }
   },
   mounted () {
@@ -94,12 +96,7 @@ export default {
   },
   methods: {
     init () {
-      if (this.$route.query.search) {
-        this.Fsearch = this.$route.query.search;
-      }
-      if (this.$route.query.rules) {
-        this.Frules = this.$route.query.rules
-      }
+      this.team_status = this.$route.query.team_status;
       this.teamid = this.$route.query.id;
       getTeamDetailList({ musicGroupId: this.teamid }).then(res => {
         if (res.code == 200) {

+ 3 - 3
src/views/teamDetail/teamList.vue

@@ -60,7 +60,7 @@
             <el-option
               v-for="(item, index) in nowStatus"
               :key="index"
-              :label="item.text"
+              :label="item.label"
               :value="item.value"
             ></el-option>
           </el-select>
@@ -130,7 +130,7 @@
           <el-table-column prop="status" align="center" label="乐团状态">
             <template slot-scope="scope">
               <div>
-                {{ scope.row.status | teamStatus }}
+                {{ scope.row.status | musicGroupType }}
               </div>
             </template>
           </el-table-column>
@@ -867,7 +867,7 @@ export default {
           // 筹备中 跳转到乐团设置界面
           this.$router.push({
             path: `/business/resetTeaming`,
-            query: { status: row.status, id: row.id, name: row.name,team_status:row.status },
+            query: {  type:'look',status: row.status, id: row.id, name: row.name,team_status:row.status },
           },
            (router) => {
               router.meta.title = "乐团筹备中";