visitorUser.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. <template>
  2. <div class="app-container calendar-list-container">
  3. <!-- 查询和其他操作 -->
  4. <div class="filter-container">
  5. <el-button class="filter-item" type="primary" :loading="downloadLoading" v-waves icon="el-icon-download" @click="handleDownload">导出</el-button>
  6. </div>
  7. <!-- 查询结果 -->
  8. <el-table size="small" :data="list" v-loading="listLoading" element-loading-text="正在查询中。。。" border fit highlight-current-row>
  9. <!--<el-table-column align="center" width="100px" label="用户ID" prop="id" sortable>
  10. </el-table-column>-->
  11. <el-table-column type="index" label="序号" header-align="center" align="center">
  12. </el-table-column>
  13. <el-table-column align="center" min-width="100px" label="头像" prop="photo">
  14. <template slot-scope="scope">
  15. <img :src="scope.row.photo" style="width: 50px;height: 50px;border-radius: 50%"/>
  16. </template>
  17. </el-table-column>
  18. <el-table-column align="center" min-width="100px" label="用户名" prop="userName">
  19. </el-table-column>
  20. <el-table-column align="center" min-width="50px" label="性别" prop="gender">
  21. </el-table-column>
  22. <el-table-column align="center" min-width="100px" label="手机号" prop="phone">
  23. </el-table-column>
  24. <el-table-column align="center" min-width="100px" label="邮箱" prop="email">
  25. </el-table-column>
  26. <el-table-column align="center" min-width="100px" label="角色" prop="roleType">
  27. </el-table-column>
  28. <!--<el-table-column align="center" label="操作" width="200" class-name="small-padding fixed-width">
  29. <template slot-scope="scope">
  30. <router-link ref='tag' :to="{path:'/user/userDetail',query: {'id': scope.row.id}}">
  31. <el-button class="filter-item" type="primary" size="mini" style="width: inherit;" v-waves icon="el-icon-search">用户详情</el-button>
  32. </router-link>
  33. </template>
  34. </el-table-column>-->
  35. </el-table>
  36. <!-- 分页 -->
  37. <div class="pagination-container">
  38. <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="listQuery.page"
  39. :page-sizes="[10,20,30,50]" :page-size="listQuery.limit" layout="total, sizes, prev, pager, next, jumper" :total="total">
  40. </el-pagination>
  41. </div>
  42. </div>
  43. </template>
  44. <script>
  45. import { fetYKList } from '@/api/user'
  46. import waves from '@/directive/waves' // 水波纹指令
  47. export default {
  48. name: 'visitorUser',
  49. directives: {
  50. waves
  51. },
  52. data() {
  53. return {
  54. list: null,
  55. total: null,
  56. listLoading: true,
  57. listQuery: {
  58. page: 1,
  59. limit: 20,
  60. userName: undefined,
  61. roleType: undefined,
  62. sort: '+id'
  63. },
  64. dialogFormVisible: false,
  65. dialogStatus: '',
  66. downloadLoading: false
  67. }
  68. },
  69. created() {
  70. this.getList()
  71. },
  72. methods: {
  73. getList() {
  74. this.listLoading = true
  75. fetYKList(this.listQuery).then(response => {
  76. this.list = response.data.data.items
  77. console.log(this.list)
  78. this.total = response.data.data.total
  79. this.listLoading = false
  80. }).catch(() => {
  81. debugger
  82. this.list = []
  83. this.total = 0
  84. this.listLoading = false
  85. })
  86. },
  87. handleFilter() {
  88. this.listQuery.page = 1
  89. this.getList()
  90. },
  91. handleSizeChange(val) {
  92. this.listQuery.limit = val
  93. this.getList()
  94. },
  95. handleCurrentChange(val) {
  96. this.listQuery.page = val
  97. this.getList()
  98. },
  99. handleDownload() {
  100. this.downloadLoading = true
  101. import('@/vendor/Export2Excel').then(excel => {
  102. const tHeader = ['用户名', '性别', '角色']
  103. const filterVal = ['userName','gender', 'roleType']
  104. excel.export_json_to_excel2(tHeader, this.list, filterVal, '游客用户信息')
  105. this.downloadLoading = false
  106. })
  107. }
  108. }
  109. }
  110. </script>