feat:增加 DocAlert 文档说明
							parent
							
								
									0bef7c6bd9
								
							
						
					
					
						commit
						2e5d924a4f
					
				|  | @ -11,3 +11,6 @@ VITE_APP_TENANT_ENABLE=true | |||
| 
 | ||||
| # 验证码的开关 | ||||
| VITE_APP_CAPTCHA_ENABLE=false | ||||
| 
 | ||||
| # 文档地址的开关 | ||||
| VITE_APP_DOCALERT_ENABLE=true | ||||
|  | @ -0,0 +1,3 @@ | |||
| import DocAlert from './src/DocAlert.vue' | ||||
| 
 | ||||
| export { DocAlert } | ||||
|  | @ -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> | ||||
|  | @ -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> | ||||
|  |  | |||
|  | @ -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="邮件日志列表"> | ||||
|  |  | |||
|  | @ -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="邮件模板列表"> | ||||
|  |  | |||
|  | @ -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> | ||||
|  |  | |||
|  | @ -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> | ||||
|  |  | |||
|  | @ -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> | ||||
|  |  | |||
|  | @ -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="站内信模板列表"> | ||||
|  |  | |||
|  | @ -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" /> | ||||
|  |  | |||
|  | @ -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> | ||||
|  |  | |||
|  | @ -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> | ||||
|  |  | |||
|  | @ -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="短信模板列表"> | ||||
|  |  | |||
|  | @ -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> | ||||
|  |  | |||
|  | @ -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> | ||||
|  |  | |||
|  | @ -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" /> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 YunaiV
						YunaiV