selectSectionStaff_tow.js 6.5 KB

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