123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253 |
- <template>
- <vxe-grid v-bind="gridOptions" style="width:98%"></vxe-grid>
- </template>
- <script lang='ts'>
- import { reactive } from "vue";
- import { VxeGridProps } from "vxe-table";
- export default {
- name: "user",
- setup() {
- const gridOptions = reactive({
- border: true,
- resizable: true,
- keepSource: true,
- height: 500,
- printConfig: {},
- importConfig: {},
- exportConfig: {},
- pagerConfig: {
- perfect: true,
- pageSize: 15,
- },
- editConfig: {
- trigger: "click",
- mode: "row",
- showStatus: true,
- },
- toolbarConfig: {
- buttons: [
- {
- code: "insert_actived",
- name: "新增",
- status: "perfect",
- icon: "fa fa-plus",
- },
- {
- code: "mark_cancel",
- name: "标记/取消",
- status: "perfect",
- icon: "fa fa-trash-o",
- },
- {
- code: "save",
- name: "保存",
- status: "perfect",
- icon: "fa fa-save",
- },
- ],
- perfect: true,
- refresh: {
- icon: "fa fa-refresh",
- iconLoading: "fa fa-spinner fa-spin",
- },
- import: {
- icon: "fa fa-upload",
- },
- export: {
- icon: "fa fa-download",
- },
- print: {
- icon: "fa fa-print",
- },
- // zoom: {
- // iconIn: "fa fa-arrows-alt",
- // iconOut: "fa fa-expand",
- // },
- custom: {
- icon: "fa fa-cog",
- },
- },
- proxyConfig: {
- props: {
- result: "result",
- total: "page.total",
- },
- ajax: {
- // 接收 Promise
- query: ({ page }) => {
- return new Promise((resolve) => {
- setTimeout(() => {
- const list = [
- {
- 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: "vxe-table 从入门到放弃",
- },
- {
- id: 10008,
- name: "Test8",
- nickname: "T8",
- role: "Develop",
- sex: "Man ",
- age: 35,
- address: "Shenzhen",
- },
- {
- id: 10009,
- name: "Test9",
- nickname: "T9",
- role: "Develop",
- sex: "Man ",
- age: 35,
- address: "Shenzhen",
- },
- {
- id: 100010,
- name: "Test10",
- nickname: "T10",
- role: "Develop",
- sex: "Man ",
- age: 35,
- address: "Guangzhou",
- },
- {
- id: 100011,
- name: "Test11",
- nickname: "T11",
- role: "Test",
- sex: "Women ",
- age: 26,
- address: "vxe-table 从入门到放弃",
- },
- {
- id: 100012,
- name: "Test12",
- nickname: "T12",
- role: "Develop",
- sex: "Man ",
- age: 34,
- address: "Guangzhou",
- },
- {
- id: 100013,
- name: "Test13",
- nickname: "T13",
- role: "Test",
- sex: "Women ",
- age: 22,
- address: "Shenzhen",
- },
- ];
- resolve({
- page: {
- total: list.length,
- },
- result: list.slice(
- (page.currentPage - 1) * page.pageSize,
- page.currentPage * page.pageSize
- ),
- });
- }, 100);
- });
- },
- // body 对象: { removeRecords }
- delete: () => {
- return new Promise((resolve) => {
- setTimeout(() => {
- resolve({});
- }, 100);
- });
- },
- // body 对象: { insertRecords, updateRecords, removeRecords, pendingRecords }
- save: () => {
- return new Promise((resolve) => {
- setTimeout(() => {
- resolve({});
- }, 100);
- });
- },
- },
- },
- columns: [
- { type: "checkbox", width: 50 },
- { type: "seq", width: 60 },
- { field: "name", title: "Name", editRender: { name: "input" } },
- { field: "nickname", title: "Nickname", editRender: { name: "input" } },
- { field: "role", title: "Role", editRender: { name: "input" } },
- {
- field: "address",
- title: "Address",
- showOverflow: true,
- editRender: { name: "input" },
- },
- ],
- } as VxeGridProps);
- return {
- gridOptions,
- };
- },
- };
- </script>
- <style scoped>
- </style>
|