<template> <div class=""> <div class="m-10 bg-w p-20 br-10"> <div class="f-sa-s"> <div class="f-fs-c f-col"> <div style="font-size: 16px;">总量</div> <div class="mt-4" style="font-weight: bold; font-size: 18px;"> {{ statistics.all }} </div> </div> <div class="f-fs-c f-col"> <div style="font-size: 16px;">月新增</div> <div class="mt-4" style="font-weight: bold; font-size: 18px;"> {{ statistics.month }} </div> </div> <div class="f-fs-c f-col"> <div style="font-size: 16px;">周新增</div> <div class="mt-4" style="font-weight: bold; font-size: 18px;"> {{ statistics.week }} </div> </div> </div> </div> <toolbar @on-filter="filterData" @on-reset="filterData" /> <base-table class="m-10 bg-w p-20 br-10" :columns="columns" :items="items" :pagination="pagination" :page-change="pageChange" /> </div> </template> <script> import toolbar from './toolbar'; import mxFilterList from '@/mixins/filterList'; import { getPage, getCount } from '@/api/photoer'; export default { name: 'PhotographerVerify', components: { toolbar }, mixins: [ mxFilterList({ fetchList: getPage // 在下方data再声明一个 fetchList: iGetList 同等效果 }) ], data() { return { statistics: {}, columns: [ { key: 'nickname', name: '账号昵称', minWidth: this.$col.b }, { key: 'phonenumber', name: '账号手机号码', width: this.$col.m }, { key: 'realName', name: '申请者', width: this.$col.m }, { key: 'idCardNumber', name: '身份证号', minWidth: this.$col.auto(240) }, { key: 'applyPhonenumber', name: '申请手机号码', minWidth: this.$col.m }, { key: 'logo', name: '有关图片', width: this.$col.b, render: (h, { row }) => h('img', { style: { width: '120px', height: '90px' }, class: 'pre-img', attrs: { src: row.bodyPhoto }, on: { click: () => this.$AdvanceViewImageModal({ items: [ { src: row.bodyPhoto }, { src: row.idCardFront }, { src: row.idCardBack } ] }) } }) }, { key: 'createAt', name: '申请时间', width: this.$col.b }, { key: 'auditStatus', name: '审核状态', minWidth: this.$col.s, type: 'tag', fetchTagType: val => { switch (val) { case 1: return 'success'; case 0: return 'info'; case -1: return 'danger'; default: return 'info'; } }, tagName: row => { switch (row.auditStatus) { case 1: return '通过'; case 0: return '待审核'; case -1: return '拒绝'; default: return '-'; } } }, { key: 'action', name: '操作', width: '120', render: (h, { row }) => { const action = []; action.push( h( 'el-button', { props: { type: 'text' }, on: { click: () => this.$PhotoerVerifyItemModal({ id: row.id, auditStatus: row.auditStatus }) } }, '审核' ) ); return h('div', action); } } ] }; }, created() { this.$g_on('photoer_reload', this.reload); }, beforeDestroy() { this.$g_off('photoer_reload', this.reload); }, methods: { async pageChange(page) { this.pagination.page = page; const inParams = { ...this.filter, ...this.internalFilterObj, start: this.pagination.page, limit: this.pagination.pageSize }; const { data, msg } = await this.apiList(inParams); const res2 = await getCount(inParams); this.statistics = res2.data; if ('data' in data) { const items = data.data; if (items.length === 0 && this.pagination.page > 1) { this.pageChange(1); } else { this.items = items; this.pagination.total = data.total; } this.loadCallBack(data); } } } }; </script> <style type="scss" scoped></style>