浏览代码

提交一下

1
mo 3 年之前
父节点
当前提交
2b3c72803f

+ 57 - 6
src/views/main/cloudDate/organDate.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <el-card>
-      <headers title="分部数据" @changeOrgan="changeOrgan" :special='true'/>
+      <headers title="分部数据" @changeOrgan="changeOrgan" :special="true" />
       <el-button
         type="primary"
         v-permission="'export/organStudentOverView'"
@@ -15,7 +15,7 @@
           :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
           :data="tableList"
           @sort-change="sortChang"
-          sortable='custom'
+          sortable="custom"
         >
           <el-table-column
             align="center"
@@ -31,7 +31,9 @@
               <div class="titleCell">
                 <span>学员总数</span>
                 <el-tooltip placement="top" popper-class="mTooltip">
-                  <div slot="content">该分部下所有学员</div>
+                  <div slot="content">
+                    乐团在读学员+有剩余VIP课或网管课学员去重之和
+                  </div>
                   <i
                     class="el-icon-question micon el-tooltip"
                     style="
@@ -70,9 +72,57 @@
           </el-table-column>
           <el-table-column
             align="center"
+            prop="cloudStudyUseStudentNum"
+            label="使用人数"
+          >
+            <template slot="header" slot-scope="slot">
+              <div class="titleCell">
+                <span>使用人数</span>
+                <el-tooltip placement="top" popper-class="mTooltip">
+                  <div slot="content">当日使用的总人数</div>
+                  <i
+                    class="el-icon-question micon el-tooltip"
+                    style="
+                      font-size: 18px;
+                      color: #f56c6c;
+                      top: 2px;
+                      position: relative;
+                    "
+                  ></i>
+                </el-tooltip>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="cloudStudyLivelyStudentNum"
+            label="新增使用人数"
+            width="130px"
+          >
+            <template slot="header" slot-scope="slot">
+              <div class="titleCell">
+                <span>新增使用人数</span>
+                <el-tooltip placement="top" popper-class="mTooltip">
+                  <div slot="content">当日第一次使用云教练的人数</div>
+                  <i
+                    class="el-icon-question micon el-tooltip"
+                    style="
+                      font-size: 18px;
+                      color: #f56c6c;
+                      top: 2px;
+                      position: relative;
+                    "
+                  ></i>
+                </el-tooltip>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
             prop="cloudStudyUseStudentDuty"
             label="使用比例"
-               sortable="custom"
+            sortable="custom"
+            width="140px"
           >
             <template slot="header" slot-scope="slot">
               <div class="titleCell">
@@ -123,6 +173,7 @@
             align="center"
             prop="vipStudentDuty"
             label="付费会员占比"
+            width="150px"
           >
             <template slot="header" slot-scope="slot">
               <div class="titleCell">
@@ -201,7 +252,7 @@ import headers from "./modals/headers.vue";
 import pagination from "@/components/Pagination/index";
 import { organStudentOverView } from "../api";
 import { Export } from "@/utils/downLoadFile";
-import qs from 'qs'
+import qs from "qs";
 export default {
   components: {
     headers,
@@ -273,7 +324,7 @@ export default {
           url: "/api-web/export/organStudentOverView",
           fileName: "分部云教练数据.xls",
           method: "post",
-          params:qs.stringify(params)
+          params: qs.stringify(params),
         },
         "您确定导出分部云教练数据列表?"
       );

+ 65 - 26
src/views/main/cloudDate/organDateDetail.vue

@@ -7,6 +7,7 @@
       content="分部云教练数据详情"
     >
     </el-page-header>
+
     <div class="m-core">
       <save-form
         :inline="true"
@@ -34,9 +35,15 @@
         <el-form-item>
           <!-- <el-button native-type="submit" type="primary">搜索</el-button>
           <el-button native-type="reset" type="danger">重置</el-button> -->
-          <el-button type="primary" @click="organDateExport" v-permission="'export/organTeacherMemberStudentData'">导出</el-button>
+          <el-button
+            type="primary"
+            @click="organDateExport"
+            v-permission="'export/organTeacherMemberStudentData'"
+            >导出</el-button
+          >
         </el-form-item>
       </save-form>
+       <a class="msg" v-if="noTeacherStudentNum>0">当前分部有{{noTeacherStudentNum}}名学员没有关联指导老师</a>
       <div class="tableWrap">
         <el-table
           style="width: 100%"
@@ -52,36 +59,51 @@
             align="center"
             prop="totalStudentNum"
             label="学员总数"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="cloudStudyUseStudentNum"
+            label="使用人数"
 
           ></el-table-column>
           <el-table-column
             align="center"
+            prop="cloudStudyUseStudentDuty"
+            label="使用人数比"
+
+          >
+          <template slot-scope="scope">
+            <div>
+              {{scope.row.cloudStudyUseStudentDuty}}%
+            </div>
+          </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
             prop="vipStudentNum"
             label="付费会员数"
-
           ></el-table-column>
-          <el-table-column
+          <!-- <el-table-column
             align="center"
             prop="eVipStudentNum"
             label="试用会员"
 
-          ></el-table-column>
+          ></el-table-column> -->
           <el-table-column
             align="center"
             prop="vipStudentDuty"
             label="会员占比"
-
           >
-          <template slot-scope="scope">
-            <div>
-              {{scope.row.vipStudentDuty}}%
-            </div>
-          </template>
+            <template slot-scope="scope">
+              <div>{{ scope.row.vipStudentDuty }}%</div>
+            </template>
           </el-table-column>
           <el-table-column align="center" prop="studentId" label="操作">
             <template slot-scope="scope">
               <div>
-                <el-button type="text" @click="gotoDetail(scope.row)">详情</el-button>
+                <el-button type="text" @click="gotoDetail(scope.row)"
+                  >详情</el-button
+                >
               </div>
             </template>
           </el-table-column>
@@ -119,7 +141,7 @@ import load from "@/utils/loading";
 import organStudentDetail from "./organStudentDetail";
 import { Export } from "@/utils/downLoadFile";
 import { queryMemberStudentData } from "../api";
-import qs from 'qs'
+import qs from "qs";
 export default {
   name: "organDateDetail",
   components: { pagination, organStudentDetail },
@@ -139,6 +161,7 @@ export default {
         page_size: [10, 20, 40, 50], // 选择限制显示条数
       },
       studentVisible: false,
+      noTeacherStudentNum:0,
     };
   },
   //生命周期 - 创建完成(可以访问当前this实例)
@@ -155,40 +178,49 @@ export default {
   },
   methods: {
     init() {
-      this.getList()
+      this.getList();
     },
-   async getList() {
-     try{
-       const res = await queryMemberStudentData({organId:this.searchForm.organId,page:this.rules.page,rows:this.rules.limit})
-       this.tableList = res.data.rows
-       this.rules.total = res.data.total;
-     }catch(e){
-       console.log(e)
-     }
+    async getList() {
+      try {
+        const res = await queryMemberStudentData({
+          organId: this.searchForm.organId,
+          page: this.rules.page,
+          rows: this.rules.limit,
+        });
+        this.tableList = res.data.rows;
+        this.rules.total = res.data.total;
+        this.noTeacherStudentNum = res.data.statInfo.noTeacherStudentNum
+         this.$refs.saveForm.save();
+      } catch (e) {
+        console.log(e);
+      }
     },
     search() {
       this.rules.page = 1;
       this.getList();
-      this.$refs.saveForm.save();
+
     },
     onReSet() {},
     gotoDetail(row) {
-      this.$router.push({name:'studentList',params:{teacherId:row.teacherId}})
+      this.$router.push({
+        name: "studentList",
+        params: { teacherId: row.teacherId },
+      });
       // this.studentVisible = true;
     },
     goback() {
       this.$store.dispatch("delVisitedViews", this.$route);
       this.$router.push({ path: "/main/main?tabrouter=cloudDate" });
     },
-    organDateExport(){
-      let params = { ...this.searchForm,  };
+    organDateExport() {
+      let params = { ...this.searchForm };
       Export(
         this,
         {
           url: "/api-web/export/organTeacherMemberStudentData",
           fileName: "分部云教练数据详情.xls",
           method: "post",
-          params:qs.stringify(params)
+          params: qs.stringify(params),
         },
         "您确定导出分部云教练数据详情列表?"
       );
@@ -197,4 +229,11 @@ export default {
 };
 </script>
 <style lang='scss' scoped>
+.msg {
+  color: red;
+  margin-bottom: 20px;
+  display: block;
+  text-decoration-line: underline;
+  font-size: 14px;
+}
 </style>

+ 45 - 35
src/views/main/cloudDate/organRanking.vue

@@ -42,12 +42,15 @@
             align="center"
             prop="totalStudentNum"
             label="学员总数"
+            width="100px"
           >
-                  <template slot="header" slot-scope="slot">
+            <template slot="header" slot-scope="slot">
               <div class="titleCell">
                 <span>学员总数</span>
                 <el-tooltip placement="top" popper-class="mTooltip">
-                  <div slot="content">分部下所有学员</div>
+                  <div slot="content">
+                    乐团在读学员+有剩余VIP课或网管课学员去重之和
+                  </div>
                   <i
                     class="el-icon-question micon el-tooltip"
                     style="
@@ -65,6 +68,7 @@
             align="center"
             prop="cloudStudyLivelyStudentNum"
             label="活跃人数"
+            width="100px"
           >
             <template slot="header" slot-scope="slot">
               <div class="titleCell">
@@ -87,10 +91,11 @@
 
           <!--  -->
           <el-table-column
-               sortable="custom"
+            sortable="custom"
             align="center"
             prop="cloudStudyLivelyStudentDuty"
             label="活跃人数比"
+            width="140px"
           >
             <template slot="header" slot-scope="slot">
               <div class="titleCell">
@@ -120,9 +125,9 @@
           >
             <template slot="header" slot-scope="slot">
               <div class="titleCell">
-                <span>使用人数</span>
+                <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="
@@ -137,16 +142,41 @@
             </template>
           </el-table-column>
           <el-table-column
-               sortable="custom"
+            align="center"
+            prop="newMemberStudentNum"
+            label="新增使用人数"
+            width="100px"
+          >
+            <template slot="header" slot-scope="slot">
+              <div class="titleCell">
+                <span>当日新增使用人数</span>
+                <el-tooltip placement="top" popper-class="mTooltip">
+                  <div slot="content">当日第一次使用云教练的人数</div>
+                  <i
+                    class="el-icon-question micon el-tooltip"
+                    style="
+                      font-size: 18px;
+                      color: #f56c6c;
+                      top: 2px;
+                      position: relative;
+                    "
+                  ></i>
+                </el-tooltip>
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            sortable="custom"
+            width="140px"
             align="center"
             prop="cloudStudyUseStudentDuty"
-            label="使用人数比"
+            label="当日使用人数比"
           >
             <template slot="header" slot-scope="slot">
               <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="
@@ -165,7 +195,8 @@
           </el-table-column>
 
           <el-table-column
-               sortable="custom"
+            sortable="custom"
+            width="140px"
             align="center"
             prop="vipStudentNum"
             label="付费会员数"
@@ -189,7 +220,8 @@
             </template>
           </el-table-column>
           <el-table-column
-               sortable="custom"
+            sortable="custom"
+            width="140px"
             align="center"
             prop="vipStudentDuty"
             label="付费会员比"
@@ -262,29 +294,7 @@
               </div>
             </template>
           </el-table-column>
-          <el-table-column
-            align="center"
-            prop="newMemberStudentNum"
-            label="新增使用人数"
-          >
-            <template slot="header" slot-scope="slot">
-              <div class="titleCell">
-                <span>新增使用人数</span>
-                <el-tooltip placement="top" popper-class="mTooltip">
-                  <div slot="content">第一次使用云教练的人数</div>
-                  <i
-                    class="el-icon-question micon el-tooltip"
-                    style="
-                      font-size: 18px;
-                      color: #f56c6c;
-                      top: 2px;
-                      position: relative;
-                    "
-                  ></i>
-                </el-tooltip>
-              </div>
-            </template>
-          </el-table-column>
+
           <!-- <el-table-column
               sortable="custom"
             align="center"
@@ -330,7 +340,7 @@ import headers from "./modals/headers.vue";
 import pagination from "@/components/Pagination/index";
 import { Export } from "@/utils/downLoadFile";
 import dayjs from "dayjs";
-import qs from 'qs'
+import qs from "qs";
 import { indexStudentOverView } from "../api";
 export default {
   components: {
@@ -409,7 +419,7 @@ export default {
           url: "/api-web/export/cloudStudyStudentOverView",
           fileName: "分部云教练数据排行.xls",
           method: "post",
-          params:qs.stringify(params)
+          params: qs.stringify(params),
         },
         "您确定导出分部云教练数据排行?"
       );

+ 2 - 2
src/views/studentManager/studentList.vue

@@ -349,7 +349,7 @@
             label="会员截止日期(剩余天数)"
           >
             <template slot-scope="scope">
-              <div v-if="scope.row.membershipEndTime" class="red">
+              <div v-if="scope.row.membershipEndTime">
                 <div v-if="scope.row.membershipDay >= 0">
                   {{ scope.row.membershipEndTime | dayjsFormat }}
                   <p class="red">剩余{{ scope.row.membershipDay }}天</p>
@@ -388,7 +388,7 @@
           >
             <template slot-scope="scope">
               <div>
-                <p :class="checkDate(scope.row.membershipEndTime) ? '' : 'red'">
+                <p>
                   {{ scope.row.experienceMembershipEndTime | dayjsFormat }}
                 </p>
                 <p