role.vue 5.7 KB

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