提交 024d5074 authored 作者: zgy's avatar zgy

完成社区:文章管理功能

上级 033b04b5
......@@ -64,7 +64,9 @@ public class TbCfStationItemController extends ApiBaseAction {
@RequiresPermissions("tbcfstationitem:list")
@ResponseBody
public R list(@RequestParam Map<String, Object> params) {
if (!Constant.SUPER_ADMIN.equals(ShiroUtils.getUserId())) {
if (!Constant.SUPER_ADMIN.equals(ShiroUtils.getUserId()) &&
!Constant.SUPER_ITEM.equals(ShiroUtils.getUserId()) &&
!Constant.SUPER_USER.equals(ShiroUtils.getUserId())) {
params.put("creator", ShiroUtils.getUserId());
}
String userId = ShiroUtils.getUserId();
......
......@@ -105,7 +105,7 @@ public class TbCfUserInfoController {
@ResponseBody
@GetMapping("/queryByAccount")
public R queryByAccount(@RequestParam("account") String account) {
return R.ok();
String userId = tbCfUserInfoService.queryById(account);
return R.ok().put("userId", userId);
}
}
......@@ -58,6 +58,16 @@ public class TbCfArticleEntity implements Serializable {
*/
private Date updatetime;
private String account;
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
/**
* 设置:文章ID
*/
......
......@@ -73,5 +73,5 @@ public interface TbCfUserInfoService {
long queryUserTotal();
boolean queryByAccount(String account);
String queryByAccount(String account);
}
......@@ -68,8 +68,8 @@ public class TbCfUserInfoServiceImpl implements TbCfUserInfoService {
}
@Override
public boolean queryByAccount(String account) {
public String queryByAccount(String account) {
return tbCfUserInfoDao.queryById(account) == null ? true : false;
return tbCfUserInfoDao.queryById(account) ;
}
}
......@@ -46,18 +46,20 @@
`del_flag`,
`top`,
`createTime`,
`updateTime`
from tb_cf_article
`updateTime`,
u.account account
from tb_cf_article a left join tb_cf_user_info u
on a.author=u.user_id
WHERE 1=1
<if test="name != null and name.trim() != ''">
AND name LIKE concat('%',#{name},'%')
AND title LIKE concat('%',#{name},'%')
</if>
<choose>
<when test="sidx != null and sidx.trim() != ''">
order by ${sidx} ${order}
</when>
<otherwise>
order by id desc
order by createTime desc
</otherwise>
</choose>
<if test="offset != null and limit != null">
......@@ -69,7 +71,7 @@
select count(*) from tb_cf_article
WHERE 1=1
<if test="name != null and name.trim() != ''">
AND name LIKE concat('%',#{name},'%')
AND title LIKE concat('%',#{name},'%')
</if>
</select>
......@@ -103,15 +105,15 @@
<update id="update" parameterType="com.platform.entity.TbCfArticleEntity">
update tb_cf_article
<set>
<if test="title != null">`title` = #{title}, </if>
<if test="content != null">`content` = #{content}, </if>
<if test="picture != null">`picture` = #{picture}, </if>
<if test="authorType != null">`author_type` = #{authorType}, </if>
<if test="author != null">`author` = #{author}, </if>
<if test="likeNum != null">`like_num` = #{likeNum}, </if>
<if test="delFlag != null">`del_flag` = #{delFlag}, </if>
<if test="top != null">`top` = #{top}, </if>
<if test="createtime != null">`createTime` = #{createtime}, </if>
<if test="title != null">`title` = #{title},</if>
<if test="content != null">`content` = #{content},</if>
<if test="picture != null">`picture` = #{picture},</if>
<if test="authorType != null">`author_type` = #{authorType},</if>
<if test="author != null">`author` = #{author},</if>
<if test="likeNum != null">`like_num` = #{likeNum},</if>
<if test="delFlag != null">`del_flag` = #{delFlag},</if>
<if test="top != null">`top` = #{top},</if>
<if test="createtime != null">`createTime` = #{createtime},</if>
<if test="updatetime != null">`updateTime` = #{updatetime}</if>
</set>
where id = #{id}
......
......@@ -10,7 +10,7 @@
<Row :gutter="16">
<div class="search-group">
<i-col span="4">
<i-input v-model="q.name" @on-enter="query" placeholder="名称"/>
<i-input v-model="q.name" @on-enter="query" placeholder="文章标题"/>
</i-col>
<i-button @click="query">查询</i-button>
<i-button @click="reloadSearch">重置</i-button>
......@@ -33,12 +33,29 @@
<Card v-show="!showList">
<p slot="title">{{title}}</p>
<i-form ref="formValidate" :model="tbCfArticle" :rules="ruleValidate" :label-width="80">
<Form-item label="文章标题" prop="title">
<Form-item label="文章标题" prop="title" style="width: 800px">
<i-input v-model="tbCfArticle.title" placeholder="文章标题"/>
</Form-item>
<!--<Form-item label="图片" prop="picture">
<i-input v-model="tbCfArticle.picture" placeholder="图片"/>
</Form-item>-->
<!-- <Form-item label="用户类型" prop="authorType" style="width: 800px">-->
<!-- <i-select v-model="tbCfArticle.authorType" style="width:200px" @on-change="changeType" :disabled="disabled">-->
<!-- <i-option v-for="item in typeList" :value="item.value">{{ item.label }}</i-option>-->
<!-- </i-select>-->
<!-- </Form-item>-->
<Form-item label="用户类型" prop="authorType" style="width: 800px">
<i-select placeholder="请选择" v-model="tbCfArticle.authorType" :disabled="disabled"
@on-change="changeType">
<i-option v-for="(el,i) in typeList" :key='i'
:value="el.value">{{el.label}}
</i-option>
</i-select>
</Form-item>
<Form-item label="app账户" prop="author" style="width: 800px" v-show="!account">
<i-input v-model="tbCfArticle.author" placeholder="260977204970 or ctehillah@gmail.com"
@on-blur="queryAccount"/>
</Form-item>
<Form-item label="图片" prop="picture">
<!-- <i-input v-model="xPicture.pictureUrl" placeholder="图片地址"/> -->
<upload
......@@ -67,7 +84,8 @@
<Form-item>
<i-button type="primary" @click="handleSubmit('formValidate')">提交</i-button>
<i-button type="warning" @click="reload" style="margin-left: 8px"/>返回</i-button>
<i-button type="warning" @click="reload" style="margin-left: 8px"/>
返回</i-button>
<i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button>
</Form-item>
</i-form>
......
......@@ -465,13 +465,22 @@ imageFormat = function (cellvalue, options, rowObject) {
if (cellvalue.indexOf(';')) {
let split = cellvalue.split(';');
cellvalue = '<img src="' + split[0] + '" style="width:30px;height:30px;" />';
} else if (cellvalue.indexOf(',')) {
let split = cellvalue.split(',');
cellvalue = '<img src="' + split[0] + '" style="width:30px;height:30px;" />';
} else {
cellvalue = '<img src="' + cellvalue + '" style="width:30px;height:30px;" />';
}
}
return cellvalue;
};
accountFormat = function (cellvalue, options, rowObject) {
if (cellvalue == '' || cellvalue == null) {
cellvalue = '系统用户';
}
return cellvalue;
}
/**
* 跳转翻译
* @param cellvalue
......
......@@ -4,20 +4,32 @@ $(function () {
colModel: [
{label: 'id', name: 'id', index: 'id', key: true, hidden: true},
{label: '文章标题', name: 'title', index: 'title', width: 80},
{label: '图片', name: 'picture', index: 'picture', width: 80},
{label: '作者', name: 'author', index: 'author', width: 80},
{label: '图片', name: 'picture', index: 'picture', width: 80, formatter: imageFormat},
{label: '作者', name: 'account', index: 'account', width: 80, formatter: accountFormat},
{label: '创建时间', name: 'createtime', index: 'createTime', width: 80}
]
});
});
let vm = new Vue({
el: '#rrapp',
data: {
showList: true,
account: true,
uploadList: [],
title: null,
tbCfArticle: {},
typeList: [
{
value: 0,
label: '系统用户'
},
{
value: 1,
label: 'app用户'
}
],
ruleValidate: {
name: [
{required: true, message: '名称不能为空', trigger: 'blur'}
......@@ -25,13 +37,44 @@ let vm = new Vue({
},
q: {
name: ''
}
},
disabled: false,
flag: true
},
methods: {
changeType: function () {
let type = this.tbCfArticle.authorType;
if (type == '0') {
vm.account = true;
} else if (type == '1') {
vm.account = false;
}
},
queryAccount: function () {
let flag = vm.flag;
let url = '../tbcfuserinfo/queryByAccount?account=' + this.tbCfArticle.author;
Ajax.request({
url: url,
type: "GET",
contentType: "application/json",
successCallback: function (r) {
let userId = r.userId;
if (userId == null || userId == '') {
flag = false
}
// alert('操作成功', function (index) {
// vm.reload();
// });
}
});
return flag;
},
query: function () {
vm.reload();
},
add: function () {
vm.disabled = false;
vm.showList = false;
vm.title = "新增";
vm.tbCfArticle = {};
......@@ -39,6 +82,7 @@ let vm = new Vue({
UE.getEditor('content').setContent('');
},
update: function (event) {
vm.disabled = true;
let id = getSelectedRow("#jqGrid");
if (id == null) {
return;
......@@ -49,8 +93,10 @@ let vm = new Vue({
vm.getInfo(id);
},
saveOrUpdate: function (event) {
let flag = this.queryAccount();
if (flag) {
let url = vm.tbCfArticle.id == null ? "../tbcfarticle/save" : "../tbcfarticle/update";
vm.tbCfArticle.picture=this.uploadList.map(res=>res).join(',');
vm.tbCfArticle.picture = this.uploadList.map(res => res).join(',');
vm.tbCfArticle.content = encodeURI(UE.getEditor('content').getContent()); // 富文本取值
vm.tbCfArticle.content = vm.tbCfArticle.content.replace(/&nbsp;/g, " ");
Ajax.request({
......@@ -64,10 +110,14 @@ let vm = new Vue({
});
}
});
} else {
alert('此用户不存在')
}
},
del: function (event) {
let ids = getSelectedRows("#jqGrid");
if (ids == null){
if (ids == null) {
return;
}
......@@ -85,17 +135,18 @@ let vm = new Vue({
});
});
},
getInfo: function(id){
getInfo: function (id) {
Ajax.request({
url: "../tbcfarticle/info/"+id,
url: "../tbcfarticle/info/" + id,
async: true,
successCallback: function (r) {
vm.account = true;
vm.tbCfArticle = r.tbCfArticle;
let content = vm.tbCfArticle.content;
vm.uploadList = vm.tbCfArticle.picture.split(',');
if(content!=null){
if (content != null) {
UE.getEditor('content').setContent(content);
}else {
} else {
UE.getEditor('content').setContent('');
}
}
......@@ -110,7 +161,7 @@ let vm = new Vue({
}).trigger("reloadGrid");
vm.handleReset('formValidate');
},
reloadSearch: function() {
reloadSearch: function () {
vm.q = {
name: ''
};
......@@ -130,7 +181,7 @@ let vm = new Vue({
alert('请上传不超过5M的图片');
return false;
}
console.log(123456,this.uploadList)
console.log(123456, this.uploadList)
const check = this.uploadList.length < 9;
if (!check) {
this.$Notice.warning({
......
......@@ -10,6 +10,15 @@ public class Constant {
*/
public static final String SUPER_ADMIN = "1";
/**
* 管理员
*/
public static final String SUPER_ITEM="2";
/**
* 管理员
*/
public static final String SUPER_USER="3";
/**
* 默认系统domainId 业务系统
*/
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论