mo 4 years ago
parent
commit
822d0af519

+ 1 - 1
.gitignore

@@ -21,4 +21,4 @@ debug.log
 
 *.log
 debug.log
-*.log
+debug.log

File diff suppressed because it is too large
+ 0 - 0
dist/index.html


File diff suppressed because it is too large
+ 0 - 0
dist/static/css/chunk-1eafdb0c.9f31dff6.css


+ 1 - 0
dist/static/css/chunk-37df2798.1bcaf403.css

@@ -0,0 +1 @@
+.process[data-v-f049a426]{padding:10px;max-height:600px;overflow-y:auto}.dialog-footer[data-v-7a44cd83]{margin-top:20px;display:block;text-align:right}.select[data-v-03176ffa]{font-size:14px}.btnList[data-v-03176ffa]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.btnList div[data-v-03176ffa]{margin-right:15px}

File diff suppressed because it is too large
+ 0 - 0
dist/static/css/chunk-41e3d60a.c41cf24c.css


File diff suppressed because it is too large
+ 0 - 0
dist/static/css/chunk-5154db7c.2fbf6419.css


File diff suppressed because it is too large
+ 0 - 0
dist/static/css/chunk-6b0475b4.0975e5da.css


+ 1 - 0
dist/static/css/chunk-75bdc7b6.53e11166.css

@@ -0,0 +1 @@
+.container[data-v-38d950a5]{overflow:hidden}.container .rows>div[data-v-38d950a5]{margin-bottom:20px}.container[data-v-38d950a5] .el-card__body .statistic{margin-bottom:15px;padding:0}

File diff suppressed because it is too large
+ 0 - 0
dist/static/css/chunk-76346a13.c63b79b1.css


File diff suppressed because it is too large
+ 0 - 0
dist/static/css/chunk-ef5e86cc.835fe9a8.css


File diff suppressed because it is too large
+ 0 - 0
dist/static/css/chunk-ffdd52e6.6916646b.css


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/app.21744403.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-37df2798.a3683000.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-5154db7c.da2dacf1.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-75bdc7b6.c5e8fa23.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-76346a13.374118c8.js


File diff suppressed because it is too large
+ 0 - 0
dist/static/js/chunk-ffdd52e6.bcc696a7.js


+ 8 - 0
src/api/buildTeam.js

@@ -1400,6 +1400,14 @@ export function courseMerge (data) {
   })
 }
 
+// 取消合并
+export function cancelCourseMerge (data) {
+  return request({
+    url: api + '/courseSchedule/mergeCourseSplit',
+    method: 'post',
+    data: qs.stringify(data)
+  })
+}
 
 // 查询班级剩余课次
 export function getClassGroupSubCourseNum (data) {

+ 1 - 1
src/views/main/constant.js

@@ -15,7 +15,7 @@ export const descs = {
   TEACHER_NUM: '截止到昨日【非冻结】的老师总数',
   FULL_TIME_NUM: '截止到昨日【非冻结】且工作类型为【全职】的老师总数',
   PART_TIME_NUM: '截止到昨日【非冻结】且工作类型为【兼职】的老师总数',
-  DIMISSION_NUM: '截止到昨日已设置【离职时间】且时间在昨日之前的老师总数',
+  DIMISSION_NUM: '已冻结或者截止到昨日已设置【离职时间】且时间在昨日之前的老师总数',
   NEWLY_STUDENT_NUM: '本年度截止到昨日,新增的乐团【在读】学员总数(去重)',
   QUIT_MUSIC_GROUP_STUDENT_NUM: '本年度截止到昨日,乐团退团学员总数(去重)',
   STUDENT_CONVERSION: '度截止到昨日,乐团预报名学员中正式报名缴费的学员购买VIP/网管课的转化率(不包括退团学员)',

+ 256 - 32
src/views/main/index.vue

@@ -1,46 +1,270 @@
 <template>
   <div class="m-container">
-    <h2>
-      <div class="squrt"></div>控制台
+    <h2 v-permission="'/main/main/allData/826'">
+      <div class="squrt"></div>首页
     </h2>
-    <div class="m-core">
-      <tab-router v-permission="'newIndex'">
-        <el-tab-pane lazy label="基本信息" name="baseinfo">
-          <baseinfo/>
-        </el-tab-pane>
-        <!-- <el-tab-pane lazy label="异常处理" name="abnormal">
-          <abnormal/>
-        </el-tab-pane>
-        <el-tab-pane lazy label="事项提醒" name="reminders">
-          <reminders/>
-        </el-tab-pane>
-        <el-tab-pane lazy label="【乐团主管】日程安排" name="teamSchedule">
-          <teamSchedule />
-        </el-tab-pane>
-        <el-tab-pane lazy label="【分部经理】日程安排" name="ScheduleBranch">
-          <ScheduleBranch/>
-        </el-tab-pane> -->
-      </tab-router>
+    <div class="m-core"
+         v-permission="'/main/main/allData/826'">
+      <div class="itemWrap">
+        <div class="item">
+          <h4>
+            <p>分部乐团数</p> <img src=""
+                 alt="">
+          </h4>
+          <div class="infos">
+            <div class="info">
+              <p class="sub">全部</p>
+              <p class='msg'> {{ dataInfo.mdTotal }}</p>
+            </div>
+            <div class="info">
+              <p class="sub">筹备中</p>
+              <p class='msg'>{{ dataInfo.prepare_num_ }}</p>
+            </div>
+            <div class="info">
+              <p class="sub">进行中</p>
+              <p class='msg'>{{ dataInfo.progress_num_ }}</p>
+            </div>
+            <div class="info">
+              <p class="sub">已完成</p>
+              <p class='msg'>{{ dataInfo.pause_num_ }}</p>
+            </div>
+          </div>
+        </div>
+        <!--  -->
+        <div class="item"
+             v-permission="'main/monthIncome'">
+          <h4>
+            <p>本月收入</p>
+            <img src=""
+                 alt="">
+          </h4>
+          <div class="infos">
+            <div class="info">
+              <p class="sub">收入笔数</p>
+              <p class='msg'>{{ dataInfo.incomeMap && dataInfo.incomeMap.total >= 0 ? dataInfo.incomeMap.total : '--' }}</p>
+            </div>
+            <div class="info">
+              <p class="sub">收入金额</p>
+              <p class='msg'>{{ dataInfo.incomeMap && dataInfo.incomeMap.total_num_ >= 0 ? dataInfo.incomeMap.total_num_ : '--' }}</p>
+            </div>
+          </div>
+        </div>
+
+        <div class="item"
+             v-permission="'main/monthExpenditure'">
+          <h4>
+            <p>本月支出</p>
+            <img src=""
+                 alt="">
+          </h4>
+          <div class="infos">
+            <div class="info">
+              <p class="sub">支出笔数</p>
+              <p class='msg'>{{ dataInfo.incomeExpendMap && dataInfo.incomeExpendMap.expend_num_ >= 0 ? dataInfo.incomeExpendMap.expend_num_ : '--' }}</p>
+            </div>
+            <div class="info">
+              <p class="sub">支出金额</p>
+              <p class='msg'>{{ dataInfo.incomeExpendMap && dataInfo.incomeExpendMap.expend_total_ >= 0 ? dataInfo.incomeExpendMap.expend_total_ : '--' }}</p>
+            </div>
+          </div>
+        </div>
+
+        <div class="item">
+          <h4>
+            <p>分部老师数</p>
+            <img src=""
+                 alt="">
+          </h4>
+          <div class="infos">
+            <div class="info">
+              <p class="sub">总计</p>
+              <p class='msg'>{{ dataInfo.teacherDatas && dataInfo.teacherDatas.total >= 0 ? dataInfo.teacherDatas.total : '--' }}</p>
+            </div>
+            <div class="info">
+              <p class="sub">全职人数</p>
+              <p class='msg'>{{ dataInfo.teacherDatas && dataInfo.teacherDatas.full_time_num_ >= 0 ? dataInfo.teacherDatas.full_time_num_ : '--' }}</p>
+            </div>
+            <div class="info">
+              <p class="sub">兼职人数</p>
+              <p class='msg'>{{ dataInfo.teacherDatas && dataInfo.teacherDatas.part_time_num_ >= 0 ? dataInfo.teacherDatas.part_time_num_ : '--' }}</p>
+            </div>
+          </div>
+        </div>
+
+        <div class="item">
+          <h4>
+            <p>VIP课数</p>
+            <img src=""
+                 alt="">
+          </h4>
+          <div class="infos">
+            <div class="info">
+              <p class="sub">总计</p>
+              <p class='msg'>
+                {{ dataInfo.vdTotal }}
+              </p>
+            </div>
+            <div class="info">
+              <p class="sub">进行中</p>
+              <p class='msg'>{{ dataInfo.applying_num_ }}</p>
+            </div>
+            <div class="info">
+              <p class="sub">已完成</p>
+              <p class='msg'>{{ dataInfo.finished_num_ }}</p>
+            </div>
+          </div>
+        </div>
+
+        <div class="item">
+          <h4>
+            <p>试听课</p>
+            <img src=""
+                 alt="">
+          </h4>
+          <div class="infos">
+            <div class="info">
+              <p class="sub">总计</p>
+              <p class='msg'>{{ dataInfo.ddTotal }}</p>
+            </div>
+            <div class="info">
+              <p class="sub">已预约</p>
+              <p class='msg'>{{ dataInfo.booked_num_ }}</p>
+            </div>
+            <div class="info">
+              <p class="sub">未完成</p>
+              <p class='msg'>{{ dataInfo.unbooked_num_ }}</p>
+            </div>
+          </div>
+        </div>
+
+        <div class="item">
+          <h4>
+            <p>分部学生数</p>
+            <img src=""
+                 alt="">
+          </h4>
+          <div class="infos">
+            <div class="info">
+              <p class="sub">总计</p>
+              <p class='msg'>{{ dataInfo.studentDatas && dataInfo.studentDatas.total_num_ >= 0 ? dataInfo.studentDatas.total_num_ : '--' }}</p>
+            </div>
+            <div class="info">
+              <p class="sub">本月新增</p>
+              <p class='msg'>{{ dataInfo.studentDatas && dataInfo.studentDatas.new_num_ >= 0 ? dataInfo.studentDatas.new_num_ : '--' }}</p>
+            </div>
+            <div class="info">
+              <p class="sub">本月退团</p>
+              <p class='msg'>{{ dataInfo.studentDatas && dataInfo.studentDatas.quit_num_ >= 0 ? dataInfo.studentDatas.quit_num_ : '--' }}</p>
+            </div>
+          </div>
+        </div>
+
+        <div class="item">
+          <h4>
+            <p>本月预计上课</p>
+            <img src=""
+                 alt="">
+          </h4>
+          <div class="infos">
+            <div class="info">
+              <p class="sub">乐团课</p>
+              <p class='msg'>{{ dataInfo.musicGroupNum >= 0 ? dataInfo.musicGroupNum : '--' }}</p>
+            </div>
+            <div class="info">
+              <p class="sub">VIP课</p>
+              <p class='msg'>{{ dataInfo.vipGroupNum >= 0 ? dataInfo.vipGroupNum : '--' }}</p>
+            </div>
+            <div class="info">
+              <p class="sub">试听课</p>
+              <p class='msg'>{{ dataInfo.demoGroupNum >= 0 ? dataInfo.demoGroupNum : '--' }}</p>
+            </div>
+          </div>
+        </div>
+
+      </div>
     </div>
   </div>
 </template>
 <script>
-import baseinfo from './baseinfo'
-// import abnormal from './abnormal'
-// import teamSchedule from './teamSchedule'
-// import ScheduleBranch from './schedule-branch'
-// import reminders from './reminders'
+import { getIndex } from '@/api/user'
 export default {
   name: 'Main',
-  components: {
-    baseinfo,
-    // abnormal,
-    // teamSchedule,
-    // ScheduleBranch,
-    // reminders,
+  data () {
+    return {
+      dataInfo: {}
+    }
+  },
+  mounted () {
+    this.__init();
+
   },
+  methods: {
+    __init () {
+      getIndex().then(res => {
+        if (res.code == 200) {
+          // this.dataInfo = res.data
+          let md = res.data.musicDatas || {},
+            vd = res.data.vipDatas || {},
+            dd = res.data.demoDatas || {}
+          let tempDate = {
+            mdTotal: (md.progress_num_ ? md.progress_num_ : 0) + (md.prepare_num_ ? md.prepare_num_ : 0) + (md.pause_num_ ? md.pause_num_ : 0),
+            progress_num_: md.progress_num_ >= 0 ? md.progress_num_ : '--',
+            prepare_num_: md.prepare_num_ >= 0 ? md.prepare_num_ : '--',
+            pause_num_: md.pause_num_ >= 0 ? md.pause_num_ : '--',
+            vdTotal: (vd.finished_num_ ? vd.finished_num_ : 0) + (vd.applying_num_ ? vd.applying_num_ : 0),
+            finished_num_: vd.finished_num_ >= 0 ? vd.finished_num_ : '--',
+            applying_num_: vd.applying_num_ >= 0 ? vd.applying_num_ : '--',
+            ddTotal: (dd.booked_num_ ? dd.booked_num_ : 0) + (dd.unbooked_num_ ? dd.unbooked_num_ : 0),
+            booked_num_: dd.booked_num_ >= 0 ? dd.booked_num_ : '--',
+            unbooked_num_: dd.unbooked_num_ >= 0 ? dd.unbooked_num_ : '--'
+          }
+          this.dataInfo = Object.assign(res.data, tempDate)
+        }
+      })
+    }
+  }
 }
 </script>
 <style lang="scss" scope>
-
+.itemWrap {
+  display: flex;
+  flex-direction: row;
+  justify-content: flex-start;
+  align-items: center;
+  flex-wrap: wrap;
+  .item {
+    width: 333px;
+    height: 137px;
+    padding: 22px 28px 20px;
+    box-shadow: 0px 8px 20px 0px rgba(0, 0, 0, 0.1);
+    border-radius: 6px;
+    margin: 0 15px 3rem;
+    h4 {
+      display: flex;
+      flex-direction: row;
+      justify-content: space-between;
+      margin-bottom: 20px;
+      color: #323c47;
+      font-size: 14px;
+    }
+    .infos {
+      display: flex;
+      flex-direction: row;
+      justify-content: space-between;
+      .sub {
+        font-size: 14px;
+        line-height: 20px;
+        color: #aaa;
+        margin-bottom: 8px;
+      }
+      .msg {
+        font-size: 24px;
+        font-weight: 500;
+        color: rgba(68, 68, 68, 1);
+        line-height: 28px;
+        text-align: center;
+      }
+    }
+  }
+}
 </style>

File diff suppressed because it is too large
+ 445 - 310
src/views/teamDetail/teamCourseList.vue


+ 3 - 3
vue.config.js

@@ -18,11 +18,11 @@ const name = defaultSettings.title || '管乐迷后台管理系统' // page titl
 // //  https://online.dayaedu.com
 // let target = 'https://online.dayaedu.com' //线上
 // let target = 'http://dyme.utools.club' //test环境
-let target = 'http://192.168.3.139:8000' // 箭河
+// let target = 'http://192.168.3.139:8000' // 箭河
 // let target = 'http://192.168.3.38:8000' //邹璇
 // let target = 'http://192.168.3.57:8000' //勇哥
-// let target = 'http://dev.dayaedu.com' // 测试服
-// let target = 'http://192.168.3.196:80' // 乔
+let target = 'http://dev.dayaedu.com' // 测试服
+// let target = 'http://192.168.3.196' // 乔
 // All configuration item explanations can be find in https://cli.vuejs.org/config/
 module.exports = {
   /**

Some files were not shown because too many files changed in this diff