Browse Source

修改 服务指标 课表列表

1
mo 4 years ago
parent
commit
74ab6358aa
2 changed files with 378 additions and 129 deletions
  1. 199 126
      src/views/operateManager/serverIndexList.vue
  2. 179 3
      src/views/teamDetail/teamCourseList.vue

+ 199 - 126
src/views/operateManager/serverIndexList.vue

@@ -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;
   }
   }
 }
 }

+ 179 - 3
src/views/teamDetail/teamCourseList.vue

@@ -193,7 +193,12 @@
             }"
             }"
           ></el-date-picker>
           ></el-date-picker>
         </el-form-item> -->
         </el-form-item> -->
-        <el-button  type="primary" icon='el-icon-circle-plus-outline' @click='showMove'>更多选项</el-button>
+        <el-button
+          type="primary"
+          icon="el-icon-circle-plus-outline"
+          @click="showMove = true"
+          >更多选项</el-button
+        >
         <el-button native-type="submit" type="primary">搜索</el-button>
         <el-button native-type="submit" type="primary">搜索</el-button>
         <el-button native-type="reset" type="danger">重置</el-button>
         <el-button native-type="reset" type="danger">重置</el-button>
 
 
@@ -205,7 +210,7 @@
         >
         >
       </save-form>
       </save-form>
       <!-- 列表 -->
       <!-- 列表 -->
-      <div class="tableWrap" style="margin-top: 20px">
+      <div class="tableWrap">
         <el-table
         <el-table
           :data="tableList"
           :data="tableList"
           ref="tableList"
           ref="tableList"
@@ -628,6 +633,167 @@
         :address="maskForm.school.address"
         :address="maskForm.school.address"
       />
       />
     </el-dialog>
     </el-dialog>
+    <el-dialog
+      title="更多选项"
+      :visible.sync="showMove"
+      v-if="showMove"
+      width="700px"
+    >
+      <el-form
+        :inline="true"
+        class="searchForm"
+        @submit="search"
+        @reset="reset"
+        ref="searchForm2"
+        :model.sync="searchForm"
+        label-width="120px"
+      >
+        <el-form-item label="课程组编号/名称" prop="search">
+          <el-input
+          style="width:180px"
+            v-model.trim="searchForm.search"
+            clearable
+            placeholder="课程组编号/课程名称"
+          />
+        </el-form-item>
+        <el-form-item label="教学点" prop="schoolId">
+          <el-select
+             style="width:180px"
+            v-model.trim="searchForm.schoolId"
+            clearable
+            filterable
+            placeholder="请选择教学点"
+          >
+            <el-option
+              v-for="(item, index) in selects.schools"
+              :key="index"
+              :value="item.id"
+              :label="item.name"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="分部" prop="organIdList">
+          <el-select
+             style="width:180px"
+            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="课程组类型" prop="groupType">
+          <el-select
+             style="width:180px"
+            v-model.trim="searchForm.groupType"
+            clearable
+            filterable
+            placeholder="课程组类型"
+          >
+            <el-option
+              v-for="item in courseListType"
+              :key="item.value"
+              :value="item.value"
+              :label="item.label"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="教学模式" prop="teachMode">
+          <el-select
+             style="width:180px"
+            v-model.trim="searchForm.teachMode"
+            clearable
+            filterable
+            placeholder="教学模式"
+          >
+            <el-option label="线上课" value="ONLINE"></el-option>
+            <el-option label="线下课" value="OFFLINE"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="课程状态" prop="courseStatus">
+          <el-select
+             style="width:180px"
+            v-model.trim="searchForm.courseStatus"
+            clearable
+            filterable
+            placeholder="课程状态"
+          >
+            <el-option label="未开始" value="NOT_START"></el-option>
+            <el-option label="进行中" value="UNDERWAY"></el-option>
+            <el-option label="已结束" value="OVER"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="合并课类型" prop="mergeCourseType">
+          <el-select
+             style="width:180px"
+            v-model.trim="searchForm.mergeCourseType"
+            clearable
+            filterable
+            placeholder="合并课程类型"
+          >
+            <el-option
+              v-for="(item, index) in mergeCourseTypeOptions"
+              :key="index"
+              :value="item.value"
+              :label="item.label"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="老师类型" prop="teachType">
+          <el-select
+             style="width:180px"
+            v-model.trim="searchForm.teachType"
+            clearable
+            filterable
+            placeholder="老师类型"
+          >
+            <el-option
+              v-for="item in workTypeOptions"
+              :key="item.label"
+              :label="item.label"
+              :value="item.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="是否点名" prop="isCallNames">
+          <el-select
+             style="width:180px"
+            v-model.trim="searchForm.isCallNames"
+            clearable
+            filterable
+            placeholder="是否点名"
+          >
+            <el-option label="是" value="1"></el-option>
+            <el-option label="否" value="0"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="创建日期" prop="creatTimer">
+          <el-date-picker
+            v-model.trim="searchForm.creatTimer"
+            type="daterange"
+            value-format="yyyy-MM-dd"
+            range-separator="-"
+            start-placeholder="创建开始日期"
+            end-placeholder="创建结束日期"
+            :picker-options="{
+              firstDayOfWeek: 1,
+            }"
+          ></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>
+    <!-- showMove -->
 
 
     <addCompound
     <addCompound
       ref="addCompound"
       ref="addCompound"
@@ -722,6 +888,7 @@ export default {
       deleteList: [],
       deleteList: [],
       isMainGo: false,
       isMainGo: false,
       isDetele: false,
       isDetele: false,
+      showMove: false,
     };
     };
   },
   },
   components: {
   components: {
@@ -792,7 +959,7 @@ export default {
       if (query.start || query.end) {
       if (query.start || query.end) {
         this.searchForm.timer = [query.start, query.end];
         this.searchForm.timer = [query.start, query.end];
       } else {
       } else {
-        this.searchForm.timer = []
+        this.searchForm.timer = [];
       }
       }
     },
     },
     permission(str, parent) {
     permission(str, parent) {
@@ -849,6 +1016,7 @@ export default {
     },
     },
     search() {
     search() {
       this.rules.page = 1;
       this.rules.page = 1;
+      console.log(this.searchForm);
       this.$refs.searchForm.save(this.searchForm);
       this.$refs.searchForm.save(this.searchForm);
       this.getList();
       this.getList();
     },
     },
@@ -1027,6 +1195,14 @@ export default {
         })
         })
         .catch(() => {});
         .catch(() => {});
     },
     },
+    cancleMore(){
+      // this.$refs.searchForm2.resetFields()
+      this.showMove = false
+    },
+    okMore(){
+      this.getList()
+      this.showMove = false
+    },
     // addCompound(row) {
     // addCompound(row) {
     //   this.compoundList.push(row);
     //   this.compoundList.push(row);
     //   this.compoundList = [...new Set(this.compoundList)];
     //   this.compoundList = [...new Set(this.compoundList)];