Browse Source

上线前打包

lex-xin 4 years ago
parent
commit
a746c1fd34

+ 4 - 2
src/router/index.js

@@ -208,7 +208,7 @@ export const asyncRoutes = {
   shopCategory: () => import('@/views/businessManager/shopManager/shopCategory'),
   // 报表中心
   reportForm: () => import('@/views/reportForm/index'),
-  musicalManager: () => import('@/views/categroyManager/specialSetup/musicalManager'),
+  // musicalManager: () => import('@/views/categroyManager/specialSetup/musicalManager'),
   // 系统管理
   specialSetup: () => import('@/views/categroyManager/specialSetup/index'),
   // 类型管理
@@ -386,7 +386,9 @@ export const asyncRoutes = {
   // 乐器维护
   musicalManager:()=>import('@/views/musicalManager'),
   // 服务指标明细
-  serverDetail:()=>import('@/views/serverDetail')
+  serverDetail:()=>import('@/views/serverDetail'),
+  // 未在班级学员
+  notClassStudent:()=>import('@/views/main/notClassStudent')
 }
 
 export default router

+ 1 - 0
src/router/notKeepAliveList.js

@@ -13,6 +13,7 @@ export default [
   '/vipClassSet/vipActiveList', // VIP活动方案
   '/vipClassSet/vipNewActive', // VIP活动方案修改
   '/main/main', // 首页
+  '/main/notClassStudent', // 未在班级学员
   '/journal/journal', // 系统日志
   '/business/accompany', // 网管课管理
   '/business/accompanys', // 网管课详情

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

@@ -150,6 +150,7 @@ export default {
   methods: {
     permission,
     handle(item) {
+      console.log(item)
       new Searchs().removeByKey(item[0].url)
       this.$router.push({
         path: item[0].url,

+ 20 - 7
src/views/main/abnormal/title.vue

@@ -2,8 +2,7 @@
   <div class="title" :class="{error: type === 'error', warning: type === 'warning'}">
     <div>
       <span v-for="(item, index) in data" :key="index">
-        <span v-if="item.errorTpe == 'NO_CLASS_MUSIC_GROUP_STUDENT_INFO'">{{item.name}}</span>
-        <span v-else>{{item.name}}</span>
+        <span v-html=titleFilter(item)></span>
               <el-tooltip
             v-if="descs[item.errorType]"
             :content="descs[item.errorType]"
@@ -16,7 +15,7 @@
                 style="font-size: 14px; "
             />
           </el-tooltip>
-        <b>{{item.num}}</b>
+        <b v-if="!(ignore.includes(item.errorType))">{{item.num}}</b>
       </span>
 
     </div>
@@ -38,10 +37,24 @@ export default {
   },
   data(){
     return{
-     descs
+     descs,
+     ignore: ['NO_CLASS_MUSIC_GROUP_STUDENT_INFO'] // // 忽略类型
     }
   },
   mounted(){
+  },
+  methods: {
+    titleFilter(item) {
+      
+      if(this.ignore.includes(item.errorType)) {
+        let tempName = item.name
+        tempName = tempName.replace('{0}', `<b>${item.num}</b>`)
+        tempName = tempName.replace('{1}', `<b>${item.num2}</b>`)
+        return tempName
+      } else {
+        return item.name
+      }
+    }
   }
 }
 </script>
@@ -57,14 +70,14 @@ export default {
   font-weight: bold;
   transition: all .3s;
   width: 100%;
-  b{
+  /deep/b {
     font-size: 18px;
   }
   &:hover{
     background-color: rgba(0, 0, 0, .06);
   }
   &.error {
-    b{
+    /deep/b{
       color: #ED6F62;
     }
     &:before{
@@ -72,7 +85,7 @@ export default {
     }
   }
   &.warning {
-    b{
+    /deep/b{
       color: #F2A24A;
     }
     &:before{

+ 7 - 0
src/views/main/api.js

@@ -111,3 +111,10 @@ export const hasIndexErrData = () => request2({
   method: 'get',
   loading: false,
 })
+
+// 查询乐团中未加入班级学员信息
+export const queryNoClassMusicStudentInfo = (data) => request2({
+  url: '/api-web/studentRegistration/queryNoClassMusicStudentInfo',
+  method: 'get',
+  params: data
+})

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

@@ -73,6 +73,12 @@ export const errorType = {
       lessThenThreeHighOnline: '1',
     },
   },
+  NO_CLASS_MUSIC_GROUP_STUDENT_INFO: {
+    name: '当前有{0}个乐团共{1}名学员未加入任何班级',
+    isError: true,
+    url: '/main/notClassStudent',
+    always: true,
+  },
   STUDENT_NOT_PAYMENT: {
     name: '未缴费学员数',
     isError: true,

+ 168 - 0
src/views/main/notClassStudent.vue

@@ -0,0 +1,168 @@
+<!--  -->
+<template>
+    <div class="m-container">
+        <h2>
+            <div class="squrt"></div>
+            未在班级学员
+        </h2>
+        <div class="m-core">
+            <save-form
+                :inline="true"
+                @submit="search"
+                @reset="onReSet"
+                ref="searchFrom"
+                :model="searchForm"
+            >
+                <el-form-item prop="musicGroupSearch">
+                    <el-input
+                        v-model.trim="searchForm.musicGroupSearch"
+                        clearable
+                        @keyup.enter.native="search"
+                        placeholder="乐团名称/编号"
+                    ></el-input>
+                </el-form-item>
+                <el-form-item prop="studentSearch">
+                    <el-input
+                        v-model.trim="searchForm.studentSearch"
+                        clearable
+                        @keyup.enter.native="search"
+                        placeholder="学员姓名/编号"
+                    ></el-input>
+                </el-form-item>
+                <el-form-item prop="organIds">
+                    <el-select
+                        placeholder="请选择分部"
+                        v-model="searchForm.organIds"
+                        clearable
+                    >
+                        <el-option
+                        v-for="(item, index) in selects.branchs"
+                        :label="item.name"
+                        :value="item.id"
+                        :key="index"
+                        ></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item>
+                    <el-button type="danger" native-type="submit">搜索</el-button>
+                    <el-button native-type="reset" type="primary">重置</el-button>
+                </el-form-item>
+            </save-form>
+            <div class="tableWrap">
+                <el-table
+                style="width: 100%"
+                :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
+                :data="tableList"
+                >
+                <el-table-column align="center" label="分部">
+                    <template slot-scope="scope">
+                        <copy-text>{{ scope.row.organName }}</copy-text>
+                    </template>
+                </el-table-column>
+                <el-table-column align="center" label="乐团编号">
+                    <template slot-scope="scope">
+                        <copy-text>{{ scope.row.groupId }}</copy-text>
+                    </template>
+                </el-table-column>
+                <el-table-column align="center" label="乐团名称">
+                    <template slot-scope="scope">
+                        <copy-text>{{ scope.row.groupName }}</copy-text>
+                    </template>
+                </el-table-column>
+                <el-table-column align="center" label="学员编号">
+                    <template slot-scope="scope">
+                        <copy-text>{{ scope.row.studentId }}</copy-text>
+                    </template>
+                </el-table-column>
+                <el-table-column align="center" label="学员姓名">
+                    <template slot-scope="scope">
+                        <copy-text>{{ scope.row.studentName }}</copy-text>
+                    </template>
+                </el-table-column>
+                <el-table-column align="center" label="操作">
+                    <template slot-scope="scope">
+                        <el-button type="text" @click="showDetail(scope.row)">立即处理</el-button>
+                    </template>
+                </el-table-column>
+                </el-table>
+                <pagination
+                sync
+                :total.sync="rules.total"
+                :page.sync="rules.page"
+                :limit.sync="rules.limit"
+                :page-sizes="rules.page_size"
+                @pagination="getList"
+                />
+            </div>
+        </div>
+    </div>
+</template>
+
+<script>
+import pagination from "@/components/Pagination/index";
+import { queryNoClassMusicStudentInfo } from './api.js'
+export default {
+    components: { pagination },
+    data() {
+        return {
+            searchForm: {
+                musicGroupSearch: null,
+                studentSearch: null,
+                organIds: null,
+            },
+            rules: {
+                // 分页规则
+                limit: 10, // 限制显示条数
+                page: 1, // 当前页
+                total: 0, // 总条数
+                page_size: [10, 20, 40, 50], // 选择限制显示条数
+            },
+            tableList: []
+        };
+    },
+    //生命周期 - 挂载完成(可以访问DOM元素)
+    mounted() {
+        this.$store.dispatch("setBranchs");
+
+        this.getList()
+    },
+    methods: {
+        search() {
+            this.rules.page = 1;
+            this.getList();
+        },
+        onReSet() {
+            this.$refs['searchFrom'].resetFields()
+            this.getList()
+        },
+        async getList() {
+            try {
+                const { ...search } = this.searchForm
+                const params = {
+                    ...search,
+                    page: this.rules.page,
+                    rows: this.rules.limit
+                }
+                let res = await queryNoClassMusicStudentInfo(params)
+                this.tableList = res.data.rows;
+                this.rules.total = res.data.total;
+            } catch (err) {
+                // 
+            }
+        },
+        showDetail(item) {
+            this.$router.push({
+                path: '/business/resetTeaming',
+                query: {
+                    type: 'resetTeam',
+                    id: item.groupId,
+                    tabrouter: 5
+                }
+            })
+        }
+    },
+};
+</script>
+<style lang='scss' scoped>
+
+</style>