var app = getApp() var that; Component({ mixins: [], data: { userList: [],//人员集合 all_user_list: [],//人员集合 isShow: false, showId: 0,//显示的部门ID下员工 terr: [ { name: '全部', id: 0 } ], all_rule_list: [], rule_tree: [], selectUserId: [], isAllChecked: false, isItem: true, searchVal: [], userData:[] }, props: { onClose: (data) => console.log(data), onConfirm: (data) => console.log(data), selectUser: [], isAllSelect: true,//是否多选 isLeadership:false,//是否选择领导 superior_list:[],//上级交叉领导集合 }, didMount() { that = this; if(this.props.selectUser.length>0){//当有默认的审批人 var arr=app.globalData.userData.employee_detail.superior_list; arr.forEach(item=>{ if(item.id==this.props.selectUser[0].id){ this.setData({selectUserId:[item]}) } }) } var superior_list=[];//将传进来的上级集合,转成集合里变成对象(原先是对象) this.props.superior_list.forEach(item=>{ superior_list.push({id:item}); }) var userData=app.globalData.userData.employee_detail; this.setData({ userData:this.props.isLeadership ? userData.manage_scope:superior_list.length>0? superior_list:userData.superior_list , terr:[{name: '全部', id:0}] }) this.getBmData(); this.getData(0); }, didUpdate() { }, didUnmount() { }, methods: { onConfirm() { this.props.onConfirm(this.data.selectUserId); this.onClose(); }, //搜索 bindKeyInput(e) { var userList = this.data.userList; var items = userList.filter((item) => { return item.name.indexOf(e.detail.value) >= 0 }); this.setData({ searchVal: items, isItem: e.detail.value ? false : true }) }, changeSection(e) { var item = e.target.dataset.item; var terr = this.data.terr; terr.push(item); if (item._child.length > 0) { that.setData({ rule_tree: item._child, terr: terr, isAllChecked: false }) } else { that.setData({ rule_tree: [], terr: terr, isAllChecked: false }) } this.getData(item.id); }, //点击导航栏 activeItem(e) { var item = e.target.dataset.item; var index = e.target.dataset.index; var terr = this.data.terr; if ((index + 1) == terr.length) { return false }; this.setData({ rule_tree: [],userList:[],all_user_list:[] }); if (index == 0) { this.setData({ terr: [{ name: '全部', id: 0 }], rule_tree: this.data.all_rule_list, isAllChecked: false }) } else { var arr = terr.slice(0, index + 1); this.setData({ rule_tree: item._child, terr: arr, isAllChecked: false }) } this.getData(item.id); }, // 点击下一级 openDown(e) { this.setData({ rule_tree: [] }); var item = e.target.dataset.item; var terr = this.data.terr; terr.push(item); if (item._child.length > 0) { that.setData({ rule_tree: item._child, terr: terr, isAllChecked: false }) } this.getData(item.id); }, getArrDifference(arr1, arr2) { var obj = {}; arr1.concat(arr2).forEach(function (v, i, arr) { obj[v.id] = v; }); return obj; }, //单选择 bindtap1(e){ this.setData({selectUserId: []}); var index = e.target.dataset.index; var checked = `userList[${index}].checked`; var elm=this.data.userList[index].checked; var userList = this.data.userList; userList.map((item,item_index) => { if(item.checked){ var item_checked = `userList[${item_index}].checked`; this.setData({ [item_checked]:false }) } }) var arr=[]; arr.push(e.target.dataset.item); if(!elm){ this.setData({ [checked]:!elm, selectUserId:arr }) }else{ this.setData({ [checked]:!elm, selectUserId: [] }) } }, bindtap2(e){ var index = e.target.dataset.index; var checked = `searchVal[${index}].checked`; var elm=this.data.searchVal[index].checked; var searchVal = this.data.searchVal; searchVal.map((item,item_index) => { if(item.checked){ var item_checked = `searchVal[${item_index}].checked`; this.setData({ [item_checked]:false }) } }) if(!elm){ this.setData({ [checked]:!elm, selectUserId: [e.target.dataset.item] }) }else{ this.setData({ [checked]:!elm, selectUserId: [] }) } }, //单选择 radioChange: function (e) { // console.log(e.detail.value); this.setData({ }) }, //关闭 onClose(e) { this.props.onClose(); }, //获取人员列表 getData(dept_id) { this.setData({ userList: [], all_user_list: [] }) app.$get("api/employee/list", { dept_id: dept_id }).then((res) => { var list = res.data.data.list; var selectUserId = this.data.selectUserId; var arr=[]; var ids=[]; list.map((item) => { item.checked = false; if (selectUserId.length > 0) { selectUserId.forEach(item2 => { if (item.id == item2.id) { item.checked = true; ids.push(item); } }) } }) that.data.userData.map((item)=>{ list.map((item2)=>{ if(item.id==item2.id){ arr.push(item2); } }) }) this.setData({ userList: arr, all_user_list: arr, selectUserId:ids.length>0? ids:this.data.selectUserId }) }) }, //获取部门列表 getBmData(dept_id) { app.$get("api/department/tree", {}).then((res) => { var list = res.data.data.list; this.setData({ rule_tree: list, all_rule_list: list }) }) }, }, });