Skip to content

G. 前端组件速查 ​

概述

以下组件定义在 ui/src/components/ 目录下,可在页面中直接引入使用。

数据展示 ​

组件路径说明核心 Props
BasicTablecomponents/Table/数据表格columns、dataSource、pagination
PageWrappercomponents/Page/页面容器title、contentFullHeight
CountTocomponents/CountTo/数字动画startVal、endVal、duration
Qrcodecomponents/Qrcode/二维码value、size、level
Iconcomponents/icon/图标选择器value、disabled

数据录入 ​

组件路径说明核心 Props
BasicFormcomponents/Form/动态表单schemas、labelWidth
BasicModalcomponents/Modal/弹窗title、width、okText
BasicUploadcomponents/Upload/文件上传action、maxCount、accept
Editorcomponents/Editor/富文本编辑器value、height、placeholder
Passwordcomponents/Password/密码强度value、placeholder
ChinaAreacomponents/ChinaArea/省市区联动value、placeholder
Regioncomponents/Region/行政区划value、level
Croppercomponents/Cropper/头像裁剪image、aspectRatio
NumberInputcomponents/numberInput/数字输入value、min、max

Excel ​

组件路径说明
ImportExcelcomponents/Excel/Excel 导入(解析文件)
Export2Excelcomponents/Excel/Excel 导出(生成文件)

其他 ​

组件路径说明
Authoritycomponents/Authority/权限组件(根据权限显示/隐藏)
Lockscreencomponents/Lockscreen/锁屏组件
Websocketcomponents/Websocket/WebSocket 组件

使用示例 ​

BasicTable ​

vue
<template>
  <BasicTable
    :columns="columns"
    :request="loadDataTable"
    :row-key="(row) => row.id"
    ref="tableRef"
  >
    <template #bodyCell="{ column, record }">
      <template v-if="column.key === 'action'">
        <a-button type="link" @click="handleEdit(record)">编辑</a-button>
      </template>
    </template>
  </BasicTable>
</template>

<script setup>
import { ref } from 'vue';
import { getExamplePage } from '@/api/tool/example';

const tableRef = ref();
const columns = [
  { title: 'ID', dataIndex: 'id', width: 80 },
  { title: '名称', dataIndex: 'name' },
  { title: '状态', dataIndex: 'statusText', width: 100 },
  { title: '操作', dataIndex: 'action', key: 'action', width: 180 },
];

const loadDataTable = async (params) => await getExamplePage(params);
const handleEdit = (record) => {};
</script>

BasicForm ​

vue
<template>
  <BasicForm @register="registerForm" />
</template>

<script setup>
import { BasicForm, useForm } from '@/components/Form';

const [registerForm] = useForm({
  schemas: [
    {
      name: 'name',
      label: '名称',
      component: 'Input',
      rules: [{ required: true, message: '请输入名称', trigger: ['blur'] }],
    },
    { name: 'status', label: '状态', component: 'Select', componentProps: { options: [...] } },
  ],
});
</script>

BasicModal ​

vue
<template>
  <basicModal @register="registerModal" @ok="handleSubmit">
    <template #default>
      <!-- 表单内容 -->
    </template>
  </basicModal>
</template>

<script setup>
import { basicModal, useModal } from '@/components/Modal';

const [registerModal, { openModal, closeModal }] = useModal();

const handleAdd = () => openModal();
const handleSubmit = async () => { /* ... */ closeModal(); };
</script>

小蚂蚁云团队 · 提供技术支持