role.js 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  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. // 列表区(内容)
  11. contentList: [{ name: 'roleCode', title: '角色编码' },
  12. { name: 'remarks', title: '角色说明' }],
  13. // 弹出按钮
  14. buttonList: [{ name: 'select-functional-permissions',url:'/package-base-select/pages/select-functional-permissions/select-functional-permissions', title: '功能权限' }, { name: 'copy-add', title: '复制新增' }, { name: 'select-sensitive-data', title: '敏感数据',url:'/package-base-select/pages/select-sensitive-data/select-sensitive-data' },
  15. { name: 'collection', title: '启用/停用' }],
  16. totallength: 234999, //视图下方提醒数量
  17. selectTotallength: 12,
  18. selectlength: 5,
  19. // 路由
  20. routeObjName: 'role',
  21. tableData: [],
  22. },
  23. /**
  24. * @desc : 三点点击事件
  25. * @date : 2024/2/1 15:49
  26. * @author : 于继渤
  27. */
  28. open(e) {
  29. console.log('open', e)
  30. let name = e.detail.name
  31. let item = e.detail.item
  32. if (name === 'collection') { //启用停用
  33. this.deactivateEnable(item)
  34. }
  35. if (name === 'select-functional-permissions' || name === 'select-sensitive-data') { //功能权限 敏感
  36. let url = e.detail.url
  37. wx.navigateTo({
  38. url: url,
  39. success: function (res) {
  40. // 通过eventChannel向被打开页面传送数据
  41. let data = {
  42. formData: JSON.stringify(item),
  43. id: item.roleId,
  44. formType: Constants.formMode.edit
  45. }
  46. res.eventChannel.emit('editParams', { data: data })
  47. }
  48. })
  49. }
  50. if (name === 'copy-add') { //复制新增
  51. wx.navigateTo({
  52. url: this.data.route.add.url,
  53. events: function (e) {
  54. // 回调后,在这里给页面赋值
  55. },
  56. success: function (res) {
  57. // 通过eventChannel向被打开页面传送数据
  58. res.eventChannel.emit('params', { id: item.roleId, formMode: Constants.formMode.edit,formType: Constants.formMode.add })
  59. }
  60. })
  61. }
  62. },
  63. /**
  64. * @desc : 表单选择跳转事件
  65. * @date : 2024/2/1 15:49
  66. * @author : 于继渤
  67. */
  68. openObjPop(e) {
  69. let that = this
  70. let key = e.currentTarget.dataset.key
  71. wx.navigateTo({
  72. url: key,
  73. events: {
  74. // 回调后
  75. bindData: function (data) {
  76. let formData = JSON.parse(that.data.formData)
  77. if (data.showFlag == 'selectFunctionalPermissions') {
  78. formData.roleFunList = data.list
  79. that.setData({
  80. selectFunctionalPermissionsFlag: data.list.length > 0,
  81. formData: JSON.stringify(formData)
  82. })
  83. } else if (data.showFlag == 'selectSensitiveData') {
  84. formData.roleSensitiveList = data.list
  85. that.setData({
  86. selectSensitiveDataFlag: data.list.length > 0,
  87. formData: JSON.stringify(formData)
  88. })
  89. }
  90. }
  91. },
  92. success: function (res) {
  93. // 通过eventChannel向被打开页面传送数据
  94. let formData = JSON.parse(that.data.formData)
  95. if (that.data.formMode == Constants.formMode.edit) {
  96. console.log(that.data.id)
  97. formData['roleId'] = that.data.id
  98. }
  99. let data = {
  100. formData: JSON.stringify(formData),
  101. // formMode: Constants.formMode.edit,
  102. id: that.data.id
  103. }
  104. res.eventChannel.emit('editParams', { data: data })
  105. }
  106. })
  107. },
  108. /**
  109. * @desc : 启用停用
  110. * @date : 2024/2/1 15:49
  111. * @author : 于继渤
  112. */
  113. deactivateEnable(item) {
  114. let params = {
  115. flgValid: !item.flgValid,
  116. roleId: item.roleId
  117. }
  118. return this.excute(this.data.service, this.data.service.deactivateEnable, params).then(res => {
  119. if (res.data.code == 200) {
  120. wx.showToast({
  121. title: '操作成功',
  122. image: '/static/image/success.png',
  123. duration: 1000
  124. })
  125. this.searchData()
  126. }
  127. });
  128. },
  129. toPoint(e) {
  130. // this.setButtonList(e.detail.item)
  131. },
  132. /**
  133. * @desc : 更新三点文字信息
  134. * @date : 2024/2/1 15:49
  135. * @author : 于继渤
  136. */
  137. setButtonList(item) {
  138. let buttonList = this.data.buttonList
  139. buttonList.forEach(res => {
  140. if (res.name == 'collection' && res.flgValid) {
  141. res.title = '停用'
  142. } else if (res.name == 'collection' && !res.flgValid) {
  143. res.title = '启用'
  144. }
  145. })
  146. },
  147. /**
  148. * @desc : 新建跳转
  149. * @date : 2024/2/1 15:49
  150. * @author : 于继渤
  151. */
  152. toAdd() {
  153. wx.navigateTo({
  154. url: this.data.route.add.url,
  155. events: function (e) {
  156. // 回调后,在这里给页面赋值
  157. },
  158. success: function (res) {
  159. // 通过eventChannel向被打开页面传送数据 TODO 测试例子url是写死的,实际中,需要从route中读取
  160. res.eventChannel.emit('params', {})
  161. }
  162. })
  163. },
  164. /**
  165. * @desc : 处理接口返回数据
  166. * @date : 2024/2/1 15:49
  167. * @author : 于继渤
  168. */
  169. handleData(tableData) {
  170. tableData.forEach(res => {
  171. res.displayStatus = res.flgValid ? '启用' : '停用'
  172. res.backgroundColor = res.flgValid ? '' : 'red'
  173. })
  174. this.setData({
  175. tableData: tableData
  176. })
  177. },
  178. /**
  179. * @desc : 加载数据源
  180. * @date : 2024/2/1 15:49
  181. * @author : 于继渤
  182. */
  183. getData(params) {
  184. return this.excute(this.data.service, this.data.service.selectByCond, params);
  185. },
  186. /**
  187. * @desc : 详细页面
  188. * @date : 2024/2/1 15:49
  189. * @author : 于继渤
  190. */
  191. toDetail(e) {
  192. let roleId = e.detail.item.roleId
  193. this.setData({
  194. selectflag: true
  195. })
  196. wx.navigateTo({
  197. url: this.data.route.add.url,
  198. success: function (res) {
  199. // 通过eventChannel向被打开页面传送数据 TODO 测试例子url是写死的,实际中,需要从route中读取
  200. res.eventChannel.emit('params', { id: roleId, formMode: Constants.formMode.edit })
  201. }
  202. })
  203. },
  204. /**
  205. * 生命周期函数--监听页面加载
  206. */
  207. onLoad(options) {
  208. },
  209. })