|
@@ -107,21 +107,29 @@
|
|
|
<!-- 项目经理筛选 -->
|
|
|
<el-form-item>
|
|
|
<span style="margin-left:5px;margin-right:5px;color:#606266;">{{ $t('projectmanager') }}</span>
|
|
|
- <el-select v-model="inchagerId" style="width:140px;" :placeholder="$t('defaultText.pleaseChoose')" clearable @change="manageSelect" size="small" filterable popper-class="managePopperClass">
|
|
|
+
|
|
|
+ <el-select v-if="user.userNameNeedTranslate != 1" v-model="inchagerId" style="width:140px;" :placeholder="$t('defaultText.pleaseChoose')" clearable @change="manageSelect" size="small" filterable popper-class="managePopperClass">
|
|
|
<el-option v-for="item in users" :key="item.id" :label="user.companyId == 936 ? item.name + '\u3000' + item.jobNumber : item.name" :value="item.id">
|
|
|
<span style="float: left">{{ item.name }}</span>
|
|
|
<span style="float: right; color: #8492a6;" v-if="user.companyId == 936">{{ item.jobNumber }}</span>
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
+
|
|
|
+ <selectCat v-if="user.userNameNeedTranslate == 1" :size="'mini'" :subject="users" :subjectId="inchagerId" :distinction="'1'" @selectCal="selectCal"></selectCat>
|
|
|
+
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
<span style="margin-left:25px;margin-right:5px;color:#606266;">{{ $t('participantin') }}</span>
|
|
|
- <el-select v-model="participationId" style="width:140px;" :placeholder="$t('defaultText.pleaseChoose')" clearable @change="participationSelect" size="small" filterable popper-class="managePopperClass">
|
|
|
+
|
|
|
+ <el-select v-if="user.userNameNeedTranslate != 1" v-model="participationId" style="width:140px;" :placeholder="$t('defaultText.pleaseChoose')" clearable @change="participationSelect" size="small" filterable popper-class="managePopperClass">
|
|
|
<el-option v-for="item in users" :key="item.id" :label="user.companyId == 936 ? item.name + '\u3000' + item.jobNumber : item.name" :value="item.id">
|
|
|
<span style="float: left">{{ item.name }}</span>
|
|
|
<span style="float: right; color: #8492a6;" v-if="user.companyId == 936">{{ item.jobNumber }}</span>
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
+
|
|
|
+ <selectCat v-if="user.userNameNeedTranslate == 1" :size="'mini'" :subject="users" :subjectId="inchagerId" :distinction="'2'" @selectCal="selectCal"></selectCat>
|
|
|
+
|
|
|
</el-form-item>
|
|
|
<!-- 部门筛选 -->
|
|
|
<el-form-item v-if="user.timeType.projectWithDept">
|
|
@@ -208,7 +216,14 @@
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="inchargerName" :label="$t('projectmanager')" sortable="custom" min-width="150">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-link type="primary" :underline="false" @click="showUser(scope.row.inchargerId)">{{scope.row.inchargerName}}</el-link>
|
|
|
+ <el-link type="primary" :underline="false" @click="showUser(scope.row.inchargerId)">
|
|
|
+ <span v-if="user.userNameNeedTranslate != 1">
|
|
|
+ {{scope.row.inchargerName}}
|
|
|
+ </span>
|
|
|
+ <span v-if="user.userNameNeedTranslate == 1">
|
|
|
+ <ww-open-data type='userName' :openid='scope.row.inchargerName'></ww-open-data>
|
|
|
+ </span>
|
|
|
+ </el-link>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
|
|
@@ -239,11 +254,25 @@
|
|
|
<div v-if="scope.row.participator.length > 5">
|
|
|
<el-popover placement="top" width="500" trigger="hover" v-if="scope.row.participator.length > 0">
|
|
|
<span v-for="par in scope.row.participator" :key="par.id">
|
|
|
- <el-link style="margin-right:10px;" :underline="false" type="primary" @click="showUser(par.id)">{{par.name}}</el-link>
|
|
|
+ <el-link style="margin-right:10px;" :underline="false" type="primary" @click="showUser(par.id)">
|
|
|
+ <span v-if="user.userNameNeedTranslate != 1">
|
|
|
+ {{par.name}}
|
|
|
+ </span>
|
|
|
+ <span v-if="user.userNameNeedTranslate == 1">
|
|
|
+ <ww-open-data type='userName' :openid='par.name'></ww-open-data>
|
|
|
+ </span>
|
|
|
+ </el-link>
|
|
|
</span>
|
|
|
<div slot="reference" class="addss">
|
|
|
<span v-for="par in scope.row.participator" :key="par.id">
|
|
|
- <el-link style="margin-right:10px;" :underline="false" type="primary" @click="showUser(par.id)">{{par.name}}</el-link>
|
|
|
+ <el-link style="margin-right:10px;" :underline="false" type="primary" @click="showUser(par.id)">
|
|
|
+ <span v-if="user.userNameNeedTranslate != 1">
|
|
|
+ {{par.name}}
|
|
|
+ </span>
|
|
|
+ <span v-if="user.userNameNeedTranslate == 1">
|
|
|
+ <ww-open-data type='userName' :openid='par.name'></ww-open-data>
|
|
|
+ </span>
|
|
|
+ </el-link>
|
|
|
</span>
|
|
|
</div>
|
|
|
</el-popover>
|
|
@@ -450,17 +479,37 @@
|
|
|
<el-option v-for="item in customerList" :key="item.id" :label="item.customerName" :value="item.id"></el-option>
|
|
|
</el-select>
|
|
|
</el-form-item> -->
|
|
|
- <el-form-item :label="$t('Allparticipants')" :class="title == $t('newproject') && user.companyId == 936 ? 'wpgCssClass' : ''" v-show="addForm.isPublic == 0">
|
|
|
- <el-tooltip placement="top" effect="light">
|
|
|
+ <el-form-item :label="$t('Allparticipants')" v-show="addForm.isPublic == 0" :class="title == $t('newproject') && user.companyId == 936 ? 'wpgCssClass' : ''">
|
|
|
+ <el-tooltip placement="top" effect="light" v-if="user.userNameNeedTranslate != 1">
|
|
|
+
|
|
|
<div slot="content" style="width:780px">{{addForm.userNames}}</div>
|
|
|
- <el-input @focus="showChooseMembTree" v-model="addForm.userNames"></el-input>
|
|
|
+ <el-input @focus="showChooseMembTree" v-model="addForm.userNames"></el-input>
|
|
|
+ </el-tooltip>
|
|
|
+ <el-tooltip placement="top" effect="light" v-if="user.userNameNeedTranslate == 1">
|
|
|
+ <div slot="content" style="width:780px">
|
|
|
+ <span v-for="(item, index) in addFormUserNames" :key="index">
|
|
|
+ <!-- {{item}} -->
|
|
|
+ <ww-open-data type='userName' :openid='item'></ww-open-data>
|
|
|
+ <span v-if="index < addFormUserNames.length - 1">,</span>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <div @click="showChooseMembTree" style="width: 800px;overflow:hidden;white-space:nowrap;height:40px;border: 1px solid #DCDFE6;border-radius: 4px;box-sizing: border-box;padding: 0 10px">
|
|
|
+ <span v-for="(item, index) in addFormUserNames" :key="index">
|
|
|
+ <!-- {{item}} -->
|
|
|
+ <ww-open-data type='userName' :openid='item'></ww-open-data>
|
|
|
+ <span v-if="index < addFormUserNames.length - 1">,</span>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
</el-tooltip>
|
|
|
</el-form-item>
|
|
|
<el-form-item :label="$t('projectmanager')" :class="title == $t('newproject') && user.companyId == 936 ? 'wpgCssClass' : ''">
|
|
|
<!-- <el-select v-model="addForm.inchargerId" :disabled="(addForm.userId.length==0 && addForm.isPublic == 0) || (!permissions.projectManagement && user.id != addForm.creatorId)" filterable placeholder="请选择项目经理" style="width:32%;" > -->
|
|
|
- <el-select v-model="addForm.inchargerId" filterable :placeholder="$t('defaultText.pleaseChoose')" style="width:32%;" >
|
|
|
+ <el-select v-if="user.userNameNeedTranslate != 1" v-model="addForm.inchargerId" filterable :placeholder="$t('defaultText.pleaseChoose')" style="width:32%;" >
|
|
|
<el-option v-for="item in participator" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
|
|
</el-select>
|
|
|
+
|
|
|
+ <selectCat v-if="user.userNameNeedTranslate == 1" :size="'small'" :subject="participator" :subjectId="addForm.inchargerId" :distinction="'3'"></selectCat>
|
|
|
+
|
|
|
</el-form-item>
|
|
|
<el-form-item :label="$t('newspaperauditor')" v-show="user.timeType.reportAuditType==0">
|
|
|
<el-select v-model="addForm.auditUserIds" multiple="true" :disabled=" !(permissions.projectManagement|| user.id == addForm.inchargerId || user.id == addForm.creatorId)" filterable :placeholder="$t('defaultistheprojectleader')" style="width:100%;" >
|
|
@@ -622,17 +671,21 @@
|
|
|
|
|
|
<el-table-column prop="membNames" :label="$t('personnelproportion')">
|
|
|
<template slot-scope="scope">
|
|
|
- <span style="margin:0 5px;" v-for="item in scope.row.membList" :key="item.membId">{{item.membName}}({{item.percentage}}%)</span>
|
|
|
+ <span style="margin:0 5px;" v-for="item in scope.row.membList" :key="item.membId">
|
|
|
+ <span v-if="user.userNameNeedTranslate != 1">{{item.membName}}({{item.percentage}}%)</span>
|
|
|
+ <span v-if="user.userNameNeedTranslate == 1"><ww-open-data type='userName' :openid='item.membName'></ww-open-data>({{item.percentage}}%)</span>
|
|
|
+ </span>
|
|
|
<el-link @click="showEditPpMembs(scope.row)">{{(scope.row.membList == null || scope.row.membList.length == 0)?$t('professionalparticipants'):$t('setup')}}</el-link>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column prop="inchargerName" width="120" :label="$t('head')">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-select v-model="scope.row.inchargerId" >
|
|
|
- <el-option v-for="item in participator" :key="item.id" :label="item.name" :value="item.id">
|
|
|
-
|
|
|
- </el-option>
|
|
|
+ <el-select v-model="scope.row.inchargerId" v-if="user.userNameNeedTranslate != 1">
|
|
|
+ <el-option v-for="item in participator" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
|
|
</el-select>
|
|
|
+
|
|
|
+ <!-- <selectCat :size="'mini'" :subject="participator" :subjectId="scope.row.inchargerId" :index="scope.index" :distinction="'4'" style="position: relative;z-index:99999999999 !important;"></selectCat> -->
|
|
|
+
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column width="80">
|
|
@@ -664,11 +717,18 @@
|
|
|
|
|
|
<!--用户详细信息弹出框-->
|
|
|
<el-dialog :title="$t('Checkthedetails')" v-if="userDetailVisible" :visible.sync="userDetailVisible" :close-on-click-modal="false" customClass="customWidth" width="400px">
|
|
|
- <div class="line"><span>{{ $t('lable.name') }}</span><span>{{userDetail.name}}</span></div>
|
|
|
+ <div class="line"><span>{{ $t('lable.name') }}</span>
|
|
|
+ <span v-if="user.userNameNeedTranslate != 1">{{userDetail.name}}</span>
|
|
|
+ <span v-if="user.userNameNeedTranslate == 1"><ww-open-data type='userName' :openid='userDetail.name'></ww-open-data></span>
|
|
|
+ </div>
|
|
|
<div class="line"><span>{{ $t('Worknumber') }}</span><span>{{userDetail.jobNumber}}</span></div>
|
|
|
<div class="line"><span>{{ $t('lable.phone') }}</span><span>{{userDetail.phone}}</span></div>
|
|
|
<div class="line"><span>{{ $t('jiao-se') }}</span><span>{{roleArray[userDetail.role]}}</span></div>
|
|
|
- <div class="line"><span>{{ $t('lable.department') }}</span><span>{{userDetail.departmentName}}</span></div>
|
|
|
+ <div class="line"><span>{{ $t('lable.department') }}</span>
|
|
|
+
|
|
|
+ <span v-if="user.userNameNeedTranslate != 1">{{userDetail.departmentName}}</span>
|
|
|
+ <span v-if="user.userNameNeedTranslate == 1"><ww-open-data type='departmentName' :openid='userDetail.departmentName'></ww-open-data></span>
|
|
|
+ </div>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
<el-button type="primary" @click="userDetailVisible = false" >{{ $t('btn.determine') }}</el-button>
|
|
|
</div>
|
|
@@ -1027,13 +1087,31 @@
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
<!-- 批量添加参与人 -->
|
|
|
- <el-dialog :title="isAddGroupPerson ? $t('groupparticipantsinbatches') : $t('projectparticipantsinbatches')" v-if="addGroupPersonDialog" :visible.sync="addGroupPersonDialog" width="40%">
|
|
|
+ <el-dialog :title="isAddGroupPerson ? $t('groupparticipantsinbatches') : $t('projectparticipantsinbatches')" v-if="addGroupPersonDialog" :visible.sync="addGroupPersonDialog" width="600px">
|
|
|
<el-form label-width="20%">
|
|
|
<el-form-item :label="$t('screening.selectPeople')">
|
|
|
- <el-tooltip placement="top" effect="light">
|
|
|
+ <el-tooltip placement="top" effect="light" v-if="user.userNameNeedTranslate != '1'">
|
|
|
<div slot="content" style="width:450px">{{addGroupPersonData.personNames}}</div>
|
|
|
<el-input @focus="addGroupPersonP" v-model="addGroupPersonData.personNames"></el-input>
|
|
|
</el-tooltip>
|
|
|
+
|
|
|
+ <el-tooltip placement="top" effect="light" v-if="user.userNameNeedTranslate == '1'">
|
|
|
+ <div slot="content" style="width:580px">
|
|
|
+ <span v-for="(item, index) in addGroupPersonDataPersonNames" :key="index">
|
|
|
+ <!-- {{item}} -->
|
|
|
+ <ww-open-data type='userName' :openid='item'></ww-open-data>
|
|
|
+ <span v-if="index < addGroupPersonDataPersonNames.length - 1">,</span>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ <div @click="addGroupPersonP" style="width: 450px;overflow:hidden;white-space:nowrap;height:40px;border: 1px solid #DCDFE6;border-radius: 4px;box-sizing: border-box;padding: 0 10px">
|
|
|
+ <span v-for="(item, index) in addGroupPersonDataPersonNames" :key="index">
|
|
|
+ <!-- {{item}} -->
|
|
|
+ <ww-open-data type='userName' :openid='item'></ww-open-data>
|
|
|
+ <span v-if="index < addGroupPersonDataPersonNames.length - 1">,</span>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ </el-tooltip>
|
|
|
+
|
|
|
</el-form-item>
|
|
|
<el-form-item :label="$t('xuan-ze-fen-zu')" v-if="isAddGroupPerson">
|
|
|
<el-select v-model="addGroupPersonData.group" multiple :placeholder="$t('selectagroup')" style="width:100%">
|
|
@@ -1070,15 +1148,16 @@
|
|
|
</el-dialog>
|
|
|
</el-dialog>
|
|
|
<!-- 批量设置项目经理 -->
|
|
|
- <el-dialog :title="$t('projectmanagersinbatches')" v-if="batchInchargerDialog" :visible.sync="batchInchargerDialog" width="30%">
|
|
|
+ <el-dialog :title="$t('projectmanagersinbatches')" v-if="batchInchargerDialog" :visible.sync="batchInchargerDialog" width="500px">
|
|
|
<el-form model="" label-width="120px">
|
|
|
<el-form-item :label="$t('setupprojectmanager')">
|
|
|
- <el-select v-model="paramInchargerId" :placeholder="$t('defaultText.pleaseChoose')" style="width: 80%" filterable clearable>
|
|
|
+ <!-- <el-select v-if="user.userNameNeedTranslate != '1'" v-model="paramInchargerId" :placeholder="$t('defaultText.pleaseChoose')" style="width: 80%" filterable clearable>
|
|
|
<el-option v-for="item in users" :key="item.id" :label="item.name" :value="item.id">
|
|
|
<span style="float: left">{{item.name}}</span>
|
|
|
<span style="float: right; color: #8492a6;" v-if="user.companyId == 936">{{ item.jobNumber }}</span>
|
|
|
</el-option>
|
|
|
- </el-select>
|
|
|
+ </el-select> -->
|
|
|
+ <selectCat :size="'small'" :subject="users" :subjectId="paramInchargerId" :distinction="'5'" @selectCal="selectCal"></selectCat>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
@@ -1133,8 +1212,13 @@ a {
|
|
|
<script>
|
|
|
import util from "../../common/js/util";
|
|
|
import projectgantt from "./project_gantt.vue"
|
|
|
+ // 自定义select组件
|
|
|
+ import selectCat from "@/components/select.vue"
|
|
|
export default {
|
|
|
- components:{projectgantt},
|
|
|
+ components:{
|
|
|
+ projectgantt,
|
|
|
+ selectCat
|
|
|
+ },
|
|
|
data() {
|
|
|
return {
|
|
|
addFlgmainProjectDialog: false,
|
|
@@ -1218,6 +1302,7 @@ a {
|
|
|
projectDesc: '',
|
|
|
alarmType: 0
|
|
|
},
|
|
|
+ addFormUserNames: [],
|
|
|
temaddForm: {},
|
|
|
rules: {
|
|
|
name: [{ required: true, message: this.$t('pleaseentername'), trigger: "blur" }],
|
|
@@ -1812,12 +1897,16 @@ a {
|
|
|
let list = chosenList.filter(item=>item.isUser == 1);
|
|
|
let listIDs = []
|
|
|
let listNames = ''
|
|
|
+ let listNamesList = []
|
|
|
for(let i=0;i<list.length;i++){
|
|
|
listIDs.push(list[i].id)
|
|
|
listNames += list[i].label + ','
|
|
|
+ listNamesList.push(list[i].label)
|
|
|
}
|
|
|
this.addGroupPersonData.person = listIDs
|
|
|
this.addGroupPersonData.personNames = listNames
|
|
|
+ this.addGroupPersonDataPersonNames = listNamesList
|
|
|
+ console.log('触发', this.addGroupPersonDataPersonNames)
|
|
|
},
|
|
|
addGroupPersonSure(){
|
|
|
if(this.addGroupPersonData.group.length == 0 || this.addGroupPersonData.person == null){
|
|
@@ -2484,16 +2573,19 @@ a {
|
|
|
var chosenList = this.$refs.chooseMembTree.getCheckedNodes();
|
|
|
this.chosenMembList = chosenList.filter(item=>item.isUser == 1);
|
|
|
this.addForm.userNames = '';
|
|
|
+ this.addFormUserNames = []
|
|
|
this.addForm.userId = [];
|
|
|
this.participator = [];
|
|
|
for (var i=0;i<this.chosenMembList.length; i++) {
|
|
|
this.addForm.userId.push(this.chosenMembList[i].id);
|
|
|
this.addForm.userNames += this.chosenMembList[i].label+',';
|
|
|
+ this.addFormUserNames.push(this.chosenMembList[i].label)
|
|
|
var item = {id:this.chosenMembList[i].id, name:this.chosenMembList[i].label};
|
|
|
this.participator.push(item);
|
|
|
}
|
|
|
if (this.addForm.userNames.length > 0) {
|
|
|
this.addForm.userNames = this.addForm.userNames.substring(0, this.addForm.userNames.length-1);
|
|
|
+ // this.addFormUserNames = this.addFormUserNames.substring(0, this.addFormUserNames.length-1);
|
|
|
}
|
|
|
},
|
|
|
|
|
@@ -3355,13 +3447,16 @@ a {
|
|
|
}
|
|
|
var arr = [];
|
|
|
var names = '';
|
|
|
+ let namesLiss = [] // 企业微信用到的参与者
|
|
|
for(var j in list) {
|
|
|
arr.push(list[j].id)
|
|
|
names += list[j].name+',';
|
|
|
+ namesLiss.push(list[j].name)
|
|
|
}
|
|
|
if (names.length > 0) {
|
|
|
names = names.substring(0, names.length -1);
|
|
|
}
|
|
|
+ this.addFormUserNames = namesLiss
|
|
|
var listList = JSON.parse(JSON.stringify(item)),
|
|
|
arrList = [],
|
|
|
array = [];
|
|
@@ -3934,6 +4029,22 @@ a {
|
|
|
}
|
|
|
return arr;
|
|
|
},
|
|
|
+ // 自定义组件事件
|
|
|
+ selectCal(obj) {
|
|
|
+ if(obj.distinction == '1') {
|
|
|
+ this.inchagerId = obj.id
|
|
|
+ this.manageSelect()
|
|
|
+ } else if(obj.distinction == '2') {
|
|
|
+ this.participationId = obj.id
|
|
|
+ this.participationSelect()
|
|
|
+ } else if(obj.distinction == '3') {
|
|
|
+ this.addForm.inchargerId = obj.id
|
|
|
+ } else if(obj.distinction =='4') {
|
|
|
+ this.projectProfessionList[obj.index].inchargerId == obj.id
|
|
|
+ } else if(obj.distinction =='5') {
|
|
|
+ this.paramInchargerId = obj.id
|
|
|
+ }
|
|
|
+ }
|
|
|
},
|
|
|
created() {
|
|
|
let height = window.innerHeight;
|