|
|
@@ -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> |