diff --git a/README.md b/README.md index 3a4fa0c..8a9f72d 100644 --- a/README.md +++ b/README.md @@ -1,80 +1 @@ -# vue-manage-system - - - GitHub release - - - license - - -基于 Vue3 + pinia + Element Plus 的后台管理系统解决方案。[线上演示](https://lin-xin.gitee.io/example/vue-manage-system/) - -> Vue2 版本请看 [tag-V4.2.0](https://github.com/lin-xin/vue-manage-system/tree/V4.2.0),带后台功能请看 [tsrpc-manage-system](https://github.com/lin-xin/tsrpc-manage-system) - -[文档地址](https://lin-xin.gitee.io/example/vuems-doc/) -[English document](https://github.com/lin-xin/manage-system/blob/master/README_EN.md) - -## 赞助商 - -### 好问 - -[](https://www.bestqa.net/home/index.html) - -专业问卷服务,一对一客服,按需定制 - -## 支持作者 - -请作者喝杯咖啡吧!(微信号:linxin_20) - -![微信扫一扫](https://lin-xin.gitee.io/images/weixin.jpg) - -## 前言 - -该方案作为一套多功能的后台框架模板,适用于绝大部分的后台管理系统开发。基于 Vue3 + pinia + typescript,引用 Element Plus 组件库,方便开发。实现逻辑简单,适合外包项目,快速交付。 - -## 功能 - -- [x] Element Plus -- [x] vite 3 -- [x] pinia -- [x] typescript -- [x] 登录/注册 -- [x] Dashboard -- [x] 表格/表单 -- [x] 图表 :bar_chart: -- [x] 富文本/markdown 编辑器 -- [x] 图片拖拽/裁剪上传 -- [x] 权限管理 -- [x] 三级菜单 -- [x] 自定义图标 -- [x] 主题切换 - -## 安装步骤 - -> 因为使用 vite3,node 版本需要 14.18+ - -``` -git clone https://github.com/lin-xin/vue-manage-system.git // 把模板下载到本地 -cd vue-manage-system // 进入模板目录 -npm install // 安装项目依赖,等待安装完成之后,安装失败可用 cnpm 或 yarn - -// 运行 -npm run dev - -// 执行构建命令,生成的dist文件夹放在服务器下即可访问 -npm run build -``` - -## 项目截图 - -### 首页 - -![Image text](https://github.com/lin-xin/manage-system/raw/master/screenshots/wms1.png) - -### 登录 - -![Image text](https://github.com/lin-xin/manage-system/raw/master/screenshots/wms3.png) - -## License - -[MIT](https://github.com/lin-xin/vue-manage-system/blob/master/LICENSE) +{'model':'spark','appid':'d3a4647c','apiSecret':'YjRlNGNjYzM5ZjIxNGM5NzhkNDJjMGM4','apiKey':'3ee5ae2b03a4039e79ba1a490631309e'} \ No newline at end of file diff --git a/components.d.ts b/components.d.ts index fe2b2b7..f0b4427 100644 --- a/components.d.ts +++ b/components.d.ts @@ -59,6 +59,7 @@ declare module '@vue/runtime-core' { ElTabPane: typeof import('element-plus/es')['ElTabPane'] ElTabs: typeof import('element-plus/es')['ElTabs'] ElTag: typeof import('element-plus/es')['ElTag'] + ElText: typeof import('element-plus/es')['ElText'] ElTimeline: typeof import('element-plus/es')['ElTimeline'] ElTimelineItem: typeof import('element-plus/es')['ElTimelineItem'] ElTimePicker: typeof import('element-plus/es')['ElTimePicker'] diff --git a/package-lock.json b/package-lock.json index 9e29c08..8b0b929 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,12 +12,17 @@ "@wangeditor/editor": "^5.1.23", "@wangeditor/editor-for-vue": "^5.1.12", "axios": "^1.6.3", + "clipboard": "^2.0.11", "countup.js": "^2.8.0", "cropperjs": "^2.0.0", + "dompurify": "^3.2.4", "echarts": "^5.5.0", "echarts-wordcloud": "^2.1.0", "element-plus": "^2.6.3", + "highlight.js": "^11.11.1", "js-md5": "^0.8.3", + "markdown-it": "^14.1.0", + "marked": "^15.0.7", "md-editor-v3": "^2.11.2", "nprogress": "^0.2.0", "pinia": "^2.1.7", @@ -351,6 +356,12 @@ "@types/lodash": "*" } }, + "node_modules/@types/trusted-types": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz", + "integrity": "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==", + "optional": true + }, "node_modules/@types/web-bluetooth": { "version": "0.0.16", "resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.16.tgz", @@ -823,6 +834,11 @@ "node": ">= 8" } }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, "node_modules/async-validator": { "version": "4.2.5", "resolved": "https://registry.npmjs.org/async-validator/-/async-validator-4.2.5.tgz", @@ -918,6 +934,16 @@ "fsevents": "~2.3.2" } }, + "node_modules/clipboard": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz", + "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", + "dependencies": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, "node_modules/codepage": { "version": "1.15.0", "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.15.0.tgz", @@ -1014,6 +1040,11 @@ "node": ">=0.4.0" } }, + "node_modules/delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" + }, "node_modules/dom7": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/dom7/-/dom7-3.0.0.tgz", @@ -1022,6 +1053,14 @@ "ssr-window": "^3.0.0-alpha.1" } }, + "node_modules/dompurify": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.2.4.tgz", + "integrity": "sha512-ysFSFEDVduQpyhzAob/kkuJjf5zWkZD8/A9ywSp1byueyuCfHamrCBa14/Oc2iiB0e51B+NpxSl5gmzn+Ms/mg==", + "optionalDependencies": { + "@types/trusted-types": "^2.0.7" + } + }, "node_modules/echarts": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.5.0.tgz", @@ -1634,6 +1673,14 @@ "node": ">= 6" } }, + "node_modules/good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", + "dependencies": { + "delegate": "^3.1.2" + } + }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -1646,6 +1693,14 @@ "node": ">= 0.4" } }, + "node_modules/highlight.js": { + "version": "11.11.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.11.1.tgz", + "integrity": "sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==", + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/html-void-elements": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.1.tgz", @@ -1755,6 +1810,14 @@ "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", "dev": true }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, "node_modules/local-pkg": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz", @@ -1834,6 +1897,33 @@ "node": ">=12" } }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/marked": { + "version": "15.0.7", + "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.7.tgz", + "integrity": "sha512-dgLIeKGLx5FwziAnsk4ONoGwHwGPJzselimvlVskE9XLN4Orv9u2VA3GWw/lYUqjfA0rUT/6fqKwfZJapP9BEg==", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" + } + }, "node_modules/md-editor-v3": { "version": "2.11.3", "resolved": "https://registry.npmjs.org/md-editor-v3/-/md-editor-v3-2.11.3.tgz", @@ -1842,6 +1932,11 @@ "vue": "^3.2.47" } }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==" + }, "node_modules/memoize-one": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz", @@ -2111,6 +2206,14 @@ "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "engines": { + "node": ">=6" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -2237,6 +2340,11 @@ "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==", "dev": true }, + "node_modules/select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==" + }, "node_modules/slate": { "version": "0.72.8", "resolved": "https://registry.npmjs.org/slate/-/slate-0.72.8.tgz", @@ -2321,6 +2429,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" + }, "node_modules/tiny-warning": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", @@ -2361,6 +2474,11 @@ "node": ">=4.2.0" } }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==" + }, "node_modules/ufo": { "version": "1.5.3", "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz", diff --git a/package.json b/package.json index 0f1eded..8a5a210 100644 --- a/package.json +++ b/package.json @@ -12,12 +12,17 @@ "@wangeditor/editor": "^5.1.23", "@wangeditor/editor-for-vue": "^5.1.12", "axios": "^1.6.3", + "clipboard": "^2.0.11", "countup.js": "^2.8.0", "cropperjs": "^2.0.0", + "dompurify": "^3.2.4", "echarts": "^5.5.0", "echarts-wordcloud": "^2.1.0", "element-plus": "^2.6.3", + "highlight.js": "^11.11.1", "js-md5": "^0.8.3", + "markdown-it": "^14.1.0", + "marked": "^15.0.7", "md-editor-v3": "^2.11.2", "nprogress": "^0.2.0", "pinia": "^2.1.7", diff --git a/src/components/table-custom.vue b/src/components/table-custom.vue index ee34108..a3ded41 100644 --- a/src/components/table-custom.vue +++ b/src/components/table-custom.vue @@ -78,7 +78,7 @@