mirror of https://github.com/halo-dev/halo
release: 1.4.2
parent
1de3f79944
commit
7abb68f60f
|
@ -1,2 +1,2 @@
|
||||||
NODE_ENV=production
|
NODE_ENV=production
|
||||||
PUBLIC_PATH=https://cdn.jsdelivr.net/npm/halo-admin@1.4.1/dist/
|
PUBLIC_PATH=https://cdn.jsdelivr.net/npm/halo-admin@1.4.2/dist/
|
|
@ -35,7 +35,7 @@ git clone https://github.com/halo-dev/halo-admin
|
||||||
2、检出最新版本:
|
2、检出最新版本:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git checkout v1.3.2
|
git checkout v1.4.2
|
||||||
```
|
```
|
||||||
|
|
||||||
3、打包构建:
|
3、打包构建:
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "halo-admin",
|
"name": "halo-admin",
|
||||||
"version": "1.4.1",
|
"version": "1.4.2",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -2462,18 +2462,6 @@
|
||||||
"supports-color": "^7.0.0"
|
"supports-color": "^7.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"loader-utils": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz",
|
|
||||||
"integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=",
|
|
||||||
"dev": true,
|
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
|
||||||
"big.js": "^5.2.2",
|
|
||||||
"emojis-list": "^3.0.0",
|
|
||||||
"json5": "^2.1.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"locate-path": {
|
"locate-path": {
|
||||||
"version": "5.0.0",
|
"version": "5.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
|
||||||
|
@ -2603,31 +2591,6 @@
|
||||||
"webpack-sources": "^1.4.3"
|
"webpack-sources": "^1.4.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"vue-loader-v16": {
|
|
||||||
"version": "npm:vue-loader@16.0.0-beta.9",
|
|
||||||
"resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-16.0.0-beta.9.tgz?cache=0&sync_timestamp=1603783106162&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-16.0.0-beta.9.tgz",
|
|
||||||
"integrity": "sha1-UlEsthwpaCfJnA1UOYvvhL5ESPw=",
|
|
||||||
"dev": true,
|
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
|
||||||
"chalk": "^4.1.0",
|
|
||||||
"hash-sum": "^2.0.0",
|
|
||||||
"loader-utils": "^2.0.0"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"chalk": {
|
|
||||||
"version": "4.1.0",
|
|
||||||
"resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz",
|
|
||||||
"integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=",
|
|
||||||
"dev": true,
|
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
|
||||||
"ansi-styles": "^4.1.0",
|
|
||||||
"supports-color": "^7.1.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"wrap-ansi": {
|
"wrap-ansi": {
|
||||||
"version": "6.2.0",
|
"version": "6.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
|
||||||
|
@ -16164,6 +16127,87 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"vue-loader-v16": {
|
||||||
|
"version": "npm:vue-loader@16.0.0-beta.9",
|
||||||
|
"resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-16.0.0-beta.9.tgz?cache=0&sync_timestamp=1604303341876&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-16.0.0-beta.9.tgz",
|
||||||
|
"integrity": "sha1-UlEsthwpaCfJnA1UOYvvhL5ESPw=",
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"chalk": "^4.1.0",
|
||||||
|
"hash-sum": "^2.0.0",
|
||||||
|
"loader-utils": "^2.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"ansi-styles": {
|
||||||
|
"version": "4.3.0",
|
||||||
|
"resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.3.0.tgz?cache=0&sync_timestamp=1601839122515&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-4.3.0.tgz",
|
||||||
|
"integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=",
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"color-convert": "^2.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"chalk": {
|
||||||
|
"version": "4.1.0",
|
||||||
|
"resolved": "https://registry.npm.taobao.org/chalk/download/chalk-4.1.0.tgz",
|
||||||
|
"integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=",
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"ansi-styles": "^4.1.0",
|
||||||
|
"supports-color": "^7.1.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"color-convert": {
|
||||||
|
"version": "2.0.1",
|
||||||
|
"resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz",
|
||||||
|
"integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=",
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"color-name": "~1.1.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"color-name": {
|
||||||
|
"version": "1.1.4",
|
||||||
|
"resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz",
|
||||||
|
"integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=",
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"has-flag": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz?cache=0&sync_timestamp=1596294337050&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-flag%2Fdownload%2Fhas-flag-4.0.0.tgz",
|
||||||
|
"integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"loader-utils": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz",
|
||||||
|
"integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=",
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"big.js": "^5.2.2",
|
||||||
|
"emojis-list": "^3.0.0",
|
||||||
|
"json5": "^2.1.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"supports-color": {
|
||||||
|
"version": "7.2.0",
|
||||||
|
"resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.2.0.tgz?cache=0&sync_timestamp=1598611730985&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsupports-color%2Fdownload%2Fsupports-color-7.2.0.tgz",
|
||||||
|
"integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=",
|
||||||
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
|
"requires": {
|
||||||
|
"has-flag": "^4.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"vue-ls": {
|
"vue-ls": {
|
||||||
"version": "3.2.1",
|
"version": "3.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/vue-ls/-/vue-ls-3.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/vue-ls/-/vue-ls-3.2.1.tgz",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "halo-admin",
|
"name": "halo-admin",
|
||||||
"version": "1.4.1",
|
"version": "1.4.2",
|
||||||
"author": "halo-dev",
|
"author": "halo-dev",
|
||||||
"description": "Halo admin client.",
|
"description": "Halo admin client.",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<meta name="renderer" content="webkit">
|
<meta name="renderer" content="webkit">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
|
||||||
<meta name="robots" content="noindex,nofllow" />
|
<meta name="robots" content="noindex,nofllow" />
|
||||||
<meta name="generator" content="Halo 1.4.1" />
|
<meta name="generator" content="Halo 1.4.2" />
|
||||||
<link rel="icon" href="/favicon.ico" />
|
<link rel="icon" href="/favicon.ico" />
|
||||||
<title>Halo Dashboard</title>
|
<title>Halo Dashboard</title>
|
||||||
<style>
|
<style>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<page-view
|
<page-view
|
||||||
:title="activatedTheme?activatedTheme.name:'无'"
|
:title="activatedTheme ? activatedTheme.name : '无'"
|
||||||
subTitle="当前启用"
|
subTitle="当前启用"
|
||||||
>
|
>
|
||||||
<template slot="extra">
|
<template slot="extra">
|
||||||
|
@ -195,7 +195,7 @@
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
<a-form-model-item
|
<a-form-model-item
|
||||||
label="版本:"
|
label="版本:"
|
||||||
v-show="installModal.remote.byBranchOrRelease ==='release'"
|
v-show="installModal.remote.byBranchOrRelease === 'release'"
|
||||||
>
|
>
|
||||||
<a-select
|
<a-select
|
||||||
v-model="installModal.remote.selectedRelease"
|
v-model="installModal.remote.selectedRelease"
|
||||||
|
@ -210,7 +210,7 @@
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
<a-form-model-item
|
<a-form-model-item
|
||||||
label="分支:"
|
label="分支:"
|
||||||
v-show="installModal.remote.byBranchOrRelease ==='branch'"
|
v-show="installModal.remote.byBranchOrRelease === 'branch'"
|
||||||
>
|
>
|
||||||
<a-select
|
<a-select
|
||||||
v-model="installModal.remote.selectedBranch"
|
v-model="installModal.remote.selectedBranch"
|
||||||
|
@ -223,7 +223,7 @@
|
||||||
>{{ item.branch }}</a-select-option>
|
>{{ item.branch }}</a-select-option>
|
||||||
</a-select>
|
</a-select>
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
<a-form-model-item v-show="installModal.remote.byBranchOrRelease ==='release'">
|
<a-form-model-item v-show="installModal.remote.byBranchOrRelease === 'release'">
|
||||||
<ReactiveButton
|
<ReactiveButton
|
||||||
:disabled="!installModal.remote.selectedRelease"
|
:disabled="!installModal.remote.selectedRelease"
|
||||||
type="primary"
|
type="primary"
|
||||||
|
@ -236,7 +236,7 @@
|
||||||
erroredText="下载失败"
|
erroredText="下载失败"
|
||||||
></ReactiveButton>
|
></ReactiveButton>
|
||||||
</a-form-model-item>
|
</a-form-model-item>
|
||||||
<a-form-model-item v-show="installModal.remote.byBranchOrRelease ==='branch'">
|
<a-form-model-item v-show="installModal.remote.byBranchOrRelease === 'branch'">
|
||||||
<ReactiveButton
|
<ReactiveButton
|
||||||
:disabled="!installModal.remote.selectedBranch"
|
:disabled="!installModal.remote.selectedBranch"
|
||||||
type="primary"
|
type="primary"
|
||||||
|
@ -290,10 +290,22 @@
|
||||||
:width="416"
|
:width="416"
|
||||||
:closable="false"
|
:closable="false"
|
||||||
destroyOnClose
|
destroyOnClose
|
||||||
@ok="handleDeleteTheme(themeDeleteModal.selected.id, themeDeleteModal.deleteSettings)"
|
|
||||||
@cancel="themeDeleteModal.visible = false"
|
|
||||||
:afterClose="onThemeDeleteModalClose"
|
:afterClose="onThemeDeleteModalClose"
|
||||||
>
|
>
|
||||||
|
<template slot="footer">
|
||||||
|
<a-button @click="themeDeleteModal.visible = false">
|
||||||
|
取消
|
||||||
|
</a-button>
|
||||||
|
<ReactiveButton
|
||||||
|
@click="handleDeleteTheme(themeDeleteModal.selected.id, themeDeleteModal.deleteSettings)"
|
||||||
|
@callback="handleDeleteThemeCallback"
|
||||||
|
:loading="themeDeleteModal.deleting"
|
||||||
|
:errored="themeDeleteModal.deleteErrored"
|
||||||
|
text="确定"
|
||||||
|
loadedText="删除成功"
|
||||||
|
erroredText="删除失败"
|
||||||
|
></ReactiveButton>
|
||||||
|
</template>
|
||||||
<p>确定删除【{{ themeDeleteModal.selected.name }}】主题?</p>
|
<p>确定删除【{{ themeDeleteModal.selected.name }}】主题?</p>
|
||||||
<a-checkbox v-model="themeDeleteModal.deleteSettings">
|
<a-checkbox v-model="themeDeleteModal.deleteSettings">
|
||||||
同时删除主题配置
|
同时删除主题配置
|
||||||
|
@ -358,7 +370,9 @@ export default {
|
||||||
themeDeleteModal: {
|
themeDeleteModal: {
|
||||||
visible: false,
|
visible: false,
|
||||||
deleteSettings: false,
|
deleteSettings: false,
|
||||||
selected: {}
|
selected: {},
|
||||||
|
deleting: false,
|
||||||
|
deleteErrored: false,
|
||||||
},
|
},
|
||||||
|
|
||||||
themeSettingDrawer: {
|
themeSettingDrawer: {
|
||||||
|
@ -423,10 +437,25 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
handleDeleteTheme(themeId, deleteSettings) {
|
handleDeleteTheme(themeId, deleteSettings) {
|
||||||
themeApi.delete(themeId, deleteSettings).finally(() => {
|
this.themeDeleteModal.deleting = true
|
||||||
|
themeApi
|
||||||
|
.delete(themeId, deleteSettings)
|
||||||
|
.catch(() => {
|
||||||
|
this.themeDeleteModal.deleteErrored = false
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
setTimeout(() => {
|
||||||
|
this.themeDeleteModal.deleting = false
|
||||||
|
}, 400)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleDeleteThemeCallback() {
|
||||||
|
if (this.themeDeleteModal.deleteErrored) {
|
||||||
|
this.themeDeleteModal.deleteErrored = false
|
||||||
|
} else {
|
||||||
this.themeDeleteModal.visible = false
|
this.themeDeleteModal.visible = false
|
||||||
this.handleListThemes()
|
this.handleListThemes()
|
||||||
})
|
}
|
||||||
},
|
},
|
||||||
handleUploadSucceed() {
|
handleUploadSucceed() {
|
||||||
this.installModal.visible = false
|
this.installModal.visible = false
|
||||||
|
@ -560,7 +589,7 @@ export default {
|
||||||
this.themeDeleteModal.visible = false
|
this.themeDeleteModal.visible = false
|
||||||
this.themeDeleteModal.deleteSettings = false
|
this.themeDeleteModal.deleteSettings = false
|
||||||
this.themeDeleteModal.selected = {}
|
this.themeDeleteModal.selected = {}
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
Loading…
Reference in New Issue