新增书签设置星标功能 ,新增redis工具类规定时间内请求限制次数,新增阿里大鱼手机号发送验证码功能
This commit is contained in:
@ -1,6 +1,17 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
|
||||
|
||||
//书签设置星标 取消星标
|
||||
export function updateBookmarkStarById(query) {
|
||||
return request({
|
||||
url: '/bookmark/bookmark/updateBookmarkStarById',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
export function selectBymenuIdUserID(query) {
|
||||
return request({
|
||||
url: '/bookmark/bookmark/selectBymenuIdUserID',
|
||||
|
@ -30,22 +30,22 @@
|
||||
</div>
|
||||
<div class="bookmark-official">{{bm.urls}} · </div>
|
||||
<div class="bookmark-time">{{bm.createTime|changeTime}}</div>
|
||||
<div class="bookmark-time">{{bm.bookmarkStar}}</div>
|
||||
<div class="bookmark-time" v-for="t in bm.sqTags" v-if="false">
|
||||
<el-tag class="bookmark-list-tag" data-bookmarkId="t.bookmarkId" data-tagId="t.tagId"
|
||||
size="mini">
|
||||
{{t.name}}
|
||||
</el-tag>
|
||||
<!-- <el-tag class="bookmark-list-tag" data-bookmarkId="t.bookmarkId" data-tagId="t.tagId"-->
|
||||
<!-- size="mini">-->
|
||||
<!-- {{t.name}}-->
|
||||
<!-- </el-tag>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--编辑 -->
|
||||
<div class="editAllBookMark" v-show="seen&&bm.bookmarkId==current">
|
||||
<el-button type="info" style="color: #1112ff" plain size="mini" icon="el-icon-star-off" ></el-button>
|
||||
<el-button slot="reference" @click.stop="updateStarById(bm.bookmarkId,bm.bookmarkStar)" type="info" v-bind:class="{ activeClass: bm.bookmarkStar ==1 }" plain size="mini" icon="el-icon-star-off"></el-button>
|
||||
<el-button type="info" plain size="mini" icon="el-icon-share" ></el-button>
|
||||
<el-button type="info" plain size="mini" icon="el-icon-edit" @click.stop="handleUpdate(bm.bookmarkId)"></el-button>
|
||||
<el-button type="danger" plain size="mini" icon="el-icon-delete" @click.stop="handleDelete(bm.bookmarkId)"></el-button>
|
||||
|
||||
<div style="width: 10px"></div>
|
||||
</div>
|
||||
</div>
|
||||
@ -54,9 +54,10 @@
|
||||
</template>
|
||||
<script>
|
||||
import {format} from 'timeago.js';
|
||||
import {updateBookmarkStarById} from '@/api/bookmark/bookmark';
|
||||
|
||||
export default {
|
||||
components: {format},
|
||||
components: {format,updateBookmarkStarById},
|
||||
props: {
|
||||
bookmarkList: Array,
|
||||
property: null,
|
||||
@ -85,6 +86,7 @@
|
||||
// that.Ueditor = that.$route.query.Ueditor;
|
||||
|
||||
},
|
||||
|
||||
filters: {
|
||||
//timeago.js插件
|
||||
//计算时间,类似于几分钟前,几小时前,几天前等
|
||||
@ -107,6 +109,20 @@
|
||||
handleDelete:function(bookmarkId) {
|
||||
this.$emit('on-handleDelete', bookmarkId);
|
||||
},
|
||||
/** 星标 **/
|
||||
updateStarById:function(bookmarkId,bookmarkStar){
|
||||
console.log("bookmarkStar:"+bookmarkStar)
|
||||
var param={
|
||||
bookmarkId:bookmarkId,
|
||||
bookmarkStr:bookmarkStar==0?1:0
|
||||
}
|
||||
console.log("bookmarkStar2:"+param.bookmarkStar)
|
||||
updateBookmarkStarById(param).then(response => {
|
||||
if (response.code === 200) {
|
||||
this.msgSuccess("设置成功");
|
||||
}
|
||||
});
|
||||
},
|
||||
/**渲染模式**/
|
||||
showView(e) {
|
||||
var that=this;
|
||||
@ -199,6 +215,9 @@
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
.activeClass{
|
||||
color: red;
|
||||
}
|
||||
|
||||
.bookmark-item {
|
||||
display: flex;
|
||||
|
@ -2,16 +2,34 @@
|
||||
<div class="app-container ">
|
||||
<el-row :gutter="20" >
|
||||
<el-col :xs="24" :sm="{span: 16, push: 4}" :md="{span: 14, push: 5}" :xl="{span: 10, push: 7}" >
|
||||
<el-card class="box-card">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>系统设置</span>
|
||||
</div>
|
||||
<div>
|
||||
<ul class="list-group list-group-striped">
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<el-card class="box-card">
|
||||
|
||||
<div style="height: 600px">
|
||||
<el-tabs tab-position="left" style="height: 200px;" >
|
||||
<el-tab-pane style="margin-bottom: 110px">
|
||||
<span slot="label"><i class="el-icon-date"></i> 用户管理</span>
|
||||
用户管理
|
||||
</el-tab-pane>
|
||||
<el-tab-pane >
|
||||
<span slot="label"><i class="el-icon-coin"></i> 配置管理</span>
|
||||
配置管理
|
||||
</el-tab-pane>
|
||||
<el-tab-pane >
|
||||
<span slot="label"><i class="el-icon-set-up"></i> 角色管理</span>
|
||||
角色管理
|
||||
</el-tab-pane>
|
||||
<el-tab-pane >
|
||||
<span slot="label"><i class="el-icon-turn-off"></i> 定时任务</span>
|
||||
定时任务
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</div>
|
||||
</el-card>
|
||||
|
||||
|
||||
</el-col>
|
||||
|
||||
</el-row>
|
||||
|
@ -17,8 +17,8 @@
|
||||
</div>
|
||||
|
||||
<div class="sousouright-icon">
|
||||
<el-badge :value="5" :max="99" class="item"><i class="el-icon-message-solid" style="font-size: 17px;"></i>
|
||||
</el-badge>
|
||||
<inform></inform>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="sousouright-iconadd">
|
||||
@ -224,7 +224,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import inform from '../common/inform.vue'
|
||||
import {listMenuByUserId} from "@/api/bookmark/menu";
|
||||
import { getUserProfile } from "@/api/system/user";
|
||||
import Treeselect from "@riophae/vue-treeselect";
|
||||
@ -250,7 +250,7 @@
|
||||
|
||||
export default {
|
||||
components: {
|
||||
format, Treeselect,BookmarkOne,TinyMceEdit
|
||||
format, Treeselect,BookmarkOne,TinyMceEdit,inform
|
||||
},
|
||||
|
||||
data: function () {
|
||||
|
190
ruoyi-ui/src/views/bookmark/common/inform.vue
Normal file
190
ruoyi-ui/src/views/bookmark/common/inform.vue
Normal file
@ -0,0 +1,190 @@
|
||||
<template>
|
||||
<div>
|
||||
|
||||
<el-badge :value="5" :max="99" class="item"><i class="el-icon-bell badgeiocn" @click="dialogVisible = true"></i>
|
||||
</el-badge>
|
||||
|
||||
|
||||
<el-dialog
|
||||
title="通知信息"
|
||||
:visible.sync="dialogVisible"
|
||||
width="35%"
|
||||
:before-close="handleClose">
|
||||
|
||||
<!-- tabs-->
|
||||
<el-tabs :stretch="true" v-model="activeNameTabs" @tab-click="handleClick" accordion class="tabsList">
|
||||
|
||||
<el-tab-pane name="first">
|
||||
<span slot="label"><i class="el-icon-message tabFont"></i> </span>
|
||||
|
||||
|
||||
<!-- collapse 消息列表-->
|
||||
<el-collapse v-model="activeName" accordion @change="handleChange"
|
||||
v-if="informList !==undefined && informList.length > 0">
|
||||
<el-collapse-item name="1111">
|
||||
<template slot="title"> 一致性 Consistency 20201-10-10 20:22:22 ....</template>
|
||||
<div>20201-10-10 20:22:22</div>
|
||||
<div>与现实生活一致:与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念;</div>
|
||||
<div>在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。</div>
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
|
||||
|
||||
<!-- 空 -->
|
||||
<div v-if="informList == undefined || informList.length <= 0">
|
||||
<div class="emptyList">
|
||||
<i class="el-icon-bell"></i>
|
||||
</div>
|
||||
<div class="emptytext">
|
||||
<span>你还没有消息</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</el-tab-pane>
|
||||
<el-tab-pane name="second">
|
||||
<span slot="label"><i class="el-icon-chat-round tabFont"></i> </span>
|
||||
|
||||
<!-- collapse 消息列表-->
|
||||
<el-collapse v-model="activeName" accordion @change="handleChange"
|
||||
v-if="systemInformList !==undefined && systemInformList.length > 0">
|
||||
<el-collapse-item name="1111">
|
||||
<template slot="title"> 一致性 Consistency 20201-10-10 20:22:22 ....</template>
|
||||
<div>20201-10-10 20:22:22</div>
|
||||
<div>与现实生活一致:与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念;</div>
|
||||
<div>在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。</div>
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
|
||||
|
||||
<!-- 空 -->
|
||||
<div v-if="systemInformList == undefined || systemInformList.length <= 0">
|
||||
<div class="emptyList">
|
||||
<i class="el-icon-bell"></i>
|
||||
</div>
|
||||
<div class="emptytext">
|
||||
<span>你还没有消息</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</el-tab-pane>
|
||||
|
||||
<el-tab-pane name="second2">
|
||||
<span slot="label"><i class="el-icon-document tabFont"></i> </span>
|
||||
|
||||
<!-- collapse 消息列表-->
|
||||
<el-collapse v-model="activeName" accordion @change="handleChange"
|
||||
v-if="significanceInformList !==undefined && significanceInformList.length > 0">
|
||||
<el-collapse-item name="1111">
|
||||
<template slot="title"> 一致性 Consistency 20201-10-10 20:22:22 ....</template>
|
||||
<div>20201-10-10 20:22:22</div>
|
||||
<div>与现实生活一致:与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念;</div>
|
||||
<div>在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。</div>
|
||||
</el-collapse-item>
|
||||
</el-collapse>
|
||||
|
||||
|
||||
<!-- 空 -->
|
||||
<div v-if="significanceInformList == undefined || significanceInformList.length <= 0">
|
||||
<div class="emptyList">
|
||||
<i class="el-icon-bell"></i>
|
||||
</div>
|
||||
<div class="emptytext">
|
||||
<span>你还没有消息</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||
<el-button type="primary" @click="dialogVisible = false">确 定</el-button>
|
||||
</span>
|
||||
|
||||
|
||||
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: 'areaTree',
|
||||
components: {},
|
||||
props: {},
|
||||
data: function () {
|
||||
return {
|
||||
activeName: '1',
|
||||
dialogVisible: false,
|
||||
activeNameTabs: 'first',
|
||||
userInformList: [],
|
||||
systemInformList: [],
|
||||
significanceInformList: [],
|
||||
informList:[]
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
handleClose(done) {
|
||||
this.$confirm('确认关闭?')
|
||||
.then(_ => {
|
||||
done();
|
||||
})
|
||||
.catch(_ => {
|
||||
});
|
||||
},
|
||||
handleClick(tab, event) {
|
||||
console.log(tab, event);
|
||||
},
|
||||
handleChange(val) {
|
||||
console.log(val);
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
|
||||
.emptyList {
|
||||
width: 100%;
|
||||
height: 180px;
|
||||
display: flex;
|
||||
justify-items: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.emptyList i {
|
||||
font-size: 120px;
|
||||
margin: 0 auto;
|
||||
color: #D4D4D4;
|
||||
}
|
||||
|
||||
.emptytext {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-items: center;
|
||||
align-items: center;
|
||||
font-size: 17px;
|
||||
color: #D4D4D4;
|
||||
}
|
||||
|
||||
.emptytext span {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.badgeiocn {
|
||||
font-size: 17px;
|
||||
}
|
||||
|
||||
.tabsList {
|
||||
margin-top: -30px;
|
||||
min-height: 100px
|
||||
}
|
||||
|
||||
.tabFont {
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
|
||||
</style>
|
@ -80,18 +80,21 @@
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
||||
export default {
|
||||
name: 'areaTree',
|
||||
components: {},
|
||||
components: {
|
||||
},
|
||||
|
||||
data: function () {
|
||||
return {}
|
||||
return {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
},
|
||||
mounted() {
|
||||
document.querySelector('body').setAttribute('style', 'background-color:#f6f5f4')
|
||||
document.querySelector('body').setAttribute('style', 'background-color:#f4f5f9')
|
||||
},
|
||||
beforeDestroy() {
|
||||
document.querySelector('body').removeAttribute('style')
|
||||
|
@ -21,9 +21,10 @@
|
||||
<div class="main-right">
|
||||
<!-- <svg-icon icon-class="tool" class="svgicon"/>-->
|
||||
<!-- <div class="aside-title"><i class="el-icon-s-management"></i><span>发现</span></div>-->
|
||||
<div class="aside-title" @click="goRouter(8)"><i class="el-icon-s-tools"></i><span>最新</span></div>
|
||||
<div class="aside-title"><i class="el-icon-star-on"></i><span>星标</span></div>
|
||||
<div class="aside-title"><i class="el-icon-help"></i><span>稍后看</span></div>
|
||||
<div class="aside-title" @click="goRouter(8)"><i class="el-icon-folder"></i><span>最新</span></div>
|
||||
<div class="aside-title"><i class="el-icon-star-off"></i><span>星标</span></div>
|
||||
<div class="aside-title"><i class="el-icon-reading"></i><span>稍后看</span></div>
|
||||
<div class="aside-title"><i class="el-icon-view"></i><span>发现</span></div>
|
||||
<!-- <div class="aside-title"><i class="el-icon-s-platform"></i><span>任意门</span></div>-->
|
||||
<!-- <div class="aside-title"><i class="el-icon-message-solid"></i><span>收件箱</span></div>-->
|
||||
<div class="reminder">我的收藏 <svg-icon icon-class="sx" style="margin-left:5px" @click="refreshNode"/></div>
|
||||
@ -32,13 +33,13 @@
|
||||
</div>
|
||||
<div class="reminder" >工具箱</div>
|
||||
<!-- <div class="aside-title"><i class="el-icon-s-flag" style="color: #569cd5"></i><span>RSS订阅</span></div>-->
|
||||
<div class="aside-title" @click="goRouter(7)"><i class="el-icon-s-management"></i><span>标签管理</span></div>
|
||||
<div class="aside-title" @click="goRouter(6)"><i class="el-icon-delete-solid" style="color: red"></i><span>垃圾桶</span></div>
|
||||
<div class="aside-title" @click="goRouter(7)"><i class="el-icon-collection"></i><span>标签管理</span></div>
|
||||
<div class="aside-title" @click="goRouter(6)"><i class="el-icon-delete" ></i><span>垃圾桶</span></div>
|
||||
<!-- <div class="aside-title" @click="goRouter(5)"><i class="el-icon-s-platform"></i><span>导入书签</span></div>-->
|
||||
<div class="aside-title"><i class="el-icon-s-comment"></i><span>意见反馈</span></div>
|
||||
<div class="aside-title"><i class="el-icon-chat-dot-square"></i><span>意见反馈</span></div>
|
||||
<!-- <div class="aside-title" @click="ceshi"><i class="el-icon-s-comment"></i><span>测试页面</span></div>-->
|
||||
<div class="aside-title" @click="goRouter(2)"><i class="el-icon-s-platform"></i><span>小工具</span></div>
|
||||
<div class="aside-title " style="margin-bottom: 100px" @click="goRouter(9)"><i class="el-icon-s-grid"></i><span>更多设置</span></div>
|
||||
<div class="aside-title" @click="goRouter(2)"><i class="el-icon-suitcase"></i><span>小工具</span></div>
|
||||
<div class="aside-title " style="margin-bottom: 100px" @click="goRouter(9)"><i class="el-icon-setting"></i><span>更多设置</span></div>
|
||||
|
||||
</div>
|
||||
|
||||
@ -74,7 +75,7 @@
|
||||
</el-container>
|
||||
<!-- 编辑弹窗-->
|
||||
<el-dialog :title="title" :visible.sync="open" width="500px" class="menuedit" append-to-body>
|
||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form ref="form" :model="form" :rules="rules" >
|
||||
<el-form-item prop="menuName">
|
||||
<div class="labelname">菜单名称</div>
|
||||
<el-input class="custom-input" v-model="form.menuName" placeholder="请输入菜单名称"/>
|
||||
|
Reference in New Issue
Block a user