perf: vxe

pull/2/head
xingyu4j 2022-11-12 16:46:24 +08:00
parent 725cc4e41b
commit ac47638249
6 changed files with 34 additions and 4 deletions

View File

@ -131,12 +131,12 @@ const filterSearchSchema = (crudSchema: VxeCrudSchema): VxeFormItemProps[] => {
} }
const searchSchemaItem = { const searchSchemaItem = {
// 默认为 input // 默认为 input
span: 8,
folding: searchSchema.length > 2, folding: searchSchema.length > 2,
itemRender: itemRender, itemRender: itemRender,
...schemaItem.search, ...schemaItem.search,
field: schemaItem.field, field: schemaItem.field,
title: schemaItem.search?.title || schemaItem.title title: schemaItem.search?.title || schemaItem.title,
span: 8
} }
// 删除不必要的字段 // 删除不必要的字段
delete searchSchemaItem.show delete searchSchemaItem.show

View File

@ -85,7 +85,7 @@ export const useVxeGrid = <T = any>(config?: UseVxeGridConfig<T>) => {
props: { result: 'list', total: 'total' }, props: { result: 'list', total: 'total' },
ajax: { ajax: {
query: ({ page, form }) => { query: ({ page, form }) => {
const queryParams = Object.assign({}, form) const queryParams = Object.assign({}, JSON.parse(JSON.stringify(form)))
queryParams.pageSize = page.pageSize queryParams.pageSize = page.pageSize
queryParams.pageNo = page.currentPage queryParams.pageNo = page.currentPage
gridOptions.loading = false gridOptions.loading = false

View File

@ -0,0 +1,23 @@
import { useI18n } from '@/hooks/web/useI18n'
import { ElDatePicker } from 'element-plus'
import { VXETable } from 'vxe-table'
// 日期区间选择渲染
VXETable.renderer.add('XDataTimePicker', {
// 默认显示模板
renderItemContent(renderOpts, params) {
const { t } = useI18n()
const { data, field } = params
const { content } = renderOpts
return (
<ElDatePicker
v-model={data[field]}
type={content ? (content as any) : 'datetimerange'}
value-format="YYYY-MM-DD HH:mm:ss"
range-separator="-"
start-placeholder={t('common.startTimeText')}
end-placeholder={t('common.endTimeText')}
></ElDatePicker>
)
}
})

View File

@ -1,7 +1,7 @@
import { DictTag } from '@/components/DictTag' import { DictTag } from '@/components/DictTag'
import { VXETable } from 'vxe-table' import { VXETable } from 'vxe-table'
// 创建一个简单的超链接渲染 // 字典渲染
VXETable.renderer.add('XDict', { VXETable.renderer.add('XDict', {
// 默认显示模板 // 默认显示模板
renderDefault(renderOpts, params) { renderDefault(renderOpts, params) {

View File

@ -1 +1,2 @@
import './dataTimePicker'
import './dict' import './dict'

View File

@ -48,6 +48,12 @@ const crudSchemas = reactive<VxeCrudSchema>({
formatter: 'formatDate', formatter: 'formatDate',
form: { form: {
show: false show: false
},
search: {
show: true,
itemRender: {
name: 'XDataTimePicker'
}
} }
} }
] ]