select-functional-permissions.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211
  1. const Constants = require('@/utils/Constants.js');
  2. const util = require('@/utils/util.js')
  3. const mixins = require('@/mixins/index.js')
  4. Page({
  5. mixins: [mixins],
  6. /**
  7. * 页面的初始数据
  8. */
  9. data: {
  10. routeObjName: 'roleFun',
  11. tableData: [],
  12. formData: {},
  13. pageFlag:false
  14. },
  15. /**
  16. * @desc : 全选事件
  17. * @date : 2024/2/1 15:49
  18. * @author : 于继渤
  19. */
  20. onChangeSwitch(e) {
  21. console.log(e)
  22. let formData = this.data.formData
  23. let tableData = this.data.tableData
  24. formData.checked = e.detail
  25. if (tableData && tableData.length > 0) {
  26. tableData.forEach(res => {
  27. res.checked = e.detail
  28. if (res.children && res.children.length > 0) {
  29. res.children.forEach(it => {
  30. it.checked = e.detail
  31. })
  32. }
  33. })
  34. }
  35. this.setData({
  36. formData: formData,
  37. tableData: tableData
  38. })
  39. },
  40. /**
  41. * @desc : 处理接口返回数据
  42. * @date : 2024/2/1 15:49
  43. * @author : 于继渤
  44. */
  45. handleSearchData(tableData) {
  46. console.log('处理接口返回数据',tableData)
  47. let temp = util.convertToChildren(tableData)
  48. console.log('处理接口返回数据后',temp)
  49. temp.forEach(res=>{
  50. if(!res.checked && res.children && res.children.length > 0){
  51. let childrenChecked = false
  52. let trueList = res.children.filter(item=>{
  53. return item.checked == true
  54. } )
  55. if(trueList.length > 0){
  56. childrenChecked = true
  57. }
  58. res.childrenChecked = childrenChecked
  59. }
  60. })
  61. this.setData({
  62. tableData: temp
  63. })
  64. },
  65. /**
  66. * @desc : 设置查询参数
  67. * @date : 2024/2/1 15:49
  68. * @author : 于继渤
  69. */
  70. setSearchParams(params) {
  71. if (this.data.id && this.data.id) {
  72. params.roleId = this.data.id
  73. }
  74. if (this.data.item && this.data.item.roleId) {
  75. params.roleId = this.data.item.roleId
  76. }
  77. let menuUuids = [] //没保存进数据库之前选择的数据需要回显
  78. if(this.data.chooseData && this.data.chooseData.roleFunList && this.data.chooseData.roleFunList.length > 0){
  79. this.data.chooseData.roleFunList.forEach(it=>{
  80. if(it && it.menuUuid){
  81. menuUuids.push(it.menuUuid)
  82. }
  83. })
  84. }
  85. params.menuUuids = menuUuids
  86. return params;
  87. },
  88. /**
  89. * @desc : 加载数据
  90. * @date : 2024/2/1 15:49
  91. * @author : 于继渤
  92. */
  93. getData(params) {
  94. return this.excute(this.data.service, this.data.service.getRoleFun, params);
  95. },
  96. /**
  97. * @desc : 折叠面板多选框选择事件
  98. * @date : 2024/2/1 15:49
  99. * @author : 于继渤
  100. */
  101. obtainList(e) {
  102. this.setData({
  103. tableData: e.detail.list
  104. })
  105. },
  106. /**
  107. * @desc : 保存按钮
  108. * @date : 2024/2/1 15:49
  109. * @author : 于继渤
  110. */
  111. toAdd() {
  112. let tableData = this.data.tableData
  113. //格式化数据
  114. let tableDataTemp = []
  115. tableData.forEach(res => {
  116. if (res.checked) {
  117. tableDataTemp.push({
  118. funUuid: res.funUuid,
  119. menuUuid: res.menuUuid,
  120. appCode: res.appCode
  121. })
  122. }
  123. if (res.children && res.children.length > 0) {
  124. res.children.forEach(it => {
  125. if (it.checked) {
  126. tableDataTemp.push({
  127. funUuid: it.funUuid,
  128. menuUuid: it.menuUuid,
  129. appCode: it.appCode
  130. })
  131. }
  132. })
  133. }
  134. })
  135. //功能权限跳转编辑
  136. if (this.data.formType == Constants.formMode.edit ||this.data.formType == Constants.formMode.add) {
  137. //调用接口修改权限
  138. let formData = this.data.formData
  139. formData.roleFunList = tableDataTemp
  140. formData.roleId = this.data.id
  141. this.setData({
  142. formData: JSON.stringify(this.data.formData)
  143. })
  144. let param ={}
  145. this.save(param)
  146. } else {
  147. // 给父页面传递数据
  148. const eventChannel = this.getOpenerEventChannel();
  149. eventChannel.emit('bindData', {
  150. showFlag: 'selectFunctionalPermissions',
  151. list: tableDataTemp
  152. })
  153. wx.navigateBack({
  154. delta: 1
  155. })
  156. }
  157. },
  158. /**
  159. * @desc : 处理数据
  160. * @author : 于继渤
  161. * @date : 2024/1/26 11:46
  162. */
  163. handleData(data) {
  164. var pages = getCurrentPages();
  165. var prevPage = pages[pages.length - 2]; //上一个页面
  166. prevPage.setData({
  167. refreshDataFlag:true
  168. })
  169. wx.navigateBack({
  170. delta: 1
  171. })
  172. },
  173. /**
  174. * @desc : 批量修改权限接口
  175. * @date : 2024/2/1 15:49
  176. * @author : 于继渤
  177. */
  178. saveData(params) {
  179. return this.excute(this.data.service, this.data.service.updateBatch, params);
  180. },
  181. /**
  182. * 生命周期函数--监听页面加载
  183. */
  184. onLoad(options) {
  185. //接收父页面传递的参数
  186. let that = this
  187. const eventChannel = this.getOpenerEventChannel()
  188. eventChannel.on('params', function (data) {
  189. let formData = that.data.formData
  190. formData.roleName = data.item ? data.item.roleName : data.roleName
  191. that.setData({
  192. searchForm:JSON.stringify({
  193. roleId:data.item ? data.item.roleId : (data.id ? data.id : data.roleId)
  194. }),
  195. formData: formData,
  196. id: data.item ? data.item.roleId : (data.id ? data.id : data.roleId),
  197. formType: data.item ? data.item.button.formType : data.formType
  198. })
  199. })
  200. },
  201. })