diff --git a/examples/views/grid/Basic.vue b/examples/views/grid/Basic.vue index e924a70e3..6b9c9c808 100644 --- a/examples/views/grid/Basic.vue +++ b/examples/views/grid/Basic.vue @@ -4,11 +4,11 @@ 高级表格:一个包含表单、工具栏、基础表格、分页...等全功能的组件

- + @@ -18,6 +18,17 @@ {{ demoCodes[0] }} {{ demoCodes[1] }} + +

异步获取列

+ + + +

{{ $t('app.body.button.showCode') }}

+ +
+      {{ demoCodes[2] }}
+      {{ demoCodes[3] }}
+    
@@ -27,15 +38,15 @@ import { VxeGridProps } from '../../../types/index' export default defineComponent({ setup () { - const gridOptions = reactive({ + const gridOptions1 = reactive({ border: true, resizable: true, height: 300, align: null, columns: [ { type: 'seq', width: 50 }, - { field: 'name', title: 'app.body.label.name' }, - { field: 'sex', title: 'app.body.label.sex', showHeaderOverflow: true }, + { field: 'name', title: 'name' }, + { field: 'sex', title: 'sex', showHeaderOverflow: true }, { field: 'address', title: 'Address', showOverflow: true } ], toolbarConfig: { @@ -54,15 +65,48 @@ export default defineComponent({ { id: 10008, name: 'Test8', nickname: 'T8', role: 'Develop', sex: 'Man', age: 35, address: 'Shenzhen' } ] }) + + const gridOptions2 = reactive({ + border: true, + resizable: true, + loading: false, + height: 300, + columns: [], + data: [] + }) + + gridOptions2.loading = true + setTimeout(() => { + gridOptions2.loading = false + gridOptions2.columns = [ + { type: 'seq', width: 50 }, + { field: 'name', title: 'Name' }, + { field: 'sex', title: 'Sex', showHeaderOverflow: true }, + { field: 'role', title: 'Role' }, + { field: 'address', title: 'Address', showOverflow: true } + ] + gridOptions2.data = [ + { id: 10001, name: 'Test1', nickname: 'T1', role: 'Develop', sex: 'Man', age: 28, address: 'Shenzhen' }, + { id: 10002, name: 'Test2', nickname: 'T2', role: 'Test', sex: 'Women', age: 22, address: 'Guangzhou' }, + { id: 10003, name: 'Test3', nickname: 'T3', role: 'PM', sex: 'Man', age: 32, address: 'Shanghai' }, + { id: 10004, name: 'Test4', nickname: 'T4', role: 'Designer', sex: 'Women', age: 23, address: 'Shenzhen' }, + { id: 10005, name: 'Test5', nickname: 'T5', role: 'Develop', sex: 'Women', age: 30, address: 'Shanghai' }, + { id: 10006, name: 'Test6', nickname: 'T6', role: 'Designer', sex: 'Women', age: 21, address: 'Shenzhen' }, + { id: 10007, name: 'Test7', nickname: 'T7', role: 'Test', sex: 'Man', age: 29, address: 'Shenzhen' }, + { id: 10008, name: 'Test8', nickname: 'T8', role: 'Develop', sex: 'Man', age: 35, address: 'Shenzhen' } + ] + }, 3000) + return { - gridOptions, + gridOptions1, + gridOptions2, demoCodes: [ ` - + `, @@ -72,15 +116,15 @@ export default defineComponent({ export default defineComponent({ setup () { - const gridOptions = reactive({ + const gridOptions1 = reactive({ border: true, resizable: true, height: 300, align: null, columns: [ { type: 'seq', width: 50 }, - { field: 'name', title: 'app.body.label.name' }, - { field: 'sex', title: 'app.body.label.sex', showHeaderOverflow: true }, + { field: 'name', title: 'name' }, + { field: 'sex', title: 'sex', showHeaderOverflow: true }, { field: 'address', title: 'Address', showOverflow: true } ], toolbarConfig: { @@ -99,8 +143,55 @@ export default defineComponent({ { id: 10008, name: 'Test8', nickname: 'T8', role: 'Develop', sex: 'Man', age: 35, address: 'Shenzhen' } ] }) + return { - gridOptions + gridOptions1 + } + } + }) + `, + ` + + `, + ` + import { defineComponent, reactive } from 'vue' + import { VxeGridProps } from 'vxe-table' + + export default defineComponent({ + setup () { + const gridOptions2 = reactive({ + border: true, + resizable: true, + loading: false, + height: 300, + columns: [], + data: [] + }) + + gridOptions2.loading = true + setTimeout(() => { + gridOptions2.loading = false + gridOptions2.columns = [ + { type: 'seq', width: 50 }, + { field: 'name', title: 'Name' }, + { field: 'sex', title: 'Sex', showHeaderOverflow: true }, + { field: 'role', title: 'Role' }, + { field: 'address', title: 'Address', showOverflow: true } + ] + gridOptions2.data = [ + { id: 10001, name: 'Test1', nickname: 'T1', role: 'Develop', sex: 'Man', age: 28, address: 'Shenzhen' }, + { id: 10002, name: 'Test2', nickname: 'T2', role: 'Test', sex: 'Women', age: 22, address: 'Guangzhou' }, + { id: 10003, name: 'Test3', nickname: 'T3', role: 'PM', sex: 'Man', age: 32, address: 'Shanghai' }, + { id: 10004, name: 'Test4', nickname: 'T4', role: 'Designer', sex: 'Women', age: 23, address: 'Shenzhen' }, + { id: 10005, name: 'Test5', nickname: 'T5', role: 'Develop', sex: 'Women', age: 30, address: 'Shanghai' }, + { id: 10006, name: 'Test6', nickname: 'T6', role: 'Designer', sex: 'Women', age: 21, address: 'Shenzhen' }, + { id: 10007, name: 'Test7', nickname: 'T7', role: 'Test', sex: 'Man', age: 29, address: 'Shenzhen' }, + { id: 10008, name: 'Test8', nickname: 'T8', role: 'Develop', sex: 'Man', age: 35, address: 'Shenzhen' } + ] + }, 3000) + + return { + gridOptions2 } } }) diff --git a/examples/views/table/advanced/Dynamic.vue b/examples/views/table/advanced/Dynamic.vue index a4a8fe643..65d7202cd 100644 --- a/examples/views/table/advanced/Dynamic.vue +++ b/examples/views/table/advanced/Dynamic.vue @@ -1,7 +1,7 @@