select-functional-permissions.js 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  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. active: 0,
  12. activeTabs: 0,
  13. tableData: [],
  14. tableDataWXP: [],
  15. tableDataWEB: [],
  16. formData: {},
  17. buttonSaveList: [{ code: 'add', title: '保存', width: '120rpx' }],
  18. pageFlag: false
  19. },
  20. /**
  21. * @desc : 全选事件
  22. * @date : 2024/2/1 15:49
  23. * @author : 于继渤
  24. */
  25. onChangeSwitch(e) {
  26. let formData = this.data.formData
  27. let tableData = this.data.tableData
  28. formData.checked = e.detail
  29. if (tableData && tableData.length > 0) {
  30. tableData.forEach(res => {
  31. res.checked = e.detail
  32. if (res.children && res.children.length > 0) {
  33. res.children.forEach(it => {
  34. it.checked = e.detail
  35. })
  36. }
  37. })
  38. }
  39. this.setData({
  40. formData: formData,
  41. tableData: tableData
  42. })
  43. },
  44. /**
  45. * @desc : 处理接口返回数据
  46. * @date : 2024/2/1 15:49
  47. * @author : 于继渤
  48. */
  49. handleSearchData(tableData) {
  50. let temp = util.convertToChildren(tableData)
  51. temp.forEach(res => {
  52. if (!res.checked && res.children && res.children.length > 0) {
  53. let childrenChecked = false
  54. let trueList = res.children.filter(item => {
  55. return item.checked == true
  56. })
  57. if (trueList.length > 0) {
  58. childrenChecked = true
  59. }
  60. res.childrenChecked = childrenChecked
  61. }
  62. })
  63. if (this.data.activeTabs == 0) {
  64. this.setData({
  65. tableDataWXP: temp
  66. })
  67. } else {
  68. this.setData({
  69. tableDataWEB: temp
  70. })
  71. }
  72. },
  73. /**
  74. * @desc : tab选择事件
  75. * @date : 2024/2/1 15:49
  76. * @author : 于继渤
  77. */
  78. onChange(e) {
  79. this.setData({
  80. activeTabs: e.detail.index
  81. })
  82. if(this.data.tableDataWEB.length == 0){
  83. this.searchData()
  84. }
  85. if(this.data.tableDataWXP.length == 0){
  86. this.searchData()
  87. }
  88. },
  89. /**
  90. * @desc : 设置查询参数
  91. * @date : 2024/2/1 15:49
  92. * @author : 于继渤
  93. */
  94. setSearchParams(params) {
  95. if (this.data.id && this.data.id) {
  96. params.roleId = this.data.id
  97. }
  98. if (this.data.item && this.data.item.roleId) {
  99. params.roleId = this.data.item.roleId
  100. }
  101. if (this.data.activeTabs == 1) {
  102. params.appCode = 'CP-WEB'
  103. } else {
  104. params.appCode = 'CP-WXP'
  105. }
  106. let menuUuids = [] //没保存进数据库之前选择的数据需要回显
  107. let chooseData = this.data.chooseData
  108. if (chooseData && chooseData.roleFunList && chooseData.roleFunList.length > 0) {
  109. chooseData.roleFunList.forEach(it => {
  110. if (it && it.menuUuid) {
  111. menuUuids.push(it.menuUuid)
  112. }
  113. })
  114. }
  115. params.menuUuids = menuUuids
  116. return params;
  117. },
  118. /**
  119. * @desc : 加载数据
  120. * @date : 2024/2/1 15:49
  121. * @author : 于继渤
  122. */
  123. getData(params) {
  124. return this.excute(this.data.service, this.data.service.getRoleFun, params);
  125. },
  126. /**
  127. * @desc : 折叠面板多选框选择事件
  128. * @date : 2024/2/1 15:49
  129. * @author : 于继渤
  130. */
  131. obtainList(e) {
  132. if (this.data.activeTabs == 0) {
  133. this.setData({
  134. tableDataWXP: e.detail.list
  135. })
  136. } else {
  137. this.setData({
  138. tableDataWEB: e.detail.list
  139. })
  140. }
  141. },
  142. /**
  143. * @desc : 保存按钮
  144. * @date : 2024/2/1 15:49
  145. * @author : 于继渤
  146. */
  147. toAdd() {
  148. let tableDataWEB = this.data.tableDataWEB
  149. let tableDataWXP = this.data.tableDataWXP
  150. //格式化数据 web
  151. let tableDataWEBTemp = []
  152. tableDataWEB.forEach(res => {
  153. if (res.checked) {
  154. tableDataWEBTemp.push({
  155. funUuid: res.funUuid,
  156. menuUuid: res.menuUuid,
  157. appCode: 'CP-WEB'
  158. })
  159. }
  160. if (res.children && res.children.length > 0) {
  161. res.children.forEach(it => {
  162. if (it.checked) {
  163. tableDataWEBTemp.push({
  164. funUuid: it.funUuid,
  165. menuUuid: it.menuUuid,
  166. appCode: 'CP-WEB'
  167. })
  168. }
  169. if (it.children && it.children.length > 0) {
  170. it.children.forEach(itt => {
  171. if (itt.checked) {
  172. tableDataWEBTemp.push({
  173. funUuid: itt.funUuid,
  174. menuUuid: itt.menuUuid,
  175. appCode: 'CP-WEB'
  176. })
  177. }
  178. })
  179. }
  180. })
  181. }
  182. })
  183. //格式化数据 小程序
  184. let tableDataWXPTemp = []
  185. tableDataWXP.forEach(res => {
  186. if (res.checked) {
  187. tableDataWXPTemp.push({
  188. funUuid: res.funUuid,
  189. menuUuid: res.menuUuid,
  190. appCode: 'CP-WXP'
  191. })
  192. }
  193. if (res.children && res.children.length > 0) {
  194. res.children.forEach(it => {
  195. if (it.checked) {
  196. tableDataWXPTemp.push({
  197. funUuid: it.funUuid,
  198. menuUuid: it.menuUuid,
  199. appCode: 'CP-WXP'
  200. })
  201. }
  202. })
  203. }
  204. })
  205. //功能权限跳转编辑
  206. let list = tableDataWXPTemp.concat(tableDataWEBTemp)
  207. if (this.data.formType == Constants.formMode.edit || this.data.formType == Constants.formMode.add) {
  208. //调用接口修改权限
  209. let formData = this.data.formData
  210. formData.roleFunList = list
  211. formData.roleId = this.data.id
  212. this.setData({
  213. formData: JSON.stringify(this.data.formData)
  214. })
  215. let param = {}
  216. this.save(param)
  217. } else {
  218. // 给父页面传递数据
  219. const eventChannel = this.getOpenerEventChannel();
  220. eventChannel.emit('bindData', {
  221. showFlag: 'selectFunctionalPermissions',
  222. list: list
  223. })
  224. wx.navigateBack({
  225. delta: 1
  226. })
  227. }
  228. },
  229. /**
  230. * @desc : 处理数据
  231. * @author : 于继渤
  232. * @date : 2024/1/26 11:46
  233. */
  234. handleData(data) {
  235. },
  236. /**
  237. * @desc : 批量修改权限接口
  238. * @date : 2024/2/1 15:49
  239. * @author : 于继渤
  240. */
  241. saveData(params) {
  242. return this.excute(this.data.service, this.data.service.updateBatch, params);
  243. },
  244. /**
  245. * 生命周期函数--监听页面加载
  246. */
  247. onLoad(options) {
  248. //接收父页面传递的参数
  249. let that = this
  250. const eventChannel = this.getOpenerEventChannel()
  251. eventChannel.on('params', function (data) {
  252. let formData = that.data.formData
  253. formData.roleName = data.item ? data.item.roleName : data.roleName
  254. that.setData({
  255. searchForm: JSON.stringify({
  256. roleId: data.item ? data.item.roleId : (data.id ? data.id : data.roleId)
  257. }),
  258. formData: formData,
  259. id: data.item ? data.item.roleId : (data.id ? data.id : data.roleId),
  260. formType: data.item ? data.item.button.formType : data.formType
  261. })
  262. })
  263. },
  264. })