Ver Fonte

08/31 17:26

111
mo há 4 anos atrás
pai
commit
979adcc41b

+ 3 - 1
src/utils/searchArray.js

@@ -130,7 +130,9 @@ const practiceGroupType = [
 ]
 const visitChiose = [
   { value: '课程推荐', label: '课程推荐', children: [{ value: '新课推荐', label: '新课推荐' }, { value: '续费提醒', label: '续费提醒' }] },
-  { value: '常规回访', label: '常规回访', children: [{ value: '课后及作业回访', label: '课后及作业回访' }, { value: '联系及乐团表现', label: '联系及乐团表现' }] }]
+  { value: '常规回访', label: '常规回访', children: [{ value: '课后及作业回访', label: '课后及作业回访' }, { value: '联系及乐团表现', label: '联系及乐团表现' }] },
+  { value: '其它', label: '其它', children: [{ value: '其它', label: '其它' }] }
+]
 export {
   courseType,
   attendance,

+ 8 - 0
src/utils/vueFilter.js

@@ -540,4 +540,12 @@ Vue.filter('isProbationPeriod', value => {
     2: "离职",
   }
   return template[value]
+})
+
+Vue.filter('visiterType', value => {
+  let template = {
+    'TEACHER': "指导老师",
+    'EDU_TEACHER': "教务老师",
+  }
+  return template[value]
 })

+ 8 - 0
src/views/returnVisitManager/api.js

@@ -9,3 +9,11 @@ export function getVisitList (data) {
     params: data
   })
 }
+
+export function addVisit (data) {
+  return request({
+    url: api + '/visit/add',
+    method: 'post',
+    data: qs.stringify(data)
+  })
+}

+ 92 - 22
src/views/returnVisitManager/returnVisitList.vue

@@ -9,7 +9,7 @@
                :model="searchForm">
         <el-form-item>
           <el-input placeholder="请输入老师姓名"
-                    v-model.trim="searchForm.search"></el-input>
+                    v-model.trim="searchForm.teacher"></el-input>
         </el-form-item>
         <el-form-item>
           <el-select v-model.trim="searchForm.organId"
@@ -35,6 +35,7 @@
         </el-form-item>
         <el-form-item>
           <el-cascader expand-trigger="hover"
+                       clearable
                        placeholder="请选择回访类型"
                        :options="visitChiose"
                        @change="handleChange"
@@ -65,50 +66,54 @@
         <el-table :data='tableList'
                   :header-cell-style="{background:'#EDEEF0',color:'#444'}">
           <el-table-column align='center'
+                           prop="teacherName"
                            label="老师姓名">
           </el-table-column>
           <el-table-column align='center'
-                           prop="classGroupName"
+                           prop="organName"
                            label="所属分部">
           </el-table-column>
           <el-table-column align='center'
-                           prop="courseScheduleType"
+                           prop="visiterType"
                            label="角色">
+            <template slot-scope="scope">
+              <div>
+                {{scope.row.visiterType | visiterType}}
+              </div>
+            </template>
           </el-table-column>
           <el-table-column align='center'
-                           prop="masterTeacherName"
-                           label="乐团编号">
-          </el-table-column>
-          <el-table-column align='center'
-                           prop="masterTeacherName"
-                           label="乐团名称">
-          </el-table-column>
-          <el-table-column align='center'
-                           prop="masterTeacherName"
+                           prop="studentId"
                            label="学生ID">
           </el-table-column>
           <el-table-column align='center'
-                           prop="masterTeacherName"
+                           prop="studentName"
                            label="学生姓名">
           </el-table-column>
           <el-table-column align='center'
-                           prop="masterTeacherName"
+                           prop="type"
                            label="回访类型">
           </el-table-column>
           <el-table-column align='center'
-                           prop="masterTeacherName"
+                           prop="purpose"
                            label="回访目的">
           </el-table-column>
           <el-table-column align='center'
-                           prop="masterTeacherName"
+                           prop="visitTime"
                            label="回访时间">
+            <template slot-scope="scope">
+              <div>
+                {{scope.row.visitTime?scope.row.visitTime.split(' ')[0]:'--'}}
+              </div>
+            </template>
           </el-table-column>
           <el-table-column align='center'
                            prop="masterTeacherName"
                            label="操作">
             <template slot-scope="scope">
               <div>
-                <el-button type="text">操作</el-button>
+                <el-button type="text"
+                           @click="lookDetail(scope.row)">查看</el-button>
               </div>
             </template>
           </el-table-column>
@@ -120,6 +125,45 @@
                     @pagination="getList" />
       </div>
     </div>
+    <el-dialog title="回访详情"
+               width="700px"
+               destroy-on-close
+               :visible.sync="detailVisible">
+      <el-form :inline="true"
+               v-if="activeRow"
+               ref='visitForm'>
+        <el-form-item label="老师姓名">
+          <p class="msg">{{ activeRow.teacherName}}</p>
+        </el-form-item>
+        <el-form-item label="所属分部">
+          <p class="msg">{{ activeRow.organName}}</p>
+        </el-form-item>
+        <el-form-item label="角色">
+          <p class="msg">{{activeRow.visiterType | visiterType}}</p>
+        </el-form-item>
+        <el-form-item label="学生姓名">
+          <p class="msg">{{activeRow.studentName}}</p>
+        </el-form-item>
+        <el-form-item label="回访类型"
+                      prop='visitType'>
+          <p class="msg">{{activeRow.type}}</p>
+        </el-form-item>
+        <el-form-item label="回访目的"
+                      prop='visitType'>
+          <p class="msg">{{activeRow.purpose}}</p>
+        </el-form-item>
+
+        </el-form-item>
+        <el-form-item label="学员情况"
+                      prop="overview">
+          <p class="label">{{activeRow.overview}}</p>
+        </el-form-item>
+        <el-form-item label="家长反馈"
+                      prop='feedback'>
+          <p class="label">{{activeRow.feedback}}</p>
+        </el-form-item>
+      </el-form>
+    </el-dialog>
   </div>
 </template>
 <script>
@@ -133,7 +177,7 @@ export default {
   data () {
     return {
       searchForm: {
-        search: '',
+        teacher: '',
         organId: '',
         visiterType: '',
         type: '',
@@ -151,8 +195,8 @@ export default {
         page_size: [10, 20, 40, 50] // 选择限制显示条数
       },
       tableList: [],
-
-
+      detailVisible: false,
+      activeRow: null
     }
   },
   mounted () {
@@ -172,7 +216,16 @@ export default {
       this.rules.page = 1;
       this.getList()
     },
-    onReSet () { },
+    onReSet () {
+      this.searchForm = {
+        teacher: '',
+        organId: '',
+        visiterType: '',
+        type: '',
+        purpose: ''
+      }
+      this.search()
+    },
     getList () {
       // cleanDeep
       if (this.timer && this.timer.length > 0) {
@@ -187,9 +240,26 @@ export default {
           this.rules.total = res.data.total
         }
       })
+    },
+    lookDetail (row) {
+      this.activeRow = row;
+      this.detailVisible = true;
+    }
+  },
+  watch: {
+    detailVisible (val) {
+      if (!val) {
+        this.activeRow = null
+      }
     }
   }
 }
 </script>
-<style lang="scss">
+<style lang="scss" scoped>
+.msg {
+  min-width: 120px;
+}
+.label {
+  width: 520px;
+}
 </style>

+ 117 - 3
src/views/teamDetail/components/studentList.vue

@@ -247,6 +247,9 @@
               <el-button type="text"
                          v-if="permission('musicGroupQuit/directQuitMusicGroup')"
                          @click="quieTeamMask(scope.row)">退团</el-button>
+              <el-button type="text"
+                         v-if="permission('musicGroupQuit/directQuitMusicGroup')"
+                         @click="addVisit(scope.row)">新增回访</el-button>
 
               <!-- <el-button type="text" @click="lookClass(scope.row)">查看班级</el-button>
               <el-button type="text" v-if="!scope.row.isLock" @click="lockStudent(scope.row)">锁定</el-button>
@@ -635,6 +638,63 @@
                    @click="submitPay">确 定</el-button>
       </div>
     </el-dialog>
+    <el-dialog title="新增回访"
+               width="600px"
+               destroy-on-close
+               :close-on-click-modal='false'
+               :visible.sync="visitVisiable">
+      <el-form :model="visitForm"
+               ref='visitForm'
+               :rules="visitRules">
+        <el-form-item label="回访类型"
+                      prop='visitType'>
+          <el-cascader expand-trigger="hover"
+                       clearable
+                       placeholder="请选择回访类型"
+                       :options="visitChiose"
+                       @change="handleChange"
+                       style="width:220px!important;"
+                       v-model="visitForm.visitType">
+          </el-cascader>
+        </el-form-item>
+        <el-form-item label="回访日期"
+                      prop='visitTime'>
+          <el-date-picker v-model.trim="visitForm.visitTime"
+                          align="right"
+                          style="width:220px!important;"
+                          type="date"
+                          placeholder="选择日期"
+                          :picker-options="{
+                            firstDayOfWeek:1
+                          }"
+                          value-format="yyyy-MM-dd"></el-date-picker>
+        </el-form-item>
+        <el-form-item label="学员情况"
+                      prop="overview">
+          <el-input type="textarea"
+                    v-model="visitForm.overview"
+                    style="width:80%!important;"
+                    :rows="3"
+                    maxlength="40"
+                    show-word-limit></el-input>
+        </el-form-item>
+        <el-form-item label="家长反馈"
+                      prop='feedback'>
+          <el-input type="textarea"
+                    v-model="visitForm.feedback"
+                    style="width:80%!important;"
+                    :rows="3"
+                    maxlength="40"
+                    show-word-limit></el-input>
+        </el-form-item>
+      </el-form>
+      <span slot="footer"
+            class="dialog-footer">
+        <el-button @click="visitVisiable = false">取 消</el-button>
+        <el-button type="primary"
+                   @click="submitAddVisit">确 定</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 <script>
@@ -656,12 +716,15 @@ import {
   getStudentClass,
   getStudentInfoByPhone
 } from "@/api/studentManager";
+import { visitChiose } from '@/utils/searchArray'
 import pagination from "@/components/Pagination/index";
 import { vaildStudentUrl } from "@/utils/validate";
 import QRCode from "qrcodejs2";
 import axios from "axios";
 import { getToken } from "@/utils/auth";
 import { permission } from "@/utils/directivePage";
+import { addVisit } from "@/views/returnVisitManager/api.js"
+import cleanDeep from 'clean-deep'
 export default {
   name: "tstudentList",
   data () {
@@ -789,7 +852,27 @@ export default {
         payMoney: "",
         payMonth: []
       },
-      kitStatus: false // 乐器提供方式
+      kitStatus: false, // 乐器提供方式
+      // 新增回访记录弹窗
+      visitVisiable: false,
+      visitForm: {
+        musicGroupId: '',
+        overview: '',
+        purpose: '',
+        studentId: '',
+        type: '',
+        visitTime: '',
+        visitType: '',
+        feedback: ''
+      },
+
+      visitChiose,
+      visitRules: {
+        overview: [{ required: true, message: "请输入学生近况" }],
+        feedback: [{ required: true, message: "请输入家长反馈" }],
+        visitTime: [{ required: true, message: "请输入回访时间" }],
+        visitType: [{ required: true, message: "请选择回访类型" }]
+      }
     };
   },
   components: {
@@ -819,10 +902,10 @@ export default {
       return template[val];
     }
   },
-  mounted () {
+  activated () {
     this.init();
   },
-  activated () {
+  mounted () {
     this.init();
   },
   methods: {
@@ -1293,6 +1376,31 @@ export default {
     closePayVisible () {
       this.$refs["payForm"].resetFields();
       this.payVisible = false;
+    },
+    addVisit (row) {
+      console.log(row)
+      this.visitForm.musicGroupId = this.teamid
+      this.visitForm.studentId = row.userId
+      this.visitVisiable = true;
+    },
+    handleChange (val) {
+      this.visitForm.type = val[0]
+      this.visitForm.purpose = val[1]
+    },
+    submitAddVisit () {
+      console.log(this.$refs.visitForm)
+      this.$refs.visitForm.validate(res => {
+        if (res) {
+          addVisit(cleanDeep(this.visitForm)).then(res => {
+            if (res.code === 200) {
+              this.$message.success('新增成功')
+              this.visitVisiable = false
+            }
+          })
+        }
+      })
+
+      console.log(this.visitForm)
     }
   },
   watch: {
@@ -1307,6 +1415,12 @@ export default {
         };
         this.$refs["quitForm"].resetFields();
       }
+    },
+    visitVisiable (val) {
+      if (!val) {
+        this.$refs["visitForm"].resetFields();
+      }
+
     }
   }
 };