feat:增加 DocAlert 文档说明

pull/68/head
YunaiV 2025-04-05 17:09:16 +08:00
parent 0bef7c6bd9
commit 2e5d924a4f
17 changed files with 94 additions and 3 deletions

View File

@ -11,3 +11,6 @@ VITE_APP_TENANT_ENABLE=true
# 验证码的开关
VITE_APP_CAPTCHA_ENABLE=false
# 文档地址的开关
VITE_APP_DOCALERT_ENABLE=true

View File

@ -0,0 +1,3 @@
import DocAlert from './src/DocAlert.vue'
export { DocAlert }

View File

@ -0,0 +1,42 @@
<script lang="ts" setup>
import { computed } from 'vue';
import { Alert, Typography } from 'ant-design-vue';
export interface DocAlertProps {
/**
* 文档标题
*/
title: string;
/**
* 文档 URL 地址
*/
url: string;
}
const props = defineProps<DocAlertProps>();
/** 跳转 URL 链接 */
const goToUrl = () => {
window.open(props.url);
};
/** 是否开启 */
const isEnabled = computed(() => {
return import.meta.env.VITE_APP_DOCALERT_ENABLE !== 'false';
});
</script>
<template>
<Alert
v-if="isEnabled"
type="info"
show-icon
class="mb-2 rounded"
>
<template #message>
<Typography.Link @click="goToUrl">
{{ title }}文档地址{{ url }}
</Typography.Link>
</template>
</Alert>
</template>

View File

@ -6,6 +6,7 @@ import { Page, useVbenModal } from '@vben/common-ui';
import { Plus } from '@vben/icons';
import { Button, message } from 'ant-design-vue';
import Form from './modules/form.vue';
import { DocAlert } from '#/components/doc-alert';
import { $t } from '#/locales';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
@ -100,6 +101,8 @@ const [Grid, gridApi] = useVbenVxeGrid({
</script>
<template>
<Page auto-content-height>
<DocAlert title="邮件配置" url="https://doc.iocoder.cn/mail" />
<FormModal @success="onRefresh" />
<Grid table-title="">
<template #toolbar-tools>

View File

@ -4,6 +4,7 @@ import type { SystemMailLogApi } from '#/api/system/mail/log';
import { Page, useVbenModal } from '@vben/common-ui';
import Detail from './modules/detail.vue';
import { DocAlert } from '#/components/doc-alert';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
import { getMailLogPage } from '#/api/system/mail/log';
@ -68,6 +69,8 @@ const [Grid, gridApi] = useVbenVxeGrid({
});
</script>
<template>
<DocAlert title="邮件配置" url="https://doc.iocoder.cn/mail" />
<Page auto-content-height>
<DetailModal @success="onRefresh" />
<Grid table-title="">

View File

@ -7,6 +7,7 @@ import { Plus } from '@vben/icons';
import { Button, message } from 'ant-design-vue';
import Form from './modules/form.vue';
import SendForm from './modules/send-form.vue';
import { DocAlert } from '#/components/doc-alert';
import { $t } from '#/locales';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
@ -115,6 +116,8 @@ const [Grid, gridApi] = useVbenVxeGrid({
</script>
<template>
<Page auto-content-height>
<DocAlert title="邮件配置" url="https://doc.iocoder.cn/mail" />
<FormModal @success="onRefresh" />
<SendModal />
<Grid table-title="">

View File

@ -6,6 +6,7 @@ import { Page, useVbenModal } from '@vben/common-ui';
import { Button, message } from 'ant-design-vue';
import { IconifyIcon, Plus } from '@vben/icons';
import Form from './modules/form.vue';
import { DocAlert } from '#/components/doc-alert';
import { ref } from 'vue';
import { $t } from '#/locales';
@ -120,6 +121,9 @@ const [Grid, gridApi] = useVbenVxeGrid({
<template>
<Page auto-content-height>
<DocAlert title="功能权限" url="https://doc.iocoder.cn/resource-permission" />
<DocAlert title="菜单路由" url="https://doc.iocoder.cn/vue3/route/" />
<FormModal @success="onRefresh" />
<Grid>
<template #toolbar-tools>

View File

@ -3,6 +3,7 @@ import type { OnActionClickParams, VxeTableGridOptions } from '#/adapter/vxe-tab
import type { SystemNotifyMessageApi } from '#/api/system/notify/message';
import { Page, useVbenModal } from '@vben/common-ui';
import { DocAlert } from '#/components/doc-alert';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
import { getNotifyMessagePage } from '#/api/system/notify/message';
@ -70,6 +71,8 @@ const [Grid, gridApi] = useVbenVxeGrid({
<template>
<Page auto-content-height>
<DocAlert title="短信配置" url="https://doc.iocoder.cn/sms/" />
<DetailModal @success="onRefresh" />
<Grid table-title="" />
</Page>

View File

@ -10,6 +10,7 @@ import { Page, useVbenModal } from '@vben/common-ui';
import { MdiCheckboxMarkedCircleOutline } from '@vben/icons';
import { Button, message } from 'ant-design-vue';
import Detail from './modules/detail.vue';
import { DocAlert } from '#/components/doc-alert';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
import {
@ -147,6 +148,8 @@ const [Grid, gridApi] = useVbenVxeGrid({
</script>
<template>
<Page auto-content-height>
<DocAlert title="短信配置" url="https://doc.iocoder.cn/sms/" />
<DetailModal @success="onRefresh" />
<Grid table-title="">
<template #toolbar-tools>

View File

@ -7,6 +7,7 @@ import { Download, Plus } from '@vben/icons';
import { Button, message } from 'ant-design-vue';
import Form from './modules/form.vue';
import SendForm from './modules/send-form.vue';
import { DocAlert } from '#/components/doc-alert';
import { $t } from '#/locales';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
@ -123,6 +124,8 @@ const [Grid, gridApi] = useVbenVxeGrid({
<template>
<Page auto-content-height>
<DocAlert title="短信配置" url="https://doc.iocoder.cn/sms/" />
<FormModal @success="onRefresh" />
<SendModal />
<Grid table-title="">

View File

@ -6,6 +6,7 @@ import { Page, useVbenModal } from '@vben/common-ui';
import { Button, message } from 'ant-design-vue';
import { Plus, Download } from '@vben/icons';
import Form from './modules/form.vue';
import { DocAlert } from '#/components/doc-alert';
import { $t } from '#/locales';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
@ -108,8 +109,6 @@ function onActionClick({
const [Grid, gridApi] = useVbenVxeGrid({
formOptions: {
// TODO @
fieldMappingTime: [['createTime', ['startTime', 'endTime']]],
schema: useGridFormSchema(),
},
gridOptions: {
@ -140,6 +139,9 @@ const [Grid, gridApi] = useVbenVxeGrid({
<template>
<Page auto-content-height>
<DocAlert title="功能权限" url="https://doc.iocoder.cn/resource-permission" />
<DocAlert title="数据权限" url="https://doc.iocoder.cn/data-permission" />
<FormModal @success="onRefresh" />
<AssignDataPermissionFormModel @success="onRefresh" />
<AssignMenuFormModel @success="onRefresh" />

View File

@ -6,6 +6,7 @@ import { Page, useVbenModal } from '@vben/common-ui';
import { Button, message } from 'ant-design-vue';
import { Download, Plus } from '@vben/icons';
import Form from './modules/form.vue';
import { DocAlert } from '#/components/doc-alert';
import { $t } from '#/locales';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
@ -108,6 +109,8 @@ const [Grid, gridApi] = useVbenVxeGrid({
<template>
<Page auto-content-height>
<DocAlert title="短信配置" url="https://doc.iocoder.cn/sms/" />
<FormModal @success="onRefresh" />
<Grid table-title="">
<template #toolbar-tools>

View File

@ -5,6 +5,7 @@ import type { SystemSmsLogApi } from '#/api/system/sms/log';
import { Page, useVbenModal } from '@vben/common-ui';
import { Download } from '@vben/icons';
import { Button } from 'ant-design-vue';
import { DocAlert } from '#/components/doc-alert';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
import { exportSmsLog, getSmsLogPage } from '#/api/system/sms/log';
@ -80,6 +81,8 @@ const [Grid, gridApi] = useVbenVxeGrid({
<template>
<Page auto-content-height>
<DocAlert title="短信配置" url="https://doc.iocoder.cn/sms/" />
<DetailModal @success="onRefresh" />
<Grid table-title="">
<template #toolbar-tools>

View File

@ -7,6 +7,7 @@ import { Download, Plus } from '@vben/icons';
import { Button, message } from 'ant-design-vue';
import Form from './modules/form.vue';
import SendForm from './modules/send-form.vue';
import { DocAlert } from '#/components/doc-alert';
import { $t } from '#/locales';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
@ -123,6 +124,8 @@ const [Grid, gridApi] = useVbenVxeGrid({
<template>
<Page auto-content-height>
<DocAlert title="短信配置" url="https://doc.iocoder.cn/sms/" />
<FormModal @success="onRefresh" />
<SendModal />
<Grid table-title="">

View File

@ -6,6 +6,7 @@ import { Page, useVbenModal } from '@vben/common-ui';
import { Button, message } from 'ant-design-vue';
import { Plus, Download } from '@vben/icons';
import Form from './modules/form.vue';
import { DocAlert } from '#/components/doc-alert';
import { $t } from '#/locales';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
@ -79,7 +80,6 @@ function onActionClick({
const [Grid, gridApi] = useVbenVxeGrid({
formOptions: {
schema: useGridFormSchema(),
// TODO @
},
gridOptions: {
columns: useGridColumns(onActionClick),
@ -108,6 +108,8 @@ const [Grid, gridApi] = useVbenVxeGrid({
</script>
<template>
<Page auto-content-height>
<DocAlert title="SaaS 多租户" url="https://doc.iocoder.cn/saas-tenant/" />
<FormModal @success="onRefresh" />
<Grid table-title="">
<template #toolbar-tools>

View File

@ -5,6 +5,7 @@ import type { SystemTenantPackageApi } from '#/api/system/tenant-package';
import { Page, useVbenModal } from '@vben/common-ui';
import { Button, message } from 'ant-design-vue';
import Form from './modules/form.vue';
import { DocAlert } from '#/components/doc-alert';
import { $t } from '#/locales';
import { useVbenVxeGrid } from '#/adapter/vxe-table';
@ -98,6 +99,8 @@ const [Grid, gridApi] = useVbenVxeGrid({
<template>
<Page auto-content-height>
<DocAlert title="SaaS 多租户" url="https://doc.iocoder.cn/saas-tenant/" />
<FormModal @success="onRefresh" />
<Grid table-title="">
<template #toolbar-tools>

View File

@ -11,6 +11,7 @@ import ResetPasswordForm from './modules/reset-password-form.vue';
import AssignRoleForm from './modules/assign-role-form.vue';
import ImportForm from './modules/import-form.vue';
import DeptTree from './modules/dept-tree.vue';
import { DocAlert } from '#/components/doc-alert';
import { $t } from '#/locales';
import { ref } from 'vue';
@ -188,6 +189,10 @@ const [Grid, gridApi] = useVbenVxeGrid({
<template>
<Page auto-content-height>
<DocAlert title="用户体系" url="https://doc.iocoder.cn/user-center/" />
<DocAlert title="三方登陆" url="https://doc.iocoder.cn/social-user/" />
<DocAlert title="Excel 导入导出" url="https://doc.iocoder.cn/excel-import-and-export/" />
<FormModal @success="onRefresh" />
<ResetPasswordModal @success="onRefresh" />
<AssignRoleModal @success="onRefresh" />