# Agel-Admin
> 一个基于 vite + vue3 + typescript + element-plus + element-plus-crx 的后台管理系统基础模板。
- [预览地址:](https://agrass.gitee.io/agel-admin/)
![AgAdmin](https://gitee.com/agrass/agel-admin/raw/main/src/assets/admin.jpg)
一个常见增删改查的列表模板页,结构清晰,如此简单:
```html
<template>
<div class="flex flex-col overflow-hidden">
<!-- 查询 -->
<ElForm ref="searchRef" v-show="search.show" :model="search.model" label-width="80px">
<AgelFormGrid :items="search.items" responsive></AgelFormGrid>
<div class="flex justify-center mb-3">
<ElButton icon="RefreshRight" @click="() => searchRef?.resetFields()">重置</ElButton>
<ElButton type="primary" icon="Search" @click="table.request">查询</ElButton>
</div>
</ElForm>
<!-- 按钮条 -->
<div class="table-bar flex justify-between items-center mb-3">
<div>
<ElButton icon="Plus" @click="form.toAdd">新增</ElButton>
<ElButton icon="Delete">删除</ElButton>
</div>
<div>
<ElButton icon="Refresh" round @click="table.request"></ElButton>
<ElButton icon="Search" round @click="search.show = !search.show"></ElButton>
</div>
</div>
<!-- 列表 -->
<AgelTable class="flex-1" v-bind="table" v-model:page="table.page"> </AgelTable>
<!-- 弹窗表单 -->
<ElDialog v-model="form.show" :title="form.title" width="800px" top="10vh">
<ElForm ref="formRef" :model="form.model" label-width="80px">
<AgelFormDesc :items="form.items" :view-model="form.state == 'view'"></AgelFormDesc>
</ElForm>
<template #footer>
<ElButton v-if="form.state !== 'view'" type="primary" @click="form.submit">提交</ElButton>
</template>
</ElDialog>
</div>
</template>
<script lang="tsx" setup>
import { reactive, ref, nextTick } from 'vue'
import type { FormInstance } from 'element-plus'
import http from '@/api'
type Row = { name: string, age: string, email: string, decs: string, date: string, }
const searchRef = ref<FormInstance>()
const search = reactive({
show: false,
model: { name: '', age: '', email: "", date: '' },
items: [
{ label: '姓名', prop: "name", },
{ label: '年龄', prop: "age", },
{ label: '邮件', prop: 'email', },
{ label: '出生日期', prop: 'date', slot: "el-date-picker" },
]
})
const formRef = ref<FormInstance>()
const form = reactive({
show: false,
title: '',
state: 'edit',
model: { name: '', age: '', date: '', email: "", decs: '' },
items: [
{ label: '姓名', prop: "name", required: true },
{ label: '年龄', prop: "age", required: true },
{ label: '出生日期', prop: 'date', slot: "el-date-picker" },
{ label: '邮件', span: 3, prop: 'email', },
{ label: '介绍', prop: 'decs', span: 3, attrs: { type: 'textarea', rows: 5 } },
],
toAdd: () => {
form.show = true
form.title = '新增用户'
form.state = 'add'
nextTick(() => {
formRef.value?.resetFields()
})
},
toEdit: (row: Row) => {
form.show = true
form.title = '编辑用户资料'
form.state = 'edit'
nextTick(() => {
form.model = { ...row }
})
},
toView: (row: Row) => {
form.show = true
form.title = '查看用户资料'
form.state = 'view'
nextTick(() => {
form.model = { ...row }
})
},
submit: () => {
formRef.value?.validate().then(() => {
form.show = false
table.request()
})
}
})
const table = reactive({
loading: false,
border: true,
data: [] as Row[],
page: { sortOrder: null, sortProp: '', currentPage: 1, pageSize: 10, total: 0, },
columns: [
{ label: '#', type: "selection" },
{ label: '姓名', prop: "name", sortable: 'custom', width: 100 },
{ label: '年龄', prop: "age", sortable: 'custom', width: 100 },
{ label: '邮件', prop: 'email', width: 250 },
{ label: '出生日期', prop: 'date', width: 150 },
{ label: '介绍', prop: 'decs', showOverflowTooltip: true },
{
width: '120px',
label: "操作",
fixed: 'right',
slot: (scope: any) => {
return <div>
<el-button link type='primary' onClick={() => form.toView(scope.row)} >查看 </el-button>
<el-divider direction="vertical" />
<el-button link type='primary' onClick={() => form.toEdit(scope.row)} > 编辑</el-button>
</div>
}
}
],
request: () => {
table.loading = true
http.post('/mock/data', { size: table.page.pageSize }).then(res => {
table.data = res.data.list
table.page.total = res.data.total
table.loading = false
})
},
})
table.request()
</script>
```
没有合适的资源?快使用搜索试试~ 我知道了~
一个基于 vite + vue3 + typescript + element-plsu 简洁的后台管理系统模板。.zip
共56个文件
vue:26个
ts:12个
json:6个
需积分: 0 0 下载量 80 浏览量
2024-01-04
14:57:24
上传
评论
收藏 393KB ZIP 举报
温馨提示
Vue3,springboot,element-ui使用技巧,实战应用开发小系统参考资料,源码参考。 详细介绍了一些Qt框架的各种功能和模块,以及如何使用Qt进行GUI开发、网络编程和跨平台应用开发等。 适用于初学者和有经验的开发者,能够帮助你快速上手Qt并掌握其高级特性。
资源推荐
资源详情
资源评论
收起资源包目录
一个基于 vite + vue3 + typescript + element-plsu 简洁的后台管理系统模板。.zip (56个子文件)
VUE3_new
.vscode
extensions.json 75B
tsconfig.node.json 286B
tailwind.config.js 222B
src
main.ts 742B
App.vue 2KB
assets
admin.jpg 516KB
logo.svg 308B
styles
class.css 455B
tailwind.css 83B
ui-cover.css 177B
index.ts 217B
api
mock.ts 1KB
index.ts 569B
utils
useColor.ts 2KB
useElTheme.ts 1KB
stores
useUserStore.ts 2KB
useAppStore.ts 1KB
router
routes.ts 5KB
index.ts 813B
layouts
ErroLayout
404.vue 201B
401.vue 230B
AppMain
AppMain.vue 3KB
IndexLayout
HorizontalLayout.vue 850B
VerticalLayout.vue 1KB
dynamicLayout.vue 669B
ClassicsLayout.vue 1KB
AppThemeDrawer
AppThemeDrawer.vue 5KB
IframeLayout
IframeLayout.vue 739B
AppBreadcrumb
AppBreadcrumb.vue 1KB
IconBar
IconOperation.vue 291B
IconCollapse.vue 410B
IconFullScreen.vue 305B
IconBarLeft.vue 430B
IconBarRight.vue 479B
IconRemind.vue 1KB
IconUser.vue 1KB
views
table
baseTable.vue 4KB
roles
admin.vue 119B
user.vue 123B
switch-roles.vue 716B
menu
menu.vue 170B
home
home.vue 116B
cacheView
cacheView.vue 224B
login
login.vue 2KB
package.json 1KB
public
favicon.ico 4KB
.prettierrc.json 163B
env.d.ts 38B
tsconfig.app.json 260B
.eslintrc.cjs 471B
vite.config.ts 367B
index.html 321B
.gitignore 302B
tsconfig.json 139B
README.md 5KB
postcss.config.js 119B
共 56 条
- 1
资源评论
白话Learning
- 粉丝: 3280
- 资源: 2464
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Java的在线教育平台设计源码
- 升降压斩波电路电路图,buck-boost电路图
- Python 程序语言设计模式思路-结构型模式:组合模式:将对象组合成树形结构
- 毕业设计基于python矩阵分解的推荐算法研究源码+详细文档+全部数据资料 高分项目.zip
- 基于网络的入侵检测系统源码+数据集+详细文档(高分毕业设计).zip
- 微信小程序源码 旅行故事分享 - 面包旅行App界面设计与文本展示资源下载
- 微信小程序源码 创意互动游戏 - 你画我猜App下载
- 摸底考试_学生版20230305.py
- 课程设计基于FPGA数字钟课程设计源码+课设报告(95分以上).zip
- 基于Java的企业家申报系统设计源码
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功