selectSection.js 2.4 KB

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