自使用高度 瀑布流加载

This commit is contained in:
WangHao 2020-10-02 11:44:36 +08:00
parent 35da92f42c
commit d35593e8e9
3 changed files with 623 additions and 550 deletions

View File

@ -6,6 +6,7 @@
<meta name="renderer" content="webkit">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<title><%= webpackConfig.name %></title>
<style>
html,

View File

@ -34,6 +34,7 @@
}
}
/* >>> md*/
@ -65,7 +66,9 @@
.addbookmarkurl-input {
width: 73%!important;
}
.classification {
margin-left: 0px!important;
}
}
/* iphone6 7 8 plus */

View File

@ -1,5 +1,3 @@
<template>
<div>
@ -68,18 +66,25 @@
</div>
<div class="bookmarklist" v-loading="loading" v-if="showbookmark" >
<div class="bookmarklist" :style="datalist" v-loading="loading" v-if="showbookmark" v-infinite-scroll="load"
infinite-scroll-disabled="disabled" style="overflow:auto;" infinite-scroll-immediate="false">
<el-row>
<hr class="bookamrk-hr"/>
<el-col :span="24" v-for="bm in bookmarkList">
<div class="editBookamrk">
<div class="editlist">
<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">笔记</el-button></div>
<div> <el-button plain size="small">分享</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">笔记</el-button>
</div>
<div>
<el-button plain size="small">分享</el-button>
</div>
</div>
</div>
@ -93,11 +98,17 @@
<div class="info">
<div class="bookmark-icon">
<!-- <img :err-src='bm.icon' :ng-src="bm.icon" :src="bm.icon" />-->
<img :ng-src="'https://favicon.lucq.fun/?url=http://'+bm.urls" :src="'https://favicon.lucq.fun/?url=http://'+bm.urls" onerror="this.src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAmVJREFUSMftlG1IU2EUx8+5jRHzg+5OiD64WTBBjSY5ZybUJMaMiIUICUKFIGmoIIogYWKFBmtDxN1tBKIWvlS6SR+iLFDBXqSMgmzbvQ7fkAjcINmQ5u7pQwyCiOvWx/p/fPj9/5znnPM8AP+VolRTjjHhTlmZipzEk9GYao4sVaMYxXp62NgIdpLBCuLP05mZZHOYZA3p5KgMjBcUwCmw4PfVVYiBGmbW1zMzOU4QCgtTvdAeRESEyNZyJbx+dDTjVv/9YFSjSScnfabsbPYMF+AbxsYS3F5TfwPZAacpMNfUBEAljK24mMJwlLIUClTAdfwok9FXWBTtc3Phzqv7c/RWa8KnrHZM8VltbRjC92AxGkEPRpSJInjJQPpIBJoZC6nn50M19dM5J/v6/lhRxgXXDX9Qp1POcmHh2sTEQbfbvVmrUCTbr4RPaeMe8Q0eTyI36VkrW50mftjrPWCyDn9oSUuTdj4Y/1Qpl7NdzkNC98iIqsIxHdQVFaU8eWW1U1guLy1lr3Acr3O7pXi227EhDLpcCZ8UL/kK8LIYjxtDIRhEP8xGIlI8bcAKvY3FGB/zYvf81pYUL/0PvGTKoTUvjzbgCx5ZWlJq3a5lQa1Ge3yTWnp64ASYqVcUoXn3Jtja2/EpRtHj89FF8Tb25ufDOwCo8/lSL0BF/eDPzcVXeA7WDAa6J9rES1VVdJqx41JHBwCE8BgA3JU9B+3AACziMwjv7MAaPQb/wgIAnP2rDpCWtpkncjm+Ro34bWgo3FkX0O6bnARARCT6hSR6YzazXa7DfLyigo7TNtObxNb/s/oB7V8JFvW/8IQAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjAtMDItMDJUMTg6MTE6NTgrMDg6MDCoc6tpAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIwLTAyLTAyVDE4OjExOjU4KzA4OjAw2S4T1QAAAGd0RVh0c3ZnOmJhc2UtdXJpAGZpbGU6Ly8vaG9tZS9hZG1pbi9pY29uLWZvbnQvdG1wL2ljb25fNWhyOG55Nmo1bWMvamluZ2RpYW5hbmxpX2tvbmd3dWppYW94aW5nX3Nob3VjYW5nLnN2Z4/vilwAAAAASUVORK5CYII='" alt="" ng-show="bm.urls">
<img :ng-src="'https://favicon.lucq.fun/?url=http://'+bm.urls"
:src="'https://favicon.lucq.fun/?url=http://'+bm.urls"
onerror="this.src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAmVJREFUSMftlG1IU2EUx8+5jRHzg+5OiD64WTBBjSY5ZybUJMaMiIUICUKFIGmoIIogYWKFBmtDxN1tBKIWvlS6SR+iLFDBXqSMgmzbvQ7fkAjcINmQ5u7pQwyCiOvWx/p/fPj9/5znnPM8AP+VolRTjjHhTlmZipzEk9GYao4sVaMYxXp62NgIdpLBCuLP05mZZHOYZA3p5KgMjBcUwCmw4PfVVYiBGmbW1zMzOU4QCgtTvdAeRESEyNZyJbx+dDTjVv/9YFSjSScnfabsbPYMF+AbxsYS3F5TfwPZAacpMNfUBEAljK24mMJwlLIUClTAdfwok9FXWBTtc3Phzqv7c/RWa8KnrHZM8VltbRjC92AxGkEPRpSJInjJQPpIBJoZC6nn50M19dM5J/v6/lhRxgXXDX9Qp1POcmHh2sTEQbfbvVmrUCTbr4RPaeMe8Q0eTyI36VkrW50mftjrPWCyDn9oSUuTdj4Y/1Qpl7NdzkNC98iIqsIxHdQVFaU8eWW1U1guLy1lr3Acr3O7pXi227EhDLpcCZ8UL/kK8LIYjxtDIRhEP8xGIlI8bcAKvY3FGB/zYvf81pYUL/0PvGTKoTUvjzbgCx5ZWlJq3a5lQa1Ge3yTWnp64ASYqVcUoXn3Jtja2/EpRtHj89FF8Tb25ufDOwCo8/lSL0BF/eDPzcVXeA7WDAa6J9rES1VVdJqx41JHBwCE8BgA3JU9B+3AACziMwjv7MAaPQb/wgIAnP2rDpCWtpkncjm+Ro34bWgo3FkX0O6bnARARCT6hSR6YzazXa7DfLyigo7TNtObxNb/s/oB7V8JFvW/8IQAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjAtMDItMDJUMTg6MTE6NTgrMDg6MDCoc6tpAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIwLTAyLTAyVDE4OjExOjU4KzA4OjAw2S4T1QAAAGd0RVh0c3ZnOmJhc2UtdXJpAGZpbGU6Ly8vaG9tZS9hZG1pbi9pY29uLWZvbnQvdG1wL2ljb25fNWhyOG55Nmo1bWMvamluZ2RpYW5hbmxpX2tvbmd3dWppYW94aW5nX3Nob3VjYW5nLnN2Z4/vilwAAAAASUVORK5CYII='"
alt="" ng-show="bm.urls">
</div>
<div class="bookmark-official">{{bm.urls}}&nbsp;·&nbsp;</div><div class="bookmark-time">{{bm.createTime|changeTime}}</div>
<div class="bookmark-official">{{bm.urls}}&nbsp;·&nbsp;</div>
<div class="bookmark-time">{{bm.createTime|changeTime}}</div>
<div class="bookmark-time" v-for="t in bm.sqTags">
<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>
@ -105,10 +116,11 @@
</div>
</div>
</div>
<el-divider class="bookmark-hr"></el-divider>
</el-col>
</el-row>
</el-row>
<p v-if="listloading" class="listhint"><i class="el-icon-loading"></i>加载中...</p>
<p v-if="noMore" class="listhint">没有更多了</p>
</div>
@ -162,24 +174,20 @@
<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>
: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>
: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>
@ -188,18 +196,22 @@
</el-dialog>
</div>
</template>
<script>
import { selectBymenuIdUserID,selectBydelete,selectByUseridList, getBookmark, delBookmark, addBookmark, updateBookmark, exportBookmark } from "@/api/bookmark/bookmark";
import {
selectBymenuIdUserID,
selectBydelete,
selectByUseridList,
getBookmark,
delBookmark,
addBookmark,
updateBookmark,
exportBookmark
} from "@/api/bookmark/bookmark";
import {format} from 'timeago.js';
export default {
@ -215,6 +227,7 @@
title: "",
//
open: false,
busy: false,
showbookmark: true,
showimg: false,
loading: false,
@ -242,8 +255,7 @@
//
form: {},
//
rules: {
},
rules: {},
bookmarkstatus: [{
"name": "公开",
"value": 1
@ -261,6 +273,11 @@
"name": "待续读",
"value": 3
}],
datalist: {
height: "",
},
listloading: false,//
datalistcount:500,
}
},
@ -272,6 +289,23 @@
return format(time, 'zh_CN'); //
}
},
mounted() {
// document.querySelector("#datalist").addEventListener('scroll', this.handleScroll)
},
computed:{
/**list加载完毕就禁止滚动**/
noMore() {
console.log(this.bookmarkList.length)
console.log(this.datalistcount)
// return this.bookmarkList.length >= this.datalistcount;
//TRUE
return false;
},
/**是否禁用滚动**/
disabled(){
return this.listloading || this.noMore
}
},
created() {
var that = this;
var routedata = that.$route.query.menuId;
@ -294,9 +328,12 @@
this.getList();
}
//
window.addEventListener('resize', this.getHeight);
this.getHeight()
},
mounted() {
//
this.newBookmark();
},
methods: {
@ -306,6 +343,22 @@
document.getElementsByClassName("classification")[0].classList.add("classification-click");
},
/**自动获取高度**/
getHeight() {
// if (window.innerHeight<=750) {
// this.asideHeight.height=='750px';
// return;
// }
this.datalist.height = (window.innerHeight - (window.innerHeight / 7.5)) + 'px';
},
/**滚动监控**/
load() {
this.listloading = true
this.bookmarkList = this.bookmarkList.concat(this.bookmarkList, this.bookmarkList);
this.listloading = false
},
/**切换显示 全部 网页 文本 其他**/
showopen(e) {
@ -412,7 +465,8 @@
}).then(() => {
this.getList();
this.msgSuccess("删除成功");
}).catch(function() {});
}).catch(function () {
});
},
//
cancel() {
@ -487,7 +541,6 @@
window.open(url);
},
},
@ -496,7 +549,6 @@
</script>
<style scoped>
@ -504,6 +556,7 @@
.el-tag + .el-tag {
margin-left: 10px;
}
.button-new-tag {
margin-left: 10px;
height: 32px;
@ -511,6 +564,7 @@
padding-top: 0;
padding-bottom: 0;
}
.input-new-tag {
width: 90px;
margin-left: 10px;
@ -520,11 +574,6 @@
/**编辑标签 结束**/
.filler-tag span {
font-size: 12px;
margin-left: 5px;
@ -537,6 +586,7 @@
background-color: #E8F3FC;
color: #1988E0;
}
.bookamrk-hr {
margin-top: 0;
}
@ -546,14 +596,17 @@
box-shadow: 0 2px 15px 0 rgba(0, 0, 0, .2) !important;
font-weight: 600 !important;
}
.filter-sort-dropdown div {
display: none !important;
}
.nullbookmark {
display: flex;
flex-flow: column;
margin-top: 10%;
}
.nullbookmark-img {
margin: 0 auto;
width: 250px;
@ -572,6 +625,7 @@
color: #D4D4D4 !important;
}
.editBookamrk {
width: 270px;
height: 70px;
@ -580,6 +634,7 @@
right: 0;
display: none;
}
.editlist {
display: flex;
width: 100%;
@ -587,6 +642,7 @@
flex-flow: wrap;
align-items: center;
}
.editlist div {
margin-left: 10px;
width: 50px;
@ -594,6 +650,7 @@
align-content: center;
}
.bookmarktag {
margin-right: 5px;
}
@ -617,11 +674,13 @@
align-items: center;
}
.setUpThe {
display: flex;
align-items: center;
justify-content: center;
}
.filter-content {
margin-left: 18px;
@ -632,17 +691,18 @@
justify-content: center;
font-size: 18px;
}
.dropdownList i {
margin-right: 4px;
font-weight: 600;
}
.dropdownList span {
line-height: initial;
font-size: 17px;
}
.classification {
width: 60px;
height: 27px;
@ -651,6 +711,7 @@ margin-right: 4px;
line-height: 26px;
color: #a4a4a4;
}
.classification-click {
border-radius: 19px;
background: #606c88; /* fallback for old browsers */
@ -659,10 +720,18 @@ margin-right: 4px;
color: #FFFFFF;
box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.4)
}
.bookmark-list-tag {
margin-left: 4px;
color: #5094d5;
background-color: #fff;
}
.listhint {
width: 100%;
text-align: center;
background: #dcdfe682;
font-weight: 600;
}
</style>