mirror of
https://github.com/jeecgboot/JeecgBoot.git
synced 2025-12-08 17:12:28 +08:00
184 lines
4.7 KiB
Java
184 lines
4.7 KiB
Java
<template>
|
||
<j-vxe-table
|
||
ref="vTable"
|
||
toolbar
|
||
row-number
|
||
row-selection
|
||
keep-source
|
||
:height="484"
|
||
:loading="loading"
|
||
:dataSource="dataSource"
|
||
:columns="columns"
|
||
:pagination="pagination"
|
||
style="margin-top: 8px;"
|
||
@pageChange="handlePageChange"
|
||
>
|
||
|
||
<template v-slot:toolbarSuffix>
|
||
<a-button @click="handleTableGet">获取值</a-button>
|
||
</template>
|
||
|
||
</j-vxe-table>
|
||
</template>
|
||
|
||
<script>
|
||
import moment from 'moment'
|
||
import { randomNumber, randomUUID } from '@/utils/util'
|
||
import { JVXETypes } from '@/components/jeecg/JVxeTable'
|
||
|
||
export default {
|
||
name: 'JVxeDemo2',
|
||
data() {
|
||
return {
|
||
loading: false,
|
||
columns: [
|
||
{
|
||
title: '下拉框_字典表搜索',
|
||
key: 'select_dict_search',
|
||
type: JVXETypes.selectDictSearch,
|
||
width: '200px',
|
||
// 【字典表配置信息】:数据库表名,显示字段名,存储字段名
|
||
dict: 'sys_user,realname,username',
|
||
},
|
||
{
|
||
title: 'JPopup',
|
||
key: 'popup',
|
||
type: JVXETypes.popup,
|
||
width: '180px',
|
||
popupCode: 'demo',
|
||
field: 'name,sex,age',
|
||
orgFields: 'name,sex,age',
|
||
destFields: 'popup,popup_sex,popup_age'
|
||
},
|
||
{
|
||
title: 'JP-性别',
|
||
key: 'popup_sex',
|
||
type: JVXETypes.select,
|
||
dictCode: 'sex',
|
||
disabled: true,
|
||
width: '100px',
|
||
},
|
||
{
|
||
title: 'JP-年龄',
|
||
key: 'popup_age',
|
||
type: JVXETypes.normal,
|
||
width: '80px',
|
||
},
|
||
{
|
||
title: '进度条',
|
||
key: 'progress',
|
||
type: JVXETypes.progress,
|
||
minWidth: '120px'
|
||
},
|
||
{
|
||
title: '单选',
|
||
key: 'radio',
|
||
type: JVXETypes.radio,
|
||
width: '130px',
|
||
options: [
|
||
{text: '男', value: '1'},
|
||
{text: '女', value: '2'},
|
||
],
|
||
// 允许清除选择(再点一次取消选择)
|
||
allowClear: true
|
||
},
|
||
{
|
||
title: '上传',
|
||
key: 'upload',
|
||
type: JVXETypes.upload,
|
||
width: '180px',
|
||
btnText: '点击上传',
|
||
token: true,
|
||
responseName: 'message',
|
||
action: window._CONFIG['domianURL'] + '/sys/common/upload'
|
||
},
|
||
{
|
||
title: '图片上传',
|
||
key: 'image',
|
||
type: JVXETypes.image,
|
||
width: '180px',
|
||
token: true,
|
||
},
|
||
{
|
||
title: '文件上传',
|
||
key: 'file',
|
||
type: JVXETypes.file,
|
||
width: '180px',
|
||
token: true,
|
||
},
|
||
],
|
||
dataSource: [],
|
||
pagination: {
|
||
current: 1,
|
||
pageSize: 10,
|
||
pageSizeOptions: ['10', '20', '30', '100', '200'],
|
||
total: 1000,
|
||
},
|
||
}
|
||
|
||
},
|
||
|
||
created() {
|
||
this.randomPage(this.pagination.current, this.pagination.pageSize, true)
|
||
},
|
||
methods: {
|
||
|
||
// 当分页参数变化时触发的事件
|
||
handlePageChange(event) {
|
||
// 重新赋值
|
||
this.pagination.current = event.current
|
||
this.pagination.pageSize = event.pageSize
|
||
// 查询数据
|
||
this.randomPage(event.current, event.pageSize, true)
|
||
},
|
||
|
||
/** 获取值,忽略表单验证 */
|
||
handleTableGet() {
|
||
const values = this.$refs.vTable.getTableData()
|
||
console.log('获取值:', {values})
|
||
this.$message.success('获取值成功,请看控制台输出')
|
||
},
|
||
|
||
/* 随机生成数据 */
|
||
randomPage(current, pageSize, loading = false) {
|
||
if (loading) {
|
||
this.loading = true
|
||
}
|
||
|
||
let randomDatetime = () => {
|
||
let time = randomNumber(1000, 9999999999999)
|
||
return moment(new Date(time)).format('YYYY-MM-DD HH:mm:ss')
|
||
}
|
||
|
||
let limit = (current - 1) * pageSize
|
||
|
||
let begin = Date.now()
|
||
let values = []
|
||
for (let i = 0; i < pageSize; i++) {
|
||
let radio = randomNumber(0, 2)
|
||
values.push({
|
||
id: randomUUID(),
|
||
select_dict_search: ['', 'admin', '', 'jeecg', ''][randomNumber(0, 4)],
|
||
progress: randomNumber(0, 100),
|
||
radio: radio ? radio.toString() : null
|
||
})
|
||
}
|
||
|
||
this.dataSource = values
|
||
let end = Date.now()
|
||
let diff = end - begin
|
||
|
||
if (loading && diff < pageSize) {
|
||
setTimeout(() => {
|
||
this.loading = false
|
||
}, pageSize - diff)
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|
||
</script>
|
||
|
||
<style scoped>
|
||
|
||
</style> |