index.vue 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. <!--权限管理-->
  2. <template>
  3. <div class="app-container managePermissionTemplates">
  4. <div class="managePermissionTemplates-list-page" v-if="pageType == 1">
  5. <div class="top-button-box">
  6. <p class="inquire-button-one add-button-box" @click="pageTypeClick(2)" v-hasPermi="['system:permit:add']"><i class="el-icon-plus"></i>新增</p>
  7. <p class="text-p">管理员在给人员分配权限时,可以直接复制模板中已经设置的权限。</p>
  8. </div>
  9. <el-table v-loading="loading" border :data="dataList" ref="multipleTable">
  10. <el-table-column label="序号" width="132" align="center" type="index"/>
  11. <el-table-column label="权限模板名称" align="left" prop="name" show-overflow-tooltip>
  12. <template slot-scope="scope">
  13. <span style="color:#0183FA;">{{scope.row.name}}</span>
  14. </template>
  15. </el-table-column>
  16. <el-table-column label="权限模板说明" align="left" prop="remark" show-overflow-tooltip width="595"/>
  17. <el-table-column label="创建日期" align="left" prop="createTime" show-overflow-tooltip width="157"/>
  18. <el-table-column label="操作" align="left" width="160" class-name="small-padding fixed-width" v-if="tableButtonType">
  19. <template slot-scope="scope">
  20. <div class="button-box">
  21. <p class="table-min-button" @click="editButton(scope.row)" v-hasPermi="['system:permit:edit']">修改</p>
  22. <p class="table-min-button" @click="delButton(scope.row)" v-hasPermi="['system:permit:remove']">删除</p>
  23. </div>
  24. </template>
  25. </el-table-column>
  26. </el-table>
  27. <pagination
  28. style="margin-top:20px!important;"
  29. v-show="total>0"
  30. :total="total"
  31. layout="total, sizes, prev, pager, next, jumper"
  32. :page.sync="queryParams.pageNum"
  33. :limit.sync="queryParams.pageSize"
  34. @pagination="getPermitList"
  35. />
  36. </div>
  37. <add-page v-if="pageType == 2" :propsData="propsData"></add-page>
  38. </div>
  39. </template>
  40. <script>
  41. import addPage from "./addPage.vue"
  42. import { getPermitList, delSystemPermit, getPermitInfo } from "@/api/laboratory/managePermissionTemplates";
  43. export default {
  44. name: "managePermissionTemplates",
  45. components: {
  46. addPage
  47. },
  48. data() {
  49. return {
  50. tableButtonType:this.hasPermiDom(['system:permit:edit','system:permit:remove']),
  51. pageType:1,
  52. loading:false,
  53. // 查询参数
  54. queryParams: {
  55. pageNum: 1,
  56. pageSize:20,
  57. },
  58. total:0,
  59. //数据列表
  60. dataList:[],
  61. //组件传输数据
  62. propsData:{},
  63. }
  64. },
  65. created() {
  66. },
  67. mounted(){
  68. this.getPermitList();
  69. },
  70. methods:{
  71. //编辑按钮
  72. editButton(row){
  73. getPermitInfo(row.id).then(response => {
  74. this.propsData = response.data;
  75. this.pageType = 2;
  76. });
  77. },
  78. //删除按钮
  79. delButton(row){
  80. let self = this;
  81. this.$confirm('是否确认删除?', "警告", {
  82. confirmButtonText: "确定",
  83. cancelButtonText: "取消",
  84. type: "warning"
  85. }).then(function() {
  86. delSystemPermit(row.id).then(response => {
  87. self.msgSuccess(response.msg)
  88. self.getPermitList()
  89. });
  90. }).then(() => {}).catch(() => {});
  91. },
  92. //获取列表接口
  93. getPermitList(){
  94. this.loading = true;
  95. getPermitList(this.queryParams).then(response => {
  96. this.$set(this,'dataList',response.rows);
  97. this.$set(this,'total',response.total);
  98. this.loading = false;
  99. });
  100. },
  101. // 页面状态切换
  102. pageTypeClick(type){
  103. if(this.pageType != type){
  104. if(type == 1){
  105. this.pageType = 1;
  106. this.getPermitList();
  107. }else if(type == 2){
  108. this.propsData = {};
  109. this.pageType = 2;
  110. }
  111. }
  112. },
  113. //获取数据列表
  114. getList() {
  115. this.loading = true;
  116. listUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
  117. this.$set(this,'dataList',response.rows);
  118. this.total = response.total;
  119. this.loading = false;
  120. }
  121. );
  122. },
  123. },
  124. }
  125. </script>
  126. <style scoped lang="scss">
  127. .managePermissionTemplates{
  128. display: flex!important;
  129. flex-direction: column;
  130. overflow: hidden;
  131. *{
  132. margin:0;
  133. }
  134. .managePermissionTemplates-list-page{
  135. padding:20px!important;
  136. box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.1);
  137. flex:1;
  138. display: flex;
  139. flex-direction: column;
  140. overflow: hidden;
  141. .top-button-box{
  142. display: flex;
  143. font-size:14px;
  144. margin-bottom:20px;
  145. .add-button-box{
  146. width:120px;
  147. }
  148. .text-p{
  149. margin-left:24px;
  150. flex:1;
  151. line-height:40px;
  152. color: #999999;
  153. }
  154. }
  155. .button-box{
  156. display: flex;
  157. }
  158. }
  159. }
  160. </style>