select-functional-permissions.js 6.8 KB

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