浏览代码

调整企业微信任务分组负责人搜索问题

Lijy 1 年之前
父节点
当前提交
52a1374f1b

+ 4 - 4
fhKeeper/formulahousekeeper/timesheet/src/views/project/info.vue

@@ -512,13 +512,13 @@
                         <el-option v-for="item in users" :key="item.id" :label="item.name" :value="item.id"></el-option>
                     </el-select>
 
-                    <selectCat v-if="user.userNameNeedTranslate == 1" :multiSelect="true" :widthStr="'430'" :size="'medium'" :subject="users" :subjectId="addForm.userId" :distinction="'12'" @selectCal="selectCal"></selectCat>
-                </el-form-item>
+                    <selectCat v-if="user.userNameNeedTranslate == 1" :filterable="true" :multiSelect="true" :widthStr="'430'" :size="'medium'" :subject="users" :subjectId="addForm.userId" :distinction="'12'" @selectCal="selectCal"></selectCat>
+                </el-form-item> 
                 <el-form-item :label="$t('projectmanager')" >
                     <el-select v-if="user.userNameNeedTranslate != 1" v-model="addForm.inchargerId"  filterable :placeholder="$t('defaultText.pleaseChoose')" style="width:100%;" :disabled="isShowProjectName">
                         <el-option v-for="item in project.participationList" :key="item.id" :label="item.name" :value="item.id"></el-option>
                     </el-select>
-                    <selectCat v-if="user.userNameNeedTranslate == 1" :widthStr="'430'" :size="'medium'" :subject="project.participationList" :subjectId="addForm.inchargerId" :distinction="'1'" @selectCal="selectCal" :disabled="isShowProjectName"></selectCat>
+                    <selectCat v-if="user.userNameNeedTranslate == 1" :filterable="true" :widthStr="'430'" :size="'medium'" :subject="project.participationList" :subjectId="addForm.inchargerId" :distinction="'1'" @selectCal="selectCal" :disabled="isShowProjectName"></selectCat>
                 </el-form-item>
             </el-form>
             <div slot="footer" class="dialog-footer">
@@ -535,7 +535,7 @@
                         <el-option v-for="item in users" :key="item.id" :label="item.name" :value="item.id"></el-option>
                     </el-select>
 
-                    <selectCat v-if="user.userNameNeedTranslate == 1" :multiSelect="true" :widthStr="'430'" :size="'medium'" :subject="users" :subjectId="addMembForm.userId" :distinction="'13'" @selectCal="selectCal"></selectCat>
+                    <selectCat v-if="user.userNameNeedTranslate == 1" :filterable="true" :multiSelect="true" :widthStr="'430'" :size="'medium'" :subject="users" :subjectId="addMembForm.userId" :distinction="'13'" @selectCal="selectCal"></selectCat>
                 </el-form-item>
             </el-form>
             <div slot="footer" class="dialog-footer">

+ 74 - 20
fhKeeper/formulahousekeeper/timesheet/src/views/project/projectInside.vue

@@ -363,23 +363,30 @@
                     :placeholder="$t('keywordfiltering')"
                     v-model="participantsFilterText">
                     </el-input>
-                <el-tree :data="deptMembData" show-checkbox :props="defaultProps" node-key="id"
-                    ref="chooseMembTree2" @check-change="onTreeItemChange" :default-checked-keys="alreadyPartArray"
-                    highlight-current  :filter-node-method="filterNode">
-                    <span class="custom-tree-node" slot-scope="{ node, data }">
-                        <span v-if="user.userNameNeedTranslate == '1'">
-                            <span v-if="node.data.children">
-                                <ww-open-data type='departmentName' :openid='node.label'></ww-open-data>
+
+                    <div v-if="user.userNameNeedTranslate == '1' && false">
+                        <el-input placeholder="请输入内容" v-model.trim="wxFilterText" class="input-with-select">
+                            <el-button slot="append" icon="el-icon-search" @click="echartDepartment()"></el-button>
+                        </el-input>
+                    </div>
+
+                    <el-tree :data="deptMembData" show-checkbox :props="defaultProps" node-key="id"
+                        ref="chooseMembTree2" @check-change="onTreeItemChange" :default-checked-keys="alreadyPartArray"
+                        highlight-current  :filter-node-method="filterNode">
+                        <span class="custom-tree-node" slot-scope="{ node, data }">
+                            <span v-if="user.userNameNeedTranslate == '1'">
+                                <span v-if="node.data.children">
+                                    <ww-open-data type='departmentName' :openid='node.label'></ww-open-data>
+                                </span>
+                                <span v-else>
+                                    <ww-open-data type='userName' :openid='node.label'></ww-open-data>
+                                </span>
                             </span>
-                            <span v-else>
-                                <ww-open-data type='userName' :openid='node.label'></ww-open-data>
+                            <span v-if="user.userNameNeedTranslate != '1'">
+                                {{ node.label }}
                             </span>
-                        </span>
-                        <span v-if="user.userNameNeedTranslate != '1'">
-                            {{ node.label }}
-                        </span>
-                    </span>    
-                </el-tree>
+                        </span>    
+                    </el-tree>
                 </el-scrollbar>
             </div>
             <div>{{ $t('btn.choose') }}&nbsp;{{chosenMembCount}}&nbsp;{{ $t('other.people') }}</div>
@@ -1108,14 +1115,14 @@
         </el-dialog>
         <el-dialog :title="$t('taskgroupleader')" v-if="setInchargerDialog" :visible.sync="setInchargerDialog" :close-on-click-modal="false" customClass="customWidth" width="300px">
             <el-form ref="formIncharger" :model="groupForm" :rules="rules" style="margin-top:10px;">
-                    <el-form-item prop="taskGpIncharge">
+                    <el-form-item prop="taskGpIncharge"> 
                         <el-select v-if="user.userNameNeedTranslate != 1" v-model="groupForm.inchargerId" :placeholder="$t('defaultText.pleaseChoose')" style="width:100%;" clearable filterable>
                             <el-option v-for="item in joinMembList" :key="item.id" :value="item.id" :label="item.name">
                                 <span style="float: left">{{ item.name }}</span>
                                 <span style="float: right; color: #8492a6; font-size: 13px">{{ item.jobNumber }}</span>
                             </el-option>
                         </el-select>
-                        <selectCat v-if="user.userNameNeedTranslate == 1" :size="'mini'" @selectCal="selectCal" :subject="joinMembList" :subjectId="groupForm.inchargerId" :clearable="true" :distinction="'2'"></selectCat>
+                        <selectCat v-if="user.userNameNeedTranslate == 1" :filterable="true" :size="'mini'" @selectCal="selectCal" :subject="joinMembList" :subjectId="groupForm.inchargerId" :clearable="true" :distinction="'2'"></selectCat>
                     </el-form-item>
                 </el-form>
             <div slot="footer" class="dialog-footer">
@@ -1485,7 +1492,9 @@
                 integrationTask: {},
                 integrationTaskNingwai: {},
 
-                hideCompleted: false
+                hideCompleted: false,
+
+                wxFilterText: ''
             };
             
         },
@@ -1594,12 +1603,11 @@
             setupParticipants(item){
                 this.ididid = item.id
                 this.participantsFilterText = ''
+                this.wxFilterText = ''
                 console.log(item);
                 this.participantsDialog = true
                 this.getAlreadyPartArray(item.id)
                 this.getDepartmentList()
-                
-                
             },
             // 获取用于设置参与人的列表
             getDepartmentList(){
@@ -3702,6 +3710,52 @@
                 } else if(obj.distinction == '2') {
                     this.groupForm.inchargerId = obj.id
                 }
+            },
+            // 企业微信搜索
+            echartDepartment() {
+                console.log('我点击了搜索')
+                if(this.wxFilterText != '') {
+                    this.http.post("/department/listAllMemb", {
+                        keyword: this.wxFilterText,
+                        cursor: ''
+                    },
+                    res => {
+                        if (res.code == "ok") {
+                            var list = res.data.data;
+                            this.setUserToDept(list);
+                            this.deptMembData = list;
+                            this.$forceUpdate()
+                        } else {
+                            this.$message({
+                                message: res.msg,
+                                type: "error"
+                            });
+                        }
+                    },
+                    error => {
+                        this.$message({
+                            message: error,
+                            type: "error"
+                        });
+                    });
+                }
+            },
+            setUserToDept(list) {
+                for (var i in list) {
+                    if (list[i].children != null) {
+                        this.setUserToDept(list[i].children);
+                    }
+                    
+                    if (list[i].userList != null) {
+                        if (list[i].children == null) {
+                            list[i].children = [];
+                        }
+                        list[i].userList.forEach(element => {
+                            var obj = {id: element.id, label:element.name, parentId:element.departmentId, isUser:1};
+                            list[i].children.push(obj);
+                        });
+                    }
+                }
             }
         },
         created() {