index.ts 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. import { App, unref } from 'vue'
  2. import 'xe-utils'
  3. import XEUtils from 'xe-utils'
  4. import { i18n } from '@/plugins/vueI18n'
  5. import zhCN from 'vxe-table/es/locale/lang/zh-CN'
  6. import enUS from 'vxe-table/lib/locale/lang/en-US'
  7. import {
  8. // 全局对象
  9. VXETable,
  10. // 表格功能
  11. Filter,
  12. Edit,
  13. Menu,
  14. Export,
  15. Keyboard,
  16. Validator,
  17. // 可选组件
  18. Icon,
  19. Column,
  20. Colgroup,
  21. Grid,
  22. Tooltip,
  23. Toolbar,
  24. Pager,
  25. Form,
  26. FormItem,
  27. FormGather,
  28. Checkbox,
  29. CheckboxGroup,
  30. Radio,
  31. RadioGroup,
  32. RadioButton,
  33. Switch,
  34. Input,
  35. Select,
  36. Optgroup,
  37. Option,
  38. Textarea,
  39. Button,
  40. Modal,
  41. List,
  42. Pulldown,
  43. // 表格
  44. Table
  45. } from 'vxe-table'
  46. // 全局默认参数
  47. VXETable.setup({
  48. size: 'medium', // 全局尺寸
  49. version: 0, // 版本号,对于某些带数据缓存的功能有用到,上升版本号可以用于重置数据
  50. zIndex: 1008, // 全局 zIndex 起始值,如果项目的的 z-index 样式值过大时就需要跟随设置更大,避免被遮挡
  51. loadingText: '加载中...', // 全局loading提示内容,如果为null则不显示文本
  52. table: {
  53. // 自动监听父元素的变化去重新计算表格
  54. autoResize: true,
  55. emptyText: '暂无数据',
  56. // 鼠标移到行是否要高亮显示
  57. highlightHoverRow: true
  58. },
  59. pager: {
  60. autoHidden: false,
  61. perfect: true,
  62. pageSize: 10,
  63. pagerCount: 7,
  64. pageSizes: [10, 15, 20, 50, 100],
  65. layouts: ['PrevJump', 'PrevPage', 'Jump', 'PageCount', 'NextPage', 'NextJump', 'Sizes', 'Total']
  66. },
  67. input: {
  68. clearable: true
  69. },
  70. i18n: (key, args) => {
  71. return unref(i18n.global.locale) === 'zh'
  72. ? XEUtils.toFormatString(XEUtils.get(zhCN, key), args)
  73. : XEUtils.toFormatString(XEUtils.get(enUS, key), args)
  74. }
  75. })
  76. export const setupVxeTable = (app: App<Element>) => {
  77. // 表格功能
  78. app.use(Filter).use(Edit).use(Menu).use(Export).use(Keyboard).use(Validator)
  79. // 可选组件
  80. app
  81. .use(Icon)
  82. .use(Column)
  83. .use(Colgroup)
  84. .use(Grid)
  85. .use(Tooltip)
  86. .use(Toolbar)
  87. .use(Pager)
  88. .use(Form)
  89. .use(FormItem)
  90. .use(FormGather)
  91. .use(Checkbox)
  92. .use(CheckboxGroup)
  93. .use(Radio)
  94. .use(RadioGroup)
  95. .use(RadioButton)
  96. .use(Switch)
  97. .use(Input)
  98. .use(Select)
  99. .use(Optgroup)
  100. .use(Option)
  101. .use(Textarea)
  102. .use(Button)
  103. .use(Modal)
  104. .use(List)
  105. .use(Pulldown)
  106. // 安装表格
  107. .use(Table)
  108. // 给 vue 实例挂载内部对象,例如:
  109. // app.config.globalProperties.$XModal = VXETable.modal
  110. // app.config.globalProperties.$XPrint = VXETable.print
  111. // app.config.globalProperties.$XSaveFile = VXETable.saveFile
  112. // app.config.globalProperties.$XReadFile = VXETable.readFile
  113. }