添加书签 处理标签

This commit is contained in:
WangHao 2020-09-06 19:43:29 +08:00
parent 29e4c15276
commit d3b5496aba
3 changed files with 210 additions and 33 deletions

View File

@ -120,6 +120,9 @@
<el-input v-model="form.description" type="textarea" placeholder="请输入书签描述" run dev
:autosize="{minRows: 3, maxRows:4}" :style="{width: '100%'}"></el-input>
</el-form-item>
<el-form-item label="所属目录" prop="menuId">
<el-input v-model="form.menuId" placeholder="请选择上级目录" />
</el-form-item>
<el-form-item label="书签标签:" prop="label">
@ -132,8 +135,6 @@
:disable-transitions="false"
@close="taghandleClose(tag.tagId)"
v-if="tag.name!='TAGDELETE'"
>
{{tag.name}}
</el-tag>
@ -147,17 +148,32 @@
@blur="handleInputConfirm"
>
</el-input>
<el-button v-else class="button-new-tag" size="small" @click="showInput">+ New Tag</el-button>
<el-button v-else class="button-new-tag" size="small" @click="showInput">+ 新增标签</el-button>
</el-form-item>
<el-form-item label="所属目录" prop="menuId">
<el-input v-model="form.menuId" placeholder="请选择上级目录" />
</el-form-item>
<!-- 0公开显示1隐藏显示2好友显示3稍后再看-->
<!-- 0公开显示 1隐藏显示 2好友显示-->
<el-form-item label="选择状态" prop="start">
<el-input v-model="form.start" placeholder="" />
<el-radio-group v-model="form.start" size="medium">
<el-radio v-for="(item, index) in bookmarkstatus" :key="index" :label="item.value"
:disabled="item.disabled">{{item.name}}</el-radio>
</el-radio-group>
</el-form-item>
<!-- 1.未读稍后再看 2 已读 2.續看-->
<el-form-item label="选择类型" prop="type">
<el-radio-group v-model="form.type" size="medium">
<el-radio v-for="(item, index) in bookmarktype" :key="index" :label="item.value"
:disabled="item.disabled">{{item.name}}</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
@ -212,9 +228,9 @@
start: undefined,
sqTags:[]
},
dynamicTags: ['标签一', '标签二', '标签三'],
inputVisible: false, //
inputValue: '', //
tagcount:0, //ID
bookmarkList:[],
urltext:'?from=yunshuqian.com',//广
//
@ -222,7 +238,24 @@
//
rules: {
},
tagcount:0,
bookmarkstatus: [{
"name": "公开",
"value": 1
}, {
"name": "私密",
"value": 2
}],
bookmarktype: [{
"name": "已阅读",
"value": 1
}, {
"name": "稍后读",
"value": 2
}, {
"name": "待续读",
"value": 3
}],
}
},
filters: {

View File

@ -169,25 +169,61 @@
:autosize="{minRows: 3, maxRows:4}" :style="{width: '100%'}"></el-input>
</el-form-item>
<el-form-item label="书签标签" prop="label">
<el-input v-model="form.label" placeholder="请输入标签" />
</el-form-item>
<!-- <el-form-item label="所属目录" prop="menuId">-->
<!-- <el-input v-model="form.menuId" placeholder="请选择上级目录" />-->
<!-- </el-form-item>-->
<el-form-item prop="menuId">
<div class="labelname">所属目录</div>
<treeselect class="menutreeselect" v-model="form.menuId" :options="menuOptions" :normalizer="normalizer" />
</el-form-item>
<el-form-item label="书签标签" prop="label">
<el-tag
class="bookmarktag"
v-for="tag in sqTags"
:key="tag.tagId"
closable
type="success"
:disable-transitions="false"
@close="taghandleClose(tag.tagId)"
v-if="tag.name!='TAGDELETE'"
>
{{tag.name}}
</el-tag>
<el-input
class="input-new-tag"
v-if="inputVisible"
v-model="inputValue"
ref="saveTagInput"
size="small"
@keyup.enter.native="handleInputConfirm"
@blur="handleInputConfirm"
>
</el-input>
<el-button v-else class="button-new-tag" size="small" @click="showInput">+ 新增标签</el-button>
<!-- 0公开显示1隐藏显示2好友显示3稍后再看-->
<el-form-item label="选择状态" prop="start">
<el-input v-model="form.start" placeholder="" />
</el-form-item>
<!-- <el-form-item label="所属目录" prop="menuId">-->
<!-- <el-input v-model="form.menuId" placeholder="请选择上级目录" />-->
<!-- </el-form-item>-->
<!-- 0公开显示 1隐藏显示 2好友显示-->
<el-form-item label="选择状态" prop="start">
<el-radio-group v-model="form.start" size="medium">
<el-radio v-for="(item, index) in bookmarkstatus" :key="index" :label="item.value"
:disabled="item.disabled">{{item.name}}</el-radio>
</el-radio-group>
</el-form-item>
<!-- 1.未读稍后再看 2 已读 2.續看-->
<el-form-item label="选择类型" prop="type">
<el-radio-group v-model="form.type" size="medium">
<el-radio v-for="(item, index) in bookmarktype" :key="index" :label="item.value"
:disabled="item.disabled">{{item.name}}</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="addbookmark"> </el-button>
@ -249,6 +285,7 @@
zcount: undefined,
idelete: undefined,
start: undefined,
sqTags:[]
},
//
menuOptions: [],
@ -305,7 +342,29 @@
}
},
zNodes:[],
bookmark:[]
bookmark:[],
inputVisible: false, //
inputValue: '', //
tagcount:0, //ID
sqTags:[],
bookmarkstatus: [{
"name": "公开",
"value": 1
}, {
"name": "私密",
"value": 2
}],
bookmarktype: [{
"name": "已阅读",
"value": 1
}, {
"name": "稍后读",
"value": 2
}, {
"name": "待续读",
"value": 3
}],
}
},
created() {
@ -314,6 +373,53 @@
that.getList();
},
methods:{
/**书签编辑设置的 标签开始**/
taghandleClose(tag) {
//1.
var tina = this.sqTags.filter((p) => {
return p.tagId == tag;
});
//2.
var index = this.sqTags.indexOf(tina[0]);
//3. index > -1
index > -1 && this.sqTags.splice(index, 1);
console.log(this.sqTags);
},
showInput() {
this.inputVisible = true;
this.$nextTick(_ => {
this.$refs.saveTagInput.$refs.input.focus();
});
},
handleInputConfirm() {
let inputValue = this.inputValue;
if (inputValue) {
this.tagcount=this.tagcount-1;
var updatetag ={name: inputValue, bookmarkId:"bookmarkId",tagId:this.tagcount};
this.sqTags.push(updatetag);
}
this.inputVisible = false;
this.inputValue = '';
console.log(this.sqTags);
},
/**书签编辑设置的 标签结束**/
/** 新增书签Url操作 */
addbookmarkurl:function(){
this.reset();
@ -324,16 +430,13 @@
// this.open = true;
// this.title = "";
// });
},
/** 提交按钮 修改和新增 */
addbookmark: function() {
this.$refs["form"].validate(valid => {
if (valid) {
this.form.sqTags=this.sqTags;
addBookmark(this.form).then(response => {
if (response.code === 200) {
this.msgSuccess("新增成功");
@ -462,6 +565,7 @@
// },
//
reset() {
this.sqTags=[],
this.form = {
menuId: undefined,
userId: undefined,

View File

@ -104,15 +104,52 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
public int insertSqBookmark(SqBookmark sqBookmark)
{
int i= sqBookmarkMapper.insertUseGeneratedKeys(sqBookmark);
sqBookmark.setCreateTime(DateUtils.getNowDate());
//传入的标签
List<Map<String, Object>> listmap = sqBookmark.getSqTags();
if (listmap==null||listmap.isEmpty()||listmap.size()==0){
return sqBookmarkMapper.insertSqBookmark(sqBookmark);
}
String addtag="";
//给文章添加标签
HashMap<Long,Long> bookmarkTag=new HashMap<Long,Long>();
//文章添加书签
SqBookmarkTag bookamrktag = new SqBookmarkTag();
for (Map<String, Object> map : listmap) {
for (Map.Entry<String, Object> entry : map.entrySet()) {
//新增书签
if (Integer.parseInt(String.valueOf(map.get("tagId"))) < 0) {
Map<String, Object> tagmap = iSqTagService.addtag(String.valueOf(map.get("name")), sqBookmark.getUserid());
for (Map.Entry<String, Object> tag : tagmap.entrySet()) {
addtag += tagmap.get("tagId").toString();
map.put("tagId", tagmap.get("tagId"));
}
}
bookmarkTag.put(Long.valueOf(map.get("tagId").toString()),sqBookmark.getBookmarkId());
}
}
//给文章添加书签
for (Map.Entry<Long,Long> tag:bookmarkTag.entrySet()){
bookamrktag.setBookmarkId(tag.getValue());
bookamrktag.setTagId(tag.getKey());
sqBookmarkTagMapper.insertSqBookmarkTag(bookamrktag);
}
//个人标签引用数量 批量+1
if (!addtag.equals("") && addtag.length()>0) {
addtag=addtag.substring(0,addtag.length()-1);
String[] add = addtag.split(",");
Long[] num = (Long[]) ConvertUtils.convert(add,Long.class);
sqUserTagMapper.updateCountReduce(num, sqBookmark.getUserid());
}
return i;
}
/**
* 修改书签管理
@ -128,6 +165,9 @@ public class SqBookmarkServiceImpl implements ISqBookmarkService
String addtag = "";
//传入的标签
List<Map<String, Object>> listmap = sqBookmark.getSqTags();
if (listmap==null||listmap.isEmpty()||listmap.size()==0){
return sqBookmarkMapper.updateSqBookmark(sqBookmark);
}
//给文章添加标签
HashMap<Long,Long> bookmarkTag=new HashMap<Long,Long>();
//文章添加书签