├── .env.example ├── .eslintrc.json ├── .gitignore ├── .prettierrc ├── LICENSE ├── README.md ├── index.html ├── package.json ├── postcss.config.js ├── public └── static │ └── config.js ├── src ├── App.vue ├── assets │ ├── 404.png │ ├── login-left.png │ └── logo.png ├── components │ ├── 404 │ │ └── index.vue │ ├── admin │ │ ├── buttons │ │ │ ├── add.vue │ │ │ ├── destroy.vue │ │ │ ├── show.vue │ │ │ └── update.vue │ │ ├── dialog │ │ │ └── index.vue │ │ ├── icons │ │ │ └── index.vue │ │ ├── paginate │ │ │ └── index.vue │ │ ├── select │ │ │ └── index.vue │ │ ├── status │ │ │ └── index.vue │ │ ├── table │ │ │ ├── operate.vue │ │ │ └── search.vue │ │ └── upload │ │ │ ├── index.vue │ │ │ └── oss.vue │ ├── breadcrumbs │ │ └── index.vue │ ├── catchForm │ │ ├── CatchForm.vue │ │ ├── Disabled.vue │ │ ├── FormItem.vue │ │ ├── FormRender.vue │ │ ├── components │ │ │ ├── Alert │ │ │ │ └── index.ts │ │ │ ├── Button │ │ │ │ ├── Button.vue │ │ │ │ └── index.ts │ │ │ ├── Card │ │ │ │ ├── Card.vue │ │ │ │ └── index.ts │ │ │ ├── Cascader │ │ │ │ ├── Cascader.vue │ │ │ │ └── index.ts │ │ │ ├── Checkbox │ │ │ │ ├── Checkbox.vue │ │ │ │ └── index.ts │ │ │ ├── Collapse │ │ │ │ ├── Collapse.vue │ │ │ │ └── index.ts │ │ │ ├── ColorPicker │ │ │ │ ├── ColorPicker.vue │ │ │ │ └── index.ts │ │ │ ├── Custom │ │ │ │ ├── Custom.vue │ │ │ │ └── index.ts │ │ │ ├── DatePicker │ │ │ │ └── index.ts │ │ │ ├── Divider │ │ │ │ ├── Divider.vue │ │ │ │ └── index.ts │ │ │ ├── FormList │ │ │ │ ├── FormList.vue │ │ │ │ └── index.ts │ │ │ ├── Gird │ │ │ │ ├── Grid.vue │ │ │ │ └── index.ts │ │ │ ├── IconSelect │ │ │ │ ├── IconSelect.vue │ │ │ │ └── index.ts │ │ │ ├── Inline │ │ │ │ ├── Inline.vue │ │ │ │ └── index.ts │ │ │ ├── Input │ │ │ │ └── index.ts │ │ │ ├── InputNumber │ │ │ │ ├── InputNumber.vue │ │ │ │ └── index.ts │ │ │ ├── Password │ │ │ │ └── index.ts │ │ │ ├── Radio │ │ │ │ ├── Radio.vue │ │ │ │ └── index.ts │ │ │ ├── Rate │ │ │ │ └── index.ts │ │ │ ├── Select │ │ │ │ ├── Select.vue │ │ │ │ └── index.ts │ │ │ ├── Slider │ │ │ │ └── index.ts │ │ │ ├── Switch │ │ │ │ ├── index.ts │ │ │ │ └── index.vue │ │ │ ├── TextArea │ │ │ │ └── index.ts │ │ │ ├── Title │ │ │ │ ├── Title.vue │ │ │ │ └── index.ts │ │ │ ├── Transfer │ │ │ │ ├── Transfer.vue │ │ │ │ └── index.ts │ │ │ ├── Tree │ │ │ │ ├── Tree.vue │ │ │ │ └── index.ts │ │ │ ├── Upload │ │ │ │ ├── Upload.vue │ │ │ │ └── index.ts │ │ │ ├── UploadFile │ │ │ │ ├── UploadFile.vue │ │ │ │ └── index.ts │ │ │ ├── UploadFiles │ │ │ │ ├── UploadFiles.vue │ │ │ │ └── index.ts │ │ │ ├── UploadImage │ │ │ │ ├── UploadImage.vue │ │ │ │ └── index.ts │ │ │ ├── UploadImages │ │ │ │ ├── UploadImages.vue │ │ │ │ └── index.ts │ │ │ └── index.ts │ │ ├── config │ │ │ ├── commonAttr │ │ │ │ ├── apiAttr.js │ │ │ │ ├── basicAttr.js │ │ │ │ ├── highAttr.js │ │ │ │ ├── index.js │ │ │ │ ├── linkageAttr.js │ │ │ │ ├── mergeAttr.js │ │ │ │ └── optionAttr.js │ │ │ ├── commonType.ts │ │ │ └── symbol.ts │ │ ├── directive │ │ │ ├── index.js │ │ │ ├── selectLoadMore.js │ │ │ └── tableLoadMore.js │ │ ├── hooks │ │ │ ├── useRequest.js │ │ │ └── useSelect.js │ │ ├── index.ts │ │ └── support │ │ │ └── index.ts │ ├── catchTable │ │ ├── components │ │ │ ├── ellipsis │ │ │ │ └── index.vue │ │ │ └── switchColumn │ │ │ │ └── index.vue │ │ ├── csearch.vue │ │ ├── ctable.ts │ │ ├── ctcolumns.tsx │ │ ├── index.vue │ │ ├── tcolumns.vue │ │ ├── types.ts │ │ └── useSearch.ts │ ├── editor │ │ └── index.vue │ └── icon │ │ └── index.vue ├── composables │ ├── curd │ │ ├── useCreate.ts │ │ ├── useDestroy.ts │ │ ├── useEnabled.ts │ │ ├── useExcelDownload.ts │ │ ├── useGetList.ts │ │ ├── useOpen.ts │ │ └── useShow.ts │ └── upload.ts ├── directives │ ├── index.ts │ └── permission │ │ └── action.ts ├── enum │ └── app.ts ├── env.d.ts ├── i18n │ ├── index.ts │ └── languages │ │ ├── en.ts │ │ └── zh.ts ├── layout │ ├── components │ │ ├── Menu │ │ │ ├── index.vue │ │ │ ├── item.vue │ │ │ ├── mask.vue │ │ │ └── menus.vue │ │ ├── content.vue │ │ ├── header │ │ │ ├── contextMenu.vue │ │ │ ├── index.vue │ │ │ ├── lang.vue │ │ │ ├── logo.vue │ │ │ ├── menuSearch.vue │ │ │ ├── notification.vue │ │ │ ├── profile.vue │ │ │ ├── tabs.vue │ │ │ └── theme.vue │ │ └── sider.vue │ └── index.vue ├── main.ts ├── public │ └── tinymce │ │ ├── icons │ │ └── default │ │ │ └── icons.min.js │ │ ├── langs │ │ ├── README.md │ │ └── zh-CN.js │ │ ├── license.txt │ │ ├── models │ │ └── dom │ │ │ └── model.min.js │ │ ├── plugins │ │ ├── advlist │ │ │ └── plugin.min.js │ │ ├── anchor │ │ │ └── plugin.min.js │ │ ├── autolink │ │ │ └── plugin.min.js │ │ ├── autoresize │ │ │ └── plugin.min.js │ │ ├── autosave │ │ │ └── plugin.min.js │ │ ├── charmap │ │ │ └── plugin.min.js │ │ ├── code │ │ │ └── plugin.min.js │ │ ├── codesample │ │ │ └── plugin.min.js │ │ ├── directionality │ │ │ └── plugin.min.js │ │ ├── emoticons │ │ │ ├── js │ │ │ │ ├── emojiimages.js │ │ │ │ ├── emojiimages.min.js │ │ │ │ ├── emojis.js │ │ │ │ └── emojis.min.js │ │ │ └── plugin.min.js │ │ ├── fullscreen │ │ │ └── plugin.min.js │ │ ├── help │ │ │ └── plugin.min.js │ │ ├── image │ │ │ └── plugin.min.js │ │ ├── importcss │ │ │ └── plugin.min.js │ │ ├── insertdatetime │ │ │ └── plugin.min.js │ │ ├── link │ │ │ └── plugin.min.js │ │ ├── lists │ │ │ └── plugin.min.js │ │ ├── media │ │ │ └── plugin.min.js │ │ ├── nonbreaking │ │ │ └── plugin.min.js │ │ ├── pagebreak │ │ │ └── plugin.min.js │ │ ├── preview │ │ │ └── plugin.min.js │ │ ├── quickbars │ │ │ └── plugin.min.js │ │ ├── save │ │ │ └── plugin.min.js │ │ ├── searchreplace │ │ │ └── plugin.min.js │ │ ├── table │ │ │ └── plugin.min.js │ │ ├── template │ │ │ └── plugin.min.js │ │ ├── visualblocks │ │ │ └── plugin.min.js │ │ ├── visualchars │ │ │ └── plugin.min.js │ │ └── wordcount │ │ │ └── plugin.min.js │ │ ├── skins │ │ ├── content │ │ │ ├── dark │ │ │ │ └── content.min.css │ │ │ ├── default │ │ │ │ └── content.min.css │ │ │ ├── document │ │ │ │ └── content.min.css │ │ │ ├── tinymce-5-dark │ │ │ │ └── content.min.css │ │ │ ├── tinymce-5 │ │ │ │ └── content.min.css │ │ │ └── writer │ │ │ │ └── content.min.css │ │ └── ui │ │ │ ├── oxide-dark │ │ │ ├── content.inline.min.css │ │ │ ├── content.min.css │ │ │ ├── skin.min.css │ │ │ └── skin.shadowdom.min.css │ │ │ ├── oxide │ │ │ ├── content.inline.min.css │ │ │ ├── content.min.css │ │ │ ├── skin.min.css │ │ │ └── skin.shadowdom.min.css │ │ │ ├── tinymce-5-dark │ │ │ ├── content.inline.min.css │ │ │ ├── content.min.css │ │ │ ├── skin.min.css │ │ │ └── skin.shadowdom.min.css │ │ │ └── tinymce-5 │ │ │ ├── content.inline.min.css │ │ │ ├── content.min.css │ │ │ ├── skin.min.css │ │ │ └── skin.shadowdom.min.css │ │ ├── themes │ │ └── silver │ │ │ └── theme.min.js │ │ ├── tinymce.d.ts │ │ └── tinymce.min.js ├── router │ ├── constantRoutes.ts │ ├── guard │ │ └── index.ts │ └── index.ts ├── stores │ ├── index.ts │ └── modules │ │ ├── app │ │ └── index.ts │ │ ├── tabs │ │ └── index.ts │ │ └── user │ │ ├── index.ts │ │ └── permissions.ts ├── styles │ ├── element.scss │ ├── index.scss │ ├── tailwind.css │ ├── theme │ │ ├── dark.scss │ │ ├── index.scss │ │ └── light.scss │ └── var.scss ├── support │ ├── cache.ts │ ├── catchAdmin.ts │ ├── helper.ts │ ├── http.ts │ ├── message.ts │ ├── progress.ts │ └── request.ts ├── types │ ├── Menu.ts │ ├── Permission.ts │ ├── User.ts │ ├── responseData.ts │ └── router.ts └── views │ ├── dashboard │ ├── dependencies.vue │ ├── index.vue │ ├── introduce.vue │ └── project.vue │ ├── develop │ ├── generate │ │ ├── components │ │ │ ├── codeGen.vue │ │ │ ├── store.ts │ │ │ └── structure.vue │ │ └── index.vue │ ├── generator │ │ ├── components │ │ │ ├── codeGen.vue │ │ │ ├── structure.ts │ │ │ └── structure.vue │ │ └── index.vue │ ├── module │ │ ├── create.vue │ │ ├── index.vue │ │ └── install.vue │ └── schema │ │ ├── addExistSchema.vue │ │ ├── create.vue │ │ ├── index.vue │ │ ├── show.vue │ │ ├── steps │ │ ├── schema.vue │ │ └── structure.vue │ │ └── store │ │ └── index.ts │ ├── login │ ├── index.vue │ └── login.ts │ ├── permissions │ ├── departments │ │ ├── form │ │ │ └── create.vue │ │ └── index.vue │ ├── jobs │ │ ├── form │ │ │ └── create.vue │ │ └── index.vue │ ├── permissions │ │ ├── form │ │ │ └── create.vue │ │ └── index.vue │ └── roles │ │ ├── form │ │ └── create.vue │ │ └── index.vue │ ├── system │ ├── dictionary │ │ ├── create.vue │ │ └── index.vue │ └── dictionaryValues │ │ ├── create.vue │ │ └── index.vue │ └── user │ ├── center.vue │ ├── components │ ├── department.vue │ ├── loginLog.vue │ ├── operateLog.vue │ └── profile.vue │ ├── create.vue │ └── index.vue ├── tailwind.config.js ├── tsconfig.json ├── tsconfig.node.json ├── vite.config.ts └── wechat.png /.env.example: -------------------------------------------------------------------------------- 1 | VITE_BASE_URL= -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "env": { 3 | "browser": true, 4 | "es2021": true 5 | }, 6 | "extends": ["plugin:vue/essential", "standard"], 7 | "parserOptions": { 8 | "ecmaVersion": "latest", 9 | "parser": "@typescript-eslint/parser", 10 | "sourceType": "module" 11 | }, 12 | "plugins": ["vue", "@typescript-eslint"], 13 | "rules": { 14 | "vue/multi-word-component-names": 0, 15 | "space-before-function-paren": 0, 16 | "vue/no-v-model-argument": "off", 17 | "vue/no-multiple-template-root": "off" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | yarn.lock 10 | package-lock.json 11 | 12 | node_modules 13 | dist 14 | dist-ssr 15 | *.local 16 | .env 17 | # Editor directories and files 18 | .vscode/* 19 | !.vscode/extensions.json 20 | .idea 21 | .DS_Store 22 | *.suo 23 | *.ntvs* 24 | *.njsproj 25 | *.sln 26 | *.sw? 27 | auto-imports.d.ts 28 | components.d.ts 29 | 30 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": false, 3 | "printWidth": 200, 4 | "tabWidth": 2, 5 | "useTabs": false, 6 | "singleQuote": true, 7 | "arrowParens": "avoid", 8 | "trailingComma": "none", 9 | "bracketSpacing": true 10 | } 11 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017-present PanJiaChen 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## 介绍 2 | 3 | 这是前端项目仓库 v3 版本,目前仓库对接了 [tp](https://gitee.com/catchamin/catchadmin-tp)和[webman](https://gitee.com/catchamin/catchadmin-webman) 项目,这个仓库不再模块化。 4 | 5 | 如果使用的是 v2 版本,请使用 V2 分支 6 | 7 | 感谢支持 8 | 9 | ## 专业版 10 | 11 | [专业版本官方地址](https://catchadmin.com/pro) 12 | 13 | 首先感谢一直以来对 `CatchAdmin` 开源项目的支持和使用。作为一名开源工作者,我一直致力于开发出功能强大且易于使用的后台管理系统,以帮助您简化业务流程和提升工作效率。然而,由于某些原因,我不得不做出一些调整。为了能够继续开发和维护这个项目,我将推出一款付费的后台管理系统,以确保我能够持续为您提供高质量的服务和支持。 14 | 15 | 专业版本不会在开源版本做一些破坏性变更,所以当您从开源版本切换到专业版本,不会有任何开发心智负担。但是使用专业版本会有新的组件来配合您的工作。 16 | 17 | 我深信,付费后台管理系统将为您带来更多的价值和便利,帮助您提升工作效率 18 | 19 | ## 桌面端(付费) 20 | 21 | 如果需要桌面端后台,使用 `Electron` 技术栈。可以联系微信咨询 22 | 23 | 24 | 25 | ## 功能 26 | 27 | - [x] 用户管理 后台用户管理 28 | - [x] 部门管理 配置公司的部门结构,支持树形结构 29 | - [x] 岗位管理 配置后台用户的职务 30 | - [x] 菜单管理 配置系统菜单,按钮等等 31 | - [x] 角色管理 配置用户担当的角色,分配权限 32 | - [x] 操作日志 后台用户操作记录 33 | - [x] 登录日志 后台系统用户的登录记录 34 | - [x] 代码生成 生成 API 端的 CURD 操作 35 | - [x] Schema 管理 生成表结构 36 | 37 | ## 讨论 38 | 39 | - 可以提 `ISSUE`,请按照 `issue` 模板提问 40 | - 加入 Q 群 `302266230` 暗号 `catchadmin`。 41 | - 加微信入群,新建🆕 42 | 43 | 44 | 45 | ## 项目地址 46 | 47 | - [github catchadmin](https://github.com/jaguarjack/catch-admin) 48 | 49 | ## 文档地址 50 | 51 | - [文档地址](https://catchadmin.com/docs/3.0/intro) 52 | 53 | ## 预览 54 | 55 | ![zRrjNd.png](https://i.imgtg.com/2023/02/16/dASpg.png) 56 | ![zRsAEQ.png](https://i.imgtg.com/2023/02/16/dAsKK.png) 57 | ![zRsUv6.png](https://i.imgtg.com/2023/02/16/dA0fB.png) 58 | ![zRsV4s.png](https://i.imgtg.com/2023/02/16/dAd5s.png) 59 | 60 | ## 体验地址 61 | 62 | [demo 地址](https://v3.catchadmin.com) 63 | 64 | - 账户: `catch@admin.com` 65 | - 密码: `catchadmin` 66 | 67 | ## 视频教程(😂记得一键三连哦) 68 | 69 | - [catchadmin 安装](https://www.bilibili.com/video/BV1eY411v71J/) 70 | - [catchadmin 开发之模块创建](https://www.bilibili.com/video/BV1jP41127aW/) 71 | - [catchadmin 之快速开发](https://www.bilibili.com/video/BV1Qh4y1J7eB/) 72 | 73 | ## 感谢🙏 74 | 75 | > 排名不分先后 76 | 77 | - [ThinkPHP](https://thinkphp.cn) 78 | - [Vue](https://cn.vuejs.org/) 79 | - [ElementPlus](https://element-plus.org) 80 | - [JetBrains](https://www.jetbrains.com/) 81 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 后台管理系统 8 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "pro", 3 | "private": false, 4 | "version": "0.0.1", 5 | "scripts": { 6 | "dev": "vite", 7 | "build": "vue-tsc --noEmit && vite build --mode production", 8 | "build:release": "vue-tsc --noEmit && vite build --mode release", 9 | "preview": "vite preview" 10 | }, 11 | "dependencies": { 12 | "@heroicons/vue": "^2.2.0", 13 | "@tinymce/tinymce-vue": "^5.1.1", 14 | "@vueuse/core": "^11.3.0", 15 | "cos-js-sdk-v5": "^1.8.6", 16 | "echarts": "^5.5.1", 17 | "element-plus": "^2.8.8", 18 | "nprogress": "^0.2.0", 19 | "pinia": "^2.2.6", 20 | "qiniu-js": "^3.4.2", 21 | "terser": "^5.3.3", 22 | "vue": "^3.5.13", 23 | "vue-draggable-plus": "^0.6.0", 24 | "vue-echarts": "^7.0.3", 25 | "vue-i18n": "10.0.6", 26 | "vue-router": "4.4.5", 27 | "vue3-marquee": "^4.2.2" 28 | }, 29 | "devDependencies": { 30 | "@iconify-json/logos": "^1.2.3", 31 | "@rollup/plugin-alias": "^5.1.1", 32 | "@types/mockjs": "^1.0.10", 33 | "@types/node": "^22.9.3", 34 | "@types/nprogress": "^0.2.3", 35 | "@typescript-eslint/eslint-plugin": "^8.15.0", 36 | "@typescript-eslint/parser": "^8.15.0", 37 | "@vitejs/plugin-vue": "^5.2.0", 38 | "@vitejs/plugin-vue-jsx": "^4.1.0", 39 | "autoprefixer": "^10.4.20", 40 | "axios": "^1.7.7", 41 | "eslint": "^9.15.0", 42 | "eslint-config-standard": "^17.1.0", 43 | "eslint-plugin-import": "^2.31.0", 44 | "eslint-plugin-n": "^17.14.0", 45 | "eslint-plugin-promise": "^7.1.0", 46 | "eslint-plugin-vue": "^9.31.0", 47 | "mockjs": "^1.1.0", 48 | "postcss": "^8.4.49", 49 | "prettier": "3.3.3", 50 | "sass": "^1.81.0", 51 | "tailwindcss": "^3.4.15", 52 | "typescript": "5.6.2", 53 | "unplugin-auto-import": "^0.18.5", 54 | "unplugin-icons": "^0.20.1", 55 | "unplugin-vue-components": "^0.27.4", 56 | "vite": "^6.0.0", 57 | "vite-plugin-html": "^3.2.2", 58 | "vite-plugin-mock": "^3.0.2", 59 | "vue-tsc": "2.1.6" 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {} 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /public/static/config.js: -------------------------------------------------------------------------------- 1 | window.admin_config = { 2 | title: '', 3 | BASE_URL: '', 4 | } 5 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /src/assets/404.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaguarJack/catch-admin-vue/34776ee77fc604547d295cc7fee871ed71499aa2/src/assets/404.png -------------------------------------------------------------------------------- /src/assets/login-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaguarJack/catch-admin-vue/34776ee77fc604547d295cc7fee871ed71499aa2/src/assets/login-left.png -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JaguarJack/catch-admin-vue/34776ee77fc604547d295cc7fee871ed71499aa2/src/assets/logo.png -------------------------------------------------------------------------------- /src/components/404/index.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 29 | -------------------------------------------------------------------------------- /src/components/admin/buttons/add.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 17 | -------------------------------------------------------------------------------- /src/components/admin/buttons/destroy.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 17 | -------------------------------------------------------------------------------- /src/components/admin/buttons/show.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 17 | -------------------------------------------------------------------------------- /src/components/admin/buttons/update.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /src/components/admin/paginate/index.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 24 | -------------------------------------------------------------------------------- /src/components/admin/select/index.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 64 | -------------------------------------------------------------------------------- /src/components/admin/status/index.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 45 | -------------------------------------------------------------------------------- /src/components/admin/table/operate.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 18 | -------------------------------------------------------------------------------- /src/components/admin/table/search.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 32 | 33 | 38 | -------------------------------------------------------------------------------- /src/components/admin/upload/index.vue: -------------------------------------------------------------------------------- 1 | 21 | 22 | 67 | -------------------------------------------------------------------------------- /src/components/admin/upload/oss.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 60 | -------------------------------------------------------------------------------- /src/components/breadcrumbs/index.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 58 | 59 | 72 | -------------------------------------------------------------------------------- /src/components/catchForm/Disabled.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | 16 | 31 | -------------------------------------------------------------------------------- /src/components/catchForm/FormRender.vue: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 14 | -------------------------------------------------------------------------------- /src/components/catchForm/components/Alert/index.ts: -------------------------------------------------------------------------------- 1 | import { ElAlert } from 'element-plus' 2 | export default { 3 | name: 'alert', 4 | component: ElAlert, 5 | type: 'assist' 6 | } 7 | -------------------------------------------------------------------------------- /src/components/catchForm/components/Button/Button.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 36 | 37 | 42 | -------------------------------------------------------------------------------- /src/components/catchForm/components/Button/index.ts: -------------------------------------------------------------------------------- 1 | import Button from './Button.vue' 2 | 3 | export default { 4 | name: 'button', 5 | component: Button, 6 | type: 'assist' 7 | } 8 | -------------------------------------------------------------------------------- /src/components/catchForm/components/Card/Card.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 17 | 18 | 25 | -------------------------------------------------------------------------------- /src/components/catchForm/components/Card/index.ts: -------------------------------------------------------------------------------- 1 | import Card from './Card.vue' 2 | 3 | export default { 4 | name: 'card', 5 | component: Card, 6 | type: 'layout' 7 | } 8 | -------------------------------------------------------------------------------- /src/components/catchForm/components/Cascader/Cascader.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 56 | -------------------------------------------------------------------------------- /src/components/catchForm/components/Cascader/index.ts: -------------------------------------------------------------------------------- 1 | import Cascader from './Cascader.vue' 2 | 3 | export default { 4 | name: 'cascader', 5 | type: 'basic', 6 | component: Cascader 7 | } 8 | -------------------------------------------------------------------------------- /src/components/catchForm/components/Checkbox/Checkbox.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 70 | 71 | 72 | -------------------------------------------------------------------------------- /src/components/catchForm/components/Checkbox/index.ts: -------------------------------------------------------------------------------- 1 | import Checkbox from './Checkbox.vue' 2 | 3 | export default { 4 | name: 'checkbox', 5 | type: 'basic', 6 | component: Checkbox 7 | } 8 | -------------------------------------------------------------------------------- /src/components/catchForm/components/Collapse/Collapse.vue: -------------------------------------------------------------------------------- 1 |