!181 所有菜单的 name 都加上模块的前缀,避免冲突,并且和菜单数据能对上

Merge pull request !181 from clockdotnet/master-vxe
This commit is contained in:
芋道源码 2023-07-26 04:53:33 +00:00 committed by Gitee
commit e4d6b4301b
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
63 changed files with 85 additions and 98 deletions

View File

@ -269,7 +269,8 @@ const filterFormSchema = (crudSchema: VxeCrudSchema): FormSchema[] => {
defaultValue = 0
}
}
let comonentProps = {}
const componentProps =
schemaItem.form?.componentProps != null ? schemaItem.form?.componentProps : {}
if (schemaItem.dictType) {
const options: ComponentOptions[] = []
if (schemaItem.dictClass && schemaItem.dictClass === 'number') {
@ -285,14 +286,12 @@ const filterFormSchema = (crudSchema: VxeCrudSchema): FormSchema[] => {
options.push(dict)
})
}
comonentProps = {
options: options
}
componentProps.options = options
if (!(schemaItem.form && schemaItem.form.component)) component = 'Select'
}
const formSchemaItem = {
component: component,
componentProps: comonentProps,
componentProps: componentProps,
value: defaultValue,
...schemaItem.form,
field: schemaItem.field,

View File

@ -116,7 +116,7 @@ const remainingRouter: AppRouteRecordRaw[] = [
{
path: 'type/data/:dictType',
component: () => import('@/views/system/dict/index.vue'),
name: 'data',
name: 'SystemDictData',
meta: {
title: '字典数据',
noCache: true,
@ -140,7 +140,7 @@ const remainingRouter: AppRouteRecordRaw[] = [
{
path: 'edit',
component: () => import('@/views/infra/codegen/EditTable.vue'),
name: 'EditTable',
name: 'InfraCodegenEditTable',
meta: {
noCache: true,
hidden: true,
@ -163,7 +163,7 @@ const remainingRouter: AppRouteRecordRaw[] = [
{
path: 'job-log',
component: () => import('@/views/infra/job/JobLog.vue'),
name: 'JobLog',
name: 'InfraJobLog',
meta: {
noCache: true,
hidden: true,
@ -236,7 +236,7 @@ const remainingRouter: AppRouteRecordRaw[] = [
{
path: '/manager/form/edit',
component: () => import('@/views/bpm/form/formEditor.vue'),
name: 'bpmFormEditor',
name: 'BpmFormEditor',
meta: {
noCache: true,
hidden: true,
@ -248,7 +248,7 @@ const remainingRouter: AppRouteRecordRaw[] = [
{
path: '/manager/model/edit',
component: () => import('@/views/bpm/model/modelEditor.vue'),
name: 'modelEditor',
name: 'BpmModelEditor',
meta: {
noCache: true,
hidden: true,
@ -260,7 +260,7 @@ const remainingRouter: AppRouteRecordRaw[] = [
{
path: '/manager/definition',
component: () => import('@/views/bpm/definition/index.vue'),
name: 'BpmProcessDefinitionList',
name: 'BpmProcessDefinition',
meta: {
noCache: true,
hidden: true,
@ -272,7 +272,7 @@ const remainingRouter: AppRouteRecordRaw[] = [
{
path: '/manager/task-assign-rule',
component: () => import('@/views/bpm/taskAssignRule/index.vue'),
name: 'BpmTaskAssignRuleList',
name: 'BpmTaskAssignRule',
meta: {
noCache: true,
hidden: true,
@ -307,31 +307,19 @@ const remainingRouter: AppRouteRecordRaw[] = [
{
path: '/bpm/oa/leave/create',
component: () => import('@/views/bpm/oa/leave/create.vue'),
name: 'OALeaveCreate',
name: 'BpmOALeaveCreate',
meta: {
noCache: true,
hidden: true,
canTo: true,
title: '发起 OA 请假',
activeMenu: '/bpm/oa/leave'
activeMenu: '/bpm/oa/leave/create'
}
},
{
path: '/bpm/oa/leave/detail',
component: () => import('@/views/bpm/oa/leave/detail.vue'),
name: 'OALeaveDetail',
meta: {
noCache: true,
hidden: true,
canTo: true,
title: '查看 OA 请假',
activeMenu: '/bpm/oa/leave'
}
},
{
path: '/bpm/oa/leave/detail',
component: () => import('@/views/bpm/oa/leave/detail.vue'),
name: 'OALeaveDetail',
name: 'BpmOALeaveDetail',
meta: {
noCache: true,
hidden: true,
@ -345,7 +333,7 @@ const remainingRouter: AppRouteRecordRaw[] = [
{
path: '/property',
component: Layout,
name: 'property',
name: 'ProductProperty',
meta: {
hidden: true
},
@ -353,7 +341,7 @@ const remainingRouter: AppRouteRecordRaw[] = [
{
path: 'value/:propertyId(\\d+)',
component: () => import('@/views/mall/product/property/value/index.vue'),
name: 'PropertyValue',
name: 'ProductPropertyValue',
meta: { title: '商品属性值', icon: '', activeMenu: '/product/property' }
}
]
@ -382,7 +370,7 @@ const remainingRouter: AppRouteRecordRaw[] = [
{
path: 'productSpuEdit/:spuId(\\d+)',
component: () => import('@/views/mall/product/spu/addForm.vue'),
name: 'productSpuEdit',
name: 'ProductSpuEdit',
meta: {
noCache: true,
hidden: true,

View File

@ -59,7 +59,7 @@
</XModal>
</ContentWrap>
</template>
<script setup lang="ts">
<script setup lang="ts" name="BpmProcessDefinition">
// import
import * as DefinitionApi from '@/api/bpm/definition'
// import * as ModelApi from '@/api/bpm/model'
@ -123,7 +123,7 @@ const handleBpmnDetail = (row) => {
//
const handleAssignRule = (row) => {
router.push({
name: 'BpmTaskAssignRuleList',
name: 'BpmTaskAssignRule',
query: {
processDefinitionId: row.id
}

View File

@ -63,14 +63,14 @@ const [registerTable, { deleteData }] = useXTable({
//
const handleCreate = () => {
push({
name: 'bpmFormEditor'
name: 'BpmFormEditor'
})
}
//
const handleUpdate = async (rowId: number) => {
await push({
name: 'bpmFormEditor',
name: 'BpmFormEditor',
query: {
id: rowId
}

View File

@ -41,7 +41,7 @@
</template>
</Dialog>
</template>
<script lang="ts" name="UserGroupForm" setup>
<script lang="ts" name="BpmUserGroupForm" setup>
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
import { CommonStatusEnum } from '@/utils/constants'
import * as UserGroupApi from '@/api/bpm/userGroup'

View File

@ -85,7 +85,7 @@
</XModal>
</template>
<script setup lang="ts">
<script setup lang="ts" name="BpmUserGroup">
// import
import * as UserGroupApi from '@/api/bpm/userGroup'
import { getListSimpleUsersApi, UserVO } from '@/api/system/user'

View File

@ -316,7 +316,7 @@
</ContentWrap>
</template>
<script setup lang="ts">
<script setup lang="ts" name="BpmModel">
// import
import { DICT_TYPE, getDictOptions } from '@/utils/dict'
import { MyProcessViewer } from '@/components/bpmnProcessDesigner/package'
@ -349,7 +349,7 @@ const forms = ref() // 流程表单的下拉框的数据
const handleDesign = (row) => {
console.log(row, '设计流程')
router.push({
name: 'modelEditor',
name: 'BpmModelEditor',
query: {
modelId: row.id
}
@ -359,7 +359,7 @@ const handleDesign = (row) => {
//
const handleDefinitionList = (row) => {
router.push({
name: 'BpmProcessDefinitionList',
name: 'BpmProcessDefinition',
query: {
key: row.key
}
@ -402,7 +402,7 @@ const handleBpmnDetail = (row) => {
//
const handleAssignRule = (row) => {
router.push({
name: 'BpmTaskAssignRuleList',
name: 'BpmTaskAssignRule',
query: {
modelId: row.id
}

View File

@ -26,7 +26,7 @@
</div>
</template>
<script setup lang="ts">
<script setup lang="ts" name="BpmModelEditor">
import { MyProcessDesigner, MyProcessPenal } from '@/components/bpmnProcessDesigner/package'
// import { translations } from '@/components/bpmnProcessDesigner/src/translations'
//

View File

@ -11,7 +11,7 @@
/>
</ContentWrap>
</template>
<script setup lang="ts">
<script setup lang="ts" name="BpmOALeaveCreate">
import { FormExpose } from '@/components/Form'
// import XEUtils from 'xe-utils'

View File

@ -6,7 +6,7 @@
</ContentWrap>
</template>
<script setup lang="ts">
<script setup lang="ts" name="BpmOALeaveDetail">
// import
import * as LeaveApi from '@/api/bpm/leave'
import { allSchemas } from '@/views/bpm/oa/leave/leave.data'

View File

@ -23,7 +23,7 @@
</ContentWrap>
</template>
<script setup lang="ts">
<script setup lang="ts" name="BpmOALeave">
// import
import { ElMessageBox } from 'element-plus'
// import
@ -43,7 +43,7 @@ const [registerTable, { reload }] = useXTable({
//
const handleCreate = () => {
push({
name: 'OALeaveCreate'
name: 'BpmOALeaveCreate'
})
}
@ -64,7 +64,7 @@ const cancelLeave = (row) => {
//
const handleDetail = (row) => {
push({
name: 'OALeaveDetail',
name: 'BpmOALeaveDetail',
query: {
id: row.id
}

View File

@ -53,7 +53,7 @@
</div>
</ContentWrap>
</template>
<script setup lang="ts">
<script setup lang="ts" name="BpmProcessInstanceCreate">
// import
import { allSchemas } from './process.create'
import * as DefinitionApi from '@/api/bpm/definition'

View File

@ -191,7 +191,7 @@
</XModal>
</ContentWrap>
</template>
<script setup lang="ts">
<script setup lang="ts" name="BpmProcessInstanceDetail">
import dayjs from 'dayjs'
import * as UserApi from '@/api/system/user'
import * as ProcessInstanceApi from '@/api/bpm/processInstance'

View File

@ -41,7 +41,7 @@
</XTable>
</ContentWrap>
</template>
<script setup lang="ts">
<script setup lang="ts" name="BpmProcessInstance">
// import
import { ElMessageBox } from 'element-plus'
import { DICT_TYPE } from '@/utils/dict'

View File

@ -12,7 +12,7 @@
</XTable>
</ContentWrap>
</template>
<script setup lang="ts">
<script setup lang="ts" name="BpmDoneTask">
// import
import { allSchemas } from './done.data'
import * as TaskApi from '@/api/bpm/task'

View File

@ -13,7 +13,7 @@
</ContentWrap>
</template>
<script setup lang="ts">
<script setup lang="ts" name="BpmTodoTask">
// import
import { allSchemas } from './todo.data'
import * as TaskApi from '@/api/bpm/task'

View File

@ -133,7 +133,7 @@
</XModal>
</ContentWrap>
</template>
<script setup lang="ts" name="TaskAssignRule">
<script setup lang="ts" name="BpmTaskAssignRule">
// import
import { FormInstance } from 'element-plus'
// import

View File

@ -35,7 +35,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="ApiAccessLog">
<script setup lang="ts" name="InfraApiAccessLog">
import { allSchemas } from './apiAccessLog.data'
import * as ApiAccessLogApi from '@/api/infra/apiAccessLog'

View File

@ -51,7 +51,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="ApiErrorLog">
<script setup lang="ts" name="InfraApiErrorLog">
import { allSchemas } from './apiErrorLog.data'
import * as ApiErrorLogApi from '@/api/infra/apiErrorLog'
import { InfraApiErrorLogProcessStatusEnum } from '@/utils/constants'

View File

@ -29,7 +29,7 @@
</div>
</Dialog>
</template>
<script setup lang="ts" name="Build">
<script setup lang="ts" name="InfraBuild">
import FcDesigner from '@form-create/designer'
// import { useClipboard } from '@vueuse/core'
import { isString } from '@/utils/is'

View File

@ -56,7 +56,7 @@
<!-- 弹窗预览代码 -->
<Preview ref="previewRef" />
</template>
<script setup lang="ts" name="Codegen">
<script setup lang="ts" name="InfraCodegen">
import download from '@/utils/download'
import * as CodegenApi from '@/api/infra/codegen'
import { CodegenTableVO } from '@/api/infra/codegen/types'

View File

@ -82,7 +82,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="Config">
<script setup lang="ts" name="InfraConfig">
import type { FormExpose } from '@/components/Form'
// import
import * as ConfigApi from '@/api/infra/config'

View File

@ -65,7 +65,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="DataSourceConfig">
<script setup lang="ts" name="InfraDataSourceConfig">
import type { FormExpose } from '@/components/Form'
// import
import * as DataSourceConfiggApi from '@/api/infra/dataSourceConfig'

View File

@ -14,7 +14,7 @@
<IFrame v-if="!loading" v-loading="loading" :src="src" />
</ContentWrap>
</template>
<script setup lang="ts" name="DbDoc">
<script setup lang="ts" name="InfraDBDoc">
import download from '@/utils/download'
import * as DbDocApi from '@/api/infra/dbDoc'

View File

@ -3,7 +3,7 @@
<IFrame v-if="!loading" :src="url" />
</ContentWrap>
</template>
<script setup lang="ts" name="Druid">
<script setup lang="ts" name="InfraDruid">
import * as ConfigApi from '@/api/infra/config'
const loading = ref(true) //

View File

@ -78,7 +78,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="FileList">
<script setup lang="ts" name="InfraFile">
import type { UploadInstance, UploadRawFile, UploadProps, UploadFile } from 'element-plus'
// import
import { allSchemas } from './fileList.data'

View File

@ -157,7 +157,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="FileConfig">
<script setup lang="ts" name="InfraFileConfig">
import type { FormInstance } from 'element-plus'
// import
import * as FileConfigApi from '@/api/infra/fileConfig'

View File

@ -47,7 +47,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="JobLog">
<script setup lang="ts" name="InfraJobLog">
import dayjs from 'dayjs'
import * as JobLogApi from '@/api/infra/jobLog'

View File

@ -128,7 +128,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="Job">
<script setup lang="ts" name="InfraJob">
import type { FormExpose } from '@/components/Form'
import * as JobApi from '@/api/infra/job'
import { rules, allSchemas } from './job.data'

View File

@ -127,7 +127,7 @@
</el-row>
</XModal>
</template>
<script setup lang="ts">
<script setup lang="ts" name="InfraRedis">
import * as RedisApi from '@/api/infra/redis'
import { RedisKeyInfo, RedisMonitorInfoVO } from '@/api/infra/redis/types'
import { DICT_TYPE } from '@/utils/dict'

View File

@ -3,7 +3,7 @@
<IFrame v-if="!loading" v-loading="loading" :src="src" />
</ContentWrap>
</template>
<script setup lang="ts" name="AdminServer">
<script setup lang="ts" name="InfraAdminServer">
import * as ConfigApi from '@/api/infra/config'
const loading = ref(true) //

View File

@ -3,7 +3,7 @@
<IFrame v-if="!loading" v-loading="loading" :src="src" />
</ContentWrap>
</template>
<script setup lang="ts" name="Skywalking">
<script setup lang="ts" name="InfraSkyWalking">
import * as ConfigApi from '@/api/infra/config'
const loading = ref(true) //

View File

@ -3,7 +3,7 @@
<IFrame :src="src" />
</ContentWrap>
</template>
<script setup lang="ts" name="Swagger">
<script setup lang="ts" name="InfraSwagger">
import * as ConfigApi from '@/api/infra/config'
const loading = ref(true) //

View File

@ -55,7 +55,7 @@
</el-card>
</div>
</template>
<script lang="ts" name="InfraWebSocket" setup>
<script lang="ts" name="WebSocket" setup>
import { formatDate } from '@/utils/formatTime'
import { useUserStore } from '@/store/modules/user'
import { useWebSocket } from '@vueuse/core'

View File

@ -88,7 +88,7 @@
<!-- 表单弹窗添加/修改 -->
<ValueForm ref="formRef" @success="getList" />
</template>
<script setup lang="ts" name="Config">
<script setup lang="ts" name="ProductProperty">
import { dateFormatter } from '@/utils/formatTime'
import * as PropertyApi from '@/api/mall/product/property'
import ValueForm from './ValueForm.vue'

View File

@ -75,7 +75,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="App">
<script setup lang="ts" name="PayApp">
import type { FormExpose } from '@/components/Form'
import { rules, allSchemas } from './app.data'
import * as AppApi from '@/api/pay/app'

View File

@ -74,7 +74,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="Merchant">
<script setup lang="ts" name="PayMerchant">
import type { FormExpose } from '@/components/Form'
import { rules, allSchemas } from './merchant.data'
import * as MerchantApi from '@/api/pay/merchant'

View File

@ -64,7 +64,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="Order">
<script setup lang="ts" name="PayOrder">
import type { FormExpose } from '@/components/Form'
import { rules, allSchemas } from './order.data'
import * as OrderApi from '@/api/pay/order'

View File

@ -33,7 +33,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="Refund">
<script setup lang="ts" name="PayRefund">
import { allSchemas } from './refund.data'
import * as RefundApi from '@/api/pay/refund'

View File

@ -37,7 +37,7 @@
</div>
</template>
<script lang="ts" setup name="Area">
<script lang="ts" setup name="SystemArea">
import * as areaApi from '@/api/system/area'
import type { FormInstance } from 'element-plus'
// import { allSchemas } from './area.data'

View File

@ -74,7 +74,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="Dept">
<script setup lang="ts" name="SystemDept">
import { handleTree, defaultProps } from '@/utils/tree'
import type { FormExpose } from '@/components/Form'
import { allSchemas, rules } from './dept.data'

View File

@ -121,7 +121,7 @@
</XModal>
</div>
</template>
<script setup lang="ts" name="Dict">
<script setup lang="ts" name="SystemDictType">
import { VxeTableEvents } from 'vxe-table'
import type { FormExpose } from '@/components/Form'
import * as DictTypeSchemas from './dict.type'

View File

@ -66,7 +66,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="ErrorCode">
<script setup lang="ts" name="SystemErrorCode">
import type { FormExpose } from '@/components/Form'
// import
import { rules, allSchemas } from './errorCode.data'

View File

@ -27,7 +27,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="Loginlog">
<script setup lang="ts" name="SystemLoginLog">
// import
import { allSchemas } from './loginLog.data'
import { getLoginLogPageApi, exportLoginLogApi, LoginLogVO } from '@/api/system/loginLog'

View File

@ -66,7 +66,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="MailAccount">
<script setup lang="ts" name="SystemMailAccount">
import { FormExpose } from '@/components/Form'
// import
import { rules, allSchemas } from './account.data'

View File

@ -44,7 +44,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="MailLog">
<script setup lang="ts" name="SystemMailLog">
// import
import { DICT_TYPE } from '@/utils/dict'
import { allSchemas } from './log.data'

View File

@ -138,7 +138,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="MailTemplate">
<script setup lang="ts" name="SystemMailTemplate">
import { FormExpose } from '@/components/Form'
// import
import { rules, allSchemas } from './template.data'

View File

@ -200,7 +200,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="Menu">
<script setup lang="ts" name="SystemMenu">
import { CACHE_KEY, useCache } from '@/hooks/web/useCache'
import { FormInstance } from 'element-plus'
// import

View File

@ -70,7 +70,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="Notice">
<script setup lang="ts" name="SystemNotice">
import type { FormExpose } from '@/components/Form'
// import
import * as NoticeApi from '@/api/system/notice'

View File

@ -27,7 +27,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="NotifyMessage">
<script setup lang="ts" name="SystemNotifyMessage">
// import
import { allSchemas } from './message.data'
import * as NotifyMessageApi from '@/api/system/notify/message'

View File

@ -114,7 +114,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="NotifyTemplate">
<script setup lang="ts" name="SystemNotifyTemplate">
import { FormExpose } from '@/components/Form'
// import
import { rules, allSchemas } from './template.data'

View File

@ -134,7 +134,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="Client">
<script setup lang="ts" name="SystemOAuth2Client">
import type { FormExpose } from '@/components/Form'
// import
import * as ClientApi from '@/api/system/oauth2/client'

View File

@ -24,7 +24,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="Token">
<script setup lang="ts" name="SystemTokenClient">
import { allSchemas } from './token.data'
import * as TokenApi from '@/api/system/oauth2/token'

View File

@ -41,7 +41,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="OperateLog">
<script setup lang="ts" name="SystemOperateLog">
// import
import * as OperateLogApi from '@/api/system/operatelog'
import { allSchemas } from './operatelog.data'

View File

@ -75,7 +75,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="Post">
<script setup lang="ts" name="SystemPost">
import type { FormExpose } from '@/components/Form'
// import
import * as PostApi from '@/api/system/post'

View File

@ -157,7 +157,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="Role">
<script setup lang="ts" name="SystemRole">
import type { ElTree } from 'element-plus'
import type { FormExpose } from '@/components/Form'
import { handleTree, defaultProps } from '@/utils/tree'

View File

@ -102,7 +102,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="SensitiveWord">
<script setup lang="ts" name="SystemSensitiveWord">
import type { FormExpose } from '@/components/Form'
import * as SensitiveWordApi from '@/api/system/sensitiveWord'
import { rules, allSchemas } from './sensitiveWord.data'

View File

@ -67,7 +67,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="SmsChannel">
<script setup lang="ts" name="SystemSmsChannel">
import type { FormExpose } from '@/components/Form'
// import
import * as SmsChannelApi from '@/api/system/sms/smsChannel'

View File

@ -30,7 +30,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="SmsLog">
<script setup lang="ts" name="SystemSmsLog">
import { allSchemas } from './sms.log.data'
import * as SmsLoglApi from '@/api/system/sms/smsLog'
const { t } = useI18n() //

View File

@ -108,7 +108,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="SmsTemplate">
<script setup lang="ts" name="SystemSmsTemplate">
import type { FormExpose } from '@/components/Form'
// import
import * as SmsTemplateApi from '@/api/system/sms/smsTemplate'

View File

@ -85,7 +85,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="Tenant">
<script setup lang="ts" name="SystemTenant">
import type { FormExpose } from '@/components/Form'
import * as TenantApi from '@/api/system/tenant'
import { rules, allSchemas, tenantPackageOption } from './tenant.data'

View File

@ -64,7 +64,7 @@
</XModal>
</ContentWrap>
</template>
<script setup lang="ts" name="TenantPackage">
<script setup lang="ts" name="SystemTenantPackage">
import { handleTree, defaultProps } from '@/utils/tree'
import type { FormExpose } from '@/components/Form'
import type { ElTree } from 'element-plus'

View File

@ -262,7 +262,7 @@
</template>
</XModal>
</template>
<script setup lang="ts" name="User">
<script setup lang="ts" name="SystemUser">
import type { ElTree, UploadRawFile, UploadInstance } from 'element-plus'
import { handleTree, defaultProps } from '@/utils/tree'
import download from '@/utils/download'