提交 eb110a42 作者: 方治民

feat: Online - Form 开发中

上级 7d9ac724
...@@ -74,6 +74,9 @@ const tools: AppRouteModule = { ...@@ -74,6 +74,9 @@ const tools: AppRouteModule = {
icon: 'fluent:form-20-regular', icon: 'fluent:form-20-regular',
}, },
component: () => import('/@/views/demo/tools/online/form/index.vue'), component: () => import('/@/views/demo/tools/online/form/index.vue'),
tag: {
content: '开发中',
},
}, },
{ {
path: 'report', path: 'report',
......
...@@ -85,10 +85,12 @@ ...@@ -85,10 +85,12 @@
<BasicForm @register="registerEditForm" /> <BasicForm @register="registerEditForm" />
</div> </div>
<template #insertFooter> <template #insertFooter>
<Button type="dashed" danger @click="test" :disabled="testing"> <div class="inline-block absolute left-4">
<Icon icon="fluent-emoji-high-contrast:test-tube" /> <Button type="primary" danger @click="test" :disabled="testing">
测试连接 <Icon icon="fluent-emoji-high-contrast:test-tube" />
</Button> 测试连接
</Button>
</div>
</template> </template>
</BasicModal> </BasicModal>
</template> </template>
......
<script lang="ts" setup> <script lang="ts" setup>
import { Tabs, TabPane } from 'ant-design-vue'
import { Icon } from '@/components/Icon'
import { BasicForm, useForm } from '/@/components/Form'
import { BasicModal, useModalInner } from '/@/components/Modal' import { BasicModal, useModalInner } from '/@/components/Modal'
import { typeOptions } from './data'
const [registerModal] = useModalInner((data) => { const [registerModal] = useModalInner((data) => {
console.log(data) console.log(data)
// TODO:
// 1. 根据传递的 ID 参数,查询表配置详细信息
// 2. 赋值填充到表单对象中
})
const [registerEditForm] = useForm({
colon: true,
labelWidth: 150,
showActionButtonGroup: false,
schemas: [
{
field: 'name',
label: '表名',
required: true,
component: 'Input',
colProps: {
span: 8,
},
},
{
field: 'describe',
label: '表描述',
required: true,
component: 'Input',
colProps: {
span: 8,
},
},
{
field: 'type',
label: '表类型',
required: true,
component: 'Select',
componentProps: {
options: typeOptions,
defaultValue: typeOptions[0].value,
},
colProps: {
span: 8,
},
},
],
}) })
</script> </script>
<template> <template>
<BasicModal v-bind="$attrs" @register="registerModal" destroyOnClose defaultFullscreen /> <BasicModal v-bind="$attrs" @register="registerModal" destroyOnClose defaultFullscreen>
<div class="pr-20px">
<BasicForm @register="registerEditForm" />
</div>
<div class="p-20px">
<Tabs>
<TabPane key="db-schema">
<template #tab>
<Icon icon="carbon:schematics" />
数据表属性
</template>
<!-- -->
数据表属性
</TabPane>
<TabPane key="db-foreign-key">
<template #tab>
<Icon icon="mdi:foreign-key" />
外键
</template>
<!-- -->
</TabPane>
<TabPane key="db-index">
<template #tab>
<Icon icon="ant-design:node-index-outlined" />
索引
</template>
<!-- -->
</TabPane>
<TabPane key="page-schema">
<template #tab>
<Icon icon="fluent-emoji-high-contrast:pager" />
页面属性
</template>
<!-- -->
</TabPane>
<TabPane key="schema-rule">
<template #tab>
<Icon icon="material-symbols:rule" />
规则校验
</template>
<!-- -->
规则校验
</TabPane>
</Tabs>
</div>
</BasicModal>
</template> </template>
<style lang="less" scoped> <style lang="less" scoped>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论