193 lines
4.5 KiB
Vue
193 lines
4.5 KiB
Vue
|
|
|
|
<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-date-picker style="width: 100%" placeholder="请输入单据日期" />
|
|
</a-form-item>
|
|
</a-col>
|
|
<span style="float: right; margin-top: 3px;">
|
|
<a-button type="primary">查询</a-button>
|
|
<a-button style="margin-left: 8px">重置</a-button>
|
|
</span>
|
|
</a-row>
|
|
</div>
|
|
</a-form>
|
|
<a-space class="operator">
|
|
<a-button @click="addNew" type="primary">新建</a-button>
|
|
</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="edit"/>编辑
|
|
</a>
|
|
<a @click="deleteRecord(record.key)">
|
|
<a-icon type="delete" />删除
|
|
</a>
|
|
</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: 'position',
|
|
scopedSlots: { customRender: 'position' }
|
|
},
|
|
{
|
|
title: '布产数量',
|
|
dataIndex: 'procedure',
|
|
scopedSlots: { customRender: 'position' }
|
|
},
|
|
{
|
|
title: '工艺路线',
|
|
dataIndex: 'updatedAt',
|
|
sorter: true
|
|
},
|
|
{
|
|
title: '成型方式',
|
|
dataIndex: 'updatedAt',
|
|
sorter: true
|
|
},
|
|
|
|
{
|
|
title: '备注',
|
|
dataIndex: 'updatedAt',
|
|
sorter: true
|
|
},
|
|
{
|
|
title: '操作',
|
|
scopedSlots: { customRender: 'action' }
|
|
}
|
|
]
|
|
|
|
const dataSource = []
|
|
|
|
for (let i = 0; i < 100; i++) {
|
|
dataSource.push({
|
|
key: i,
|
|
no: i,
|
|
description: '蛋糕台',
|
|
position: '只',
|
|
procedure: '',
|
|
callNo: Math.floor(Math.random() * 1000),
|
|
status: Math.floor(Math.random() * 10) % 4,
|
|
updatedAt: ''
|
|
})
|
|
}
|
|
|
|
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>
|