123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- <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>
|