Commit ea045bbc by zhangleyuan

feat:处理搜索

parent 4a133475
...@@ -176,10 +176,10 @@ function EmployeeManage() { ...@@ -176,10 +176,10 @@ function EmployeeManage() {
key: "depNameList", key: "depNameList",
render: (val:string,record:RecordTypes) => { render: (val:string,record:RecordTypes) => {
if(!record.depNameList){ if(!record.depNameList){
return <span></span> return <span>-</span>
} }
return record.depNameList.map((item,index)=>{ return record.depNameList.map((item,index)=>{
return <span>{item}{index<(record.depNameList.length -1)?'、':''}</span>; return <span><WWOpenDataCom type="departmentName" openid={item}/>{index<(record.depNameList.length -1)?'、':''}</span>;
}) })
}, },
......
...@@ -5,6 +5,7 @@ import NewChooseMembersModal from "@/modules/college-manage/modal/NewChooseMembe ...@@ -5,6 +5,7 @@ import NewChooseMembersModal from "@/modules/college-manage/modal/NewChooseMembe
import LeftStructureTree from "./LeftStructureTree"; import LeftStructureTree from "./LeftStructureTree";
import { XMTable, PageControl } from "@/components"; import { XMTable, PageControl } from "@/components";
import college from "@/common/lottie/college.json"; import college from "@/common/lottie/college.json";
import WWOpenDataCom from '@/components/WWOpenDataCom';
import StoreService from "@/domains/store-domain/storeService"; import StoreService from "@/domains/store-domain/storeService";
import { DepType } from "@/domains/store-domain/constants"; import { DepType } from "@/domains/store-domain/constants";
import User from "@/common/js/user"; import User from "@/common/js/user";
...@@ -35,7 +36,10 @@ function DepartMentTabCon(props) { ...@@ -35,7 +36,10 @@ function DepartMentTabCon(props) {
render: (val, item) => { render: (val, item) => {
return ( return (
<div> <div>
{item.sourceEnum === "WORK_WE_CHAT" ?
<span> <WWOpenDataCom type="userName" openid={val}/></span>:
<span>{val}</span> <span>{val}</span>
}
<span <span
className="tag" className="tag"
style={{ style={{
...@@ -51,7 +55,7 @@ function DepartMentTabCon(props) { ...@@ -51,7 +55,7 @@ function DepartMentTabCon(props) {
}, },
{ {
title: "真实姓名", title: "真实姓名",
dataIndex: "userName", dataIndex: "realName",
width: "15%", width: "15%",
render: (val, record) => { render: (val, record) => {
return <span>{val}</span>; return <span>{val}</span>;
...@@ -67,13 +71,13 @@ function DepartMentTabCon(props) { ...@@ -67,13 +71,13 @@ function DepartMentTabCon(props) {
}, },
{ {
title: "岗位", title: "岗位",
dataIndex: "depPostNameList", dataIndex: "depNameList",
render: (val, record) => { render: (val, record) => {
if(!record.depPostNameList){ if(!record.depNameList){
return <span>-</span> return <span>-</span>
}else{ }else{
record.depPostNameList.map((item, index) => { return record.depNameList.map((item, index) => {
return <span>{item}{index!==record.depPostNameList.length-1 && <span></span>}</span>; return <span>{item}{index!==record.depNameList.length-1 && <span></span>}</span>;
}) })
} }
} }
...@@ -128,9 +132,9 @@ function DepartMentTabCon(props) { ...@@ -128,9 +132,9 @@ function DepartMentTabCon(props) {
params.departmentId = null; params.departmentId = null;
} }
if(record.queryName){ if(record.queryName){
params.queryName = record.queryName; params.nickName = record.queryName;
}else{ }else{
params.queryName = null; params.nickName = null;
} }
} }
if (current) { if (current) {
......
import React, { useEffect, useState } from "react"; import React, { useEffect, useState } from "react";
import { withRouter } from "react-router-dom"; import { withRouter } from "react-router-dom";
import { Input} from "antd"; import { Input,Checkbox} from "antd";
import StoreService from "@/domains/store-domain/storeService"; import StoreService from "@/domains/store-domain/storeService";
import User from '@/common/js/user'; import User from '@/common/js/user';
import WWOpenDataCom from '@/components/WWOpenDataCom'; import WWOpenDataCom from '@/components/WWOpenDataCom';
import $ from 'jquery';
import './SearchUser.less'
const { Search } = Input; const { Search } = Input;
function SearchUser(props) { function SearchUser(props) {
const [dropDownVisible,setDropDownVisible]=useState(false);
useEffect(()=>{
documentClick();
},[])
function onFocus(e){
setDropDownVisible(true);
}
function onChange(e){
props.onChange(e.target.value)
}
function selectuser(e,item){
if(e.target.checked){
let _record = []
_record.push(item)
props.onSelect(_record)
}
}
function selectDep(e,item){
if(e.target.checked){
props.onSelect(item.departmentUserVOList || []);
}
}
function documentClick(){
document.onclick = function (e) {
let _con =$('#search-user');
if(!_con.is(e.target) && _con.has(e.target).length === 0){
setDropDownVisible(false);
}
};
}
return ( return (
<div className="search-user"> <div className="search-user" style={{width:'300px'}} id="search-user">
<Search <Search
placeholder='搜索成员' placeholder='搜索成员'
className='search search-input'
enterButton={<span className="icon iconfont">&#xe832;</span>} enterButton={<span className="icon iconfont">&#xe832;</span>}
onFocus={(e)=>{onFocus(e)}}
onChange={(e)=>{onChange(e)}}
// onBlur={()=>{onBlur()}}
/> />
<div className="drop-down"> {dropDownVisible &&
<div> <div className="drop-down" style={{width:'100%'}}>
<div className="drop-down__list">
{props.data.departmentUserVOList &&
<div> <div>
<div className="drop-down__item__title">
员工 员工
</div> </div>
<div className="drop-down__item__con">
<div> <div>
{props.data.departmentUserVOList.map((item,index)=>{
return <div>
<Checkbox onChange={(e)=>{selectuser(e,item)}}>
<div className="drop-down__item__con__item">
<div className="drop-down__item__con__item__left">
<WWOpenDataCom type="userName" openid={item.userName}/>
</div>
<div className="drop-down__item__con__item__right">
{item.postDepNamesList.map((_item,index)=>{
return <span> <WWOpenDataCom type="departmentName" openid={_item}/>{index<(item.postDepNamesList.length -1)?'、':''}</span>
})
}
</div>
</div>
</Checkbox>
</div>
})
}
</div>
</div>
</div>
}
{props.data.departmentVOList &&
<div> <div>
<div>佳欢</div> <div className="drop-down__item__title">
<div>小麦助教</div> 部门
</div> </div>
<div className="drop-down__item__con">
<div> <div>
<div>佳欢</div> {props.data.departmentVOList.map((item,index)=>{
<div>小麦助教</div> return <div><Checkbox onChange={(e)=>{selectDep(e,item)}}>
<div className="drop-down__item__con__item">
<div className="drop-down__item__con__item__left">
<WWOpenDataCom type="departmentName" openid={item.name}/>
</div> </div>
</div> </div>
</Checkbox>
</div> </div>
})
}
</div> </div>
</div>
</div>
}
{(!props.data.departmentUserVOList && !props.data.departmentVOList)&&
<div>暂无数据</div>
}
</div>
</div>
}
</div> </div>
); );
} }
......
.search-user{
position: relative;
.drop-down{
padding:18px;
position: absolute;
background: #FFF;
z-index:100001;
background: #FFFFFF;
box-shadow: 0px 2px 15px 6px rgba(0, 0, 0, 0.05);
border-radius:2px;
.drop-down__item__con__item{
display:flex;
justify-content:space-between;
}
}
}
\ No newline at end of file
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: wufan * @Author: wufan
* @Date: 2020-11-27 16:21:49 * @Date: 2020-11-27 16:21:49
* @LastEditors: Please set LastEditors * @LastEditors: Please set LastEditors
* @LastEditTime: 2021-07-28 10:15:37 * @LastEditTime: 2021-08-03 08:39:25
* @Description: Description * @Description: Description
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
*/ */
...@@ -21,13 +21,13 @@ function AddOrEditPostGroupModal(props) { ...@@ -21,13 +21,13 @@ function AddOrEditPostGroupModal(props) {
},[]); },[]);
function changePostGroupName(e){ function changePostGroupName(e){
setValidateStatus('success'); setValidateStatus('success');
props.postGroupTreeData.map((item,index)=>{ // props.postGroupTreeData.map((item,index)=>{
if(item.name === e.target.value){ // if(item.name === e.target.value){
setValidateStatus('error'); // setValidateStatus('error');
setNameErrorMsg('该岗位组已存在'); // setNameErrorMsg('该岗位组已存在');
} // }
return item; // return item;
}) // })
setPostGroupName(e.target.value); setPostGroupName(e.target.value);
} }
......
...@@ -16,6 +16,7 @@ import MemberTree from '../components/MemberTree' ...@@ -16,6 +16,7 @@ import MemberTree from '../components/MemberTree'
import { DepType } from "@/domains/store-domain/constants"; import { DepType } from "@/domains/store-domain/constants";
import StoreService from "@/domains/store-domain/storeService"; import StoreService from "@/domains/store-domain/storeService";
import SearchUser from "../components/SearchUser" import SearchUser from "../components/SearchUser"
import WWOpenDataCom from '@/components/WWOpenDataCom';
import './ChooseMembersModal.less'; import './ChooseMembersModal.less';
import _ from 'underscore'; import _ from 'underscore';
...@@ -31,7 +32,8 @@ class NewChooseMembersModal extends React.Component { ...@@ -31,7 +32,8 @@ class NewChooseMembersModal extends React.Component {
visible:this.props.visible, visible:this.props.visible,
completeOptions:[], completeOptions:[],
queryName:'', queryName:'',
open:false open:false,
searchUserResultList:{}
} }
} }
componentDidMount() { componentDidMount() {
...@@ -221,33 +223,9 @@ class NewChooseMembersModal extends React.Component { ...@@ -221,33 +223,9 @@ class NewChooseMembersModal extends React.Component {
whetherCount:false whetherCount:false
} }
StoreService.getDepartmentUser(params).then((res) => { StoreService.getDepartmentUser(params).then((res) => {
const _completeOptions = [];
const userObj = {};
const departmentGroupObj = {};
const postobj = {};
const { result = {}} = res; const { result = {}} = res;
const {departmentUserVOList=[],departmentVOList=[]} = result;
if(departmentUserVOList.length>0){
userObj.label=this.renderTitle('员工');
userObj.options=departmentUserVOList.map((item,index)=>{
return this.renderItem(item,'user');
})
}
if(departmentVOList.length>0){
departmentGroupObj.label=this.renderTitle('部门');
departmentGroupObj.options=departmentVOList.map((item,index)=>{
return this.renderItem(item,'group');
})
}
if(Object.keys(userObj).length !==0){
_completeOptions.push(userObj);
}
if(Object.keys(departmentGroupObj).length !==0){
_completeOptions.push(departmentGroupObj);
}
this.setState({ this.setState({
completeOptions:_completeOptions searchUserResultList:result
}) })
}); });
} }
...@@ -257,13 +235,12 @@ class NewChooseMembersModal extends React.Component { ...@@ -257,13 +235,12 @@ class NewChooseMembersModal extends React.Component {
open:false, open:false,
queryName:value queryName:value
}); });
console.log()
// props.searchUserList({queryName:value},treeType,1); // props.searchUserList({queryName:value},treeType,1);
} }
render() { render() {
const {type,treeDepType} = this.props; const {type,treeDepType} = this.props;
const {selectUserList,selectObject,visible,openSetModal} = this.state; const {selectUserList,selectObject,visible,openSetModal,searchUserResultList} = this.state;
const title = type === 'USER' ? '添加员工' : '添加学员'; const title = type === 'USER' ? '添加员工' : '添加学员';
return ( return (
<div> <div>
...@@ -298,7 +275,7 @@ class NewChooseMembersModal extends React.Component { ...@@ -298,7 +275,7 @@ class NewChooseMembersModal extends React.Component {
enterButton={<span className="icon iconfont">&#xe832;</span>} enterButton={<span className="icon iconfont">&#xe832;</span>}
/> */} /> */}
{/* {this.Complete()} */} {/* {this.Complete()} */}
<SearchUser/> <SearchUser onChange={(value)=>{this.getCompleteOptionData(value)}} data={searchUserResultList} onSelect={(record)=>{this.setState({selectUserList:[...selectUserList,...record]})}}/>
<div className='container-left-body-table'> <div className='container-left-body-table'>
<MemberTree treeDepType={treeDepType} onSelect={(record)=>{this.treeSelect(record)}} selectUserList={selectUserList}/> <MemberTree treeDepType={treeDepType} onSelect={(record)=>{this.treeSelect(record)}} selectUserList={selectUserList}/>
</div> </div>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment