Selaa lähdekoodia

提交测试

1
mo 3 vuotta sitten
vanhempi
commit
eb65a37a7a

+ 19 - 12
src/views/main/cloudDate/activeUserNum.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <el-card>
-      <headers title="活跃用户统计" @changeOrgan='changeOrgan'/>
+      <headers title="活跃用户统计" @changeOrgan="changeOrgan" />
       <div class="chioseBox">
         <el-radio-group v-model="timers" size="mini" @change="changeQuick">
           <el-radio-button label="month">本月</el-radio-button>
@@ -61,7 +61,7 @@ export default {
       timers: "", // 本月 本年 去年
       mdate: [],
       data: [],
-      organId:''
+      organId: "",
     };
   },
   mounted() {
@@ -79,7 +79,7 @@ export default {
         "MEMBER_STUDENT_NUM",
         "CLOUD_STUDY_LIVELY_STUDENT_NUM",
         "CLOUD_STUDY_DAY_USE_STUDENT_NUM",
-        "CLOUD_STUDY_NEW_STUDENT_NUM"
+        "CLOUD_STUDY_NEW_STUDENT_NUM",
       ];
       arr.forEach((str) => {
         if (this.data[str]) {
@@ -210,7 +210,7 @@ export default {
           scale: true,
           min: 0,
           axisLabel: {
-            formatter: "{value}",
+            formatter: "{value}",
           },
         },
         tooltip: {
@@ -235,8 +235,16 @@ export default {
   methods: {
     init() {
       let nowTiem = this.$helpers.dayjs(new Date()).format("YYYY-MM-DD");
-      let startTime = getNowDateAndMonday(nowTiem)
-      let endTime = getNowDateAndSunday(nowTiem);
+
+      let startTime = this.$helpers
+        .dayjs(nowTiem)
+        .subtract(8, "day")
+        .format("YYYY-MM-DD");
+
+      let endTime = this.$helpers
+        .dayjs(nowTiem)
+        .subtract(1, "day")
+        .format("YYYY-MM-DD");
       this.mdate = [startTime, endTime];
       this.FetchDetail();
     },
@@ -244,7 +252,7 @@ export default {
       // 请求更改数据
       this.mdate = date;
       this.isDayOrMoth(date);
-      console.log('调用',date)
+      console.log("调用", date);
       this.FetchDetail();
     },
     async FetchDetail() {
@@ -255,7 +263,7 @@ export default {
         //   ...rest,
         const res = await getIndex({
           ...getTimes(this.mdate, ["startDate", "endDate"]),
-          organId:this.organId,
+          organId: this.organId,
           dataTypes:
             "MEMBER_STUDENT_NUM,CLOUD_STUDY_LIVELY_STUDENT_NUM,CLOUD_STUDY_DAY_USE_STUDENT_NUM,CLOUD_STUDY_NEW_STUDENT_NUM",
         });
@@ -364,11 +372,10 @@ export default {
           : (this.timer = "day");
       }
     },
-    changeOrgan(val){
+    changeOrgan(val) {
       this.organId = val;
-      this.FetchDetail()
-      // console.log('改变分部id',val)
-    }
+      this.FetchDetail();
+    },
   },
 };
 </script>

+ 5 - 3
src/views/main/cloudDate/organDate.vue

@@ -15,6 +15,7 @@
           :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
           :data="tableList"
           @sort-change="sortChang"
+          sortable='custom'
         >
           <el-table-column
             align="center"
@@ -71,7 +72,7 @@
             align="center"
             prop="cloudStudyUseStudentDuty"
             label="使用比例"
-            sortable
+               sortable="custom"
           >
             <template slot="header" slot-scope="slot">
               <div class="titleCell">
@@ -145,7 +146,7 @@
             </template>
           </el-table-column>
           <!-- <el-table-column
-            sortable
+               sortable="custom"
             align="center"
             prop="eVipStudentNum"
             label="试用会员"
@@ -200,6 +201,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'
 export default {
   components: {
     headers,
@@ -271,7 +273,7 @@ export default {
           url: "/api-web/export/organStudentOverView",
           fileName: "分部云教练数据.xls",
           method: "post",
-          params,
+          params:qs.stringify(params)
         },
         "您确定导出分部云教练数据列表?"
       );

+ 2 - 1
src/views/main/cloudDate/organDateDetail.vue

@@ -119,6 +119,7 @@ import load from "@/utils/loading";
 import organStudentDetail from "./organStudentDetail";
 import { Export } from "@/utils/downLoadFile";
 import { queryMemberStudentData } from "../api";
+import qs from 'qs'
 export default {
   name: "organDateDetail",
   components: { pagination, organStudentDetail },
@@ -187,7 +188,7 @@ export default {
           url: "/api-web/export/organTeacherMemberStudentData",
           fileName: "分部云教练数据详情.xls",
           method: "post",
-          params,
+          params:qs.stringify(params)
         },
         "您确定导出分部云教练数据详情列表?"
       );

+ 151 - 18
src/views/main/cloudDate/organRanking.vue

@@ -3,7 +3,13 @@
     <el-card>
       <headers title="分部排行" :hidenOrgan="true" />
       <div class="wrap">
-        <el-button type="primary" size="mini" @click="rankingExport" v-permission="'export/cloudStudyStudentOverView'">导出</el-button>
+        <el-button
+          type="primary"
+          size="mini"
+          @click="rankingExport"
+          v-permission="'export/cloudStudyStudentOverView'"
+          >导出</el-button
+        >
         <div class="chioseBox">
           <el-date-picker
             v-model="date"
@@ -34,23 +40,75 @@
           ></el-table-column>
           <el-table-column
             align="center"
-            prop="cloudStudyLivelyStudentNum"
-            label="活跃人数"
+            prop="totalStudentNum"
+            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
+          <el-table-column
             align="center"
-            prop="totalStudentNum"
-            label="学员总数"
+            prop="cloudStudyLivelyStudentNum"
+            label="活跃人数"
           >
+            <template slot="header" slot-scope="slot">
+              <div class="titleCell">
+                <span>活跃人数</span>
+                <el-tooltip placement="top" popper-class="mTooltip">
+                  <div slot="content">近15天内使用达到5天及以上的用户总数</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
+               sortable="custom"
             align="center"
             prop="cloudStudyLivelyStudentDuty"
-            label="活跃人数占比"
+            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>
             <template slot-scope="scope">
               <div>{{ scope.row.cloudStudyLivelyStudentDuty }}%</div>
             </template>
@@ -60,20 +118,54 @@
             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
-            sortable
+               sortable="custom"
             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>
+                  <i
+                    class="el-icon-question micon el-tooltip"
+                    style="
+                      font-size: 18px;
+                      color: #f56c6c;
+                      top: 2px;
+                      position: relative;
+                    "
+                  ></i>
+                </el-tooltip>
+              </div>
+            </template>
             <template slot-scope="scope">
               <div>{{ scope.row.cloudStudyUseStudentDuty }}%</div>
             </template>
           </el-table-column>
 
           <el-table-column
-            sortable
+               sortable="custom"
             align="center"
             prop="vipStudentNum"
             label="付费会员数"
@@ -82,7 +174,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="
@@ -97,17 +189,34 @@
             </template>
           </el-table-column>
           <el-table-column
-            sortable
+               sortable="custom"
             align="center"
             prop="vipStudentDuty"
-            label="付费会员比"
+            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>
             <template slot-scope="scope">
               <div>{{ scope.row.vipStudentDuty }}%</div>
             </template>
           </el-table-column>
           <!-- <el-table-column
-            sortable
+               sortable="custom"
             align="center"
             prop="eVipStudentNum"
             label="试用会员"
@@ -153,8 +262,31 @@
               </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
+              sortable="custom"
             align="center"
             prop="studentId"
             label="活跃度"
@@ -198,6 +330,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 { indexStudentOverView } from "../api";
 export default {
   components: {
@@ -269,14 +402,14 @@ export default {
       this.getList();
     },
     rankingExport() {
-      let params = { ...this.searchForm ,date:this.date};
+      let params = { ...this.searchForm, date: this.date };
       Export(
         this,
         {
           url: "/api-web/export/cloudStudyStudentOverView",
           fileName: "分部云教练数据排行.xls",
           method: "post",
-          params,
+          params:qs.stringify(params)
         },
         "您确定导出分部云教练数据排行?"
       );

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

@@ -167,7 +167,7 @@
             <template slot-scope="props">
               <el-form label-position="left" class="demo-table-expand">
                 <el-row>
-                  <el-col :span="4">
+                  <el-col :span="6">
                     <el-form-item label="所属学校">
                       <div class="schoolWrap">
                         <overflow-text
@@ -209,7 +209,7 @@
                   >
                 </el-row>
                 <el-row>
-                  <el-col :span="4">
+                  <el-col :span="6">
                     <el-form-item label="指导老师">
                       <span>{{ props.row.teacherName }}</span>
                     </el-form-item></el-col