index.vue 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  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. <p>{{ ['正常', '禁用'][scope.row.user_status] }}</p>
  53. </template>
  54. </el-table-column>
  55. <el-table-column label="操作">
  56. <template slot-scope="scope">
  57. <el-button type="text"
  58. v-permission="'ums_worker_edit'"
  59. @click="edit(scope.row)">编辑
  60. </el-button>
  61. </template>
  62. </el-table-column>
  63. </el-table>
  64. <el-pagination
  65. class="marginT-20"
  66. @size-change="handleSizeChange"
  67. @current-change="handleCurrentChange"
  68. :hide-on-single-page="true"
  69. :current-page="page"
  70. :page-size="page_size"
  71. :page-sizes="[10, 20, 100, 200, 300, 400]"
  72. background
  73. layout="total, sizes, prev, pager, next, jumper"
  74. :total="totalCount"/>
  75. <detail v-if="detailsDialog.show"
  76. v-model="detailsDialog.show"
  77. :exData="detailsDialog.exData"
  78. @success="init"></detail>
  79. </div>
  80. </template>
  81. <script>
  82. import page from '@/mixin/page'
  83. import detail from './details'
  84. import axios from 'axios'
  85. export default {
  86. mixins: [page],
  87. components: {
  88. detail,
  89. },
  90. data () {
  91. return {
  92. detailsDialog: {
  93. show: false,
  94. exData: {}
  95. },
  96. time: [],
  97. searchForm: {
  98. user_type: '2' // 用户类型(0用户1艺人2吧台3老板)
  99. },
  100. tableData: [],
  101. tableUrl: '/v1/user/member/List'
  102. }
  103. },
  104. methods: {
  105. add () {
  106. this.detailsDialog.exData = {}
  107. this.detailsDialog.show = true
  108. },
  109. edit (row) {
  110. this.detailsDialog.exData = row
  111. this.detailsDialog.show = true
  112. }
  113. },
  114. mounted () {
  115. this.init()
  116. },
  117. }
  118. </script>
  119. <style lang="scss" scoped>
  120. .el-dropdown {
  121. margin: 0 10px;
  122. .el-dropdown-link {
  123. cursor: pointer;
  124. color: #409EFF;
  125. }
  126. }
  127. </style>