Avue Types
type definitions for @smallwei/avue
Usage
ts
/// <reference types="@yusui/types/avue" />
or
json
{
"compilerOptions": {
"types": [
"@yusui/types/avue"
]
}
}
测试示例
AvueCrud
tableData: [ { "name": "admin" } ] crudDefaults:AvueForm
formData: { "name": "admin" } formDefaults:AvueTree
View Source
vue
<script setup lang="ts">
import type {
AvueCrudDefaults,
AvueCrudInstance,
AvueCrudOption,
AvueFormDefaults,
AvueFormInstance,
AvueFormOption,
AvueTreeInstance,
AvueTreeOption,
} from '@smallwei/avue'
import { ref, watchEffect } from 'vue'
interface User {
name?: string
}
const tableData = ref<User[]>([{ name: 'admin' }])
const tableOption: AvueCrudOption<User> = {
searchBtn: false,
emptyBtn: false,
// addBtn: false,
editBtn: false,
delBtn: false,
refreshBtn: false,
columnBtn: false,
searchShowBtn: false,
column: [{
label: '名称',
prop: 'name',
labelWidth: 400,
search: true,
searchLabelWidth: 300,
searchSpan: 24,
span: 24,
dicData: [{ label: '管理员', value: 'admin' }],
rules: [{ required: true }],
}],
}
const crudRef = ref<AvueCrudInstance<User>>()
crudRef.value?.dicInit()
const crudDefaults = ref<AvueCrudDefaults<User>>()
watchEffect(() => {
if (!crudDefaults.value)
return
crudDefaults.value.name.prop = 'name'
})
const formData = ref<User>({ name: 'admin' })
const formOption: AvueFormOption<User> = {
column: [{
label: '名称',
prop: 'name',
labelWidth: 300,
span: 24,
dicData: [{ label: '管理员', value: 'admin' }],
rules: [{ required: true }],
}],
}
const formRef = ref<AvueFormInstance>()
formRef.value?.dicInit()
const formDefaults = ref<AvueFormDefaults<User>>()
watchEffect(() => {
if (!formDefaults.value)
return
formDefaults.value.name.prop = 'name'
})
const treeRef = ref<AvueTreeInstance>()
treeRef.value?.filter('')
const treeData = ref<User[]>([{ name: 'admin' }])
const treeOption: AvueTreeOption<User> = {
formOption: {
column: [{
label: '名称',
prop: 'name',
dicData: [{ label: '管理员', value: 'admin' }],
}],
},
}
</script>
<template>
<h2>AvueCrud</h2>
tableData: {{ tableData }}
crudDefaults: {{ crudDefaults }}
<avue-crud ref="crudRef" v-model:defaults="crudDefaults" :data="tableData" :option="tableOption">
<template #search="props">
#search: {{ props }}
</template>
<template #name-search="props">
#name-search: {{ props }}
</template>
<template #name-search-label="props">
#name-search-label: {{ props }}
</template>
<template #search-menu="props">
#search-menu: {{ props }}
</template>
<template #menu-left="props">
#menu-left: {{ props }}
</template>
<template #menu-right="props">
#menu-right: {{ props }}
</template>
<template #name-header="props">
#name-header: {{ props }}
</template>
<template #name="props">
#name: {{ props }}
</template>
<template #menu="props">
#menu {{ props }}
</template>
<template #name-label="props">
#name-label: {{ props }}
</template>
<template #name-form="props">
#name-form: {{ props }}
</template>
<template #name-error="props">
#name-error: {{ props }}
</template>
<template #menu-form="props">
#menu-form: {{ props }}
</template>
</avue-crud>
<h2>AvueForm</h2>
formData: {{ formData }}
formDefaults: {{ formDefaults }}
<avue-form ref="formRef" v-model="formData" v-model:defaults="formDefaults" :option="formOption">
<template #name-label="props">
#name-label: {{ props }}
</template>
<template #name="props">
#name: {{ props }}
</template>
<template #name-error="props">
#name-error: {{ props }}
</template>
<template #menu-form="props">
#menu-form: {{ props }}
</template>
</avue-form>
<h2>AvueTree</h2>
<avue-tree ref="treeRef" :data="treeData" :option="treeOption">
<template #menu="props">
{{ props?.node.data }}
</template>
<template #default="props">
{{ props?.data }}
</template>
</avue-tree>
</template>