From e8801db14149a341695f7ec59bc4a2edd0417f50 Mon Sep 17 00:00:00 2001 From: daihh Date: Thu, 3 Nov 2022 15:05:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=AF=BE=E7=A8=8B=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=B7=BB=E5=8A=A0=E5=8F=97=E4=BC=97=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/boe/course.js | 12 ++- api/modules/usergroup.js | 149 ++++++++++++++++++++++++++++++++++++++ pages/resource/search.vue | 30 +++++++- store/modules/user.js | 23 +++--- 4 files changed, 201 insertions(+), 13 deletions(-) create mode 100644 api/modules/usergroup.js diff --git a/api/boe/course.js b/api/boe/course.js index d0385a6..3efac37 100644 --- a/api/boe/course.js +++ b/api/boe/course.js @@ -59,10 +59,20 @@ const delLearning = function(ms_timeline_kid) { return ajax.post('/b1/system/user/ms-timeline-delete',{ms_timeline_kid}); } +/** + * 根据用户的kid,获取用户的受众权限 + * + * @param {Object} kid + */ +const audience = function(kid) { + return ajax.get('/b1/system/user/audience-by-user?userId='+kid); +} + export default { myLearning, cmtaskList, reportList, courseList, - delLearning + delLearning, + audience } diff --git a/api/modules/usergroup.js b/api/modules/usergroup.js new file mode 100644 index 0000000..4fc0a94 --- /dev/null +++ b/api/modules/usergroup.js @@ -0,0 +1,149 @@ +import ajax from '@/utils/xajax.js' + +/** + * 分页查询 + * @param { + * pageIndex 起始页 + * pageSize 每页条数 + * name 名称 + * gtype 类型 1表普通受众,2表自动受众 + * status 状态 1表发布,0表未发布 + * } query + * @returns + */ +const list=function(query) { + return ajax.get('/xboe/usergroup/page',{params:query}); +} + +/** + * 按父节点ID查询机构列表,适合构建动态机构树 + * @param parentId 父节点ID 根目录为 -1 + * @returns + */ +const userOrgs=function(parentId) { + return ajax.get('/xboe/sys/user/org/list-by-parent?parentId='+parentId); +} + +/** + * + * @param {*} name + */ +const findByName=function(name) { + return ajax.get('/xboe/usergroup/find',{name}); +} + +/** + * 详情 + * @param {受众ID} id + * @returns + */ + const detail=function(id) { + return ajax.get('/xboe/usergroup/detail?id='+id); +} + +/** + * 保存 + * @param { + * name:'';//名称 长50 + * gtype:1;//类型 1表普通受众,2表自动受众 + * description:''; // 描述 长200 + * filterJson:''; //过滤条件 + * status:1; //状态 是否发布 1表发布,0表未发布 + * userGroupItems[ + * { + * aid:'',//人员ID + * } + * ];// 受众人员信息 + * } data + * @returns + */ +const save=function(data) { + return ajax.postJson('/xboe/usergroup/save',data); +} + +/** + * 修改 + * @param { + * id:'',//受众ID + * name:'';//名称 长50 + * gtype:1;//类型 1表普通受众,2表自动受众 + * description:''; // 描述 长200 + * filterJson:''; //过滤条件 + * status:1; //状态 是否发布 1表发布,0表未发布 + * userGroupItems[ + * { + * aid:'',//人员ID + * } + * ];// 受众人员信息 + * } data + * @returns + */ +const update=function(data) { + return ajax.postJson('/xboe/usergroup/update',data); +} + +/** + * 复制 + * @param { + * name 复制后的名称 + * id 需要复制的受众ID + * } data + * @returns + */ +const copy=function(data) { + return ajax.post('/xboe/usergroup/copy',data); +} + +/** + * 发布 + * @param { + * 1表发布,0表未发布 + * } status + * @param { + * 受众ID + * } id + * @returns + */ +const publish=function(status,id) { + let data = {}; + data.status = status; + data.id = id; + return ajax.post('/xboe/usergroup/publish',data); +} + +/** + * 删除 + * @param {受众ID} id + * @returns + */ +const del=function(id) { + return ajax.post('/xboe/usergroup/delete?id='+id); +} + +const downloadTemplate=function(){ + let requestParam ={ + url: '/xboe/usergroup/download', + timeout: 0, // 下载不设置超时 + responseType: 'blob', // 表明返回服务器返回的数据类型 + } + return ajax.get(requestParam); +} + +const userGroupIds=function() { + return ajax.get('/xboe/usergroup/user-group-ids'); +} + + +export default{ + list, + findByName, + detail, + save, + update, + copy, + publish, + del, + downloadTemplate, + userOrgs, + userGroupIds +} diff --git a/pages/resource/search.vue b/pages/resource/search.vue index 32fe984..487e239 100644 --- a/pages/resource/search.vue +++ b/pages/resource/search.vue @@ -255,9 +255,12 @@ import {toScore} from '@/utils/tools.js' import apiArticle from '@/api/modules/article.js' import apiBoeCourse from '@/api/boe/course.js' + import apiUserGroup from "@/api/modules/usergroup.js"; + import { mapGetters } from 'vuex' export default{ data(){ return{ + audiences:[], noPageList:true, noDataList:true, hotSaveKey:'SearchWords', @@ -312,9 +315,33 @@ this.conType=1; } this.loadSeachWords(); + //let localKey="user_"+this.userInfo.sysId+"_gids"; + if(this.audiences.length==0){ + //let hasIds; + // let hasIds=sessionStorage.getItem(localKey); + // if(hasIds && hasIds.length>0){ + // this.audiences=hasIds.split(","); + // this.search(); + // }else{ + console.log(this.userInfo,'this.userInfo') + Promise.all([apiBoeCourse.audience(this.userInfo.sysId),apiUserGroup.userGroupIds()]).then(rs=>{ + //console.log(rs,'rs'); + let aids=[]; + if(rs[0].status==200){ + aids.push(rs[0].result); + } + if(rs[1].status==200){ + aids.push(rs[1].result); + } + this.audiences=aids; + //sessionStorage.setItem(localKey,this.audiences); + //this.search(); + }) + //} + } }, computed:{ - + ...mapGetters(['userInfo']) }, onPullDownRefresh() { this.onReachBottom(); @@ -526,6 +553,7 @@ //查询课程 let $this=this; let dataList = []; + this.course.params.audiences=this.audiences.join(','); await apiCoursePortal.courseSearch(this.course.params).then(rs=>{ setTimeout(function(){ uni.hideLoading();},100); if(rs.status==200){ diff --git a/store/modules/user.js b/store/modules/user.js index eb83961..f5ccd33 100644 --- a/store/modules/user.js +++ b/store/modules/user.js @@ -87,17 +87,18 @@ const user = { } const user = { aid: res.result.aid, - name: res.result.name, - avatar: res.result.avatar, - loginName: res.result.loginName, - userNo: res.result.userNo, - code:res.result.userNo, - departId: res.result.departId, - departName: res.result.departName, - departFullName: res.result.departFullName, - studyTotal: res.result.studyTotal, - studyTotalH:studyTotalH, - sex:res.result.sex + name: res.result.name, + avatar: res.result.avatar, + loginName: res.result.loginName, + userNo: res.result.userNo, + code:res.result.userNo, + departId: res.result.departId, + departName: res.result.departName, + departFullName: res.result.departFullName, + studyTotal: res.result.studyTotal, + studyTotalH:studyTotalH, + sex:res.result.sex, + sysId:res.result.sysId }; user.avatar = user.avatar == "" ? "" : config.fileUrl + user.avatar; commit('SET_UserInfo', user);