Jelajahi Sumber

王子文 专项培养 季度回顾
1) 查询当前用户作为受邀导师的学员列表

wangggziwen 3 tahun lalu
induk
melakukan
70da5be221

+ 16 - 0
master/src/main/java/com/ruoyi/project/training/spec/controller/TStFeedbackController.java

@@ -239,6 +239,22 @@ public class TStFeedbackController extends BaseController
         return getDataTable(newList);
     }
 
+    /**
+     * 查询当前用户作为受邀导师的学员列表
+     */
+    @PreAuthorize("@ss.hasPermi('spec:feedback:list')")
+    @GetMapping("/listInvitedSuccessor")
+    public AjaxResult listInvitedSuccessor(TStFeedback tStFeedback)
+    {
+        // 获取当前登录用户
+        Long userId = getUserId();
+        SysUser sysUser = sysUserService.selectUserById(userId);
+        String staffId = sysUser.getStaffId();
+        tStFeedback.setMentorId(staffId);
+        List<TStFeedback> list = tStFeedbackService.selectInvitedSuccessorList(tStFeedback);
+        return AjaxResult.success(list);
+    }
+
     /**
      * 查询专项培训反馈列表
      */

+ 15 - 0
master/src/main/java/com/ruoyi/project/training/spec/controller/TStPlanController.java

@@ -6,6 +6,7 @@ import java.util.stream.Collectors;
 
 import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.service.ISysUserService;
+import com.ruoyi.project.training.spec.domain.TStFeedback;
 import com.ruoyi.project.training.spec.domain.TStSuccessor;
 import com.ruoyi.project.training.spec.domain.TStYearplan;
 import com.ruoyi.project.training.spec.service.ITStSuccessorService;
@@ -47,8 +48,22 @@ public class TStPlanController extends BaseController
 
     @Autowired
     private ISysUserService sysUserService;
+
     @Autowired
     private ITStYearplanService tStYearplanService;
+
+    /**
+     * 查询季度汇报培养计划列表
+     */
+    @PreAuthorize("@ss.hasPermi('spec:plan:list')")
+    @GetMapping("/listSeasonal")
+    public TableDataInfo listSeasonal(TStFeedback feedback)
+    {
+        startPage();
+        List<TStPlan> list = tStPlanService.selectSeasonalTStPlanList(feedback);
+        return getDataTable(list);
+    }
+
     /**
      * 我的培训页面查询
      * 根据STAFF_ID查询培训计划列表

+ 36 - 0
master/src/main/java/com/ruoyi/project/training/spec/controller/TStSuccessorController.java

@@ -1,9 +1,12 @@
 package com.ruoyi.project.training.spec.controller;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import com.ruoyi.project.plant.domain.TStaffmgr;
 import com.ruoyi.project.plant.service.ITStaffmgrService;
+import com.ruoyi.project.system.domain.SysUser;
+import com.ruoyi.project.system.service.ISysUserService;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -39,6 +42,39 @@ public class TStSuccessorController extends BaseController
     @Autowired
     private ITStaffmgrService tStaffmgrService;
 
+    @Autowired
+    private ISysUserService sysUserService;
+
+    /**
+     * 查询导师列表
+     */
+    @PreAuthorize("@ss.hasPermi('spec:successor:list')")
+    @GetMapping("/listMentors")
+    public AjaxResult listMentors(TStSuccessor tStSuccessor)
+    {
+        Long userId = getUserId();
+        SysUser sysUser = sysUserService.selectUserById(userId);
+        String staffId = sysUser.getStaffId();
+        // 处理前的导师列表
+        List<TStSuccessor> list = tStSuccessorService.selectTStSuccessorList(tStSuccessor);
+        // 去重后的导师列表
+        List<TStSuccessor> newList = new ArrayList<>();
+        // 处理前的导师列表中上一个导师id的标识
+        String temp = "";
+        for (TStSuccessor item : list) {
+            String mentorStaffId = item.getMentorStaffId();
+            if (staffId.equals(mentorStaffId)) {    // 导师id=当前登录导师id
+                continue;
+            } else if (temp.equals(mentorStaffId)) {   // 导师id重复
+                continue;
+            } else {
+                newList.add(item);
+                temp = mentorStaffId;
+            }
+        }
+        return AjaxResult.success(newList);
+    }
+
     /**
      * 查询继任者清单列表
      */

+ 5 - 0
master/src/main/java/com/ruoyi/project/training/spec/mapper/TStFeedbackMapper.java

@@ -75,4 +75,9 @@ public interface TStFeedbackMapper
      * @return 专项培训反馈
      */
     public TStFeedback selectTStFeedbackByParams(TStFeedback tStFeedback);
+
+    /**
+     * 查询当前用户作为受邀导师的学员列表
+     */
+    public List<TStFeedback> selectInvitedSuccessorList(TStFeedback tStFeedback);
 }

+ 5 - 0
master/src/main/java/com/ruoyi/project/training/spec/service/ITStFeedbackService.java

@@ -74,4 +74,9 @@ public interface ITStFeedbackService
      * @return 专项培训反馈
      */
     public TStFeedback selectTStFeedbackByParams(TStFeedback tStFeedback);
+
+    /**
+     * 查询当前用户作为受邀导师的学员列表
+     */
+    public List<TStFeedback> selectInvitedSuccessorList(TStFeedback tStFeedback);
 }

+ 8 - 0
master/src/main/java/com/ruoyi/project/training/spec/service/impl/TStFeedbackServiceImpl.java

@@ -112,4 +112,12 @@ public class TStFeedbackServiceImpl implements ITStFeedbackService
     public TStFeedback selectTStFeedbackByParams(TStFeedback tStFeedback) {
         return tStFeedbackMapper.selectTStFeedbackByParams(tStFeedback);
     }
+
+    /**
+     * 查询当前用户作为受邀导师的学员列表
+     */
+    @Override
+    public List<TStFeedback> selectInvitedSuccessorList(TStFeedback tStFeedback) {
+        return tStFeedbackMapper.selectInvitedSuccessorList(tStFeedback);
+    }
 }

+ 1 - 1
master/src/main/resources/application.yml

@@ -9,7 +9,7 @@ ruoyi:
   # 实例演示开关
   demoEnabled: true
   # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /u03/cpmsfile/uploadPath)
-  profile: /u03/cpmsfile/uploadPath
+  profile: D:/ruoyi/uploadPath
   # 邮件中链接跳转路径 示例(本地:http://localhost/#,服务器:http://47.114.101.16:8080/cpms/index.html#)
   requestJumpPath: https://cpms.basf-ypc.net.cn/cpms/index.html#
   # 获取ip地址开关

+ 8 - 0
master/src/main/resources/mybatis/training/spec/TStFeedbackMapper.xml

@@ -42,6 +42,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             t_st_feedback d
     </sql>
 
+    <select id="selectInvitedSuccessorList" parameterType="TStFeedback" resultMap="TStFeedbackResult">
+        <include refid="selectTStFeedbackVo"/>
+        <where>
+            <if test="mentorId != null  and mentorId != ''"> and mentor_id = #{mentorId}</if>
+            and planId != null
+        </where>
+    </select>
+
     <select id="selectTStFeedbackList" parameterType="TStFeedback" resultMap="TStFeedbackResult">
         <include refid="selectTStFeedbackVo"/>
         <where>  

+ 11 - 0
ui/src/api/training/spec/feedback.js

@@ -45,6 +45,17 @@ export function listFeedback(query) {
   })
 }
 
+// 查询当前用户作为受邀导师的学员列表
+export function listInvitedSuccessor(query) {
+  return request({
+    url: '/spec/feedback/listInvitedSuccessor',
+    method: 'get',
+    params: query
+  })
+}
+
+
+
 // 查询 专项培养反馈详细
 export function getFeedbackByParams(query) {
   return request({

+ 9 - 0
ui/src/api/training/spec/plan.js

@@ -44,6 +44,15 @@ export function listSuccessorsByMentorId(query) {
   })
 }
 
+// 查询季度汇报培养计划列表
+export function listPlanSeasonal(query) {
+  return request({
+    url: '/spec/plan/listSeasonal',
+    method: 'get',
+    params: query
+  })
+}
+
 // 查询培训计划列表
 export function listPlan(query) {
   return request({

+ 8 - 0
ui/src/api/training/spec/successor.js

@@ -1,5 +1,13 @@
 import request from '@/utils/request'
 
+// 查询导师列表
+export function listMentors() {
+  return request({
+    url: '/spec/successor/listMentors',
+    method: 'get'
+  })
+}
+
 // 查询继任者清单列表
 export function listSuccessor(query) {
   return request({

+ 2 - 0
ui/src/views/training/spec/myplan/index.vue

@@ -534,6 +534,8 @@ export default {
       plan.studyState = 2;
       // 修改学习状态为2学员已提交
       updatePlan2(plan).then(response => {
+        // 发送邮件提醒导师
+        
         this.feedbackDialog.open = false;
         this.msgSuccess("提交成功");
         this.getList();

+ 266 - 308
ui/src/views/training/spec/seasonalfeedback/index.vue

@@ -1,8 +1,33 @@
 <template>
   <div class="app-container">
     <!-- 搜索栏 -->
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="学员" prop="staffId">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch">
+      <el-form-item label="其他导师">
+        <el-select 
+          v-model="mentorOptionsArray"
+          multiple 
+          placeholder="请选择导师" 
+          prop="mentorId"
+        >
+          <el-option
+            v-for="mentor in this.mentorOptions"
+            :key="mentor.key"
+            :label="mentor.value"
+            :value="mentor.key">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-button 
+          icon="el-icon-s-promotion" 
+          type="success" 
+          size="mini" 
+          @click="handleInvite"
+        >
+          邀请
+        </el-button>
+      </el-form-item>
+      <el-form-item label="学员" prop="successorId">
         <el-select 
           v-model="queryParams.successorId" 
           placeholder="请选择学员"
@@ -26,30 +51,12 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-      <el-form-item label="季度" prop="feedbackSeason">
-        <el-select 
-          v-model="queryParams.feedbackSeason" 
-          placeholder="请选择季度"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        >
-          <el-option
-            label="第一季度"
-            value="1">
-          </el-option>
-          <el-option
-            label="第二季度"
-            value="2">
-          </el-option>
-          <el-option
-            label="第三季度"
-            value="3">
-          </el-option>
-          <el-option
-            label="第四季度"
-            value="4">
-          </el-option>
+      <el-form-item label="季度" prop="feedbackSason">
+        <el-select v-model="queryParams.feedbackSeason" placeholder="请选择季度" clearable size="small" @keyup.enter.native="handleQuery" >
+          <el-option label="第一季度" value="1"></el-option>
+          <el-option label="第二季度" value="2"></el-option>
+          <el-option label="第三季度" value="3"></el-option>
+          <el-option label="第四季度" value="4"></el-option>
         </el-select>
       </el-form-item>
       <el-form-item>
@@ -57,29 +64,23 @@
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
       </el-form-item>
     </el-form>
-    <!-- 标签页:后期改成每个导师生成独立标签页 -->
-    <el-tabs type="border-card" id="border-card">
-      <el-tab-pane label="居海波">
+    <!-- 标签页 -->
+    <el-tabs type="border-card" @tab-click="handleTabClick" v-model="activeName">
+      <el-tab-pane label="居海波" name="1">
+        <!-- 培养计划总表 -->
         <el-table
-          :span-method="spanMethod"
           v-loading="loading"
           :data="dataList"
           @selection-change="handleSelectionChange"
           ref="feedbackListSeasonalTable"
           border
-          :cell-style="tableCellStyle"
         >
-          <el-table-column label="时间" align="center" :show-overflow-tooltip="true">
-            <template slot-scope="scope">
-              <span>{{scope.row.feedbackYear}}年{{scope.row.feedbackMonth}}月</span>
-            </template>
-          </el-table-column>
-          <el-table-column label="培养内容" align="center" :show-overflow-tooltip="true" prop="plantName" width="400"/>
-          <el-table-column label="开始日期" align="center" :show-overflow-tooltip="true" prop="startDate"/>
-          <el-table-column label="结束日期" align="center" :show-overflow-tooltip="true" prop="endDate"/>
-          <el-table-column label="实际完成日期" align="center" :show-overflow-tooltip="true" prop="dateOfCompletion"/>
-          <el-table-column label="学习状态" align="center" :show-overflow-tooltip="true" prop="studyState"/>
-          <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
+          <el-table-column label="培养内容" align="center" :show-overflow-tooltip="true" prop="plantName"/>
+          <el-table-column label="开始日期" align="center" :show-overflow-tooltip="true" prop="startDate" width="150"/>
+          <el-table-column label="结束日期" align="center" :show-overflow-tooltip="true" prop="endDate" width="150"/>
+          <el-table-column label="实际完成日期" align="center" :show-overflow-tooltip="true" prop="dateOfCompletion" width="150"/>
+          <el-table-column label="学习状态" align="center" :show-overflow-tooltip="true" prop="studyState" width="150"/>
+          <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width" width="400">
             <template slot-scope="scope">
               <el-button
                 size="mini"
@@ -87,12 +88,27 @@
                 icon="el-icon-chat-dot-round"
                 v-hasPermi="['spec:plan:edit']"
                 @click="handleFeedback(scope.row)"
-              >详情</el-button>
+              >学员心得</el-button>
+              <el-button
+                size="mini"
+                type="text"
+                icon="el-icon-chat-dot-round"
+                v-hasPermi="['spec:plan:edit']"
+                @click="handleFeedback(scope.row)"
+              >学员附件</el-button>
+              <el-button
+                size="mini"
+                type="text"
+                icon="el-icon-chat-dot-round"
+                v-hasPermi="['spec:plan:edit']"
+                @click="handleFeedback(scope.row)"
+              >学习资料</el-button>
             </template>
           </el-table-column>
         </el-table>
-        <h3>汇报展示PPT</h3>
-        <div>
+        <!-- 汇报附件 -->
+        <!-- <div>
+          <h3>汇报展示PPT</h3>
           <el-upload
               ref="doc"
               :headers="doc.headers"
@@ -104,7 +120,7 @@
               :auto-upload="true"
               multiple
               :limit="3">
-              <el-button size="small" type="primary" style="margin-bottom:10px;">点击上传汇报展示PPT</el-button>
+              <el-button size="small" type="primary" style="margin-bottom:10px;">点击上传</el-button>
             </el-upload>
           <el-table :data="doc.commonfileList" border style="width:50%;">
             <el-table-column :label="$t('文件名')" align="center" prop="fileName" :show-overflow-tooltip="true">
@@ -114,8 +130,6 @@
                 </a>
               </template>
             </el-table-column>
-            <!-- <el-table-column :label="$t('大小(Kb)')" align="center" prop="fileSize" :show-overflow-tooltip="true" width="80" />
-            <el-table-column :label="$t('上传人')" align="center" prop="creator" :show-overflow-tooltip="true" width="120"/> -->
             <el-table-column :label="$t('操作')" align="center" width="120" class-name="small-padding fixed-width">
               <template slot-scope="scope">
                 <el-button
@@ -140,204 +154,146 @@
               </template>
             </el-table-column>
           </el-table>
-        </div>
-        <div style="display:inline-block;width:40%;">
-          <h3 style="margin-bottom:0px;">学员表现</h3>
-          <div class="question">
-            1、学员的现场表现、语言表达、汇报逻辑如何?
-          </div>
-          <div class="answer">
-            <el-radio-group v-model="radio1" size="small">
-              <el-radio label="1">优秀</el-radio>
-              <el-radio label="2">良好</el-radio>
-              <el-radio label="3">一般</el-radio>
-              <el-radio label="4">合格</el-radio>
-            </el-radio-group>
-          </div>
-          <h3 style="margin-bottom:0px;">汇报材料及内容</h3>
-          <div class="question">
-            2、汇报材料准备是否充足,汇报材料是否紧贴课题内容?
-          </div>
-          <div class="answer">
-            <el-radio-group v-model="radio2" size="small">
-              <el-radio label="1">优秀</el-radio>
-              <el-radio label="2">良好</el-radio>
-              <el-radio label="3">一般</el-radio>
-              <el-radio label="4">合格</el-radio>
-            </el-radio-group>
-          </div>
-          <div class="question">
-            3、学员汇报内容中是否存在明显的不足点?
-          </div>
-          <div class="answer">
-            <el-radio-group v-model="radio3" size="small">
-              <el-radio label="1">内容出色</el-radio>
-              <el-radio label="2">内容完善</el-radio>
-              <el-radio label="3">基本完善</el-radio>
-              <el-radio label="4">合格</el-radio>
-            </el-radio-group>
-          </div>
-          <div class="question">
-            4、学员汇报内容是否符合学习材料(SOP或者程序)的要求?
-          </div>
-          <div class="answer">
-            <el-radio-group v-model="radio4" size="small">
-              <el-radio label="1">完全符合</el-radio>
-              <el-radio label="2">基本符合</el-radio>
-              <el-radio label="3">一般</el-radio>
-              <el-radio label="4">合格</el-radio>
-            </el-radio-group>
-          </div>
-          <div class="question">
-            5、学员对本季度的学习过程、学习目标及学习结果的阐述是否具体、完整、正确?
-          </div>
-          <div class="answer">
-            <el-radio-group v-model="radio5" size="small">
-              <el-radio label="1">完整流畅</el-radio>
-              <el-radio label="2">阐述清晰</el-radio>
-              <el-radio label="3">一般</el-radio>
-              <el-radio label="4">合格</el-radio>
-            </el-radio-group>
-          </div>
-        </div>
-        <div style="display:inline-block;width:40%;">
-          <div class="question">
-            6、学员的汇报内容是否具有一定的意义,与学员的现阶段表现是否一致?
-          </div>
-          <div class="answer">
-            <el-radio-group v-model="radio6" size="small">
-              <el-radio label="1">内容积极,表现高度一致</el-radio>
-              <el-radio label="2">内容充分,表现良好</el-radio>
-              <el-radio label="3">一般</el-radio>
-              <el-radio label="4">合格</el-radio>
-            </el-radio-group>
-          </div>
-          <div class="question">
-            7、学员汇报内容是否对装置后期的管理或者生产起到一定的启发作用?
-          </div>
-          <div class="answer">
-            <el-radio-group v-model="radio7" size="small">
-              <el-radio label="1">优秀</el-radio>
-              <el-radio label="2">良好</el-radio>
-              <el-radio label="3">一般</el-radio>
-              <el-radio label="4">合格</el-radio>
-            </el-radio-group>
-          </div>
-          <div class="question">
-            8、学员在实际工作中是否运用到培训所学内容?
-          </div>
-          <div class="answer">
-            <el-radio-group v-model="radio8" size="small">
-              <el-radio label="1">灵活运用</el-radio>
-              <el-radio label="2">基本运用</el-radio>
-              <el-radio label="3">初步尝试</el-radio>
-              <el-radio label="4">合格</el-radio>
-            </el-radio-group>
-          </div>
-          <div class="question">
-            9、学员的汇报内容对于装置及公司的人才培养计划是否能起到帮助?
-          </div>
-          <div class="answer">
-            <el-radio-group v-model="radio9" size="small">
-              <el-radio label="1">大有裨益</el-radio>
-              <el-radio label="2">推进作用</el-radio>
-              <el-radio label="3">参考意义</el-radio>
-              <el-radio label="4">合格</el-radio>
-            </el-radio-group>
-          </div>
-          <div class="question">
-            10、学员本次汇报相较于上次是否有提升?
+        </div> -->
+        <!-- 10个问题 -->
+        <!-- <div>
+          <div style="display:inline-block;width:40%;">
+            <h3 style="margin-bottom:0px;">学员表现</h3>
+            <div class="question">
+              1、学员的现场表现、语言表达、汇报逻辑如何?
+            </div>
+            <div class="answer">
+              <el-radio-group v-model="radio1" size="small">
+                <el-radio label="1">优秀</el-radio>
+                <el-radio label="2">良好</el-radio>
+                <el-radio label="3">一般</el-radio>
+                <el-radio label="4">合格</el-radio>
+              </el-radio-group>
+            </div>
+            <h3 style="margin-bottom:0px;">汇报材料及内容</h3>
+            <div class="question">
+              2、汇报材料准备是否充足,汇报材料是否紧贴课题内容?
+            </div>
+            <div class="answer">
+              <el-radio-group v-model="radio2" size="small">
+                <el-radio label="1">优秀</el-radio>
+                <el-radio label="2">良好</el-radio>
+                <el-radio label="3">一般</el-radio>
+                <el-radio label="4">合格</el-radio>
+              </el-radio-group>
+            </div>
+            <div class="question">
+              3、学员汇报内容中是否存在明显的不足点?
+            </div>
+            <div class="answer">
+              <el-radio-group v-model="radio3" size="small">
+                <el-radio label="1">内容出色</el-radio>
+                <el-radio label="2">内容完善</el-radio>
+                <el-radio label="3">基本完善</el-radio>
+                <el-radio label="4">合格</el-radio>
+              </el-radio-group>
+            </div>
+            <div class="question">
+              4、学员汇报内容是否符合学习材料(SOP或者程序)的要求?
+            </div>
+            <div class="answer">
+              <el-radio-group v-model="radio4" size="small">
+                <el-radio label="1">完全符合</el-radio>
+                <el-radio label="2">基本符合</el-radio>
+                <el-radio label="3">一般</el-radio>
+                <el-radio label="4">合格</el-radio>
+              </el-radio-group>
+            </div>
+            <div class="question">
+              5、学员对本季度的学习过程、学习目标及学习结果的阐述是否具体、完整、正确?
+            </div>
+            <div class="answer">
+              <el-radio-group v-model="radio5" size="small">
+                <el-radio label="1">完整流畅</el-radio>
+                <el-radio label="2">阐述清晰</el-radio>
+                <el-radio label="3">一般</el-radio>
+                <el-radio label="4">合格</el-radio>
+              </el-radio-group>
+            </div>
           </div>
-          <div class="answer">
-            <el-radio-group v-model="radio10" size="small">
-              <el-radio label="1">进步明显</el-radio>
-              <el-radio label="2">略有进步</el-radio>
-              <el-radio label="3">一般</el-radio>
-              <el-radio label="4">合格</el-radio>
-            </el-radio-group>
+          <div style="display:inline-block;width:40%;">
+            <div class="question">
+              6、学员的汇报内容是否具有一定的意义,与学员的现阶段表现是否一致?
+            </div>
+            <div class="answer">
+              <el-radio-group v-model="radio6" size="small">
+                <el-radio label="1">内容积极,表现高度一致</el-radio>
+                <el-radio label="2">内容充分,表现良好</el-radio>
+                <el-radio label="3">一般</el-radio>
+                <el-radio label="4">合格</el-radio>
+              </el-radio-group>
+            </div>
+            <div class="question">
+              7、学员汇报内容是否对装置后期的管理或者生产起到一定的启发作用?
+            </div>
+            <div class="answer">
+              <el-radio-group v-model="radio7" size="small">
+                <el-radio label="1">优秀</el-radio>
+                <el-radio label="2">良好</el-radio>
+                <el-radio label="3">一般</el-radio>
+                <el-radio label="4">合格</el-radio>
+              </el-radio-group>
+            </div>
+            <div class="question">
+              8、学员在实际工作中是否运用到培训所学内容?
+            </div>
+            <div class="answer">
+              <el-radio-group v-model="radio8" size="small">
+                <el-radio label="1">灵活运用</el-radio>
+                <el-radio label="2">基本运用</el-radio>
+                <el-radio label="3">初步尝试</el-radio>
+                <el-radio label="4">合格</el-radio>
+              </el-radio-group>
+            </div>
+            <div class="question">
+              9、学员的汇报内容对于装置及公司的人才培养计划是否能起到帮助?
+            </div>
+            <div class="answer">
+              <el-radio-group v-model="radio9" size="small">
+                <el-radio label="1">大有裨益</el-radio>
+                <el-radio label="2">推进作用</el-radio>
+                <el-radio label="3">参考意义</el-radio>
+                <el-radio label="4">合格</el-radio>
+              </el-radio-group>
+            </div>
+            <div class="question">
+              10、学员本次汇报相较于上次是否有提升?
+            </div>
+            <div class="answer">
+              <el-radio-group v-model="radio10" size="small">
+                <el-radio label="1">进步明显</el-radio>
+                <el-radio label="2">略有进步</el-radio>
+                <el-radio label="3">一般</el-radio>
+                <el-radio label="4">合格</el-radio>
+              </el-radio-group>
+            </div>
           </div>
-        </div>
-        <h3 style="margin-top:0px;">导师反馈</h3>
-        <div>
-          <el-form>
-            <el-form-item>
-              <editor :min-height="300"/>
-            </el-form-item>
-          </el-form>
-        </div>
-        <div style="text-align:center; margin:30px 0px;">
+        </div> -->
+        <!-- 导师反馈 -->
+        <!-- <div>
+          <h3 style="margin-top:0px;">导师反馈</h3>
+          <editor :min-height="300"/>
+        </div> -->
+        <!-- 保存按钮 -->
+        <!-- <div style="text-align:center;margin: 20px auto;">
           <el-button size="medium" type="success">保存</el-button>
-        </div>
-      </el-tab-pane>
-      <el-tab-pane label="朱晶">
-
-      </el-tab-pane>
-      <el-tab-pane label="张磊">
-
+        </div> -->
       </el-tab-pane>
+      <el-tab-pane label="潘传安" name="2"></el-tab-pane>
+      <el-tab-pane label="朱晶" name="3"></el-tab-pane>
     </el-tabs>
-    <!-- 反馈对话框 -->
-    <el-dialog v-dialogDrag :title="feedbackDialog.title" :visible.sync="feedbackDialog.open" width="800px" append-to-body>
-      <div style="width:700px; margin:0px auto;">
-        <h3 style="margin-bottom:20px;text-align:center;">学员心得</h3>
-        <el-table :data="tableData" border style="width: 100%">
-          <el-table-column prop="id" label="编号" width="50"></el-table-column>
-          <el-table-column prop="question" label="问题" width="250"></el-table-column>
-          <el-table-column prop="answer" label="答案"></el-table-column>
-        </el-table>
-        <h3 style="margin-bottom:20px;text-align:center;">学习成果</h3>
-        <el-table :data="doc.commonfileList" border>
-          <el-table-column :label="$t('文件名')" align="center" prop="fileName" :show-overflow-tooltip="true">
-            <template slot-scope="scope">
-              <a  class="link-type"  @click="handleDownload(scope.row)">
-                <span>{{ scope.row.fileName }}</span>
-              </a>
-            </template>
-          </el-table-column>
-          <el-table-column :label="$t('大小(Kb)')" align="center" prop="fileSize" :show-overflow-tooltip="true" width="80" />
-          <el-table-column :label="$t('上传人')" align="center" prop="creator" :show-overflow-tooltip="true" width="120"/>
-          <el-table-column :label="$t('操作')" align="center" width="120" class-name="small-padding fixed-width">
-            <template slot-scope="scope">
-              <el-button
-                v-if="scope.row.fileName.endsWith('pdf')"
-                size="mini"
-                type="text"
-                icon="el-icon-view"
-                @click="handleSee(scope.row)"
-              >{{ $t('预览') }}</el-button>
-              <el-button
-                size="mini"
-                type="text"
-                icon="el-icon-download"
-                @click="handleDownload(scope.row)"
-              >{{ $t('下载') }}</el-button>
-              <el-button
-                size="mini"
-                type="text"
-                icon="el-icon-delete"
-                @click="handleDeleteDoc(scope.row)"
-              >{{ $t('删除') }}</el-button>
-            </template>
-          </el-table-column>
-        </el-table>
-        <h3 style="margin-top:30px;margin-bottom:20px;text-align:center;">导师反馈</h3>
-        <el-form>
-          <el-form-item>
-            <editor :min-height="192" v-model="mentorFeedback"/>
-            <!-- <p v-html="mentorFeedback" /> -->
-          </el-form-item>
-        </el-form>
-        <div style="text-align:center;">
-          <el-button @click="handleReject()">{{ $t('确 定') }}</el-button>
-        </div>
-      </div>
-    </el-dialog>
   </div>
 </template>
 
 <script>
-import {listSuccessorsByMentorId} from "@/api/training/spec/plan";
-import { listFeedback } from "@/api/training/spec/feedback";
+import { addFeedback, getFeedbackByParams, listInvitedSuccessor } from "@/api/training/spec/feedback";
+import { listMentors } from "@/api/training/spec/successor";
+import { listSuccessorsByMentorId, listPlanSeasonal } from "@/api/training/spec/plan";
 import { getToken } from "@/utils/auth";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
@@ -348,18 +304,26 @@ export default {
   components: { Treeselect, Editor },
   data() {
     return {
-      
+      // tableData: [],
+
+
+
+      // 培养计划总表数据
+      dataList: [],
+      // 首选标签页
+      activeName: null,
+      // 学员下拉列表
       successorOptions: [],
+      // 导师下拉列表
+      mentorOptions: [],
+      // 导师数组
+      mentorOptionsArray: [],
+      // 包含导师id的查询对象
       queryObject: {
         mentorStaffId: ""
       },
-
-
-      dataList: [],
-      tableData: [],
-
       // 导师反馈内容
-      mentorFeedback: "<p>此处稍有不足,请重新学习<br/><img src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIkAAAAjCAYAAACgoylBAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAUcSURBVHhe7VpBixxFFO5f5JznLioJcQ+2oEkuanYirCYq2rjJogEJUYlDENnJTfRg/sDOCIqgKwmKScDticRJrh4CCrkYkKDP+qq6el5VV3f1jN0zk7E++EhPvXqvq977+lXPbCJqGB/f+oMupr/nPPTiq7Q9/NEYswmfAkY9iqJIsEejbEhhRD0x3u1Pss8aajzqZbMnfepGXVLTYNPXwIT63YjUVOWn3YBRT8Tp9sUsARmHrcH4DF9+XXIP7EXHc0KtwdiT3D+PXbY3TGW+hfXxvak1Va+liAWI5BXa3vvBGLPpFEmGSb+rxKJ3WppwV5Gyz7ngTMrEuuLxsboimfUeHE67LeSSvQmUisS3t5poXCSf371vCODEpU/p2eQ9+uDmb8Y4J3yqwZ6I0k16RFKWGF8iZxFJafLttVlw+nIhrJlIrt57YAjgw5/v0ealz+jIy2/QxlZCz525YNhB+BjARqc9UoAnCde8hY6oLw1VibR9xEiPF7qiJcukT+OqzuYQSSEOv4f24+sTEAVTxVW+eaEBo5iwl+0NU0tEUliTtbeaaFwkfz78u3DkVBFz4WMjP2Yy8uSrRGgbT0h5Ik0fKx4KktuET9982vhauqLwzk4CVN0DMO4jaC5CFnRqZ3GlbR6RCBhrKu6tDhoXCTC5/xd9lPqFgjmYG7BArMJxo4HiV3UU2IJA2gY6jt2RrGOtBloTCfDg4T/yfQMvphAFiGuMwRawAFhH4KwCAVoVScB6IIgkwIsgkgAvovF4TIGBVQwiCfQyiCTQyyCSQC9bFcmNg1t05afbdPHahM59f0cS1xiDzeUTuHpsTSRf3viF3t2f0Nn9O07Chjku32UzHSbUiTqUDFOnfRlM0yElHfWD2DPn3lro+loRCYq/s3/XKQ5OzCkTSpoOKGa/FMaDxRXsv4jEXncUD5zzZuUw6eSxFi3ixkVy/WBc2UFsYi58eAydaC0M9RTFNEgXJxRN/QTXEWk6iAuCxlgnGRrz5uEgjhqJMw8bFwneN7gIznz3Kx17/zI9+dIpOnzyTXr69I5hB+HDY8gnpZPQcAmisFlXJLawm+ZaiQQvplwAxy5cpo3Xdujtb8bGOCd8eAxfwu2WzpPnsqn2PO1E/PNUBJmfEOfeHs78mHYPzFjRY5u0KeYa90P3gE/2b5Ww7bVFfE3SJo6QRHUjUN8HAuE+u9n6TF9tz2I0+JA1LhL7qHn8+EnauvK1MWYTPnYc3bp5IuW4TmZ2HvMnXSfLfuLqiMQomFNEmc0SAwoo7+0RiWttao/6PlmhS947eCcx16f88vXp/TxaIunR1hdfGWM2XSLRlC9sPHm5eEwigWWFqiMS3rUqRcJEqq6zeT6ROOw8No87tdUQiSuuZy2zsvXj5vnzn9CRU2dnOm5s8qelKgFltiZFAkK4KJjxjcMqss1ykXDB/U9EYr+4bn97m46e36UnXtiip06cpo3X3zHsoPPFlX115AnkgtH2QawLatrwOUGHkUmdJlx1p/lFIu3i21bMigiquOYYCia7XLY2XWht08Xke5S2uiIp7Fmtd6VF0sRXYDA/ZjIWi1jHphJpx+sIUdXtJIYvSzyK5iqELHx+f8GC2JmN3WNekUw/65jCZ9VfXMEmfkxbdfKirRpX/rjRRPGrOgpsj6pA7Cd5mVQdx+5IzQq4NZGA6/gHPnnMiCLw42nZNI+b5jtcqyIJXA8GkQR6GUQS6GX43/IBXgSRBHgRRBLgAdG/w/eQqkOct4wAAAAASUVORK5CYII='></p>",
+      mentorFeedback: null,
       // 反馈对话框参数
       feedbackDialog: {
         id: 0,
@@ -405,7 +369,7 @@ export default {
         pId: null
       },
       // 标签页选中项
-      activeName: 'first',
+      activeName: 'zhu',
       // 遮罩层
       loading: true,
       // 选中数组
@@ -477,17 +441,59 @@ export default {
     })
     // 获取学员下拉列表
     this.getSuccessorOptions();
+    // 获取导师下拉列表
+    this.getMentorOptions();
     // 获取当前日期
     let date = new Date();
     // 搜索条件默认为当年、当季度
     this.queryParams.feedbackYear = date.getFullYear().toString();
     this.queryParams.feedbackSeason = ( ( date.getMonth() + 2 ) / 3 ).toString();
-    // 获取计划列表
-    this.getList();
+    // 设置首选标签页name为当前登录用户id
+    this.activeName = "1";
   },
   methods: {
+    /** 邀请导师 */
+    handleInvite() {
+      for (let i = 0; i < this.mentorOptionsArray.length; i++) {
+        let getParams = {};
+        getParams.successorId = this.queryParams.successorId;
+        getParams.feedbackYear = this.queryParams.feedbackYear;
+        getParams.feedbackSeason = this.queryParams.feedbackSeason;
+        // 获取当前学员当年当季度反馈id
+        getFeedbackByParams(getParams).then(response => {
+          let addParams = {};
+          addParams.parentId = response.data.id;  // 设置父级id
+          addParams.feedbackYear = this.queryParams.feedbackYear;
+          addParams.feedbackSeason = this.queryParams.feedbackSeason;
+          addParams.feedbackType = 3;
+          addParams.mentorId = this.mentorOptionsArray[i];
+          addParams.successorId = this.queryParams.successorId;
+          return addFeedback(addParams);
+          // 发送邮件提醒受邀导师
+
+        });
+      }
+      this.msgSuccess("邀请成功,邮件已发送");
+    },
+    /** 标签页切换事件 */
+    handleTabClick(tab) {
+      console.log(tab.name);
+    },
+    /** 查询导师下拉列表 */
+    getMentorOptions() {
+      listMentors().then(response => {
+        let mentorList = response.data;
+        for (let i = 0; i < mentorList.length; i++) {
+          let mentor = {};
+          mentor.key = mentorList[i].mentorStaffId;
+          mentor.value = mentorList[i].mentorStaffName;
+          this.mentorOptions.push(mentor);
+        }
+      });
+    },
     /** 查询学员下拉列表 */
     getSuccessorOptions() {
+      // 获取作为导师的学员列表
       listSuccessorsByMentorId(this.queryObject).then(response => {
         let successorList = response.data;
         for (let i = 0; i < successorList.length; i++) {
@@ -500,73 +506,25 @@ export default {
           successor.value = successorList[i].staffName;
           this.successorOptions.push(successor);
         }
-      });
-    },
-    /** 反馈处理 */
-    handleFeedback(row) {
-      this.feedbackDialog.title = "李滕 " + row.plantName + " " + this.$t('学习情况');
-      this.feedbackDialog.open = true;
-    },
-    /** 合并单元格 */
-    spanMethod({ row, column, rowIndex, columnIndex }) {
-      if (columnIndex === 0) {
-        if (row.isFirstLine == 1) {
-          return {
-            rowspan: 3,
-            colspan: 1
-          };
-        } else {
-          return {
-            rowspan: 0,
-            colspan: 0
-          };
+        // 获取计划列表
+        this.getList();
+        // 获取作为受邀导师的学员列表
+        return listInvitedSuccessor(null);
+      }).then(response => {
+        let successorList = response.data;
+        for (let i = 0; i < successorList.length; i++) {
+          let successor = {};
+          successor.key = successorList[i].successorId;
+          successor.value = successorList[i].successorName;
+          this.successorOptions.push(successor);
         }
-      }
-    },
-    /** 单元格样式 */
-    tableCellStyle (row, column, rowIndex, columnIndex) {
-      if (row.column.label === "实际完成日期" && row.row.dateOfCompletion > row.row.endDate) {
-        return "background: #FFEEEE"
-      }
-    },
-    /** 报告附件按钮操作 */
-    handleDoc(row) {
-      this.doc.id = row.id;
-      this.doc.title = row.plantName + this.$t('附件');
-      this.doc.open = true;
-      this.doc.queryParams.pId = row.id
-      this.doc.pId = row.id
-      this.getFileList()
-      this.$nextTick(() => {
-        this.$refs.doc.clearFiles()
-      })
-    },
-    getFileList (){
-      allFileList(this.doc.queryParams).then(response => {
-        this.doc.commonfileList = response;
       });
     },
-    /** 附件上传中处理 */
-    handleFileDocProgress(event, file, fileList) {
-      this.doc.file = file;
-      this.doc.isUploading = true;
-    },
-    /** 附件上传成功处理 */
-    handleFileDocSuccess(response, file, fileList) {
-      this.doc.isUploading = false;
-      this.$alert(response.msg, this.$t('导入结果'), { dangerouslyUseHTMLString: true });
-      this.getFileList()
-    },
-
-
-
-
-
     /** 查询专项培训反馈列表 */
     getList() {
       this.loading = true;
-      listFeedback(this.queryParams).then(response => {
-        this.feedbackList = response.rows;
+      listPlanSeasonal(this.queryParams).then(response => {
+        this.dataList = response.rows;
         this.total = response.total;
         this.loading = false;
       });