Skip to content

Commit

Permalink
cms站点扩展属性
Browse files Browse the repository at this point in the history
  • Loading branch information
417511458 committed Aug 8, 2019
1 parent 3263824 commit fbbeee7
Show file tree
Hide file tree
Showing 13 changed files with 662 additions and 35 deletions.
18 changes: 11 additions & 7 deletions jbone-cms/jbone-cms-admin/src/api/siteSettings.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,7 @@ import siteApi from '@/api/site'
let siteSettingsApi = {};

siteSettingsApi.getAll = function(){
return axios.request({
url: 'cms/siteSettings/getMap',
method: 'get',
params: {
siteId: siteApi.getCurrentSiteID()
}
});
return this.getAllWithSiteId(siteApi.getCurrentSiteID())
}

siteSettingsApi.getAllWithSiteId = function(siteId){
Expand All @@ -23,6 +17,16 @@ siteSettingsApi.getAllWithSiteId = function(siteId){
});
}

siteSettingsApi.commonRequest = function(condition){
condition.siteId = siteApi.getCurrentSiteID()
return axios.request({
url: 'cms/siteSettings/commonRequest',
method: 'post',
data: condition
});
}


siteSettingsApi.getById = function(id){
return axios.request({
url: 'cms/siteSettings/get',
Expand Down
7 changes: 5 additions & 2 deletions jbone-cms/jbone-cms-admin/src/locale/lang/zh-CN.js
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,11 @@ export default {
special_page: '专题管理',
dictionary_list: '字典管理',

base: '基本设置',
site_base_page: '网站基本信息',
base: '系统管理',
site: '站点配置',
site_base_page: '站点基本信息',
site_extend_page: '站点扩展信息',
site_property_page: '编辑站点信息',
link_list: '友情链接',
plugin_list: '插件管理',

Expand Down
70 changes: 50 additions & 20 deletions jbone-cms/jbone-cms-admin/src/router/routers.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,14 +59,23 @@ export default [
icon: 'ios-book'
},
children: [
// {
// path: 'article/edit',
// name: 'article_edit',
// meta: {
// icon: 'ios-add-circle-outline',
// title: '发表文章'
// },
// component: () => import('@/view/article/edit.vue')
// },
{
path: 'article/edit',
name: 'article_edit',
path: 'article/list',
name: 'article_list',
meta: {
icon: 'ios-add-circle-outline',
title: '发表文章'
icon: 'ios-book',
title: '文章管理'
},
component: () => import('@/view/article/edit.vue')
component: () => import('@/view/article/manager.vue')
},
{
path: 'category/list',
Expand All @@ -77,15 +86,6 @@ export default [
},
component: () => import('@/view/category/list.vue')
},
{
path: 'article/list',
name: 'article_list',
meta: {
icon: 'ios-book',
title: '文章管理'
},
component: () => import('@/view/article/manager.vue')
},
{
path: 'tag/list',
name: 'tag_list',
Expand Down Expand Up @@ -136,23 +136,53 @@ export default [
]
},
{
path: '/base',
name: 'base',
path: '/site',
name: 'site',
component: Main,
meta: {
title: '基本设置',
title: '站点配置',
icon: 'ios-book'
},
children: [
{
path: 'site_base_page',
path: 'base',
name: 'site_base_page',
meta: {
icon: 'ios-book',
title: '网站基本信息'
icon: 'ios-book',
title: '站点基本信息'
},
component: () => import('@/view/site-settings/Settings.vue')
},
{
path: 'extend',
name: 'site_extend_page',
meta: {
icon: 'ios-book',
title: '站点扩展信息'
},
component: () => import('@/view/site-settings/extend.vue')
},
{
path: 'edit',
name: 'site_property_page',
meta: {
icon: 'ios-book',
title: '站点属性编辑',
hideInMenu: true,
},
component: () => import('@/view/site-settings/edit.vue')
},
]
},
{
path: '/base',
name: 'base',
component: Main,
meta: {
title: '基本设置',
icon: 'ios-book'
},
children: [
{
path: 'dictionary/list',
name: 'dictionary_list',
Expand Down
179 changes: 179 additions & 0 deletions jbone-cms/jbone-cms-admin/src/view/site-settings/edit.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,179 @@
<template>
<div>
<Card :dis-hover="true">
<p slot="title">
<Icon type="ios-film-outline"></Icon>
编辑站点属性
</p>
<Form :model="settings" :label-width="100" ref="modalForm" :rules="ruleValidate">

<FormItem label="属性名" prop="name" :required="true">
<i-input v-model="settings.name" clearable placeholder="属性名,用于页面取值,如title、keywords等"></i-input>
</FormItem>
<FormItem label="属性类型" prop="dataType" :required="true">
<Select v-model="settings.dataType">
<Option v-for="item in dataTypes" :value="item.dictValue" :key="item.id">{{ item.dictName }}</Option>
</Select>
</FormItem>
<FormItem label="属性值" prop="value" :required="true">
<i-input v-model="settings.value" type="textarea" :rows="4" clearable placeholder="属性值,展示在页面上的内容"></i-input>
</FormItem>
<FormItem label="属性描述" prop="prompt">
<i-input v-model="settings.prompt" clearable placeholder="备注下本属性的作用,不会展示"></i-input>
</FormItem>
<FormItem>
<Button type="primary" size="large" :loading="loading" @click="addOrUpdate">保存</Button>
&nbsp;&nbsp;
<Button type="text" size="large" @click="cancel">取消</Button>
</FormItem>


</Form>

</Card>

</div>
</template>

<script>
import dictionaryApi from '@/api/dictionary'
import siteSettingsApi from '@/api/siteSettings'
import { mapMutations } from 'vuex'
export default {
name: "editSettings",
data(){
return {
settings:{
id: 0,
name: '',
value: '',
prompt: '',
dataType: 'text',
},
dataTypes: [],
loading: false,
ruleValidate: {
name: [
{required: true, message: '属性名不能为空', trigger: 'blur'},
],
dataType: [
{required: true, message: '属性类型不能为空', trigger: 'blur'}
],
value: [
{required: true, message: '属性值不能为空', trigger: 'blur'}
],
},
}
},
created() {
this.init();
},
mounted() {
if(this.$route.query.id > 0){
this.init(this.$route.query.id);
}else{
this.init(0);
}
},
beforeRouteUpdate (to, from, next) {
// 在当前路由改变,但是该组件被复用时调用
// 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候,
// 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。
// 可以访问组件实例 `this`
this.init(to.query.id);
next();
},
methods: {
...mapMutations([
'closeTag'
]),
init(id) {
this.loadDataTypes()
this.loadData(id)
},
loadDataTypes(){
let self = this;
dictionaryApi.getItemsByCode('site_data_type').then(function (res) {
let result = res.data;
if(result.success){
self.dataTypes = result.data == null ? [] : result.data
}else{
self.$Message.error(result.status.message);
}
}).catch(function (error) {
self.$Message.error(error.message);
});
},
loadData(id){
this.settings = {
id: 0,
name: '',
value: '',
prompt: '',
dataType: 'text',
}
if(id > 0) {
let self = this;
siteSettingsApi.getById(id).then(function (res) {
let result = res.data;
if (result.success) {
self.settings.id = result.data.id
self.settings.name = result.data.name
self.settings.value = result.data.value
self.settings.prompt = result.data.prompt
self.settings.dataType = result.data.dataType == null ? 'text' : result.data.dataType
} else {
self.$Message.error(result.status.message);
}
}).catch(function (error) {
self.$Message.error(error.message);
});
}
},
addOrUpdate(){
let self = this;
this.$refs.modalForm.validate((valid) => {
if (valid) {
self.loading = true;
siteSettingsApi.addOrUpdate(this.settings).then(function (res) {
let result = res.data;
if (result.success) {
self.$Message.info("操作成功");
self.cancel();
} else {
self.$Message.error(result.status.message);
}
}).catch(function (error) {
self.$Message.error(error.message);
});
self.loading = false;
} else {
self.loading = false;
}
});
},
cancel(){
this.$router.push({ path: '/site/extend'})
this.closeTag({
name: 'site_property_page'
})
}
}
}
</script>

<style scoped>
</style>
Loading

0 comments on commit fbbeee7

Please sign in to comment.