role.js 4.9 KB

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