2025-02-07 16:12:06 +08:00

233 lines
5.8 KiB
Vue

<template>
<lay-container fluid="true" style="padding: 10px">
<lay-row :space="10">
<lay-col :md="24">
<lay-card>
<lay-form style="margin-top: 20px">
<lay-row>
<lay-col :md="6">
<lay-form-item label="账号:" label-width="50">
<lay-input
v-model="searchAccount"
style="width: 90%"
></lay-input>
</lay-form-item>
</lay-col>
<lay-col :md="6">
<lay-form-item label="邮箱:" label-width="50">
<lay-input
v-model="searchEmail"
style="width: 90%"
></lay-input>
</lay-form-item>
</lay-col>
<lay-col :md="6">
<lay-form-item label-width="0">
<lay-button type="primary" @click="toSearch">查询</lay-button>
<lay-button @click="toReset">重置</lay-button>
</lay-form-item>
</lay-col>
</lay-row>
</lay-form>
</lay-card>
</lay-col>
<lay-col :md="24">
<lay-card>
<lay-table
:page="page"
:columns="columns"
:dataSource="dataSource"
:default-toolbar="defaultToolbar"
v-model:selectedKeys="selectedKeys"
@row="rowClick"
@change="change"
>
<template v-slot:toolbar>
<lay-button size="sm" type="primary">新增</lay-button>
<lay-button size="sm">删除</lay-button>
</template>
<template v-slot:username="{ data }">
{{ data.username }}
</template>
<template v-slot:password="{ data }">
{{ data.password }}
</template>
<template v-slot:operator="{}">
<lay-button size="xs" type="primary">修改</lay-button>
<lay-button size="xs">删除</lay-button>
</template>
<template v-slot:footer>
{{ selectedKeys }}
</template>
</lay-table>
</lay-card>
</lay-col>
</lay-row>
</lay-container>
</template>
<script lang="ts">
import { ref, watch } from 'vue'
import { layer } from '@layui/layer-vue'
export default {
setup() {
const selectedKeys = ref(['1'])
const checkbox = ref(true)
const defaultToolbar = ref(true)
const page = ref({ total: 100, limit: 10, current: 2 })
const columns = [
{
title: '复选',
width: '50px',
type: 'checkbox',
fixed: 'left'
},
{
title: '账户',
width: '200px',
customSlot: 'username',
key: 'username'
},
{
title: '密码',
width: '180px',
customSlot: 'password',
key: 'password'
},
{
title: '年龄',
width: '180px',
key: 'age'
},
{
title: '描述',
key: 'remark',
ellipsisTooltip: true
},
{
title: '操作',
width: '180px',
customSlot: 'operator',
key: 'operator',
fixed: 'right'
}
]
const dataSource = [
{
id: '1',
username: 'shana',
password: '夏娜',
remark: '花开堪折直须折,莫待无花空折枝',
age: '22'
},
{
id: '2',
username: 'shana',
password: '夏娜',
remark: '花开堪折直须折,莫待无花空折枝',
age: '22'
},
{
id: '3',
username: 'shana',
password: '夏娜',
remark: '花开堪折直须折,莫待无花空折枝',
age: '22'
},
{
id: '4',
username: 'shana',
password: '夏娜',
remark: '花开堪折直须折,莫待无花空折枝',
age: '22'
},
{
id: '5',
username: 'shana',
password: '夏娜',
remark: '花开堪折直须折,莫待无花空折枝',
age: '22'
},
{
id: '6',
username: 'shana',
password: '夏娜',
remark: '花开堪折直须折,莫待无花空折枝',
age: '22'
},
{
id: '7',
username: 'shana',
password: '夏娜',
remark: '花开堪折直须折,莫待无花空折枝',
age: '22'
},
{
id: '8',
username: 'shana',
password: '夏娜',
remark: '花开堪折直须折,莫待无花空折枝',
age: '22'
},
{
id: '9',
username: 'shana',
password: '夏娜',
remark: '花开堪折直须折,莫待无花空折枝',
age: '22'
},
{
id: '10',
username: 'shana',
password: '夏娜',
remark: '花开堪折直须折,莫待无花空折枝',
age: '22'
},
{
id: '11',
username: 'shana',
password: '夏娜',
remark: '花开堪折直须折,莫待无花空折枝',
age: '22'
}
]
const rowClick = function (data: any) {}
const rowDoubleClick = function (data: any) {}
const change = function ({ current, limit }: any) {
layer.msg('current:' + current + ' limit:' + limit)
}
function toSearch() {
layer.load(2, { time: 3000 })
}
const searchAccount = ref('')
const searchEmail = ref('')
function toReset() {
searchAccount.value = ''
searchEmail.value = ''
}
return {
columns,
dataSource,
selectedKeys,
checkbox,
defaultToolbar,
page,
rowClick,
rowDoubleClick,
change,
toReset,
toSearch,
searchAccount,
searchEmail
}
}
}
</script>