{"id":14989533,"url":"https://github.com/scscms/vue-scscms","last_synced_at":"2025-07-24T06:03:32.614Z","repository":{"id":93555175,"uuid":"102345184","full_name":"scscms/vue-scscms","owner":"scscms","description":"基于koa2+mysql+vue2.0+Element阳光内容管理系统，模范学习Demo","archived":false,"fork":false,"pushed_at":"2022-09-20T13:58:48.000Z","size":900,"stargazers_count":304,"open_issues_count":1,"forks_count":105,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-05-19T08:12:11.662Z","etag":null,"topics":["axios","element-ui","koa2","koa2-mysql-vue2","vue2","vue2-demo"],"latest_commit_sha":null,"homepage":"","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scscms.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2017-09-04T09:42:12.000Z","updated_at":"2025-05-06T11:26:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"70d1f6c0-faac-490b-9bc3-5f85b909948e","html_url":"https://github.com/scscms/vue-scscms","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/scscms/vue-scscms","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scscms%2Fvue-scscms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scscms%2Fvue-scscms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scscms%2Fvue-scscms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scscms%2Fvue-scscms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scscms","download_url":"https://codeload.github.com/scscms/vue-scscms/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scscms%2Fvue-scscms/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266801336,"owners_count":23986371,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-24T02:00:09.469Z","response_time":99,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["axios","element-ui","koa2","koa2-mysql-vue2","vue2","vue2-demo"],"created_at":"2024-09-24T14:18:31.157Z","updated_at":"2025-07-24T06:03:32.590Z","avatar_url":"https://github.com/scscms.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# [vue-scscmsV2.0 \u003csup\u003ewebpack V4版\u003c/sup\u003e](https://github.com/scscms/vue-scscms)\n\n[![](https://img.shields.io/badge/Powered%20by-vue--scscms-brightgreen.svg)](https://github.com/scscms/vue-scscms)\n[![license](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/scscms/vue-scscms/blob/master/LICENSE)\n[![npm](https://img.shields.io/badge/npm-6.4.1-yellowgreen.svg)](https://github.com/scscms/vue-scscms)\n[![node](https://img.shields.io/badge/node-8.11.0-yellow.svg)](https://github.com/scscms/vue-scscms)\n[![koa](https://img.shields.io/badge/koa-2.5.0-orange.svg)](https://github.com/scscms/vue-scscms)\n[![vue](https://img.shields.io/badge/vue-2.5.17-red.svg)](https://github.com/scscms/vue-scscms)\n[![Element](https://img.shields.io/badge/Element-3.0.1-blue.svg)](https://github.com/scscms/vue-scscms)\n\n基于koa2+mysql+vue2.0+Element+ESlint阳光内容管理系统\n\n    简单文章系统模板，含注册、登录、权限管理、用户管理范例。旨在提供一个完整的前后台node+vue2.0开发的脚手架，由您按需扩展。\n\n### 功能简介\n\t1.用户注册：邮箱激活帐号、邮箱密码找回；用户登录使用token验证。\n\t2.用户管理：新增帐号、编辑用户、删除用户、激活用户；\n\t3.分类管理：无限级文章分类管理；\n\t4.文章管理：文章审核、新增、编辑、删除；\n\t5.上传管理：删除上传文件、删除上传记录；\n\n### 在线预览\n![image](static/readme.png)\n\u003ca href=\"http://103.236.255.179:3001/login\" target=\"_blank\"\u003e点击查看在线DEMO\u003c/a\u003e\n\n**测试帐号**\n\nuser：`vip会员`   password：`vip123`\n\n### 安装\n\n```\ngit clone https://github.com/scscms/vue-scscms.git\n\n//先git克隆或者下载下来，进入项目目录执行npm命令\n\nnpm install\n```\n\n#### Node.js要求：\n\n基于 Koa2, 使用了异步函数，其中Node.js版本v8.9 或更高版本 (推荐 8.11.0+)\n\n### 特别说明\n\n- 1.如果您只是想查看效果可执行\n\n```\nnpm run dev\n```\n\n然后注册帐号并激活，登录，开始旅途。\n\n注意：因使用公用数据库，且开放最大权限供所有人体验，所以所有资料都有可能被其他用户修改或删除的可能！\n\n- 2.安装私有数据库\n\n默认情况下使用的是公用数据库。为了达到更好的用户体验和数据安全推荐您自己安装mysql来测试。\n首先安装mysql和新建用户等，教程自行解决。\n接着在mysql新建数据库和建表，为了方便操作在此已经提供sql文档：参见`server/mysql.sql` 或 `server/mysql8.sql`\n\n- 然后打开文件`server/config.js`修改数据库和邮箱配置。\n\n- 然后打开文件`vue.config.js`修改`target: 'http://103.27.4.146:3001'`为你自己的服务器地址，默认为`target: 'http://localhost:3001',`。\n\n- 然后打开文件`server/common.js`修改`web_domain: 'http://103.27.4.146:3001'`为你自己的服务器地址，默认为`web_domain: 'http://localhost:3001',`。\n\n- 最后执行npm脚本：\n\n```\nnpm run start #运行前后端（开发）\n```\n\n开始您的愉快之旅。\n\n注意：在开发环境下上传的图片不能正常访问，需要在生产环境下才能正常浏览图片！（编辑器中的图片使用的是beas64不受此影响）\n\n- 开始完成后打包\n\n```\nnpm run build\n```\n\n- 上线后只运行服务\n\n```\nnpm run server\n```\n\n## 项目架构\n\n```\n├── dist // Vue build 后的文件夹\n│   ├── css //打包后的css文件\n│   ├── fonts //打包后的字体文件\n│   ├── img //打包后的图片文件\n│   ├── js //打包后的js文件\n│   ├── upFile //上传文件夹\n│   ├── favicon.ico // ico图标\n│   └── index.html // 首页模板\n├── public // 首页模板文件\n│   ├── favicon.ico // ico图标\n│   └── index.html // 首页模板\n├── server // Koa后端，用于提供Api\n│   ├── api // api接口文件夹，已经为每个接口独立一个文件\n│   ├── common.js // 前后台共用配置参数，包括权限配置\n│   ├── config.js // 后台配置文件夹，主要是数据库及邮箱服务配置\n│   ├── mysql.sql // 数据库表文档\n│   └── routes.js // 后台route-路由\n├── src // vue-cli 生成\u0026自己添加的utils工具类\n│   ├── assets // 相关静态资源存放\n│   ├── components // 公用组件\n│   │      ├── index.js\n│   │      ├── Sidebar.vue //侧边栏组件\n│   │      └── upFile.vue // 上传组件\n│   ├── page // 单文件组件\n│   │    ├── Article // 文章\n│   │    │     ├── add.vue //添加、编辑文章\n│   │    │     ├── list.vue //文章列表\n│   │    │     └── sort.vue //文章分类\n│   │    ├── UpFile // 上传\n│   │    │     └── list.vue //上传列表\n│   │    ├── User // 用户\n│   │    │     ├── add.vue //添加、编辑用户\n│   │    │     └── list.vue //用户列表\n│   │    ├── Home.vue //公共首页\n│   │    ├── Login.vue // 登录页、注册页\n│   │    └── NoFind.vue // 404页面\n│   ├── store // vuex文件\n│   │    └── index.js // 缓存用户信息\n│   ├── utils // 插件\n│   │    ├── index.js\n│   │    ├── ajax.js  //axios封装请求\n│   │    └── storage.js // localStorage缓存\n│   ├── App.vue // 主文件\n│   ├── main.js // 引入Vue等资源、挂载Vue的入口js\n│   └── routes.js // 前端路由\n├── static // README引用的图片文件夹（与项目无关）\n├── .editorconfig // 编辑器格式配置\n├── .gitignore // Git之忽略文件\n├── app.js  // 后端服务入口文件\n├── babel.config.js  // babel配置文件\n├── log.txt  // 后端请求日志\n├── package.json // npm的依赖、项目信息文件\n├── package-lock.json // npm安装包锁定文件（想更新包时要删除它）\n├── README.md\t//说明文档\n├── server-entry.js // 后端服务入口重启文件\n├── vue.config.js // vue配置文件\n\n```\n\n### 后台API接口说明\n-  1、login: 用户登录（访问权限：游客）\n-  2、register: 用户注册（访问权限：游客）\n-  3、listArticle: 文章列表（访问权限：自定义）\n-  4、listSort: 分类列表（访问权限：自定义）\n-  5、saveUpFile: 保存上传记录\n-  6、listUpFile: 上传文件列表（访问权限：自定义）\n-  7、delFile: 删除上传文件（访问权限：自定义）\n-  8、retrieve: 找回密码（访问权限：游客）\n-  9、findPassword: 激活找回密码（访问权限：游客）\n- 10、active: 帐号激活（访问权限：游客）\n- 11、changePassword: 修改密码（访问权限：所有用户）\n- 12、updateArticle: 更新文章（访问权限：自定义）\n- 13、passedArticle: 审核文章（访问权限：自定义）\n- 14、deleteArticle: 删除文章（访问权限：自定义）\n- 15、getArticleById: 通过ID获取文章详情（访问权限：游客）\n- 16、updateSort: 更新分类（访问权限：自定义）\n- 17、deleteSort: 删除分类（访问权限：自定义）\n- 18、batchDelSort: 批量删除分类（访问权限：自定义）\n- 19、listUser: 用户列表（访问权限：自定义）\n- 20、passedUser: 审核用户（访问权限：自定义）\n- 21、deleteUser: 删除用户（访问权限：自定义）\n- 22、getUserById: 通过ID获取用户信息（访问权限：同updateUser）\n- 23、upUserPic: 用户上传头像（访问权限：所有用户）\n- 24、updateUser: 更新用户（访问权限：自定义）\n- 25、upFile: 上传过程（访问权限：自定义，代码在server/routes.js里）\n\n### 后记\n\n- 2018-10-23 使用`cdn`减少打包文件\n- 2020-04-12 使用node-windows实现服务器发布\n\n此项目直接由`vue-cli 3.0`生成并改进。使用的是`webpack V4`及`node V10.9.0`。\n\n时间匆忙难免错漏，肯请指正。并欢迎交流学习，并献上您的宝贵意思。\n\nQQ群：25702761  邮箱：guangda1234@126.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscscms%2Fvue-scscms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscscms%2Fvue-scscms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscscms%2Fvue-scscms/lists"}