mirror of https://github.com/halo-dev/halo
fix: parent category cannot be selected in post settings #365 (halo-dev/console#367)
parent
02dea4e3af
commit
1648b28852
10
package.json
10
package.json
|
@ -28,7 +28,7 @@
|
|||
"axios": "^0.21.4",
|
||||
"dayjs": "^1.10.7",
|
||||
"enquire.js": "^2.1.6",
|
||||
"filepond": "^4.29.1",
|
||||
"filepond": "^4.30.3",
|
||||
"filepond-plugin-file-validate-type": "^1.2.6",
|
||||
"filepond-plugin-image-preview": "^4.6.10",
|
||||
"flv.js": "^1.6.2",
|
||||
|
@ -44,7 +44,7 @@
|
|||
"vue-dplayer": "0.0.10",
|
||||
"vue-filepond": "^6.0.3",
|
||||
"vue-ls": "^3.2.2",
|
||||
"vue-router": "^3.5.2",
|
||||
"vue-router": "^3.5.3",
|
||||
"vuedraggable": "^2.24.3",
|
||||
"vuejs-logger": "^1.10.2",
|
||||
"vuex": "^3.6.2"
|
||||
|
@ -52,9 +52,9 @@
|
|||
"devDependencies": {
|
||||
"@babel/polyfill": "^7.12.1",
|
||||
"@vue/cli-plugin-babel": "^3.12.1",
|
||||
"@vue/cli-plugin-eslint": "^4.5.13",
|
||||
"@vue/cli-plugin-unit-jest": "^4.5.13",
|
||||
"@vue/cli-service": "^4.5.13",
|
||||
"@vue/cli-plugin-eslint": "^4.5.15",
|
||||
"@vue/cli-plugin-unit-jest": "^4.5.15",
|
||||
"@vue/cli-service": "^4.5.15",
|
||||
"@vue/eslint-config-prettier": "^6.0.0",
|
||||
"@vue/test-utils": "^1.2.2",
|
||||
"babel-core": "7.0.0-bridge.0",
|
||||
|
|
|
@ -6,9 +6,9 @@ specifiers:
|
|||
'@codemirror/lang-html': ^0.19.3
|
||||
'@codemirror/lang-java': ^0.19.1
|
||||
'@vue/cli-plugin-babel': ^3.12.1
|
||||
'@vue/cli-plugin-eslint': ^4.5.13
|
||||
'@vue/cli-plugin-unit-jest': ^4.5.13
|
||||
'@vue/cli-service': ^4.5.13
|
||||
'@vue/cli-plugin-eslint': ^4.5.15
|
||||
'@vue/cli-plugin-unit-jest': ^4.5.15
|
||||
'@vue/cli-service': ^4.5.15
|
||||
'@vue/eslint-config-prettier': ^6.0.0
|
||||
'@vue/test-utils': ^1.2.2
|
||||
ant-design-vue: ^1.7.8
|
||||
|
@ -23,7 +23,7 @@ specifiers:
|
|||
eslint-plugin-html: ^6.2.0
|
||||
eslint-plugin-prettier: ^3.4.1
|
||||
eslint-plugin-vue: ^6.2.2
|
||||
filepond: ^4.29.1
|
||||
filepond: ^4.30.3
|
||||
filepond-plugin-file-validate-type: ^1.2.6
|
||||
filepond-plugin-image-preview: ^4.6.10
|
||||
flv.js: ^1.6.2
|
||||
|
@ -45,7 +45,7 @@ specifiers:
|
|||
vue-dplayer: 0.0.10
|
||||
vue-filepond: ^6.0.3
|
||||
vue-ls: ^3.2.2
|
||||
vue-router: ^3.5.2
|
||||
vue-router: ^3.5.3
|
||||
vue-template-compiler: ^2.6.14
|
||||
vuedraggable: ^2.24.3
|
||||
vuejs-logger: ^1.10.2
|
||||
|
@ -59,9 +59,9 @@ dependencies:
|
|||
axios: 0.21.4
|
||||
dayjs: 1.10.7
|
||||
enquire.js: 2.1.6
|
||||
filepond: 4.29.1
|
||||
filepond-plugin-file-validate-type: 1.2.6_filepond@4.29.1
|
||||
filepond-plugin-image-preview: 4.6.10_filepond@4.29.1
|
||||
filepond: 4.30.3
|
||||
filepond-plugin-file-validate-type: 1.2.6_filepond@4.30.3
|
||||
filepond-plugin-image-preview: 4.6.10_filepond@4.30.3
|
||||
flv.js: 1.6.2
|
||||
halo-editor: 2.8.3
|
||||
marked: 2.1.3
|
||||
|
@ -73,9 +73,9 @@ dependencies:
|
|||
vue-contextmenujs: 1.3.13
|
||||
vue-count-to: 1.0.13
|
||||
vue-dplayer: 0.0.10
|
||||
vue-filepond: 6.0.3_filepond@4.29.1+vue@2.6.14
|
||||
vue-filepond: 6.0.3_filepond@4.30.3+vue@2.6.14
|
||||
vue-ls: 3.2.2
|
||||
vue-router: 3.5.2
|
||||
vue-router: 3.5.3
|
||||
vuedraggable: 2.24.3
|
||||
vuejs-logger: 1.10.2
|
||||
vuex: 3.6.2_vue@2.6.14
|
||||
|
@ -83,9 +83,9 @@ dependencies:
|
|||
devDependencies:
|
||||
'@babel/polyfill': 7.12.1
|
||||
'@vue/cli-plugin-babel': 3.12.1
|
||||
'@vue/cli-plugin-eslint': 4.5.13_a58cf9e4d577795b8c257bee96d49483
|
||||
'@vue/cli-plugin-unit-jest': 4.5.13_4e86dea06beb54eccc1910d899f74f0d
|
||||
'@vue/cli-service': 4.5.13_6e991adc599438a4ab84a9dd52158ae9
|
||||
'@vue/cli-plugin-eslint': 4.5.15_159f9ca94908a7070131e2c321d72521
|
||||
'@vue/cli-plugin-unit-jest': 4.5.15_3ca2529360d3dc6148df6c0445843a57
|
||||
'@vue/cli-service': 4.5.15_6e991adc599438a4ab84a9dd52158ae9
|
||||
'@vue/eslint-config-prettier': 6.0.0_6cba795d40c78049f8228de49cc26ac7
|
||||
'@vue/test-utils': 1.2.2_9065e7474e033a8e4b95615fc8e6c36c
|
||||
babel-core: 7.0.0-bridge.0
|
||||
|
@ -2022,8 +2022,8 @@ packages:
|
|||
camelcase: 5.3.1
|
||||
dev: true
|
||||
|
||||
/@vue/cli-overlay/4.5.13:
|
||||
resolution: {integrity: sha512-jhUIg3klgi5Cxhs8dnat5hi/W2tQJvsqCxR0u6hgfSob0ORODgUBlN+F/uwq7cKIe/pzedVUk1y07F13GQvPqg==}
|
||||
/@vue/cli-overlay/4.5.15:
|
||||
resolution: {integrity: sha512-0zI0kANAVmjFO2LWGUIzdGPMeE3+9k+KeRDXsUqB30YfRF7abjfiiRPq5BU9pOzlJbVdpRkisschBrvdJqDuDg==}
|
||||
dev: true
|
||||
|
||||
/@vue/cli-plugin-babel/3.12.1:
|
||||
|
@ -2040,14 +2040,14 @@ packages:
|
|||
- webpack-command
|
||||
dev: true
|
||||
|
||||
/@vue/cli-plugin-eslint/4.5.13_a58cf9e4d577795b8c257bee96d49483:
|
||||
resolution: {integrity: sha512-yc2uXX6aBiy3vEf5TwaueaDqQbdIXIhk0x0KzEtpPo23jBdLkpOSoU5NCgE06g/ZiGAcettpmBSv73Hfp4wHEw==}
|
||||
/@vue/cli-plugin-eslint/4.5.15_159f9ca94908a7070131e2c321d72521:
|
||||
resolution: {integrity: sha512-/2Fl6wY/5bz3HD035oSnFRMsKNxDxU396KqBdpCQdwdvqk4mm6JAbXqihpcBRTNPeTO6w+LwGe6FE56PVbJdbg==}
|
||||
peerDependencies:
|
||||
'@vue/cli-service': ^3.0.0 || ^4.0.0-0
|
||||
eslint: '>= 1.6.0 < 7.0.0'
|
||||
dependencies:
|
||||
'@vue/cli-service': 4.5.13_6e991adc599438a4ab84a9dd52158ae9
|
||||
'@vue/cli-shared-utils': 4.5.13
|
||||
'@vue/cli-service': 4.5.15_6e991adc599438a4ab84a9dd52158ae9
|
||||
'@vue/cli-shared-utils': 4.5.15
|
||||
eslint: 6.8.0
|
||||
eslint-loader: 2.2.1_eslint@6.8.0+webpack@4.46.0
|
||||
globby: 9.2.0
|
||||
|
@ -2059,25 +2059,25 @@ packages:
|
|||
- webpack-command
|
||||
dev: true
|
||||
|
||||
/@vue/cli-plugin-router/4.5.13_@vue+cli-service@4.5.13:
|
||||
resolution: {integrity: sha512-tgtMDjchB/M1z8BcfV4jSOY9fZSMDTPgF9lsJIiqBWMxvBIsk9uIZHxp62DibYME4CCKb/nNK61XHaikFp+83w==}
|
||||
/@vue/cli-plugin-router/4.5.15_@vue+cli-service@4.5.15:
|
||||
resolution: {integrity: sha512-q7Y6kP9b3k55Ca2j59xJ7XPA6x+iSRB+N4ac0ZbcL1TbInVQ4j5wCzyE+uqid40hLy4fUdlpl4X9fHJEwuVxPA==}
|
||||
peerDependencies:
|
||||
'@vue/cli-service': ^3.0.0 || ^4.0.0-0
|
||||
dependencies:
|
||||
'@vue/cli-service': 4.5.13_6e991adc599438a4ab84a9dd52158ae9
|
||||
'@vue/cli-shared-utils': 4.5.13
|
||||
'@vue/cli-service': 4.5.15_6e991adc599438a4ab84a9dd52158ae9
|
||||
'@vue/cli-shared-utils': 4.5.15
|
||||
dev: true
|
||||
|
||||
/@vue/cli-plugin-unit-jest/4.5.13_4e86dea06beb54eccc1910d899f74f0d:
|
||||
resolution: {integrity: sha512-8t7QIihJWB9Kv85FamrEzWbJnvsLhQdyXHl3h+qhAihrZdLL+9mj905y88cBCq+i2PqqZ/qAoabbpf4DxDAb7g==}
|
||||
/@vue/cli-plugin-unit-jest/4.5.15_3ca2529360d3dc6148df6c0445843a57:
|
||||
resolution: {integrity: sha512-oE3RDMerb21P6ALg70Zh2zU+RYYjoe09/7ZXYUj03uTb2obqUbcINpFfeVwM0B/J6H1YmqWJpnNBxWURhrqQHg==}
|
||||
peerDependencies:
|
||||
'@vue/cli-service': ^3.0.0 || ^4.0.0-0
|
||||
dependencies:
|
||||
'@babel/core': 7.15.5
|
||||
'@babel/plugin-transform-modules-commonjs': 7.15.4_@babel+core@7.15.5
|
||||
'@types/jest': 24.9.1
|
||||
'@vue/cli-service': 4.5.13_6e991adc599438a4ab84a9dd52158ae9
|
||||
'@vue/cli-shared-utils': 4.5.13
|
||||
'@vue/cli-service': 4.5.15_6e991adc599438a4ab84a9dd52158ae9
|
||||
'@vue/cli-shared-utils': 4.5.15
|
||||
babel-core: 7.0.0-bridge.0_@babel+core@7.15.5
|
||||
babel-jest: 24.9.0_@babel+core@7.15.5
|
||||
babel-plugin-transform-es2015-modules-commonjs: 6.26.2
|
||||
|
@ -2098,16 +2098,16 @@ packages:
|
|||
- vue-template-compiler
|
||||
dev: true
|
||||
|
||||
/@vue/cli-plugin-vuex/4.5.13_@vue+cli-service@4.5.13:
|
||||
resolution: {integrity: sha512-I1S9wZC7iI0Wn8kw8Zh+A2Qkf6s1M6vTGBkx8boXjuzfwEEyEHRxadsVCecZc8Mkpydo0nykj+MyYF96TKFuVA==}
|
||||
/@vue/cli-plugin-vuex/4.5.15_@vue+cli-service@4.5.15:
|
||||
resolution: {integrity: sha512-fqap+4HN+w+InDxlA3hZTOGE0tzBTgXhKLoDydhywqgmhQ1D9JA6Feh94ze6tG8DsWX58/ujYUqA8jAz17FJtg==}
|
||||
peerDependencies:
|
||||
'@vue/cli-service': ^3.0.0 || ^4.0.0-0
|
||||
dependencies:
|
||||
'@vue/cli-service': 4.5.13_6e991adc599438a4ab84a9dd52158ae9
|
||||
'@vue/cli-service': 4.5.15_6e991adc599438a4ab84a9dd52158ae9
|
||||
dev: true
|
||||
|
||||
/@vue/cli-service/4.5.13_6e991adc599438a4ab84a9dd52158ae9:
|
||||
resolution: {integrity: sha512-CKAZN4iokMMsaUyJRU22oUAz3oS/X9sVBSKAF2/shFBV5xh3jqAlKl8OXZYz4cXGFLA6djNuYrniuLAo7Ku97A==}
|
||||
/@vue/cli-service/4.5.15_6e991adc599438a4ab84a9dd52158ae9:
|
||||
resolution: {integrity: sha512-sFWnLYVCn4zRfu45IcsIE9eXM0YpDV3S11vlM2/DVbIPAGoYo5ySpSof6aHcIvkeGsIsrHFpPHzNvDZ/efs7jA==}
|
||||
engines: {node: '>=8'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
|
@ -2140,10 +2140,10 @@ packages:
|
|||
'@types/minimist': 1.2.2
|
||||
'@types/webpack': 4.41.31
|
||||
'@types/webpack-dev-server': 3.11.6_debug@4.3.2
|
||||
'@vue/cli-overlay': 4.5.13
|
||||
'@vue/cli-plugin-router': 4.5.13_@vue+cli-service@4.5.13
|
||||
'@vue/cli-plugin-vuex': 4.5.13_@vue+cli-service@4.5.13
|
||||
'@vue/cli-shared-utils': 4.5.13
|
||||
'@vue/cli-overlay': 4.5.15
|
||||
'@vue/cli-plugin-router': 4.5.15_@vue+cli-service@4.5.15
|
||||
'@vue/cli-plugin-vuex': 4.5.15_@vue+cli-service@4.5.15
|
||||
'@vue/cli-shared-utils': 4.5.15
|
||||
'@vue/component-compiler-utils': 3.2.2
|
||||
'@vue/preload-webpack-plugin': 1.1.2_502c618fc8a7d35df07e93275324a2d0
|
||||
'@vue/web-component-wrapper': 1.3.0
|
||||
|
@ -2217,8 +2217,8 @@ packages:
|
|||
string.prototype.padstart: 3.1.2
|
||||
dev: true
|
||||
|
||||
/@vue/cli-shared-utils/4.5.13:
|
||||
resolution: {integrity: sha512-HpnOrkLg42RFUsQGMJv26oTG3J3FmKtO2WSRhKIIL+1ok3w9OjGCtA3nMMXN27f9eX14TqO64M36DaiSZ1fSiw==}
|
||||
/@vue/cli-shared-utils/4.5.15:
|
||||
resolution: {integrity: sha512-SKaej9hHzzjKSOw1NlFmc6BSE0vcqUQMQiv1cxQ2DhVyy4QxZXBmzmiLBUBe+hYZZs1neXW7n//udeN9bCAY+Q==}
|
||||
dependencies:
|
||||
'@hapi/joi': 15.1.1
|
||||
chalk: 2.4.2
|
||||
|
@ -5397,24 +5397,24 @@ packages:
|
|||
resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
|
||||
dev: true
|
||||
|
||||
/filepond-plugin-file-validate-type/1.2.6_filepond@4.29.1:
|
||||
/filepond-plugin-file-validate-type/1.2.6_filepond@4.30.3:
|
||||
resolution: {integrity: sha512-3JFxpb4o5D4BssP/Drjn2GPpejg/QXzU4e3/Pq8IvIJuokHz95b6+RPYstQ+6ITKREYup0N8F/CO/OQfhVkUgg==}
|
||||
peerDependencies:
|
||||
filepond: '>=1.x <5.x'
|
||||
dependencies:
|
||||
filepond: 4.29.1
|
||||
filepond: 4.30.3
|
||||
dev: false
|
||||
|
||||
/filepond-plugin-image-preview/4.6.10_filepond@4.29.1:
|
||||
/filepond-plugin-image-preview/4.6.10_filepond@4.30.3:
|
||||
resolution: {integrity: sha512-C7Q5Sr/d4RQb2nMNQR93OiMt91OHxpvmIBGl+CO1dZE46lM49NUfI08dyElAOxTslDcA8pAfjFFCKo0sNYbrBg==}
|
||||
peerDependencies:
|
||||
filepond: '>=4.x <5.x'
|
||||
dependencies:
|
||||
filepond: 4.29.1
|
||||
filepond: 4.30.3
|
||||
dev: false
|
||||
|
||||
/filepond/4.29.1:
|
||||
resolution: {integrity: sha512-j2YMYxzhDXYQScARkkYb5NwwfOxLWKWJK3v/Wozq1gQX3s5XLY3GfJhR9ysqP5l4697J3gIn898fRG5Z61UYIQ==}
|
||||
/filepond/4.30.3:
|
||||
resolution: {integrity: sha512-G2b1LEe90Sq2vH0SYDASTB+vVU735NBctzIaFPlZtb14QAgi/AL89WyQ6LhTfqgyrMyuZur2O9yHAmzS2E9ZnA==}
|
||||
dev: false
|
||||
|
||||
/filesize/3.6.1:
|
||||
|
@ -10589,6 +10589,7 @@ packages:
|
|||
/svgo/1.3.2:
|
||||
resolution: {integrity: sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==}
|
||||
engines: {node: '>=4.0.0'}
|
||||
deprecated: This SVGO version is no longer supported. Upgrade to v2.x.x.
|
||||
hasBin: true
|
||||
dependencies:
|
||||
chalk: 2.4.2
|
||||
|
@ -11246,13 +11247,13 @@ packages:
|
|||
- supports-color
|
||||
dev: true
|
||||
|
||||
/vue-filepond/6.0.3_filepond@4.29.1+vue@2.6.14:
|
||||
/vue-filepond/6.0.3_filepond@4.30.3+vue@2.6.14:
|
||||
resolution: {integrity: sha512-m0wArAdpgzOOs19bWA6zzYlHAb2aK+igPoKPZGrzpgKiiELPKW7XZ2OBDXzk7rhpFLkedujVrMqwjPyZfmQTTQ==}
|
||||
peerDependencies:
|
||||
filepond: '>=4.7.4 < 5.x'
|
||||
vue: '>=2.6.0 < 3.x'
|
||||
dependencies:
|
||||
filepond: 4.29.1
|
||||
filepond: 4.30.3
|
||||
vue: 2.6.14
|
||||
dev: false
|
||||
|
||||
|
@ -11336,8 +11337,8 @@ packages:
|
|||
resolution: {integrity: sha512-uKNKpFOVeWNqS2mrBZqnpLyXJo5Q+vnkex6JvpENvhXHFNBW/SJTP8vJywLuVT3DpxwXcF9N0dyIiZ4/NpTexQ==}
|
||||
dev: false
|
||||
|
||||
/vue-router/3.5.2:
|
||||
resolution: {integrity: sha512-807gn82hTnjCYGrnF3eNmIw/dk7/GE4B5h69BlyCK9KHASwSloD1Sjcn06zg9fVG4fYH2DrsNBZkpLtb25WtaQ==}
|
||||
/vue-router/3.5.3:
|
||||
resolution: {integrity: sha512-FUlILrW3DGitS2h+Xaw8aRNvGTwtuaxrRkNSHWTizOfLUie7wuYwezeZ50iflRn8YPV5kxmU2LQuu3nM/b3Zsg==}
|
||||
dev: false
|
||||
|
||||
/vue-style-loader/4.1.3:
|
||||
|
|
|
@ -654,11 +654,6 @@ body {
|
|||
}
|
||||
}
|
||||
|
||||
.post-thumb-remove,
|
||||
.sheet-thumb-remove {
|
||||
margin-top: 16px;
|
||||
}
|
||||
|
||||
.ant-calendar-picker {
|
||||
width: 100% !important;
|
||||
}
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
<template slot="extra">
|
||||
<a-space>
|
||||
<ReactiveButton
|
||||
:errored="draftSavedErrored"
|
||||
:errored="draftSaveErrored"
|
||||
:loading="draftSaving"
|
||||
erroredText="保存失败"
|
||||
loadedText="保存成功"
|
||||
text="保存草稿"
|
||||
type="danger"
|
||||
@callback="draftSavedErrored = false"
|
||||
@callback="draftSaveErrored = false"
|
||||
@click="handleSaveDraft(false)"
|
||||
></ReactiveButton>
|
||||
<a-button :loading="previewSaving" @click="handlePreview">预览</a-button>
|
||||
|
@ -80,7 +80,7 @@ export default {
|
|||
contentChanges: 0,
|
||||
draftSaving: false,
|
||||
previewSaving: false,
|
||||
draftSavedErrored: false
|
||||
draftSaveErrored: false
|
||||
}
|
||||
},
|
||||
beforeRouteEnter(to, from, next) {
|
||||
|
@ -158,7 +158,7 @@ export default {
|
|||
this.handleRestoreSavedStatus()
|
||||
})
|
||||
.catch(() => {
|
||||
this.draftSavedErrored = true
|
||||
this.draftSaveErrored = true
|
||||
})
|
||||
.finally(() => {
|
||||
setTimeout(() => {
|
||||
|
@ -173,7 +173,7 @@ export default {
|
|||
this.handleRestoreSavedStatus()
|
||||
})
|
||||
.catch(() => {
|
||||
this.draftSavedErrored = true
|
||||
this.draftSaveErrored = true
|
||||
})
|
||||
.finally(() => {
|
||||
setTimeout(() => {
|
||||
|
@ -190,7 +190,7 @@ export default {
|
|||
this.handleRestoreSavedStatus()
|
||||
})
|
||||
.catch(() => {
|
||||
this.draftSavedErrored = true
|
||||
this.draftSaveErrored = true
|
||||
})
|
||||
.finally(() => {
|
||||
setTimeout(() => {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<a-tree checkable :treeData="categoryTree" :defaultExpandAll="true" :checkedKeys="categoryIds" @check="onCheck">
|
||||
<a-tree checkable :treeData="categoryTree" defaultExpandAll checkStrictly :checkedKeys="categoryIds" @check="onCheck">
|
||||
</a-tree>
|
||||
</template>
|
||||
|
||||
|
@ -33,15 +33,8 @@ export default {
|
|||
onCheck(checkedKeys, e) {
|
||||
this.$log.debug('Chekced keys', checkedKeys)
|
||||
this.$log.debug('e', e)
|
||||
const categoryIds = e.checkedNodes
|
||||
.filter(node => {
|
||||
return node.data.props.isLeaf
|
||||
})
|
||||
.map(node => node.key)
|
||||
|
||||
this.$log.debug('Effectively selected category ids', categoryIds)
|
||||
|
||||
this.$emit('check', categoryIds)
|
||||
this.$emit('check', checkedKeys.checked)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<div class="mb-4">
|
||||
<h3 class="post-setting-drawer-title">基本设置</h3>
|
||||
<div class="post-setting-drawer-item">
|
||||
<a-form layout="vertical">
|
||||
<a-form>
|
||||
<a-form-item label="文章标题:" v-if="needTitle">
|
||||
<a-input v-model="selectedPost.title" />
|
||||
</a-form-item>
|
||||
|
@ -69,7 +69,7 @@
|
|||
<div class="mb-4">
|
||||
<h3 class="post-setting-drawer-title">分类目录</h3>
|
||||
<div class="post-setting-drawer-item">
|
||||
<a-form layout="vertical">
|
||||
<a-form>
|
||||
<a-form-item>
|
||||
<category-tree v-model="selectedCategoryIds" :categories="categories" />
|
||||
</a-form-item>
|
||||
|
@ -97,7 +97,7 @@
|
|||
<div class="mb-4">
|
||||
<h3 class="post-setting-drawer-title">标签</h3>
|
||||
<div class="post-setting-drawer-item">
|
||||
<a-form layout="vertical">
|
||||
<a-form>
|
||||
<a-form-item>
|
||||
<TagSelect v-model="selectedTagIds" />
|
||||
</a-form-item>
|
||||
|
@ -109,7 +109,7 @@
|
|||
<div class="mb-4">
|
||||
<h3 class="post-setting-drawer-title">摘要</h3>
|
||||
<div class="post-setting-drawer-item">
|
||||
<a-form layout="vertical">
|
||||
<a-form>
|
||||
<a-form-item>
|
||||
<a-input
|
||||
type="textarea"
|
||||
|
@ -127,19 +127,15 @@
|
|||
<h3 class="post-setting-drawer-title">封面图</h3>
|
||||
<div class="post-setting-drawer-item">
|
||||
<div class="post-thumb">
|
||||
<img
|
||||
class="img"
|
||||
:src="selectedPost.thumbnail || '/images/placeholder.jpg'"
|
||||
@click="thumbDrawerVisible = true"
|
||||
/>
|
||||
|
||||
<a-form layout="vertial">
|
||||
<a-form-item>
|
||||
<a-input v-model="selectedPost.thumbnail" placeholder="点击封面图选择图片,或者输入外部链接"></a-input>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
|
||||
<a-button class="post-thumb-remove" type="dashed" @click="selectedPost.thumbnail = null">移除</a-button>
|
||||
<a-space direction="vertical">
|
||||
<img
|
||||
class="img"
|
||||
:src="selectedPost.thumbnail || '/images/placeholder.jpg'"
|
||||
@click="thumbDrawerVisible = true"
|
||||
/>
|
||||
<a-input v-model="selectedPost.thumbnail" placeholder="点击封面图选择图片,或者输入外部链接"></a-input>
|
||||
<a-button type="dashed" @click="selectedPost.thumbnail = null">移除</a-button>
|
||||
</a-space>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -160,7 +156,7 @@
|
|||
<div class="mb-4">
|
||||
<h3 class="post-setting-drawer-title">加密设置</h3>
|
||||
<div class="post-setting-drawer-item">
|
||||
<a-form layout="vertical">
|
||||
<a-form>
|
||||
<a-form-item label="访问密码:">
|
||||
<a-input-password v-model="selectedPost.password" autocomplete="new-password" />
|
||||
</a-form-item>
|
||||
|
@ -171,7 +167,7 @@
|
|||
<div class="mb-4">
|
||||
<h3 class="post-setting-drawer-title">SEO 设置</h3>
|
||||
<div class="post-setting-drawer-item">
|
||||
<a-form layout="vertical">
|
||||
<a-form>
|
||||
<a-form-item label="自定义关键词:">
|
||||
<a-input
|
||||
v-model="selectedPost.metaKeywords"
|
||||
|
@ -192,7 +188,7 @@
|
|||
<a-divider />
|
||||
<div class="mb-4">
|
||||
<h3 class="post-setting-drawer-title">元数据</h3>
|
||||
<a-form layout="vertical">
|
||||
<a-form>
|
||||
<a-form-item v-for="(meta, index) in selectedMetas" :key="index" :prop="'metas.' + index + '.value'">
|
||||
<a-row :gutter="5">
|
||||
<a-col :span="12">
|
||||
|
@ -231,7 +227,7 @@
|
|||
@click="handleDraftClick"
|
||||
@callback="handleSavedCallback"
|
||||
:loading="draftSaving"
|
||||
:errored="draftSavedErrored"
|
||||
:errored="draftSaveErrored"
|
||||
text="保存草稿"
|
||||
loadedText="保存成功"
|
||||
erroredText="保存失败"
|
||||
|
@ -240,7 +236,7 @@
|
|||
@click="handlePublishClick()"
|
||||
@callback="handleSavedCallback"
|
||||
:loading="saving"
|
||||
:errored="savedErrored"
|
||||
:errored="saveErrored"
|
||||
:text="`${selectedPost.id ? '保存' : '发布'}`"
|
||||
:loadedText="`${selectedPost.id ? '保存' : '发布'}成功`"
|
||||
:erroredText="`${selectedPost.id ? '保存' : '发布'}失败`"
|
||||
|
@ -286,9 +282,9 @@ export default {
|
|||
categoryToCreate: {},
|
||||
customTpls: [],
|
||||
saving: false,
|
||||
savedErrored: false,
|
||||
saveErrored: false,
|
||||
draftSaving: false,
|
||||
draftSavedErrored: false
|
||||
draftSaveErrored: false
|
||||
}
|
||||
},
|
||||
props: {
|
||||
|
@ -484,9 +480,9 @@ export default {
|
|||
.update(this.selectedPost.id, this.selectedPost, false)
|
||||
.catch(() => {
|
||||
if (this.selectedPost.status === 'DRAFT') {
|
||||
this.draftSavedErrored = true
|
||||
this.draftSaveErrored = true
|
||||
} else {
|
||||
this.savedErrored = true
|
||||
this.saveErrored = true
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
|
@ -501,9 +497,9 @@ export default {
|
|||
.create(this.selectedPost, false)
|
||||
.catch(() => {
|
||||
if (this.selectedPost.status === 'DRAFT') {
|
||||
this.draftSavedErrored = true
|
||||
this.draftSaveErrored = true
|
||||
} else {
|
||||
this.savedErrored = true
|
||||
this.saveErrored = true
|
||||
}
|
||||
})
|
||||
.then(response => {
|
||||
|
@ -518,9 +514,9 @@ export default {
|
|||
}
|
||||
},
|
||||
handleSavedCallback() {
|
||||
if (this.draftSavedErrored || this.savedErrored) {
|
||||
this.draftSavedErrored = false
|
||||
this.savedErrored = false
|
||||
if (this.draftSaveErrored || this.saveErrored) {
|
||||
this.draftSaveErrored = false
|
||||
this.saveErrored = false
|
||||
} else {
|
||||
this.$emit('onSaved', true)
|
||||
this.$router.push({ name: 'PostList' })
|
||||
|
|
|
@ -3,13 +3,13 @@
|
|||
<template slot="extra">
|
||||
<a-space>
|
||||
<ReactiveButton
|
||||
:errored="draftSavedErrored"
|
||||
:errored="draftSaveErrored"
|
||||
:loading="draftSaving"
|
||||
erroredText="保存失败"
|
||||
loadedText="保存成功"
|
||||
text="保存草稿"
|
||||
type="danger"
|
||||
@callback="draftSavedErrored = false"
|
||||
@callback="draftSaveErrored = false"
|
||||
@click="handleSaveDraft(false)"
|
||||
></ReactiveButton>
|
||||
<a-button :loading="previewSaving" @click="handlePreview">预览</a-button>
|
||||
|
@ -73,7 +73,7 @@ export default {
|
|||
selectedMetas: [],
|
||||
contentChanges: 0,
|
||||
draftSaving: false,
|
||||
draftSavederrored: false,
|
||||
draftSaveErrored: false,
|
||||
previewSaving: false
|
||||
}
|
||||
},
|
||||
|
@ -149,7 +149,7 @@ export default {
|
|||
this.handleRestoreSavedStatus()
|
||||
})
|
||||
.catch(() => {
|
||||
this.draftSavedErrored = true
|
||||
this.draftSaveErrored = true
|
||||
})
|
||||
.finally(() => {
|
||||
setTimeout(() => {
|
||||
|
@ -164,7 +164,7 @@ export default {
|
|||
this.handleRestoreSavedStatus()
|
||||
})
|
||||
.catch(() => {
|
||||
this.draftSavedErrored = true
|
||||
this.draftSaveErrored = true
|
||||
})
|
||||
.finally(() => {
|
||||
setTimeout(() => {
|
||||
|
@ -180,7 +180,7 @@ export default {
|
|||
this.handleRestoreSavedStatus()
|
||||
})
|
||||
.catch(() => {
|
||||
this.draftSavedErrored = true
|
||||
this.draftSaveErrored = true
|
||||
})
|
||||
.finally(() => {
|
||||
setTimeout(() => {
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<div class="mb-4">
|
||||
<h3 class="post-setting-drawer-title">基本设置</h3>
|
||||
<div class="post-setting-drawer-item">
|
||||
<a-form layout="vertical">
|
||||
<a-form>
|
||||
<a-form-item label="页面标题:" v-if="needTitle">
|
||||
<a-input v-model="selectedSheet.title" />
|
||||
</a-form-item>
|
||||
|
@ -62,7 +62,7 @@
|
|||
<div class="mb-4">
|
||||
<h3 class="post-setting-drawer-title">摘要</h3>
|
||||
<div class="post-setting-drawer-item">
|
||||
<a-form layout="vertical">
|
||||
<a-form>
|
||||
<a-form-item>
|
||||
<a-input
|
||||
type="textarea"
|
||||
|
@ -80,19 +80,15 @@
|
|||
<h3 class="post-setting-drawer-title">封面图</h3>
|
||||
<div class="post-setting-drawer-item">
|
||||
<div class="sheet-thumb">
|
||||
<img
|
||||
class="img"
|
||||
:src="selectedSheet.thumbnail || '/images/placeholder.jpg'"
|
||||
@click="thumbDrawerVisible = true"
|
||||
/>
|
||||
|
||||
<a-form layout="vertial">
|
||||
<a-form-item>
|
||||
<a-input v-model="selectedSheet.thumbnail" placeholder="点击封面图选择图片,或者输入外部链接"></a-input>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
|
||||
<a-button class="sheet-thumb-remove" type="dashed" @click="selectedSheet.thumbnail = null">移除</a-button>
|
||||
<a-space direction="vertical">
|
||||
<img
|
||||
class="img"
|
||||
:src="selectedSheet.thumbnail || '/images/placeholder.jpg'"
|
||||
@click="thumbDrawerVisible = true"
|
||||
/>
|
||||
<a-input v-model="selectedSheet.thumbnail" placeholder="点击封面图选择图片,或者输入外部链接"></a-input>
|
||||
<a-button type="dashed" @click="selectedSheet.thumbnail = null">移除</a-button>
|
||||
</a-space>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -113,7 +109,7 @@
|
|||
<div class="mb-4">
|
||||
<h3 class="post-setting-drawer-title">SEO 设置</h3>
|
||||
<div class="post-setting-drawer-item">
|
||||
<a-form layout="vertical">
|
||||
<a-form>
|
||||
<a-form-item label="自定义关键词:">
|
||||
<a-input v-model="selectedSheet.metaKeywords" placeholder="多个关键词以英文逗号隔开" />
|
||||
</a-form-item>
|
||||
|
@ -131,7 +127,7 @@
|
|||
<a-divider />
|
||||
<div class="mb-4">
|
||||
<h3 class="post-setting-drawer-title">元数据</h3>
|
||||
<a-form layout="vertical">
|
||||
<a-form>
|
||||
<a-form-item v-for="(meta, index) in selectedMetas" :key="index" :prop="'meta.' + index + '.value'">
|
||||
<a-row :gutter="5">
|
||||
<a-col :span="12">
|
||||
|
@ -170,7 +166,7 @@
|
|||
@click="handleDraftClick"
|
||||
@callback="handleSavedCallback"
|
||||
:loading="draftSaving"
|
||||
:errored="draftSavedErrored"
|
||||
:errored="draftSaveErrored"
|
||||
text="保存草稿"
|
||||
loadedText="保存成功"
|
||||
erroredText="保存失败"
|
||||
|
@ -179,7 +175,7 @@
|
|||
@click="handlePublishClick()"
|
||||
@callback="handleSavedCallback"
|
||||
:loading="saving"
|
||||
:errored="savedErrored"
|
||||
:errored="saveErrored"
|
||||
:text="`${selectedSheet.id ? '保存' : '发布'}`"
|
||||
:loadedText="`${selectedSheet.id ? '保存' : '发布'}成功`"
|
||||
:erroredText="`${selectedSheet.id ? '保存' : '发布'}失败`"
|
||||
|
@ -209,9 +205,9 @@ export default {
|
|||
selectedSheet: this.sheet,
|
||||
customTpls: [],
|
||||
saving: false,
|
||||
savedErrored: false,
|
||||
saveErrored: false,
|
||||
draftSaving: false,
|
||||
draftSavedErrored: false
|
||||
draftSaveErrored: false
|
||||
}
|
||||
},
|
||||
props: {
|
||||
|
@ -348,9 +344,9 @@ export default {
|
|||
.update(this.selectedSheet.id, this.selectedSheet, false)
|
||||
.catch(() => {
|
||||
if (this.selectedSheet.status === 'DRAFT') {
|
||||
this.draftSavedErrored = true
|
||||
this.draftSaveErrored = true
|
||||
} else {
|
||||
this.savedErrored = true
|
||||
this.saveErrored = true
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
|
@ -364,9 +360,9 @@ export default {
|
|||
.create(this.selectedSheet, false)
|
||||
.catch(() => {
|
||||
if (this.selectedSheet.status === 'DRAFT') {
|
||||
this.draftSavedErrored = true
|
||||
this.draftSaveErrored = true
|
||||
} else {
|
||||
this.savedErrored = true
|
||||
this.saveErrored = true
|
||||
}
|
||||
})
|
||||
.then(response => {
|
||||
|
@ -381,9 +377,9 @@ export default {
|
|||
}
|
||||
},
|
||||
handleSavedCallback() {
|
||||
if (this.draftSavedErrored || this.savedErrored) {
|
||||
this.draftSavedErrored = false
|
||||
this.savedErrored = false
|
||||
if (this.draftSaveErrored || this.saveErrored) {
|
||||
this.draftSaveErrored = false
|
||||
this.saveErrored = false
|
||||
} else {
|
||||
this.$emit('onSaved', true)
|
||||
this.$router.push({ name: 'SheetList', query: { activeKey: 'custom' } })
|
||||
|
|
Loading…
Reference in New Issue