mirror of https://github.com/halo-dev/halo-admin
feat: support update application.yaml.
parent
22f4c1ec9a
commit
d58b1f022f
|
@ -82,4 +82,29 @@ adminApi.updateAdminAssets = () => {
|
||||||
timeout: 600 * 1000
|
timeout: 600 * 1000
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
adminApi.getApplicationConfig = () => {
|
||||||
|
return service({
|
||||||
|
url: `${baseUrl}/spring/application.yaml`,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
adminApi.updateApplicationConfig = content => {
|
||||||
|
return service({
|
||||||
|
url: `${baseUrl}/spring/application.yaml/update`,
|
||||||
|
params: {
|
||||||
|
content: content
|
||||||
|
},
|
||||||
|
method: 'put'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
adminApi.restartApplication = () => {
|
||||||
|
return service({
|
||||||
|
url: `${baseUrl}/spring/restart`,
|
||||||
|
method: 'post'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export default adminApi
|
export default adminApi
|
||||||
|
|
|
@ -21,10 +21,16 @@
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
<a-tab-pane key="optionsList">
|
<a-tab-pane key="optionsList">
|
||||||
<span slot="tab">
|
<span slot="tab">
|
||||||
<a-icon type="code" />系统变量
|
<a-icon type="table" />系统变量
|
||||||
</span>
|
</span>
|
||||||
<OptionsList />
|
<OptionsList />
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
|
<a-tab-pane key="applicationConfig">
|
||||||
|
<span slot="tab">
|
||||||
|
<a-icon type="file-protect" />配置文件
|
||||||
|
</span>
|
||||||
|
<ApplicationConfig />
|
||||||
|
</a-tab-pane>
|
||||||
<a-tab-pane key="settings">
|
<a-tab-pane key="settings">
|
||||||
<span slot="tab">
|
<span slot="tab">
|
||||||
<a-icon type="setting" />设置
|
<a-icon type="setting" />设置
|
||||||
|
@ -50,12 +56,14 @@ import Environment from './tabs/Environment'
|
||||||
import RuntimeLogs from './tabs/RuntimeLogs'
|
import RuntimeLogs from './tabs/RuntimeLogs'
|
||||||
import SettingsForm from './tabs/SettingsForm'
|
import SettingsForm from './tabs/SettingsForm'
|
||||||
import OptionsList from './tabs/OptionsList'
|
import OptionsList from './tabs/OptionsList'
|
||||||
|
import ApplicationConfig from './tabs/ApplicationConfig'
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
Environment,
|
Environment,
|
||||||
RuntimeLogs,
|
RuntimeLogs,
|
||||||
SettingsForm,
|
SettingsForm,
|
||||||
OptionsList
|
OptionsList,
|
||||||
|
ApplicationConfig
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
...mapGetters(['options'])
|
...mapGetters(['options'])
|
||||||
|
|
|
@ -0,0 +1,95 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<a-alert
|
||||||
|
message="注意:配置文件严格要求代码格式,上下文必须对齐,属性与值之间必须以英文引号和空格隔开。如格式有误,将无法启动。"
|
||||||
|
banner
|
||||||
|
closable
|
||||||
|
/>
|
||||||
|
<a-form layout="vertical">
|
||||||
|
<a-form-item>
|
||||||
|
<a-skeleton
|
||||||
|
active
|
||||||
|
:loading="loading"
|
||||||
|
:paragraph="{rows: 12}"
|
||||||
|
>
|
||||||
|
<codemirror
|
||||||
|
v-model="content"
|
||||||
|
:options="codemirrorOptions"
|
||||||
|
></codemirror>
|
||||||
|
</a-skeleton>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item>
|
||||||
|
<a-popconfirm
|
||||||
|
:title="'修改配置文件之后需重启才能生效,是否继续?'"
|
||||||
|
okText="确定"
|
||||||
|
cancelText="取消"
|
||||||
|
@confirm="handleUpdateConfig()"
|
||||||
|
>
|
||||||
|
<a-button
|
||||||
|
type="primary"
|
||||||
|
style="margin-right: 8px;"
|
||||||
|
>保存</a-button>
|
||||||
|
</a-popconfirm>
|
||||||
|
<a-button
|
||||||
|
type="danger"
|
||||||
|
@click="handleRestartApplication()"
|
||||||
|
>重启</a-button>
|
||||||
|
</a-form-item>
|
||||||
|
</a-form>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import { codemirror } from 'vue-codemirror-lite'
|
||||||
|
import 'codemirror/mode/yaml/yaml.js'
|
||||||
|
import adminApi from '@/api/admin'
|
||||||
|
export default {
|
||||||
|
name: 'ApplicationConfig',
|
||||||
|
components: {
|
||||||
|
codemirror
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
codemirrorOptions: {
|
||||||
|
tabSize: 4,
|
||||||
|
mode: 'text/x-yaml',
|
||||||
|
lineNumbers: true,
|
||||||
|
line: true
|
||||||
|
},
|
||||||
|
content: '',
|
||||||
|
loading: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.loadConfig()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
loadConfig() {
|
||||||
|
this.loading = true
|
||||||
|
adminApi.getApplicationConfig().then(response => {
|
||||||
|
this.content = response.data.data
|
||||||
|
this.loading = false
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleUpdateConfig() {
|
||||||
|
adminApi.updateApplicationConfig(this.content).then(response => {
|
||||||
|
this.$message.success(`配置保存成功!`)
|
||||||
|
this.loadConfig()
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleRestartApplication() {
|
||||||
|
adminApi.restartApplication().then(response => {
|
||||||
|
this.$message.success(`重启中...`)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style lang="less">
|
||||||
|
.CodeMirror {
|
||||||
|
height: 560px;
|
||||||
|
}
|
||||||
|
.CodeMirror-gutters {
|
||||||
|
border-right: 1px solid #fff3f3;
|
||||||
|
background-color: #ffffff;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -170,7 +170,11 @@
|
||||||
<a-input v-model="optionToStage.key" />
|
<a-input v-model="optionToStage.key" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="Value:">
|
<a-form-item label="Value:">
|
||||||
<a-input v-model="optionToStage.value" />
|
<a-input
|
||||||
|
type="textarea"
|
||||||
|
:autosize="{ minRows: 5 }"
|
||||||
|
v-model="optionToStage.value"
|
||||||
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-form>
|
</a-form>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
@ -211,7 +215,7 @@ const columns = [
|
||||||
{
|
{
|
||||||
title: '操作',
|
title: '操作',
|
||||||
dataIndex: 'action',
|
dataIndex: 'action',
|
||||||
width: '180px',
|
width: '120px',
|
||||||
scopedSlots: { customRender: 'action' }
|
scopedSlots: { customRender: 'action' }
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
Loading…
Reference in New Issue