Browse Source

feat: halo-dev/halo#1174 (#270)

pull/272/head
Ryan Wang 4 years ago committed by GitHub
parent
commit
8b641f9905
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 11
      src/api/sheet.js
  2. 1
      src/store/modules/option.js
  3. 12
      src/views/sheet/components/SheetSettingDrawer.vue
  4. 62
      src/views/system/optiontabs/PermalinkTab.vue

11
src/api/sheet.js

@ -96,4 +96,15 @@ sheetApi.sheetStatus = {
text: '回收站'
}
}
sheetApi.permalinkType = {
SECONDARY: {
type: 'SECONDARY',
text: '二级路径'
},
ROOT: {
type: 'ROOT',
text: '根路径'
},
}
export default sheetApi

1
src/store/modules/option.js

@ -9,6 +9,7 @@ const keys = [
'attachment_upload_max_files',
'sheet_prefix',
'post_permalink_type',
'sheet_permalink_type',
'archives_prefix',
'path_suffix',
'default_editor',

12
src/views/sheet/components/SheetSettingDrawer.vue

@ -296,10 +296,20 @@ export default {
return datetimeFormat(new Date(), 'YYYY-MM-DD HH:mm:ss')
},
fullPath() {
const permalinkType = this.options.sheet_permalink_type
const blogUrl = this.options.blog_url
const sheetPrefix = this.options.sheet_prefix
const pathSuffix = this.options.path_suffix ? this.options.path_suffix : ''
return `${blogUrl}/${sheetPrefix}/${this.selectedSheet.slug ? this.selectedSheet.slug : '{slug}'}${pathSuffix}`
switch (permalinkType) {
case 'SECONDARY':
return `${blogUrl}/${sheetPrefix}/${
this.selectedSheet.slug ? this.selectedSheet.slug : '{slug}'
}${pathSuffix}`
case 'ROOT':
return `${blogUrl}/${this.selectedSheet.slug ? this.selectedSheet.slug : '{slug}'}${pathSuffix}`
default:
return ''
}
},
},
methods: {

62
src/views/system/optiontabs/PermalinkTab.vue

@ -18,13 +18,47 @@
</template>
<a-select v-model="options.post_permalink_type">
<a-select-option
v-for="item in Object.keys(permalinkType)"
v-for="item in Object.keys(postPermalinkType)"
:key="item"
:value="item"
>{{ permalinkType[item].text }}</a-select-option>
>{{ postPermalinkType[item].text }}</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item label="自定义页面前缀:">
<a-form-model-item label="归档前缀:">
<template slot="help">
<span>{{ options.blog_url }}/{{ options.archives_prefix }}{{ options.path_suffix }}</span>
</template>
<a-input v-model="options.archives_prefix" />
</a-form-model-item>
<a-form-model-item label="分类前缀:">
<template slot="help">
<span>{{ options.blog_url }}/{{ options.categories_prefix }}/{slug}{{ options.path_suffix }}</span>
</template>
<a-input v-model="options.categories_prefix" />
</a-form-model-item>
<a-form-model-item label="标签前缀:">
<template slot="help">
<span>{{ options.blog_url }}/{{ options.tags_prefix }}/{slug}{{ options.path_suffix }}</span>
</template>
<a-input v-model="options.tags_prefix" />
</a-form-model-item>
<a-form-model-item label="自定义页面固定链接类型:">
<template slot="help">
<span v-if="options.sheet_permalink_type === 'SECONDARY'">{{ options.blog_url }}/{{ options.sheet_prefix }}/{slug}{{ options.path_suffix }}</span>
<span v-else-if="options.sheet_permalink_type === 'ROOT'">{{ options.blog_url }}/{slug}{{ options.path_suffix }}</span>
</template>
<a-select v-model="options.sheet_permalink_type">
<a-select-option
v-for="item in Object.keys(sheetPermalinkType)"
:key="item"
:value="item"
>{{ sheetPermalinkType[item].text }}</a-select-option>
</a-select>
</a-form-model-item>
<a-form-model-item
label="自定义页面前缀:"
v-show="options.sheet_permalink_type === 'SECONDARY'"
>
<template slot="help">
<span>{{ options.blog_url }}/{{ options.sheet_prefix }}/{slug}{{ options.path_suffix }}</span>
</template>
@ -48,24 +82,6 @@
</template>
<a-input v-model="options.journals_prefix" />
</a-form-model-item>
<a-form-model-item label="归档前缀:">
<template slot="help">
<span>{{ options.blog_url }}/{{ options.archives_prefix }}{{ options.path_suffix }}</span>
</template>
<a-input v-model="options.archives_prefix" />
</a-form-model-item>
<a-form-model-item label="分类前缀:">
<template slot="help">
<span>{{ options.blog_url }}/{{ options.categories_prefix }}/{slug}{{ options.path_suffix }}</span>
</template>
<a-input v-model="options.categories_prefix" />
</a-form-model-item>
<a-form-model-item label="标签前缀:">
<template slot="help">
<span>{{ options.blog_url }}/{{ options.tags_prefix }}/{slug}{{ options.path_suffix }}</span>
</template>
<a-input v-model="options.tags_prefix" />
</a-form-model-item>
<a-form-model-item label="路径后缀:">
<template slot="help">
<span>* 格式为<code>.{suffix}</code>仅对内建路径有效</span>
@ -89,6 +105,7 @@
</template>
<script>
import postApi from '@/api/post'
import sheetApi from '@/api/sheet'
export default {
name: 'PermalinkTab',
props: {
@ -107,7 +124,8 @@ export default {
},
data() {
return {
permalinkType: postApi.permalinkType,
postPermalinkType: postApi.permalinkType,
sheetPermalinkType: sheetApi.permalinkType,
wrapperCol: {
xl: { span: 8 },
lg: { span: 8 },

Loading…
Cancel
Save