You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
250 lines
6.8 KiB
250 lines
6.8 KiB
<template> |
|
<a-card> |
|
<div :class="advanced ? 'search' : null"> |
|
<a-form layout="horizontal"> |
|
<div :class="advanced ? null: 'fold'"> |
|
<a-row > |
|
<a-col :md="8" :sm="24" > |
|
<a-form-item |
|
label="规则编号" |
|
:labelCol="{span: 5}" |
|
:wrapperCol="{span: 18, offset: 1}" |
|
> |
|
<a-input placeholder="请输入" /> |
|
</a-form-item> |
|
</a-col> |
|
<a-col :md="8" :sm="24" > |
|
<a-form-item |
|
label="使用状态" |
|
:labelCol="{span: 5}" |
|
:wrapperCol="{span: 18, offset: 1}" |
|
> |
|
<a-select placeholder="请选择"> |
|
<a-select-option value="1">关闭</a-select-option> |
|
<a-select-option value="2">运行中</a-select-option> |
|
</a-select> |
|
</a-form-item> |
|
</a-col> |
|
<a-col :md="8" :sm="24" > |
|
<a-form-item |
|
label="调用次数" |
|
:labelCol="{span: 5}" |
|
:wrapperCol="{span: 18, offset: 1}" |
|
> |
|
<a-input-number style="width: 100%" placeholder="请输入" /> |
|
</a-form-item> |
|
</a-col> |
|
</a-row> |
|
<a-row v-if="advanced"> |
|
<a-col :md="8" :sm="24" > |
|
<a-form-item |
|
label="更新日期" |
|
:labelCol="{span: 5}" |
|
:wrapperCol="{span: 18, offset: 1}" |
|
> |
|
<a-date-picker style="width: 100%" placeholder="请输入更新日期" /> |
|
</a-form-item> |
|
</a-col> |
|
<a-col :md="8" :sm="24" > |
|
<a-form-item |
|
label="使用状态" |
|
:labelCol="{span: 5}" |
|
:wrapperCol="{span: 18, offset: 1}" |
|
> |
|
<a-select placeholder="请选择"> |
|
<a-select-option value="1">关闭</a-select-option> |
|
<a-select-option value="2">运行中</a-select-option> |
|
</a-select> |
|
</a-form-item> |
|
</a-col> |
|
<a-col :md="8" :sm="24" > |
|
<a-form-item |
|
label="描述" |
|
:labelCol="{span: 5}" |
|
:wrapperCol="{span: 18, offset: 1}" |
|
> |
|
<a-input placeholder="请输入" /> |
|
</a-form-item> |
|
</a-col> |
|
</a-row> |
|
</div> |
|
<span style="float: right; margin-top: 3px;"> |
|
<a-button type="primary">查询</a-button> |
|
<a-button style="margin-left: 8px">重置</a-button> |
|
<a @click="toggleAdvanced" style="margin-left: 8px"> |
|
{{advanced ? '收起' : '展开'}} |
|
<a-icon :type="advanced ? 'up' : 'down'" /> |
|
</a> |
|
</span> |
|
</a-form> |
|
</div> |
|
<div> |
|
<a-space class="operator"> |
|
<a-button @click="addNew" type="primary">新建</a-button> |
|
<a-button >批量操作</a-button> |
|
<a-dropdown> |
|
<a-menu @click="handleMenuClick" slot="overlay"> |
|
<a-menu-item key="delete">删除</a-menu-item> |
|
<a-menu-item key="audit">审批</a-menu-item> |
|
</a-menu> |
|
<a-button> |
|
更多操作 <a-icon type="down" /> |
|
</a-button> |
|
</a-dropdown> |
|
</a-space> |
|
<standard-table |
|
:columns="columns" |
|
:dataSource="dataSource" |
|
:selectedRows.sync="selectedRows" |
|
@clear="onClear" |
|
@change="onChange" |
|
@selectedRowChange="onSelectChange" |
|
> |
|
<div slot="description" slot-scope="{text}"> |
|
{{text}} |
|
</div> |
|
<div slot="action" slot-scope="{text, record}"> |
|
<a style="margin-right: 8px"> |
|
<a-icon type="plus"/>新增 |
|
</a> |
|
<a style="margin-right: 8px"> |
|
<a-icon type="edit"/>编辑 |
|
</a> |
|
<a @click="deleteRecord(record.key)"> |
|
<a-icon type="delete" />删除1 |
|
</a> |
|
<a @click="deleteRecord(record.key)" v-auth="`delete`"> |
|
<a-icon type="delete" />删除2 |
|
</a> |
|
<router-link :to="`/list/query/detail/${record.key}`" >详情</router-link> |
|
</div> |
|
<template slot="statusTitle"> |
|
<a-icon @click.native="onStatusTitleClick" type="info-circle" /> |
|
</template> |
|
</standard-table> |
|
</div> |
|
</a-card> |
|
</template> |
|
|
|
<script> |
|
import StandardTable from '@/components/table/StandardTable' |
|
const columns = [ |
|
{ |
|
title: '规则编号', |
|
dataIndex: 'no' |
|
}, |
|
{ |
|
title: '描述', |
|
dataIndex: 'description', |
|
scopedSlots: { customRender: 'description' } |
|
}, |
|
{ |
|
title: '服务调用次数', |
|
dataIndex: 'callNo', |
|
sorter: true, |
|
needTotal: true, |
|
customRender: (text) => text + ' 次' |
|
}, |
|
{ |
|
dataIndex: 'status', |
|
needTotal: true, |
|
slots: {title: 'statusTitle'} |
|
}, |
|
{ |
|
title: '更新时间', |
|
dataIndex: 'updatedAt', |
|
sorter: true |
|
}, |
|
{ |
|
title: '操作', |
|
scopedSlots: { customRender: 'action' } |
|
} |
|
] |
|
|
|
const dataSource = [] |
|
|
|
for (let i = 0; i < 100; i++) { |
|
dataSource.push({ |
|
key: i, |
|
no: 'NO ' + i, |
|
description: '这是一段描述', |
|
callNo: Math.floor(Math.random() * 1000), |
|
status: Math.floor(Math.random() * 10) % 4, |
|
updatedAt: '2018-07-26' |
|
}) |
|
} |
|
|
|
export default { |
|
name: 'QueryList', |
|
components: {StandardTable}, |
|
data () { |
|
return { |
|
advanced: true, |
|
columns: columns, |
|
dataSource: dataSource, |
|
selectedRows: [] |
|
} |
|
}, |
|
authorize: { |
|
deleteRecord: 'delete' |
|
}, |
|
methods: { |
|
deleteRecord(key) { |
|
this.dataSource = this.dataSource.filter(item => item.key !== key) |
|
this.selectedRows = this.selectedRows.filter(item => item.key !== key) |
|
}, |
|
toggleAdvanced () { |
|
this.advanced = !this.advanced |
|
}, |
|
remove () { |
|
this.dataSource = this.dataSource.filter(item => this.selectedRows.findIndex(row => row.key === item.key) === -1) |
|
this.selectedRows = [] |
|
}, |
|
onClear() { |
|
this.$message.info('您清空了勾选的所有行') |
|
}, |
|
onStatusTitleClick() { |
|
this.$message.info('你点击了状态栏表头') |
|
}, |
|
onChange() { |
|
this.$message.info('表格状态改变了') |
|
}, |
|
onSelectChange() { |
|
this.$message.info('选中行改变了') |
|
}, |
|
addNew () { |
|
this.dataSource.unshift({ |
|
key: this.dataSource.length, |
|
no: 'NO ' + this.dataSource.length, |
|
description: '这是一段描述', |
|
callNo: Math.floor(Math.random() * 1000), |
|
status: Math.floor(Math.random() * 10) % 4, |
|
updatedAt: '2018-07-26' |
|
}) |
|
}, |
|
handleMenuClick (e) { |
|
if (e.key === 'delete') { |
|
this.remove() |
|
} |
|
} |
|
} |
|
} |
|
</script> |
|
|
|
<style lang="less" scoped> |
|
.search{ |
|
margin-bottom: 54px; |
|
} |
|
.fold{ |
|
width: calc(100% - 216px); |
|
display: inline-block |
|
} |
|
.operator{ |
|
margin-bottom: 18px; |
|
} |
|
@media screen and (max-width: 900px) { |
|
.fold { |
|
width: 100%; |
|
} |
|
} |
|
</style>
|
|
|