|
@@ -3,110 +3,41 @@
|
|
<div class="m-container">
|
|
<div class="m-container">
|
|
<h2>
|
|
<h2>
|
|
<div class="titleWrap">
|
|
<div class="titleWrap">
|
|
- <div class="squrt"></div>
|
|
|
|
- 服务指标
|
|
|
|
|
|
+ <div class="squrt"></div>
|
|
|
|
+ 服务指标
|
|
</div>
|
|
</div>
|
|
|
|
|
|
- <el-button type="text" icon="el-icon-question" @click="lookServerDetail" style="color:red">服务指标规则</el-button>
|
|
|
|
|
|
+ <el-button
|
|
|
|
+ type="text"
|
|
|
|
+ icon="el-icon-question"
|
|
|
|
+ @click="lookServerDetail"
|
|
|
|
+ style="color: red"
|
|
|
|
+ >服务指标规则</el-button
|
|
|
|
+ >
|
|
</h2>
|
|
</h2>
|
|
<div class="m-core">
|
|
<div class="m-core">
|
|
<save-form
|
|
<save-form
|
|
|
|
+ ref='searchForm'
|
|
:inline="true"
|
|
:inline="true"
|
|
:model="searchForm"
|
|
:model="searchForm"
|
|
@submit="search"
|
|
@submit="search"
|
|
@reset="onReSet"
|
|
@reset="onReSet"
|
|
>
|
|
>
|
|
<el-form-item>
|
|
<el-form-item>
|
|
- <el-input
|
|
|
|
- v-model.trim="searchForm.search"
|
|
|
|
- @keyup.enter.native="search"
|
|
|
|
- clearable
|
|
|
|
- placeholder="学生姓名"
|
|
|
|
- ></el-input>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item>
|
|
|
|
<remote-search
|
|
<remote-search
|
|
:commit="'setTeachers'"
|
|
:commit="'setTeachers'"
|
|
v-model="searchForm.teacherId"
|
|
v-model="searchForm.teacherId"
|
|
/>
|
|
/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item prop="organId">
|
|
|
|
- <el-select
|
|
|
|
- class="multiple"
|
|
|
|
- v-model.trim="searchForm.organIdList"
|
|
|
|
- filterable
|
|
|
|
- clearable
|
|
|
|
- placeholder="请选择分部"
|
|
|
|
- >
|
|
|
|
- <el-option
|
|
|
|
- v-for="(item, index) in selects.branchs"
|
|
|
|
- :key="index"
|
|
|
|
- :label="item.name"
|
|
|
|
- :value="item.id"
|
|
|
|
- ></el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item>
|
|
|
|
- <el-select
|
|
|
|
- placeholder="实际安排"
|
|
|
|
- v-model="searchForm.actualExercisesNumIsAchieve"
|
|
|
|
- clearable
|
|
|
|
- >
|
|
|
|
- <el-option label="符合预期" value="1"></el-option>
|
|
|
|
- <el-option label="不符合预期" value="0"></el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item>
|
|
|
|
- <el-select
|
|
|
|
- placeholder="提交次数"
|
|
|
|
- v-model="searchForm.exercisesReplyNumIsAchieve"
|
|
|
|
- clearable
|
|
|
|
- >
|
|
|
|
- <el-option label="符合预期" value="1"></el-option>
|
|
|
|
- <el-option label="不符合预期" value="0"></el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item>
|
|
|
|
- <el-select
|
|
|
|
- placeholder="评价次数"
|
|
|
|
- v-model="searchForm.exercisesMessageNumIsAchieve"
|
|
|
|
- clearable
|
|
|
|
- >
|
|
|
|
- <el-option label="符合预期" value="1"></el-option>
|
|
|
|
- <el-option label="不符合预期" value="0"></el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
<el-form-item>
|
|
<el-form-item>
|
|
- <el-select
|
|
|
|
- placeholder="及时评价"
|
|
|
|
- v-model="searchForm.exercisesMessageTimelyNumIsAchieve"
|
|
|
|
- clearable
|
|
|
|
- >
|
|
|
|
- <el-option label="符合预期" value="1"></el-option>
|
|
|
|
- <el-option label="不符合预期" value="0"></el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item>
|
|
|
|
- <el-select
|
|
|
|
- placeholder="是否有VIP课"
|
|
|
|
- v-model="searchForm.existVipCourse"
|
|
|
|
- clearable
|
|
|
|
- >
|
|
|
|
- <el-option label="是" value="1"></el-option>
|
|
|
|
- <el-option label="否" value="0"></el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </el-form-item>
|
|
|
|
- <el-form-item>
|
|
|
|
- <el-select
|
|
|
|
- placeholder="是否有付费网管课"
|
|
|
|
- v-model="searchForm.existPracticeCourse"
|
|
|
|
|
|
+ <el-input
|
|
|
|
+ v-model.trim="searchForm.search"
|
|
|
|
+ @keyup.enter.native="search"
|
|
clearable
|
|
clearable
|
|
- >
|
|
|
|
- <el-option label="是" value="1"></el-option>
|
|
|
|
- <el-option label="否" value="0"></el-option>
|
|
|
|
- </el-select>
|
|
|
|
|
|
+ placeholder="学生姓名"
|
|
|
|
+ ></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <br />
|
|
|
|
|
|
+
|
|
<el-form-item label="周次选择">
|
|
<el-form-item label="周次选择">
|
|
<el-date-picker
|
|
<el-date-picker
|
|
v-model.trim="searchForm.timer"
|
|
v-model.trim="searchForm.timer"
|
|
@@ -122,21 +53,14 @@
|
|
@change="getWeekTime"
|
|
@change="getWeekTime"
|
|
></el-date-picker>
|
|
></el-date-picker>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="作业提交时间">
|
|
|
|
- <el-date-picker
|
|
|
|
- v-model.trim="searchForm.workTimer"
|
|
|
|
- style="width: 400px"
|
|
|
|
- type="daterange"
|
|
|
|
- :picker-options="{
|
|
|
|
- firstDayOfWeek: 1,
|
|
|
|
- }"
|
|
|
|
- value-format="yyyy-MM-dd"
|
|
|
|
- range-separator="至"
|
|
|
|
- start-placeholder="提交开始日期"
|
|
|
|
- end-placeholder="提交结束日期"
|
|
|
|
- ></el-date-picker>
|
|
|
|
- </el-form-item>
|
|
|
|
|
|
+
|
|
<el-form-item>
|
|
<el-form-item>
|
|
|
|
+ <el-button
|
|
|
|
+ type="primary"
|
|
|
|
+ icon="el-icon-circle-plus-outline"
|
|
|
|
+ @click="showMove = true"
|
|
|
|
+ >更多选项</el-button
|
|
|
|
+ >
|
|
<el-button type="danger" native-type="submit">搜索</el-button>
|
|
<el-button type="danger" native-type="submit">搜索</el-button>
|
|
<el-button native-type="reset" type="primary">重置</el-button>
|
|
<el-button native-type="reset" type="primary">重置</el-button>
|
|
<el-button
|
|
<el-button
|
|
@@ -303,8 +227,8 @@
|
|
只布置一次作业、统计一次服务指标(多乐团、多组VIP网管课除外)
|
|
只布置一次作业、统计一次服务指标(多乐团、多组VIP网管课除外)
|
|
</p>
|
|
</p>
|
|
<el-table
|
|
<el-table
|
|
- border
|
|
|
|
- style="margin-top:30px"
|
|
|
|
|
|
+ border
|
|
|
|
+ style="margin-top: 30px"
|
|
:data="infoList"
|
|
:data="infoList"
|
|
:header-cell-style="{ background: '#EDEEF0', color: '#444' }"
|
|
:header-cell-style="{ background: '#EDEEF0', color: '#444' }"
|
|
:span-method="arraySpanMethod"
|
|
:span-method="arraySpanMethod"
|
|
@@ -331,31 +255,59 @@
|
|
></el-table-column>
|
|
></el-table-column>
|
|
</el-table>
|
|
</el-table>
|
|
<div class="infoWrap">
|
|
<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>
|
|
|
|
|
|
+ <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>
|
|
- <div class="infoWrap">
|
|
|
|
- <h4>课程调整:</h4>
|
|
|
|
- <p>本周 <span>课程调整时</span> ,重新根据该学员的 <span>本周课程情况更新</span> 作业布置路径及服务指标 则根据表格中的逻辑布置</p>
|
|
|
|
|
|
+ <div class="infoWrap">
|
|
|
|
+ <h4>课程调整:</h4>
|
|
|
|
+ <p>
|
|
|
|
+ 本周 <span>课程调整时</span> ,重新根据该学员的
|
|
|
|
+ <span>本周课程情况更新</span> 作业布置路径及服务指标
|
|
|
|
+ 则根据表格中的逻辑布置
|
|
|
|
+ </p>
|
|
</div>
|
|
</div>
|
|
- <div class="infoWrap">
|
|
|
|
- <h4>服务指标:</h4>
|
|
|
|
- <p>服务指标按 <span>周为单位</span> 统计</p>
|
|
|
|
- <p><span>周六周日</span> 的服务指标 <span>延迟到下周二更新</span> 实际安排数据(即周日的作业课程,在周二23:59:59时前布置作业都算一次实际安排)</p>
|
|
|
|
|
|
+ <div class="infoWrap">
|
|
|
|
+ <h4>服务指标:</h4>
|
|
|
|
+ <p>服务指标按 <span>周为单位</span> 统计</p>
|
|
|
|
+ <p>
|
|
|
|
+ <span>周六周日</span> 的服务指标
|
|
|
|
+ <span>延迟到下周二更新</span>
|
|
|
|
+ 实际安排数据(即周日的作业课程,在周二23:59:59时前布置作业都算一次实际安排)
|
|
|
|
+ </p>
|
|
</div>
|
|
</div>
|
|
- <div class="infoWrap">
|
|
|
|
- <h4>服务指标开启/关闭:</h4>
|
|
|
|
- <p>学员新增课程时,自动开启服务指标,</p>
|
|
|
|
- <p>手动关闭服务指标的学员新增课程时,不会自动开启服务指标</p>
|
|
|
|
- <p>学员退团、乐团关闭、VIP课程组结束、网管课课程组结束时,若学员不在任何【进行中】乐团【在读】,且无任何未开始课程(乐团课、VIP课、网管课),则关闭服务指标</p>
|
|
|
|
|
|
+ <div class="infoWrap">
|
|
|
|
+ <h4>服务指标开启/关闭:</h4>
|
|
|
|
+ <p>学员新增课程时,自动开启服务指标,</p>
|
|
|
|
+ <p>手动关闭服务指标的学员新增课程时,不会自动开启服务指标</p>
|
|
|
|
+ <p>
|
|
|
|
+ 学员退团、乐团关闭、VIP课程组结束、网管课课程组结束时,若学员不在任何【进行中】乐团【在读】,且无任何未开始课程(乐团课、VIP课、网管课),则关闭服务指标
|
|
|
|
+ </p>
|
|
</div>
|
|
</div>
|
|
- <div class="infoWrap">
|
|
|
|
- <h4>服务指标解释:</h4>
|
|
|
|
- <p><span>若本周学员有多次服务指标则生成多条数据</span> </p>
|
|
|
|
- <p>预期安排:本周内服务指标次数(即本周应该给该学员布置的作业次数)</p>
|
|
|
|
|
|
+ <div class="infoWrap">
|
|
|
|
+ <h4>服务指标解释:</h4>
|
|
|
|
+ <p><span>若本周学员有多次服务指标则生成多条数据</span></p>
|
|
|
|
+ <p>
|
|
|
|
+ 预期安排:本周内服务指标次数(即本周应该给该学员布置的作业次数)
|
|
|
|
+ </p>
|
|
<p>实际安排:本周通过服务指标作业布置路径给该学员布置作业的次数</p>
|
|
<p>实际安排:本周通过服务指标作业布置路径给该学员布置作业的次数</p>
|
|
<p>提交次数:本周学员按照作业布置路径提交作业的次数</p>
|
|
<p>提交次数:本周学员按照作业布置路径提交作业的次数</p>
|
|
<p>评价次数:本周老师评价通过作业布置路径提交的作业的次数</p>
|
|
<p>评价次数:本周老师评价通过作业布置路径提交的作业的次数</p>
|
|
@@ -367,6 +319,117 @@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
|
+ <el-dialog
|
|
|
|
+ title="更多选项"
|
|
|
|
+ :visible.sync="showMove"
|
|
|
|
+ v-if="showMove"
|
|
|
|
+ width="700px"
|
|
|
|
+ >
|
|
|
|
+ <el-form
|
|
|
|
+ :inline="true"
|
|
|
|
+ class="searchForm"
|
|
|
|
+ @submit="search"
|
|
|
|
+ @reset="onReSet"
|
|
|
|
+ ref="searchForm2"
|
|
|
|
+ :model.sync="searchForm"
|
|
|
|
+ label-width="120px"
|
|
|
|
+ >
|
|
|
|
+ <el-form-item prop="organId" label="分部">
|
|
|
|
+ <el-select
|
|
|
|
+ class="multiple"
|
|
|
|
+ v-model.trim="searchForm.organIdList"
|
|
|
|
+ filterable
|
|
|
|
+ clearable
|
|
|
|
+ placeholder="请选择分部"
|
|
|
|
+ >
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="(item, index) in selects.branchs"
|
|
|
|
+ :key="index"
|
|
|
|
+ :label="item.name"
|
|
|
|
+ :value="item.id"
|
|
|
|
+ ></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="实际安排">
|
|
|
|
+ <el-select
|
|
|
|
+ placeholder="实际安排"
|
|
|
|
+ v-model="searchForm.actualExercisesNumIsAchieve"
|
|
|
|
+ clearable
|
|
|
|
+ >
|
|
|
|
+ <el-option label="符合预期" value="1"></el-option>
|
|
|
|
+ <el-option label="不符合预期" value="0"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="提交次数">
|
|
|
|
+ <el-select
|
|
|
|
+ placeholder="提交次数"
|
|
|
|
+ v-model="searchForm.exercisesReplyNumIsAchieve"
|
|
|
|
+ clearable
|
|
|
|
+ >
|
|
|
|
+ <el-option label="符合预期" value="1"></el-option>
|
|
|
|
+ <el-option label="不符合预期" value="0"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="评价次数">
|
|
|
|
+ <el-select
|
|
|
|
+ placeholder="评价次数"
|
|
|
|
+ v-model="searchForm.exercisesMessageNumIsAchieve"
|
|
|
|
+ clearable
|
|
|
|
+ >
|
|
|
|
+ <el-option label="符合预期" value="1"></el-option>
|
|
|
|
+ <el-option label="不符合预期" value="0"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="及时评价">
|
|
|
|
+ <el-select
|
|
|
|
+ placeholder="及时评价"
|
|
|
|
+ v-model="searchForm.exercisesMessageTimelyNumIsAchieve"
|
|
|
|
+ clearable
|
|
|
|
+ >
|
|
|
|
+ <el-option label="符合预期" value="1"></el-option>
|
|
|
|
+ <el-option label="不符合预期" value="0"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="是否有VIP课">
|
|
|
|
+ <el-select
|
|
|
|
+ placeholder="是否有VIP课"
|
|
|
|
+ v-model="searchForm.existVipCourse"
|
|
|
|
+ clearable
|
|
|
|
+ >
|
|
|
|
+ <el-option label="是" value="1"></el-option>
|
|
|
|
+ <el-option label="否" value="0"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="有付费网管课">
|
|
|
|
+ <el-select
|
|
|
|
+ placeholder="是否有付费网管课"
|
|
|
|
+ v-model="searchForm.existPracticeCourse"
|
|
|
|
+ clearable
|
|
|
|
+ >
|
|
|
|
+ <el-option label="是" value="1"></el-option>
|
|
|
|
+ <el-option label="否" value="0"></el-option>
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-form-item label="作业提交时间">
|
|
|
|
+ <el-date-picker
|
|
|
|
+ v-model.trim="searchForm.workTimer"
|
|
|
|
+ style="width: 400px"
|
|
|
|
+ type="daterange"
|
|
|
|
+ :picker-options="{
|
|
|
|
+ firstDayOfWeek: 1,
|
|
|
|
+ }"
|
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
|
+ range-separator="至"
|
|
|
|
+ start-placeholder="提交开始日期"
|
|
|
|
+ end-placeholder="提交结束日期"
|
|
|
|
+ ></el-date-picker>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ </el-form>
|
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
|
+ <el-button @click="cancleMore">取 消</el-button>
|
|
|
|
+ <el-button type="primary" @click="okMore">确 定</el-button>
|
|
|
|
+ </span>
|
|
|
|
+ </el-dialog>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -417,6 +480,7 @@ export default {
|
|
},
|
|
},
|
|
lookServer: false,
|
|
lookServer: false,
|
|
infoList: infoList,
|
|
infoList: infoList,
|
|
|
|
+ showMove: false,
|
|
// imageIcon: require("@/assets/images/base/warning.png"),
|
|
// imageIcon: require("@/assets/images/base/warning.png"),
|
|
};
|
|
};
|
|
},
|
|
},
|
|
@@ -524,6 +588,14 @@ export default {
|
|
this.searchForm.timer.push(this.getNowDateAndSunday(nowTime));
|
|
this.searchForm.timer.push(this.getNowDateAndSunday(nowTime));
|
|
this.search();
|
|
this.search();
|
|
},
|
|
},
|
|
|
|
+ cancleMore() {
|
|
|
|
+ // this.$refs.searchForm2.resetFields()
|
|
|
|
+ this.showMove = false;
|
|
|
|
+ },
|
|
|
|
+ okMore() {
|
|
|
|
+ this.getList();
|
|
|
|
+ this.showMove = false;
|
|
|
|
+ },
|
|
|
|
|
|
onExport() {
|
|
onExport() {
|
|
let url = "/api-web/export/exercisesSituations";
|
|
let url = "/api-web/export/exercisesSituations";
|
|
@@ -591,6 +663,7 @@ export default {
|
|
},
|
|
},
|
|
search() {
|
|
search() {
|
|
this.rules.page = 1;
|
|
this.rules.page = 1;
|
|
|
|
+ this.$refs.searchForm.save(this.searchForm);
|
|
this.getList();
|
|
this.getList();
|
|
},
|
|
},
|
|
getNowDateAndMonday(time) {
|
|
getNowDateAndMonday(time) {
|
|
@@ -707,8 +780,8 @@ export default {
|
|
.infoWrap {
|
|
.infoWrap {
|
|
margin-top: 30px;
|
|
margin-top: 30px;
|
|
span {
|
|
span {
|
|
- color:red;
|
|
|
|
- font-weight: normal;
|
|
|
|
|
|
+ color: red;
|
|
|
|
+ font-weight: normal;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.titleWrap {
|
|
.titleWrap {
|
|
@@ -717,8 +790,8 @@ export default {
|
|
justify-content: flex-start;
|
|
justify-content: flex-start;
|
|
align-items: center;
|
|
align-items: center;
|
|
}
|
|
}
|
|
-.m-container{
|
|
|
|
- h2{
|
|
|
|
|
|
+.m-container {
|
|
|
|
+ h2 {
|
|
justify-content: space-between;
|
|
justify-content: space-between;
|
|
}
|
|
}
|
|
}
|
|
}
|