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