index.vue 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <template>
  2. <div class="">
  3. <toolbar @on-filter="filterData" @on-reset="filterData" />
  4. <div class="m-10 bg-w p-20 br-10">
  5. <!-- <el-button type="primary" icon="el-icon-plus" @click="handleSubmit"
  6. >新增</el-button
  7. > -->
  8. <base-table
  9. :columns="columns"
  10. :items="items"
  11. :pagination="pagination"
  12. :page-change="pageChange"
  13. />
  14. </div>
  15. </div>
  16. </template>
  17. <script>
  18. import toolbar from './toolbar';
  19. import mxFilterList from '@/mixins/filterList';
  20. import { getPage } from '@/api/system/account';
  21. export default {
  22. name: 'AccountManagement',
  23. components: { toolbar },
  24. mixins: [
  25. mxFilterList({
  26. fetchList: getPage, // 在下方data再声明一个 fetchList: iGetList 同等效果
  27. internalFilterObj: {
  28. isDel: false
  29. }
  30. })
  31. ],
  32. data() {
  33. return {
  34. columns: [
  35. {
  36. key: 'id',
  37. name: '#',
  38. width: '180'
  39. },
  40. {
  41. key: 'mobileNumber',
  42. name: '手机号码',
  43. width: '160'
  44. },
  45. {
  46. key: 'nickname',
  47. name: '昵称'
  48. },
  49. {
  50. key: 'avatarUrl',
  51. name: '头像',
  52. width: '120',
  53. render: (h, { row }) => {
  54. if (!row.avatarUrl) {
  55. return h('span', '-');
  56. }
  57. return h('img', {
  58. style: {
  59. width: '160px',
  60. height: '90px'
  61. },
  62. class: 'pre-img',
  63. attrs: {
  64. src: row.avatarUrl
  65. },
  66. on: {
  67. click: () =>
  68. this.$AdvanceViewImageModal({
  69. items: [{ src: row.avatarUrl }]
  70. })
  71. }
  72. });
  73. }
  74. },
  75. {
  76. key: 'gender',
  77. name: '性别',
  78. width: '120',
  79. type: 'tag',
  80. fetchTagType: val => 'info',
  81. tagName: row =>
  82. row.gender === '0' ? '未知' : row.gender === '1' ? '男' : '女'
  83. },
  84. {
  85. key: 'isLocked',
  86. name: '封锁状态',
  87. width: '80',
  88. type: 'tag',
  89. fetchTagType: val => (val ? 'error' : 'info'),
  90. tagName: row => (row.isLocked ? '是' : '否')
  91. },
  92. {
  93. key: 'createAt',
  94. name: '注册时间',
  95. width: this.$col.b
  96. }
  97. // {
  98. // key: 'action',
  99. // name: '操作',
  100. // width: '120'
  101. // }
  102. ]
  103. };
  104. }
  105. };
  106. </script>
  107. <style type="scss" scoped></style>