mirror of
https://gitee.com/y_project/RuoYi-Cloud.git
synced 2026-02-08 09:51:56 +08:00
Compare commits
5 Commits
150cdbc0e8
...
fba7e93d7c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fba7e93d7c | ||
|
|
706c3bb69b | ||
|
|
7320bda521 | ||
|
|
646247503e | ||
|
|
8a55aaec91 |
@@ -1,6 +1,6 @@
|
|||||||
@echo off
|
@echo off
|
||||||
echo.
|
echo.
|
||||||
echo [信息] 清理工程target生成路径。
|
echo [信息] 清理工程target生成路径。
|
||||||
echo.
|
echo.
|
||||||
|
|
||||||
%~d0
|
%~d0
|
||||||
|
|||||||
45
docker/copy.ps1
Normal file
45
docker/copy.ps1
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
#!/usr/bin/env pwsh
|
||||||
|
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
复制项目的文件到对应docker路径,便于一键生成镜像。
|
||||||
|
#>
|
||||||
|
|
||||||
|
# 复制SQL文件
|
||||||
|
Write-Host "begin copy sql"
|
||||||
|
Copy-Item -Path "../sql/ry_20250425.sql" -Destination "./mysql/db" -Force
|
||||||
|
Copy-Item -Path "../sql/ry_config_20250224.sql" -Destination "./mysql/db" -Force
|
||||||
|
|
||||||
|
# 复制HTML文件
|
||||||
|
Write-Host "begin copy html"
|
||||||
|
if (Test-Path "../ruoyi-ui/dist") {
|
||||||
|
Remove-Item -Path "./nginx/html/dist" -Recurse -Force -ErrorAction SilentlyContinue
|
||||||
|
New-Item -ItemType Directory -Path "./nginx/html/dist" -Force | Out-Null
|
||||||
|
Copy-Item -Path "../ruoyi-ui/dist/*" -Destination "./nginx/html/dist" -Recurse -Force
|
||||||
|
} else {
|
||||||
|
Write-Host "Warning: ../ruoyi-ui/dist directory not found"
|
||||||
|
}
|
||||||
|
|
||||||
|
# 复制JAR文件
|
||||||
|
Write-Host "begin copy ruoyi-gateway"
|
||||||
|
Copy-Item -Path "../ruoyi-gateway/target/ruoyi-gateway.jar" -Destination "./ruoyi/gateway/jar" -Force
|
||||||
|
|
||||||
|
Write-Host "begin copy ruoyi-auth"
|
||||||
|
Copy-Item -Path "../ruoyi-auth/target/ruoyi-auth.jar" -Destination "./ruoyi/auth/jar" -Force
|
||||||
|
|
||||||
|
Write-Host "begin copy ruoyi-visual"
|
||||||
|
Copy-Item -Path "../ruoyi-visual/ruoyi-monitor/target/ruoyi-visual-monitor.jar" -Destination "./ruoyi/visual/monitor/jar" -Force
|
||||||
|
|
||||||
|
Write-Host "begin copy ruoyi-modules-system"
|
||||||
|
Copy-Item -Path "../ruoyi-modules/ruoyi-system/target/ruoyi-modules-system.jar" -Destination "./ruoyi/modules/system/jar" -Force
|
||||||
|
|
||||||
|
Write-Host "begin copy ruoyi-modules-file"
|
||||||
|
Copy-Item -Path "../ruoyi-modules/ruoyi-file/target/ruoyi-modules-file.jar" -Destination "./ruoyi/modules/file/jar" -Force
|
||||||
|
|
||||||
|
Write-Host "begin copy ruoyi-modules-job"
|
||||||
|
Copy-Item -Path "../ruoyi-modules/ruoyi-job/target/ruoyi-modules-job.jar" -Destination "./ruoyi/modules/job/jar" -Force
|
||||||
|
|
||||||
|
Write-Host "begin copy ruoyi-modules-gen"
|
||||||
|
Copy-Item -Path "../ruoyi-modules/ruoyi-gen/target/ruoyi-modules-gen.jar" -Destination "./ruoyi/modules/gen/jar" -Force
|
||||||
|
|
||||||
|
Write-Host "copy completed"
|
||||||
@@ -2,7 +2,6 @@ version : '3.8'
|
|||||||
services:
|
services:
|
||||||
ruoyi-nacos:
|
ruoyi-nacos:
|
||||||
container_name: ruoyi-nacos
|
container_name: ruoyi-nacos
|
||||||
image: nacos/nacos-server
|
|
||||||
build:
|
build:
|
||||||
context: ./nacos
|
context: ./nacos
|
||||||
environment:
|
environment:
|
||||||
@@ -18,7 +17,6 @@ services:
|
|||||||
- ruoyi-mysql
|
- ruoyi-mysql
|
||||||
ruoyi-mysql:
|
ruoyi-mysql:
|
||||||
container_name: ruoyi-mysql
|
container_name: ruoyi-mysql
|
||||||
image: mysql:5.7
|
|
||||||
build:
|
build:
|
||||||
context: ./mysql
|
context: ./mysql
|
||||||
ports:
|
ports:
|
||||||
@@ -40,7 +38,6 @@ services:
|
|||||||
MYSQL_ROOT_PASSWORD: password
|
MYSQL_ROOT_PASSWORD: password
|
||||||
ruoyi-redis:
|
ruoyi-redis:
|
||||||
container_name: ruoyi-redis
|
container_name: ruoyi-redis
|
||||||
image: redis
|
|
||||||
build:
|
build:
|
||||||
context: ./redis
|
context: ./redis
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# 基础镜像
|
# 基础镜像
|
||||||
FROM mysql:5.7
|
FROM mysql:5.7
|
||||||
# author
|
# author
|
||||||
MAINTAINER ruoyi
|
MAINTAINER ruoyi
|
||||||
|
|
||||||
# 执行sql脚本
|
# 执行sql脚本
|
||||||
ADD ./db/*.sql /docker-entrypoint-initdb.d/
|
ADD ./db/*.sql /docker-entrypoint-initdb.d/
|
||||||
@@ -1 +1 @@
|
|||||||
存放sql目录下的所有脚本,用于docker自动执行。
|
存放sql目录下的所有脚本,用于docker自动执行。
|
||||||
1
docker/nginx/html/dist/readme.txt
vendored
1
docker/nginx/html/dist/readme.txt
vendored
@@ -1 +0,0 @@
|
|||||||
存放前端ruoyi-ui构建好的静态文件,用于nginx请求访问。
|
|
||||||
@@ -1 +1 @@
|
|||||||
存放认证中心打包好的jar文件,用于docker启动应用。
|
存放认证中心打包好的jar文件,用于docker启动应用。
|
||||||
@@ -1 +1 @@
|
|||||||
存放网关模块打包好的jar文件,用于docker启动应用。
|
存放网关模块打包好的jar文件,用于docker启动应用。
|
||||||
@@ -1 +1 @@
|
|||||||
存放监控中心打包好的jar文件,用于docker启动应用。
|
存放监控中心打包好的jar文件,用于docker启动应用。
|
||||||
@@ -6,15 +6,17 @@
|
|||||||
</keep-alive>
|
</keep-alive>
|
||||||
</transition>
|
</transition>
|
||||||
<iframe-toggle />
|
<iframe-toggle />
|
||||||
|
<copyright />
|
||||||
</section>
|
</section>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import copyright from "./Copyright/index"
|
||||||
import iframeToggle from "./IframeToggle/index"
|
import iframeToggle from "./IframeToggle/index"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'AppMain',
|
name: 'AppMain',
|
||||||
components: { iframeToggle },
|
components: { iframeToggle, copyright },
|
||||||
computed: {
|
computed: {
|
||||||
cachedViews() {
|
cachedViews() {
|
||||||
return this.$store.state.tagsView.cachedViews
|
return this.$store.state.tagsView.cachedViews
|
||||||
@@ -33,7 +35,7 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
addIframe() {
|
addIframe() {
|
||||||
const {name} = this.$route
|
const { name } = this.$route
|
||||||
if (name && this.$route.meta.link) {
|
if (name && this.$route.meta.link) {
|
||||||
this.$store.dispatch('tagsView/addIframeView', this.$route)
|
this.$store.dispatch('tagsView/addIframeView', this.$route)
|
||||||
}
|
}
|
||||||
@@ -51,6 +53,10 @@ export default {
|
|||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.app-main:has(.copyright) {
|
||||||
|
padding-bottom: 36px;
|
||||||
|
}
|
||||||
|
|
||||||
.fixed-header + .app-main {
|
.fixed-header + .app-main {
|
||||||
padding-top: 50px;
|
padding-top: 50px;
|
||||||
}
|
}
|
||||||
|
|||||||
35
ruoyi-ui/src/layout/components/Copyright/index.vue
Normal file
35
ruoyi-ui/src/layout/components/Copyright/index.vue
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
<template>
|
||||||
|
<footer v-if="visible" class="copyright">
|
||||||
|
<span>{{ content }}</span>
|
||||||
|
</footer>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
computed: {
|
||||||
|
visible() {
|
||||||
|
return this.$store.state.settings.footerVisible
|
||||||
|
},
|
||||||
|
content() {
|
||||||
|
return this.$store.state.settings.footerContent
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.copyright {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
height: 36px;
|
||||||
|
padding: 10px 20px;
|
||||||
|
text-align: right;
|
||||||
|
background-color: #f8f8f8;
|
||||||
|
color: #666;
|
||||||
|
font-size: 14px;
|
||||||
|
border-top: 1px solid #e7e7e7;
|
||||||
|
z-index: 999;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-drawer size="280px" :visible="showSettings" :with-header="false" :append-to-body="true" :before-close="closeSetting">
|
<el-drawer size="280px" :visible="showSettings" :with-header="false" :append-to-body="true" :before-close="closeSetting" :lock-scroll="false">
|
||||||
<div class="drawer-container">
|
<div class="drawer-container">
|
||||||
<div>
|
<div>
|
||||||
<div class="setting-drawer-content">
|
<div class="setting-drawer-content">
|
||||||
@@ -69,6 +69,11 @@
|
|||||||
<el-switch v-model="dynamicTitle" class="drawer-switch" />
|
<el-switch v-model="dynamicTitle" class="drawer-switch" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="drawer-item">
|
||||||
|
<span>底部版权</span>
|
||||||
|
<el-switch v-model="footerVisible" class="drawer-switch" />
|
||||||
|
</div>
|
||||||
|
|
||||||
<el-divider/>
|
<el-divider/>
|
||||||
|
|
||||||
<el-button size="small" type="primary" plain icon="el-icon-document-add" @click="saveSetting">保存配置</el-button>
|
<el-button size="small" type="primary" plain icon="el-icon-document-add" @click="saveSetting">保存配置</el-button>
|
||||||
@@ -163,6 +168,17 @@ export default {
|
|||||||
this.$store.dispatch('settings/setTitle', this.$store.state.settings.title)
|
this.$store.dispatch('settings/setTitle', this.$store.state.settings.title)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
footerVisible: {
|
||||||
|
get() {
|
||||||
|
return this.$store.state.settings.footerVisible
|
||||||
|
},
|
||||||
|
set(val) {
|
||||||
|
this.$store.dispatch('settings/changeSetting', {
|
||||||
|
key: 'footerVisible',
|
||||||
|
value: val
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
themeChange(val) {
|
themeChange(val) {
|
||||||
@@ -196,6 +212,7 @@ export default {
|
|||||||
"fixedHeader":${this.fixedHeader},
|
"fixedHeader":${this.fixedHeader},
|
||||||
"sidebarLogo":${this.sidebarLogo},
|
"sidebarLogo":${this.sidebarLogo},
|
||||||
"dynamicTitle":${this.dynamicTitle},
|
"dynamicTitle":${this.dynamicTitle},
|
||||||
|
"footerVisible":${this.footerVisible},
|
||||||
"sideTheme":"${this.sideTheme}",
|
"sideTheme":"${this.sideTheme}",
|
||||||
"theme":"${this.theme}"
|
"theme":"${this.theme}"
|
||||||
}`
|
}`
|
||||||
|
|||||||
@@ -42,5 +42,15 @@ module.exports = {
|
|||||||
/**
|
/**
|
||||||
* 是否显示动态标题
|
* 是否显示动态标题
|
||||||
*/
|
*/
|
||||||
dynamicTitle: false
|
dynamicTitle: false,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否显示底部版权
|
||||||
|
*/
|
||||||
|
footerVisible: false,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 底部版权文本内容
|
||||||
|
*/
|
||||||
|
footerContent: 'Copyright © 2018-2025 RuoYi. All Rights Reserved.'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import defaultSettings from '@/settings'
|
import defaultSettings from '@/settings'
|
||||||
import { useDynamicTitle } from '@/utils/dynamicTitle'
|
import { useDynamicTitle } from '@/utils/dynamicTitle'
|
||||||
|
|
||||||
const { sideTheme, showSettings, topNav, tagsView, tagsIcon, fixedHeader, sidebarLogo, dynamicTitle } = defaultSettings
|
const { sideTheme, showSettings, topNav, tagsView, tagsIcon, fixedHeader, sidebarLogo, dynamicTitle, footerVisible, footerContent } = defaultSettings
|
||||||
|
|
||||||
const storageSetting = JSON.parse(localStorage.getItem('layout-setting')) || ''
|
const storageSetting = JSON.parse(localStorage.getItem('layout-setting')) || ''
|
||||||
const state = {
|
const state = {
|
||||||
@@ -14,7 +14,9 @@ const state = {
|
|||||||
tagsIcon: storageSetting.tagsIcon === undefined ? tagsIcon : storageSetting.tagsIcon,
|
tagsIcon: storageSetting.tagsIcon === undefined ? tagsIcon : storageSetting.tagsIcon,
|
||||||
fixedHeader: storageSetting.fixedHeader === undefined ? fixedHeader : storageSetting.fixedHeader,
|
fixedHeader: storageSetting.fixedHeader === undefined ? fixedHeader : storageSetting.fixedHeader,
|
||||||
sidebarLogo: storageSetting.sidebarLogo === undefined ? sidebarLogo : storageSetting.sidebarLogo,
|
sidebarLogo: storageSetting.sidebarLogo === undefined ? sidebarLogo : storageSetting.sidebarLogo,
|
||||||
dynamicTitle: storageSetting.dynamicTitle === undefined ? dynamicTitle : storageSetting.dynamicTitle
|
dynamicTitle: storageSetting.dynamicTitle === undefined ? dynamicTitle : storageSetting.dynamicTitle,
|
||||||
|
footerVisible: storageSetting.footerVisible === undefined ? footerVisible : storageSetting.footerVisible,
|
||||||
|
footerContent: footerContent
|
||||||
}
|
}
|
||||||
const mutations = {
|
const mutations = {
|
||||||
CHANGE_SETTING: (state, { key, value }) => {
|
CHANGE_SETTING: (state, { key, value }) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user