|  | @@ -66,7 +66,8 @@
 | 
	
		
			
				|  |  |            <el-button
 | 
	
		
			
				|  |  |              @click="onExport"
 | 
	
		
			
				|  |  |              type="primary"
 | 
	
		
			
				|  |  | -            v-permission="'export/exercisesSituations'">导出</el-button
 | 
	
		
			
				|  |  | +            v-permission="'export/exercisesSituations'"
 | 
	
		
			
				|  |  | +            >导出</el-button
 | 
	
		
			
				|  |  |            >
 | 
	
		
			
				|  |  |          </el-form-item>
 | 
	
		
			
				|  |  |        </save-form>
 | 
	
	
		
			
				|  | @@ -231,107 +232,28 @@
 | 
	
		
			
				|  |  |      </div>
 | 
	
		
			
				|  |  |      <el-dialog title="服务指标规则说明" :visible.sync="lookServer">
 | 
	
		
			
				|  |  |        <div class="serverInfo">
 | 
	
		
			
				|  |  | -        <p>训练布置&服务指标优先级:<span>声部课>VIP课>合奏课>网管课</span></p>
 | 
	
		
			
				|  |  | +        <p  style="font-weight:600">系统规则:</p>
 | 
	
		
			
				|  |  |          <p>
 | 
	
		
			
				|  |  | -          每
 | 
	
		
			
				|  |  | -          <span>周一凌晨</span> 系统根据学员的排课情况生成布置训练路径及服务指标
 | 
	
		
			
				|  |  | +          1、每<span>周一凌晨</span>系统根据下方流程图,为每个乐团<span>独立生成</span>本周训练布置路径
 | 
	
		
			
				|  |  |          </p>
 | 
	
		
			
				|  |  |          <p>
 | 
	
		
			
				|  |  | -          <span>多次课程</span>
 | 
	
		
			
				|  |  | -          只布置一次训练、统计一次服务指标(多乐团、多组VIP网管课除外)
 | 
	
		
			
				|  |  | +          2、系统<span>每10分钟</span>根据乐团最新的课程、班级信息<span>更新</span>本周训练布置路径
 | 
	
		
			
				|  |  |          </p>
 | 
	
		
			
				|  |  | -        <el-table
 | 
	
		
			
				|  |  | -          border
 | 
	
		
			
				|  |  | -          style="margin-top: 30px"
 | 
	
		
			
				|  |  | -          :data="infoList"
 | 
	
		
			
				|  |  | -          :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
 | 
	
		
			
				|  |  | -          :span-method="arraySpanMethod"
 | 
	
		
			
				|  |  | -        >
 | 
	
		
			
				|  |  | -          <el-table-column
 | 
	
		
			
				|  |  | -            align="center"
 | 
	
		
			
				|  |  | -            prop="row1"
 | 
	
		
			
				|  |  | -            label="总体课程情况"
 | 
	
		
			
				|  |  | -          ></el-table-column>
 | 
	
		
			
				|  |  | -          <el-table-column
 | 
	
		
			
				|  |  | -            align="center"
 | 
	
		
			
				|  |  | -            prop="row2"
 | 
	
		
			
				|  |  | -            label="本周课程情况"
 | 
	
		
			
				|  |  | -          ></el-table-column>
 | 
	
		
			
				|  |  | -          <el-table-column
 | 
	
		
			
				|  |  | -            align="center"
 | 
	
		
			
				|  |  | -            prop="row3"
 | 
	
		
			
				|  |  | -            label="训练布置路径"
 | 
	
		
			
				|  |  | -          ></el-table-column>
 | 
	
		
			
				|  |  | -          <el-table-column
 | 
	
		
			
				|  |  | -            align="center"
 | 
	
		
			
				|  |  | -            prop="row4"
 | 
	
		
			
				|  |  | -            label="服务指标统计"
 | 
	
		
			
				|  |  | -          ></el-table-column>
 | 
	
		
			
				|  |  | -        </el-table>
 | 
	
		
			
				|  |  | -        <div class="infoWrap">
 | 
	
		
			
				|  |  | -          <h4>其他情况:</h4>
 | 
	
		
			
				|  |  | -          <p>
 | 
	
		
			
				|  |  | -            1.学员在 <span>多个乐团时</span> ,剩余课程中
 | 
	
		
			
				|  |  | -            <span>本周有声部课</span> 的乐团布置训练,
 | 
	
		
			
				|  |  | -            <span>都有</span> 则都布置,
 | 
	
		
			
				|  |  | -            <span>都没有</span> 则根据表格中的逻辑布置
 | 
	
		
			
				|  |  | -          </p>
 | 
	
		
			
				|  |  | -          <p>
 | 
	
		
			
				|  |  | -            2.学员存在 <span>多组VIP课</span> 时,若课程组
 | 
	
		
			
				|  |  | -            <span>老师相同</span> ,则仅布置一次训练(网管课同理)
 | 
	
		
			
				|  |  | -          </p>
 | 
	
		
			
				|  |  | -          <p>
 | 
	
		
			
				|  |  | -            3.学员存在 <span>多组VIP课</span> 时,若课程组
 | 
	
		
			
				|  |  | -            <span>老师不同,本周有课</span>
 | 
	
		
			
				|  |  | -            的VIP课程组布置训练,多个课程组本周都有课则布置多次(网管课同理)
 | 
	
		
			
				|  |  | -          </p>
 | 
	
		
			
				|  |  | -          <p>
 | 
	
		
			
				|  |  | -            4.学员存在 <span>多组VIP课</span> 时,若课程组
 | 
	
		
			
				|  |  | -            <span>老师不同,本周都没有课</span> ,则所有VIP老师
 | 
	
		
			
				|  |  | -            <span>都布置</span> 课外训练, <span>都统计</span> 服务指标
 | 
	
		
			
				|  |  | -          </p>
 | 
	
		
			
				|  |  | -        </div>
 | 
	
		
			
				|  |  | -        <div class="infoWrap">
 | 
	
		
			
				|  |  | -          <h4>课程调整:</h4>
 | 
	
		
			
				|  |  | -          <p>
 | 
	
		
			
				|  |  | -            本周 <span>课程调整时</span> ,重新根据该学员的
 | 
	
		
			
				|  |  | -            <span>本周课程情况更新</span> 训练布置路径及服务指标
 | 
	
		
			
				|  |  | -            则根据表格中的逻辑布置
 | 
	
		
			
				|  |  | -          </p>
 | 
	
		
			
				|  |  | -        </div>
 | 
	
		
			
				|  |  | -        <div class="infoWrap">
 | 
	
		
			
				|  |  | -          <h4>服务指标:</h4>
 | 
	
		
			
				|  |  | -          <p>服务指标按 <span>周为单位</span> 统计</p>
 | 
	
		
			
				|  |  | -          <p>
 | 
	
		
			
				|  |  | -            <span>周六周日</span> 的服务指标
 | 
	
		
			
				|  |  | -            <span>延迟到下周二更新</span>
 | 
	
		
			
				|  |  | -            实际安排数据(即周日的训练课程,在周二23:59:59时前布置训练都算一次实际安排)
 | 
	
		
			
				|  |  | -          </p>
 | 
	
		
			
				|  |  | -        </div>
 | 
	
		
			
				|  |  | -        <div class="infoWrap">
 | 
	
		
			
				|  |  | -          <h4>服务指标开启/关闭:</h4>
 | 
	
		
			
				|  |  | -          <p>学员新增课程时,自动开启服务指标,</p>
 | 
	
		
			
				|  |  | -          <p>手动关闭服务指标的学员新增课程时,不会自动开启服务指标</p>
 | 
	
		
			
				|  |  | -          <p>
 | 
	
		
			
				|  |  | -            学员退团、乐团关闭、VIP课程组结束、网管课课程组结束时,若学员不在任何【进行中】乐团【在读】,且无任何未开始课程(乐团课、VIP课、网管课),则关闭服务指标
 | 
	
		
			
				|  |  | -          </p>
 | 
	
		
			
				|  |  | -        </div>
 | 
	
		
			
				|  |  | -        <div class="infoWrap">
 | 
	
		
			
				|  |  | -          <h4>服务指标解释:</h4>
 | 
	
		
			
				|  |  | -          <p><span>若本周学员有多次服务指标则生成多条数据</span></p>
 | 
	
		
			
				|  |  | -          <p>
 | 
	
		
			
				|  |  | -            预期训练布置:本周内服务指标次数(即本周应该给该学员布置的训练次数)
 | 
	
		
			
				|  |  | -          </p>
 | 
	
		
			
				|  |  | -          <p>
 | 
	
		
			
				|  |  | -            实际训练布置:本周通过服务指标训练布置路径给该学员布置训练的次数
 | 
	
		
			
				|  |  | -          </p>
 | 
	
		
			
				|  |  | -          <p>提交次数:本周学员按照训练布置路径提交训练的次数</p>
 | 
	
		
			
				|  |  | -          <p>评价次数:本周老师评价通过训练布置路径提交的训练的次数</p>
 | 
	
		
			
				|  |  | -          <p>及时评价次数:学员提交训练后24小时内进行评价的次数</p>
 | 
	
		
			
				|  |  | -          <p>VIP课:本周VIP课程课时数</p>
 | 
	
		
			
				|  |  | -          <p>付费网管课:本周付费网管课课时数</p>
 | 
	
		
			
				|  |  | -          <p>训练提交时间:学员提交训练的时间</p>
 | 
	
		
			
				|  |  | -          <p>服务周期:本服务周期时间段</p>
 | 
	
		
			
				|  |  | +        <p  style="margin-top: 20px;font-weight:600">前提条件:</p>
 | 
	
		
			
				|  |  | +        <p>1、学员管理中,【是否服务】为 【是】</p>
 | 
	
		
			
				|  |  | +        <p>2、学员在【进行中】乐团在读</p>
 | 
	
		
			
				|  |  | +        <p>3、乐团截止本周日前,有声部课(含集训)或合奏课(含集训)</p>
 | 
	
		
			
				|  |  | +        <p  style="margin-top: 20px;font-weight:600">特殊情况:</p>
 | 
	
		
			
				|  |  | +        <p>1、学员在多个乐团时,可能存在多次作业</p>
 | 
	
		
			
				|  |  | +        <p>2、老师<span>已布置训练后</span>,由于班级、学员、课程变动<span>更新</span>训练布置路径时,可能存在多次作业,但<span>服务指标相关数据统计仅按最新的训练布置路径统计</span></p>
 | 
	
		
			
				|  |  | +        <p>3、学员不在【课外训练布置班级】所设置的班级类型中时,不会生成课外训练</p>
 | 
	
		
			
				|  |  | +        <div class="imgWrap">
 | 
	
		
			
				|  |  | +              <el-image
 | 
	
		
			
				|  |  | +              :src="serverImg"
 | 
	
		
			
				|  |  | +              class="img"
 | 
	
		
			
				|  |  | +              fit="cover"
 | 
	
		
			
				|  |  | +              >
 | 
	
		
			
				|  |  | +            </el-image>
 | 
	
		
			
				|  |  |          </div>
 | 
	
		
			
				|  |  |        </div>
 | 
	
		
			
				|  |  |      </el-dialog>
 | 
	
	
		
			
				|  | @@ -480,6 +402,7 @@ export default {
 | 
	
		
			
				|  |  |    components: { pagination },
 | 
	
		
			
				|  |  |    data() {
 | 
	
		
			
				|  |  |      return {
 | 
	
		
			
				|  |  | +        serverImg: require("./images/serverIndexDetail.png"),
 | 
	
		
			
				|  |  |        tableList: [],
 | 
	
		
			
				|  |  |        searchForm: {
 | 
	
		
			
				|  |  |          timer: [],
 | 
	
	
		
			
				|  | @@ -631,7 +554,7 @@ export default {
 | 
	
		
			
				|  |  |          method: "get",
 | 
	
		
			
				|  |  |          headers: {
 | 
	
		
			
				|  |  |            Authorization: getToken(),
 | 
	
		
			
				|  |  | -          tenantId: getTenantId()
 | 
	
		
			
				|  |  | +          tenantId: getTenantId(),
 | 
	
		
			
				|  |  |          },
 | 
	
		
			
				|  |  |          url,
 | 
	
		
			
				|  |  |          params: obj,
 | 
	
	
		
			
				|  | @@ -657,14 +580,14 @@ export default {
 | 
	
		
			
				|  |  |                  // 判断是否报错
 | 
	
		
			
				|  |  |                  if (res.indexOf("code") != -1) {
 | 
	
		
			
				|  |  |                    let json = JSON.parse(res);
 | 
	
		
			
				|  |  | -                  if(json.code == 403) {
 | 
	
		
			
				|  |  | -                    this.$message.error(`登录过期,请重新登录!`)
 | 
	
		
			
				|  |  | +                  if (json.code == 403) {
 | 
	
		
			
				|  |  | +                    this.$message.error(`登录过期,请重新登录!`);
 | 
	
		
			
				|  |  |                      setTimeout(() => {
 | 
	
		
			
				|  |  | -                      this.$store.dispatch('user/resetToken').then(() => {
 | 
	
		
			
				|  |  | -                        location.reload()
 | 
	
		
			
				|  |  | -                      })
 | 
	
		
			
				|  |  | +                      this.$store.dispatch("user/resetToken").then(() => {
 | 
	
		
			
				|  |  | +                        location.reload();
 | 
	
		
			
				|  |  | +                      });
 | 
	
		
			
				|  |  |                      }, 1000);
 | 
	
		
			
				|  |  | -                    return
 | 
	
		
			
				|  |  | +                    return;
 | 
	
		
			
				|  |  |                    }
 | 
	
		
			
				|  |  |                    this.$message.error(json.msg);
 | 
	
		
			
				|  |  |                  } else {
 | 
	
	
		
			
				|  | @@ -825,7 +748,7 @@ export default {
 | 
	
		
			
				|  |  |  .serverInfo {
 | 
	
		
			
				|  |  |    line-height: 30px;
 | 
	
		
			
				|  |  |    span {
 | 
	
		
			
				|  |  | -    color: #333;
 | 
	
		
			
				|  |  | +    color: red;
 | 
	
		
			
				|  |  |      font-weight: bold;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  }
 |