mo 3 rokov pred
rodič
commit
888c44f5f5

+ 11 - 1
src/api/systemManage.js

@@ -46,6 +46,16 @@ export function queryByOrganId (data) {
   })
 }
 
+// 根据合作单位获取乐团
+
+export function getMusicGroup (data) {
+  return request({
+    url: api + '/musicGroup/findByCooperationId',
+    method: 'get',
+    params: data
+  })
+}
+
 // 分页查询教学点
 export function schoolQueryPage (data) {
   return request({
@@ -351,4 +361,4 @@ export function queryEmployeeOrganByUser(data) {
     method: 'get',
     params: data
   })
-}
+}

+ 3 - 1
src/router/index.js

@@ -402,7 +402,9 @@ export const asyncRoutes = {
   setQuestions: () => import('@/views/setQuestions'),
   questionOperation: () => import('@/views/setQuestions/operation'),
   // 21暑期考级
-  childrensDay:()=>import('@/views/childrensDay')
+  childrensDay:()=>import('@/views/childrensDay'),
+  // 考级详情
+  childrensdayDetail:()=>import('@/views/childrensDay/detail'),
 }
 
 export default router

+ 12 - 0
src/store/modules/permission.js

@@ -367,6 +367,18 @@ function setDetailRoute(accessedRoutes) {
             activeMenu: '/otherManager/reaplceMusicPlayer'
           }
         },
+        {
+          name: '活动详情',
+          path: 'childrensdayDetail',
+          component: () => import('@/views/reaplceMusicPlayer/answerList'),
+          hidden: true,
+          meta: {
+            noCache: '1',
+            title: '活动详情',
+            belongTopMenu: "/business",
+            activeMenu: '/childrensDay'
+          }
+        },
         // /otherManager/reaplceMusicPlayer /reaplceMusicPlayer/answer
 
       ])

+ 15 - 0
src/views/childrensDay/api.js

@@ -0,0 +1,15 @@
+import request from '@/utils/request'
+import request2 from '@/utils/request2'
+import qs from 'qs'
+let api = '/api-web'
+
+
+
+// 获取活动列表
+export function getMusicGroupGradeList(data) {
+  return request2({
+    url: api + '/childrenReserve/queryStatisticsPage',
+    method: 'get',
+    params: data
+  })
+}

+ 80 - 32
src/views/childrensDay/index.vue

@@ -20,6 +20,7 @@
             v-model.trim="searchForm.organId"
             clearable
             placeholder="请选择分部"
+            @change="changeOrgan"
           >
             <el-option
               v-for="(item, index) in selects.branchs"
@@ -31,11 +32,12 @@
         </el-form-item>
         <el-form-item prop="school">
           <el-select
-            v-model.trim="searchForm.school"
+            v-model.trim="searchForm.cooperationId"
             :disabled="!searchForm.organId"
             filterable
             clearable
             placeholder="请选择合作单位"
+            @change="changeCooper"
           >
             <el-option
               v-for="(item, index) in cooperationList"
@@ -51,7 +53,7 @@
             clearable
             filterable
             placeholder="请选择乐团"
-              :disabled="!searchForm.school"
+            :disabled="!searchForm.cooperationId"
           >
             <el-option
               v-for="(item, index) in musicList"
@@ -67,7 +69,9 @@
         </el-form-item>
       </save-form>
       <div class="btnList">
-        <el-button type="primary">占位链接</el-button>
+        <el-button type="primary" @click="onCreateQRCode('placeholder')"
+          >占位链接</el-button
+        >
         <el-button type="primary">器乐考级链接</el-button>
         <el-button type="primary">VIP课程链接</el-button>
         <el-button type="primary">乐理考级链接</el-button>
@@ -107,74 +111,70 @@
         >
           <el-table-column
             align="center"
-            prop="studentId"
+            prop="organName"
             label="分部"
           ></el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
+            prop="cooperationOrganName"
             label="合作单位"
           ></el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
+            prop="musicGroupName"
             label="乐团名称"
           ></el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
+            prop="normalNum"
             label="在读人数"
           ></el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
+            prop="reserveNum"
             label="预约人数"
           ></el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
+            prop="noReserveNum"
             label="未预约人数"
           ></el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
+            prop="instrumentalMusicNum"
             label="器乐考级人次"
           ></el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
+            prop="musicTheoryNum"
             label="乐理考级人次"
           ></el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
+            prop="buyVipNum"
             label="vip课购买人数"
           ></el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
+            prop="buyVipAmount"
             label="vip课成交金额"
           ></el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
+            prop="buyMusicTheoryNum"
             label="乐理课购买人数"
           ></el-table-column>
           <el-table-column
             align="center"
-            prop="studentId"
+            prop="buyMusicTheoryAmount"
             label="乐理课成交金额"
           ></el-table-column>
-            <el-table-column
-            align="center"
-            prop="studentId"
-            label="操作"
-          >
-          <template slot-scope="scope">
-            <div>
-              <el-button type="text">详情</el-button>
-            </div>
-          </template>
+          <el-table-column align="center" prop="studentId" label="操作">
+            <template slot-scope="scope">
+              <div>
+                <el-button type="text" @click="gotoDetail(scope.row)">详情</el-button>
+              </div>
+            </template>
           </el-table-column>
         </el-table>
         <pagination
@@ -187,6 +187,7 @@
         />
       </div>
     </div>
+    <qr-code v-model="codeStatus" :title="codeTitle" :codeUrl="qrCodeUrl" />
   </div>
 </template>
 
@@ -194,21 +195,27 @@
 import axios from "axios";
 import { getToken } from "@/utils/auth";
 import pagination from "@/components/Pagination/index";
+import qrCode from "@/components/QrCode/index";
+import { vaildStudentUrl } from "@/utils/validate";
 import load from "@/utils/loading";
-import { queryByOrganId, getSchool } from "@/api/systemManage";
+import { queryByOrganId, getSchool,getMusicGroup } from "@/api/systemManage";
+import { getMusicGroupGradeList } from './api'
 import countTo from "vue-count-to";
 export default {
-  components: { pagination, "count-to": countTo },
+  components: { pagination, "count-to": countTo, qrCode },
 
   data() {
     return {
       searchForm: {
         search: null,
         organId: null,
-        school: null,
+        cooperationId: null,
+        musicGroupId: null,
       },
-
-      tableList: [{}],
+      codeStatus: false,
+      codeTitle: null,
+      qrCodeUrl: null,
+      tableList: [],
       cooperationList: [],
       musicList: [],
       rules: {
@@ -229,13 +236,54 @@ export default {
     this.init();
   },
   methods: {
-    init() {},
-    getList() {},
+    init() {
+      this.getList()
+    },
+  async getList() {
+    try {
+      const res = await getMusicGroupGradeList({page:this.rules.page,rows:this.rules.limit,...this.searchForm})
+      this.tableList = res.data.rows
+      this.rules.total = res.data.total
+
+    }catch(e){
+
+    }
+
+  },
     search() {
       this.rules.page = 1;
       this.getList();
     },
     onReSet() {},
+    onCreateQRCode(status) {
+      if (status == "placeholder") {
+        this.codeTitle = "占位链接";
+        this.qrCodeUrl = vaildStudentUrl() + "/#/childrenSeat";
+      }
+      this.codeStatus = true;
+    },
+    changeOrgan(val) {
+      this.searchForm.cooperationId = null;
+      this.searchForm.musicGroupId = null;
+      if (val) {
+        queryByOrganId({ organId: val }).then((res) => {
+          if (res.code == 200) {
+            this.cooperationList = res.data;
+          }
+        });
+      }
+    },
+    changeCooper(val){
+       this.searchForm.musicGroupId = null;
+       if(val){
+         getMusicGroup({cooperationId:val}).then(res=>{
+           this.musicList = res.data;
+         })
+       }
+    },
+    gotoDetail(row){
+      this.$router.push({path:'/business/childrensdayDetail',query:{'musicGroupId':}})
+    }
   },
 };
 </script>