index.vue 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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. minWidth: '240'
  39. },
  40. {
  41. key: 'mobileNumber',
  42. name: '手机号码',
  43. width: '160'
  44. },
  45. {
  46. key: 'nickname',
  47. name: '昵称',
  48. width: '140'
  49. },
  50. {
  51. key: 'avatarUrl',
  52. name: '头像',
  53. width: '120',
  54. render: (h, { row }) => {
  55. if (!row.avatarUrl) {
  56. return h('span', '图片正在处理中请稍等...');
  57. }
  58. return h('img', {
  59. style: {
  60. width: '160px',
  61. height: '90px'
  62. },
  63. class: 'pre-img',
  64. attrs: {
  65. src: row.avatarUrl
  66. },
  67. on: {
  68. click: () =>
  69. this.$AdvanceViewImageModal({
  70. items: [{ src: row.avatarUrl }]
  71. })
  72. }
  73. });
  74. }
  75. },
  76. {
  77. key: 'gender',
  78. name: '性别',
  79. width: '120',
  80. type: 'tag',
  81. fetchTagType: val => 'info',
  82. tagName: row =>
  83. row.gender === '0' ? '未知' : row.gender === '1' ? '男' : '女'
  84. },
  85. {
  86. key: 'isLocked',
  87. name: '封锁状态',
  88. width: '80',
  89. type: 'tag',
  90. fetchTagType: val => (val ? 'error' : 'info'),
  91. tagName: row => (row.isLocked ? '是' : '否')
  92. }
  93. // {
  94. // key: 'action',
  95. // name: '操作',
  96. // width: '120'
  97. // }
  98. ]
  99. };
  100. }
  101. };
  102. </script>
  103. <style type="scss" scoped></style>