selectSectionStaff_tow.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  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. userData: [],//初次显示的数据源
  18. keyVal:''
  19. },
  20. props: {
  21. onClose: (data) => console.log(data),
  22. onConfirm: (data) => console.log(data),
  23. selectUser: [],
  24. isAllSelect: true,//是否多选
  25. isLeadership: false,//是否选择领导
  26. superior_list: [],//上级交叉领导集合
  27. },
  28. didMount() {
  29. that = this;
  30. this.setData({ selectUserId: this.props.selectUser[0] ? this.props.selectUser : [] })
  31. var superior_list = this.props.superior_list;//将传进来的上级集合,转成集合里变成对象(原先是数组)【】
  32. var userData = app.globalData.userData.employee_detail;
  33. this.setData({
  34. userData: this.props.isLeadership ? userData.manage_scope : superior_list.length > 0 ? superior_list : userData.superior_list,
  35. terr: [{ name: '全部', id: 0 }]
  36. })
  37. this.getBmData();
  38. this.getData(0);
  39. },
  40. methods: {
  41. onReset() {
  42. this.setData({
  43. isVal: false,
  44. keyVal:''
  45. })
  46. },
  47. onConfirm() {
  48. this.props.onConfirm(this.data.selectUserId);
  49. this.onClose();
  50. },
  51. //搜索
  52. bindKeyInput(e) {
  53. this.setData({
  54. keyVal:e.detail.value,
  55. isVal: e.detail.value ? true : false
  56. })
  57. },
  58. changeSection(e) {
  59. var item = e.target.dataset.item;
  60. var terr = this.data.terr;
  61. terr.push(item);
  62. if (item._child.length > 0) {
  63. that.setData({
  64. rule_tree: item._child,
  65. terr: terr,
  66. isAllChecked: false
  67. })
  68. } else {
  69. that.setData({
  70. rule_tree: [],
  71. terr: terr,
  72. isAllChecked: false
  73. })
  74. }
  75. this.getData(item.id);
  76. },
  77. //点击导航栏
  78. activeItem(e) {
  79. var item = e.target.dataset.item;
  80. var index = e.target.dataset.index;
  81. var terr = this.data.terr;
  82. if ((index + 1) == terr.length) { return false };
  83. this.setData({ rule_tree: [], userList: [], all_user_list: [] });
  84. if (index == 0) {
  85. this.setData({
  86. terr: [{ name: '全部', id: 0 }],
  87. rule_tree: this.data.all_rule_list,
  88. isAllChecked: false
  89. })
  90. } else {
  91. var arr = terr.slice(0, index + 1);
  92. this.setData({
  93. rule_tree: item._child,
  94. terr: arr,
  95. isAllChecked: false
  96. })
  97. }
  98. this.getData(item.id);
  99. },
  100. // 点击下一级
  101. openDown(e) {
  102. this.setData({ rule_tree: [] });
  103. var item = e.target.dataset.item;
  104. var terr = this.data.terr;
  105. terr.push(item);
  106. if (item._child.length > 0) {
  107. that.setData({
  108. rule_tree: item._child,
  109. terr: terr,
  110. isAllChecked: false
  111. })
  112. }
  113. this.getData(item.id);
  114. },
  115. getArrDifference(arr1, arr2) {
  116. var obj = {};
  117. arr1.concat(arr2).forEach(function (v, i, arr) {
  118. obj[v.id] = v;
  119. });
  120. return obj;
  121. },
  122. //单选择
  123. bindtap1(e) {
  124. this.setData({ selectUserId: [] });
  125. var index = e.target.dataset.index;
  126. var checked = `userList[${index}].checked`;
  127. var elm = this.data.userList[index].checked;
  128. var userList = this.data.userList;
  129. userList.map((item, item_index) => {
  130. if (item.checked) {
  131. var item_checked = `userList[${item_index}].checked`;
  132. this.setData({
  133. [item_checked]: false
  134. })
  135. }
  136. })
  137. var arr = [];
  138. arr.push(e.target.dataset.item);
  139. if (!elm) {
  140. this.setData({
  141. [checked]: !elm,
  142. selectUserId: arr
  143. })
  144. } else {
  145. this.setData({
  146. [checked]: !elm,
  147. selectUserId: []
  148. })
  149. }
  150. },
  151. //关闭
  152. onClose(e) {
  153. this.props.onClose();
  154. },
  155. //获取人员列表
  156. getData(dept_id) {
  157. this.setData({ userList: [], all_user_list: [] })
  158. app.$get("api/employee/list", { dept_id: dept_id }).then((res) => {
  159. var list = res.data.data.list;
  160. var selectUserId = this.data.selectUserId;
  161. var arr = [];
  162. var ids = [];
  163. list.map((item) => {
  164. item.checked = false;
  165. if (selectUserId.length > 0) {
  166. selectUserId.forEach(item2 => {
  167. if (item.id == item2.id) {
  168. item.checked = true;
  169. ids.push(item);
  170. }
  171. })
  172. }
  173. })
  174. that.data.userData.map((item) => {
  175. list.map((item2) => {
  176. if (item.id == item2.id) {
  177. arr.push(item2);
  178. }
  179. })
  180. })
  181. this.setData({
  182. userList: arr,
  183. all_user_list: arr,
  184. selectUserId: ids.length > 0 ? ids : this.data.selectUserId
  185. })
  186. })
  187. },
  188. //获取部门列表
  189. getBmData() {
  190. app.$get("api/department/tree", {}).then((res) => {
  191. var list = res.data.data.list;
  192. this.setData({
  193. rule_tree: list,
  194. all_rule_list: list
  195. })
  196. })
  197. },
  198. },
  199. });