Lijy преди 2 години
родител
ревизия
4cbb660582

+ 9 - 8
fhKeeper/formulahousekeeper/timesheet/src/components/select.vue

@@ -2,8 +2,8 @@
   <div tabindex="0" @blur="selectClihide()" style="display: inline-block;">  
     <div :style="'width:' + selectWidth + 'px;height:' + selectHeight + 'px'" :class="classDiv ? 'select selectDiv' : 'select'" @click="selectCli" ref="selectDiv">
         <div :class="selectName == $t('defaultText.pleaseChoose') ? 'selecttex selecttexXuan' : 'selecttex'">
-            <ww-open-data type='userName' :openid='selectName'></ww-open-data>
-            <!-- {{selectName}} -->
+            <!-- <ww-open-data type='userName' :openid='selectName'></ww-open-data> -->
+            {{selectName}}
         </div>
         <i class="el-icon-arrow-down iostu"></i>
     </div>
@@ -12,14 +12,13 @@
         <div class="transitionBox">
             <ul class="transitionBoxUl">
                 <li :class="transitionBoxLiIdx == index ? 'liHover' : ''" v-for="(item, index) in options" :key="index" @mouseover="liMouseOver(index)" @click="liClick(item)"> 
-                    <span v-if="item.name">
-                        <!-- {{item.name || item.auditorName}} -->
+                    <!-- <span v-if="item.name">
                         <ww-open-data type='userName' :openid='item.name'></ww-open-data>
                     </span> 
                     <span v-if="item.auditorName">
                         <ww-open-data type='userName' :openid='item.auditorName'></ww-open-data>
-                    </span>
-                    <!-- {{item.name || item.auditorName}} -->
+                    </span> -->
+                    {{item.name || item.auditorName}}
                 </li>
             </ul>
         </div>
@@ -52,10 +51,11 @@ export default {
             type: Boolean,
             default: false, // 默认值,不是填写日报
         },
-        // 针对查任务的处理
+        // 剩下统一索引
         index: {
             type: String
-        }
+        },
+
     },
     components: {
         selectWidth: '150',
@@ -218,6 +218,7 @@ export default {
         box-shadow: 0 2px 12px #dfdfdf;
         max-height: 274px;
         overflow: auto;
+        z-index: 500 !important;
     }
     .transitionBoxUl {
         list-style: none;

+ 132 - 22
fhKeeper/formulahousekeeper/timesheet/src/views/project/list.vue

@@ -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>
@@ -451,16 +480,35 @@
                     </el-select>
                 </el-form-item> -->
                 <el-form-item :label="$t('Allparticipants')" v-show="addForm.isPublic == 0">
-                    <el-tooltip placement="top" effect="light">
+                    <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')" >
+                <el-form-item :label="$t('projectmanager')">
                     <!-- <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 +670,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 +716,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 +1086,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 +1147,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 +1211,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 +1301,7 @@ a {
                     projectDesc: '',
                     alarmType: 0
                 },
+                addFormUserNames: [],
                 temaddForm: {},
                 rules: {
                     name: [{ required: true, message: this.$t('pleaseentername'), trigger: "blur" }],
@@ -1812,12 +1896,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 +2572,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 +3446,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 +4028,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;

+ 1 - 1
fhKeeper/formulahousekeeper/timesheet/src/views/team/index.vue

@@ -84,7 +84,7 @@
                         <el-link type="primary" :underline="false" @click="openInsertDialog(null)">{{ $t('addpersonnel') }}</el-link>
                     </el-form-item>
                     
-                    <el-form-item style="float:right;" v-if="user.dingdingUserid == null && permissions.structureImport">
+                    <el-form-item style="float:right;" v-if="user.dingdingUserid == null && permissions.structureImport && user.userNameNeedTranslate != '1'">
                         <el-link type="primary" :underline="false" @click="importUserC">{{ $t('bulkimport') }}</el-link>
                     </el-form-item>
                     <el-form-item style="float:right;" v-if="user.corpwxUserid != null && permissions.structureImport && user.companyId==469">