userAdmin.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <template>
  2. <div class="main-card__body" v-loading="pageLoading">
  3. <h1 class="main-card__title">
  4. 账户管理
  5. </h1>
  6. <el-table
  7. :data="users"
  8. stripe
  9. class="main-card__table"
  10. >
  11. <el-table-column
  12. type="index"
  13. width="50">
  14. </el-table-column>
  15. <el-table-column
  16. prop="name"
  17. label="名称"
  18. width="120">
  19. </el-table-column>
  20. <el-table-column
  21. prop="phone"
  22. label="联系方式">
  23. </el-table-column>
  24. <el-table-column
  25. prop="role"
  26. label="角色"
  27. width="100">
  28. </el-table-column>
  29. <el-table-column
  30. prop="state"
  31. label="状态"
  32. width="100">
  33. </el-table-column>
  34. <el-table-column
  35. fixed="right"
  36. label="操作"
  37. width="100">
  38. <template slot-scope="scope">
  39. <el-button @click="block(scope.row)" type="text" size="small" v-if="scope.row.isValid">封禁</el-button>
  40. <el-button @click="unblock(scope.row)" type="text" size="small" v-else>解封</el-button>
  41. </template>
  42. </el-table-column>
  43. </el-table>
  44. </div>
  45. </template>
  46. <script>
  47. export default {
  48. name: "userAdmin",
  49. layout: 'admin',
  50. data(){
  51. return{
  52. users: [],
  53. pageLoading: true
  54. }
  55. },
  56. mounted(){
  57. this.getUsers();
  58. this.pageLoading = false;
  59. },
  60. methods: {
  61. getUsers(){
  62. this.$api.$get('/admin/users').then((res) =>
  63. {
  64. console.log('users',res.data);
  65. if(res.code === 0){
  66. for(let item of res.data){
  67. if(item.isValid){
  68. item.state = '正常';
  69. }else{
  70. item.state = '封禁中';
  71. }
  72. }
  73. this.users = res.data;
  74. }else{
  75. this.$message({
  76. showClose: true,
  77. message: res.message,
  78. type: 'error'
  79. });
  80. }
  81. }
  82. ).catch((e)=>{
  83. console.log(e);
  84. });
  85. },
  86. block(row){
  87. this.$api.$put('/admin/user', {id: row.id, isValid: false}).then((res) =>
  88. {
  89. if(res.code === 0){
  90. this.$message({
  91. showClose: true,
  92. message: "已封禁用户" + row.name,
  93. type: 'success'
  94. });
  95. row.isValid = false;
  96. row.state = "封禁中"
  97. }else{
  98. this.$message({
  99. showClose: true,
  100. message: res.message,
  101. type: 'error'
  102. });
  103. }
  104. }
  105. ).catch((e)=>{
  106. console.log(e);
  107. });
  108. },
  109. unblock(row){
  110. this.$api.$put('/admin/user', {id: row.id, isValid: true}).then((res) =>
  111. {
  112. if(res.code === 0){
  113. this.$message({
  114. showClose: true,
  115. message: "已解封用户" + row.name,
  116. type: 'success'
  117. });
  118. row.isValid = true;
  119. row.state = "正常"
  120. }else{
  121. this.$message({
  122. showClose: true,
  123. message: res.message,
  124. type: 'error'
  125. });
  126. }
  127. }
  128. ).catch((e)=>{
  129. console.log(e);
  130. });
  131. }
  132. }
  133. };
  134. </script>
  135. <style lang="scss" scoped>
  136. @import '~/assets/css/person.scss';
  137. </style>