plm前端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

194 lines
5.6 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. <template>
  2. <div class="mod-role">
  3. <el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
  4. <el-form-item>
  5. <el-input v-model="dataForm.roleName" placeholder="权限集名称" clearable></el-input>
  6. </el-form-item>
  7. <el-form-item>
  8. <el-button type="primary" @click="getDataList()">{{buttons.search ||'查询' }}</el-button>
  9. <el-button v-if="isAuth('sys:role:save')" type="primary" @click="addOrUpdateHandle()"> {{buttons.add|| '新增'}}</el-button>
  10. </el-form-item>
  11. </el-form>
  12. <el-table
  13. :data="dataList"
  14. border
  15. v-loading="dataListLoading"
  16. @selection-change="selectionChangeHandle"
  17. style="width: 100%;">
  18. <el-table-column
  19. prop="roleName"
  20. header-align="center"
  21. align="center"
  22. :label="buttons.roleName||'权限集名称'">
  23. </el-table-column>
  24. <el-table-column
  25. prop="remark"
  26. header-align="center"
  27. align="center"
  28. :label="buttons.remark||'备注'">
  29. </el-table-column>
  30. <el-table-column
  31. prop="createTime"
  32. header-align="center"
  33. align="center"
  34. width="180"
  35. :label="buttons.createTime||'创建时间'">
  36. </el-table-column>
  37. <el-table-column
  38. fixed="right"
  39. header-align="center"
  40. align="center"
  41. width="150"
  42. :label="buttons.cz||'操作'">
  43. <template slot-scope="scope">
  44. <a v-if="isAuth('sys:role:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.roleId)">{{buttons.edit||'修改'}}</a>
  45. <a v-if="isAuth('sys:role:delete')" type="text" size="small" @click="deleteHandle(scope.row.roleId)">{{buttons.delete|| '删除'}}</a>
  46. </template>
  47. </el-table-column>
  48. </el-table>
  49. <el-pagination
  50. @size-change="sizeChangeHandle"
  51. @current-change="currentChangeHandle"
  52. :current-page="pageIndex"
  53. :page-sizes="[20, 50, 100, 200,500]"
  54. :page-size="pageSize"
  55. :total="totalPage"
  56. layout="total, sizes, prev, pager, next, jumper">
  57. </el-pagination>
  58. <!-- 弹窗, 新增 / 修改 -->
  59. <add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
  60. </div>
  61. </template>
  62. <script>
  63. import {
  64. searchSysLanguageParam,
  65. searchFunctionButtonList,
  66. saveButtonList,
  67. } from "@/api/sysLanguage.js"
  68. import AddOrUpdate from './role-add-or-update'
  69. export default {
  70. data () {
  71. return {
  72. dataForm: {
  73. roleName: ''
  74. },
  75. dataList: [],
  76. pageIndex: 1,
  77. pageSize: 20,
  78. totalPage: 0,
  79. dataListLoading: false,
  80. dataListSelections: [],
  81. addOrUpdateVisible: false,
  82. buttons: {
  83. cz: '操作',
  84. search: '查询',
  85. add: '添加',
  86. edit: '编辑',
  87. delete: '删除',
  88. reportRole:'报表赋权',
  89. roleName: '权限集名称',
  90. remark: '备注',
  91. createTime: '创建时间',
  92. },
  93. }
  94. },
  95. components: {
  96. AddOrUpdate,
  97. },
  98. activated () {
  99. this.getDataList()
  100. },
  101. methods: {
  102. // 获取button的词典
  103. getFunctionButtonList() {
  104. let queryButton = {
  105. functionId: this.$route.meta.menuId,
  106. tableId: '*',
  107. languageCode: this.$i18n.locale,
  108. objectType: 'button'
  109. }
  110. searchFunctionButtonList(queryButton).then(({data}) => {
  111. if (data.code == 0 && data.data) {
  112. this.buttons = data.data
  113. }
  114. })
  115. },
  116. // 获取数据列表
  117. getDataList () {
  118. this.dataListLoading = true
  119. this.$http({
  120. url: this.$http.adornUrl('/sys/role/list'),
  121. method: 'get',
  122. params: this.$http.adornParams({
  123. 'page': this.pageIndex,
  124. 'limit': this.pageSize,
  125. 'roleName': this.dataForm.roleName
  126. })
  127. }).then(({data}) => {
  128. if (data && data.code === 0) {
  129. this.dataList = data.page.list
  130. this.totalPage = data.page.totalCount
  131. } else {
  132. this.dataList = []
  133. this.totalPage = 0
  134. }
  135. this.dataListLoading = false
  136. })
  137. },
  138. // 每页数
  139. sizeChangeHandle (val) {
  140. this.pageSize = val
  141. this.pageIndex = 1
  142. this.getDataList()
  143. },
  144. // 当前页
  145. currentChangeHandle (val) {
  146. this.pageIndex = val
  147. this.getDataList()
  148. },
  149. // 多选
  150. selectionChangeHandle (val) {
  151. this.dataListSelections = val
  152. },
  153. // 新增 / 修改
  154. addOrUpdateHandle (id) {
  155. this.addOrUpdateVisible = true
  156. this.$nextTick(() => {
  157. this.$refs.addOrUpdate.init(id)
  158. })
  159. },
  160. // 删除
  161. deleteHandle (id) {
  162. var ids = id ? [id] : this.dataListSelections.map(item => {
  163. return item.roleId
  164. })
  165. this.$confirm(`确定删除当前记录?`, '提示', {
  166. confirmButtonText: '确定',
  167. cancelButtonText: '取消',
  168. type: 'warning'
  169. }).then(() => {
  170. this.$http({
  171. url: this.$http.adornUrl('/sys/role/delete'),
  172. method: 'post',
  173. data: this.$http.adornData(ids, false)
  174. }).then(({data}) => {
  175. if (data && data.code === 0) {
  176. this.$message.success('操作成功')
  177. this.getDataList()
  178. } else {
  179. this.$message.error(data.msg)
  180. }
  181. })
  182. }).catch(() => {})
  183. },
  184. },
  185. created() {
  186. this.getFunctionButtonList()
  187. }
  188. }
  189. </script>