choose-org.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. /*******************************************************************************
  2. * Copyright(c) 2022 dongke All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:
  5. * 2.组织机构列表
  6. * 编辑履历:
  7. * 作者 日期 版本 修改内容
  8. * 王英杰 2024-2-12 1.00
  9. *******************************************************************************/
  10. const Constants = require('@/utils/Constants.js');
  11. const mixins = require('@/mixins/index.js')
  12. const util = require('@/utils/util.js')
  13. const app = getApp()
  14. Page({
  15. mixins: [mixins],
  16. /**
  17. * 页面的初始数据
  18. */
  19. data: {
  20. show:true,
  21. addForm: {},
  22. // 路由
  23. routeObjName: 'org',
  24. // 不分页
  25. pageFlag: false,
  26. // 一级部门
  27. tableTopData: [],
  28. // 原始数据
  29. tableDataSocial: null,
  30. },
  31. /**
  32. * @desc : 设置查询参数
  33. * @date : 2024/2/1 15:49
  34. * @author : 王英杰
  35. */
  36. setSearchParams(params) {
  37. params.pageSize = null
  38. params.currentPage = null
  39. let item = this.data.item;
  40. if (item) {
  41. params.orgId = item.editFlag ? (item.orgId_social || null) : null
  42. params.parentId = item.editFlag ? (item.parentId_social || null) : null
  43. }
  44. return params
  45. },
  46. /**
  47. * @desc : 查询
  48. * @date : 2024/2/1 15:49
  49. * @author : 王英杰
  50. */
  51. getData(params) {
  52. return this.excute(this.data.service, this.data.service.selectChooseOrg, params);
  53. },
  54. /**
  55. * @desc : 查询 后续处理
  56. * @date : 2024/2/1 15:49
  57. * @author : 王英杰
  58. */
  59. handleSearchData(data) {
  60. let tableData = util.convertToChildren(data, 'parentId', 'orgId');
  61. // // 先获取二级
  62. // let filters = data.filter(it => it.levelNo == 2);
  63. // let childs = []
  64. // if (filters && filters.length > 0) {
  65. // filters.forEach(it => {
  66. // // 再获取二级的子级,根据levelCode过滤
  67. // childs = data.filter(t => t.levelCode.startsWith(it.levelCode) && t.levelNo > 2);
  68. // it.children = childs
  69. // tableData.push(it);
  70. // })
  71. // }
  72. // let tableTopData = data.filter(it => it.levelNo == 1);
  73. this.setData({
  74. tableDataSocial: data,
  75. tableData: tableData,
  76. // tableTopData: tableTopData
  77. })
  78. const myComponent = this.selectComponent('#treeSelect');
  79. myComponent.setDataFromPage(this.data.tableData);
  80. },
  81. /**
  82. * @desc : 过滤数据
  83. * @date : 2024/4/29 15:49
  84. * @author : 周兴
  85. */
  86. filterData(e) {
  87. let searchForm = this.data.searchForm;
  88. let searchText = null;
  89. let tableDataSocial = this.data.tableDataSocial;
  90. if(!tableDataSocial)return;
  91. tableDataSocial = [...tableDataSocial]
  92. if (searchForm) {
  93. this.setData({
  94. show:false
  95. })
  96. searchForm = JSON.parse(searchForm)
  97. searchText = searchForm.searchText;
  98. if (searchText) {
  99. // 1 先过滤出数据
  100. let childs = tableDataSocial.filter(it => it.orgName.indexOf(searchText) >= 0);
  101. let returnTable = []
  102. // 如果查到,需要查出其父级
  103. if (childs && childs.length > 0) {
  104. let filters = null;
  105. let fils = null;
  106. childs.forEach(it => {
  107. filters = tableDataSocial.filter(t=>it.levelCode.startsWith(t.levelCode));
  108. if(filters && filters.length > 0){
  109. filters.forEach(f=>{
  110. delete f.children
  111. // 判断在返回结果中是否已经包括这条数据
  112. fils = returnTable.filter(c=>c.orgId == f.orgId)
  113. if(!fils || fils.length == 0){
  114. returnTable.push(f);
  115. }
  116. })
  117. }
  118. })
  119. let data = util.convertToChildren(returnTable, 'parentId', 'orgId');
  120. this.setData({
  121. tableData:data,
  122. show:true
  123. })
  124. }
  125. }else{
  126. let data = util.convertToChildren(tableDataSocial, 'parentId', 'orgId');
  127. this.setData({
  128. tableData:data,
  129. show:true
  130. })
  131. }
  132. }
  133. },
  134. /**
  135. * @desc : 选择数据
  136. * @date : 2024/4/29 15:49
  137. * @author : 周兴
  138. */
  139. chooseData(e) {
  140. let item = e.currentTarget.dataset.item
  141. const eventChannel = this.getOpenerEventChannel();
  142. eventChannel.emit('bindData', {
  143. data: {
  144. id: item.orgId,
  145. name: item.orgName
  146. }
  147. })
  148. wx.navigateBack({
  149. delta: 1
  150. })
  151. },
  152. })