2025-08-23 18:19:53 +08:00

125 lines
2.5 KiB
TypeScript

import atrans from 'trans-config'
import type {
AtransConfig,
SearchModuleFields,
TableModuleFields,
DialogModuleFields,
AtransItemRes,
DialogExtraFields
} from 'trans-config'
import * as page from '@/utils/page'
import useStore from '@/stores'
const { user } = useStore()
export type AtransSearchRes = SearchModuleFields &
ExtendSearchModulesFields & {
[key: string]: AtransItemRes & ExtendItemConfig
}
export type AtransTableRes = TableModuleFields &
ExtendTableModuleFields & {
[key: string]: AtransItemRes & ExtendItemConfig
}
export type AtransDialogRes = DialogModuleFields & {
[key: string]: AtransItemRes & ExtendDialogExtraFields
}
export type Atrans$DialogRes = DialogExtraFields & {
config: DialogModuleFields & {
[key: string]: AtransItemRes & ExtendDialogExtraFields
}
}
export type AtransResult = {
search: AtransSearchRes
search1: AtransSearchRes
search2: AtransSearchRes
search3: AtransSearchRes
table: AtransTableRes
table1: AtransTableRes
table2: AtransTableRes
table3: AtransTableRes
dialog: AtransDialogRes
dialog1: AtransDialogRes
dialog2: AtransDialogRes
dialog3: AtransDialogRes
$dialog: Atrans$DialogRes
[key: string]: any
}
const atransFn = atrans.create({
version: 'common',
moduleFields: {
search: {
$search: page.search
},
table: {
$permissions: user.perms,
$onGetData: page.getTableData,
$stripe: true,
$changePage: page.onChangeCurrent,
$typeIndexFn: page.tableIndex
}
},
extraFields: {
dialog: {
$dialog: {
submit: page.onDialogSubmit,
$confirmText: '确定',
$confirmShow: true,
$cancelText: '取消',
$cancelShow: true,
$onlyRead: false
}
}
}
})
/**
* name: 自定义
* search/dialog/table的item配置项自定义类型
*/
type ExtendItemConfig = {
clicks?: ((val: any) => void)[]
shows?: ((val: any) => void)[]
disableds?: ((val: any) => void)[]
$attr?: {
disabled: boolean
placeholder: string
data: any[]
}
}
/**
* name: 自定义
* search模块配置自定义类型
*/
type ExtendSearchModulesFields = {}
/**
* name: 自定义
* table模块配置自定义类型
*/
type ExtendTableModuleFields = {
$stripe: boolean
}
/**
* name: 自定义
* dialog模块配置自定义类型
*/
type ExtendDialogExtraFields = {
$attr: {
data: any[]
disabled: boolean
}
$on: {
onChange: (val: any) => void
}
}
export default atransFn as unknown as (config: AtransConfig) => AtransResult
export const pageConfig = atransFn