selectSection.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. var app = getApp()
  2. var that;
  3. Component({
  4. mixins: [],
  5. data: {
  6. all_rule_list: {},
  7. isShow:false,
  8. terr:[
  9. {name: '全部', id:0}
  10. ],
  11. rule_tree: [],
  12. activeId:'',
  13. ids:[],
  14. },
  15. props: {
  16. onConfirm: (data) => console.log(data),
  17. onClose:(data) => console.log(data),
  18. defaultSection:'',
  19. isAll:false,
  20. selectIds:[],
  21. },
  22. didMount() {
  23. that = this;
  24. this.setData({
  25. isShow:this.props.isShow,
  26. activeId:this.props.defaultSection,
  27. ids:this.props.selectIds,
  28. terr:[{name: '全部', id:0}],
  29. selectTissue:{name:'全公司',id:''}
  30. })
  31. this.getBmData();
  32. },
  33. didUpdate() { },
  34. didUnmount() { },
  35. methods: {
  36. onConfirm(){
  37. if(!this.data.selectTissue){
  38. app.globalData.showToast("请选择部门");
  39. return;
  40. }
  41. this.props.onConfirm(this.data.selectTissue,this.data.ids);
  42. this.props.onClose();
  43. },
  44. //点击导航栏
  45. activeItem(e){
  46. var item=e.target.dataset.item;
  47. var index=e.target.dataset.index;
  48. var terr=this.data.terr;
  49. if((index+1)==terr.length){return false};
  50. this.setData({ rule_tree:[]});
  51. if(index==0){
  52. this.setData({
  53. terr:[{name: '全部', id:0}],
  54. rule_tree:this.data.all_rule_list
  55. })
  56. }else{
  57. var arr=terr.slice(0,index+1);
  58. this.setData({
  59. rule_tree:item._child,
  60. terr:arr
  61. })
  62. }
  63. },
  64. // 点击下一级
  65. openDown(e){
  66. this.setData({ rule_tree:[]});
  67. var item=e.target.dataset.item;
  68. var terr=this.data.terr;
  69. terr.push(item);
  70. if(item._child.length>0){
  71. item._child.map(item=>{
  72. if(item.id==this.props.defaultSection){
  73. item.checked=true;
  74. }
  75. })
  76. that.setData({
  77. rule_tree:item._child,
  78. terr:terr
  79. })
  80. }
  81. },
  82. radioChange: function(e) {
  83. console.log(e.target.dataset.item)
  84. let ids=[e.target.dataset.item.id];
  85. if(this.props.isAll&&e.target.dataset.item._child){
  86. this.returnArr(e.target.dataset.item._child,ids)
  87. }
  88. this.setData({
  89. ids:ids,
  90. selectTissue:e.target.dataset.item,
  91. activeId:e.target.dataset.item.id,
  92. })
  93. },
  94. returnArr(child,arr){
  95. if(child.length>0){
  96. child.forEach(item=>{
  97. arr.push(item.id)
  98. this.returnArr(item._child,arr)
  99. })
  100. }
  101. },
  102. //获取部门列表
  103. getBmData() {
  104. app.$get("api/department/tree", {}).then((res) => {
  105. var list = res.data.data.list||[];
  106. list.unshift({
  107. name:'全公司',
  108. id:''
  109. })
  110. this.setData({
  111. rule_tree: list,
  112. all_rule_list:list,
  113. })
  114. })
  115. },
  116. //关闭
  117. onClose(e) {
  118. this.props.onClose();
  119. },
  120. },
  121. });