123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- <template>
- <div class="app-container">
- <a-card :bordered="false">
- <SearchForm ref="searchForm" @reloadData="reloadData"/>
- <div class="table-operator">
- <a-button type="primary" icon="plus" @click="createHandler">新建</a-button>
- </div>
- <s-table
- ref="table"
- size="default"
- rowKey="id"
- :scroll="{ x: 1300 }"
- :columns="columns"
- :data="loadData"
- :alert="options.alert"
- :rowSelection="options.rowSelection"
- showPagination="true"
- >
- <span slot="status" slot-scope="text">
- <a-badge :status="text | statusTypeFilter" :text="text | statusFilter" />
- </span>
- <span slot="summary" slot-scope="text">
- <ellipsis :length="10" tooltip>{{ text }}</ellipsis>
- </span>
- <span slot="action" slot-scope="text, record">
- <template>
- <a @click="handleEdit(record)">编辑</a>
- <a-divider type="vertical" />
- <a-popconfirm
- title="确定删除这个作者?"
- @confirm="handleDelete(record)"
- @cancel="cancel"
- okText="Yes"
- cancelText="No"
- >
- <a href="#">删除</a>
- </a-popconfirm>
- </template>
- </span>
- </s-table>
- <CreateAuthorForm
- :formType="formType"
- :visible="visible"
- ref="createAuthorForm"
- @resetData="resetData"
- @refreshTable="refreshTable"
- />
- </a-card>
- </div>
- </template>
- <script>
- import { fetchList, deleteAuthor } from '@/api/author'
- import { STable, Ellipsis } from '@/components'
- import CreateAuthorForm from './modules/CreateForm'
- import SearchForm from './modules/SearchForm'
- import { filters, table } from './author-constants'
- export default {
- name: 'AuthorList',
- components: {
- STable,
- Ellipsis,
- CreateAuthorForm,
- SearchForm
- },
- filters: filters,
- data () {
- return {
- queryParam: {},
- loadData: parameter => {
- console.log('loadData.parameter', parameter)
- return fetchList(Object.assign(parameter, this.queryParam)).then(res => {
- return res
- })
- },
- options: {
- alert: {
- show: true,
- clear: () => {
- this.selectedRowKeys = []
- }
- },
- rowSelection: {
- selectedRowKeys: this.selectedRowKeys,
- onChange: this.onSelectChange
- }
- },
- columns: table.columns,
- visible: false,
- formType: 'create'
- }
- },
- created () {},
- methods: {
- createHandler () {
- this.formType = 'create'
- this.visible = true
- this.$refs.createAuthorForm.resetForm()
- },
- handleEdit (record) {
- this.$refs.createAuthorForm.handleEdit(record)
- this.formType = 'edit'
- this.visible = true
- },
- resetData (flag) {
- this.visible = flag
- this.record = null
- },
- refreshTable () {
- this.$refs.table.refresh()
- },
- reloadData (queryParam) {
- this.queryParam = queryParam
- this.refreshTable()
- },
- handleDelete (row) {
- deleteAuthor(row.id).then(res => {
- this.$notification.success({
- message: '删除成功'
- })
- this.$refs.table.refresh()
- })
- },
- cancel () {
- }
- }
- }
- </script>
- <style scoped>
- .edit-input {
- padding-right: 100px;
- }
- .cancel-btn {
- position: absolute;
- right: 15px;
- top: 10px;
- }
- .ant-upload-select-picture-card i {
- font-size: 32px;
- color: #999;
- }
- .ant-upload-select-picture-card .ant-upload-text {
- margin-top: 8px;
- color: #666;
- }
- </style>
|