添加书签功能 弹窗

This commit is contained in:
WangHao
2020-09-01 21:08:19 +08:00
parent 1bf7bf777c
commit 302f0f9886
3 changed files with 131 additions and 14 deletions

View File

@ -1,10 +1,16 @@
package com.ruoyi.web.controller.yunbookmark; package com.ruoyi.web.controller.yunbookmark;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Date;
import java.util.List; import java.util.List;
import com.ruoyi.bookmark.domain.SqBookmark; import com.ruoyi.bookmark.domain.SqBookmark;
import com.ruoyi.bookmark.service.ISqBookmarkService; import com.ruoyi.bookmark.service.ISqBookmarkService;
import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.BookmarkHtml.ImportHtml;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -33,6 +39,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
@RequestMapping("/bookmark/bookmark") @RequestMapping("/bookmark/bookmark")
public class SqBookmarkController extends BaseController public class SqBookmarkController extends BaseController
{ {
public static Logger logger = LoggerFactory.getLogger(SqBookmarkController.class);
@Autowired @Autowired
private ISqBookmarkService sqBookmarkService; private ISqBookmarkService sqBookmarkService;
@ -129,6 +136,14 @@ public class SqBookmarkController extends BaseController
@PostMapping @PostMapping
public AjaxResult add(@RequestBody SqBookmark sqBookmark) public AjaxResult add(@RequestBody SqBookmark sqBookmark)
{ {
SysUser sysUser=getAuthUser();
sqBookmark.setUserid(sysUser.getUserId());
try {
sqBookmark.setUrls(ImportHtml.Urlutils(new URL(sqBookmark.getUrl())));
} catch (MalformedURLException e) {
logger.info(sysUser.getUserId()+"新增书签 获取网址的 主机信息 报错"+new Date());
e.printStackTrace();
}
return toAjax(sqBookmarkService.insertSqBookmark(sqBookmark)); return toAjax(sqBookmarkService.insertSqBookmark(sqBookmark));
} }

View File

@ -73,6 +73,7 @@
<div class="editlist"> <div class="editlist">
<div> <el-button plain size="small" @click="handleUpdate(bm.bookmarkId)">修改</el-button></div> <div> <el-button plain size="small" @click="handleUpdate(bm.bookmarkId)">修改</el-button></div>
<div> <el-button plain size="small" @click="handleDelete(bm.bookmarkId)">删除</el-button></div> <div> <el-button plain size="small" @click="handleDelete(bm.bookmarkId)">删除</el-button></div>
<div> <el-button plain size="small">笔记</el-button></div>
<div> <el-button plain size="small">分享</el-button></div> <div> <el-button plain size="small">分享</el-button></div>
</div> </div>
@ -116,7 +117,7 @@
<el-input v-model="form.url" placeholder="请输入书签地址" /> <el-input v-model="form.url" placeholder="请输入书签地址" />
</el-form-item> </el-form-item>
<el-form-item label="书签描述" prop="description"> <el-form-item label="书签描述" prop="description">
<el-input v-model="form.description" type="textarea" placeholder="请输入书签描述" <el-input v-model="form.description" type="textarea" placeholder="请输入书签描述" run dev
:autosize="{minRows: 3, maxRows:4}" :style="{width: '100%'}"></el-input> :autosize="{minRows: 3, maxRows:4}" :style="{width: '100%'}"></el-input>
</el-form-item> </el-form-item>
@ -130,10 +131,6 @@
<el-form-item label="选择状态" prop="start"> <el-form-item label="选择状态" prop="start">
<el-input v-model="form.start" placeholder="" /> <el-input v-model="form.start" placeholder="" />
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
@ -143,6 +140,10 @@
</div> </div>
</template> </template>
@ -407,7 +408,7 @@
} }
.editBookamrk{ .editBookamrk{
width: 200px; width: 270px;
height: 70px; height: 70px;
position: absolute; position: absolute;
background-color: #acd7ff; background-color: #acd7ff;
@ -415,7 +416,7 @@
} }
.editlist{ .editlist{
display: flex; display: flex;
width: 200px; width: 100%;
height: 70px; height: 70px;
flex-flow: wrap; flex-flow: wrap;
align-items: center; align-items: center;

View File

@ -71,7 +71,7 @@
<i class="el-icon-plus" style="font-size: 18px;"/> <i class="el-icon-plus" style="font-size: 18px;"/>
</span> </span>
<el-dropdown-menu slot="dropdown" class="sq-dropdown"> <el-dropdown-menu slot="dropdown" class="sq-dropdown">
<el-dropdown-item class="filter-item" icon="el-icon-plus" command="a">添加连接</el-dropdown-item> <el-dropdown-item class="filter-item" icon="el-icon-plus" @click.native="addbookmarkurl">添加连接</el-dropdown-item>
<el-dropdown-item class="filter-item" icon="el-icon-plus" command="b">添加文本</el-dropdown-item> <el-dropdown-item class="filter-item" icon="el-icon-plus" command="b">添加文本</el-dropdown-item>
<el-dropdown-item class="filter-item" icon="el-icon-plus" command="d" >导入书签</el-dropdown-item> <el-dropdown-item class="filter-item" icon="el-icon-plus" command="d" >导入书签</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
@ -154,15 +154,46 @@
<!-- &lt;!&ndash; 添加链接&ndash;&gt;--> <!-- 添加链接-->
<!-- <el-dialog title="添加链接" :visible.sync="addurlopen" width="500px" append-to-body class="addbookmarkurl">--> <!-- 添加或修改书签管理对话框 -->
<el-dialog title="添加连接" :visible.sync="addopen" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="书签地址" prop="url">
<el-input v-model="form.url" placeholder="请输入书签地址" />
</el-form-item>
<el-form-item label="书签标题" prop="title">
<el-input v-model="form.title" placeholder="请输入书签标题" />
</el-form-item>
<el-form-item label="书签描述" prop="description">
<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="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-input v-model="bookamkrurl" placeholder="输入链接地址 例https://withpinbox.com" class="addbookmarkurl-input" />-->
<!-- <el-button plain class="addbookmarkurl-button" round @click="submitForm">确定</el-button>-->
<!-- </el-dialog>--> <!-- 0公开显示1隐藏显示2好友显示3稍后再看-->
<el-form-item label="选择状态" prop="start">
<el-input v-model="form.start" placeholder="" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="addbookmark"> </el-button>
<el-button @click="bookmarkcancel"> </el-button>
</div>
</el-dialog>
@ -177,6 +208,7 @@
<script> <script>
// 下面的是单个Vue组件引用的外部静态文件也可以在main.js文件中引用 // 下面的是单个Vue组件引用的外部静态文件也可以在main.js文件中引用
import { addBookmark} from "@/api/bookmark/bookmark";
import { listMenu, getMenu, delMenu, addMenu, updateMenu, exportMenu } from "@/api/bookmark/menu"; import { listMenu, getMenu, delMenu, addMenu, updateMenu, exportMenu } from "@/api/bookmark/menu";
import Treeselect from "@riophae/vue-treeselect"; import Treeselect from "@riophae/vue-treeselect";
@ -203,12 +235,29 @@
parentId: undefined, parentId: undefined,
menuOrder: undefined, menuOrder: undefined,
}, },
bookmarkParams: {
pageNum: 1,
pageSize: 15,
userid: undefined,
title: undefined,
url: undefined,
urls: undefined,
description: undefined,
image: undefined,
label: undefined,
menuId: undefined,
zcount: undefined,
idelete: undefined,
start: undefined,
},
// 书签菜单树选项 // 书签菜单树选项
menuOptions: [], menuOptions: [],
// 弹出层标题 // 弹出层标题
title: "", title: "",
// 是否显示弹出层 编辑添加 // 是否显示弹出层 编辑添加
open: false, open: false,
//添加连接
addopen:false,
//书签URL //书签URL
bookamkrurl:'', bookamkrurl:'',
//添加url //添加url
@ -265,9 +314,62 @@
that.getList(); that.getList();
}, },
methods:{ methods:{
/** 新增书签Url操作 */
addbookmarkurl:function(){
this.reset();
this.addopen = true;
// getMenu(e.getAttribute("data-menuId")).then(response => {
// this.form = response.data;
// this.open = true;
// this.title = "修改书签菜单";
// });
},
/** 提交按钮 修改和新增 */
addbookmark: function() {
this.$refs["form"].validate(valid => {
if (valid) {
addBookmark(this.form).then(response => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.addopen = false;
this.getList();
}
});
}
});
},
// 表单重置
bookmarkreset() {
this.form = {
bookmarkId: undefined,
userid: undefined,
title: undefined,
url: undefined,
urls: undefined,
description: undefined,
image: undefined,
label: undefined,
menuId: undefined,
zcount: undefined,
idelete: undefined,
start: undefined,
createTime: undefined
};
this.resetForm("form");
},
// 取消按钮
bookmarkcancel() {
this.addopen = false;
this.bookmarkreset();
},
@ -303,7 +405,6 @@
getList() { getList() {
listMenuByUserId().then(response => { listMenuByUserId().then(response => {
this.zNodes = response.data; this.zNodes = response.data;
console.log(response.data)
//加载Ztree树 //加载Ztree树
$.fn.zTree.init($("#treeDemo"), this.setting, this.zNodes).expandAll(this.expandAll); $.fn.zTree.init($("#treeDemo"), this.setting, this.zNodes).expandAll(this.expandAll);
}); });