2020-10-04 03:09:05 +08:00

1993 lines
60 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="box" ref="box">
<el-container class="box" ref="box">
<transition name="el-zoom-in-left" >
<el-aside :style="asideHeight" v-show="isShowZtree" class="transition-box left isaside"
style="overflow-x:hidden;overflow-y: hidden;">
<el-header class="aside-logo">
<!-- <img src="https://s1.ax1x.com/2020/08/15/dACqUO.png"/>-->
<div class="logoname">
<span>藏趣云书签</span>
</div>
<div class="logoright">
<i class="el-icon-plus"/>
</div>
</el-header>
<div class="main-right">
<div class="aside-title" @click="goBookmarkList"><i class="el-icon-s-tools"></i><span>全部书签</span></div>
<div class="aside-title"><i class="el-icon-help"></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">我的收藏</div>
<div class="areaTree">
<ul id="treeDemo" class="ztree"></ul>
</div>
<div class="reminder">工具箱</div>
<div class="aside-title"><i class="el-icon-s-flag" style="color: red"></i><span>RSS订阅</span></div>
<div class="aside-title" @click="goUserTagAll"><i class="el-icon-s-management"></i><span>标签管理</span></div>
<div class="aside-title" @click="gorecycle"><i class="el-icon-delete-solid"></i><span>回收站</span></div>
<div class="aside-title" @click="importHtml"><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" @click="ceshi"><i class="el-icon-s-comment"></i><span>测试页面</span></div>
<div class="aside-title " style="margin-bottom: 100px"><i class="el-icon-s-grid"></i><span>其他设置</span></div>
</div>
<div class="tabBar">
<div class=""
style="width: 100%;height: 30px;background-color: #cacaca;float: left;text-align: center;line-height: 30px">
<i class="el-icon-folder-checked"></i>
<span>新的收藏集</span>
</div>
<div style="float: left;width: 100%;height: 50px;background-color: black">
<img src="https://s1.ax1x.com/2020/09/13/w0jfy9.png" style="width: 100%;height: 100%">
</div>
</div>
</el-aside>
<!-- <el-footer class="aside-navigation">-->
<!-- </el-footer>-->
</transition>
<div class="isresize">
<i class="el-icon-caret-top"></i>
</div>
<!-- <el-drawer-->
<!-- title="我是标题"-->
<!-- :visible.sync="drawer"-->
<!-- :direction="direction"-->
<!-- :modal-append-to-body="drawerS"-->
<!-- :append-to-body="isShowZtree"-->
<!-- >-->
<!-- <span>我来啦!</span>-->
<!-- </el-drawer>-->
<!-- <el-button @click="isShowZtree = !isShowZtree">Click Me</el-button>-->
<el-container class="mid">
<el-header class="header-sousou" style="height: 50px">
<div class="sousou-left">
<div class="sousouleft-switch" @click="drawer = true"><i class="el-icon-s-unfold"/></div>
<div class="sousou-leftico" @click="drawer = true"><img
src="https://favicon.lucq.fun/?url=https://www.baidu.com"/></div>
</div>
<div class="sousou-input">
<!-- <el-popover-->
<!-- placement="bottom"-->
<!-- width="400"-->
<!-- trigger="click"-->
<!-- :visible-arrow="false"-->
<!-- popper-class="popover-suosou"-->
<!-- >-->
<!-- <div v-for="o in 4" :key="o">-->
<!-- {{'列表内容 ' + o }}-->
<!-- </div>-->
<el-input slot="reference" placeholder="请输入书签名字" v-model="sousou" size="small">
<i slot="prefix" class="el-input__icon el-icon-search"></i>
<!-- <el-button slot="append" icon="el-icon-search"></el-button>-->
</el-input>
<!-- </el-popover>-->
</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>
</div>
<div class="sousouright-iconadd">
<el-dropdown trigger="click" size="small" :hide-on-click="false">
<span class="el-dropdown-link">
<i class="el-icon-plus" style="font-size: 18px;"/>
</span>
<el-dropdown-menu slot="dropdown" class="sq-dropdown">
<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="d">导入书签</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
<div class="header-list">
<el-dropdown trigger="click" size="small" :hide-on-click="false">
<span class="el-dropdown-link">
<el-avatar :size="28"
src="https://up.raindrop.io/collection/templates/social-media-logos-6/97social.png"></el-avatar>
</span>
<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" 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="e">退出登录</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</el-header>
<el-main class="bookmarkmain">
<router-view :key="$route.query.menuId"></router-view>
</el-main>
</el-container>
</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-item prop="menuName">
<div class="labelname">菜单名称</div>
<el-input class="custom-input" v-model="form.menuName" placeholder="请输入菜单名称"/>
</el-form-item>
<el-form-item prop="menuIcon">
<div class="labelname">菜单图标</div>
<el-input class="custom-input" v-model="form.menuIcon" placeholder="请输入菜单图标"/>
</el-form-item>
<el-form-item prop="parentId">
<div class="labelname">上级菜单</div>
<treeselect class="menutreeselect" v-model="form.parentId" :options="menuOptions" :normalizer="normalizer"/>
</el-form-item>
<!-- <el-form-item prop="menuOrder">-->
<!-- <div class="labelname">排序</div>-->
<!-- <el-input class="custom-input" v-model="form.menuOrder" placeholder="请输入菜单排序" />-->
<!-- </el-form-item>-->
<el-form-item prop="menuOrder">
<div class="labelname">排序(小到大)</div>
<br/>
<el-input-number v-model="form.menuOrder" placeholder="计数器"></el-input-number>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="danger" round @click="deleteMmenu(form.menuId)">删除</el-button>
<el-button type="primary" round @click="submitForm">确定</el-button>
<el-button round @click="cancel">取消</el-button>
</div>
</el-dialog>
<!-- 添加链接-->
<!-- 添加或修改书签管理对话框 -->
<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="请输入书签描述"
:autosize="{minRows: 3, maxRows:4}" :style="{width: '100%'}"></el-input>
</el-form-item>
<el-form-item prop="parentId">
<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>
</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>
<el-button @click="bookmarkcancel"> </el-button>
</div>
</el-dialog>
<!--背景特效-->
<canvas id="evanyou"></canvas>
</div>
</template>
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<style scoped src="../ztree/demo.css"/>
<script >
// 下面的是单个Vue组件引用的外部静态文件也可以在main.js文件中引用
import {addBookmark} from "@/api/bookmark/bookmark";
import {listMenu, getMenu, delMenu, addMenu, updateMenu, exportMenu} from "@/api/bookmark/menu";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
// import "../ztree/jquery-1.4.4.min.js"
import "../ztree/jquery.ztree.core.js"
// import "../ztree/demo.css"
import "../ztree/zTreeStyle.css"
import "../ztree/jquery.ztree.exedit.js"
import {listMenuByUserId} from "@/api/bookmark/menu";
export default {
name: 'areaTree',
components: {
Treeselect
},
data: function () {
return {
queryParams: {
userId: undefined,
menuName: undefined,
menuUrl: undefined,
menuIcon: undefined,
parentId: 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,
sqTags: []
},
// 书签菜单树选项
menuOptions: [],
// 弹出层标题
title: "",
// 是否显示弹出层 编辑添加
open: false,
//添加连接
addopen: false,
//书签URL
bookamkrurl: '',
//添加url
addurlopen: true,
// 表单参数
form: {},
// 表单校验
rules: {},
drawerS: false,
drawer: false,
direction: 'ltr',
swictxuanran: true,
sousou: '',//搜索书签
enterable: false,
isShowZtree: true,//ztree树显示
expandAll: false,//是否展开ztree树
curMenu: null,
zTree_Menu: null,
setting: {
view: {
showLine: false,
showIcon: true,
selectedMulti: false,
dblClickExpand: false,
addHoverDom: this.addHoverDom,
removeHoverDom: this.removeHoverDom,
addDiyDom: this.addDiyDom,
},
check: {
enable: true,
nocheckInherit: false,
chkboxType: {"Y": "p", "N": "s"}
},
data: {
simpleData: {
enable: true
}
},
callback: {
beforeClick: this.beforeClick,
onClick: this.OnClickzTree,
// onCheck: this.zTreeOnCheck,
}
},
zNodes: [],
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
}],
asideHeight: {
height: "",
width:"",
}
}
},
mounted () {
window['editBookmark'] = (e) => {
this.editBookmark(e)
},
//div拖动
this.dragControllerDivs();
/**背景彩带**/
// this.backgroundcss();
/**ebabyou 背景特效**/
// this.evanyoucss();
/**粒子球特效**/
// this.backgroundparticle();
},
created() {
var that = this;
//书签菜单
that.getList();
window.addEventListener('resize', this.getHeight);
this.getHeight()
},
methods: {
/**粒子球背景特效**/
backgroundparticle:function(){
!function () {
//封装方法,压缩之后减少文件大小
function get_attribute(node, attr, default_value) {
return node.getAttribute(attr) || default_value;
}
//封装方法,压缩之后减少文件大小
function get_by_tagname(name) {
return document.getElementsByTagName(name);
}
//获取配置参数
function get_config_option() {
var scripts = get_by_tagname("script"),
script_len = scripts.length,
script = scripts[script_len - 1]; //当前加载的script
return {
l: script_len, //长度用于生成id用
z: get_attribute(script, "zIndex", -1), //z-index
o: get_attribute(script, "opacity", 0.8), //opacity
c: get_attribute(script, "color", "255,255,255"), //color
n: get_attribute(script, "count", 50) //count数量
};
}
//设置canvas的高宽
function set_canvas_size() {
canvas_width = the_canvas.width = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth,
canvas_height = the_canvas.height = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
}
//绘制过程
function draw_canvas() {
context.clearRect(0, 0, canvas_width, canvas_height);
//随机的线条和当前位置联合数组
var e, i, d, x_dist, y_dist, dist; //临时节点
//遍历处理每一个点
random_points.forEach(function (r, idx) {
r.x += r.xa,
r.y += r.ya, //移动
r.xa *= r.x > canvas_width || r.x < 0 ? -1 : 1,
r.ya *= r.y > canvas_height || r.y < 0 ? -1 : 1, //碰到边界,反向反弹
context.fillRect(r.x - 0.5, r.y - 0.5, 1, 1); //绘制一个宽高为1的点
//从下一个点开始
for (i = idx + 1; i < all_array.length; i++) {
e = all_array[i];
// 当前点存在
if (null !== e.x && null !== e.y) {
x_dist = r.x - e.x; //x轴距离 l
y_dist = r.y - e.y; //y轴距离 n
dist = x_dist * x_dist + y_dist * y_dist; //总距离, m
dist < e.max && (e === current_point && dist >= e.max / 2 && (r.x -= 0.03 * x_dist, r.y -= 0.03 * y_dist), //靠近的时候加速
d = (e.max - dist) / e.max,
context.beginPath(),
context.lineWidth = d / 2,
context.strokeStyle = "#000000",
context.moveTo(r.x, r.y),
context.lineTo(e.x, e.y),
context.stroke());
}
}
}), frame_func(draw_canvas);
}
//创建画布并添加到body中
var the_canvas = document.createElement("canvas"), //画布
config = get_config_option(), //配置
canvas_id = "c_n" + config.l, //canvas id
context = the_canvas.getContext("2d"), canvas_width, canvas_height,
frame_func = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (func) {
window.setTimeout(func, 1000 / 40);
}, random = Math.random,
current_point = {
x: null, //当前鼠标x
y: null, //当前鼠标y
max: 20000 // 圈半径的平方
},
all_array;
the_canvas.id = canvas_id;
the_canvas.style.cssText = "position:fixed;top:0;left:0;z-index:" + config.z + ";opacity:" + config.o;
get_by_tagname("body")[0].appendChild(the_canvas);
//初始化画布大小
set_canvas_size();
window.onresize = set_canvas_size;
//当时鼠标位置存储,离开的时候,释放当前位置信息
window.onmousemove = function (e) {
e = e || window.event;
current_point.x = e.clientX;
current_point.y = e.clientY;
}, window.onmouseout = function () {
current_point.x = null;
current_point.y = null;
};
//随机生成config.n条线位置信息
for (var random_points = [], i = 0; config.n > i; i++) {
var x = random() * canvas_width, //随机位置
y = random() * canvas_height,
xa = 2 * random() - 1, //随机运动方向
ya = 2 * random() - 1;
// 随机点
random_points.push({
x: x,
y: y,
xa: xa,
ya: ya,
max: 6000 //沾附距离
});
}
all_array = random_points.concat([current_point]);
//0.1秒后绘制
setTimeout(function () {
draw_canvas();
}, 100);
}();
},
/**evanyou 背景特效**/
evanyoucss:function(){
var c = document.getElementById('evanyou'),
x = c.getContext('2d'),
pr = window.devicePixelRatio || 1,
w = window.innerWidth,
h = window.innerHeight,
f = 90,
q,
m = Math,
r = 0,
u = m.PI * 2,
v = m.cos,
z = m.random;
c.width = w * pr;
c.height = h * pr;
x.scale(pr, pr);
x.globalAlpha = 0.6;
function evanyou() {
x.clearRect(0, 0, w, h)
q = [{ x: 0, y: h * .7 + f }, { x: 0, y: h * .7 - f }]
while (q[1].x < w + f) d(q[0], q[1])
}
function d(i, j) {
x.beginPath()
x.moveTo(i.x, i.y)
x.lineTo(j.x, j.y)
var k = j.x + (z() * 2 - 0.25) * f,
n = y(j.y)
x.lineTo(k, n)
x.closePath()
r -= u / -50
x.fillStyle = '#' + (v(r) * 127 + 128 << 16 | v(r + u / 3) * 127 + 128 << 8 | v(r + u / 3 * 2) * 127 + 128).toString(16)
x.fill()
q[0] = q[1]
q[1] = { x: k, y: n }
}
function y(p) {
var t = p + (z() * 2 - 1.1) * f
return (t > h || t < 0) ? y(p) : t
}
document.onclick = evanyou
document.ontouchstart = evanyou
evanyou();
},
/**div拖拽宽度**/
dragControllerDivs: function () {
console.log("开始拖拽")
var resize = document.getElementsByClassName('isresize');
var left = document.getElementsByClassName('main-right');
var mid = document.getElementsByClassName('el-container mid is-vertical');
var box = document.getElementsByClassName('box');
var transition = document.getElementsByClassName('transition-box');
for (let i = 0; i < resize.length; i++) {
// 鼠标按下事件
resize[i].onmousedown = function (e) {
//颜色改变提醒
resize[i].style.background = 'transparent';
var startX = e.clientX;
console.log("鼠标按下后:" + e.clientX)
resize[i].left = resize[i].offsetLeft;
console.log("鼠标按下后:" + resize[i].left)
console.log("鼠标按下后:" + resize[i].offsetLeft)
// 鼠标拖动事件
document.onmousemove = function (e) {
var endX = e.clientX;
var moveLen = resize[i].left + (endX - startX); // endx-startx=移动的距离。resize[i].left+移动的距离=左边区域最后的宽度
var maxT = box[i].clientWidth - resize[i].offsetWidth; // 容器宽度 - 左边区域的宽度 = 右边区域的宽度
if (moveLen < 32) moveLen = 32; // 左边区域的最小宽度为32px
if (moveLen > maxT - 150) moveLen = maxT - 150; //右边区域最小宽度为150px
resize[i].style.left = moveLen; // 设置左侧区域的宽度
for (let j = 0; j < left.length; j++) {
left[j].style.width = moveLen + 'px';
// this.asideHeight.width = moveLen + 'px';
mid[j].style.width = (box[i].clientWidth - moveLen - 10) + 'px';
}
};
// 鼠标松开事件
document.onmouseup = function (evt) {
//颜色恢复
resize[i].style.background = 'transparent';
document.onmousemove = null;
document.onmouseup = null;
resize[i].releaseCapture && resize[i].releaseCapture(); //当你不在需要继续获得鼠标消息就要应该调用ReleaseCapture()释放掉
};
resize[i].setCapture && resize[i].setCapture(); //该函数在属于当前线程的指定窗口里设置鼠标捕获
return false;
};
}
},
/**背景特效彩带**/
backgroundcss:function(){
(function (name, factory) {
if (typeof window === "object") {
window[name] = factory();
}
})("Ribbons", function () {
var _w = window, _b = document.body, _d = document.documentElement;
var random = function () {
if (arguments.length === 1) {
if (Array.isArray(arguments[0])) {
var index = Math.round(random(0, arguments[0].length - 1));
return arguments[0][index];
}
return random(0, arguments[0]);
} else if (arguments.length === 2) {
return Math.random() * (arguments[1] - arguments[0]) + arguments[0];
}
return 0;
};
var screenInfo = function (e) {
var width = Math.max(0, _w.innerWidth || _d.clientWidth || _b.clientWidth || 0),
height = Math.max(0, _w.innerHeight || _d.clientHeight || _b.clientHeight || 0),
scrollx = Math.max(0, _w.pageXOffset || _d.scrollLeft || _b.scrollLeft || 0) - (_d.clientLeft || 0),
scrolly = Math.max(0, _w.pageYOffset || _d.scrollTop || _b.scrollTop || 0) - (_d.clientTop || 0);
return {
width: width,
height: height,
ratio: width / height,
centerx: width / 2,
centery: height / 2,
scrollx: scrollx,
scrolly: scrolly
};
};
var mouseInfo = function (e) {
var screen = screenInfo(e), mousex = e ? Math.max(0, e.pageX || e.clientX || 0) : 0,
mousey = e ? Math.max(0, e.pageY || e.clientY || 0) : 0;
return {
mousex: mousex,
mousey: mousey,
centerx: mousex - screen.width / 2,
centery: mousey - screen.height / 2
};
};
var Point = function (x, y) {
this.x = 0;
this.y = 0;
this.set(x, y);
};
Point.prototype = {
constructor: Point, set: function (x, y) {
this.x = x || 0;
this.y = y || 0;
}, copy: function (point) {
this.x = point.x || 0;
this.y = point.y || 0;
return this;
}, multiply: function (x, y) {
this.x *= x || 1;
this.y *= y || 1;
return this;
}, divide: function (x, y) {
this.x /= x || 1;
this.y /= y || 1;
return this;
}, add: function (x, y) {
this.x += x || 0;
this.y += y || 0;
return this;
}, subtract: function (x, y) {
this.x -= x || 0;
this.y -= y || 0;
return this;
}, clampX: function (min, max) {
this.x = Math.max(min, Math.min(this.x, max));
return this;
}, clampY: function (min, max) {
this.y = Math.max(min, Math.min(this.y, max));
return this;
}, flipX: function () {
this.x *= -1;
return this;
}, flipY: function () {
this.y *= -1;
return this;
}
};
var Factory = function (options) {
this._canvas = null;
this._context = null;
this._sto = null;
this._width = 0;
this._height = 0;
this._scroll = 0;
this._ribbons = [];
this._options = {
colorSaturation: "80%",
colorBrightness: "60%",
colorAlpha: 0.65,
colorCycleSpeed: 6,
verticalPosition: "center",
horizontalSpeed: 200,
ribbonCount: 4,
strokeSize: 0,
parallaxAmount: -0.5,
animateSections: true
};
this._onDraw = this._onDraw.bind(this);
this._onResize = this._onResize.bind(this);
this._onScroll = this._onScroll.bind(this);
this.setOptions(options);
this.init();
};
Factory.prototype = {
constructor: Factory, setOptions: function (options) {
if (typeof options === "object") {
for (var key in options) {
if (options.hasOwnProperty(key)) {
this._options[key] = options[key];
}
}
}
}, init: function () {
try {
this._canvas = document.createElement("canvas");
this._canvas.style["display"] = "block";
this._canvas.style["position"] = "fixed";
this._canvas.style["margin"] = "0";
this._canvas.style["padding"] = "0";
this._canvas.style["border"] = "0";
this._canvas.style["outline"] = "0";
this._canvas.style["left"] = "0";
this._canvas.style["top"] = "0";
this._canvas.style["width"] = "100%";
this._canvas.style["height"] = "100%";
this._canvas.style["z-index"] = "-1";
this._canvas.style["background-color"] = "#ffffff";
this._canvas.id = "bgCanvas";
this._onResize();
this._context = this._canvas.getContext("2d");
this._context.clearRect(0, 0, this._width, this._height);
this._context.globalAlpha = this._options.colorAlpha;
// 这里可以设置是否随着窗口的滚动而滚动
window.addEventListener("resize", this._onResize);
window.addEventListener("scroll", this._onScroll);
// 这里设置添加的位置
var body_ = document.getElementsByTagName('body')[0];
body_.appendChild(this._canvas);
} catch (e) {
console.warn("Canvas Context Error: " + e.toString());
return;
}
this._onDraw();
}, addRibbon: function () {
var dir = Math.round(random(1, 9)) > 5 ? "right" : "left", stop = 1000, hide = 200, min = 0 - hide,
max = this._width + hide, movex = 0, movey = 0, startx = dir === "right" ? min : max,
starty = Math.round(random(0, this._height));
if (/^(top|min)$/i.test(this._options.verticalPosition)) {
starty = 0 + hide;
} else if (/^(middle|center)$/i.test(this._options.verticalPosition)) {
starty = this._height / 2;
} else if (/^(bottom|max)$/i.test(this._options.verticalPosition)) {
starty = this._height - hide;
}
var ribbon = [], point1 = new Point(startx, starty), point2 = new Point(startx, starty), point3 = null,
color = Math.round(random(0, 360)), delay = 0;
while (true) {
if (stop <= 0) break;
stop--;
movex = Math.round((Math.random() * 1 - 0.2) * this._options.horizontalSpeed);
movey = Math.round((Math.random() * 1 - 0.5) * (this._height * 0.25));
point3 = new Point();
point3.copy(point2);
if (dir === "right") {
point3.add(movex, movey);
if (point2.x >= max) break;
} else if (dir === "left") {
point3.subtract(movex, movey);
if (point2.x <= min) break;
}
ribbon.push({
point1: new Point(point1.x, point1.y),
point2: new Point(point2.x, point2.y),
point3: point3,
color: color,
delay: delay,
dir: dir,
alpha: 0,
phase: 0
});
point1.copy(point2);
point2.copy(point3);
delay += 4;
color += this._options.colorCycleSpeed;
}
this._ribbons.push(ribbon);
}, _drawRibbonSection: function (section) {
if (section) {
if (section.phase >= 1 && section.alpha <= 0) {
return true;
}
if (section.delay <= 0) {
section.phase += 0.02;
section.alpha = Math.sin(section.phase) * 1;
section.alpha = section.alpha <= 0 ? 0 : section.alpha;
section.alpha = section.alpha >= 1 ? 1 : section.alpha;
if (this._options.animateSections) {
var mod = Math.sin(1 + section.phase * Math.PI / 2) * 0.1;
if (section.dir === "right") {
section.point1.add(mod, 0);
section.point2.add(mod, 0);
section.point3.add(mod, 0);
} else {
section.point1.subtract(mod, 0);
section.point2.subtract(mod, 0);
section.point3.subtract(mod, 0);
}
section.point1.add(0, mod);
section.point2.add(0, mod);
section.point3.add(0, mod);
}
} else {
section.delay -= 0.5;
}
var s = this._options.colorSaturation, l = this._options.colorBrightness,
c = "hsla(" + section.color + ", " + s + ", " + l + ", " + section.alpha + " )";
this._context.save();
if (this._options.parallaxAmount !== 0) {
this._context.translate(0, this._scroll * this._options.parallaxAmount);
}
this._context.beginPath();
this._context.moveTo(section.point1.x, section.point1.y);
this._context.lineTo(section.point2.x, section.point2.y);
this._context.lineTo(section.point3.x, section.point3.y);
this._context.fillStyle = c;
this._context.fill();
if (this._options.strokeSize > 0) {
this._context.lineWidth = this._options.strokeSize;
this._context.strokeStyle = c;
this._context.lineCap = "round";
this._context.stroke();
}
this._context.restore();
}
return false;
}, _onDraw: function () {
for (var i = 0, t = this._ribbons.length; i < t; ++i) {
if (!this._ribbons[i]) {
this._ribbons.splice(i, 1);
}
}
this._context.clearRect(0, 0, this._width, this._height);
for (var a = 0; a < this._ribbons.length; ++a) {
var ribbon = this._ribbons[a], numSections = ribbon.length, numDone = 0;
for (var b = 0; b < numSections; ++b) {
if (this._drawRibbonSection(ribbon[b])) {
numDone++;
}
}
if (numDone >= numSections) {
this._ribbons[a] = null;
}
}
if (this._ribbons.length < this._options.ribbonCount) {
this.addRibbon();
}
requestAnimationFrame(this._onDraw);
}, _onResize: function (e) {
var screen = screenInfo(e);
this._width = screen.width;
this._height = screen.height;
if (this._canvas) {
this._canvas.width = this._width;
this._canvas.height = this._height;
if (this._context) {
this._context.globalAlpha = this._options.colorAlpha;
}
}
}, _onScroll: function (e) {
var screen = screenInfo(e);
this._scroll = screen.scrolly;
}
};
return Factory;
});
new Ribbons();
},
/**自动获取高度**/
getHeight() {
// if (window.innerHeight<=750) {
// this.asideHeight.height=='750px';
// return;
// }
this.asideHeight.height = window.innerHeight + 'px';
},
/**书签编辑设置的 标签开始**/
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();
this.getTreeselect();
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) {
this.form.sqTags = this.sqTags;
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();
},
/** 转换书签菜单数据结构 */
normalizer(node) {
if (node.children && !node.children.length) {
delete node.children;
}
return {
id: node.menuId,
label: node.menuName,
children: node.children
};
},
/** 查询部门下拉树结构 */
getTreeselect() {
if (this.zNodes != null && this.zNodes.length != 0) {
this.menuOptions = [];
const data = {menuId: 0, menuName: '顶级菜单', children: []};
data.children = this.handleTree(this.zNodes, "menuId", "parentId");
this.menuOptions.push(data);
return;
}
listMenuByUserId().then(response => {
this.menuOptions = [];
const data = {menuId: 0, menuName: '顶级菜单', children: []};
data.children = this.handleTree(response.data, "menuId", "parentId");
this.menuOptions.push(data);
});
},
// 取消按钮
cancel() {
this.open = false;
this.reset();
},
/** 查询用户的书签菜单Menu */
getList() {
listMenuByUserId().then(response => {
this.zNodes = response.data;
//加载Ztree树
$.fn.zTree.init($("#treeDemo"), this.setting, this.zNodes).expandAll(this.expandAll);
});
},
/** 提交按钮 */
submitForm: function () {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.menuId != undefined) {
if (this.form.menuId == this.form.parentId) {
this.msgError("不能将上级菜单设置为本身");
return;
}
updateMenu(this.form).then(response => {
if (response.code === 200) {
this.msgSuccess("修改成功");
this.open = false;
this.getList();
}
});
} else {
addMenu(this.form).then(response => {
if (response.code === 200) {
this.msgSuccess("新增成功");
this.open = false;
this.getList();
}
});
}
}
});
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.getTreeselect();
this.open = true;
this.title = "添加书签菜单";
},
// /** 修改按钮操作 */
// handleUpdate(row) {
// this.reset();
// this.getTreeselect(); //树
// if (row != undefined) {
// this.form.parentId = row.menuId;
// }
// getMenu(row.menuId).then(response => {
// this.form = response.data;
// this.open = true;
// this.title = "修改书签菜单";
// });
// },
// 表单重置
reset() {
this.sqTags = [],
this.form = {
menuId: undefined,
userId: undefined,
menuName: undefined,
menuUrl: undefined,
menuIcon: undefined,
parentId: undefined,
menuOrder: undefined,
createTime: undefined
};
this.resetForm("form");
},
addDiyDom: function (treeId, treeNode) {
// console.log("自定义ztree:"+treeId.tId+"___treeNode"+treeNode.tId)
var spaceWidth = 20;
var switchObj = $("#" + treeNode.tId + "_switch"),
icoObj = $("#" + treeNode.tId + "_ico");
switchObj.remove();
icoObj.before(switchObj);
if (treeNode.level > -1) {
var spaceStr = "<span style='display: inline-block;width:" + (spaceWidth * treeNode.level) + "px'></span>";
switchObj.before(spaceStr);
var switchObjspan = $("#" + treeNode.tId + "_span");
// console.log("进入addHoverDom:统计"+treeNode.bookmarkCount+"_sz 的数量:"+confCount);
// console.log("addDiyDom:统计2"+$.fn.zTree.getZTreeObj("treeDemo").getCheckedNodes()[0].bookmarkCount);
//console.log("addDiyDom:统计2"+$.fn.zTree.getZTreeObj("treeDemo").getCheckedNodes()[0]);
var editStr = "<span class=" + treeNode.tId + "_count style='color: #9e9e9e;float:right;display: inline-block;margin-right: 15px;font-size:8px' onfocus='this.blur();'>" + treeNode.bookmarkCount + "</span>";
switchObjspan.after(editStr);
}
},
addHoverDom: function (treeId, treeNode) {
var confCount = $("." + treeNode.tId + "_sz").length;
// console.log("进入addHoverDom:统计"+treeNode.tId+"_sz 的数量:"+confCount);
// console.log("进入addHoverDom:treeId"+treeNode.tId+"_sz 的数量:"+confCount);
// console.log("进入addHoverDom:统计"+treeNode.tId+"_sz 的数量:"+confCount);
// console.log("进入addHoverDom:统计"+treeNode.bookmarkCount+"_sz 的数量:"+confCount);
if (confCount > 0) return;
//if (treeNode.parentNode && treeNode.parentNode.id!=1) return;
var switchObjspan = $("#" + treeNode.tId + "_span");
var editStr = "<span class=" + treeNode.tId + "_sz data-parentId=" + treeNode.parentId + " data-menuId=" + treeNode.menuId + " onclick='editBookmark(this)' style='color: #9e9e9e;float:right;display: inline-block;margin-right: 15px;font-size:8px' onfocus='this.blur();'><i class='el-icon-edit'></i></span>";
switchObjspan.after(editStr);
$("." + treeNode.tId + "_count").unbind().remove();
//绑定编辑
// document.getElementsByClassName(treeNode.tId + "_sz").onclick=function(){alert(this.value)};
//document.getElementsByClassName(treeNode.tId + "_sz").addEventListener('click', editBookmark);
// $("." + treeNode.tId + "_sz").addEventListener('click', editBookmark);
},
removeHoverDom: function (treeId, treeNode) {
//console.log("进入removeHoverDom:"+"." + treeNode.tId + "_sz")
//if (treeNode.parentTId && treeNode.getParentNode().id!=1) return;
$("." + treeNode.tId + "_sz").unbind().remove();
var switchObjspan = $("#" + treeNode.tId + "_span");
var editStr = "<span class=" + treeNode.tId + "_count onclick='alert(1111111);return false;' style='color: #9e9e9e;float:right;display: inline-block;margin-right: 15px;font-size:8px' onfocus='this.blur();'>" + treeNode.bookmarkCount + "</span>";
switchObjspan.after(editStr);
},
//点击展开
beforeClick: function (treeId, treeNode) {
//if (treeNode.level != 19990 ) {
// var zTree = $.fn.zTree.getZTreeObj("treeDemo");
// zTree.expandNode(treeNode);
// return false;
// }
//return true;
},
/** 点击跳转**/
//节点点击
OnClickzTree: function (event, treeId, treeNode) {
var that = this;
that.$router.push({
path: "/content",
query: {
menuId: treeNode.menuId
}
})
// $("." + treeNode.tId + "_sz").unbind().remove();
// var switchObjspan = $("#" + treeNode.tId + "_span");
//
// var confCount = $("#" + treeNode.tId + "_count").length;
// if (confCount>0) return;
// var editStr = "<span class="+treeNode.tId+"_count onclick='alert(1111111);return false;' style='color: #9e9e9e;float:right;display: inline-block;margin-right: 15px;font-size:8px' onfocus='this.blur();'>12</span>";
// switchObjspan.after(editStr);
// return false;
},
//显示隐藏 ztree菜单
zreaZtree: function () {
var that = this;
that.isShowZtree = !that.isShowZtree;
},
/**跳转导入页面**/
importHtml: function () {
this.$router.push({
path: "/importHtml",
})
}, /**跳转测试页面**/
ceshi: function () {
this.$router.push({
path: "/ceshi",
})
},
editBookmark: function (e) {
this.reset();
this.getTreeselect();
if (e.getAttribute("data-menuId") != null && e.getAttribute("data-parentId") != null) {
this.form.parentId = e.getAttribute("data-parentId");
}
getMenu(e.getAttribute("data-menuId")).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改书签菜单";
});
//阻止冒泡事件
if (e && e.stopPropagation)
//因此它支持W3C的stopPropagation()方法
e.stopPropagation();
else
//否则我们需要使用IE的方式来取消事件冒泡
window.event.cancelBubble = true;
return false;
},
//删除书签目录
deleteMmenu(menuId) {
this.$confirm('是否删除此目录菜单?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
delMenu(menuId).then(response => {
// if(){}
this.$message({
type: 'success',
message: '删除成功!'
});
this.open = false;
this.getList();
});
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
// 全部书签
goBookmarkList() {
var that = this;
that.$router.push({
path: "/content",
query: {
menuId: 'BOOKMARK'
}
})
},
/** 回收站**/
gorecycle() {
var that = this;
that.$router.push({
path: "/content",
query: {
menuId: 'RECYCLE'
}
})
},
/** 用户书签**/
goUserTagAll() {
var that = this;
that.$router.push({
path: "/UserTagAll",
})
},
},
destroyed() {
window.removeEventListener('resize', this.getHeight)
},
handleCommand(command) {
this.$message('click on item ' + command);
},
}
</script>
<style >
body {
/*font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;*/
font-family: "Merriweather","Open Sans","Microsoft Jhenghei","Microsoft Yahei",sans-serif;
}
.ztree li ul {
margin: 0;
padding: 0
}
.ztree li {
line-height: 32px
}
.ztree li a {
width: 200px;
height: 32px;
padding-top: 0px;
font-size: 14px;
width: 100%
}
.ztree li a:hover {
text-decoration: none;
background-color: #E5E5E5;
}
.ztree li a span.button.switch {
vertical-align: middle
}
.ztree.showIcon li a span.button.switch {
visibility: visible
}
.ztree li a.curSelectedNode {
background-color: #E5E5E5;
border: 0;
height: 32px;
}
.ztree li span {
line-height: 32px;
}
.ztree li span.button {
margin-top: 0px;
margin-left: 2px;
width: 20px;
height: 20px;
}
.ztree li span.button.switch {
width: 20px;
height: 20px;
}
/*.ztree li a.level0 span {font-size: 100%;font-weight: bold}*/
.ztree li span.button {
background-image: url("../ztree/bottom.png");
}
.ztree li span.button.switch.level0 {
width: 20px;
height: 20px
}
.ztree li span.button.switch.level1 {
width: 20px;
height: 20px
}
.ztree li span.button.noline_open {
background-position: 0 0;
}
.ztree li span.button.noline_close {
background-position: 0 0;
background-image: url("../ztree/right.png");
}
/*.ztree li span.button.noline_open.level0 {background-position: 0 0;}*/
/*.ztree li span.button.noline_close.level0 {background-position:-18px 0;}*/
.ztree li span.button.ico_close {
vertical-align: middle
}
.ztree li span.button.ico_open {
vertical-align: middle
}
.ztree li span.button.ico_docu {
vertical-align: middle
}
.ztr {
/*//background{ width:100%;height:100%;position:absolute;top:0px;opacity: 0.6;background-image: url(https://s1.ax1x.com/2020/07/27/akFjER.jpg);background-size: 500px 100px;}*/
/*background:red;*/
}
/*.areaTree{*/
/* height: 400px;*/
/* overflow:scroll;*/
/* font-weight: 400;*/
/*overflow:auto;*/
/* background-color: #F6F6F6;*/
/* background:url('https://ftp.bmp.ovh/imgs/2020/08/4ac1d6b4f41049ef.jpg') no-repeat;*/
/* background-size: 100% 100%;*/
/*}*/
#app {
overflow-y: hidden;
}
.isaside{
padding: 0;
margin-bottom: 0;
/*background:url('https://ftp.bmp.ovh/imgs/2020/08/4ac1d6b4f41049ef.jpg') no-repeat;*/
/*background-color: #F6F6F6;*/
/*background: url("https://s1.ax1x.com/2020/08/16/dEcqVU.jpg") no-repeat;*/
/*background: url("https://s1.ax1x.com/2020/10/03/03WM4K.md.jpg") no-repeat;*/
background: url("https://s1.ax1x.com/2020/10/03/03fri6.png") no-repeat;
/*background: url("https://s1.ax1x.com/2020/10/03/03RCSe.jpg") no-repeat;*/
/*background-color: #2E90AE;*/
/*background: -webkit-linear-gradient(to right, #000C40, #F0F2F0); !* Chrome 10-25, Safari 5.1-6 *!*/
/*background: linear-gradient(to right, #000C40, #F0F2F0); !* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ *!*/
/*opacity:0.9;*/
/*filter:alpha(opacity=90);*/
filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale')";
-moz-background-size:100% 100%;
background-size:100% 100%;
/*background: url("https://s1.ax1x.com/2020/10/03/03sAeK.md.jpg") no-repeat, linear-gradient(90deg, rgb(107, 165, 255) 40%, rgb(197, 197, 197) 100%) ;*/
/*background-repeat: no-repeat;*/
/*filter:"progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod='scale')";*/
/*-moz-background-size:100% 100%;*/
/*background-size:400px 100%;*/
/*background-color: #2E90AE;*/
/*background: -webkit-linear-gradient(to right, #000C40, #F0F2F0); !* Chrome 10-25, Safari 5.1-6 *!*/
/*!*background: linear-gradient(to right, #000C40, #F0F2F0); !* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ *!*!*/
/*background-size: cover;*/
/*z-index: -1;!*-1 可以当背景*!*/
/*-webkit-filter: blur(3px);*/
/*filter: blur(3px);*/
box-shadow: inset -1px 0 0 rgba(0, 0, 0, .1);
}
.aside-title {
height: 32px;
}
.aside-title:hover {
background-color: #c5c5c5;
}
.aside-title i {
margin-left: 26px;
font-size: 20px;
margin-right: 11px;
vertical-align: middle;
}
.aside-title span {
font-size: 14px;
margin-right: 11px;
}
.aside-logo {
display: flex;
align-items: center;
}
.aside-logo div {
width: 50%;
}
.logoname span {
margin-left: 8px;
font-family: "PingFang SC";
font-size: 20px;
font-weight: 400;
}
.logoright i {
float: right;
display: block;
width: 30px;
height: 28px;
background-color: #E6E4E1;
color: #5C5C5C;
text-align: center;
line-height: 28px;
border-radius: 2px;
}
.logoright i:active {
background-color: #7a6df0;
color: #FFFFFF;
}
.reminder {
color: #878787;
opacity: 0.7;
font-size: 14px!important;
font-weight: 500!important;
margin-left: 27px!important;
}
.aside-navigation {
width: 100%;
height: 30px;
background-color: #a0c4ff;
}
.filter {
display: flex;
flex-wrap: wrap;
}
.filter-sort {
color: #7e868d;
box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .08), inset 0 -1px 0 rgba(0, 0, 0, .04);
margin-right: 4px;
border-radius: 2px;
height: 22px;
font-size: 12px;
line-height: 22px;
text-align: center;
float: left;
padding: 0 8px;
}
.filter-sort:hover {
color: #6f8eee;
background-color: #e6e6e6;
}
.bookmarkmain {
padding-top: 0px !important;
}
.separator {
float: left;
}
.filter-sort i {
margin-left: -4px;
margin-right: -1px;
}
.filter div {
margin-bottom: 3px;
}
.header-sousou {
display: flex;
align-items: center;
justify-content: center;
}
.header-sousou input {
margin-top: 9px;
border: 0px;
background-color: #f2f2f2;
border-radius: 0 !important;
/*border: 1px solid #f2f2f2;*/
}
.header-sousou input:focus {
background-color: #FFFFFF !important;
border: 1px solid #C0C4CC;
}
.header-sousou i {
font-size: 1px;
margin-top: 6px;
}
.sousou-input {
width: 100%;
}
.header-list {
display: flex;
justify-content: center;
align-items: center;
width: 35px;
margin-top: 9px!important;
}
.header-list:hover {
color: #7a6df0;
}
.header-list i {
font-size: 25px;
margin-right: 2px;
}
.main-label span i {
margin-left: 5px;
}
.main-label span {
line-height: 22px;
}
.main-label :nth-child(1) {
margin-right: -1px;
}
.main-label :nth-child(2) {
margin-right: 5px;
}
.bookmark {
height: 65px;
}
.sousouleft-switch {
margin-top: 4px!important;
}
.sousouleft-switch i {
font-size: 30px;
opacity: 0.8;
}
.sousou-left {
width: 50px!important;
height: 50px;
margin-top: 12px!important;
}
.sousou-leftico {
display: flex;
align-items: center;
justify-content: center;
width: 30px;
height: 30px;
border-radius: 3px;
border: 1px solid #e6e6e6 !important;
margin-top: 9px!important;
}
.sousou-leftico img{
}
.filter-item:hover {
background-color: #E5E5E5 !important;
color: #000 !important;
}
.sousouright-icon {
display: flex;
justify-content: center;
align-items: center;
width: 50px;
margin-top: 7px!important;
}
.sousouright-iconadd {
display: flex;
justify-content: center;
align-items: center;
width: 50px;
margin-top: 7px!important;
}
.sq-dropdown {
top: 33px !important;
box-shadow: 0 2px 15px 0 rgba(0, 0, 0, .2) !important;
font-weight: 800 !important;
}
.sq-dropdown div {
display: none !important;
}
.labelname {
font-weight: 800;
color: rgb(0, 0, 0);
float: left;
margin-bottom: -10px;
margin-right: 5px;
}
.el-form-item__content {
margin-left: 0px !important;
}
.el-dialog__body {
padding-top: 0px !important;
}
.custom-input input {
border: 0px;
border-radius: 0px;
border-bottom: 1px solid #C0C4CC;
}
.custom-input input:focus {
border: 0px;
border-radius: 0px;
border-bottom: 1px solid #695fff;
}
/*添加bookmarkurl*/
.addbookmarkurl input {
border: 0px;
border-radius: 0px;
border-bottom: 1px solid #409EFF;
}
.addbookmarkurl input:focus {
border-bottom: 1px solid #409EFF;
}
.addbookmarkurl input:hover {
border-bottom: 1px solid #409EFF;
}
.addbookmarkurl .el-dialog {
top: 40%;
}
.addbookmarkurl .el-dialog__body {
padding-right: 10px;
height: 60px !important;
}
.addbookmarkurl-input {
width: 82% !important;
float: left;
font-size: 13px;
}
.addbookmarkurl-button {
float: left;
margin-left: 5px;
border: 1px solid #409EFF !important;
}
.addbookmarkurl-button:hover {
background-color: #409EFF !important;
color: #FFFFFF !important;
}
.el-dialog {
border-radius: 10px !important;
}
/*编辑目录 选择目录菜单样式调整*/
.vue-treeselect__control {
padding-top: 6px !important;
}
el-aside {
box-shadow: inset -1px 0 0 rgba(0, 0, 0, .1);
}
.main-right {
/*overflow:scroll;*/
width: 300px;
height: 85%;
min-height: 40%;
overflow: auto;
/*overflow: hidden;*/
z-index: 1;
}
.main-right::-webkit-scrollbar {
/*滚动条整体样式*/
width: 0px;
/*高宽分别对应横竖滚动条的尺寸*/
height: 12px !important;
}
/*定义滑块 样式*/
.main-right::-webkit-scrollbar-thumb {
border-radius: 3px;
/*height: 10px!important; !* 滚动条滑块长度 *!*/
background-color: #6ba5ff;
}
/*定义滚动条轨道 内阴影+圆角 透明效果*/
::-webkit-scrollbar-track {
background-color: transparent;
}
.tabBar {
width: 300px;
overflow: hidden;
position: fixed;
bottom: 0;
}
.popover-suosou {
/*width: 85% ;*/
top: 40px;
/*left: 72px;*/
}
/* 拖拽相关样式 */
/*包围div样式*/
/*拖拽区div样式*/
.isresize {
background-color: transparent;
width: 10px;
font-size: 25px;
display:-webkit-flex;
justify-content:center;
align-items:center;
background-color: transparent;
color: transparent;
}
/*拖拽区鼠标悬停样式*/
.isresize:hover{
color: #a4a4a4;
}
.isresize i{
margin-left: 2px;
transform: rotate(90deg);
width: 10px;
/*color: transparent;*/
/*background-color: black;*/
}
.main-right{
min-width: 250px;
}
.box{
-moz-user-select:none; /* Firefox私有属性 */
-webkit-user-select:none; /* WebKit内核私有属性 */
-ms-user-select:none; /* IE私有属性(IE10及以后) */
-khtml-user-select:none; /* KHTML内核私有属性 */
-o-user-select:none; /* Opera私有属性 */
user-select:none; /* CSS3属性 */
}
/* 拖拽相关样式 结束 */
#evanyou{
position:fixed;
width:100%;
height:100%;
left:0;
top:0;
z-index: -1;
}
</style>