chroe: add demo mode

This commit is contained in:
engigu
2024-01-23 23:07:21 +08:00
parent 7040031253
commit 3e1e2dd7f8
7 changed files with 110 additions and 1 deletions
+62
View File
@@ -0,0 +1,62 @@
name: deploy-demo-site
on:
workflow_dispatch:
push:
branches: [ "main" ]
jobs:
build-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "20.x"
- name: Set up Golang
uses: actions/setup-go@v5
with:
go-version: "1.20"
- name: Install npm dependencies
run: npm ci
working-directory: web/
- name: Run npm build
run: export NODE_ENV=prod && npm run build:demo
working-directory: web/
- name: Check build static
run: ls dist/ -la
working-directory: web/
- name: Install Go modules
run: go mod tidy
- name: Build Go
run: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o Message-Nest
- name: Copy files to server
uses: appleboy/scp-action@master
with:
host: ${{ secrets.SERVER_HOST }}
port: ${{ secrets.SERVER_PORT }}
username: ${{ secrets.SERVER_USERNAME }}
password: ${{ secrets.SERVER_PASSWD }}
source: "Message-Nest"
target: ${{ secrets.REMOTE_DEMO_TARGET }}
- name: SSH into server and restart service
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.SERVER_HOST }}
port: ${{ secrets.SERVER_PORT }}
username: ${{ secrets.SERVER_USERNAME }}
password: ${{ secrets.SERVER_PASSWD }}
script: |
${{ secrets.REMOTE_DEMO_SCRIPT }}
+1
View File
@@ -0,0 +1 @@
VITE_RUN_MODE = 'demo'
+28
View File
@@ -23,6 +23,7 @@
"@rushstack/eslint-patch": "^1.3.3",
"@vitejs/plugin-vue": "^4.4.0",
"@vue/eslint-config-prettier": "^8.0.0",
"cross-env": "^7.0.3",
"eslint": "^8.49.0",
"eslint-plugin-vue": "^9.17.0",
"prettier": "^3.0.3",
@@ -1623,6 +1624,24 @@
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
"dev": true
},
"node_modules/cross-env": {
"version": "7.0.3",
"resolved": "https://registry.npmmirror.com/cross-env/-/cross-env-7.0.3.tgz",
"integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==",
"dev": true,
"dependencies": {
"cross-spawn": "^7.0.1"
},
"bin": {
"cross-env": "src/bin/cross-env.js",
"cross-env-shell": "src/bin/cross-env-shell.js"
},
"engines": {
"node": ">=10.14",
"npm": ">=6",
"yarn": ">=1"
}
},
"node_modules/cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -4843,6 +4862,15 @@
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
"dev": true
},
"cross-env": {
"version": "7.0.3",
"resolved": "https://registry.npmmirror.com/cross-env/-/cross-env-7.0.3.tgz",
"integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==",
"dev": true,
"requires": {
"cross-spawn": "^7.0.1"
}
},
"cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+3
View File
@@ -4,6 +4,8 @@
"private": true,
"scripts": {
"dev": "vite",
"demo": "vite --mode demo",
"build:demo": "vite build --mode demo",
"build": "vite build",
"preview": "vite preview",
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore",
@@ -25,6 +27,7 @@
"@rushstack/eslint-patch": "^1.3.3",
"@vitejs/plugin-vue": "^4.4.0",
"@vue/eslint-config-prettier": "^8.0.0",
"cross-env": "^7.0.3",
"eslint": "^8.49.0",
"eslint-plugin-vue": "^9.17.0",
"prettier": "^3.0.3",
+9
View File
@@ -48,12 +48,21 @@ export default {
});
onMounted(() => {
demoSiteSet();
// 加载站点信息
setTimeout(() => {
LocalStieConfigUtils.getLatestLocalConfig();
}, 100)
});
// 站点演示模式
const demoSiteSet = () => {
if (import.meta.env.VITE_RUN_MODE === 'demo') {
state.account = 'admin';
state.passwd = '123456';
}
}
// 登录
const clickLogin = async () => {
const rspe = await request.post('/auth', { username: state.account, passwd: state.passwd });
@@ -28,11 +28,16 @@ export default defineComponent({
});
const handleChange = async () => {
if (import.meta.env.VITE_RUN_MODE === 'demo') {
ElMessage({ message: '演示模式不会重置密码', type: 'success' });
return
}
let postData = { old_passwd: state.oldPasswd, new_passwd: state.newPasswd };
const rsp = await request.post('/settings/setpasswd', postData);
if (await rsp.data.code == 200) {
let msg = await rsp.data.msg;
ElMessage({ message: msg, type: 'success' })
ElMessage({ message: msg, type: 'success' });
}
}
return {
+1
View File
@@ -7,6 +7,7 @@ import { prismjsPlugin } from 'vite-plugin-prismjs'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
vue(),
prismjsPlugin({
languages: 'all', // 语言