index.vue 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <template>
  2. <div class="padding-20">
  3. <div class="search-box">
  4. <el-form
  5. ref="form"
  6. :inline="true"
  7. :model="searchForm"
  8. clearable
  9. class="mt-10">
  10. <el-form-item label="用户手机:">
  11. <el-input v-model="searchForm.user_phone" placeholder="请输入用户手机" clearable></el-input>
  12. </el-form-item>
  13. <el-form-item label="注册时间:">
  14. <el-date-picker
  15. :editable="false"
  16. v-model="time"
  17. @change="timearr => {timearr ? (searchForm.register_start_time = timearr[0] + ' 00:00:00', searchForm.register_end_time = timearr[1] + ' 23:59:59') : searchForm.register_start_time = searchForm.register_end_time = undefined}"
  18. type="daterange"
  19. value-format="yyyy-MM-dd"
  20. start-placeholder="开始时间"
  21. end-placeholder="结束时间"
  22. ></el-date-picker>
  23. </el-form-item>
  24. <el-form-item class="ml-10">
  25. <el-button icon="el-icon-search" type="primary" @click="searchSubmit">查询</el-button>
  26. </el-form-item>
  27. </el-form>
  28. </div>
  29. <el-table :data="tableData"
  30. stripe
  31. v-loading="tableLoading"
  32. fit
  33. class="marginT-10 order-table"
  34. border
  35. :max-height="vheight">
  36. <el-table-column label="ID" prop="id" width="80"></el-table-column>
  37. <el-table-column label="头像">
  38. <template slot-scope="scope">
  39. <el-image style="width: 100px; height: 100px"
  40. :src="scope.row.user_head_url"
  41. :preview-src-list="[scope.row.user_head_url]">
  42. </el-image>
  43. </template>
  44. </el-table-column>
  45. <el-table-column label="昵称" prop="user_name" width="160"></el-table-column>
  46. <el-table-column label="手机号" prop="user_phone" width="120"></el-table-column>
  47. <el-table-column label="生日" prop="user_birthday"></el-table-column>
  48. <el-table-column label="性别" prop="user_sex"></el-table-column>
  49. <el-table-column label="注册时间" prop="created_at" width="160"></el-table-column>
  50. <el-table-column label="操作">
  51. <template slot-scope="scope">
  52. <el-button type="text"
  53. v-permission="'ums_singer_edit'"
  54. @click="edit(scope.row)">编辑
  55. </el-button>
  56. </template>
  57. </el-table-column>
  58. </el-table>
  59. <el-pagination
  60. class="marginT-20"
  61. @size-change="handleSizeChange"
  62. @current-change="handleCurrentChange"
  63. :hide-on-single-page="true"
  64. :current-page="page"
  65. :page-size="page_size"
  66. :page-sizes="[10, 20, 100, 200, 300, 400]"
  67. background
  68. layout="total, sizes, prev, pager, next, jumper"
  69. :total="totalCount"/>
  70. <detail v-if="detailsDialog.show"
  71. v-model="detailsDialog.show"
  72. :exData="detailsDialog.exData"
  73. @success="init"></detail>
  74. </div>
  75. </template>
  76. <script>
  77. import page from '@/mixin/page'
  78. import detail from './details'
  79. import axios from 'axios'
  80. export default {
  81. mixins: [page],
  82. components: {
  83. detail,
  84. },
  85. data () {
  86. return {
  87. detailsDialog: {
  88. show: false,
  89. exData: {}
  90. },
  91. time: [],
  92. searchForm: {
  93. user_type: '1' // 用户类型(0用户1艺人2吧台3老板)
  94. },
  95. tableData: [],
  96. tableUrl: '/v1/user/member/List'
  97. }
  98. },
  99. methods: {
  100. add () {
  101. this.detailsDialog.exData = {}
  102. this.detailsDialog.show = true
  103. },
  104. edit (row) {
  105. this.detailsDialog.exData = row
  106. this.detailsDialog.show = true
  107. }
  108. },
  109. mounted () {
  110. this.init()
  111. },
  112. }
  113. </script>
  114. <style lang="scss" scoped>
  115. .el-dropdown {
  116. margin: 0 10px;
  117. .el-dropdown-link {
  118. cursor: pointer;
  119. color: #409EFF;
  120. }
  121. }
  122. </style>