selectSection.js 2.3 KB

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