diff --git a/src/api/boe/teacher.js b/src/api/boe/teacher.js index 45b2fb0d..1568a2ca 100644 --- a/src/api/boe/teacher.js +++ b/src/api/boe/teacher.js @@ -26,6 +26,13 @@ import ajax from '@/api/boe/boeApiAjax.js' const editTeacher = function(data) { return ajax.postJson('/b1/system/teacher/add-and-edit-teacher',data); } +// api +/** + * 发薪地接口 + */ + const getPayrollPlace = function(id) { + return ajax.get('/b1/system/teacher/payroll-place'); + } /** * 教师体系和级别接口 * @param { @@ -141,5 +148,6 @@ export default { getCourseInfo, teacherUpgradePrecess, deleteModelTeacher, - editModelTeacher + editModelTeacher, + getPayrollPlace } diff --git a/src/api/modules/teacher.js b/src/api/modules/teacher.js index 8c57901e..f0a1a76d 100644 --- a/src/api/modules/teacher.js +++ b/src/api/modules/teacher.js @@ -23,6 +23,10 @@ const getInfoById = function(id) { * pageIndex 起始页 * pageSize 每页条数 * name 姓名 + * tlevelId级别 + * salaryId发薪地 + * tsystemId + * } query * @returns */ @@ -104,7 +108,7 @@ const save = function(data) { * @param {teacherId->sysId : 原系统的id,接口返回} sysId */ const updateSysId = function(id,sysId) { - return ajax.postJson('/xboe/teacher/update-sysid',{id,sysId}); + return ajax.post('/xboe/teacher/update-sysid',{id,sysId}); } @@ -183,6 +187,17 @@ const exports=function(query){ const findAllCourses=function(query){ return ajax.post('/xboe/teacher/compose/find/courses',query); } +/** + * 内部讲师-删除模块讲师接口 + * @param { + courseId // 课程id + modId // 模块id + teacherId // 教师id + remark // 备注 + */ + const syncUpdate = function(data) { + return ajax.postJson('/xboe/teacher/update-sync',data); + } export default { findByName, @@ -197,5 +212,6 @@ export default { has, start, end, - exports + exports, + syncUpdate } diff --git a/src/views/manage/TeacherList.vue b/src/views/manage/TeacherList.vue index e8f89b15..ddb8bc8c 100644 --- a/src/views/manage/TeacherList.vue +++ b/src/views/manage/TeacherList.vue @@ -3,20 +3,20 @@
- - + +
- - + +
-
+
- - + +
@@ -74,9 +74,9 @@ background @size-change="handleSizeChange" @current-change="handleCurrentChange" - :current-page="pageIndex" + :current-page="query.pageIndex" :page-sizes="[10, 20, 30, 40]" - :page-size="pageSize" + :page-size="query.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="count"> @@ -86,7 +86,7 @@
- +

上传头像

图片尺寸建议在:宽100px,高100px

@@ -180,6 +180,15 @@ components:{imageUpload,teacherDetails}, data(){ return { + query:{ + tSystemId:'', + tSystemIds:'', + tLevelId:'', + queryName:'', + salaryId:'', + pageIndex: 1, + pageSize: 10, + }, teacherDetailId:'',//新数据id teacherDetailsId: '',// sid showTeacherDetails:false, @@ -239,6 +248,10 @@ systemLevelTree:[], systemData:[],//体系数组{id,name} levelData:[],//级别数组{id,name} + queryLevelData:[], + teacherSystemids:[], + coverImage:'', + placeList:[], } }, watch:{ @@ -248,14 +261,27 @@ } } }, - mounted() { - this.loadData(1); - this.getTeachersystem(); + mounted() { + this.getTeachersystem(); + this.getPayrollPlace(); }, computed: { ...mapGetters(['userInfo']) }, methods:{ + getPayrollPlace(){ + teacherBoeApi.getPayrollPlace().then(res=>{ + // console.log(res,'res'); + if(res.status == '200') { + for(let i in res.result){ + this.placeList.push({ + value:i, + label:res.result[i] + }) + } + } + }) + }, handleCloseOne() { // this.teacherDetailsId = ''; this.showTeacherDetails = false; @@ -272,18 +298,38 @@ this.systemLevelTree=res.result; this.systemData=[]; res.result.forEach(item => { + this.teacherSystemids.push(item.teacher_system_id); this.systemData.push({ id:item.teacher_system_id, name:item.system_name }) }); + this.loadData(1); } else { this.$message.error('教师体系数据获取失败!') + this.loadData(1); } }) }, + queryChangeSystem(val) { + this.query.tLevelId = ''; + let array=[]; + this.systemLevelTree.forEach(sl=>{ + if(sl.teacher_system_id==val){ + sl.teacher_level.forEach(lev=>{ + array.push({ + id:lev.teacher_level_id, + name:lev.level_name + }) + }) + } + }); + this.queryLevelData=array; + }, changeSystem(val){ - //console.log(val,'val'); + this.tLevelData = {}; + this.form.tlevelId = ''; + this.form.tlevelName=''; let array=[]; this.systemLevelTree.forEach(sl=>{ if(sl.teacher_system_id==val.id){ @@ -302,7 +348,13 @@ this.loadData(1); }, reset (){ - this.queryName = ''; + this.query.queryName = ''; + this.query.tSystemId='', + this.query.tLevelId='', + this.query.queryName='', + this.query.salaryId='', + this.query.pageIndex= 1, + this.query.pageSize= 10, this.$refs.teacherTable.clearFilter(); this.pageIndex = 1; this.loadData(1); @@ -389,8 +441,9 @@ if (res.status == 200 && res.result != null) { this.havaInfo = true; this.form.account = res.result.account; - // this.fileBaseUrl + - this.form.account.avatar = this.fileBaseUrl + res.result.account.avatar; + if(res.result.photo != '') { + this.coverImage = this.fileBaseUrl+res.result.photo; + } this.form.user = res.result; } else { this.havaInfo = false; @@ -403,13 +456,15 @@ }, removeHandle(){ this.form.account.avatar = ''; + this.coverImage = ''; + this.form.photo = ''; }, handleUploadSuccess(res){ + this.coverImage = this.fileBaseUrl + res.result.filePath; this.form.account.avatar = res.result.filePath; + this.form.photo = res.result.filePath; }, saveHandle(){ - //console.log(this.tSystemData,'tSystemData'); - //console.log(this.tLevelData,'tLevelData'); this.form.tsystemId = this.tSystemData.id; this.form.tsystemName=this.tSystemData.name; this.form.tlevelId = this.tLevelData.id; @@ -424,10 +479,12 @@ this.saveBoe(); this.dialogVisible = false; this.loadData(1); + this.saveLoading = false; }else{ this.$message({ type: "error", message: res.message }); } }).catch(err => { + this.saveLoading = false; this.$message({ type: "error", message: err }); }); }else{ @@ -438,9 +495,11 @@ this.dialogVisible = false; this.loadData(1); }else{ + this.saveLoading = false; this.$message({ type: "error", message: res.message }); } }).catch(err => { + this.saveLoading = false; this.$message({ type: "error", message: err }); }); } @@ -469,7 +528,7 @@ teacherBoeApi.editTeacher(data).then(res=>{ this.saveLoading=false; if(res.status == 200) { - this.updateSysId(this.form.user.id,res.result.sysId); + this.updateSysId(this.form.user.id,res.result.teacher_id); this.$message({ type: "success", message: "保存成功" }); }else{ this.$message({ type: "warning", message: "同步失败,本地已保存" }); @@ -477,7 +536,7 @@ }) }, updateSysId(id,sysId) { - teacherBoeApi.updateSysId(id,sysId).then(res=>{ + teacherApi.updateSysId(id,sysId).then(res=>{ if(res.status == 200) { this.$message.success('教师同步成功!') } else { @@ -486,6 +545,7 @@ }) }, updateHandle(data){ + this.coverImage = ''; this.saveLoading=false; this.newOrEdit='编辑教师'; this.allowInput=true; @@ -493,18 +553,46 @@ if (res.status == 200) { const result = res.result; this.form = result; - this.dialogVisible = true; + this.tSystemData = { + id:result.tsystemId, + name:result.tlevelName + }; + this.tLevelData = { + id:result.tlevelId, + name: result.tlevelName + }; + if(res.result.photo != '') { + this.coverImage = this.fileBaseUrl+res.result.photo; + } + this.updateSystem(result.tsystemId) + this.dialogVisible = true; } }) }, + updateSystem(val) { + let array=[]; + this.systemLevelTree.forEach(sl=>{ + if(sl.teacher_system_id==val){ + sl.teacher_level.forEach(lev=>{ + array.push({ + id:lev.teacher_level_id, + name:lev.level_name + }) + }) + } + }); + this.levelData=array; + }, loadData(pageIndex) { - this.pageIndex = pageIndex; + this.query.pageIndex = pageIndex; + this.query.tSystemIds = this.query.tSystemId || this.teacherSystemids.join(); teacherApi - .page({ - pageIndex: this.pageIndex, - pageSize: this.pageSize, - name: this.queryName , - }) + .page( + this.query + // pageIndex: this.pageIndex, + // pageSize: this.pageSize, + // name: this.queryName, + ) .then((res) => { if (res.status == 200) { const result = res.result; @@ -613,13 +701,13 @@ document.body.removeChild(eleLink); }, handleSizeChange(val) { - this.pageSize = val - this.pageIndex = 1 - this.loadData(this.pageIndex) + this.query.pageSize = val + this.query.pageIndex = 1 + this.loadData(this.query.pageIndex) }, handleCurrentChange(val) { - this.pageIndex = val - this.loadData(this.pageIndex) + this.query.pageIndex = val + this.loadData(this.query.pageIndex) }, } } diff --git a/src/views/manage/teacherDetails.vue b/src/views/manage/teacherDetails.vue index 4dad1313..2702bdb7 100644 --- a/src/views/manage/teacherDetails.vue +++ b/src/views/manage/teacherDetails.vue @@ -3,16 +3,16 @@
- + -
+
- +
@@ -47,7 +47,7 @@ {{formatsec(form.certify_at *1000)}} - + @@ -169,7 +169,7 @@ label="课程类型" width="100"> @@ -274,10 +274,10 @@ export default { name: "teacherDetails", components: { imageUpload }, props: { - id:{ + id:{// sysId type: String, }, - newId:{ + newId:{// id type: String, } }, @@ -286,9 +286,11 @@ export default { formatsec, formatSeconds, baseUrl: process.env.VUE_APP_BASE_API, + fileBaseUrl: process.env.VUE_APP_FILE_BASE_URL, newForm:{ account:{}, user:{}, + photo:'' }, dialogVisible:false, activeName: "first", @@ -332,14 +334,26 @@ export default { ...mapGetters(["userInfo"]) }, methods: { + downloadActioon(filePath) { + if (!filePath) return; + let link = document.createElement('a'); //创建a标签 + link.style.display = 'none'; //使其隐藏 + link.download = this.fileBaseUrl + filePath; + link.setAttribute('target', '_blank'); + link.href = this.fileBaseUrl + filePath; //赋予文件下载地址 + link.setAttribute('download', '资料'); //设置下载属性 以及文件名 + document.body.appendChild(link); //a标签插至页面中 + link.click(); //强制触发a标签事件 + document.body.removeChild(link); + }, getAvatar(){ teacherApi.detail(this.newId).then(res => { if (res.status == 200) { // const result = res.result; this.newForm = res.result; - if(res.result.account.avatar != '') { - this.newForm.account.avatar = this.baseUrl + res.result.account.avatar; - } + // if(res.result.account.avatar != '') { + // this.newForm.account.avatar = this.baseUrl + res.result.account.avatar; + // } } }) }, @@ -485,11 +499,47 @@ export default { if (res.status == 200) { const result = res.result; this.form = result; + this.synchronization(res.result); } else { this.$message.error(res.message); } }); + }, + synchronization(result) { + let param = { + id: this.newId,//当前老师记录的id + /**因为有可能部分老师没有这个字段,对应返回的teacher_id*/ + sysId: result.teacher_id, + /**因为有可能部分老师没有这个字段*/ + companyId: result.company_id, + companyName: result.company_name, + teacherCode: result.teacher_code, + /**返回的字段,不知道什么意义*/ + teacherType: result.teacher_type, + userId: result.user_id, + userNo: result.user_no, + gender: result.gender, + teachingTime: result.teaching_time, + certification: result.certification, + language: result.language, + timezone: result.timezone, + tsystemId: result.system_id, + tsystemName: result.system_name, + tlevelId: result.level_id, + tlevelName: result.level_name, + /**认证人*/ + certifyby: result.certify_by, + /**状态;0:临时;1:正式;2:停用*/ + pstatus: result.status, + /**员工状态 2:正常 3:离职*/ + pemployeeStatus: result.employee_status, } + teacherApi.syncUpdate(param).then(res=>{ + if(res.status != 200) { + console.log(res) + } + }) + } } }; diff --git a/vue.config.js b/vue.config.js index f69b259d..f9cb2d66 100644 --- a/vue.config.js +++ b/vue.config.js @@ -110,6 +110,7 @@ module.exports = { // 使用代理 // 172.16.6.175 // 114.115.162.187 测试环境 + // 192.168.0.107 晋宇 proxy: { '/systemapi': { // 目标代理服务器地址