mirror of https://github.com/halo-dev/halo-admin
feat: add work dir backup options (#362)
* feat: add work dir backup options * feat: add layout to backup options * refactor: modify variable naming * refactor: rename variablespull/364/head
parent
ba5adcf5cd
commit
03f5939096
|
@ -15,14 +15,22 @@ backupApi.importMarkdown = (formData, uploadProgress, cancelToken) => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
backupApi.backupWorkDir = () => {
|
backupApi.backupWorkDir = options => {
|
||||||
return service({
|
return service({
|
||||||
url: `${baseUrl}/work-dir`,
|
url: `${baseUrl}/work-dir`,
|
||||||
method: 'post',
|
method: 'post',
|
||||||
|
data: options,
|
||||||
timeout: 8640000 // 24 hours
|
timeout: 8640000 // 24 hours
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
backupApi.listWorkDirOptions = () => {
|
||||||
|
return service({
|
||||||
|
url: `${baseUrl}/work-dir/options`,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
backupApi.listWorkDirBackups = () => {
|
backupApi.listWorkDirBackups = () => {
|
||||||
return service({
|
return service({
|
||||||
url: `${baseUrl}/work-dir`,
|
url: `${baseUrl}/work-dir`,
|
||||||
|
|
|
@ -41,20 +41,34 @@
|
||||||
<a-divider class="divider-transparent" />
|
<a-divider class="divider-transparent" />
|
||||||
<div class="bottom-control">
|
<div class="bottom-control">
|
||||||
<a-space>
|
<a-space>
|
||||||
<ReactiveButton
|
<a-button type="primary" icon="download" @click="handleBackupClick">备份</a-button>
|
||||||
type="primary"
|
|
||||||
icon="download"
|
|
||||||
@click="handleBackupClick"
|
|
||||||
@callback="handleBackupedCallback"
|
|
||||||
:loading="backuping"
|
|
||||||
:errored="backupErrored"
|
|
||||||
text="备份"
|
|
||||||
loadedText="备份成功"
|
|
||||||
erroredText="备份失败"
|
|
||||||
></ReactiveButton>
|
|
||||||
<a-button type="dashed" icon="reload" :loading="loading" @click="handleListBackups">刷新</a-button>
|
<a-button type="dashed" icon="reload" :loading="loading" @click="handleListBackups">刷新</a-button>
|
||||||
</a-space>
|
</a-space>
|
||||||
</div>
|
</div>
|
||||||
|
<a-modal v-model="optionsModal.visible" title="备份选项">
|
||||||
|
<template slot="footer">
|
||||||
|
<a-button @click="() => (optionsModal.visible = false)">取消</a-button>
|
||||||
|
<ReactiveButton
|
||||||
|
type="primary"
|
||||||
|
@click="handleBackupConfirmed"
|
||||||
|
@callback="handleBackupedCallback"
|
||||||
|
:loading="backuping"
|
||||||
|
:errored="backupErrored"
|
||||||
|
text="确认"
|
||||||
|
loadedText="备份成功"
|
||||||
|
erroredText="备份失败"
|
||||||
|
></ReactiveButton>
|
||||||
|
</template>
|
||||||
|
<a-checkbox-group v-model="optionsModal.selected" style="width: 100%">
|
||||||
|
<a-row>
|
||||||
|
<a-col :span="8" v-for="item in optionsModal.options" :key="item">
|
||||||
|
<a-checkbox :value="item">
|
||||||
|
{{ item }}
|
||||||
|
</a-checkbox>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-checkbox-group>
|
||||||
|
</a-modal>
|
||||||
</a-drawer>
|
</a-drawer>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
@ -68,7 +82,12 @@ export default {
|
||||||
backuping: false,
|
backuping: false,
|
||||||
loading: false,
|
loading: false,
|
||||||
backupErrored: false,
|
backupErrored: false,
|
||||||
backups: []
|
backups: [],
|
||||||
|
optionsModal: {
|
||||||
|
options: [],
|
||||||
|
visible: false,
|
||||||
|
selected: []
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
model: {
|
model: {
|
||||||
|
@ -102,9 +121,18 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleBackupClick() {
|
handleBackupClick() {
|
||||||
|
backupApi.listWorkDirOptions().then(response => {
|
||||||
|
this.optionsModal = {
|
||||||
|
visible: true,
|
||||||
|
options: response.data.data,
|
||||||
|
selected: response.data.data
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleBackupConfirmed() {
|
||||||
this.backuping = true
|
this.backuping = true
|
||||||
backupApi
|
backupApi
|
||||||
.backupWorkDir()
|
.backupWorkDir(this.optionsModal.selected)
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
this.backupErrored = true
|
this.backupErrored = true
|
||||||
})
|
})
|
||||||
|
@ -118,6 +146,7 @@ export default {
|
||||||
if (this.backupErrored) {
|
if (this.backupErrored) {
|
||||||
this.backupErrored = false
|
this.backupErrored = false
|
||||||
} else {
|
} else {
|
||||||
|
this.optionsModal.visible = false
|
||||||
this.handleListBackups()
|
this.handleListBackups()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue