123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- var app = getApp()
- var that;
- Component({
- mixins: [],
- data: {
- all_rule_list: {},
- isShow:false,
- terr:[
- {name: '全部', id:0}
- ],
- rule_tree: [],
- activeId:'',
- ids:[],
- },
- props: {
- onConfirm: (data) => console.log(data),
- onClose:(data) => console.log(data),
- defaultSection:'',
- isAll:false,
- selectIds:[],
- },
- didMount() {
- that = this;
- this.setData({
- isShow:this.props.isShow,
- activeId:this.props.defaultSection,
- ids:this.props.selectIds,
- terr:[{name: '全部', id:0}],
- selectTissue:{name:'全公司',id:''}
- })
- this.getBmData();
- },
- didUpdate() { },
- didUnmount() { },
- methods: {
- onConfirm(){
- if(!this.data.selectTissue){
- app.globalData.showToast("请选择部门");
- return;
- }
- this.props.onConfirm(this.data.selectTissue,this.data.ids);
- this.props.onClose();
- },
- //点击导航栏
- 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:[]});
- if(index==0){
- this.setData({
- terr:[{name: '全部', id:0}],
- rule_tree:this.data.all_rule_list
- })
- }else{
- var arr=terr.slice(0,index+1);
- this.setData({
- rule_tree:item._child,
- terr:arr
- })
- }
- },
- // 点击下一级
- 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){
- item._child.map(item=>{
- if(item.id==this.props.defaultSection){
- item.checked=true;
- }
- })
- that.setData({
- rule_tree:item._child,
- terr:terr
- })
- }
- },
- radioChange: function(e) {
- console.log(e.target.dataset.item)
- let ids=[e.target.dataset.item.id];
- if(this.props.isAll&&e.target.dataset.item._child){
- this.returnArr(e.target.dataset.item._child,ids)
- }
- this.setData({
- ids:ids,
- selectTissue:e.target.dataset.item,
- activeId:e.target.dataset.item.id,
- })
- },
- returnArr(child,arr){
- if(child.length>0){
- child.forEach(item=>{
- arr.push(item.id)
- this.returnArr(item._child,arr)
- })
- }
- },
- //获取部门列表
- getBmData() {
- app.$get("api/department/tree", {}).then((res) => {
- var list = res.data.data.list||[];
- list.unshift({
- name:'全公司',
- id:''
- })
- this.setData({
- rule_tree: list,
- all_rule_list:list,
- })
- })
- },
- //关闭
- onClose(e) {
- this.props.onClose();
- },
- },
- });
|