selectSectionStaff_tow.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. var app = getApp()
  2. var that;
  3. Component({
  4. mixins: [],
  5. data: {
  6. userList: [],//人员集合
  7. all_user_list: [],//人员集合
  8. isShow: false,
  9. showId: 0,//显示的部门ID下员工
  10. terr: [
  11. { name: '全部', id: 0 }
  12. ],
  13. all_rule_list: [],
  14. rule_tree: [],
  15. selectUserId: [],
  16. isAllChecked: false,
  17. isItem: true,
  18. searchVal: '',
  19. },
  20. props: {
  21. onClose: (data) => console.log(data),
  22. onConfirm: (data) => console.log(data),
  23. selectUser: [],
  24. isAllSelect: true,//是否多选
  25. },
  26. didMount() {
  27. that = this;
  28. // this.setData({
  29. // selectUserId: this.props.selectUser,
  30. // })
  31. this.getData(0);
  32. this.getBmData();
  33. },
  34. didUpdate() { },
  35. didUnmount() { },
  36. methods: {
  37. onConfirm() {
  38. this.props.onConfirm(this.data.selectUserId);
  39. this.onClose();
  40. },
  41. //搜索
  42. bindKeyInput(e) {
  43. var userList = this.data.userList;
  44. var items = userList.filter((item) => {
  45. return item.name.indexOf(e.detail.value) >= 0
  46. });
  47. this.setData({
  48. searchVal: items,
  49. isItem: e.detail.value ? false : true
  50. })
  51. },
  52. changeSection(e) {
  53. var item = e.target.dataset.item;
  54. var terr = this.data.terr;
  55. terr.push(item);
  56. console.log(item);
  57. if (item._child.length > 0) {
  58. that.setData({
  59. rule_tree: item._child,
  60. terr: terr,
  61. isAllChecked: false
  62. })
  63. } else {
  64. that.setData({
  65. rule_tree: [],
  66. terr: terr,
  67. isAllChecked: false
  68. })
  69. }
  70. this.getData(item.id);
  71. },
  72. //点击导航栏
  73. activeItem(e) {
  74. var item = e.target.dataset.item;
  75. var index = e.target.dataset.index;
  76. var terr = this.data.terr;
  77. if ((index + 1) == terr.length) { return false };
  78. this.setData({ rule_tree: [],userList:[],all_user_list:[] });
  79. if (index == 0) {
  80. this.setData({
  81. terr: [{ name: '全部', id: 0 }],
  82. rule_tree: this.data.all_rule_list,
  83. isAllChecked: false
  84. })
  85. } else {
  86. var arr = terr.slice(0, index + 1);
  87. this.setData({
  88. rule_tree: item._child,
  89. terr: arr,
  90. isAllChecked: false
  91. })
  92. }
  93. this.getData(item.id);
  94. },
  95. // 点击下一级
  96. openDown(e) {
  97. this.setData({ rule_tree: [] });
  98. var item = e.target.dataset.item;
  99. var terr = this.data.terr;
  100. terr.push(item);
  101. if (item._child.length > 0) {
  102. that.setData({
  103. rule_tree: item._child,
  104. terr: terr,
  105. isAllChecked: false
  106. })
  107. }
  108. this.getData(item.id);
  109. },
  110. getArrDifference(arr1, arr2) {
  111. var obj = {};
  112. arr1.concat(arr2).forEach(function (v, i, arr) {
  113. obj[v.id] = v;
  114. });
  115. return obj;
  116. },
  117. //单选择
  118. radioChange: function (e) {
  119. this.setData({
  120. selectUserId: [e.detail.value]
  121. })
  122. },
  123. //关闭
  124. onClose(e) {
  125. this.props.onClose();
  126. },
  127. //获取人员列表
  128. getData(dept_id) {
  129. app.$get("api/employee/list", { dept_id: dept_id }).then((res) => {
  130. var list = res.data.data.list;
  131. var selectUserId = this.data.selectUserId;
  132. list.map((item) => {
  133. item.checked = false;
  134. if (selectUserId.length > 0) {
  135. selectUserId.forEach(item2 => {
  136. if (item.id == item2.id) {
  137. item.checked = true;
  138. }
  139. })
  140. }
  141. })
  142. this.setData({
  143. userList: list,
  144. all_user_list: list
  145. })
  146. })
  147. },
  148. //获取部门列表
  149. getBmData(dept_id) {
  150. app.$get("api/department/tree", {}).then((res) => {
  151. var list = res.data.data.list;
  152. this.setData({
  153. rule_tree: list,
  154. all_rule_list: list
  155. })
  156. })
  157. },
  158. },
  159. });