selectSection.js 2.3 KB

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