签入版本

This commit is contained in:
2026-10-10 19:17:02 +08:00
parent 3423dea03f
commit 32f941b631
232 changed files with 4264 additions and 6251 deletions
@@ -82,34 +82,34 @@ src/views/
```vue
<template>
<!-- 搜索区 -->
<el-form :model="searchForm" inline>
<el-form-item label="名称">
<el-input v-model="searchForm.name" />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="fetchData">搜索</el-button>
</el-form-item>
</el-form>
<a-form :model="searchForm" layout="inline">
<a-form-item label="名称">
<a-input v-model:value="searchForm.name" allow-clear />
</a-form-item>
<a-form-item>
<a-button type="primary" @click="fetchData">搜索</a-button>
</a-form-item>
</a-form>
<!-- 操作栏 -->
<el-button v-perm="'sys:example:add'" type="primary" @click="handleAdd">新增</el-button>
<a-button v-perm="'sys:example:add'" type="primary" @click="handleAdd">新增</a-button>
<!-- 数据表格 -->
<el-table :data="tableData">
<el-table-column prop="id" label="ID" />
<el-table-column prop="name" label="名称" />
<el-table-column prop="statusText" label="状态" />
<el-table-column label="操作">
<template #default="{ row }">
<el-button v-perm="'sys:example:update'" @click="handleEdit(row)">编辑</el-button>
<el-button v-perm="'sys:example:delete'" type="danger" @click="handleDelete(row.id)">删除</el-button>
<a-table :data-source="tableData" :pagination="false" :row-key="(row) => row.id">
<a-table-column title="ID" data-index="id" />
<a-table-column title="名称" data-index="name" />
<a-table-column title="状态" data-index="statusText" />
<a-table-column title="操作">
<template #bodyCell="{ record }">
<a-button v-perm="'sys:example:update'" type="link" @click="handleEdit(record)">编辑</a-button>
<a-button v-perm="'sys:example:delete'" danger type="link" @click="handleDelete(record.id)">删除</a-button>
</template>
</el-table-column>
</el-table>
</a-table-column>
</a-table>
<!-- 分页 -->
<el-pagination v-model:current-page="pageNo" v-model:page-size="pageSize"
:total="total" @change="fetchData" />
<a-pagination v-model:current="pageNo" v-model:page-size="pageSize"
:total="total" show-total @change="fetchData" />
</template>
<script setup lang="ts">
@@ -230,8 +230,6 @@ src/utils/http/axios/
| asyncRouteStore | `asyncRoute.ts` | 动态路由、keep-alive 缓存列表 |
| projectSettingStore | `projectSetting.ts` | 项目配置(主题、布局等) |
| tabsViewStore | `tabsView.ts` | 标签页导航状态 |
| designSettingStore | `designSetting.ts` | 主题设计配置 |
| ossConfigStore | `ossConfig.ts` | 云存储配置 |
| lockscreenStore | `lockscreen.ts` | 锁屏状态 |
**userStore 核心流程:**
@@ -312,10 +310,10 @@ src/utils/http/axios/
```vue
<!-- v-perm:单权限 -->
<el-button v-perm="'sys:user:add'" type="primary">新增</el-button>
<a-button v-perm="'sys:user:add'" type="primary">新增</a-button>
<!-- v-perms:多权限(满足任一即可) -->
<el-button v-perms="['sys:user:add', 'sys:user:update']">操作</el-button>
<a-button v-perms="['sys:user:add', 'sys:user:update']">操作</a-button>
```
无权限时元素直接从 DOM 移除,而非仅隐藏。
@@ -330,9 +328,10 @@ src/utils/http/axios/
| Hook | 文件 | 说明 |
|------|------|------|
| `usePermission` | `hooks/web/usePermission.ts` | 权限判断(hasPermission、hasSomePermission) |
| `useTable` | `hooks/web/useTable.ts` | 表格通用逻辑(分页、搜索、刷新) |
| `useForm` | `hooks/web/useForm.ts` | 表单通用逻辑(提交、重置、校验) |
| `usePermission` | `hooks/web/usePermission.ts` | 权限判断(hasPermission、hasEveryPermission、hasSomePermission) |
| `usePage` | `hooks/web/usePage.ts` | 分页参数管理 |
| `useECharts` | `hooks/web/useECharts.ts` | ECharts 图表挂载与销毁 |
| `useForm` | `components/Form/src/hooks/useForm.ts` | 表单注册(BasicForm 配合 `@register` 使用) |
### Directives(自定义指令)
@@ -347,7 +346,7 @@ src/utils/http/axios/
|------|------|------|
| HTTP | `utils/http/axios/` | Axios 封装 |
| Storage | `utils/Storage.ts` | localStorage 封装 |
| Dict | `utils/dict.ts` | 字典工具(从 Store 获取字典值) |
| useLockFn | `utils/useLockFn.ts` | 防重复提交(请求级加锁) |
## 数据流向