|
|
@@ -46,7 +46,7 @@ |
|
|
|
</div>
|
|
|
|
<div class="yiyun_dialog_center">
|
|
|
|
<!-- 头部信息 -->
|
|
|
|
<span class="backshangyicheng prev_to_2" @click="toSecondPage" v-show="isShowThreePage == true && isShowManager"><i class="yiyun_icon icon_topnav_backicon"></i></span>
|
|
|
|
<span class="backshangyicheng prev_to_2" @click="backFirstPage" v-show="isShowThreePage == true && isShowManager"><i class="yiyun_icon icon_topnav_backicon"></i></span>
|
|
|
|
<span class="backshangyicheng prev_to_2" @click="toFirstPage" v-show="isShowSecondPage == true"><i class="yiyun_icon icon_topnav_backicon"></i></span>
|
|
|
|
<span class="backshangyicheng prev_to_2" @click="backFirstPage" v-show="isShowPrjDesc == true"><i class="yiyun_icon icon_topnav_backicon"></i></span>
|
|
|
|
<div class="bottomdialogbox_list_head newProject_next_taggle1">
|
|
|
@@ -55,13 +55,13 @@ |
|
|
|
{{ curProjCreatePeop }}
|
|
|
|
</h3>
|
|
|
|
<h3 v-show="isShowPrjDesc == true">项目概况</h3>
|
|
|
|
<h3 v-show="isShowThreePage == true">指派职员</h3>
|
|
|
|
<h3 v-show="isShowSecondPage == true">指派工作负责人</h3>
|
|
|
|
<!-- <h3 v-show="isShowThreePage == true">指派职员</h3> -->
|
|
|
|
<h3 v-show="isShowSecondPage == true || isShowThreePage == true">指派职员</h3>
|
|
|
|
</div>
|
|
|
|
<div class="EC_col_8">
|
|
|
|
<div class="fr mt-26">
|
|
|
|
<el-button type="primary" round class="fr width_120" @click="toThreePage" v-show="isShowSecondPage == true">分配职员</el-button>
|
|
|
|
<el-button type="primary" round class="fr width_120" @click="backFirstPage" v-show="isShowThreePage == true">完成或跳过</el-button>
|
|
|
|
<el-button type="primary" round class="fr width_120" @click="backFirstPage" v-show="isShowSecondPage == true">确定</el-button>
|
|
|
|
<el-button type="primary" round class="fr width_120" @click="backFirstPage" v-show="isShowThreePage == true">确定</el-button>
|
|
|
|
<el-button type="primary" round class="fr width_120" @click="submitAndClose" v-show="isShowFirstPage == true">完成</el-button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
@@ -134,167 +134,6 @@ |
|
|
|
:aloneAddUserOnlyStaff="aloneAddUserOnlyStaff"
|
|
|
|
:allChildrenLists="allChildrenLists"
|
|
|
|
/>
|
|
|
|
<!-- <div>
|
|
|
|
<div class="tianjiaxiezuorenBox" v-for="(folder, folderIndex) in listNewFolder" :key="folderIndex">
|
|
|
|
<div v-if="tempIndex!=folderIndex||folderIndex==0" class="self_newitem">
|
|
|
|
<h5 class="fl label_text">
|
|
|
|
<i class="el-icon-caret-right hand" v-show="opentree" @click="openECtree"></i>
|
|
|
|
<i class="el-icon-caret-bottom hand" v-show="!opentree" @click="closeECtree"></i>
|
|
|
|
{{ folderIndex + 1 }} <span>.</span>
|
|
|
|
{{ folder.folderName }}
|
|
|
|
</h5>
|
|
|
|
<div class="selfoptiongroup">
|
|
|
|
<el-button v-if="folder.default == false" v-on:click="eidtTitle(folderIndex)">编辑</el-button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div v-if="showTitle == 2&&tempIndex==folderIndex" class="self_newitem">
|
|
|
|
<input v-model="folder.folderName" :class="
|
|
|
|
folder.default == false
|
|
|
|
? 'bianji_input self_Inputwork'
|
|
|
|
: 'fl label_text_moren'
|
|
|
|
" :disabled="folder.default" />
|
|
|
|
<div class="selfoptiongroup">
|
|
|
|
<el-button type="primary" v-if="folder.default == false" v-on:click="saveTitle">保存</el-button>
|
|
|
|
<el-button v-if="folder.default == false" v-on:click="deleTitle(folderIndex)">删除</el-button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div>
|
|
|
|
<div class="fl firstPeople">
|
|
|
|
<div v-if="folder.manageUser == ''">
|
|
|
|
<div class="avtarface" @click="aloneAddUserForFolder(folder)">
|
|
|
|
<i class="large_huangguan el-icon-plus"></i>
|
|
|
|
</div>
|
|
|
|
<span class="Text_tiny tinyText_wirte">工作负责人</span>
|
|
|
|
</div>
|
|
|
|
<li v-for="(user, index) in folder.manageUser" :key="index">
|
|
|
|
<div>
|
|
|
|
<div class="avtarface" title="编辑">
|
|
|
|
<img :src="user.headImgUrl | resolveAvator" @click="aloneAddUserForFolder(folder)" />
|
|
|
|
</div>
|
|
|
|
<span class="Text_tiny tinyText_wirte">{{
|
|
|
|
user.cnName
|
|
|
|
}}</span>
|
|
|
|
</div>
|
|
|
|
</li>
|
|
|
|
</div>
|
|
|
|
<div class="fl vhLine mlr-20"></div>
|
|
|
|
<div class="fl addBtn_new" title="添加职员" @click="aloneAddUserOnlyStaff(folder)" v-if="folder.manageUser != ''">
|
|
|
|
<i class="el-icon-plus middleaddEC"></i>
|
|
|
|
</div>
|
|
|
|
<div class="fl chengyuanbox">
|
|
|
|
<ul class="ECworkerList">
|
|
|
|
<li v-for="(user, index) in listUserComputed(
|
|
|
|
folder.listUser
|
|
|
|
)" :key="index">
|
|
|
|
<div v-if="index < 14 || showAll">
|
|
|
|
<div class="avtarface" title="编辑">
|
|
|
|
<img :src="user.headImgUrl | resolveAvator" />
|
|
|
|
</div>
|
|
|
|
<span class="Text_tiny tinyText_wirte">{{
|
|
|
|
user.cnName
|
|
|
|
}}</span>
|
|
|
|
</div>
|
|
|
|
<div class v-if="index == 14 && !showAll" @click="showAllClick">
|
|
|
|
<span class="zhangkai_down"></span>
|
|
|
|
<span class="Text_tiny tinyText_wirte">展开全部</span>
|
|
|
|
</div>
|
|
|
|
<div v-if="
|
|
|
|
showAll &&
|
|
|
|
index == folder.listUser.length - 1 &&
|
|
|
|
index > 14
|
|
|
|
" @click="showAll = false" class="newweizhi">
|
|
|
|
<span class="zhangkai_up"></span>
|
|
|
|
<span class="Text_tiny tinyText_wirte">收起职员</span>
|
|
|
|
</div>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
<div class="clear"></div>
|
|
|
|
</div>
|
|
|
|
<div class="tianjiaxiezuorenBox" v-for="(folderChild, childIndex) in folder.listChildren" :key="childIndex" v-show="nodeLeaves">
|
|
|
|
<div v-if="tempIndex!=childIndex||childIndex==0" class="self_newitem">
|
|
|
|
<h5 class="fl label_text">
|
|
|
|
{{ childIndex + 1 }}.{{ folderChild.folderName }}
|
|
|
|
</h5>
|
|
|
|
<div class="selfoptiongroup">
|
|
|
|
<el-button v-if="folderChild.default == false" v-on:click="eidtTitle(childIndex)">编辑</el-button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div v-if="showTitle == 2&&tempIndex==folderIndex" class="self_newitem">
|
|
|
|
<input v-model="folderChild.folderName" :class="
|
|
|
|
folderChild.default == false
|
|
|
|
? 'bianji_input self_Inputwork'
|
|
|
|
: 'fl label_text_moren'
|
|
|
|
" :disabled="folderChild.default" />
|
|
|
|
<div class="selfoptiongroup">
|
|
|
|
<el-button type="primary" v-if="folderChild.default == false" v-on:click="saveTitle">保存</el-button>
|
|
|
|
<el-button v-if="folderChild.default == false" v-on:click="deleTitle(folderIndex)">删除</el-button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div>
|
|
|
|
<div class="fl firstPeople">
|
|
|
|
|
|
|
|
<div v-if="folderChild.manageUser == ''">
|
|
|
|
<div class="avtarface" @click="aloneAddUserForFolder(folderChild)">
|
|
|
|
<i class="large_huangguan el-icon-plus"></i>
|
|
|
|
</div>
|
|
|
|
<span class="Text_tiny tinyText_wirte">工作负责人</span>
|
|
|
|
</div>
|
|
|
|
<li v-for="(user, index) in folderChild.manageUser" :key="index">
|
|
|
|
<div>
|
|
|
|
<div class="avtarface" title="编辑">
|
|
|
|
<img :src="user.headImgUrl | resolveAvator" @click="aloneAddUserForFolder(folderChild)" />
|
|
|
|
</div>
|
|
|
|
<span class="Text_tiny tinyText_wirte">{{
|
|
|
|
user.cnName
|
|
|
|
}}</span>
|
|
|
|
</div>
|
|
|
|
</li>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="fl vhLine mlr-20"></div>
|
|
|
|
|
|
|
|
<div class="fl addBtn_new" title="添加职员" @click="aloneAddUserOnlyStaff(folderChild)">
|
|
|
|
<i class="el-icon-plus middleaddEC"></i>
|
|
|
|
</div>
|
|
|
|
<div class="fl chengyuanbox">
|
|
|
|
<ul class="ECworkerList">
|
|
|
|
<li v-for="(user, index) in listUserComputed(
|
|
|
|
folderChild.listUser
|
|
|
|
)" :key="index">
|
|
|
|
<div v-if="index < 14 || showAll">
|
|
|
|
<div class="avtarface" title="编辑">
|
|
|
|
<img :src=" user.headImgUrl | resolveAvator" />
|
|
|
|
</div>
|
|
|
|
<span class="Text_tiny tinyText_wirte">{{
|
|
|
|
user.cnName
|
|
|
|
}}</span>
|
|
|
|
</div>
|
|
|
|
<div class v-if="index == 14 && !showAll" @click="showAllClick">
|
|
|
|
<span class="zhangkai_down"></span>
|
|
|
|
<span class="Text_tiny tinyText_wirte">展开全部</span>
|
|
|
|
</div>
|
|
|
|
<div v-if="
|
|
|
|
showAll &&
|
|
|
|
index ==
|
|
|
|
folderChild.listUser.length - 1 &&
|
|
|
|
index > 14
|
|
|
|
" @click="showAll = false" class="newweizhi">
|
|
|
|
<span class="zhangkai_up"></span>
|
|
|
|
<span class="Text_tiny tinyText_wirte">收起职员</span>
|
|
|
|
</div>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
<div class="clear"></div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div> -->
|
|
|
|
<!-- <div v-show="listNewFolder.length > 0 && false">
|
|
|
|
<span class="fl label_text">自定义工作</span>
|
|
|
|
<span class="fr mt-10" @click="addProjFolderWork()"><i class="yiyunPlusmini"></i></span>
|
|
|
|
</div> -->
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
@@ -326,7 +165,7 @@ |
|
|
|
</el-form>
|
|
|
|
</div>
|
|
|
|
<!-- 选择负责人 -->
|
|
|
|
<div v-show="isShowSecondPage" class="PaincenterBox">
|
|
|
|
<div v-show="isShowSecondPage || isShowThreePage" class="PaincenterBox">
|
|
|
|
<div class="xiezuobox">
|
|
|
|
<!-- 左侧折叠面板 -->
|
|
|
|
<div class="yiyun_col-6 bg_text_wirte mt-8">
|
|
|
@@ -349,36 +188,17 @@ |
|
|
|
)" :label="user" :key="index"> -->
|
|
|
|
<div class="user_info_item" v-for="(user, index) in dept.listUser" :label="user" :key="index">
|
|
|
|
<el-checkbox class="checkBoxCol" v-model="user.selected" @change="
|
|
|
|
handleCheckedOnlyOne(
|
|
|
|
handleCheckedOne(
|
|
|
|
group_index,
|
|
|
|
user,
|
|
|
|
$event
|
|
|
|
)
|
|
|
|
" :disabled="disabled">
|
|
|
|
<div class="checkboxlabelitem">
|
|
|
|
<!-- <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">
|
|
|
|
<li>
|
|
|
|
<a href="javascript:;">{{
|
|
|
|
user.companyName
|
|
|
|
}}</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="javascript:;">{{
|
|
|
|
user.phone
|
|
|
|
}}</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="javascript:;">所在项目{{ user.projCount }}个</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
<span class="user_info_job" slot="reference">{{user.position }}</span>
|
|
|
|
</el-popover>
|
|
|
|
<span class="user_info_role">{{
|
|
|
|
user.roleName
|
|
|
|
}}</span>
|
|
|
@@ -395,244 +215,24 @@ |
|
|
|
<!-- 右侧折叠面板 -->
|
|
|
|
<div class="yiyun_col-6">
|
|
|
|
<h4 class="rightXiezuoren">已选职员</h4>
|
|
|
|
<div class="row_painfr">
|
|
|
|
<div class="yiyun_line"></div>
|
|
|
|
<span>工作负责人</span>
|
|
|
|
<div class="yiyun_line"></div>
|
|
|
|
<!-- 项目负责人选择前 isSlectPal -->
|
|
|
|
<div class="main_workerBox" v-if="listManagerComputed(selectedUser).length == 0">
|
|
|
|
<i class="icon font_family icon-icon_huangguan-weijihuo largehuangguan"></i>
|
|
|
|
<div class="rentou_alrge"></div>
|
|
|
|
</div>
|
|
|
|
<!-- 项目负责人选择后 -->
|
|
|
|
<div v-if="listManagerComputed(selectedUser).length != 0">
|
|
|
|
<div class="user_info_item mainpeople_H" v-for="(user, index) in listManagerComputed(selectedUser)" :key="index">
|
|
|
|
<i class="icon font_family icon-icon_huangguan-jihuo middlehuangguan fl" title="负责人"></i>
|
|
|
|
<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">
|
|
|
|
<li>
|
|
|
|
<a href="javascript:;">{{ user.roleName }}</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="javascript:;">{{ user.phone }}</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="javascript:;">所在项目{{ user.projCount }}个</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
<span class="user_info_job" slot="reference">{{
|
|
|
|
user.position
|
|
|
|
}}</span>
|
|
|
|
</el-popover>
|
|
|
|
<span class="user_info_role">
|
|
|
|
<i class="el-icon-close largeclose" @click="removeManageUser(user)" title="移除负责人"></i>
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<p class="diaTip">
|
|
|
|
工作负责人有且仅有一人,其将对:{{
|
|
|
|
currWorkName
|
|
|
|
}},进行职员指派。
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
<div v-if="isShowStaffList">
|
|
|
|
<div class="row_painfr" v-for="dept in listDeptComputed" :key="dept.id" >
|
|
|
|
<div class="yiyun_line"></div>
|
|
|
|
<div v-for="deptID in listDeptUserNoZero(selectedUser)" :key="deptID">
|
|
|
|
<div v-if="deptID == dept.id">
|
|
|
|
<div class="yiyun_line"></div>
|
|
|
|
<span>{{dept.deptName}}</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="renyuanbox" v-for="(user,index) in listUserComputed(selectedUser)" :key="index">
|
|
|
|
<div class="user_info_item" v-if="user.deptId == dept.id">
|
|
|
|
<img v-lazy="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">
|
|
|
|
<li><a href="javascript:;">{{user.roleName}}</a></li>
|
|
|
|
<li><a href="javascript:;">{{user.phone}}</a></li>
|
|
|
|
<li><a href="javascript:;">所在项目{{user.projCount}}个</a></li>
|
|
|
|
</ul>
|
|
|
|
<span class="user_info_job" slot="reference">{{user.position}}</span>
|
|
|
|
</el-popover>
|
|
|
|
<span class="user_info_role">
|
|
|
|
<!-- <template>
|
|
|
|
<el-select v-model="user.folderPerm" placeholder="设置角色" class="setroleselect">
|
|
|
|
<el-option v-for="item in roles" allow-create :key="item.value" :label="item.label"
|
|
|
|
:value="item.value">
|
|
|
|
<span style="float: left;margin-right:30px;">{{ item.label }}</span>
|
|
|
|
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.description }}</span>
|
|
|
|
</el-option>
|
|
|
|
</el-select>
|
|
|
|
</template> -->
|
|
|
|
<i class="el-icon-close" @click="removeSelectUser(user)" title="移除协作人"></i>
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<!-- 选择员工 -->
|
|
|
|
<div v-show="isShowThreePage" class="PaincenterBox">
|
|
|
|
<div class="xiezuobox">
|
|
|
|
<!-- 左侧折叠面板 -->
|
|
|
|
<div class="yiyun_col-6 bg_text_wirte mt-8">
|
|
|
|
<div class="row_painfl">
|
|
|
|
<!-- 折叠面板 -->
|
|
|
|
<el-collapse accordion v-model="activeName">
|
|
|
|
<!-- 添加协作群与工作 -->
|
|
|
|
<el-collapse-item name="1" class="nomidline">
|
|
|
|
<template slot="title">
|
|
|
|
<el-checkbox class=" checkxiezuoren" style="color:white" v-model="ischeckAll" @change="handleCheckTopAll">全选</el-checkbox>
|
|
|
|
<span class="checkBoxCol">从部门中选择职员</span>
|
|
|
|
</template>
|
|
|
|
<el-collapse accordion v-for="(dept, group_index) in listDept" v-show="dept.listUser.length>0" :key="group_index">
|
|
|
|
<!-- 二级折叠面板 -->
|
|
|
|
<el-collapse-item>
|
|
|
|
<template slot="title">
|
|
|
|
<span class=" checkBoxCol">{{ dept.deptName }}
|
|
|
|
</span>
|
|
|
|
<el-checkbox class="checkxiezuoren" style="color:white" v-model="dept.selected" :key="group_index" @change="
|
|
|
|
handleCheckItemAll(group_index, $event)
|
|
|
|
">全选</el-checkbox>
|
|
|
|
</template>
|
|
|
|
<div class="user_info_item" v-for="(user, index) in listUserStaff(
|
|
|
|
dept.listUser
|
|
|
|
)" :label="user" :key="index">
|
|
|
|
<!-- <div class="user_info_item" v-for="(user, index) in dept.listUser" :label="user" :key="index"> -->
|
|
|
|
<el-checkbox class="checkBoxCol" v-model="user.selected" @change="
|
|
|
|
handleCheckedOne(group_index, user, $event)
|
|
|
|
" :disabled="disabled">
|
|
|
|
<div class="checkboxlabelitem">
|
|
|
|
<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">
|
|
|
|
<li>
|
|
|
|
<a href="javascript:;">{{
|
|
|
|
user.companyName
|
|
|
|
}}</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="javascript:;">{{
|
|
|
|
user.phone
|
|
|
|
}}</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="javascript:;">所在项目{{ user.projCount }}个</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
<span class="user_info_job" slot="reference">{{ user.position}}</span>
|
|
|
|
</el-popover>
|
|
|
|
<span class="user_info_role">{{
|
|
|
|
user.roleName
|
|
|
|
}}</span>
|
|
|
|
</div>
|
|
|
|
</el-checkbox>
|
|
|
|
</div>
|
|
|
|
</el-collapse-item>
|
|
|
|
</el-collapse>
|
|
|
|
</el-collapse-item>
|
|
|
|
</el-collapse>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="shuxian"></div>
|
|
|
|
<!-- 右侧折叠面板 -->
|
|
|
|
<div class="yiyun_col-6">
|
|
|
|
<h4 class="rightXiezuoren" v-if="isShowManager">已选职员</h4>
|
|
|
|
<h4 class="rightXiezuoren" v-if="!isShowManager">已选项目负责人</h4>
|
|
|
|
<div class="row_painfr" v-if="isShowManager">
|
|
|
|
<div class="yiyun_line"></div>
|
|
|
|
<span>工作负责人</span>
|
|
|
|
<div class="yiyun_line"></div>
|
|
|
|
<!-- 项目负责人选择前 -->
|
|
|
|
<div class="main_workerBox" v-if="listManagerComputed(selectedUser).length == 0">
|
|
|
|
<i class="icon font_family icon-icon_huangguan-weijihuo largehuangguan"></i>
|
|
|
|
<div class="rentou_alrge"></div>
|
|
|
|
</div>
|
|
|
|
<!-- 项目负责人选择后 -->
|
|
|
|
<div v-if="listManagerComputed(selectedUser).length != 0">
|
|
|
|
<div class="user_info_item mainpeople_H" v-for="(user, index) in listManagerComputed(selectedUser)" :key="index">
|
|
|
|
<i class="icon font_family icon-icon_huangguan-jihuo middlehuangguan fl" title="负责人"></i>
|
|
|
|
<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">
|
|
|
|
<li>
|
|
|
|
<a href="javascript:;">{{ user.roleName }}</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="javascript:;">{{ user.phone }}</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="javascript:;">所在项目{{ user.projCount }}个</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
<span class="user_info_job" slot="reference">{{user.position}}</span>
|
|
|
|
</el-popover>
|
|
|
|
<!-- <span class="user_info_role" @click="removeManageUser(user)">修改</span> -->
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<p class="diaTip">
|
|
|
|
工作负责人有且仅有一人,其将对:{{
|
|
|
|
currWorkName
|
|
|
|
}},进行职员指派。
|
|
|
|
</p>
|
|
|
|
</div>
|
|
|
|
<!-- 选择职员 -->
|
|
|
|
<div v-if="isShowStaffList">
|
|
|
|
<div class="row_painfr" v-for="dept in listDept" v-show="dept.listUser.length > 0" :key="dept.id">
|
|
|
|
<div class="yiyun_line set-yiyun-line"></div>
|
|
|
|
<div>
|
|
|
|
<div class="row_painfr" v-for="dept in listDeptComputed" :key="dept.id" >
|
|
|
|
<div v-for="deptID in listDeptUserNoZero(selectedUser)" :key="deptID">
|
|
|
|
<div v-if="deptID == dept.id">
|
|
|
|
<div class="yiyun_line"></div>
|
|
|
|
<span>{{ dept.deptName }}</span>
|
|
|
|
</div>
|
|
|
|
<div v-if="deptID == dept.id">
|
|
|
|
<span>{{dept.deptName}}</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="renyuanbox" v-for="(user, index) in listUserComputed(selectedUser)" :key="index">
|
|
|
|
<div class="user_info_item" v-if="user.deptId == dept.id">
|
|
|
|
<!-- <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">
|
|
|
|
<li>
|
|
|
|
<a href="javascript:;">{{ user.roleName }}</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="javascript:;">{{ user.phone }}</a>
|
|
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="javascript:;">所在项目{{ user.projCount }}个</a>
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
<span class="user_info_job" slot="reference">{{
|
|
|
|
user.position
|
|
|
|
}}</span>
|
|
|
|
</el-popover>
|
|
|
|
<span class="user_info_role" v-if="isShowManager">
|
|
|
|
<!-- <template>
|
|
|
|
<el-select v-model="user.folderPerm" placeholder="设置角色" class="setroleselect">
|
|
|
|
<el-option v-for="item in roles" allow-create :key="item.value" :label="item.label" :value="item.value">
|
|
|
|
<span style="float: left;margin-right:30px;">{{ item.label }}</span>
|
|
|
|
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.description }}</span>
|
|
|
|
</el-option>
|
|
|
|
</el-select>
|
|
|
|
</template> -->
|
|
|
|
<i class="el-icon-close" @click="removeSelectUser(user)" title="移除协作人"></i>
|
|
|
|
</span>
|
|
|
|
<span class="user_info_role" v-if="!isShowManager">
|
|
|
|
<!-- <template>
|
|
|
|
<span style="float: left;margin-right:30px;">查看与编辑</span>
|
|
|
|
</template> -->
|
|
|
|
<i class="el-icon-close" @click="removeSelectUser(user)" title="移除项目负责人"></i>
|
|
|
|
</span>
|
|
|
|
<div class="renyuanbox" v-for="(user,index) in selectedUser" :key="index">
|
|
|
|
<div class="user_info_item" v-if="user.deptId == dept.id"
|
|
|
|
@click.stop="changeManagerClick(user)">
|
|
|
|
<i v-if="user.folderPerm == 2" title="负责人"
|
|
|
|
class="icon font_family icon-icon_huangguan-jihuo middlehuangguan fl set-crown-position"></i>
|
|
|
|
<img :src="user.headImgUrl | resolveAvator" alt="" class="user_info_faceImg">
|
|
|
|
<span class="user_info_name">{{user.cnName}}</span>
|
|
|
|
<span class="user_info_role">
|
|
|
|
<i class="el-icon-close" @click.stop="removeSelectUser(user)" title="移除协作人"></i>
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
@@ -640,6 +240,8 @@ |
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<!-- 选择员工 -->
|
|
|
|
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
@@ -810,7 +412,24 @@ export default { |
|
|
|
}
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
/**
|
|
|
|
* 点击切换项目负责人 同一个用户点击两次可以切换状态
|
|
|
|
*/
|
|
|
|
changeManagerClick(clickUser) {
|
|
|
|
if(!this.isShowManager) {
|
|
|
|
// 如果是选择项目负责人 则不需要进行状态切换
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
this.selectedUser.forEach(user => {
|
|
|
|
user.folderPerm = (user.id === clickUser.id) ? 2 : 1;
|
|
|
|
if(user.folderPerm === 2) {
|
|
|
|
this.InitData.manageUser.splice(0, 1, user);
|
|
|
|
} else {
|
|
|
|
this.InitData.manageUser.splice(0, 1);//取消选中的负责人状态
|
|
|
|
}
|
|
|
|
})
|
|
|
|
},
|
|
|
|
/**
|
|
|
|
* 判断用户是否是项目负责人
|
|
|
|
*/
|
|
|
@@ -1059,10 +678,10 @@ export default { |
|
|
|
this.listDept[j].listUser[k].selected = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
if(!this.isShowManager)
|
|
|
|
if(!this.isShowManager)//选择添加项目负责人职员
|
|
|
|
{
|
|
|
|
// if(this.currUser.accountId == sessionStorage.userId && sessionStorage.accountId == this.listDept[j].listUser[k].userID )
|
|
|
|
if(this.currUser.accountId == sessionStorage.userId && sessionStorage.accountId == this.listDept[j].listUser[k].id)
|
|
|
|
if(this.currUser.id == sessionStorage.userId && sessionStorage.userId == this.listDept[j].listUser[k].id)
|
|
|
|
{
|
|
|
|
this.listDept[j].listUser[k].selected = true;
|
|
|
|
}
|
|
|
@@ -1124,7 +743,12 @@ export default { |
|
|
|
data.listUser=this.listManagerUser;
|
|
|
|
this.setFolderPerm(data);
|
|
|
|
|
|
|
|
this.selectedUser =data.listUser;
|
|
|
|
this.selectedUser = data.listUser;
|
|
|
|
let find = data.listUser.find(user => user.id === this.currUser.id);
|
|
|
|
if(!find) {
|
|
|
|
this.currUser.folderPerm = 2;//给项目的创建者设置权限 让它带上皇冠
|
|
|
|
data.listUser.push(this.currUser);
|
|
|
|
}
|
|
|
|
this.selectedManageUser = [];
|
|
|
|
this.isShowThreePage = true;
|
|
|
|
this.isShowFirstPage = false;
|
|
|
@@ -1210,24 +834,24 @@ export default { |
|
|
|
/**
|
|
|
|
* 选择负责人
|
|
|
|
*/
|
|
|
|
handleCheckedOnlyOne(topIndex, user, e) {
|
|
|
|
//三级change事件
|
|
|
|
if (e) {
|
|
|
|
//将选中的人员返回给添加合作人页面
|
|
|
|
this.checkDeptUserName(e, user);
|
|
|
|
this.setManagerUser(user);
|
|
|
|
this.isSlectPal = false;
|
|
|
|
} else {
|
|
|
|
//将选中的人员返回给添加合作人页面
|
|
|
|
this.checkDeptUserName(e, user);
|
|
|
|
this.InitData.manageUser =[];
|
|
|
|
this.isSlectPal = true;
|
|
|
|
//debugger;
|
|
|
|
}
|
|
|
|
// handleCheckedOnlyOne(topIndex, user, e) {
|
|
|
|
// //三级change事件
|
|
|
|
// if (e) {
|
|
|
|
// //将选中的人员返回给添加合作人页面
|
|
|
|
// this.checkDeptUserName(e, user);
|
|
|
|
// this.setManagerUser(user);
|
|
|
|
// this.isSlectPal = false;
|
|
|
|
// } else {
|
|
|
|
// //将选中的人员返回给添加合作人页面
|
|
|
|
// this.checkDeptUserName(e, user);
|
|
|
|
// this.InitData.manageUser =[];
|
|
|
|
// this.isSlectPal = true;
|
|
|
|
// //debugger;
|
|
|
|
// }
|
|
|
|
|
|
|
|
this.getIsCheckSecondLevel(topIndex);
|
|
|
|
this.getIsCheckAll();
|
|
|
|
},
|
|
|
|
// this.getIsCheckSecondLevel(topIndex);
|
|
|
|
// this.getIsCheckAll();
|
|
|
|
// },
|
|
|
|
/**
|
|
|
|
* 当前二级选中状态修正
|
|
|
|
*/
|
|
|
@@ -1281,14 +905,31 @@ export default { |
|
|
|
{
|
|
|
|
this.$notify.info({
|
|
|
|
title: "温馨提示",
|
|
|
|
message: "不能移除自己哦",
|
|
|
|
message: "不能移除自己。",
|
|
|
|
offset: 100,
|
|
|
|
duration: 5000
|
|
|
|
});
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
this.checkDeptUserName(false, item);
|
|
|
|
this.cancelCheck(item.id);
|
|
|
|
// 如果当前登录者是项目负责人分配的某个节点的负责人(不是项目负责人) 那么不能删除自己
|
|
|
|
// 自己指派自己是可以移除的
|
|
|
|
if(this.InitData.manageUser != ''&& this.InitData.manageUser[0].id == sessionStorage.userId && !this.allChildrenLists.includes(this.InitData))
|
|
|
|
{
|
|
|
|
this.$notify.info({
|
|
|
|
title: "温馨提示",
|
|
|
|
message: "没有权限移除自己。",
|
|
|
|
offset: 100,
|
|
|
|
duration: 5000
|
|
|
|
});
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if(item.folderPerm == 2) {
|
|
|
|
this.removeManageUser(item);
|
|
|
|
} else {
|
|
|
|
this.checkDeptUserName(false, item);
|
|
|
|
this.cancelCheck(item.id);
|
|
|
|
}
|
|
|
|
|
|
|
|
},
|
|
|
|
/**
|
|
|
|
* 移除负责人
|
|
|
@@ -1549,7 +1190,7 @@ export default { |
|
|
|
const folderList = mergeFolderList(folder, userHash);
|
|
|
|
this.getfolderPerm(folderList)
|
|
|
|
this.listNewFolder = folderList;
|
|
|
|
console.log('得到的listNewFolder', this.listNewFolder);
|
|
|
|
// console.log('得到的listNewFolder', this.listNewFolder);
|
|
|
|
this.getAllChildrenLists(this.listNewFolder,this.userId,this.allChildrenLists);
|
|
|
|
},
|
|
|
|
async getUserList(){
|
|
|
@@ -1605,7 +1246,9 @@ export default { |
|
|
|
Work: [],
|
|
|
|
};
|
|
|
|
params.ProjectManagerId = this.listManagerUser.length > 0 ? this.listManagerUser.map(projManager => {
|
|
|
|
return projManager.id;
|
|
|
|
if(projManager.id !== sessionStorage.createUserID) {
|
|
|
|
return projManager.id;
|
|
|
|
}
|
|
|
|
}).join(',') : '';
|
|
|
|
circleGetWorkData(this.listNewFolder);
|
|
|
|
|
|
|
@@ -1761,6 +1404,11 @@ function mergeFolderList(plainFolderList, userHash) { |
|
|
|
.notclick .avtarface {
|
|
|
|
cursor:not-allowed;
|
|
|
|
}
|
|
|
|
|
|
|
|
.set-crown-position {
|
|
|
|
margin: 4px 10px 0 0;
|
|
|
|
}
|
|
|
|
.set-yiyun-line {
|
|
|
|
margin: 0 0 0 15px;
|
|
|
|
}
|
|
|
|
|
|
|
|
</style> |