befly-admin 3.3.7 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/src/components/internal/README.md +27 -0
- package/src/layouts/4.vue +17 -0
- package/src/layouts/{0.vue → internal/0.vue} +1 -1
- package/src/layouts/internal/README.md +27 -0
- package/src/main.ts +2 -2
- package/src/plugins/internal/README.md +36 -0
- package/src/styles/internal/README.md +27 -0
- package/src/utils/README.md +37 -0
- package/src/utils/index.ts +12 -0
- package/src/{util.ts → utils/internal.ts} +3 -1
- package/src/views/internal/README.md +27 -0
- package/src/views/internal/index/components/userInfo.vue +202 -0
- package/src/views/{role → internal/role}/components/menu.vue +1 -1
- package/vite.config.ts +4 -4
- package/libs/icons.ts +0 -543
- package/src/views/index/components/userInfo.vue +0 -136
- /package/src/components/{Icon.vue → internal/Icon.vue} +0 -0
- /package/src/layouts/{1.vue → internal/1.vue} +0 -0
- /package/src/layouts/{2.vue → internal/2.vue} +0 -0
- /package/src/plugins/{http.ts → internal/http.ts} +0 -0
- /package/src/plugins/{router.ts → internal/router.ts} +0 -0
- /package/src/plugins/{storage.ts → internal/storage.ts} +0 -0
- /package/src/plugins/{store.ts → internal/store.ts} +0 -0
- /package/src/styles/{index.scss → internal/index.scss} +0 -0
- /package/src/styles/{mixins.scss → internal/mixins.scss} +0 -0
- /package/src/styles/{variables.scss → internal/variables.scss} +0 -0
- /package/src/views/{403 → internal/403}/403.vue +0 -0
- /package/src/views/{admin → internal/admin}/components/edit.vue +0 -0
- /package/src/views/{admin → internal/admin}/components/role.vue +0 -0
- /package/src/views/{admin → internal/admin}/index.vue +0 -0
- /package/src/views/{dict → internal/dict}/components/edit.vue +0 -0
- /package/src/views/{dict → internal/dict}/index.vue +0 -0
- /package/src/views/{index → internal/index}/components/addonList.vue +0 -0
- /package/src/views/{index → internal/index}/components/environmentInfo.vue +0 -0
- /package/src/views/{index → internal/index}/components/operationLogs.vue +0 -0
- /package/src/views/{index → internal/index}/components/performanceMetrics.vue +0 -0
- /package/src/views/{index → internal/index}/components/quickActions.vue +0 -0
- /package/src/views/{index → internal/index}/components/serviceStatus.vue +0 -0
- /package/src/views/{index → internal/index}/components/systemNotifications.vue +0 -0
- /package/src/views/{index → internal/index}/components/systemOverview.vue +0 -0
- /package/src/views/{index → internal/index}/components/systemResources.vue +0 -0
- /package/src/views/{index → internal/index}/index.vue +0 -0
- /package/src/views/{login → internal/login}/components/emailLoginForm.vue +0 -0
- /package/src/views/{login → internal/login}/components/registerForm.vue +0 -0
- /package/src/views/{login → internal/login}/components/welcomePanel.vue +0 -0
- /package/src/views/{login → internal/login}/index_1.vue +0 -0
- /package/src/views/{menu → internal/menu}/components/edit.vue +0 -0
- /package/src/views/{menu → internal/menu}/index.vue +0 -0
- /package/src/views/{news → internal/news}/detail/detail_2.vue +0 -0
- /package/src/views/{news → internal/news}/detail/index.vue +0 -0
- /package/src/views/{news → internal/news}/news.vue +0 -0
- /package/src/views/{role → internal/role}/components/api.vue +0 -0
- /package/src/views/{role → internal/role}/components/edit.vue +0 -0
- /package/src/views/{role → internal/role}/index.vue +0 -0
- /package/src/views/{user → internal/user}/user.vue +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "befly-admin",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.4.0",
|
|
4
4
|
"description": "Befly Admin - 基于 Vue3 + OpenTiny Vue 的后台管理系统",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"private": false,
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"@opentiny/vue": "3.26.0",
|
|
19
19
|
"axios": "1.12.2",
|
|
20
|
-
"befly-auto-routes": "^1.0
|
|
20
|
+
"befly-auto-routes": "^1.1.0",
|
|
21
21
|
"lucide-vue-next": "0.546.0",
|
|
22
22
|
"pinia": "3.0.3",
|
|
23
23
|
"vue": "3.5.22",
|
|
@@ -39,5 +39,5 @@
|
|
|
39
39
|
"node": ">=22.0.0",
|
|
40
40
|
"pnpm": ">=9.0.0"
|
|
41
41
|
},
|
|
42
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "f9672c8969f228336de372cdd3094b4507676792"
|
|
43
43
|
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Internal 目录说明
|
|
2
|
+
|
|
3
|
+
⚠️ **重要提示**
|
|
4
|
+
|
|
5
|
+
此目录下的所有文件由 **befly-admin** 框架管理,请勿修改!
|
|
6
|
+
|
|
7
|
+
## 自动更新
|
|
8
|
+
|
|
9
|
+
运行以下命令会自动更新此目录:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
befly sync:admin
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 注意事项
|
|
16
|
+
|
|
17
|
+
1. ❌ **请勿修改** internal 目录下的任何文件
|
|
18
|
+
2. ❌ **请勿删除** internal 目录
|
|
19
|
+
3. ✅ 如需自定义组件,请在 internal 目录外创建文件
|
|
20
|
+
|
|
21
|
+
## 文件用途
|
|
22
|
+
|
|
23
|
+
此目录包含框架核心组件,确保管理系统的基础功能正常运行。
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
📚 更多信息请查看项目文档
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="custom-layout-0">
|
|
3
|
+
<h1>这是用户自定义的布局 0(覆盖 internal)</h1>
|
|
4
|
+
<RouterView />
|
|
5
|
+
</div>
|
|
6
|
+
</template>
|
|
7
|
+
|
|
8
|
+
<script setup>
|
|
9
|
+
// 测试用户自定义布局是否能覆盖 internal 布局
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<style scoped>
|
|
13
|
+
.custom-layout-0 {
|
|
14
|
+
background-color: #f0f0f0;
|
|
15
|
+
padding: 20px;
|
|
16
|
+
}
|
|
17
|
+
</style>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Internal 目录说明
|
|
2
|
+
|
|
3
|
+
⚠️ **重要提示**
|
|
4
|
+
|
|
5
|
+
此目录下的所有文件由 **befly-admin** 框架管理,请勿修改!
|
|
6
|
+
|
|
7
|
+
## 自动更新
|
|
8
|
+
|
|
9
|
+
运行以下命令会自动更新此目录:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
befly sync:admin
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 注意事项
|
|
16
|
+
|
|
17
|
+
1. ❌ **请勿修改** internal 目录下的任何文件
|
|
18
|
+
2. ❌ **请勿删除** internal 目录
|
|
19
|
+
3. ✅ 如需自定义布局,请在 internal 目录外创建文件
|
|
20
|
+
|
|
21
|
+
## 文件用途
|
|
22
|
+
|
|
23
|
+
此目录包含框架核心布局文件,确保管理系统的页面结构正常运行。
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
📚 更多信息请查看项目文档
|
package/src/main.ts
CHANGED
|
@@ -3,10 +3,10 @@ import { createPinia } from 'pinia';
|
|
|
3
3
|
import App from './App.vue';
|
|
4
4
|
|
|
5
5
|
// 引入全局样式
|
|
6
|
-
import './styles/index.scss';
|
|
6
|
+
import './styles/internal/index.scss';
|
|
7
7
|
|
|
8
8
|
// 引入路由实例
|
|
9
|
-
import { router } from './plugins/router';
|
|
9
|
+
import { router } from './plugins/internal/router';
|
|
10
10
|
|
|
11
11
|
const app = createApp(App);
|
|
12
12
|
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Internal 目录说明
|
|
2
|
+
|
|
3
|
+
⚠️ **重要提示**
|
|
4
|
+
|
|
5
|
+
此目录下的所有文件由 **befly-admin** 框架管理,请勿修改!
|
|
6
|
+
|
|
7
|
+
## 自动更新
|
|
8
|
+
|
|
9
|
+
运行以下命令会自动更新此目录:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
befly sync:admin
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 注意事项
|
|
16
|
+
|
|
17
|
+
1. ❌ **请勿修改** internal 目录下的任何文件
|
|
18
|
+
2. ❌ **请勿删除** internal 目录
|
|
19
|
+
3. ✅ 如需自定义插件,请在 internal 目录外创建文件,并使用不同的导出名称
|
|
20
|
+
|
|
21
|
+
## 保留的导出名称
|
|
22
|
+
|
|
23
|
+
框架保留以下导出名称,请勿在自定义插件中使用:
|
|
24
|
+
|
|
25
|
+
- `$Http` - HTTP 请求封装
|
|
26
|
+
- `$Storage` - 本地存储封装
|
|
27
|
+
- `router` - Vue Router 实例
|
|
28
|
+
- `useAppStore` - 应用状态管理
|
|
29
|
+
|
|
30
|
+
## 文件用途
|
|
31
|
+
|
|
32
|
+
此目录包含框架核心插件,确保管理系统的基础功能正常运行。
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
📚 更多信息请查看项目文档
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Internal 目录说明
|
|
2
|
+
|
|
3
|
+
⚠️ **重要提示**
|
|
4
|
+
|
|
5
|
+
此目录下的所有文件由 **befly-admin** 框架管理,请勿修改!
|
|
6
|
+
|
|
7
|
+
## 自动更新
|
|
8
|
+
|
|
9
|
+
运行以下命令会自动更新此目录:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
befly sync:admin
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 注意事项
|
|
16
|
+
|
|
17
|
+
1. ❌ **请勿修改** internal 目录下的任何文件
|
|
18
|
+
2. ❌ **请勿删除** internal 目录
|
|
19
|
+
3. ✅ 如需自定义样式,请在 internal 目录外创建文件
|
|
20
|
+
|
|
21
|
+
## 文件用途
|
|
22
|
+
|
|
23
|
+
此目录包含框架核心样式文件,确保管理系统的视觉效果正常运行。
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
📚 更多信息请查看项目文档
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Utils 目录说明
|
|
2
|
+
|
|
3
|
+
## 目录结构
|
|
4
|
+
|
|
5
|
+
- `internal.ts` - 框架核心工具函数(由 befly-admin 管理)
|
|
6
|
+
- `index.ts` - 用户自定义工具函数
|
|
7
|
+
|
|
8
|
+
## 使用说明
|
|
9
|
+
|
|
10
|
+
### 框架工具函数
|
|
11
|
+
|
|
12
|
+
```typescript
|
|
13
|
+
import { arrayToTree } from '@/utils/internal';
|
|
14
|
+
// 或者
|
|
15
|
+
import { arrayToTree } from '@/utils';
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### 自定义工具函数
|
|
19
|
+
|
|
20
|
+
在 `index.ts` 中添加您的工具函数:
|
|
21
|
+
|
|
22
|
+
```typescript
|
|
23
|
+
/**
|
|
24
|
+
* 格式化日期
|
|
25
|
+
*/
|
|
26
|
+
export function formatDate(date: Date): string {
|
|
27
|
+
return date.toISOString().split('T')[0];
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## 注意事项
|
|
32
|
+
|
|
33
|
+
⚠️ **请勿修改** `internal.ts` 文件,运行 `befly sync:admin` 会自动更新此文件
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
📚 更多信息请查看项目文档
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Internal 目录说明
|
|
2
|
+
|
|
3
|
+
⚠️ **重要提示**
|
|
4
|
+
|
|
5
|
+
此目录下的所有文件由 **befly-admin** 框架管理,请勿修改!
|
|
6
|
+
|
|
7
|
+
## 自动更新
|
|
8
|
+
|
|
9
|
+
运行以下命令会自动更新此目录:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
befly sync:admin
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## 注意事项
|
|
16
|
+
|
|
17
|
+
1. ❌ **请勿修改** internal 目录下的任何文件
|
|
18
|
+
2. ❌ **请勿删除** internal 目录
|
|
19
|
+
3. ✅ 如需创建业务页面,请在 internal 目录外创建文件
|
|
20
|
+
|
|
21
|
+
## 文件用途
|
|
22
|
+
|
|
23
|
+
此目录包含框架提供的管理页面(用户管理、角色管理、菜单管理等),确保管理系统的基础功能正常运行。
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
📚 更多信息请查看项目文档
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="section-block user-info-card">
|
|
3
|
+
<div class="user-header">
|
|
4
|
+
<div class="user-avatar">
|
|
5
|
+
<Icon name="User" :size="32" />
|
|
6
|
+
</div>
|
|
7
|
+
<div class="user-basic">
|
|
8
|
+
<div class="user-name">{{ $Data.userInfo.nickname || $Data.userInfo.name || $Data.userInfo.username || '未设置' }}</div>
|
|
9
|
+
<div class="user-role">{{ $Data.userInfo.role?.name || '普通用户' }}</div>
|
|
10
|
+
</div>
|
|
11
|
+
</div>
|
|
12
|
+
<div class="user-details">
|
|
13
|
+
<div class="detail-item">
|
|
14
|
+
<Icon name="Mail" :size="14" />
|
|
15
|
+
<span>{{ $Data.userInfo.email || '未设置' }}</span>
|
|
16
|
+
</div>
|
|
17
|
+
<div v-if="$Data.userInfo.phone" class="detail-item">
|
|
18
|
+
<Icon name="Phone" :size="14" />
|
|
19
|
+
<span>{{ $Data.userInfo.phone }}</span>
|
|
20
|
+
</div>
|
|
21
|
+
<div v-if="$Data.userInfo.lastLoginTime" class="detail-item">
|
|
22
|
+
<Icon name="Clock" :size="14" />
|
|
23
|
+
<span>{{ $Method.formatTime($Data.userInfo.lastLoginTime) }}</span>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
<!-- 仅 dev 角色显示刷新缓存按钮 -->
|
|
28
|
+
<div v-if="$Data.userInfo.roleCode === 'dev'" class="user-actions">
|
|
29
|
+
<tiny-button type="primary" size="mini" :loading="$Data.refreshing" @click="$Method.handleRefreshCache">
|
|
30
|
+
<template #icon>
|
|
31
|
+
<Icon name="RotateCw" :size="14" />
|
|
32
|
+
</template>
|
|
33
|
+
刷新缓存
|
|
34
|
+
</tiny-button>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
</template>
|
|
38
|
+
|
|
39
|
+
<script setup>
|
|
40
|
+
// 响应式数据
|
|
41
|
+
const $Data = $ref({
|
|
42
|
+
userInfo: {},
|
|
43
|
+
refreshing: false
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
// 方法集合
|
|
47
|
+
const $Method = {
|
|
48
|
+
// 获取数据
|
|
49
|
+
async fetchData() {
|
|
50
|
+
try {
|
|
51
|
+
const { data } = await $Http('/addon/admin/admin/info');
|
|
52
|
+
Object.assign($Data.userInfo, data);
|
|
53
|
+
} catch (error) {
|
|
54
|
+
console.error('获取用户信息失败:', error);
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
|
|
58
|
+
// 刷新缓存
|
|
59
|
+
async handleRefreshCache() {
|
|
60
|
+
try {
|
|
61
|
+
$Data.refreshing = true;
|
|
62
|
+
const result = await $Http('/addon/admin/admin/cacheRefresh');
|
|
63
|
+
|
|
64
|
+
if (result.code === 0) {
|
|
65
|
+
const { apis, menus, roles } = result.data;
|
|
66
|
+
const messages = [];
|
|
67
|
+
|
|
68
|
+
if (apis.success) {
|
|
69
|
+
messages.push(`接口缓存: ${apis.count} 个`);
|
|
70
|
+
}
|
|
71
|
+
if (menus.success) {
|
|
72
|
+
messages.push(`菜单缓存: ${menus.count} 个`);
|
|
73
|
+
}
|
|
74
|
+
if (roles.success) {
|
|
75
|
+
messages.push(`角色缓存: ${roles.count} 个`);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
TinyMessage.success({
|
|
79
|
+
message: `缓存刷新成功!${messages.join(',')}`,
|
|
80
|
+
duration: 3000
|
|
81
|
+
});
|
|
82
|
+
} else {
|
|
83
|
+
TinyMessage.warning({
|
|
84
|
+
message: result.msg || '部分缓存刷新失败',
|
|
85
|
+
duration: 3000
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
} catch (error) {
|
|
89
|
+
console.error('刷新缓存失败:', error);
|
|
90
|
+
TinyMessage.error({
|
|
91
|
+
message: '刷新缓存失败,请稍后重试',
|
|
92
|
+
duration: 3000
|
|
93
|
+
});
|
|
94
|
+
} finally {
|
|
95
|
+
$Data.refreshing = false;
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
|
|
99
|
+
// 格式化时间
|
|
100
|
+
formatTime(timestamp) {
|
|
101
|
+
if (!timestamp) return '';
|
|
102
|
+
const date = new Date(Number(timestamp));
|
|
103
|
+
const now = new Date();
|
|
104
|
+
const diff = now - date;
|
|
105
|
+
|
|
106
|
+
// 小于1分钟
|
|
107
|
+
if (diff < 60000) {
|
|
108
|
+
return '刚刚';
|
|
109
|
+
}
|
|
110
|
+
// 小于1小时
|
|
111
|
+
if (diff < 3600000) {
|
|
112
|
+
return `${Math.floor(diff / 60000)}分钟前`;
|
|
113
|
+
}
|
|
114
|
+
// 小于24小时
|
|
115
|
+
if (diff < 86400000) {
|
|
116
|
+
return `${Math.floor(diff / 3600000)}小时前`;
|
|
117
|
+
}
|
|
118
|
+
// 小于7天
|
|
119
|
+
if (diff < 604800000) {
|
|
120
|
+
return `${Math.floor(diff / 86400000)}天前`;
|
|
121
|
+
}
|
|
122
|
+
// 超过7天显示具体日期
|
|
123
|
+
return `${date.getMonth() + 1}月${date.getDate()}日`;
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
// 初始化
|
|
128
|
+
$Method.fetchData();
|
|
129
|
+
</script>
|
|
130
|
+
|
|
131
|
+
<style scoped lang="scss">
|
|
132
|
+
.user-info-card {
|
|
133
|
+
.user-header {
|
|
134
|
+
display: flex;
|
|
135
|
+
align-items: center;
|
|
136
|
+
gap: 12px;
|
|
137
|
+
padding-bottom: 12px;
|
|
138
|
+
border-bottom: 1px solid $border-color;
|
|
139
|
+
|
|
140
|
+
.user-avatar {
|
|
141
|
+
width: 48px;
|
|
142
|
+
height: 48px;
|
|
143
|
+
background: linear-gradient(135deg, $primary-color, #764ba2);
|
|
144
|
+
border-radius: 50%;
|
|
145
|
+
display: flex;
|
|
146
|
+
align-items: center;
|
|
147
|
+
justify-content: center;
|
|
148
|
+
color: white;
|
|
149
|
+
flex-shrink: 0;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.user-basic {
|
|
153
|
+
flex: 1;
|
|
154
|
+
min-width: 0;
|
|
155
|
+
|
|
156
|
+
.user-name {
|
|
157
|
+
font-size: 16px;
|
|
158
|
+
font-weight: 600;
|
|
159
|
+
color: $text-primary;
|
|
160
|
+
margin-bottom: 4px;
|
|
161
|
+
overflow: hidden;
|
|
162
|
+
text-overflow: ellipsis;
|
|
163
|
+
white-space: nowrap;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.user-role {
|
|
167
|
+
font-size: 12px;
|
|
168
|
+
color: $text-secondary;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.user-details {
|
|
174
|
+
display: flex;
|
|
175
|
+
flex-direction: column;
|
|
176
|
+
gap: 8px;
|
|
177
|
+
margin-top: 12px;
|
|
178
|
+
|
|
179
|
+
.detail-item {
|
|
180
|
+
display: flex;
|
|
181
|
+
align-items: center;
|
|
182
|
+
gap: 8px;
|
|
183
|
+
font-size: 12px;
|
|
184
|
+
color: $text-secondary;
|
|
185
|
+
|
|
186
|
+
span {
|
|
187
|
+
overflow: hidden;
|
|
188
|
+
text-overflow: ellipsis;
|
|
189
|
+
white-space: nowrap;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.user-actions {
|
|
195
|
+
margin-top: 16px;
|
|
196
|
+
padding-top: 12px;
|
|
197
|
+
border-top: 1px solid $border-color;
|
|
198
|
+
display: flex;
|
|
199
|
+
justify-content: center;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
</style>
|
package/vite.config.ts
CHANGED
|
@@ -26,8 +26,8 @@ export default defineConfig({
|
|
|
26
26
|
}
|
|
27
27
|
],
|
|
28
28
|
resolvers: [TinyVueSingleResolver],
|
|
29
|
-
// 自动导入 plugins
|
|
30
|
-
dirs: ['./src/plugins'],
|
|
29
|
+
// 自动导入 plugins 目录下的所有导出(internal 优先)
|
|
30
|
+
dirs: ['./src/plugins/internal', './src/plugins'],
|
|
31
31
|
dts: 'src/types/auto-imports.d.ts',
|
|
32
32
|
eslintrc: {
|
|
33
33
|
enabled: false
|
|
@@ -36,7 +36,7 @@ export default defineConfig({
|
|
|
36
36
|
// 自动导入 OpenTiny 组件
|
|
37
37
|
Components({
|
|
38
38
|
resolvers: [TinyVueSingleResolver],
|
|
39
|
-
dirs: ['src/components'],
|
|
39
|
+
dirs: ['src/components/internal', 'src/components'],
|
|
40
40
|
dts: 'src/types/components.d.ts'
|
|
41
41
|
})
|
|
42
42
|
],
|
|
@@ -52,7 +52,7 @@ export default defineConfig({
|
|
|
52
52
|
preprocessorOptions: {
|
|
53
53
|
scss: {
|
|
54
54
|
api: 'modern-compiler',
|
|
55
|
-
additionalData: `@use "@/styles/variables.scss" as *;`
|
|
55
|
+
additionalData: `@use "@/styles/internal/variables.scss" as *;`
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
},
|