Просмотр исходного кода

工作指派显示部门通讯录

master
kim131 4 лет назад
Родитель
Сommit
d430a7762a
1 измененных файлов: 94 добавлений и 26 удалений
  1. +94
    -26
      src/views/components_web/distWork/distWork.vue

+ 94
- 26
src/views/components_web/distWork/distWork.vue Просмотреть файл

@@ -96,7 +96,7 @@
<!-- 默认添加 -->
<div >
<div class="avtarface" :title="currUser.cnName">
<img src="" v-lazy="headSrc+currUser.headImgUrl" />
<img :src="currUser.headImgUrl | resolveAvator"/>
</div>
<span class="Text_tiny tinyText_wirte">{{currUser.cnName}}</span>
</div>
@@ -112,7 +112,8 @@
<li v-for="(user, index) in listManagerUser" :key="index">
<div v-if="index < 14 || showAll ">
<div class="avtarface" :title="user.cnName">
<img src="" v-lazy="headSrc+user.headImgUrl" />
<!-- <img src="" v-lazy="headSrc+user.headImgUrl" /> -->
<img :src="user.headImgUrl | resolveAvator" />
</div>
<span class="Text_tiny tinyText_wirte">{{user.cnName}}</span>
</div>
@@ -161,7 +162,8 @@
)" :key="index">
<div>
<div class="avtarface" title="编辑">
<img src="" v-lazy="headSrc + user.headImgUrl" @click="aloneAddUserForFolder(folder)" />
<!-- <img src="" v-lazy="headSrc + user.headImgUrl" @click="aloneAddUserForFolder(folder)" /> -->
<img :src="headSrc + user.headImgUrl" @click="aloneAddUserForFolder(folder)" />
</div>
<span class="Text_tiny tinyText_wirte">{{
user.cnName
@@ -182,7 +184,8 @@
)" :key="index">
<div v-if="index < 14 || showAll">
<div class="avtarface" title="编辑">
<img src="" v-lazy="headSrc + user.headImgUrl" />
<!-- <img src="" v-lazy="headSrc + user.headImgUrl" /> -->
<img :src="user.headImgUrl | resolveAvatar" />
</div>
<span class="Text_tiny tinyText_wirte">{{
user.cnName
@@ -375,7 +378,7 @@
<a href="javascript:;">所在项目{{ user.projCount }}个</a>
</li>
</ul>
<span class="user_info_job" slot="reference">{{ user.position }}</span>
<span class="user_info_job" slot="reference">{{user.position }}</span>
</el-popover>
<span class="user_info_role">{{
user.roleName
@@ -408,7 +411,8 @@
selectedUser
)" :key="index">
<i class="icon font_family icon-icon_huangguan-jihuo middlehuangguan fl" title="负责人"></i>
<img v-lazy="headSrc + user.headImgUrl" alt="" class="user_info_faceImg" />
<!-- <img v-lazy="headSrc + user.headImgUrl" alt="" class="user_info_faceImg" /> -->
<img :src="user.headImgUrl | resolveAvator" alt="" class="user_info_faceImg" />
<span class="user_info_name">{{ user.cnName }}</span>
<el-popover placement="bottom-start" width="180" trigger="hover">
<ul class="popover_ul popover_ul">
@@ -528,7 +532,7 @@
<a href="javascript:;">所在项目{{ user.projCount }}个</a>
</li>
</ul>
<span class="user_info_job" slot="reference">{{ user.position }}</span>
<span class="user_info_job" slot="reference">{{ user.position}}</span>
</el-popover>
<span class="user_info_role">{{
user.roleName
@@ -650,6 +654,7 @@
</template>
<script>
import { getUserInfo,roleOptions,fetchAddressBook,getUserListByNode,roleMap,stateOptions} from '@/services/user.js';
export default {
data() {
return {
@@ -708,7 +713,7 @@
this.loadProjManager();
},
mounted: function () {
this.getUserInfo(sessionStorage.createUserID);
this._getUserInfo(sessionStorage.createUserID);
this.getNowProject();
this.getListProjProp();
this.listFolderChildren();
@@ -719,6 +724,7 @@
window.addEventListener('scroll',this.handleScroll,true)
},
computed: {
/**
* 过滤后的部门列表:去除没有用户数据的部门
*/
@@ -1046,6 +1052,30 @@
this.selectedManageUser = data.manageUser;
this.isShowThreePage = true;
this.isShowFirstPage = false;
},
/**
* 根据部门Id查找部门信息
*/
plainTreeNodes(nodesList, userList, outputList = []) {
(nodesList || []).forEach(node => {
// node.id
const data = node.data;
data.listUser = userList.filter(user => user.deptId === node.id);
outputList.push(data);
if(node.children && node.children.length) {
this.plainTreeNodes(node.children, userList, outputList);
}
});
return outputList;
},
async fetchPlainDeptUserList(companyId) {
const [treeDeptList, { list: userList }] = await Promise.all([
fetchAddressBook(companyId),
getUserListByNode({ id: companyId, nodeType: 'company' }, 1, 10000)
]);
const deptHeadList = treeDeptList[0].children || [];
const oList = this.plainTreeNodes(deptHeadList, userList);
return oList.filter(dept => dept.listUser && dept.listUser.length);
},
/*
* 设置项目负责人
@@ -1061,6 +1091,15 @@
this.selectedManageUser = [];
this.isShowThreePage = true;
this.isShowFirstPage = false;
this.fetchPlainDeptUserList(this.$store.state.currentCompanyId).then(list => {
this.listDept = list;
this.listDept = [...this.listDept];
console.log('1111111111111111111111111',this.listDept);
}).catch(err => {
console.log(err);
})
// this.selectedUser = this.newProjData.projectData.listProjManager;
},
/*
*顶部全选
@@ -1376,25 +1415,43 @@
});
},
//获取用户个人信息
getUserInfo: function (userId) {
var thisApp = this;
this.$axios({
method: "get",
url: encodeURI(process.env.API_HOST + "sysinfo/user/" + userId)
})
.then(response => {
var data = response.data;
thisApp.curProjCreatePeop =
data.cnName + "指派了新工作,请完成工作指派";
if (sessionStorage.allocated == 1)
{
thisApp.curProjCreatePeop = "项目管理";
}
})
.catch(error => {
console.log(error);
});
async _getUserInfo(userId) {
try {
let res = await getUserInfo(userId);
console.log('我是用户的信息',res);
this.curProjCreatePeop =
res.cnName + " 指派了新工作,请完成工作指派";
if (sessionStorage.allocated == 1)
{
this.curProjCreatePeop = "项目管理";
}
if(res.roleName === "项目负责人") {
this.isProjManager = true;
}
} catch(err) {
console.log(err);
}
},
// getUserInfo: function (userId) {
// var thisApp = this;
// this.$axios({
// method: "get",
// url: encodeURI(process.env.API_HOST + "sysinfo/user/" + userId)
// })
// .then(response => {
// var data = response.data;
// thisApp.curProjCreatePeop =
// data.cnName + "指派了新工作,请完成工作指派";
// if (sessionStorage.allocated == 1)
// {
// thisApp.curProjCreatePeop = "项目管理";
// }
// })
// .catch(error => {
// console.log(error);
// });
// },
/**
* 分配工作完成
*/
@@ -1457,6 +1514,10 @@
console.log(error);
});
},
/**
* 设置与用户的positon 相对应的字段映射
*/
},
beforeDestroy(){
// 销毁监听
@@ -1464,3 +1525,10 @@
}
};
</script>
<style scoped lang="scss">
::v-deep .el-checkbox:last-of-type {
margin-right: 30px;
}
</style>

Загрузка…
Отмена
Сохранить