Compare commits
83 Commits
Author | SHA1 | Date | |
---|---|---|---|
f2be5b1f4b | |||
0c5843db39 | |||
ce9a74411e | |||
06203be6bd | |||
4f14db9da5 | |||
1b32c0c9b8 | |||
0f14187024 | |||
b6849d2538 | |||
94194edee5 | |||
563a42ee9a | |||
7a531948c7 | |||
ce2b13d3bc | |||
b1fd38cf4b | |||
a875b32d93 | |||
c670138728 | |||
5099214bc4 | |||
edfb719d54 | |||
4a3c6d4bb6 | |||
8c9034df30 | |||
547d96ea2c | |||
74afe6fdd9 | |||
5f25054a14 | |||
ad8f790e18 | |||
8572222960 | |||
ea2f4bbea0 | |||
2a0320f1ce | |||
28b7aa25dc | |||
e5c25374bb | |||
8142c5da1f | |||
2476a522be | |||
578981c4a2 | |||
86fbc4990c | |||
8b9389a91c | |||
2155a7270e | |||
98803b5359 | |||
2f44697242 | |||
95b10ee0b0 | |||
54581b65f2 | |||
e7fa149e43 | |||
8eb7d29711 | |||
a27df1e71f | |||
5fc22fb732 | |||
c0a19ed854 | |||
2f896b90a2 | |||
2630d2870d | |||
cbcffbb50f | |||
846cf59571 | |||
2f4454e52a | |||
ef15dc6432 | |||
cc10c2e179 | |||
8ca1145b7b | |||
fdf8dac3ad | |||
eb7f8ee513 | |||
ec6a8de310 | |||
38c12e7190 | |||
60958c24fd | |||
86e31f2665 | |||
7e2123e1da | |||
ea04344ead | |||
cadf5dc2ef | |||
8975d3728f | |||
76b99d712b | |||
fbbacf747e | |||
263ba670e4 | |||
b0ea7fced4 | |||
9499104723 | |||
9fc77623db | |||
a505728aac | |||
d666494515 | |||
b8f337300b | |||
041f3ee9f4 | |||
2d5d0687d4 | |||
|
33a93a12b4 | ||
|
1bc2e5c198 | ||
|
9cc3fa732a | ||
|
44e23d00ca | ||
|
8fd08c9167 | ||
|
5e7113935c | ||
|
46e11caafc | ||
|
ea60478304 | ||
|
fe22b3cd94 | ||
|
7c06214190 | ||
|
73a9ab0379 |
1
.dockerignore
Normal file
1
.dockerignore
Normal file
@@ -0,0 +1 @@
|
||||
node_modules
|
62
.drone.yml
Normal file
62
.drone.yml
Normal file
@@ -0,0 +1,62 @@
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: vue-admin
|
||||
|
||||
trigger:
|
||||
branch: ci
|
||||
|
||||
steps:
|
||||
|
||||
# - name: build-docker-image
|
||||
# image: plugins/docker
|
||||
# settings:
|
||||
# username:
|
||||
# from_secret: docker_reg_username
|
||||
# password:
|
||||
# from_secret: docker_reg_password
|
||||
# repo: docker.zcj.plus/drone-ci/fe
|
||||
# tags: latest
|
||||
# registry: https://docker.zcj.plus
|
||||
|
||||
# - name: login-docker
|
||||
# image: appleboy/drone-ssh
|
||||
# settings:
|
||||
# envs:
|
||||
# - docker_reg_username
|
||||
# - docker_reg_password
|
||||
# host:
|
||||
# from_secret: ssh_host
|
||||
# username:
|
||||
# from_secret: ssh_username
|
||||
# password:
|
||||
# from_secret: ssh_password
|
||||
# port:
|
||||
# from_secret: ssh_port
|
||||
# script:
|
||||
# - docker login -u ${DOCKER_REG_USERNAME} -p ${DOCKER_REG_PASSWORD} https://docker.zcj.plus
|
||||
# - docker pull docker.zcj.plus/drone-ci/fe
|
||||
|
||||
- name: deploy
|
||||
image: docker/compose
|
||||
environment:
|
||||
DOCKER_REG_USERNAME:
|
||||
from_secret: docker_reg_username
|
||||
DOCKER_REG_PASSWORD:
|
||||
from_secret: docker_reg_password
|
||||
volumes:
|
||||
- name: dockersock
|
||||
path: /var/run/docker.sock
|
||||
- name: frpc
|
||||
path: /drone/src/frpc.ini
|
||||
commands:
|
||||
- docker login -u $DOCKER_REG_USERNAME -p $DOCKER_REG_PASSWORD https://docker.zcj.plus
|
||||
- docker-compose up -d
|
||||
|
||||
|
||||
volumes:
|
||||
- name: frpc
|
||||
host:
|
||||
path: /mnt/d/ci_volumes/frpc_ini/fe.ini
|
||||
- name: dockersock
|
||||
host:
|
||||
path: /var/run/docker.sock
|
21
Dockerfile
Normal file
21
Dockerfile
Normal file
@@ -0,0 +1,21 @@
|
||||
FROM node:lts as dist
|
||||
|
||||
WORKDIR /src
|
||||
|
||||
COPY . .
|
||||
|
||||
RUN yarn && \
|
||||
yarn build:prod
|
||||
|
||||
|
||||
FROM nginx:1.19.2
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY --from=dist /src/dist .
|
||||
|
||||
COPY nginx.conf /etc/nginx/nginx.conf
|
||||
|
||||
EXPOSE 80
|
||||
|
||||
CMD ["nginx","-g","daemon off;"]
|
15
Node.Dockerfile
Normal file
15
Node.Dockerfile
Normal file
@@ -0,0 +1,15 @@
|
||||
FROM node:lts
|
||||
|
||||
WORKDIR /src
|
||||
|
||||
COPY . .
|
||||
|
||||
RUN yarn && \
|
||||
yarn build:prod && \
|
||||
yarn global add pm2 http-server
|
||||
|
||||
EXPOSE 80
|
||||
|
||||
# CMD ["http-server","/src/dist","-p","80"]
|
||||
|
||||
CMD ["bash","http.sh"]
|
@@ -72,7 +72,13 @@ Entendiendo y aprendiendo esto pudiera ayudarle con su proyecto.
|
||||
|
||||
Sea un patrocinante y coloque su logo en nuestro LEEME en GitHub con un enlace directo a su sitio web. [[Se un Patrocinante]](https://www.patreon.com/panjiachen)
|
||||
|
||||
<a href="https://flatlogic.com/admin-dashboards?from=vue-element-admin"><img width="150px" src="https://wpimg.wallstcn.com/9c0b719b-5551-4c1e-b776-63994632d94a.png" /></a><p>Plantilla de Dashboard de administración hecha con Vue, React y Angular.</p>
|
||||
### Akveo
|
||||
<a href="https://store.akveo.com/products/vue-java-admin-dashboard-spring?utm_campaign=akveo_store-Vue-Vue_demo%2Fgithub&utm_source=vue_admin&utm_medium=referral&utm_content=github_banner"><img width="500px" src="https://raw.githubusercontent.com/PanJiaChen/vue-element-admin-site/master/docs/.vuepress/public/images/vue-java-banner.png" /></a><p>Get Java backend for Vue admin with 20% discount for 39$ use coupon code SWB0RAZPZR1M
|
||||
</p>
|
||||
|
||||
### Flatlogic
|
||||
|
||||
<a href="https://flatlogic.com/admin-dashboards?from=vue-element-admin"><img width="150px" src="https://wpimg.wallstcn.com/9c0b719b-5551-4c1e-b776-63994632d94a.png" /></a><p>Admin Dashboard Templates made with Vue, React and Angular.</p>
|
||||
|
||||
## Características
|
||||
|
||||
|
@@ -69,6 +69,12 @@
|
||||
|
||||
Become a sponsor and get your logo on our README on GitHub with a link to your site. [[Become a sponsor]](https://www.patreon.com/panjiachen)
|
||||
|
||||
### Akveo
|
||||
<a href="https://store.akveo.com/products/vue-java-admin-dashboard-spring?utm_campaign=akveo_store-Vue-Vue_demo%2Fgithub&utm_source=vue_admin&utm_medium=referral&utm_content=github_banner"><img width="500px" src="https://raw.githubusercontent.com/PanJiaChen/vue-element-admin-site/master/docs/.vuepress/public/images/vue-java-banner.png" /></a><p>Get Java backend for Vue admin with 20% discount for 39$ use coupon code SWB0RAZPZR1M
|
||||
</p>
|
||||
|
||||
### Flatlogic
|
||||
|
||||
<a href="https://flatlogic.com/admin-dashboards?from=vue-element-admin"><img width="150px" src="https://wpimg.wallstcn.com/9c0b719b-5551-4c1e-b776-63994632d94a.png" /></a><p>Admin Dashboard Templates made with Vue, React and Angular.</p>
|
||||
|
||||
## 機能一覧
|
||||
|
28
README.md
28
README.md
@@ -28,6 +28,28 @@
|
||||
|
||||
English | [简体中文](./README.zh-CN.md) | [日本語](./README.ja.md) | [Spanish](./README.es.md)
|
||||
|
||||
<p align="center">
|
||||
<b>SPONSORED BY</b>
|
||||
</p>
|
||||
<table align="center" cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center" valign="middle" width="250">
|
||||
<a href="https://www.duohui.cn/?utm_source=vue-element-admin&utm_medium=web&utm_campaign=vue-element-admin_github" title="多会" target="_blank">
|
||||
<img height="60px" src="https://qiniu.cdn.duohui.co/brand/duohui.png" title="多会 - 活动服务销售平台">
|
||||
<p>活动服务销售平台</p>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center" valign="middle" width="250">
|
||||
<a href="https://youke.co/?utm_source=vue-element-admin&utm_medium=web&utm_campaign=vue-element-admin_github" title="有客" target="_blank">
|
||||
<img height="60px" src="https://qiniu.cdn.duohui.co/brand/youke.png" title="有客 - 客户消息直达工作群">
|
||||
<p>客户消息直达工作群</p>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## Introduction
|
||||
|
||||
[vue-element-admin](https://panjiachen.github.io/vue-element-admin) is a production-ready front-end solution for admin interfaces. It is based on [vue](https://github.com/vuejs/vue) and uses the UI Toolkit [element-ui](https://github.com/ElemeFE/element).
|
||||
@@ -72,6 +94,12 @@ Understanding and learning this knowledge in advance will greatly help the use o
|
||||
|
||||
Become a sponsor and get your logo on our README on GitHub with a link to your site. [[Become a sponsor]](https://www.patreon.com/panjiachen)
|
||||
|
||||
### Akveo
|
||||
<a href="https://store.akveo.com/products/vue-java-admin-dashboard-spring?utm_campaign=akveo_store-Vue-Vue_demo%2Fgithub&utm_source=vue_admin&utm_medium=referral&utm_content=github_banner"><img width="500px" src="https://raw.githubusercontent.com/PanJiaChen/vue-element-admin-site/master/docs/.vuepress/public/images/vue-java-banner.png" /></a><p>Get Java backend for Vue admin with 20% discount for 39$ use coupon code SWB0RAZPZR1M
|
||||
</p>
|
||||
|
||||
### Flatlogic
|
||||
|
||||
<a href="https://flatlogic.com/admin-dashboards?from=vue-element-admin"><img width="150px" src="https://wpimg.wallstcn.com/9c0b719b-5551-4c1e-b776-63994632d94a.png" /></a><p>Admin Dashboard Templates made with Vue, React and Angular.</p>
|
||||
|
||||
## Features
|
||||
|
@@ -28,6 +28,28 @@
|
||||
|
||||
简体中文 | [English](./README.md) | [日本語](./README.ja.md) | [Spanish](./README.es.md)
|
||||
|
||||
<p align="center">
|
||||
<b>SPONSORED BY</b>
|
||||
</p>
|
||||
<table align="center" cellspacing="0" cellpadding="0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td align="center" valign="middle" width="250">
|
||||
<a href="https://www.duohui.cn/?utm_source=vue-element-admin&utm_medium=web&utm_campaign=vue-element-admin_github" title="多会" target="_blank">
|
||||
<img height="60px" src="https://qiniu.cdn.duohui.co/brand/duohui.png" title="多会 - 活动服务销售平台">
|
||||
<p>活动服务销售平台</p>
|
||||
</a>
|
||||
</td>
|
||||
<td align="center" valign="middle" width="250">
|
||||
<a href="https://youke.co/?utm_source=vue-element-admin&utm_medium=web&utm_campaign=vue-element-admin_github" title="有客" target="_blank">
|
||||
<img height="60px" src="https://qiniu.cdn.duohui.co/brand/youke.png" title="有客 - 客户消息直达工作群">
|
||||
<p>客户消息直达工作群</p>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## 简介
|
||||
|
||||
[vue-element-admin](https://panjiachen.github.io/vue-element-admin) 是一个后台前端解决方案,它基于 [vue](https://github.com/vuejs/vue) 和 [element-ui](https://github.com/ElemeFE/element)实现。它使用了最新的前端技术栈,内置了 i18n 国际化解决方案,动态路由,权限验证,提炼了典型的业务模型,提供了丰富的功能组件,它可以帮助你快速搭建企业级中后台产品原型。相信不管你的需求是什么,本项目都能帮助到你。
|
||||
@@ -87,8 +109,14 @@
|
||||
|
||||
Become a sponsor and get your logo on our README on GitHub with a link to your site. [[Become a sponsor]](https://www.patreon.com/panjiachen)
|
||||
|
||||
### Akveo
|
||||
<a href="https://store.akveo.com/products/vue-java-admin-dashboard-spring?utm_campaign=akveo_store-Vue-Vue_demo%2Fgithub&utm_source=vue_admin&utm_medium=referral&utm_content=github_banner"><img width="500px" src="https://raw.githubusercontent.com/PanJiaChen/vue-element-admin-site/master/docs/.vuepress/public/images/vue-java-banner.png" /></a><p>Java 后端整合,可以使用优惠码:SWB0RAZPZR1M,获得20%的价格优化</p>
|
||||
|
||||
### Flatlogic
|
||||
|
||||
<a href="https://flatlogic.com/admin-dashboards?from=vue-element-admin"><img width="150px" src="https://wpimg.wallstcn.com/9c0b719b-5551-4c1e-b776-63994632d94a.png" /></a><p>Admin Dashboard Templates made with Vue, React and Angular.</p>
|
||||
|
||||
|
||||
## 功能
|
||||
|
||||
```
|
||||
|
22
docker-compose.yml
Normal file
22
docker-compose.yml
Normal file
@@ -0,0 +1,22 @@
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
|
||||
web:
|
||||
image: docker.zcj.plus/drone-ci/fe
|
||||
networks:
|
||||
- feadmindroneci
|
||||
|
||||
frpc:
|
||||
image: snowdreamtech/frpc
|
||||
container_name: fe_frpc
|
||||
networks:
|
||||
- feadmindroneci
|
||||
volumes:
|
||||
- /mnt/d/ci_volumes/frpc_ini/fe.ini:/etc/frp/frpc.ini
|
||||
depends_on:
|
||||
- web
|
||||
restart: always
|
||||
|
||||
networks:
|
||||
feadmindroneci:
|
18
frpc.ini
Normal file
18
frpc.ini
Normal file
@@ -0,0 +1,18 @@
|
||||
[common]
|
||||
server_addr = 124.156.152.247
|
||||
server_port = 7000
|
||||
token = zhouchijian
|
||||
log_file = ./frpc.log
|
||||
admin_addr = 127.0.0.1
|
||||
admin_port = 7400
|
||||
admin_user = admin
|
||||
admin_pwd = 39zcj
|
||||
|
||||
[http-demo-admin-ci]
|
||||
type = http
|
||||
custom_domains = demo.ryio.cn
|
||||
local_ip = web
|
||||
local_port = 80
|
||||
remote_port = 80
|
||||
use_encryption = true
|
||||
use_compression = true
|
5
http.sh
Normal file
5
http.sh
Normal file
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
pm2 start http-server -i 4 -- /src/dist -p 80
|
||||
|
||||
pm2 monit
|
96
nginx.conf
Normal file
96
nginx.conf
Normal file
@@ -0,0 +1,96 @@
|
||||
user www-data;
|
||||
worker_processes auto;
|
||||
pid /run/nginx.pid;
|
||||
include /etc/nginx/modules-enabled/*.conf;
|
||||
|
||||
events {
|
||||
worker_connections 768;
|
||||
# multi_accept on;
|
||||
}
|
||||
|
||||
http {
|
||||
|
||||
##
|
||||
# Basic Settings
|
||||
##
|
||||
|
||||
sendfile on;
|
||||
tcp_nopush on;
|
||||
tcp_nodelay on;
|
||||
keepalive_timeout 65;
|
||||
types_hash_max_size 2048;
|
||||
# server_tokens off;
|
||||
|
||||
# server_names_hash_bucket_size 64;
|
||||
# server_name_in_redirect off;
|
||||
|
||||
include /etc/nginx/mime.types;
|
||||
default_type application/octet-stream;
|
||||
|
||||
##
|
||||
# SSL Settings
|
||||
##
|
||||
|
||||
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
|
||||
ssl_prefer_server_ciphers on;
|
||||
|
||||
##
|
||||
# Logging Settings
|
||||
##
|
||||
|
||||
access_log /var/log/nginx/access.log;
|
||||
error_log /var/log/nginx/error.log;
|
||||
|
||||
##
|
||||
# Gzip Settings
|
||||
##
|
||||
|
||||
gzip on;
|
||||
|
||||
# gzip_vary on;
|
||||
# gzip_proxied any;
|
||||
# gzip_comp_level 6;
|
||||
# gzip_buffers 16 8k;
|
||||
# gzip_http_version 1.1;
|
||||
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
|
||||
|
||||
##
|
||||
# Virtual Host Configs
|
||||
##
|
||||
|
||||
include /etc/nginx/sites-enabled/*;
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
|
||||
location / {
|
||||
root /app;
|
||||
index index.html;
|
||||
try_files $uri $uri/ /index.html;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
#mail {
|
||||
# # See sample authentication script at:
|
||||
# # http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
|
||||
#
|
||||
# # auth_http localhost/auth.php;
|
||||
# # pop3_capabilities "TOP" "USER";
|
||||
# # imap_capabilities "IMAP4rev1" "UIDPLUS";
|
||||
#
|
||||
# server {
|
||||
# listen localhost:110;
|
||||
# protocol pop3;
|
||||
# proxy on;
|
||||
# }
|
||||
#
|
||||
# server {
|
||||
# listen localhost:143;
|
||||
# protocol imap;
|
||||
# proxy on;
|
||||
# }
|
||||
#}
|
@@ -204,10 +204,7 @@ export default {
|
||||
window.tinymce.get(this.tinymceId).getContent()
|
||||
},
|
||||
imageSuccessCBK(arr) {
|
||||
const _this = this
|
||||
arr.forEach(v => {
|
||||
window.tinymce.get(_this.tinymceId).insertContent(`<img class="wscnph" src="${v.url}" >`)
|
||||
})
|
||||
arr.forEach(v => window.tinymce.get(this.tinymceId).insertContent(`<img class="wscnph" src="${v.url}" >`))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -13,11 +13,7 @@ export default function checkPermission(value) {
|
||||
const hasPermission = roles.some(role => {
|
||||
return permissionRoles.includes(role)
|
||||
})
|
||||
|
||||
if (!hasPermission) {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
return hasPermission
|
||||
} else {
|
||||
console.error(`need roles! Like v-permission="['admin','editor']"`)
|
||||
return false
|
||||
|
@@ -15,7 +15,7 @@
|
||||
<el-progress :percentage="18" />
|
||||
</div>
|
||||
<div class="progress-item">
|
||||
<span>Css</span>
|
||||
<span>CSS</span>
|
||||
<el-progress :percentage="12" />
|
||||
</div>
|
||||
<div class="progress-item">
|
||||
|
@@ -1,5 +1,6 @@
|
||||
<template>
|
||||
<div class="app-container documentation-container">
|
||||
<a class="document-btn" target="_blank" href="https://store.akveo.com/products/vue-java-admin-dashboard-spring?utm_campaign=akveo_store-Vue-Vue_demo%2Fgithub&utm_source=vue_admin&utm_medium=referral&utm_content=demo_English_button">Java backend integration</a>
|
||||
<a class="document-btn" target="_blank" href="https://panjiachen.github.io/vue-element-admin-site/">Documentation</a>
|
||||
<a class="document-btn" target="_blank" href="https://github.com/PanJiaChen/vue-element-admin/">Github Repository</a>
|
||||
<a class="document-btn" target="_blank" href="https://panjiachen.gitee.io/vue-element-admin-site/zh/">国内文档</a>
|
||||
@@ -37,7 +38,7 @@ export default {
|
||||
margin: 50px;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-evenly;
|
||||
justify-content: flex-start;
|
||||
|
||||
.document-btn {
|
||||
flex-shrink: 0;
|
||||
@@ -46,8 +47,8 @@ export default {
|
||||
background: black;
|
||||
color: white;
|
||||
height: 60px;
|
||||
width: 200px;
|
||||
margin-bottom: 16px;
|
||||
padding: 0 16px;
|
||||
margin: 16px;
|
||||
line-height: 60px;
|
||||
font-size: 20px;
|
||||
text-align: center;
|
||||
|
@@ -50,7 +50,16 @@ module.exports = {
|
||||
},
|
||||
chainWebpack(config) {
|
||||
// it can improve the speed of the first screen, it is recommended to turn on preload
|
||||
// config.plugins.delete('preload')
|
||||
// it can improve the speed of the first screen, it is recommended to turn on preload
|
||||
config.plugin('preload').tap(() => [
|
||||
{
|
||||
rel: 'preload',
|
||||
// to ignore runtime.js
|
||||
// https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/cli-service/lib/config/app.js#L171
|
||||
fileBlacklist: [/\.map$/, /hot-update\.js$/, /runtime\..*\.js$/],
|
||||
include: 'initial'
|
||||
}
|
||||
])
|
||||
|
||||
// when there are many pages, it will cause too many meaningless requests
|
||||
config.plugins.delete('prefetch')
|
||||
@@ -72,17 +81,6 @@ module.exports = {
|
||||
})
|
||||
.end()
|
||||
|
||||
// set preserveWhitespace
|
||||
config.module
|
||||
.rule('vue')
|
||||
.use('vue-loader')
|
||||
.loader('vue-loader')
|
||||
.tap(options => {
|
||||
options.compilerOptions.preserveWhitespace = true
|
||||
return options
|
||||
})
|
||||
.end()
|
||||
|
||||
config
|
||||
.when(process.env.NODE_ENV !== 'development',
|
||||
config => {
|
||||
@@ -118,6 +116,7 @@ module.exports = {
|
||||
}
|
||||
}
|
||||
})
|
||||
// https:// webpack.js.org/configuration/optimization/#optimizationruntimechunk
|
||||
config.optimization.runtimeChunk('single')
|
||||
}
|
||||
)
|
||||
|
Reference in New Issue
Block a user