文章分类

This commit is contained in:
tianbj 2019-12-17 16:54:57 +08:00
parent 7f159a07d8
commit 3932bb6bbd
6 changed files with 83 additions and 15 deletions

View File

@ -204,11 +204,9 @@ public class CategoryAction extends BaseAction{
@LogAnn(title = "删除分类", businessType = BusinessTypeEnum.DELETE)
@RequiresPermissions("cms:category:del")
public ResultData delete(@RequestBody List<CategoryEntity> categorys,HttpServletResponse response, HttpServletRequest request) {
int[] ids = new int[categorys.size()];
for(int i = 0;i<categorys.size();i++){
ids[i] =Integer.parseInt(categorys.get(i).getId()) ;
categoryBiz.delete(Integer.parseInt(categorys.get(i).getId()));
}
categoryBiz.delete(ids);
return ResultData.build().success();
}
/**
@ -265,6 +263,16 @@ public class CategoryAction extends BaseAction{
if(!StringUtil.checkLength(category.getCategoryParentId()+"", 0, 100)){
return ResultData.build().error(getResString("err.length", this.getResString("category.parent.id"), "1", "100"));
}
//判断是否选择子级为所属栏目
CategoryEntity _category = new CategoryEntity();
_category.setCategoryParentId(category.getId());
_category.setAppId(BasicUtil.getAppId());
List<CategoryEntity> categoryList = categoryBiz.queryChilds(_category);
for(CategoryEntity item:categoryList){
if(item.getId().equals(category.getCategoryId())){
return ResultData.build().error(getResString("cannot.select.child"));
}
}
category.setAppId(BasicUtil.getAppId());
categoryBiz.updateEntity(category);
return ResultData.build().success(category);

View File

@ -24,4 +24,6 @@ public interface ICategoryBiz extends IBaseBiz {
void saveEntity(CategoryEntity entity);
void updateEntity(CategoryEntity entity);
void delete(int categoryId);
}

View File

@ -128,4 +128,22 @@ public class CategoryBizImpl extends BaseBizImpl implements ICategoryBiz {
super.updateEntity(entity);
setChildParentId(entity);
}
@Override
public void delete(int categoryId) {
// TODO Auto-generated method stub
CategoryEntity category = (CategoryEntity) categoryDao.getEntity(categoryId);
//删除父类
if(category != null){
category.setCategoryParentId(null);
List<CategoryEntity> childrenList = categoryDao.queryChildren(category);
int[] ids = new int[childrenList.size()];
for(int i = 0; i < childrenList.size(); i++){
//删除子类
ids[i] = Integer.parseInt(childrenList.get(i).getId());
}
categoryDao.delete(ids);
deleteEntity(categoryId);
}
}
}

View File

@ -38,7 +38,13 @@
gutter="0"
justify="start" align="top">
<el-col span="12">
<el-form-item label="栏目管理属性" prop="categoryType">
<el-form-item prop="categoryType">
<template slot='label'>栏目类型
<el-popover slot="label" placement="top-start" title="提示" trigger="hover" >
列表:常用于带列表、详情的业务,例如:新闻列表、图片列表<br>封面:常用单篇文章显示,例如:关于我们、公司介绍
<i class="el-icon-question" slot="reference"></i>
</el-popover>
</template>
<el-radio-group v-model="form.categoryType"
:style="{width: ''}"
:disabled="false">
@ -63,7 +69,7 @@
gutter="0"
justify="start" align="top">
<el-col span="12">
<el-form-item :label="form.categoryType =='1'? '内容模板' : '封面模板'" prop="categoryUrl">
<el-form-item prop="categoryUrl" :label="form.categoryType =='1'? '内容模板' : '封面模板'">
<el-select v-model="form.categoryUrl"
:style="{width: '100%'}"
:filterable="false"
@ -76,7 +82,12 @@
</el-form-item>
</el-col>
<el-col span="12">
<el-form-item label="列表模板" prop="categoryListUrl" v-if="form.categoryType == '1'">
<el-form-item prop="categoryListUrl" v-if="form.categoryType == '1'">
<template slot='label'>列表模板
<el-popover slot="label" placement="top-start" title="提示" trigger="hover" content="当栏目类型为列表时有效">
<i class="el-icon-question" slot="reference"></i>
</el-popover>
</template>
<el-select v-model="form.categoryListUrl"
:style="{width: '100%'}"
:filterable="false"
@ -93,7 +104,12 @@
gutter="0"
justify="start" align="top">
<el-col span="12">
<el-form-item label="自定义模型" prop="mdiyModelId">
<el-form-item prop="mdiyModelId">
<template slot='label'>自定义模型
<el-popover slot="label" placement="top-start" title="提示" width="400" trigger="hover" content="如果发布时候文章字段信息不够,可以采用铭飞代码生成器生成自定义模型,再通过“自定义管理->自定义模型->导入”功能导入模型注意类型是cms">
<i class="el-icon-question" slot="reference"></i>
</el-popover>
</template>
<el-select v-model="form.mdiyModelId"
:style="{width: '100%'}"
:filterable="false"
@ -169,7 +185,11 @@
el: '#form',
data() {
return {
treeList:[],
treeList:[{
id:'0',
categoryTitle:'顶级栏目',
children:[],
}],
saveDisabled: false,
//表单数据
form: {
@ -217,7 +237,7 @@
ms.http.get(ms.manager+"/cms/category/list.do",{pageSize:9999}).then(function(res){
if(res.result){
//res.data.rows.push({id:0,categoryId: null,categoryTitle:'顶级栏目管理'});
that.treeList = ms.util.treeData(res.data.rows,'id','categoryId','children');
that.treeList[0].children = ms.util.treeData(res.data.rows,'id','categoryId','children');
}
}).catch(function(err){
console.log(err);
@ -246,6 +266,9 @@
that.saveDisabled = false;
return
}
if(data.categoryId == '0'){
data.categoryId = '';
}
data.categoryImg = JSON.stringify(data.categoryImg);
ms.http.post(url, data).then(function (data) {
if (data.result) {
@ -291,6 +314,9 @@
})
}else{
res.data.categoryImg=[]
}
if(!res.data.categoryId){
res.data.categoryId = '0';
}
that.form = res.data;
}

View File

@ -17,7 +17,7 @@
</el-col>
</el-header>
<el-main class="ms-container">
<el-table ref="multipleTable" :indent="10"
<el-table ref="multipleTable" :indent="6"
height="calc(100vh - 20px)"
border :data="dataList"
row-key="id"

View File

@ -9,8 +9,7 @@
<el-header class="ms-header ms-tr" height="50px">
<el-button type="primary" icon="iconfont icon-baocun" size="mini" @click="save()" :loading="saveDisabled">保存
</el-button>
<el-button size="mini" icon="iconfont icon-fanhui" plain onclick="javascript:history.go(-1)"
v-if="returnIsShow">返回
<el-button size="mini" icon="iconfont icon-fanhui" plain onclick="javascript:history.go(-1)">返回
</el-button>
</el-header>
<el-main class="ms-container">
@ -24,7 +23,7 @@
<el-row
gutter="0"
justify="start" align="top">
<el-col span="12">
<el-col :span="returnIsShow?'12':'24'">
<el-form-item label="文章标题" prop="contentTitle">
<el-input v-model="form.contentTitle"
:disabled="false"
@ -34,7 +33,7 @@
</el-input>
</el-form-item>
</el-col>
<el-col span="12">
<el-col span="12" v-if="returnIsShow">
<el-form-item label="所属栏目" prop="contentCategoryId">
<tree-select :props="{value: 'id',label: 'categoryTitle',children: 'children'}"
:options="contentCategoryIdOptions" :style="{width:'100%'}"
@ -275,6 +274,15 @@
this.$refs.form[0].validate((valid) => {
if (valid) {
that.saveDisabled = true;
if(that.categoryIdOptions.filter(f => f['id'] == that.form.contentCategoryId)[0].categoryType == '2'){
that.$notify({
title: '提示',
message: '所属栏目不能为封面',
type: 'error'
});
that.saveDisabled = false;
return
}
var data = JSON.parse(JSON.stringify(that.form));
if(data.contentType !=null){
data.contentType = data.contentType.join(',');
@ -389,6 +397,12 @@
res.data.contentImg = []
}
that.form = res.data;
var category = that.categoryIdOptions.filter(f => f['id'] == that.form.contentCategoryId);
if(category.length == 1){
if(category[0].categoryType == '2'){
that.returnIsShow = false;
}
}
that.changeModel();
}
}).catch(function (err) {
@ -401,7 +415,7 @@
ms.http.get(ms.manager + "/cms/category/list.do", {pageSize: 9999}).then(function (res) {
if (res.result) {
that.contentCategoryIdOptions = ms.util.treeData(res.data.rows, 'id', 'categoryId', 'children');
that.categoryIdOptions = res.data.rows
that.categoryIdOptions = res.data.rows;
that.changeModel();
}
}).catch(function (err) {